diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml index 9b8528c51e..170b93722b 100644 --- a/.github/workflows/debug.yml +++ b/.github/workflows/debug.yml @@ -389,7 +389,9 @@ jobs: - build - telegram-bot-api steps: - - name: Download Artifacts + - name: Checkout + uses: actions/checkout@v4 + - name: Donwload Artifacts uses: actions/download-artifact@v4 with: path: artifacts diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 8caf85717e..1fa71b3e34 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -369,7 +369,7 @@ jobs: APK=$(find TMessagesProj/build/outputs/apk -name '*arm64-v8a*.apk') APK=$(dirname $APK) echo "APK=$APK" >> $GITHUB_ENV - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v4 with: name: Debug path: ${{ env.APK }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index de739937b6..bb63c13296 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -372,7 +372,7 @@ jobs: APK=$(find TMessagesProj/build/outputs/apk -name '*arm64-v8a*.apk') APK=$(dirname $APK) echo "APK=$APK" >> $GITHUB_ENV - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v4 with: name: ${{ matrix.flavor }} path: ${{ env.APK }} @@ -384,8 +384,10 @@ jobs: - build - telegram-bot-api steps: - - name: Download Artifacts - uses: actions/download-artifact@v2 + - name: Checkout + uses: actions/checkout@v4 + - name: Donwload Artifacts + uses: actions/download-artifact@v4 with: path: artifacts - name: Download Telegram Bot API Binary diff --git a/.gitmodules b/.gitmodules index bc277e7f00..a79e5f0711 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,3 @@ -[submodule "TMessagesProj/jni/libwebp"] - path = TMessagesProj/jni/libwebp - url = https://github.com/webmproject/libwebp [submodule "TMessagesProj/jni/boringssl"] path = TMessagesProj/jni/boringssl url = https://github.com/google/boringssl diff --git a/TMessagesProj/build.gradle b/TMessagesProj/build.gradle index b00ccc3ab3..e8336fe03a 100644 --- a/TMessagesProj/build.gradle +++ b/TMessagesProj/build.gradle @@ -14,12 +14,12 @@ repositories { } } -def verName = "11.0.0" -def verCode = 1191 +def verName = APP_VERSION_NAME +def verCode = 1194 -def officialVer = "11.0.0" -def officialCode = 5143 +def officialVer = APP_VERSION_NAME +def officialCode = APP_VERSION_CODE def serviceAccountCredentialsFile = rootProject.file("service_account_credentials.json") @@ -83,7 +83,7 @@ def nativeTarget = System.getenv("NATIVE_TARGET") if (nativeTarget == null) nativeTarget = "" android { - compileSdkVersion 33 + compileSdkVersion 34 ndkVersion rootProject.ext.ndkVersion defaultConfig.applicationId = "xyz.nextalone.nagram" @@ -111,7 +111,7 @@ android { defaultConfig { minSdkVersion 21 //noinspection ExpiredTargetSdkVersion,OldTargetApi - targetSdkVersion 33 + targetSdkVersion 34 versionName verName versionCode verCode @@ -296,7 +296,7 @@ dependencies { //noinspection GradleDependency implementation "com.googlecode.mp4parser:isoparser:1.0.6" - implementation "com.google.code.gson:gson:2.10" + implementation "com.google.code.gson:gson:2.11.0" implementation "org.osmdroid:osmdroid-android:6.1.10" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.23" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.0" @@ -352,8 +352,6 @@ dependencies { implementation 'org.lsposed.hiddenapibypass:hiddenapibypass:4.3' // add splash screen implementation("androidx.core:core-splashscreen:1.0.1") - // add for music tag flac... - implementation 'org:jaudiotagger:2.0.3' // add for auto translate implementation 'com.google.mlkit:language-id:17.0.5' // add for emoji diff --git a/TMessagesProj/jni/CMakeLists.txt b/TMessagesProj/jni/CMakeLists.txt index 75750f3627..4c03ba0797 100644 --- a/TMessagesProj/jni/CMakeLists.txt +++ b/TMessagesProj/jni/CMakeLists.txt @@ -5,7 +5,7 @@ set(CMAKE_C_FLAGS "-w -std=c11 -DANDROID -D_LARGEFILE_SOURCE=1") set(CMAKE_ASM_FLAGS "${CFLAGS} -x assembler-with-cpp") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffunction-sections -fdata-sections") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffunction-sections -fdata-sections") -set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--exclude-libs,libtgvoip.a,libtgcalls.a,libtgcalls_tp.a,libtgnet.a,libwebp.a,libflac.a,librlottie.a,libsqlite.a, +set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--exclude-libs,libtgvoip.a,libtgcalls.a,libtgcalls_tp.a,libtgnet.a,libflac.a,librlottie.a,libsqlite.a, ${CMAKE_HOME_DIRECTORY}/ffmpeg/build/${ANDROID_ABI}/lib/libswscale.a, ${CMAKE_HOME_DIRECTORY}/ffmpeg/build/${ANDROID_ABI}/lib/libavformat.a, ${CMAKE_HOME_DIRECTORY}/ffmpeg/build/${ANDROID_ABI}/lib/libavcodec.a, @@ -60,127 +60,127 @@ set_target_properties(libvpx PROPERTIES IMPORTED_LOCATION ${CMAKE_HOME_DIRECTORY #tgnet -add_library(mozjpeg STATIC - mozjpeg/cjpeg.c mozjpeg/cdjpeg.c mozjpeg/rdgif.c mozjpeg/rdppm.c mozjpeg/rdjpeg.c mozjpeg/rdswitch.c mozjpeg/rdbmp.c - mozjpeg/rdtarga.c mozjpeg/wrbmp.c mozjpeg/wrtarga.c mozjpeg/djpeg.c mozjpeg/cdjpeg.c mozjpeg/rdcolmap.c mozjpeg/rdswitch.c - mozjpeg/wrgif.c mozjpeg/wrppm.c mozjpeg/jpegtran.c mozjpeg/cdjpeg.c mozjpeg/rdswitch.c mozjpeg/transupp.c mozjpeg/turbojpeg.c - mozjpeg/jdatadst-tj.c mozjpeg/jdatasrc-tj.c mozjpeg/jcapimin.c mozjpeg/jcapistd.c mozjpeg/jccoefct.c mozjpeg/jccolor.c - mozjpeg/jcdctmgr.c mozjpeg/jchuff.c mozjpeg/jcext.c mozjpeg/jcicc.c mozjpeg/jcinit.c mozjpeg/jcmainct.c mozjpeg/jcmarker.c - mozjpeg/jcmaster.c mozjpeg/jcomapi.c mozjpeg/jcparam.c mozjpeg/jcphuff.c mozjpeg/jcprepct.c mozjpeg/jcsample.c - mozjpeg/jctrans.c mozjpeg/jdapimin.c mozjpeg/jdapistd.c mozjpeg/jdatadst.c mozjpeg/jdatasrc.c - mozjpeg/jdcoefct.c mozjpeg/jdcolor.c mozjpeg/jddctmgr.c mozjpeg/jdhuff.c mozjpeg/jdicc.c mozjpeg/jdinput.c - mozjpeg/jdmainct.c mozjpeg/jdmarker.c mozjpeg/jdmaster.c mozjpeg/jdmerge.c mozjpeg/jdphuff.c mozjpeg/jdpostct.c mozjpeg/jdsample.c - mozjpeg/jdtrans.c mozjpeg/jerror.c mozjpeg/jfdctflt.c mozjpeg/jfdctfst.c mozjpeg/jfdctint.c mozjpeg/jidctflt.c mozjpeg/jidctfst.c - mozjpeg/jidctint.c mozjpeg/jidctred.c mozjpeg/jquant1.c mozjpeg/jquant2.c mozjpeg/jutils.c mozjpeg/jmemmgr.c mozjpeg/jmemnobs.c) -target_compile_options(mozjpeg PUBLIC - -Os) -set_target_properties(mozjpeg PROPERTIES - ANDROID_ARM_MODE arm) -target_compile_definitions(mozjpeg PUBLIC - BMP_SUPPORTED GIF_SUPPORTED PPM_SUPPORTED TARGA_SUPPORTED) -target_include_directories(mozjpeg PUBLIC - mozjpeg - mozjpeg/simd/nasm) - -if (${ANDROID_ABI} STREQUAL "armeabi-v7a") - target_sources(mozjpeg PRIVATE - mozjpeg/simd/arm/jsimd_neon.S - mozjpeg/simd/arm/jsimd.c) - target_compile_definitions(mozjpeg PUBLIC - SIZEOF_SIZE_T=4) -elseif (${ANDROID_ABI} STREQUAL "arm64-v8a") - target_sources(mozjpeg PRIVATE - mozjpeg/simd/arm64/jsimd_neon.S - mozjpeg/simd/arm64/jsimd.c) - target_compile_definitions(mozjpeg PUBLIC - SIZEOF_SIZE_T=8) -elseif (${ANDROID_ABI} STREQUAL "x86") - set(CMAKE_ASM_NASM_COMPILER_ARG1 "${CMAKE_ASM_NASM_COMPILER_ARG1} -DPIC") - target_sources(mozjpeg PRIVATE - mozjpeg/simd/i386/jsimd.c - mozjpeg/simd/i386/jsimdcpu.asm - mozjpeg/simd/i386/jfdctflt-3dn.asm - mozjpeg/simd/i386/jidctflt-3dn.asm - mozjpeg/simd/i386/jquant-3dn.asm - mozjpeg/simd/i386/jccolor-mmx.asm - mozjpeg/simd/i386/jcgray-mmx.asm - mozjpeg/simd/i386/jcsample-mmx.asm - mozjpeg/simd/i386/jdcolor-mmx.asm - mozjpeg/simd/i386/jdmerge-mmx.asm - mozjpeg/simd/i386/jdsample-mmx.asm - mozjpeg/simd/i386/jfdctfst-mmx.asm - mozjpeg/simd/i386/jfdctint-mmx.asm - mozjpeg/simd/i386/jidctfst-mmx.asm - mozjpeg/simd/i386/jidctint-mmx.asm - mozjpeg/simd/i386/jidctred-mmx.asm - mozjpeg/simd/i386/jquant-mmx.asm - mozjpeg/simd/i386/jfdctflt-sse.asm - mozjpeg/simd/i386/jidctflt-sse.asm - mozjpeg/simd/i386/jquant-sse.asm - mozjpeg/simd/i386/jccolor-sse2.asm - mozjpeg/simd/i386/jcgray-sse2.asm - mozjpeg/simd/i386/jchuff-sse2.asm - mozjpeg/simd/i386/jcphuff-sse2.asm - mozjpeg/simd/i386/jcsample-sse2.asm - mozjpeg/simd/i386/jdcolor-sse2.asm - mozjpeg/simd/i386/jdmerge-sse2.asm - mozjpeg/simd/i386/jdsample-sse2.asm - mozjpeg/simd/i386/jfdctfst-sse2.asm - mozjpeg/simd/i386/jfdctint-sse2.asm - mozjpeg/simd/i386/jidctflt-sse2.asm - mozjpeg/simd/i386/jidctfst-sse2.asm - mozjpeg/simd/i386/jidctint-sse2.asm - mozjpeg/simd/i386/jidctred-sse2.asm - mozjpeg/simd/i386/jquantf-sse2.asm - mozjpeg/simd/i386/jquanti-sse2.asm - mozjpeg/simd/i386/jccolor-avx2.asm - mozjpeg/simd/i386/jcgray-avx2.asm - mozjpeg/simd/i386/jcsample-avx2.asm - mozjpeg/simd/i386/jdcolor-avx2.asm - mozjpeg/simd/i386/jdmerge-avx2.asm - mozjpeg/simd/i386/jdsample-avx2.asm - mozjpeg/simd/i386/jfdctint-avx2.asm - mozjpeg/simd/i386/jidctint-avx2.asm - mozjpeg/simd/i386/jquanti-avx2.asm) - target_compile_definitions(mozjpeg PUBLIC - SIZEOF_SIZE_T=4) -elseif (${ANDROID_ABI} STREQUAL "x86_64") - set(CMAKE_ASM_NASM_COMPILER_ARG1 "${CMAKE_ASM_NASM_COMPILER_ARG1} -DPIC") - set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -DELF") - set(CMAKE_ASM_NASM_DEBUG_FORMAT "dwarf2") - set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -D__x86_64__") - target_sources(mozjpeg PRIVATE - mozjpeg/simd/x86_64/jsimd.c - mozjpeg/simd/x86_64/jsimdcpu.asm - mozjpeg/simd/x86_64/jfdctflt-sse.asm - mozjpeg/simd/x86_64/jccolor-sse2.asm - mozjpeg/simd/x86_64/jcgray-sse2.asm - mozjpeg/simd/x86_64/jchuff-sse2.asm - mozjpeg/simd/x86_64/jcphuff-sse2.asm - mozjpeg/simd/x86_64/jcsample-sse2.asm - mozjpeg/simd/x86_64/jdcolor-sse2.asm - mozjpeg/simd/x86_64/jdmerge-sse2.asm - mozjpeg/simd/x86_64/jdsample-sse2.asm - mozjpeg/simd/x86_64/jfdctfst-sse2.asm - mozjpeg/simd/x86_64/jfdctint-sse2.asm - mozjpeg/simd/x86_64/jidctflt-sse2.asm - mozjpeg/simd/x86_64/jidctfst-sse2.asm - mozjpeg/simd/x86_64/jidctint-sse2.asm - mozjpeg/simd/x86_64/jidctred-sse2.asm - mozjpeg/simd/x86_64/jquantf-sse2.asm - mozjpeg/simd/x86_64/jquanti-sse2.asm - mozjpeg/simd/x86_64/jccolor-avx2.asm - mozjpeg/simd/x86_64/jcgray-avx2.asm - mozjpeg/simd/x86_64/jcsample-avx2.asm - mozjpeg/simd/x86_64/jdcolor-avx2.asm - mozjpeg/simd/x86_64/jdmerge-avx2.asm - mozjpeg/simd/x86_64/jdsample-avx2.asm - mozjpeg/simd/x86_64/jfdctint-avx2.asm - mozjpeg/simd/x86_64/jidctint-avx2.asm - mozjpeg/simd/x86_64/jquanti-avx2.asm) - target_compile_definitions(mozjpeg PUBLIC - SIZEOF_SIZE_T=8) -endif () +#add_library(mozjpeg STATIC +# mozjpeg/cjpeg.c mozjpeg/cdjpeg.c mozjpeg/rdgif.c mozjpeg/rdppm.c mozjpeg/rdjpeg.c mozjpeg/rdswitch.c mozjpeg/rdbmp.c +# mozjpeg/rdtarga.c mozjpeg/wrbmp.c mozjpeg/wrtarga.c mozjpeg/djpeg.c mozjpeg/cdjpeg.c mozjpeg/rdcolmap.c mozjpeg/rdswitch.c +# mozjpeg/wrgif.c mozjpeg/wrppm.c mozjpeg/jpegtran.c mozjpeg/cdjpeg.c mozjpeg/rdswitch.c mozjpeg/transupp.c mozjpeg/turbojpeg.c +# mozjpeg/jdatadst-tj.c mozjpeg/jdatasrc-tj.c mozjpeg/jcapimin.c mozjpeg/jcapistd.c mozjpeg/jccoefct.c mozjpeg/jccolor.c +# mozjpeg/jcdctmgr.c mozjpeg/jchuff.c mozjpeg/jcext.c mozjpeg/jcicc.c mozjpeg/jcinit.c mozjpeg/jcmainct.c mozjpeg/jcmarker.c +# mozjpeg/jcmaster.c mozjpeg/jcomapi.c mozjpeg/jcparam.c mozjpeg/jcphuff.c mozjpeg/jcprepct.c mozjpeg/jcsample.c +# mozjpeg/jctrans.c mozjpeg/jdapimin.c mozjpeg/jdapistd.c mozjpeg/jdatadst.c mozjpeg/jdatasrc.c +# mozjpeg/jdcoefct.c mozjpeg/jdcolor.c mozjpeg/jddctmgr.c mozjpeg/jdhuff.c mozjpeg/jdicc.c mozjpeg/jdinput.c +# mozjpeg/jdmainct.c mozjpeg/jdmarker.c mozjpeg/jdmaster.c mozjpeg/jdmerge.c mozjpeg/jdphuff.c mozjpeg/jdpostct.c mozjpeg/jdsample.c +# mozjpeg/jdtrans.c mozjpeg/jerror.c mozjpeg/jfdctflt.c mozjpeg/jfdctfst.c mozjpeg/jfdctint.c mozjpeg/jidctflt.c mozjpeg/jidctfst.c +# mozjpeg/jidctint.c mozjpeg/jidctred.c mozjpeg/jquant1.c mozjpeg/jquant2.c mozjpeg/jutils.c mozjpeg/jmemmgr.c mozjpeg/jmemnobs.c) +#target_compile_options(mozjpeg PUBLIC +# -Os) +#set_target_properties(mozjpeg PROPERTIES +# ANDROID_ARM_MODE arm) +#target_compile_definitions(mozjpeg PUBLIC +# BMP_SUPPORTED GIF_SUPPORTED PPM_SUPPORTED TARGA_SUPPORTED) +#target_include_directories(mozjpeg PUBLIC +# mozjpeg +# mozjpeg/simd/nasm) +# +#if (${ANDROID_ABI} STREQUAL "armeabi-v7a") +# target_sources(mozjpeg PRIVATE +# mozjpeg/simd/arm/jsimd_neon.S +# mozjpeg/simd/arm/jsimd.c) +# target_compile_definitions(mozjpeg PUBLIC +# SIZEOF_SIZE_T=4) +#elseif (${ANDROID_ABI} STREQUAL "arm64-v8a") +# target_sources(mozjpeg PRIVATE +# mozjpeg/simd/arm64/jsimd_neon.S +# mozjpeg/simd/arm64/jsimd.c) +# target_compile_definitions(mozjpeg PUBLIC +# SIZEOF_SIZE_T=8) +#elseif (${ANDROID_ABI} STREQUAL "x86") +# set(CMAKE_ASM_NASM_COMPILER_ARG1 "${CMAKE_ASM_NASM_COMPILER_ARG1} -DPIC") +# target_sources(mozjpeg PRIVATE +# mozjpeg/simd/i386/jsimd.c +# mozjpeg/simd/i386/jsimdcpu.asm +# mozjpeg/simd/i386/jfdctflt-3dn.asm +# mozjpeg/simd/i386/jidctflt-3dn.asm +# mozjpeg/simd/i386/jquant-3dn.asm +# mozjpeg/simd/i386/jccolor-mmx.asm +# mozjpeg/simd/i386/jcgray-mmx.asm +# mozjpeg/simd/i386/jcsample-mmx.asm +# mozjpeg/simd/i386/jdcolor-mmx.asm +# mozjpeg/simd/i386/jdmerge-mmx.asm +# mozjpeg/simd/i386/jdsample-mmx.asm +# mozjpeg/simd/i386/jfdctfst-mmx.asm +# mozjpeg/simd/i386/jfdctint-mmx.asm +# mozjpeg/simd/i386/jidctfst-mmx.asm +# mozjpeg/simd/i386/jidctint-mmx.asm +# mozjpeg/simd/i386/jidctred-mmx.asm +# mozjpeg/simd/i386/jquant-mmx.asm +# mozjpeg/simd/i386/jfdctflt-sse.asm +# mozjpeg/simd/i386/jidctflt-sse.asm +# mozjpeg/simd/i386/jquant-sse.asm +# mozjpeg/simd/i386/jccolor-sse2.asm +# mozjpeg/simd/i386/jcgray-sse2.asm +# mozjpeg/simd/i386/jchuff-sse2.asm +# mozjpeg/simd/i386/jcphuff-sse2.asm +# mozjpeg/simd/i386/jcsample-sse2.asm +# mozjpeg/simd/i386/jdcolor-sse2.asm +# mozjpeg/simd/i386/jdmerge-sse2.asm +# mozjpeg/simd/i386/jdsample-sse2.asm +# mozjpeg/simd/i386/jfdctfst-sse2.asm +# mozjpeg/simd/i386/jfdctint-sse2.asm +# mozjpeg/simd/i386/jidctflt-sse2.asm +# mozjpeg/simd/i386/jidctfst-sse2.asm +# mozjpeg/simd/i386/jidctint-sse2.asm +# mozjpeg/simd/i386/jidctred-sse2.asm +# mozjpeg/simd/i386/jquantf-sse2.asm +# mozjpeg/simd/i386/jquanti-sse2.asm +# mozjpeg/simd/i386/jccolor-avx2.asm +# mozjpeg/simd/i386/jcgray-avx2.asm +# mozjpeg/simd/i386/jcsample-avx2.asm +# mozjpeg/simd/i386/jdcolor-avx2.asm +# mozjpeg/simd/i386/jdmerge-avx2.asm +# mozjpeg/simd/i386/jdsample-avx2.asm +# mozjpeg/simd/i386/jfdctint-avx2.asm +# mozjpeg/simd/i386/jidctint-avx2.asm +# mozjpeg/simd/i386/jquanti-avx2.asm) +# target_compile_definitions(mozjpeg PUBLIC +# SIZEOF_SIZE_T=4) +#elseif (${ANDROID_ABI} STREQUAL "x86_64") +# set(CMAKE_ASM_NASM_COMPILER_ARG1 "${CMAKE_ASM_NASM_COMPILER_ARG1} -DPIC") +# set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -DELF") +# set(CMAKE_ASM_NASM_DEBUG_FORMAT "dwarf2") +# set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -D__x86_64__") +# target_sources(mozjpeg PRIVATE +# mozjpeg/simd/x86_64/jsimd.c +# mozjpeg/simd/x86_64/jsimdcpu.asm +# mozjpeg/simd/x86_64/jfdctflt-sse.asm +# mozjpeg/simd/x86_64/jccolor-sse2.asm +# mozjpeg/simd/x86_64/jcgray-sse2.asm +# mozjpeg/simd/x86_64/jchuff-sse2.asm +# mozjpeg/simd/x86_64/jcphuff-sse2.asm +# mozjpeg/simd/x86_64/jcsample-sse2.asm +# mozjpeg/simd/x86_64/jdcolor-sse2.asm +# mozjpeg/simd/x86_64/jdmerge-sse2.asm +# mozjpeg/simd/x86_64/jdsample-sse2.asm +# mozjpeg/simd/x86_64/jfdctfst-sse2.asm +# mozjpeg/simd/x86_64/jfdctint-sse2.asm +# mozjpeg/simd/x86_64/jidctflt-sse2.asm +# mozjpeg/simd/x86_64/jidctfst-sse2.asm +# mozjpeg/simd/x86_64/jidctint-sse2.asm +# mozjpeg/simd/x86_64/jidctred-sse2.asm +# mozjpeg/simd/x86_64/jquantf-sse2.asm +# mozjpeg/simd/x86_64/jquanti-sse2.asm +# mozjpeg/simd/x86_64/jccolor-avx2.asm +# mozjpeg/simd/x86_64/jcgray-avx2.asm +# mozjpeg/simd/x86_64/jcsample-avx2.asm +# mozjpeg/simd/x86_64/jdcolor-avx2.asm +# mozjpeg/simd/x86_64/jdmerge-avx2.asm +# mozjpeg/simd/x86_64/jdsample-avx2.asm +# mozjpeg/simd/x86_64/jfdctint-avx2.asm +# mozjpeg/simd/x86_64/jidctint-avx2.asm +# mozjpeg/simd/x86_64/jquanti-avx2.asm) +# target_compile_definitions(mozjpeg PUBLIC +# SIZEOF_SIZE_T=8) +#endif () #tgnet add_library(tgnet STATIC @@ -315,132 +315,6 @@ target_compile_definitions(flac PUBLIC target_include_directories(flac PUBLIC exoplayer/libFLAC/include) -#webp -add_library(webp STATIC - libwebp/src/dec/alpha_dec.c - libwebp/src/dec/buffer_dec.c - libwebp/src/dec/frame_dec.c - libwebp/src/dec/idec_dec.c - libwebp/src/dec/io_dec.c - libwebp/src/dec/quant_dec.c - libwebp/src/dec/tree_dec.c - libwebp/src/dec/vp8_dec.c - libwebp/src/dec/vp8l_dec.c - libwebp/src/dec/webp_dec.c - libwebp/src/demux/anim_decode.c - libwebp/src/demux/demux.c - libwebp/src/dsp/alpha_processing.c - libwebp/src/dsp/alpha_processing_mips_dsp_r2.c - libwebp/src/dsp/alpha_processing_neon.c - libwebp/src/dsp/alpha_processing_sse2.c - libwebp/src/dsp/alpha_processing_sse41.c - libwebp/src/dsp/cpu.c - libwebp/src/dsp/dec.c - libwebp/src/dsp/dec_clip_tables.c - libwebp/src/dsp/dec_mips32.c - libwebp/src/dsp/dec_mips_dsp_r2.c - libwebp/src/dsp/dec_msa.c - libwebp/src/dsp/dec_neon.c - libwebp/src/dsp/dec_sse2.c - libwebp/src/dsp/dec_sse41.c - libwebp/src/dsp/filters.c - libwebp/src/dsp/filters_mips_dsp_r2.c - libwebp/src/dsp/filters_msa.c - libwebp/src/dsp/filters_neon.c - libwebp/src/dsp/filters_sse2.c - libwebp/src/dsp/lossless.c - libwebp/src/dsp/lossless_mips_dsp_r2.c - libwebp/src/dsp/lossless_msa.c - libwebp/src/dsp/lossless_neon.c - libwebp/src/dsp/lossless_sse2.c - libwebp/src/dsp/lossless_sse41.c - libwebp/src/dsp/rescaler.c - libwebp/src/dsp/rescaler_mips32.c - libwebp/src/dsp/rescaler_mips_dsp_r2.c - libwebp/src/dsp/rescaler_msa.c - libwebp/src/dsp/rescaler_neon.c - libwebp/src/dsp/rescaler_sse2.c - libwebp/src/dsp/upsampling.c - libwebp/src/dsp/upsampling_mips_dsp_r2.c - libwebp/src/dsp/upsampling_msa.c - libwebp/src/dsp/upsampling_neon.c - libwebp/src/dsp/upsampling_sse2.c - libwebp/src/dsp/upsampling_sse41.c - libwebp/src/dsp/yuv.c - libwebp/src/dsp/yuv_mips32.c - libwebp/src/dsp/yuv_mips_dsp_r2.c - libwebp/src/dsp/yuv_neon.c - libwebp/src/dsp/yuv_sse2.c - libwebp/src/dsp/yuv_sse41.c - libwebp/src/dsp/cost.c - libwebp/src/dsp/cost_mips32.c - libwebp/src/dsp/cost_mips_dsp_r2.c - libwebp/src/dsp/cost_neon.c - libwebp/src/dsp/cost_sse2.c - libwebp/src/dsp/enc.c - libwebp/src/dsp/enc_mips32.c - libwebp/src/dsp/enc_mips_dsp_r2.c - libwebp/src/dsp/enc_msa.c - libwebp/src/dsp/enc_neon.c - libwebp/src/dsp/enc_sse2.c - libwebp/src/dsp/enc_sse41.c - libwebp/src/dsp/lossless_enc.c - libwebp/src/dsp/lossless_enc_mips32.c - libwebp/src/dsp/lossless_enc_mips_dsp_r2.c - libwebp/src/dsp/lossless_enc_msa.c - libwebp/src/dsp/lossless_enc_neon.c - libwebp/src/dsp/lossless_enc_sse2.c - libwebp/src/dsp/lossless_enc_sse41.c - libwebp/src/dsp/ssim.c - libwebp/src/dsp/ssim_sse2.c - libwebp/src/enc/alpha_enc.c - libwebp/src/enc/analysis_enc.c - libwebp/src/enc/backward_references_cost_enc.c - libwebp/src/enc/backward_references_enc.c - libwebp/src/enc/config_enc.c - libwebp/src/enc/cost_enc.c - libwebp/src/enc/filter_enc.c - libwebp/src/enc/frame_enc.c - libwebp/src/enc/histogram_enc.c - libwebp/src/enc/iterator_enc.c - libwebp/src/enc/near_lossless_enc.c - libwebp/src/enc/picture_enc.c - libwebp/src/enc/picture_csp_enc.c - libwebp/src/enc/picture_psnr_enc.c - libwebp/src/enc/picture_rescale_enc.c - libwebp/src/enc/picture_tools_enc.c - libwebp/src/enc/predictor_enc.c - libwebp/src/enc/quant_enc.c - libwebp/src/enc/syntax_enc.c - libwebp/src/enc/token_enc.c - libwebp/src/enc/tree_enc.c - libwebp/src/enc/vp8l_enc.c - libwebp/src/enc/webp_enc.c - libwebp/src/mux/anim_encode.c - libwebp/src/mux/muxedit.c - libwebp/src/mux/muxinternal.c - libwebp/src/mux/muxread.c - libwebp/src/utils/bit_reader_utils.c - libwebp/src/utils/color_cache_utils.c - libwebp/src/utils/filters_utils.c - libwebp/src/utils/huffman_utils.c - libwebp/src/utils/quant_levels_dec_utils.c - libwebp/src/utils/random_utils.c - libwebp/src/utils/rescaler_utils.c - libwebp/src/utils/thread_utils.c - libwebp/src/utils/utils.c - libwebp/src/utils/bit_writer_utils.c - libwebp/src/utils/huffman_encode_utils.c - libwebp/src/utils/quant_levels_utils.c) -target_compile_options(webp PUBLIC - -Wall -finline-functions -ffast-math -Os) -set_target_properties(webp PROPERTIES - ANDROID_ARM_MODE arm) -target_compile_definitions(webp PUBLIC - HAVE_MALLOC_H HAVE_PTHREAD WEBP_USE_THREAD) -target_include_directories(webp PUBLIC - libwebp libwebp/src) - #sqlite add_library(sqlite STATIC sqlite/sqlite3.c) @@ -769,9 +643,8 @@ target_link_libraries(${NATIVE_LIB} tgvoip tgcalls tgcalls_tp - mozjpeg +# mozjpeg tgnet - webp flac rlottie sqlite diff --git a/TMessagesProj/jni/build_ffmpeg_clang.sh b/TMessagesProj/jni/build_ffmpeg_clang.sh index d30a00f527..0b5d51cbca 100755 --- a/TMessagesProj/jni/build_ffmpeg_clang.sh +++ b/TMessagesProj/jni/build_ffmpeg_clang.sh @@ -84,16 +84,21 @@ function build_one { --enable-avresample \ --enable-swscale \ --enable-protocol=file \ - --enable-decoder=opus \ --enable-decoder=h264 \ + --enable-decoder=h265 \ --enable-decoder=mpeg4 \ --enable-decoder=mjpeg \ --enable-decoder=gif \ --enable-decoder=alac \ + --enable-decoder=opus \ + --enable-decoder=mp3 \ + --enable-decoder=aac \ --enable-demuxer=mov \ --enable-demuxer=gif \ --enable-demuxer=ogg \ --enable-demuxer=matroska \ + --enable-demuxer=mp3 \ + --enable-demuxer=aac \ --enable-hwaccels \ $ADDITIONAL_CONFIGURE_FLAG diff --git a/TMessagesProj/jni/image.cpp b/TMessagesProj/jni/image.cpp index 50c274c90c..90eda3d5d6 100644 --- a/TMessagesProj/jni/image.cpp +++ b/TMessagesProj/jni/image.cpp @@ -7,14 +7,12 @@ #include #include #include -#include -#include +//#include +//#include #include #include #include -#include "webp/decode.h" -#include "webp/encode.h" -#include "mozjpeg/turbojpeg.h" +//#include "mozjpeg/turbojpeg.h" #include "c_utils.h" extern "C" { @@ -654,58 +652,6 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_unpinBitmap(JNIEnv *env, jc AndroidBitmap_unlockPixels(env, bitmap); } -JNIEXPORT jboolean Java_org_telegram_messenger_Utilities_loadWebpImage(JNIEnv *env, jclass clazz, jobject outputBitmap, jobject buffer, jint len, jobject options, jboolean unpin) { - if (!buffer) { - env->ThrowNew(jclass_NullPointerException, "Input buffer can not be null"); - return 0; - } - - jbyte *inputBuffer = (jbyte *) env->GetDirectBufferAddress(buffer); - - int32_t bitmapWidth = 0; - int32_t bitmapHeight = 0; - if (!WebPGetInfo((uint8_t *)inputBuffer, len, &bitmapWidth, &bitmapHeight)) { - env->ThrowNew(jclass_RuntimeException, "Invalid WebP format"); - return 0; - } - - if (options && env->GetBooleanField(options, jclass_Options_inJustDecodeBounds) == JNI_TRUE) { - env->SetIntField(options, jclass_Options_outWidth, bitmapWidth); - env->SetIntField(options, jclass_Options_outHeight, bitmapHeight); - return 1; - } - - if (!outputBitmap) { - env->ThrowNew(jclass_NullPointerException, "output bitmap can not be null"); - return 0; - } - - AndroidBitmapInfo bitmapInfo; - if (AndroidBitmap_getInfo(env, outputBitmap, &bitmapInfo) != ANDROID_BITMAP_RESUT_SUCCESS) { - env->ThrowNew(jclass_RuntimeException, "Failed to get Bitmap information"); - return 0; - } - - void *bitmapPixels = nullptr; - if (AndroidBitmap_lockPixels(env, outputBitmap, &bitmapPixels) != ANDROID_BITMAP_RESUT_SUCCESS) { - env->ThrowNew(jclass_RuntimeException, "Failed to lock Bitmap pixels"); - return 0; - } - - if (!WebPDecodeRGBAInto((uint8_t *) inputBuffer, len, (uint8_t *) bitmapPixels, bitmapInfo.height * bitmapInfo.stride, bitmapInfo.stride)) { - AndroidBitmap_unlockPixels(env, outputBitmap); - env->ThrowNew(jclass_RuntimeException, "Failed to decode webp image"); - return 0; - } - - if (unpin && AndroidBitmap_unlockPixels(env, outputBitmap) != ANDROID_BITMAP_RESUT_SUCCESS) { - env->ThrowNew(jclass_RuntimeException, "Failed to unlock Bitmap pixels"); - return 0; - } - - return 1; -} - #define SQUARE(i) ((i)*(i)) inline static void zeroClearInt(int *p, size_t count) { @@ -1068,112 +1014,112 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_drawDitheredGradient(JNIEnv } } -JNIEXPORT jint Java_org_telegram_messenger_Utilities_saveProgressiveJpeg(JNIEnv *env, jclass clazz, jobject bitmap, jint width, jint height, jint stride, jint quality, jstring path) { - if (!bitmap || !path || !width || !height || !stride || stride != width * 4) { - return 0; - } - void *pixels = 0; - if (AndroidBitmap_lockPixels(env, bitmap, &pixels) < 0) { - return 0; - } - if (pixels == NULL) { - return 0; - } - tjhandle handle = 0; - if ((handle = tjInitCompress()) == NULL) { - return 0; - } - const char *pathStr = env->GetStringUTFChars(path, 0); - if (pathStr == NULL) { - return 0; - } - std::string filePath = std::string(pathStr); - if (pathStr != 0) { - env->ReleaseStringUTFChars(path, pathStr); - } - - const char *enabledValue = "1"; - const char *disabledValue = "0"; - setenv("TJ_OPTIMIZE", enabledValue, 1); - setenv("TJ_ARITHMETIC", disabledValue, 1); - setenv("TJ_PROGRESSIVE", enabledValue, 1); - setenv("TJ_REVERT", enabledValue, 1); - - TJSAMP jpegSubsamp = TJSAMP::TJSAMP_420; - jint buffSize = (jint) tjBufSize(width, height, jpegSubsamp); - unsigned char *jpegBuf = new unsigned char[buffSize]; - unsigned char *srcBuf = (unsigned char *) pixels; - - int pf = org_libjpegturbo_turbojpeg_TJ_PF_RGBA; - - jsize actualPitch = width * tjPixelSize[pf]; - jsize arraySize = (height - 1) * actualPitch + (width) * tjPixelSize[pf]; - unsigned long jpegSize = tjBufSize(width, height, jpegSubsamp); - - if (tjCompress2(handle, srcBuf, width, stride, height, pf, &jpegBuf, &jpegSize, jpegSubsamp, quality, TJFLAG_ACCURATEDCT | TJFLAG_PROGRESSIVE | TJFLAG_NOREALLOC) == 0) { - FILE *f = fopen(filePath.c_str(), "wb"); - if (f && fwrite(jpegBuf, sizeof(unsigned char), jpegSize, f) == jpegSize) { - fflush(f); - fsync(fileno(f)); - } else { - jpegSize = -1; - } - fclose(f); - } else { - jpegSize = -1; - } - delete[] jpegBuf; - tjDestroy(handle); - AndroidBitmap_unlockPixels(env, bitmap); - return jpegSize; - - /*struct jpeg_compress_struct cinfo; - struct jpeg_error_mgr jerr; - cinfo.err = jpeg_std_error(&jerr); - jpeg_create_compress(&cinfo); - - const char *pathStr = env->GetStringUTFChars(path, 0); - std::string filePath = std::string(pathStr); - if (pathStr != 0) { - env->ReleaseStringUTFChars(path, pathStr); - } - - uint8_t *outBuffer = NULL; - unsigned long outSize = 0; - jpeg_mem_dest(&cinfo, &outBuffer, &outSize); - unsigned char *srcBuf = (unsigned char *) pixels; - - cinfo.image_width = (uint32_t) width; - cinfo.image_height = (uint32_t) height; - cinfo.input_components = 4; - cinfo.in_color_space = JCS_EXT_RGBA; - jpeg_c_set_int_param(&cinfo, JINT_COMPRESS_PROFILE, JCP_FASTEST); - jpeg_set_defaults(&cinfo); - cinfo.arith_code = FALSE; - cinfo.dct_method = JDCT_ISLOW; - cinfo.optimize_coding = TRUE; - jpeg_set_quality(&cinfo, 78, 1); - jpeg_simple_progression(&cinfo); - jpeg_start_compress(&cinfo, 1); - - JSAMPROW rowPointer[1]; - while (cinfo.next_scanline < cinfo.image_height) { - rowPointer[0] = (JSAMPROW) (srcBuf + cinfo.next_scanline * stride); - jpeg_write_scanlines(&cinfo, rowPointer, 1); - } - - jpeg_finish_compress(&cinfo); - - FILE *f = fopen(filePath.c_str(), "wb"); - if (f && fwrite(outBuffer, sizeof(uint8_t), outSize, f) == outSize) { - fflush(f); - fsync(fileno(f)); - } - fclose(f); - - jpeg_destroy_compress(&cinfo); - return outSize;*/ -} +//JNIEXPORT jint Java_org_telegram_messenger_Utilities_saveProgressiveJpeg(JNIEnv *env, jclass clazz, jobject bitmap, jint width, jint height, jint stride, jint quality, jstring path) { +// if (!bitmap || !path || !width || !height || !stride || stride != width * 4) { +// return 0; +// } +// void *pixels = 0; +// if (AndroidBitmap_lockPixels(env, bitmap, &pixels) < 0) { +// return 0; +// } +// if (pixels == NULL) { +// return 0; +// } +// tjhandle handle = 0; +// if ((handle = tjInitCompress()) == NULL) { +// return 0; +// } +// const char *pathStr = env->GetStringUTFChars(path, 0); +// if (pathStr == NULL) { +// return 0; +// } +// std::string filePath = std::string(pathStr); +// if (pathStr != 0) { +// env->ReleaseStringUTFChars(path, pathStr); +// } +// +// const char *enabledValue = "1"; +// const char *disabledValue = "0"; +// setenv("TJ_OPTIMIZE", enabledValue, 1); +// setenv("TJ_ARITHMETIC", disabledValue, 1); +// setenv("TJ_PROGRESSIVE", enabledValue, 1); +// setenv("TJ_REVERT", enabledValue, 1); +// +// TJSAMP jpegSubsamp = TJSAMP::TJSAMP_420; +// jint buffSize = (jint) tjBufSize(width, height, jpegSubsamp); +// unsigned char *jpegBuf = new unsigned char[buffSize]; +// unsigned char *srcBuf = (unsigned char *) pixels; +// +// int pf = org_libjpegturbo_turbojpeg_TJ_PF_RGBA; +// +// jsize actualPitch = width * tjPixelSize[pf]; +// jsize arraySize = (height - 1) * actualPitch + (width) * tjPixelSize[pf]; +// unsigned long jpegSize = tjBufSize(width, height, jpegSubsamp); +// +// if (tjCompress2(handle, srcBuf, width, stride, height, pf, &jpegBuf, &jpegSize, jpegSubsamp, quality, TJFLAG_ACCURATEDCT | TJFLAG_PROGRESSIVE | TJFLAG_NOREALLOC) == 0) { +// FILE *f = fopen(filePath.c_str(), "wb"); +// if (f && fwrite(jpegBuf, sizeof(unsigned char), jpegSize, f) == jpegSize) { +// fflush(f); +// fsync(fileno(f)); +// } else { +// jpegSize = -1; +// } +// fclose(f); +// } else { +// jpegSize = -1; +// } +// delete[] jpegBuf; +// tjDestroy(handle); +// AndroidBitmap_unlockPixels(env, bitmap); +// return jpegSize; +// +// /*struct jpeg_compress_struct cinfo; +// struct jpeg_error_mgr jerr; +// cinfo.err = jpeg_std_error(&jerr); +// jpeg_create_compress(&cinfo); +// +// const char *pathStr = env->GetStringUTFChars(path, 0); +// std::string filePath = std::string(pathStr); +// if (pathStr != 0) { +// env->ReleaseStringUTFChars(path, pathStr); +// } +// +// uint8_t *outBuffer = NULL; +// unsigned long outSize = 0; +// jpeg_mem_dest(&cinfo, &outBuffer, &outSize); +// unsigned char *srcBuf = (unsigned char *) pixels; +// +// cinfo.image_width = (uint32_t) width; +// cinfo.image_height = (uint32_t) height; +// cinfo.input_components = 4; +// cinfo.in_color_space = JCS_EXT_RGBA; +// jpeg_c_set_int_param(&cinfo, JINT_COMPRESS_PROFILE, JCP_FASTEST); +// jpeg_set_defaults(&cinfo); +// cinfo.arith_code = FALSE; +// cinfo.dct_method = JDCT_ISLOW; +// cinfo.optimize_coding = TRUE; +// jpeg_set_quality(&cinfo, 78, 1); +// jpeg_simple_progression(&cinfo); +// jpeg_start_compress(&cinfo, 1); +// +// JSAMPROW rowPointer[1]; +// while (cinfo.next_scanline < cinfo.image_height) { +// rowPointer[0] = (JSAMPROW) (srcBuf + cinfo.next_scanline * stride); +// jpeg_write_scanlines(&cinfo, rowPointer, 1); +// } +// +// jpeg_finish_compress(&cinfo); +// +// FILE *f = fopen(filePath.c_str(), "wb"); +// if (f && fwrite(outBuffer, sizeof(uint8_t), outSize, f) == outSize) { +// fflush(f); +// fsync(fileno(f)); +// } +// fclose(f); +// +// jpeg_destroy_compress(&cinfo); +// return outSize;*/ +//} std::vector> gatherPositions(std::vector> list, int phase) { std::vector> result(4); diff --git a/TMessagesProj/jni/libwebp b/TMessagesProj/jni/libwebp deleted file mode 160000 index 4619a48fc3..0000000000 --- a/TMessagesProj/jni/libwebp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4619a48fc3292743d7ce9658bee4245406734109 diff --git a/TMessagesProj/jni/tgnet/ConnectionsManager.cpp b/TMessagesProj/jni/tgnet/ConnectionsManager.cpp index 528b70a203..0cc2fcc397 100644 --- a/TMessagesProj/jni/tgnet/ConnectionsManager.cpp +++ b/TMessagesProj/jni/tgnet/ConnectionsManager.cpp @@ -2752,8 +2752,6 @@ void ConnectionsManager::processRequestQueue(uint32_t connectionTypes, uint32_t if (request->connectionType & ConnectionTypeGeneric && connection->getConnectionToken() == 0) { iter++; - if (LOGS_ENABLED) - DEBUG_D("skip queue, token = %d: generic && connectionToken == 0", request->requestToken); continue; } @@ -2762,8 +2760,8 @@ void ConnectionsManager::processRequestQueue(uint32_t connectionTypes, uint32_t case ConnectionTypeGenericMedia: if (!canUseUnboundKey && genericRunningRequestCount >= MAX_GENERAL_REQUESTS) { iter++; - if (LOGS_ENABLED) - DEBUG_D("skip queue, token = %d: generic type: running generic requests >= 60", request->requestToken); +// if (LOGS_ENABLED) +// DEBUG_D("skip queue, token = %d: generic type: running generic requests >= %d", request->requestToken, MAX_GENERAL_REQUESTS); continue; } genericRunningRequestCount++; diff --git a/TMessagesProj/proguard-rules-beta.pro b/TMessagesProj/proguard-rules-beta.pro new file mode 100644 index 0000000000..c31330622c --- /dev/null +++ b/TMessagesProj/proguard-rules-beta.pro @@ -0,0 +1 @@ +-keep class org.telegram.tgnet.** { *; } \ No newline at end of file diff --git a/TMessagesProj/src/main/AndroidManifest.xml b/TMessagesProj/src/main/AndroidManifest.xml index 48f2f6a920..bbb37b7164 100644 --- a/TMessagesProj/src/main/AndroidManifest.xml +++ b/TMessagesProj/src/main/AndroidManifest.xml @@ -55,6 +55,12 @@ + + + + + + @@ -578,7 +584,11 @@ - + @@ -586,7 +596,11 @@ android:resource="@xml/auth"/> - + @@ -596,22 +610,70 @@ android:resource="@xml/contacts" /> - - - - - - - - + - - - + android:exported="true" + android:foregroundServiceType="mediaPlayback" + /> + + + + + + + + + @@ -625,9 +687,12 @@ - + android:exported="true" + android:foregroundServiceType="dataSync" + > @@ -708,9 +773,12 @@ - + android:foregroundServiceType="dataSync" + android:exported="false" + /> - + android:exported="false" + android:foregroundServiceType="dataSync" + /> - - - - - - + + + + + + + + @@ -785,6 +856,10 @@ + + diff --git a/TMessagesProj/src/main/assets/emoji/0_0.png b/TMessagesProj/src/main/assets/emoji/0_0.png index b4191a16a5..0c0e74c9f1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_0.png and b/TMessagesProj/src/main/assets/emoji/0_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1.png b/TMessagesProj/src/main/assets/emoji/0_1.png index 234b29339f..68dfb0a1c3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1.png and b/TMessagesProj/src/main/assets/emoji/0_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_10.png b/TMessagesProj/src/main/assets/emoji/0_10.png index 1c9fc55aba..ab160e5591 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_10.png and b/TMessagesProj/src/main/assets/emoji/0_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_100.png b/TMessagesProj/src/main/assets/emoji/0_100.png index 09e2451679..8667552430 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_100.png and b/TMessagesProj/src/main/assets/emoji/0_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1000.png b/TMessagesProj/src/main/assets/emoji/0_1000.png index b2d2cccc5c..d51a8bc1fb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1000.png and b/TMessagesProj/src/main/assets/emoji/0_1000.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1001.png b/TMessagesProj/src/main/assets/emoji/0_1001.png index df4b024f40..d1e4c5429c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1001.png and b/TMessagesProj/src/main/assets/emoji/0_1001.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1002.png b/TMessagesProj/src/main/assets/emoji/0_1002.png index 1fe589e84f..d67f985e68 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1002.png and b/TMessagesProj/src/main/assets/emoji/0_1002.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1003.png b/TMessagesProj/src/main/assets/emoji/0_1003.png index 371310c548..3d7a7fcd13 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1003.png and b/TMessagesProj/src/main/assets/emoji/0_1003.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1004.png b/TMessagesProj/src/main/assets/emoji/0_1004.png index 4e459af51a..4431cdbd94 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1004.png and b/TMessagesProj/src/main/assets/emoji/0_1004.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1005.png b/TMessagesProj/src/main/assets/emoji/0_1005.png index 910c102d26..0d34a557c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1005.png and b/TMessagesProj/src/main/assets/emoji/0_1005.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1006.png b/TMessagesProj/src/main/assets/emoji/0_1006.png index 0fc48d1b94..58d2dcbd2a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1006.png and b/TMessagesProj/src/main/assets/emoji/0_1006.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1007.png b/TMessagesProj/src/main/assets/emoji/0_1007.png index 168b08a74b..041da5ce22 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1007.png and b/TMessagesProj/src/main/assets/emoji/0_1007.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1008.png b/TMessagesProj/src/main/assets/emoji/0_1008.png index b454747553..5433039187 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1008.png and b/TMessagesProj/src/main/assets/emoji/0_1008.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1009.png b/TMessagesProj/src/main/assets/emoji/0_1009.png index e05df8e707..ff0cc605b3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1009.png and b/TMessagesProj/src/main/assets/emoji/0_1009.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_101.png b/TMessagesProj/src/main/assets/emoji/0_101.png index 15366e61a8..5782a11783 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_101.png and b/TMessagesProj/src/main/assets/emoji/0_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1010.png b/TMessagesProj/src/main/assets/emoji/0_1010.png index 1ddfb276a4..fe76b117e1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1010.png and b/TMessagesProj/src/main/assets/emoji/0_1010.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1011.png b/TMessagesProj/src/main/assets/emoji/0_1011.png index ba76ed72d9..b11942cb01 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1011.png and b/TMessagesProj/src/main/assets/emoji/0_1011.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1012.png b/TMessagesProj/src/main/assets/emoji/0_1012.png index 5772774ca9..71c0816bfd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1012.png and b/TMessagesProj/src/main/assets/emoji/0_1012.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1013.png b/TMessagesProj/src/main/assets/emoji/0_1013.png index 36bc80de91..224f194b78 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1013.png and b/TMessagesProj/src/main/assets/emoji/0_1013.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1014.png b/TMessagesProj/src/main/assets/emoji/0_1014.png index da34c7affb..2485fefa8d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1014.png and b/TMessagesProj/src/main/assets/emoji/0_1014.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1015.png b/TMessagesProj/src/main/assets/emoji/0_1015.png index 936f066d13..0b7678b989 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1015.png and b/TMessagesProj/src/main/assets/emoji/0_1015.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1016.png b/TMessagesProj/src/main/assets/emoji/0_1016.png index 94a3c3058d..6ec79032b5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1016.png and b/TMessagesProj/src/main/assets/emoji/0_1016.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1017.png b/TMessagesProj/src/main/assets/emoji/0_1017.png index 7033acc722..869f391ad6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1017.png and b/TMessagesProj/src/main/assets/emoji/0_1017.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1018.png b/TMessagesProj/src/main/assets/emoji/0_1018.png index 5469a74586..0f2dec95af 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1018.png and b/TMessagesProj/src/main/assets/emoji/0_1018.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1019.png b/TMessagesProj/src/main/assets/emoji/0_1019.png index 3e52c55d88..ec5fa6e75a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1019.png and b/TMessagesProj/src/main/assets/emoji/0_1019.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_102.png b/TMessagesProj/src/main/assets/emoji/0_102.png index 012f5f9e39..adaa314d95 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_102.png and b/TMessagesProj/src/main/assets/emoji/0_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1020.png b/TMessagesProj/src/main/assets/emoji/0_1020.png index a81860f659..ff29a0b050 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1020.png and b/TMessagesProj/src/main/assets/emoji/0_1020.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1021.png b/TMessagesProj/src/main/assets/emoji/0_1021.png index 1d253707eb..b79e02828a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1021.png and b/TMessagesProj/src/main/assets/emoji/0_1021.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1022.png b/TMessagesProj/src/main/assets/emoji/0_1022.png index 584870e415..24c2b038a6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1022.png and b/TMessagesProj/src/main/assets/emoji/0_1022.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1023.png b/TMessagesProj/src/main/assets/emoji/0_1023.png index 8c1bf99e22..941c58756c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1023.png and b/TMessagesProj/src/main/assets/emoji/0_1023.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1024.png b/TMessagesProj/src/main/assets/emoji/0_1024.png index b3cffcfce7..6f90524a64 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1024.png and b/TMessagesProj/src/main/assets/emoji/0_1024.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1025.png b/TMessagesProj/src/main/assets/emoji/0_1025.png index 09c866cf1b..4aebdadd8b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1025.png and b/TMessagesProj/src/main/assets/emoji/0_1025.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1026.png b/TMessagesProj/src/main/assets/emoji/0_1026.png index 15ae8917d4..30aec37f00 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1026.png and b/TMessagesProj/src/main/assets/emoji/0_1026.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1027.png b/TMessagesProj/src/main/assets/emoji/0_1027.png index 1bb44ecb41..8ad04a5208 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1027.png and b/TMessagesProj/src/main/assets/emoji/0_1027.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1028.png b/TMessagesProj/src/main/assets/emoji/0_1028.png index b4c81a687a..3dd363609f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1028.png and b/TMessagesProj/src/main/assets/emoji/0_1028.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1029.png b/TMessagesProj/src/main/assets/emoji/0_1029.png index c130299b93..7cde262b87 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1029.png and b/TMessagesProj/src/main/assets/emoji/0_1029.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_103.png b/TMessagesProj/src/main/assets/emoji/0_103.png index bba6e358e2..edf944ea8d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_103.png and b/TMessagesProj/src/main/assets/emoji/0_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1030.png b/TMessagesProj/src/main/assets/emoji/0_1030.png index dc4c65368b..72517fe8f5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1030.png and b/TMessagesProj/src/main/assets/emoji/0_1030.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1031.png b/TMessagesProj/src/main/assets/emoji/0_1031.png index c0b0053600..01197aba5b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1031.png and b/TMessagesProj/src/main/assets/emoji/0_1031.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1032.png b/TMessagesProj/src/main/assets/emoji/0_1032.png index fade91c118..46430bd7d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1032.png and b/TMessagesProj/src/main/assets/emoji/0_1032.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1033.png b/TMessagesProj/src/main/assets/emoji/0_1033.png index f2e217b26b..66e50ce0d0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1033.png and b/TMessagesProj/src/main/assets/emoji/0_1033.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1034.png b/TMessagesProj/src/main/assets/emoji/0_1034.png index 7c0bcd436b..3fa69b105f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1034.png and b/TMessagesProj/src/main/assets/emoji/0_1034.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1035.png b/TMessagesProj/src/main/assets/emoji/0_1035.png index d678e48d07..7e67ef91f5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1035.png and b/TMessagesProj/src/main/assets/emoji/0_1035.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1036.png b/TMessagesProj/src/main/assets/emoji/0_1036.png index 5ccb4d0c30..39e56f2d64 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1036.png and b/TMessagesProj/src/main/assets/emoji/0_1036.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1037.png b/TMessagesProj/src/main/assets/emoji/0_1037.png index 2c441c1387..c1dd087fd9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1037.png and b/TMessagesProj/src/main/assets/emoji/0_1037.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1038.png b/TMessagesProj/src/main/assets/emoji/0_1038.png index 25e4143d81..3616bb2c92 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1038.png and b/TMessagesProj/src/main/assets/emoji/0_1038.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1039.png b/TMessagesProj/src/main/assets/emoji/0_1039.png index 8dcec8f13f..fed6c05876 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1039.png and b/TMessagesProj/src/main/assets/emoji/0_1039.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_104.png b/TMessagesProj/src/main/assets/emoji/0_104.png index 7ab804da2d..d5ba363289 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_104.png and b/TMessagesProj/src/main/assets/emoji/0_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1040.png b/TMessagesProj/src/main/assets/emoji/0_1040.png index 663a81c697..c42ca9f1d3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1040.png and b/TMessagesProj/src/main/assets/emoji/0_1040.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1041.png b/TMessagesProj/src/main/assets/emoji/0_1041.png index 6349731e28..bf1a81b550 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1041.png and b/TMessagesProj/src/main/assets/emoji/0_1041.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1042.png b/TMessagesProj/src/main/assets/emoji/0_1042.png index b2f2ebe15d..49019e7802 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1042.png and b/TMessagesProj/src/main/assets/emoji/0_1042.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1043.png b/TMessagesProj/src/main/assets/emoji/0_1043.png index f9117ce2a5..8d95dc1c41 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1043.png and b/TMessagesProj/src/main/assets/emoji/0_1043.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1044.png b/TMessagesProj/src/main/assets/emoji/0_1044.png index 87386ff0f5..f27403ac39 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1044.png and b/TMessagesProj/src/main/assets/emoji/0_1044.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1045.png b/TMessagesProj/src/main/assets/emoji/0_1045.png index 8c475fa0ad..544bfe42b1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1045.png and b/TMessagesProj/src/main/assets/emoji/0_1045.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1046.png b/TMessagesProj/src/main/assets/emoji/0_1046.png index 7f687f5b22..c286d2e928 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1046.png and b/TMessagesProj/src/main/assets/emoji/0_1046.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1047.png b/TMessagesProj/src/main/assets/emoji/0_1047.png index e97b5832d7..967a586333 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1047.png and b/TMessagesProj/src/main/assets/emoji/0_1047.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1048.png b/TMessagesProj/src/main/assets/emoji/0_1048.png index 054678d9b3..9dfbd12af0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1048.png and b/TMessagesProj/src/main/assets/emoji/0_1048.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1049.png b/TMessagesProj/src/main/assets/emoji/0_1049.png index 6150b8df3f..bb82645dac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1049.png and b/TMessagesProj/src/main/assets/emoji/0_1049.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_105.png b/TMessagesProj/src/main/assets/emoji/0_105.png index 63e73b2195..1046ba91cd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_105.png and b/TMessagesProj/src/main/assets/emoji/0_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1050.png b/TMessagesProj/src/main/assets/emoji/0_1050.png index f977cf67cb..5c5e06317d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1050.png and b/TMessagesProj/src/main/assets/emoji/0_1050.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1051.png b/TMessagesProj/src/main/assets/emoji/0_1051.png index ad30c0d1c5..0ddfa592e0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1051.png and b/TMessagesProj/src/main/assets/emoji/0_1051.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1052.png b/TMessagesProj/src/main/assets/emoji/0_1052.png index 98fc534410..df6f73dede 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1052.png and b/TMessagesProj/src/main/assets/emoji/0_1052.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1053.png b/TMessagesProj/src/main/assets/emoji/0_1053.png index 4ed5ffc1ec..43bf90afd1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1053.png and b/TMessagesProj/src/main/assets/emoji/0_1053.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1054.png b/TMessagesProj/src/main/assets/emoji/0_1054.png index b9db35b66d..e517a957e4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1054.png and b/TMessagesProj/src/main/assets/emoji/0_1054.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1055.png b/TMessagesProj/src/main/assets/emoji/0_1055.png index 238c1cd2c8..aef13fb577 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1055.png and b/TMessagesProj/src/main/assets/emoji/0_1055.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1056.png b/TMessagesProj/src/main/assets/emoji/0_1056.png index a42c758712..48cda32a84 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1056.png and b/TMessagesProj/src/main/assets/emoji/0_1056.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1057.png b/TMessagesProj/src/main/assets/emoji/0_1057.png index 00f78a1126..8c1f1956d2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1057.png and b/TMessagesProj/src/main/assets/emoji/0_1057.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1058.png b/TMessagesProj/src/main/assets/emoji/0_1058.png index fa0edbc84c..c68068590e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1058.png and b/TMessagesProj/src/main/assets/emoji/0_1058.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1059.png b/TMessagesProj/src/main/assets/emoji/0_1059.png index 5a43e56221..a1388f0ca9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1059.png and b/TMessagesProj/src/main/assets/emoji/0_1059.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_106.png b/TMessagesProj/src/main/assets/emoji/0_106.png index af20883278..e2e5ea3772 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_106.png and b/TMessagesProj/src/main/assets/emoji/0_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1060.png b/TMessagesProj/src/main/assets/emoji/0_1060.png index 750e6f4786..c9ab8bf554 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1060.png and b/TMessagesProj/src/main/assets/emoji/0_1060.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1061.png b/TMessagesProj/src/main/assets/emoji/0_1061.png index 31cc59de2f..003f30035e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1061.png and b/TMessagesProj/src/main/assets/emoji/0_1061.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1062.png b/TMessagesProj/src/main/assets/emoji/0_1062.png index 9cb9f8976f..2da33638f2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1062.png and b/TMessagesProj/src/main/assets/emoji/0_1062.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1063.png b/TMessagesProj/src/main/assets/emoji/0_1063.png index 66ab2c34ec..b5a4cf9d23 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1063.png and b/TMessagesProj/src/main/assets/emoji/0_1063.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1064.png b/TMessagesProj/src/main/assets/emoji/0_1064.png index b8c6987db5..9268267877 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1064.png and b/TMessagesProj/src/main/assets/emoji/0_1064.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1065.png b/TMessagesProj/src/main/assets/emoji/0_1065.png index 93e315d8da..d9c0078e59 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1065.png and b/TMessagesProj/src/main/assets/emoji/0_1065.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1066.png b/TMessagesProj/src/main/assets/emoji/0_1066.png index 7969dc610b..ff2dc2c936 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1066.png and b/TMessagesProj/src/main/assets/emoji/0_1066.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1067.png b/TMessagesProj/src/main/assets/emoji/0_1067.png index a419f9cc71..4f5b614c38 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1067.png and b/TMessagesProj/src/main/assets/emoji/0_1067.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1068.png b/TMessagesProj/src/main/assets/emoji/0_1068.png index c4da1a4729..98a6cdb532 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1068.png and b/TMessagesProj/src/main/assets/emoji/0_1068.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1069.png b/TMessagesProj/src/main/assets/emoji/0_1069.png index e50fe369be..a275f68e37 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1069.png and b/TMessagesProj/src/main/assets/emoji/0_1069.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_107.png b/TMessagesProj/src/main/assets/emoji/0_107.png index 63145fe4ab..31f1832f9e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_107.png and b/TMessagesProj/src/main/assets/emoji/0_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1070.png b/TMessagesProj/src/main/assets/emoji/0_1070.png index db7fbde2fd..a9b017b24c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1070.png and b/TMessagesProj/src/main/assets/emoji/0_1070.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1071.png b/TMessagesProj/src/main/assets/emoji/0_1071.png index 4972a1c553..c4d9ac7b27 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1071.png and b/TMessagesProj/src/main/assets/emoji/0_1071.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1072.png b/TMessagesProj/src/main/assets/emoji/0_1072.png index 3578cc068a..f80b6a4afa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1072.png and b/TMessagesProj/src/main/assets/emoji/0_1072.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1073.png b/TMessagesProj/src/main/assets/emoji/0_1073.png index 3155dd71ba..a34f44e09a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1073.png and b/TMessagesProj/src/main/assets/emoji/0_1073.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1074.png b/TMessagesProj/src/main/assets/emoji/0_1074.png index a2283c78a6..20cefa0f7b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1074.png and b/TMessagesProj/src/main/assets/emoji/0_1074.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1075.png b/TMessagesProj/src/main/assets/emoji/0_1075.png index 1e9029a287..03de6d53e0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1075.png and b/TMessagesProj/src/main/assets/emoji/0_1075.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1076.png b/TMessagesProj/src/main/assets/emoji/0_1076.png index c23b2229b7..abe6536d9b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1076.png and b/TMessagesProj/src/main/assets/emoji/0_1076.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1077.png b/TMessagesProj/src/main/assets/emoji/0_1077.png index d6afd50027..e9ec2c13f0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1077.png and b/TMessagesProj/src/main/assets/emoji/0_1077.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1078.png b/TMessagesProj/src/main/assets/emoji/0_1078.png index f1caa7b737..02add804f2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1078.png and b/TMessagesProj/src/main/assets/emoji/0_1078.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1079.png b/TMessagesProj/src/main/assets/emoji/0_1079.png index df9977e028..e2a3f4108d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1079.png and b/TMessagesProj/src/main/assets/emoji/0_1079.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_108.png b/TMessagesProj/src/main/assets/emoji/0_108.png index a6cca4aee2..4c73b26e5a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_108.png and b/TMessagesProj/src/main/assets/emoji/0_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1080.png b/TMessagesProj/src/main/assets/emoji/0_1080.png index 128d24a6a2..68cb8a2603 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1080.png and b/TMessagesProj/src/main/assets/emoji/0_1080.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1081.png b/TMessagesProj/src/main/assets/emoji/0_1081.png index e5c64f36b4..196bb346ed 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1081.png and b/TMessagesProj/src/main/assets/emoji/0_1081.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1082.png b/TMessagesProj/src/main/assets/emoji/0_1082.png index b6a710b435..470b6c29e1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1082.png and b/TMessagesProj/src/main/assets/emoji/0_1082.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1083.png b/TMessagesProj/src/main/assets/emoji/0_1083.png index 078e9a4b24..e3a7273b41 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1083.png and b/TMessagesProj/src/main/assets/emoji/0_1083.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1084.png b/TMessagesProj/src/main/assets/emoji/0_1084.png index 2d380306f7..f8f376e1e1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1084.png and b/TMessagesProj/src/main/assets/emoji/0_1084.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1085.png b/TMessagesProj/src/main/assets/emoji/0_1085.png index eb9acdd2c0..be4fb4b639 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1085.png and b/TMessagesProj/src/main/assets/emoji/0_1085.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1086.png b/TMessagesProj/src/main/assets/emoji/0_1086.png index 194fec1c50..565ef21911 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1086.png and b/TMessagesProj/src/main/assets/emoji/0_1086.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1087.png b/TMessagesProj/src/main/assets/emoji/0_1087.png index f4a4cdae38..e8eb4b88de 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1087.png and b/TMessagesProj/src/main/assets/emoji/0_1087.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1088.png b/TMessagesProj/src/main/assets/emoji/0_1088.png index c5fcf7f6ff..81321ab179 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1088.png and b/TMessagesProj/src/main/assets/emoji/0_1088.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1089.png b/TMessagesProj/src/main/assets/emoji/0_1089.png index 79e6169ab3..e7b279f8b0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1089.png and b/TMessagesProj/src/main/assets/emoji/0_1089.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_109.png b/TMessagesProj/src/main/assets/emoji/0_109.png index a9187f7152..0c0c07b3ce 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_109.png and b/TMessagesProj/src/main/assets/emoji/0_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1090.png b/TMessagesProj/src/main/assets/emoji/0_1090.png index cca2db2595..79a8de8517 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1090.png and b/TMessagesProj/src/main/assets/emoji/0_1090.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1091.png b/TMessagesProj/src/main/assets/emoji/0_1091.png index e6d69f8042..938968bd07 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1091.png and b/TMessagesProj/src/main/assets/emoji/0_1091.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1092.png b/TMessagesProj/src/main/assets/emoji/0_1092.png index a86c0a54ac..59e52b52b4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1092.png and b/TMessagesProj/src/main/assets/emoji/0_1092.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1093.png b/TMessagesProj/src/main/assets/emoji/0_1093.png index 3af0ee756b..b75f0ad850 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1093.png and b/TMessagesProj/src/main/assets/emoji/0_1093.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1094.png b/TMessagesProj/src/main/assets/emoji/0_1094.png index ec6c9f3493..306da83683 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1094.png and b/TMessagesProj/src/main/assets/emoji/0_1094.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1095.png b/TMessagesProj/src/main/assets/emoji/0_1095.png index 4ea0bdaaa0..b242f9d2da 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1095.png and b/TMessagesProj/src/main/assets/emoji/0_1095.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1096.png b/TMessagesProj/src/main/assets/emoji/0_1096.png index 7ea7d4623f..c62b5e5a61 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1096.png and b/TMessagesProj/src/main/assets/emoji/0_1096.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1097.png b/TMessagesProj/src/main/assets/emoji/0_1097.png index fc9792caeb..a8d69007f1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1097.png and b/TMessagesProj/src/main/assets/emoji/0_1097.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1098.png b/TMessagesProj/src/main/assets/emoji/0_1098.png index ffbaccb109..42609d3bed 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1098.png and b/TMessagesProj/src/main/assets/emoji/0_1098.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1099.png b/TMessagesProj/src/main/assets/emoji/0_1099.png index f87e312980..cb8053216a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1099.png and b/TMessagesProj/src/main/assets/emoji/0_1099.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_11.png b/TMessagesProj/src/main/assets/emoji/0_11.png index a0c5850b2d..5d0e8bcbd1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_11.png and b/TMessagesProj/src/main/assets/emoji/0_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_110.png b/TMessagesProj/src/main/assets/emoji/0_110.png index 03926b011c..4327944ff9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_110.png and b/TMessagesProj/src/main/assets/emoji/0_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1100.png b/TMessagesProj/src/main/assets/emoji/0_1100.png index c01d751ffc..2539898d53 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1100.png and b/TMessagesProj/src/main/assets/emoji/0_1100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1101.png b/TMessagesProj/src/main/assets/emoji/0_1101.png index cee5796441..810e37d7aa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1101.png and b/TMessagesProj/src/main/assets/emoji/0_1101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1102.png b/TMessagesProj/src/main/assets/emoji/0_1102.png index 4d8344c413..685091bb49 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1102.png and b/TMessagesProj/src/main/assets/emoji/0_1102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1103.png b/TMessagesProj/src/main/assets/emoji/0_1103.png index 1a6e59beb6..df293e3166 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1103.png and b/TMessagesProj/src/main/assets/emoji/0_1103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1104.png b/TMessagesProj/src/main/assets/emoji/0_1104.png index 3746021bfd..ed75380455 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1104.png and b/TMessagesProj/src/main/assets/emoji/0_1104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1105.png b/TMessagesProj/src/main/assets/emoji/0_1105.png index f0e4e24899..de402fdd21 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1105.png and b/TMessagesProj/src/main/assets/emoji/0_1105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1106.png b/TMessagesProj/src/main/assets/emoji/0_1106.png index 699b3414ab..c4c12294e6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1106.png and b/TMessagesProj/src/main/assets/emoji/0_1106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1107.png b/TMessagesProj/src/main/assets/emoji/0_1107.png index 0f31e8de93..c78db261b2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1107.png and b/TMessagesProj/src/main/assets/emoji/0_1107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1108.png b/TMessagesProj/src/main/assets/emoji/0_1108.png index 44d5a57294..6ad631e899 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1108.png and b/TMessagesProj/src/main/assets/emoji/0_1108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1109.png b/TMessagesProj/src/main/assets/emoji/0_1109.png index ddec2b002b..27cebdc7e5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1109.png and b/TMessagesProj/src/main/assets/emoji/0_1109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_111.png b/TMessagesProj/src/main/assets/emoji/0_111.png index 1230f0b8cb..d20f17b82b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_111.png and b/TMessagesProj/src/main/assets/emoji/0_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1110.png b/TMessagesProj/src/main/assets/emoji/0_1110.png index 127e12e70b..05ed308daf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1110.png and b/TMessagesProj/src/main/assets/emoji/0_1110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1111.png b/TMessagesProj/src/main/assets/emoji/0_1111.png index 8a80d49727..81dddd35eb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1111.png and b/TMessagesProj/src/main/assets/emoji/0_1111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1112.png b/TMessagesProj/src/main/assets/emoji/0_1112.png index 14fe150b77..58b82bf670 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1112.png and b/TMessagesProj/src/main/assets/emoji/0_1112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1113.png b/TMessagesProj/src/main/assets/emoji/0_1113.png index b505f96a9f..7f516fb7ac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1113.png and b/TMessagesProj/src/main/assets/emoji/0_1113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1114.png b/TMessagesProj/src/main/assets/emoji/0_1114.png index 2b4249ed96..c181cbe345 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1114.png and b/TMessagesProj/src/main/assets/emoji/0_1114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1115.png b/TMessagesProj/src/main/assets/emoji/0_1115.png index e48568636c..635fa72ac1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1115.png and b/TMessagesProj/src/main/assets/emoji/0_1115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1116.png b/TMessagesProj/src/main/assets/emoji/0_1116.png index 4b81251f05..0b6db2eee8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1116.png and b/TMessagesProj/src/main/assets/emoji/0_1116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1117.png b/TMessagesProj/src/main/assets/emoji/0_1117.png index ad011f5fc5..288e697a72 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1117.png and b/TMessagesProj/src/main/assets/emoji/0_1117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1118.png b/TMessagesProj/src/main/assets/emoji/0_1118.png index 7fbaf5ebb0..d6b2f0bd0c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1118.png and b/TMessagesProj/src/main/assets/emoji/0_1118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1119.png b/TMessagesProj/src/main/assets/emoji/0_1119.png index 313cf525c9..c496093c66 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1119.png and b/TMessagesProj/src/main/assets/emoji/0_1119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_112.png b/TMessagesProj/src/main/assets/emoji/0_112.png index 530ebe1bde..bafd1ae33d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_112.png and b/TMessagesProj/src/main/assets/emoji/0_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1120.png b/TMessagesProj/src/main/assets/emoji/0_1120.png index ddd4483e82..0e7dd57d78 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1120.png and b/TMessagesProj/src/main/assets/emoji/0_1120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1121.png b/TMessagesProj/src/main/assets/emoji/0_1121.png index 43443e7ec8..68e29860ae 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1121.png and b/TMessagesProj/src/main/assets/emoji/0_1121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1122.png b/TMessagesProj/src/main/assets/emoji/0_1122.png index cd9298923d..369304a021 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1122.png and b/TMessagesProj/src/main/assets/emoji/0_1122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1123.png b/TMessagesProj/src/main/assets/emoji/0_1123.png index 78e5d3e166..f78f402dcf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1123.png and b/TMessagesProj/src/main/assets/emoji/0_1123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1124.png b/TMessagesProj/src/main/assets/emoji/0_1124.png index 40336f2281..52e50a5449 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1124.png and b/TMessagesProj/src/main/assets/emoji/0_1124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1125.png b/TMessagesProj/src/main/assets/emoji/0_1125.png index ade2109f87..79bc40e132 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1125.png and b/TMessagesProj/src/main/assets/emoji/0_1125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1126.png b/TMessagesProj/src/main/assets/emoji/0_1126.png index f401a619a5..5b58decd62 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1126.png and b/TMessagesProj/src/main/assets/emoji/0_1126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1127.png b/TMessagesProj/src/main/assets/emoji/0_1127.png index a8112ce40b..bb1c65967b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1127.png and b/TMessagesProj/src/main/assets/emoji/0_1127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1128.png b/TMessagesProj/src/main/assets/emoji/0_1128.png index 66bde2e29f..b68b22f5c3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1128.png and b/TMessagesProj/src/main/assets/emoji/0_1128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1129.png b/TMessagesProj/src/main/assets/emoji/0_1129.png index 6149bf5266..82ecc219d2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1129.png and b/TMessagesProj/src/main/assets/emoji/0_1129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_113.png b/TMessagesProj/src/main/assets/emoji/0_113.png index 7dcd2ff6cd..59df1e910e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_113.png and b/TMessagesProj/src/main/assets/emoji/0_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1130.png b/TMessagesProj/src/main/assets/emoji/0_1130.png index 1f149976bc..09f0a0ef9b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1130.png and b/TMessagesProj/src/main/assets/emoji/0_1130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1131.png b/TMessagesProj/src/main/assets/emoji/0_1131.png index 933bdb1a66..96edda850d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1131.png and b/TMessagesProj/src/main/assets/emoji/0_1131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1132.png b/TMessagesProj/src/main/assets/emoji/0_1132.png index 102b58aeed..cb1931f186 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1132.png and b/TMessagesProj/src/main/assets/emoji/0_1132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1133.png b/TMessagesProj/src/main/assets/emoji/0_1133.png index ba15cbe5d4..ac5d5eca1e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1133.png and b/TMessagesProj/src/main/assets/emoji/0_1133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1134.png b/TMessagesProj/src/main/assets/emoji/0_1134.png index 9a01a29348..c662ab905b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1134.png and b/TMessagesProj/src/main/assets/emoji/0_1134.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1135.png b/TMessagesProj/src/main/assets/emoji/0_1135.png index 8717679842..4ec5609379 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1135.png and b/TMessagesProj/src/main/assets/emoji/0_1135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1136.png b/TMessagesProj/src/main/assets/emoji/0_1136.png index dc56584aaf..3cedc9dc8d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1136.png and b/TMessagesProj/src/main/assets/emoji/0_1136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1137.png b/TMessagesProj/src/main/assets/emoji/0_1137.png index 15e9b899e5..73d92c0cd9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1137.png and b/TMessagesProj/src/main/assets/emoji/0_1137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1138.png b/TMessagesProj/src/main/assets/emoji/0_1138.png index 6d062a3965..06c56cddbc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1138.png and b/TMessagesProj/src/main/assets/emoji/0_1138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1139.png b/TMessagesProj/src/main/assets/emoji/0_1139.png index 61ab06d466..4f8d74d4ff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1139.png and b/TMessagesProj/src/main/assets/emoji/0_1139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_114.png b/TMessagesProj/src/main/assets/emoji/0_114.png index 341fb2f9b3..e0682c4f99 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_114.png and b/TMessagesProj/src/main/assets/emoji/0_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1140.png b/TMessagesProj/src/main/assets/emoji/0_1140.png index 0e2f389c16..6833d29d1f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1140.png and b/TMessagesProj/src/main/assets/emoji/0_1140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1141.png b/TMessagesProj/src/main/assets/emoji/0_1141.png index 5b06731bdf..65e8f93837 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1141.png and b/TMessagesProj/src/main/assets/emoji/0_1141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1142.png b/TMessagesProj/src/main/assets/emoji/0_1142.png index 187b1f91cf..8e944a1a63 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1142.png and b/TMessagesProj/src/main/assets/emoji/0_1142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1143.png b/TMessagesProj/src/main/assets/emoji/0_1143.png index 40a5ef4e05..b2c45066f7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1143.png and b/TMessagesProj/src/main/assets/emoji/0_1143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1144.png b/TMessagesProj/src/main/assets/emoji/0_1144.png index 232178acbc..bd204b6bca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1144.png and b/TMessagesProj/src/main/assets/emoji/0_1144.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1145.png b/TMessagesProj/src/main/assets/emoji/0_1145.png index ace82b6140..4c54706bc7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1145.png and b/TMessagesProj/src/main/assets/emoji/0_1145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1146.png b/TMessagesProj/src/main/assets/emoji/0_1146.png index 05c96c6899..e0f5207f1a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1146.png and b/TMessagesProj/src/main/assets/emoji/0_1146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1147.png b/TMessagesProj/src/main/assets/emoji/0_1147.png index 87d10c12aa..92ce57585b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1147.png and b/TMessagesProj/src/main/assets/emoji/0_1147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1148.png b/TMessagesProj/src/main/assets/emoji/0_1148.png index c0cdbade17..7ed8ae1f22 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1148.png and b/TMessagesProj/src/main/assets/emoji/0_1148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1149.png b/TMessagesProj/src/main/assets/emoji/0_1149.png index 5fe8989306..1c92c074a9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1149.png and b/TMessagesProj/src/main/assets/emoji/0_1149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_115.png b/TMessagesProj/src/main/assets/emoji/0_115.png index cd07558642..46eed233eb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_115.png and b/TMessagesProj/src/main/assets/emoji/0_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1150.png b/TMessagesProj/src/main/assets/emoji/0_1150.png index 24f128923b..e10a0c371a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1150.png and b/TMessagesProj/src/main/assets/emoji/0_1150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1151.png b/TMessagesProj/src/main/assets/emoji/0_1151.png index 20c377fb39..9df9a0185a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1151.png and b/TMessagesProj/src/main/assets/emoji/0_1151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1152.png b/TMessagesProj/src/main/assets/emoji/0_1152.png index 37b09e72ae..afa1e417b9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1152.png and b/TMessagesProj/src/main/assets/emoji/0_1152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1153.png b/TMessagesProj/src/main/assets/emoji/0_1153.png index e895d09445..31782c00a3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1153.png and b/TMessagesProj/src/main/assets/emoji/0_1153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1154.png b/TMessagesProj/src/main/assets/emoji/0_1154.png index 2fa67e45dd..8f2bae0fd1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1154.png and b/TMessagesProj/src/main/assets/emoji/0_1154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1155.png b/TMessagesProj/src/main/assets/emoji/0_1155.png index ee14876975..a54aad0ccc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1155.png and b/TMessagesProj/src/main/assets/emoji/0_1155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1156.png b/TMessagesProj/src/main/assets/emoji/0_1156.png index 56cfedc84c..8c003a6b08 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1156.png and b/TMessagesProj/src/main/assets/emoji/0_1156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1157.png b/TMessagesProj/src/main/assets/emoji/0_1157.png index c8e432a942..198e40ef57 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1157.png and b/TMessagesProj/src/main/assets/emoji/0_1157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1158.png b/TMessagesProj/src/main/assets/emoji/0_1158.png index b41bdce5a8..d1c0b47b4b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1158.png and b/TMessagesProj/src/main/assets/emoji/0_1158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1159.png b/TMessagesProj/src/main/assets/emoji/0_1159.png index 96e77ff553..64fb2fe6d1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1159.png and b/TMessagesProj/src/main/assets/emoji/0_1159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_116.png b/TMessagesProj/src/main/assets/emoji/0_116.png index 80f4ea7554..c50bd38ce2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_116.png and b/TMessagesProj/src/main/assets/emoji/0_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1160.png b/TMessagesProj/src/main/assets/emoji/0_1160.png index 976b649b00..406af8905b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1160.png and b/TMessagesProj/src/main/assets/emoji/0_1160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1161.png b/TMessagesProj/src/main/assets/emoji/0_1161.png index 5017e1608d..be4f03f41a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1161.png and b/TMessagesProj/src/main/assets/emoji/0_1161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1162.png b/TMessagesProj/src/main/assets/emoji/0_1162.png index bee1825b7f..b0b405d9d9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1162.png and b/TMessagesProj/src/main/assets/emoji/0_1162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1163.png b/TMessagesProj/src/main/assets/emoji/0_1163.png index 031dc84a17..60281a765f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1163.png and b/TMessagesProj/src/main/assets/emoji/0_1163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1164.png b/TMessagesProj/src/main/assets/emoji/0_1164.png index 0415e68592..69def999e7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1164.png and b/TMessagesProj/src/main/assets/emoji/0_1164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1165.png b/TMessagesProj/src/main/assets/emoji/0_1165.png index 81aced2879..d9d22ea27f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1165.png and b/TMessagesProj/src/main/assets/emoji/0_1165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1166.png b/TMessagesProj/src/main/assets/emoji/0_1166.png index 819680f4b7..69970c4903 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1166.png and b/TMessagesProj/src/main/assets/emoji/0_1166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1167.png b/TMessagesProj/src/main/assets/emoji/0_1167.png index 9bdd32f12d..90927f9335 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1167.png and b/TMessagesProj/src/main/assets/emoji/0_1167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1168.png b/TMessagesProj/src/main/assets/emoji/0_1168.png index 14cb09de5f..7d0d2b6638 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1168.png and b/TMessagesProj/src/main/assets/emoji/0_1168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1169.png b/TMessagesProj/src/main/assets/emoji/0_1169.png index a996baf76f..0a1073aa55 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1169.png and b/TMessagesProj/src/main/assets/emoji/0_1169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_117.png b/TMessagesProj/src/main/assets/emoji/0_117.png index cc7de0cbba..0a2bde1a74 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_117.png and b/TMessagesProj/src/main/assets/emoji/0_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1170.png b/TMessagesProj/src/main/assets/emoji/0_1170.png index 84bce55fd6..4d4c4db324 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1170.png and b/TMessagesProj/src/main/assets/emoji/0_1170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1171.png b/TMessagesProj/src/main/assets/emoji/0_1171.png index 5f8eea8aee..69241c81db 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1171.png and b/TMessagesProj/src/main/assets/emoji/0_1171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1172.png b/TMessagesProj/src/main/assets/emoji/0_1172.png index 521d6631d4..60c88694fb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1172.png and b/TMessagesProj/src/main/assets/emoji/0_1172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1173.png b/TMessagesProj/src/main/assets/emoji/0_1173.png index a56dd076f1..2f07d59a78 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1173.png and b/TMessagesProj/src/main/assets/emoji/0_1173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1174.png b/TMessagesProj/src/main/assets/emoji/0_1174.png index 73d5e7ca64..cd469020c0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1174.png and b/TMessagesProj/src/main/assets/emoji/0_1174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1175.png b/TMessagesProj/src/main/assets/emoji/0_1175.png index a0c7f3b844..43b0204eec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1175.png and b/TMessagesProj/src/main/assets/emoji/0_1175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1176.png b/TMessagesProj/src/main/assets/emoji/0_1176.png index 8c16f2ad97..29f76fc3e9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1176.png and b/TMessagesProj/src/main/assets/emoji/0_1176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1177.png b/TMessagesProj/src/main/assets/emoji/0_1177.png index 5147a17f8c..bd33792432 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1177.png and b/TMessagesProj/src/main/assets/emoji/0_1177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1178.png b/TMessagesProj/src/main/assets/emoji/0_1178.png index 766d171a73..7d36abdbe9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1178.png and b/TMessagesProj/src/main/assets/emoji/0_1178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1179.png b/TMessagesProj/src/main/assets/emoji/0_1179.png index a0dfaac2da..c3d9262521 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1179.png and b/TMessagesProj/src/main/assets/emoji/0_1179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_118.png b/TMessagesProj/src/main/assets/emoji/0_118.png index 211fe9244d..b6d0e7cb28 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_118.png and b/TMessagesProj/src/main/assets/emoji/0_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1180.png b/TMessagesProj/src/main/assets/emoji/0_1180.png index a034bf63f5..78ee89133b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1180.png and b/TMessagesProj/src/main/assets/emoji/0_1180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1181.png b/TMessagesProj/src/main/assets/emoji/0_1181.png index 60e2c2ec01..255525cfcd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1181.png and b/TMessagesProj/src/main/assets/emoji/0_1181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1182.png b/TMessagesProj/src/main/assets/emoji/0_1182.png index 3d7e725208..5d8cc8ae7b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1182.png and b/TMessagesProj/src/main/assets/emoji/0_1182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1183.png b/TMessagesProj/src/main/assets/emoji/0_1183.png index 33471c8fe6..b0e1ba0160 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1183.png and b/TMessagesProj/src/main/assets/emoji/0_1183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1184.png b/TMessagesProj/src/main/assets/emoji/0_1184.png index 083dd0860f..f57f3c6882 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1184.png and b/TMessagesProj/src/main/assets/emoji/0_1184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1185.png b/TMessagesProj/src/main/assets/emoji/0_1185.png index bdfc459ac2..c3ec00ffbe 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1185.png and b/TMessagesProj/src/main/assets/emoji/0_1185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1186.png b/TMessagesProj/src/main/assets/emoji/0_1186.png index dc01face5a..69df759c7f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1186.png and b/TMessagesProj/src/main/assets/emoji/0_1186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1187.png b/TMessagesProj/src/main/assets/emoji/0_1187.png index 5a6a745270..9f87ad7b9e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1187.png and b/TMessagesProj/src/main/assets/emoji/0_1187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1188.png b/TMessagesProj/src/main/assets/emoji/0_1188.png index 76ba2532e3..2bb97ae8e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1188.png and b/TMessagesProj/src/main/assets/emoji/0_1188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1189.png b/TMessagesProj/src/main/assets/emoji/0_1189.png index 54b3584b68..2ea59c1782 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1189.png and b/TMessagesProj/src/main/assets/emoji/0_1189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_119.png b/TMessagesProj/src/main/assets/emoji/0_119.png index bce837d7aa..a03da7d341 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_119.png and b/TMessagesProj/src/main/assets/emoji/0_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1190.png b/TMessagesProj/src/main/assets/emoji/0_1190.png index f684f96641..93bc46cf04 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1190.png and b/TMessagesProj/src/main/assets/emoji/0_1190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1191.png b/TMessagesProj/src/main/assets/emoji/0_1191.png index 7dd7229cf1..d0ca9fae12 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1191.png and b/TMessagesProj/src/main/assets/emoji/0_1191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1192.png b/TMessagesProj/src/main/assets/emoji/0_1192.png index e50b28e916..3ed439272a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1192.png and b/TMessagesProj/src/main/assets/emoji/0_1192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1193.png b/TMessagesProj/src/main/assets/emoji/0_1193.png index 5431a43b80..43b56a5235 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1193.png and b/TMessagesProj/src/main/assets/emoji/0_1193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1194.png b/TMessagesProj/src/main/assets/emoji/0_1194.png index 3f5066c056..bfe387e5e6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1194.png and b/TMessagesProj/src/main/assets/emoji/0_1194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1195.png b/TMessagesProj/src/main/assets/emoji/0_1195.png index e17f3137bb..0bb4e0e6a9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1195.png and b/TMessagesProj/src/main/assets/emoji/0_1195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1196.png b/TMessagesProj/src/main/assets/emoji/0_1196.png index ee7fe3d7ca..b868e7585f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1196.png and b/TMessagesProj/src/main/assets/emoji/0_1196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1197.png b/TMessagesProj/src/main/assets/emoji/0_1197.png index 1532a332a2..5ef43af531 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1197.png and b/TMessagesProj/src/main/assets/emoji/0_1197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1198.png b/TMessagesProj/src/main/assets/emoji/0_1198.png index a52b009796..c8106fd366 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1198.png and b/TMessagesProj/src/main/assets/emoji/0_1198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1199.png b/TMessagesProj/src/main/assets/emoji/0_1199.png index d54236626c..ed84491eed 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1199.png and b/TMessagesProj/src/main/assets/emoji/0_1199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_12.png b/TMessagesProj/src/main/assets/emoji/0_12.png index 45699ea1cc..7d2783a435 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_12.png and b/TMessagesProj/src/main/assets/emoji/0_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_120.png b/TMessagesProj/src/main/assets/emoji/0_120.png index ccf646e44d..dea25263eb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_120.png and b/TMessagesProj/src/main/assets/emoji/0_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1200.png b/TMessagesProj/src/main/assets/emoji/0_1200.png index 6f5f1be9f5..f3b2aab6a7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1200.png and b/TMessagesProj/src/main/assets/emoji/0_1200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1201.png b/TMessagesProj/src/main/assets/emoji/0_1201.png index 53fbd2915c..b5b3bc8d1a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1201.png and b/TMessagesProj/src/main/assets/emoji/0_1201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1202.png b/TMessagesProj/src/main/assets/emoji/0_1202.png index f9e50ff9c3..08fbd9fbec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1202.png and b/TMessagesProj/src/main/assets/emoji/0_1202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1203.png b/TMessagesProj/src/main/assets/emoji/0_1203.png index acf75c440f..e969bbbcc1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1203.png and b/TMessagesProj/src/main/assets/emoji/0_1203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1204.png b/TMessagesProj/src/main/assets/emoji/0_1204.png index 80905968cd..e5c4c66c93 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1204.png and b/TMessagesProj/src/main/assets/emoji/0_1204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1205.png b/TMessagesProj/src/main/assets/emoji/0_1205.png index 4aeaf33087..e68ade42fe 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1205.png and b/TMessagesProj/src/main/assets/emoji/0_1205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1206.png b/TMessagesProj/src/main/assets/emoji/0_1206.png index 6d8d3740c7..b478be59a1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1206.png and b/TMessagesProj/src/main/assets/emoji/0_1206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1207.png b/TMessagesProj/src/main/assets/emoji/0_1207.png index ae0ec37af3..f50d871d40 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1207.png and b/TMessagesProj/src/main/assets/emoji/0_1207.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1208.png b/TMessagesProj/src/main/assets/emoji/0_1208.png index e0ca6591bb..3ddae8086a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1208.png and b/TMessagesProj/src/main/assets/emoji/0_1208.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1209.png b/TMessagesProj/src/main/assets/emoji/0_1209.png index d355f077bc..2853048f37 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1209.png and b/TMessagesProj/src/main/assets/emoji/0_1209.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_121.png b/TMessagesProj/src/main/assets/emoji/0_121.png index c3431ad5be..3c19054533 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_121.png and b/TMessagesProj/src/main/assets/emoji/0_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1210.png b/TMessagesProj/src/main/assets/emoji/0_1210.png index 106fa23df8..a1dd09c4b0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1210.png and b/TMessagesProj/src/main/assets/emoji/0_1210.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1211.png b/TMessagesProj/src/main/assets/emoji/0_1211.png index 7c4af086af..475611dfb5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1211.png and b/TMessagesProj/src/main/assets/emoji/0_1211.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1212.png b/TMessagesProj/src/main/assets/emoji/0_1212.png index 91150f8f52..a9cd3a3992 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1212.png and b/TMessagesProj/src/main/assets/emoji/0_1212.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1213.png b/TMessagesProj/src/main/assets/emoji/0_1213.png index 2ef4e70c1b..a810a372f8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1213.png and b/TMessagesProj/src/main/assets/emoji/0_1213.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1214.png b/TMessagesProj/src/main/assets/emoji/0_1214.png index 04ba3ab15c..f8b138c222 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1214.png and b/TMessagesProj/src/main/assets/emoji/0_1214.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1215.png b/TMessagesProj/src/main/assets/emoji/0_1215.png index ed1e380a4a..58e475eb93 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1215.png and b/TMessagesProj/src/main/assets/emoji/0_1215.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1216.png b/TMessagesProj/src/main/assets/emoji/0_1216.png index 36a1ce3292..a9a36d6d0a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1216.png and b/TMessagesProj/src/main/assets/emoji/0_1216.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1217.png b/TMessagesProj/src/main/assets/emoji/0_1217.png index 8f75e33a9c..fdda8f01d9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1217.png and b/TMessagesProj/src/main/assets/emoji/0_1217.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1218.png b/TMessagesProj/src/main/assets/emoji/0_1218.png index dfe583b4ab..574eccf354 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1218.png and b/TMessagesProj/src/main/assets/emoji/0_1218.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1219.png b/TMessagesProj/src/main/assets/emoji/0_1219.png index 5acc0f7ee0..4981cf06e0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1219.png and b/TMessagesProj/src/main/assets/emoji/0_1219.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_122.png b/TMessagesProj/src/main/assets/emoji/0_122.png index a142c167b2..283eeb6c85 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_122.png and b/TMessagesProj/src/main/assets/emoji/0_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1220.png b/TMessagesProj/src/main/assets/emoji/0_1220.png index fb9f94c2a0..c3da639d97 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1220.png and b/TMessagesProj/src/main/assets/emoji/0_1220.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1221.png b/TMessagesProj/src/main/assets/emoji/0_1221.png index 10d62b23cb..caff8f3d8b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1221.png and b/TMessagesProj/src/main/assets/emoji/0_1221.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1222.png b/TMessagesProj/src/main/assets/emoji/0_1222.png index 1e30568f41..e7a32bba09 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1222.png and b/TMessagesProj/src/main/assets/emoji/0_1222.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1223.png b/TMessagesProj/src/main/assets/emoji/0_1223.png index fa03141e83..9a1be9e2b6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1223.png and b/TMessagesProj/src/main/assets/emoji/0_1223.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1224.png b/TMessagesProj/src/main/assets/emoji/0_1224.png index 472052cf35..5e4352e98d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1224.png and b/TMessagesProj/src/main/assets/emoji/0_1224.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1225.png b/TMessagesProj/src/main/assets/emoji/0_1225.png index 18dbe4b942..18758a3265 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1225.png and b/TMessagesProj/src/main/assets/emoji/0_1225.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1226.png b/TMessagesProj/src/main/assets/emoji/0_1226.png index 6522e18a7d..394e9e457a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1226.png and b/TMessagesProj/src/main/assets/emoji/0_1226.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1227.png b/TMessagesProj/src/main/assets/emoji/0_1227.png index 4315668eaf..5d5162e25a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1227.png and b/TMessagesProj/src/main/assets/emoji/0_1227.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1228.png b/TMessagesProj/src/main/assets/emoji/0_1228.png index d79370739e..1114ddc5f2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1228.png and b/TMessagesProj/src/main/assets/emoji/0_1228.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1229.png b/TMessagesProj/src/main/assets/emoji/0_1229.png index f015d14dc1..e3a8b48631 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1229.png and b/TMessagesProj/src/main/assets/emoji/0_1229.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_123.png b/TMessagesProj/src/main/assets/emoji/0_123.png index 232d3d5e40..d0b0e5b489 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_123.png and b/TMessagesProj/src/main/assets/emoji/0_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1230.png b/TMessagesProj/src/main/assets/emoji/0_1230.png index 7f1d59831b..53e09d59f5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1230.png and b/TMessagesProj/src/main/assets/emoji/0_1230.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1231.png b/TMessagesProj/src/main/assets/emoji/0_1231.png index 465c2de5d7..a09a941ca1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1231.png and b/TMessagesProj/src/main/assets/emoji/0_1231.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1232.png b/TMessagesProj/src/main/assets/emoji/0_1232.png index a3fb8bd2fc..b8afe5673e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1232.png and b/TMessagesProj/src/main/assets/emoji/0_1232.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1233.png b/TMessagesProj/src/main/assets/emoji/0_1233.png index 587656e977..d67fdb77c5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1233.png and b/TMessagesProj/src/main/assets/emoji/0_1233.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1234.png b/TMessagesProj/src/main/assets/emoji/0_1234.png index f5e6c5f015..1a35b105d5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1234.png and b/TMessagesProj/src/main/assets/emoji/0_1234.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1235.png b/TMessagesProj/src/main/assets/emoji/0_1235.png index 3735e21daa..c4e9fe0a4d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1235.png and b/TMessagesProj/src/main/assets/emoji/0_1235.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1236.png b/TMessagesProj/src/main/assets/emoji/0_1236.png index 50e1c793c1..2fe1945487 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1236.png and b/TMessagesProj/src/main/assets/emoji/0_1236.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1237.png b/TMessagesProj/src/main/assets/emoji/0_1237.png index 256c518c3a..f429d9622d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1237.png and b/TMessagesProj/src/main/assets/emoji/0_1237.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1238.png b/TMessagesProj/src/main/assets/emoji/0_1238.png index fe109d33fe..e301fd49c3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1238.png and b/TMessagesProj/src/main/assets/emoji/0_1238.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1239.png b/TMessagesProj/src/main/assets/emoji/0_1239.png index a0e8dddc4b..3d5e3b6eb7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1239.png and b/TMessagesProj/src/main/assets/emoji/0_1239.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_124.png b/TMessagesProj/src/main/assets/emoji/0_124.png index e8889b009f..167230fb1e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_124.png and b/TMessagesProj/src/main/assets/emoji/0_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1240.png b/TMessagesProj/src/main/assets/emoji/0_1240.png index 3f712812f1..2c36d3d4c5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1240.png and b/TMessagesProj/src/main/assets/emoji/0_1240.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1241.png b/TMessagesProj/src/main/assets/emoji/0_1241.png index f8d0e5d82b..52037e20ad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1241.png and b/TMessagesProj/src/main/assets/emoji/0_1241.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1242.png b/TMessagesProj/src/main/assets/emoji/0_1242.png index d581f0658b..e93cfff970 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1242.png and b/TMessagesProj/src/main/assets/emoji/0_1242.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1243.png b/TMessagesProj/src/main/assets/emoji/0_1243.png index 27f5993773..66cc1091f4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1243.png and b/TMessagesProj/src/main/assets/emoji/0_1243.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1244.png b/TMessagesProj/src/main/assets/emoji/0_1244.png index ae44c3e496..bd2c8298ed 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1244.png and b/TMessagesProj/src/main/assets/emoji/0_1244.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1245.png b/TMessagesProj/src/main/assets/emoji/0_1245.png index bb0752a9c0..8e14ed0ca9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1245.png and b/TMessagesProj/src/main/assets/emoji/0_1245.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1246.png b/TMessagesProj/src/main/assets/emoji/0_1246.png index c7c23f3430..8142cc68d0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1246.png and b/TMessagesProj/src/main/assets/emoji/0_1246.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1247.png b/TMessagesProj/src/main/assets/emoji/0_1247.png index 6da2c9bf9b..925456d274 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1247.png and b/TMessagesProj/src/main/assets/emoji/0_1247.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1248.png b/TMessagesProj/src/main/assets/emoji/0_1248.png index a6540bc34f..9074aa0258 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1248.png and b/TMessagesProj/src/main/assets/emoji/0_1248.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1249.png b/TMessagesProj/src/main/assets/emoji/0_1249.png index e17b8fe9a9..e21b0ded03 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1249.png and b/TMessagesProj/src/main/assets/emoji/0_1249.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_125.png b/TMessagesProj/src/main/assets/emoji/0_125.png index bcc1eb61bf..1ec9bf2733 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_125.png and b/TMessagesProj/src/main/assets/emoji/0_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1250.png b/TMessagesProj/src/main/assets/emoji/0_1250.png index ce631c5bf5..cf39c61dd6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1250.png and b/TMessagesProj/src/main/assets/emoji/0_1250.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1251.png b/TMessagesProj/src/main/assets/emoji/0_1251.png index c7db1ed2cb..387a1c8a29 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1251.png and b/TMessagesProj/src/main/assets/emoji/0_1251.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1252.png b/TMessagesProj/src/main/assets/emoji/0_1252.png index 3c11c3333d..ebf550191f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1252.png and b/TMessagesProj/src/main/assets/emoji/0_1252.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1253.png b/TMessagesProj/src/main/assets/emoji/0_1253.png index b430960ab2..4638abf268 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1253.png and b/TMessagesProj/src/main/assets/emoji/0_1253.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1254.png b/TMessagesProj/src/main/assets/emoji/0_1254.png index e9f38103ce..42a1b781ab 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1254.png and b/TMessagesProj/src/main/assets/emoji/0_1254.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1255.png b/TMessagesProj/src/main/assets/emoji/0_1255.png index 2444284809..53d4e472dc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1255.png and b/TMessagesProj/src/main/assets/emoji/0_1255.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1256.png b/TMessagesProj/src/main/assets/emoji/0_1256.png index e3164ebb4f..474408fb43 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1256.png and b/TMessagesProj/src/main/assets/emoji/0_1256.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1257.png b/TMessagesProj/src/main/assets/emoji/0_1257.png index 342dd3c003..1ce496b304 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1257.png and b/TMessagesProj/src/main/assets/emoji/0_1257.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1258.png b/TMessagesProj/src/main/assets/emoji/0_1258.png index e76437ef0b..348192d491 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1258.png and b/TMessagesProj/src/main/assets/emoji/0_1258.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1259.png b/TMessagesProj/src/main/assets/emoji/0_1259.png index 799ae55e9f..1f487c338f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1259.png and b/TMessagesProj/src/main/assets/emoji/0_1259.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_126.png b/TMessagesProj/src/main/assets/emoji/0_126.png index 1864267140..9948561037 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_126.png and b/TMessagesProj/src/main/assets/emoji/0_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1260.png b/TMessagesProj/src/main/assets/emoji/0_1260.png index 2846d3d241..53263e62dc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1260.png and b/TMessagesProj/src/main/assets/emoji/0_1260.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1261.png b/TMessagesProj/src/main/assets/emoji/0_1261.png index 6e4b2e1e29..45006d4a8a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1261.png and b/TMessagesProj/src/main/assets/emoji/0_1261.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1262.png b/TMessagesProj/src/main/assets/emoji/0_1262.png index 2321cfc10b..854dd85591 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1262.png and b/TMessagesProj/src/main/assets/emoji/0_1262.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1263.png b/TMessagesProj/src/main/assets/emoji/0_1263.png index 6062d4aa6e..9c3c17afa7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1263.png and b/TMessagesProj/src/main/assets/emoji/0_1263.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1264.png b/TMessagesProj/src/main/assets/emoji/0_1264.png index 1868532175..fc375d807a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1264.png and b/TMessagesProj/src/main/assets/emoji/0_1264.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1265.png b/TMessagesProj/src/main/assets/emoji/0_1265.png index 4b4a94b3b5..957ba202ad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1265.png and b/TMessagesProj/src/main/assets/emoji/0_1265.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1266.png b/TMessagesProj/src/main/assets/emoji/0_1266.png index 7c6d9c1b5f..985264a36b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1266.png and b/TMessagesProj/src/main/assets/emoji/0_1266.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1267.png b/TMessagesProj/src/main/assets/emoji/0_1267.png index ca66c1d14a..bd784abc65 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1267.png and b/TMessagesProj/src/main/assets/emoji/0_1267.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1268.png b/TMessagesProj/src/main/assets/emoji/0_1268.png index 09eba19fa9..050d7ccca3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1268.png and b/TMessagesProj/src/main/assets/emoji/0_1268.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1269.png b/TMessagesProj/src/main/assets/emoji/0_1269.png index e427e871a1..073cf49812 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1269.png and b/TMessagesProj/src/main/assets/emoji/0_1269.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_127.png b/TMessagesProj/src/main/assets/emoji/0_127.png index 45d7e1191f..05cd80e762 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_127.png and b/TMessagesProj/src/main/assets/emoji/0_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1270.png b/TMessagesProj/src/main/assets/emoji/0_1270.png index 5db0ac8b60..e69514a2e6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1270.png and b/TMessagesProj/src/main/assets/emoji/0_1270.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1271.png b/TMessagesProj/src/main/assets/emoji/0_1271.png index 87b0fda70e..4958dfac7c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1271.png and b/TMessagesProj/src/main/assets/emoji/0_1271.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1272.png b/TMessagesProj/src/main/assets/emoji/0_1272.png index 325bff039b..c3f0fe0709 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1272.png and b/TMessagesProj/src/main/assets/emoji/0_1272.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1273.png b/TMessagesProj/src/main/assets/emoji/0_1273.png index be76b395c5..7e4a6ea117 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1273.png and b/TMessagesProj/src/main/assets/emoji/0_1273.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1274.png b/TMessagesProj/src/main/assets/emoji/0_1274.png index 87d2873389..2a591970aa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1274.png and b/TMessagesProj/src/main/assets/emoji/0_1274.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1275.png b/TMessagesProj/src/main/assets/emoji/0_1275.png index 9326f8ecd3..946dd795a5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1275.png and b/TMessagesProj/src/main/assets/emoji/0_1275.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1276.png b/TMessagesProj/src/main/assets/emoji/0_1276.png index dcf387f360..4cf35d25cb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1276.png and b/TMessagesProj/src/main/assets/emoji/0_1276.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1277.png b/TMessagesProj/src/main/assets/emoji/0_1277.png index 472a1f45a3..814af6b84c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1277.png and b/TMessagesProj/src/main/assets/emoji/0_1277.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1278.png b/TMessagesProj/src/main/assets/emoji/0_1278.png index 4b9049945b..fa1a0f1d13 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1278.png and b/TMessagesProj/src/main/assets/emoji/0_1278.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1279.png b/TMessagesProj/src/main/assets/emoji/0_1279.png index afa50e8704..bc142a2b99 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1279.png and b/TMessagesProj/src/main/assets/emoji/0_1279.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_128.png b/TMessagesProj/src/main/assets/emoji/0_128.png index 1a80bfa368..9d6f252941 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_128.png and b/TMessagesProj/src/main/assets/emoji/0_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1280.png b/TMessagesProj/src/main/assets/emoji/0_1280.png index d741b488ea..0c7256c48a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1280.png and b/TMessagesProj/src/main/assets/emoji/0_1280.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1281.png b/TMessagesProj/src/main/assets/emoji/0_1281.png index bcd12d2b23..6589577a72 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1281.png and b/TMessagesProj/src/main/assets/emoji/0_1281.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1282.png b/TMessagesProj/src/main/assets/emoji/0_1282.png index 727cac9511..42504c41d5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1282.png and b/TMessagesProj/src/main/assets/emoji/0_1282.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1283.png b/TMessagesProj/src/main/assets/emoji/0_1283.png index e6f3e931df..b2f58ede06 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1283.png and b/TMessagesProj/src/main/assets/emoji/0_1283.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1284.png b/TMessagesProj/src/main/assets/emoji/0_1284.png index 8fedcf8479..003d2a9efc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1284.png and b/TMessagesProj/src/main/assets/emoji/0_1284.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1285.png b/TMessagesProj/src/main/assets/emoji/0_1285.png index 57ebfb8986..52e5c47b34 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1285.png and b/TMessagesProj/src/main/assets/emoji/0_1285.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1286.png b/TMessagesProj/src/main/assets/emoji/0_1286.png index 2f339acc94..dc3434560d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1286.png and b/TMessagesProj/src/main/assets/emoji/0_1286.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1287.png b/TMessagesProj/src/main/assets/emoji/0_1287.png index 5a68fade51..34d1122058 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1287.png and b/TMessagesProj/src/main/assets/emoji/0_1287.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1288.png b/TMessagesProj/src/main/assets/emoji/0_1288.png index eff6cd8944..12d4c6cb63 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1288.png and b/TMessagesProj/src/main/assets/emoji/0_1288.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1289.png b/TMessagesProj/src/main/assets/emoji/0_1289.png index ba3f5828dd..3e634bbfcf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1289.png and b/TMessagesProj/src/main/assets/emoji/0_1289.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_129.png b/TMessagesProj/src/main/assets/emoji/0_129.png index ab293b44a7..8624ada8aa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_129.png and b/TMessagesProj/src/main/assets/emoji/0_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1290.png b/TMessagesProj/src/main/assets/emoji/0_1290.png index e9b78f5c0a..b3973b7f47 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1290.png and b/TMessagesProj/src/main/assets/emoji/0_1290.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1291.png b/TMessagesProj/src/main/assets/emoji/0_1291.png index 1613f8f3c5..5bb5728c4a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1291.png and b/TMessagesProj/src/main/assets/emoji/0_1291.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1292.png b/TMessagesProj/src/main/assets/emoji/0_1292.png index 298e6dee63..9cc9a08baa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1292.png and b/TMessagesProj/src/main/assets/emoji/0_1292.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1293.png b/TMessagesProj/src/main/assets/emoji/0_1293.png index 24835b0adc..37a540b40f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1293.png and b/TMessagesProj/src/main/assets/emoji/0_1293.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1294.png b/TMessagesProj/src/main/assets/emoji/0_1294.png index a941a6f454..3b2a3f8c95 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1294.png and b/TMessagesProj/src/main/assets/emoji/0_1294.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1295.png b/TMessagesProj/src/main/assets/emoji/0_1295.png index 0c2041ca7b..b8d0e8c5c9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1295.png and b/TMessagesProj/src/main/assets/emoji/0_1295.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1296.png b/TMessagesProj/src/main/assets/emoji/0_1296.png index b7491f0cd2..c03132110c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1296.png and b/TMessagesProj/src/main/assets/emoji/0_1296.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1297.png b/TMessagesProj/src/main/assets/emoji/0_1297.png index e96facfb31..c5329c835f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1297.png and b/TMessagesProj/src/main/assets/emoji/0_1297.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1298.png b/TMessagesProj/src/main/assets/emoji/0_1298.png index a2240b8513..943bdaf823 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1298.png and b/TMessagesProj/src/main/assets/emoji/0_1298.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1299.png b/TMessagesProj/src/main/assets/emoji/0_1299.png index f0137b8909..685954b62c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1299.png and b/TMessagesProj/src/main/assets/emoji/0_1299.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_13.png b/TMessagesProj/src/main/assets/emoji/0_13.png index 47282bc908..d2e2e6effa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_13.png and b/TMessagesProj/src/main/assets/emoji/0_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_130.png b/TMessagesProj/src/main/assets/emoji/0_130.png index 7345c6e9c8..4ed05637d0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_130.png and b/TMessagesProj/src/main/assets/emoji/0_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1300.png b/TMessagesProj/src/main/assets/emoji/0_1300.png index f6444072e6..a60e40b879 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1300.png and b/TMessagesProj/src/main/assets/emoji/0_1300.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1301.png b/TMessagesProj/src/main/assets/emoji/0_1301.png index 2d84ea7670..988006b257 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1301.png and b/TMessagesProj/src/main/assets/emoji/0_1301.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1302.png b/TMessagesProj/src/main/assets/emoji/0_1302.png index 0842dbc707..fadf86857d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1302.png and b/TMessagesProj/src/main/assets/emoji/0_1302.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1303.png b/TMessagesProj/src/main/assets/emoji/0_1303.png index 9ead496b46..16738b506b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1303.png and b/TMessagesProj/src/main/assets/emoji/0_1303.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1304.png b/TMessagesProj/src/main/assets/emoji/0_1304.png index d8c11b812a..e4c7fbaea3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1304.png and b/TMessagesProj/src/main/assets/emoji/0_1304.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1305.png b/TMessagesProj/src/main/assets/emoji/0_1305.png index 00483018f8..a4e3a4d00a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1305.png and b/TMessagesProj/src/main/assets/emoji/0_1305.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1306.png b/TMessagesProj/src/main/assets/emoji/0_1306.png index 7628c6647b..77fdc15cc1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1306.png and b/TMessagesProj/src/main/assets/emoji/0_1306.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1307.png b/TMessagesProj/src/main/assets/emoji/0_1307.png index e907819d8d..fc88042ac7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1307.png and b/TMessagesProj/src/main/assets/emoji/0_1307.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1308.png b/TMessagesProj/src/main/assets/emoji/0_1308.png index 40b2a5b660..274c44157b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1308.png and b/TMessagesProj/src/main/assets/emoji/0_1308.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1309.png b/TMessagesProj/src/main/assets/emoji/0_1309.png index bf17c88a57..3193184ad2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1309.png and b/TMessagesProj/src/main/assets/emoji/0_1309.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_131.png b/TMessagesProj/src/main/assets/emoji/0_131.png index 7030d4a2eb..e7fea359c6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_131.png and b/TMessagesProj/src/main/assets/emoji/0_131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1310.png b/TMessagesProj/src/main/assets/emoji/0_1310.png index 4cdfbc2802..220211a595 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1310.png and b/TMessagesProj/src/main/assets/emoji/0_1310.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1311.png b/TMessagesProj/src/main/assets/emoji/0_1311.png index 44562a076e..4d13bcb18d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1311.png and b/TMessagesProj/src/main/assets/emoji/0_1311.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1312.png b/TMessagesProj/src/main/assets/emoji/0_1312.png index 36a55ccbc1..39a8323fce 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1312.png and b/TMessagesProj/src/main/assets/emoji/0_1312.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1313.png b/TMessagesProj/src/main/assets/emoji/0_1313.png index 34dec68608..41adf6ee24 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1313.png and b/TMessagesProj/src/main/assets/emoji/0_1313.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1314.png b/TMessagesProj/src/main/assets/emoji/0_1314.png index 5ee7f996cd..e9d9416dc9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1314.png and b/TMessagesProj/src/main/assets/emoji/0_1314.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1315.png b/TMessagesProj/src/main/assets/emoji/0_1315.png index e170c21907..fa4b6c2c5f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1315.png and b/TMessagesProj/src/main/assets/emoji/0_1315.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1316.png b/TMessagesProj/src/main/assets/emoji/0_1316.png index 25afb40557..df645d0c8f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1316.png and b/TMessagesProj/src/main/assets/emoji/0_1316.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1317.png b/TMessagesProj/src/main/assets/emoji/0_1317.png index adbbd2ce3e..6bb65cf04a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1317.png and b/TMessagesProj/src/main/assets/emoji/0_1317.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1318.png b/TMessagesProj/src/main/assets/emoji/0_1318.png index a9ee2751e5..a2ae0d1d5e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1318.png and b/TMessagesProj/src/main/assets/emoji/0_1318.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1319.png b/TMessagesProj/src/main/assets/emoji/0_1319.png index cb84e54034..8151fa19cb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1319.png and b/TMessagesProj/src/main/assets/emoji/0_1319.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_132.png b/TMessagesProj/src/main/assets/emoji/0_132.png index 228223a461..56cf9a1067 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_132.png and b/TMessagesProj/src/main/assets/emoji/0_132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1320.png b/TMessagesProj/src/main/assets/emoji/0_1320.png index f75c856a6f..38d84820ac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1320.png and b/TMessagesProj/src/main/assets/emoji/0_1320.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1321.png b/TMessagesProj/src/main/assets/emoji/0_1321.png index 161eddd09e..1a4d802ae5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1321.png and b/TMessagesProj/src/main/assets/emoji/0_1321.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1322.png b/TMessagesProj/src/main/assets/emoji/0_1322.png index 70417e13cc..63fd3d5a45 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1322.png and b/TMessagesProj/src/main/assets/emoji/0_1322.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1323.png b/TMessagesProj/src/main/assets/emoji/0_1323.png index 1e12429978..5f1ca0ea7d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1323.png and b/TMessagesProj/src/main/assets/emoji/0_1323.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1324.png b/TMessagesProj/src/main/assets/emoji/0_1324.png index 113c795f0b..b2079b46e9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1324.png and b/TMessagesProj/src/main/assets/emoji/0_1324.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1325.png b/TMessagesProj/src/main/assets/emoji/0_1325.png index eb8c8612de..9d7202f518 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1325.png and b/TMessagesProj/src/main/assets/emoji/0_1325.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1326.png b/TMessagesProj/src/main/assets/emoji/0_1326.png index 5485e09e51..5a0167fbc9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1326.png and b/TMessagesProj/src/main/assets/emoji/0_1326.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1327.png b/TMessagesProj/src/main/assets/emoji/0_1327.png index f4302575a7..138542ebc0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1327.png and b/TMessagesProj/src/main/assets/emoji/0_1327.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1328.png b/TMessagesProj/src/main/assets/emoji/0_1328.png index c962cf5859..718ab0f60d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1328.png and b/TMessagesProj/src/main/assets/emoji/0_1328.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1329.png b/TMessagesProj/src/main/assets/emoji/0_1329.png index e45e921143..fb861958b4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1329.png and b/TMessagesProj/src/main/assets/emoji/0_1329.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_133.png b/TMessagesProj/src/main/assets/emoji/0_133.png index 399df5985b..319ae2ca0e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_133.png and b/TMessagesProj/src/main/assets/emoji/0_133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1330.png b/TMessagesProj/src/main/assets/emoji/0_1330.png index 494a604ff8..5abaece76c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1330.png and b/TMessagesProj/src/main/assets/emoji/0_1330.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1331.png b/TMessagesProj/src/main/assets/emoji/0_1331.png index 7f5af4fca7..3d76ebfa0b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1331.png and b/TMessagesProj/src/main/assets/emoji/0_1331.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1332.png b/TMessagesProj/src/main/assets/emoji/0_1332.png index 2a47f7f9f8..d6f6b8268d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1332.png and b/TMessagesProj/src/main/assets/emoji/0_1332.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1333.png b/TMessagesProj/src/main/assets/emoji/0_1333.png index 3141ad175f..88d612b765 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1333.png and b/TMessagesProj/src/main/assets/emoji/0_1333.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1334.png b/TMessagesProj/src/main/assets/emoji/0_1334.png index e0991f87fb..97d5ebe8e5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1334.png and b/TMessagesProj/src/main/assets/emoji/0_1334.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1335.png b/TMessagesProj/src/main/assets/emoji/0_1335.png index 5905544b53..3a3427eb32 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1335.png and b/TMessagesProj/src/main/assets/emoji/0_1335.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1336.png b/TMessagesProj/src/main/assets/emoji/0_1336.png index 3ab4b6493b..d42a8a9874 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1336.png and b/TMessagesProj/src/main/assets/emoji/0_1336.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1337.png b/TMessagesProj/src/main/assets/emoji/0_1337.png index 253b174efa..9e3a902ce5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1337.png and b/TMessagesProj/src/main/assets/emoji/0_1337.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1338.png b/TMessagesProj/src/main/assets/emoji/0_1338.png index 60ccbb33ee..aa114c831c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1338.png and b/TMessagesProj/src/main/assets/emoji/0_1338.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1339.png b/TMessagesProj/src/main/assets/emoji/0_1339.png index f4f628724f..326ee47ce7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1339.png and b/TMessagesProj/src/main/assets/emoji/0_1339.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_134.png b/TMessagesProj/src/main/assets/emoji/0_134.png index 2127697149..0435691098 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_134.png and b/TMessagesProj/src/main/assets/emoji/0_134.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1340.png b/TMessagesProj/src/main/assets/emoji/0_1340.png index 9adad417d2..a968aca0b5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1340.png and b/TMessagesProj/src/main/assets/emoji/0_1340.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1341.png b/TMessagesProj/src/main/assets/emoji/0_1341.png index 347bfeaae5..f3d790b87e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1341.png and b/TMessagesProj/src/main/assets/emoji/0_1341.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1342.png b/TMessagesProj/src/main/assets/emoji/0_1342.png index a0c9f9d5d2..1ace0f0962 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1342.png and b/TMessagesProj/src/main/assets/emoji/0_1342.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1343.png b/TMessagesProj/src/main/assets/emoji/0_1343.png index 7a7e81f102..7066a383c3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1343.png and b/TMessagesProj/src/main/assets/emoji/0_1343.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1344.png b/TMessagesProj/src/main/assets/emoji/0_1344.png index 0b9737d7df..f3a730c18b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1344.png and b/TMessagesProj/src/main/assets/emoji/0_1344.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1345.png b/TMessagesProj/src/main/assets/emoji/0_1345.png index e41ef9a1cc..66b2af1abf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1345.png and b/TMessagesProj/src/main/assets/emoji/0_1345.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1346.png b/TMessagesProj/src/main/assets/emoji/0_1346.png index 1f85609945..91a1eb201a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1346.png and b/TMessagesProj/src/main/assets/emoji/0_1346.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1347.png b/TMessagesProj/src/main/assets/emoji/0_1347.png index 5da3ab1410..9374cac153 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1347.png and b/TMessagesProj/src/main/assets/emoji/0_1347.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1348.png b/TMessagesProj/src/main/assets/emoji/0_1348.png index 607f2bed7d..459f0d5745 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1348.png and b/TMessagesProj/src/main/assets/emoji/0_1348.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1349.png b/TMessagesProj/src/main/assets/emoji/0_1349.png index 3e1c87a62a..39e6c915f6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1349.png and b/TMessagesProj/src/main/assets/emoji/0_1349.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_135.png b/TMessagesProj/src/main/assets/emoji/0_135.png index 14a6091c65..cd744e73dd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_135.png and b/TMessagesProj/src/main/assets/emoji/0_135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1350.png b/TMessagesProj/src/main/assets/emoji/0_1350.png index ff60c308d3..2161193fb7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1350.png and b/TMessagesProj/src/main/assets/emoji/0_1350.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1351.png b/TMessagesProj/src/main/assets/emoji/0_1351.png index d60da68c7c..730a6790e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1351.png and b/TMessagesProj/src/main/assets/emoji/0_1351.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1352.png b/TMessagesProj/src/main/assets/emoji/0_1352.png index 5b3231245e..bc0ca9f26c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1352.png and b/TMessagesProj/src/main/assets/emoji/0_1352.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1353.png b/TMessagesProj/src/main/assets/emoji/0_1353.png index f78f64f86a..414527f52b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1353.png and b/TMessagesProj/src/main/assets/emoji/0_1353.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1354.png b/TMessagesProj/src/main/assets/emoji/0_1354.png index d057973388..718ed14a7d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1354.png and b/TMessagesProj/src/main/assets/emoji/0_1354.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1355.png b/TMessagesProj/src/main/assets/emoji/0_1355.png index 726c1431f5..89b6539a19 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1355.png and b/TMessagesProj/src/main/assets/emoji/0_1355.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1356.png b/TMessagesProj/src/main/assets/emoji/0_1356.png index 7281108882..c849714e37 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1356.png and b/TMessagesProj/src/main/assets/emoji/0_1356.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1357.png b/TMessagesProj/src/main/assets/emoji/0_1357.png index 36e1c5d50f..0e793ef3d9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1357.png and b/TMessagesProj/src/main/assets/emoji/0_1357.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1358.png b/TMessagesProj/src/main/assets/emoji/0_1358.png index 78aeca956b..f76713070f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1358.png and b/TMessagesProj/src/main/assets/emoji/0_1358.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1359.png b/TMessagesProj/src/main/assets/emoji/0_1359.png index 23f5de2330..bb785ff9f3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1359.png and b/TMessagesProj/src/main/assets/emoji/0_1359.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_136.png b/TMessagesProj/src/main/assets/emoji/0_136.png index d51b6626ec..6f0bcba532 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_136.png and b/TMessagesProj/src/main/assets/emoji/0_136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1360.png b/TMessagesProj/src/main/assets/emoji/0_1360.png index 2f4824db4c..2fc16d9837 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1360.png and b/TMessagesProj/src/main/assets/emoji/0_1360.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1361.png b/TMessagesProj/src/main/assets/emoji/0_1361.png index c21d05d60a..8a9c13b2cd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1361.png and b/TMessagesProj/src/main/assets/emoji/0_1361.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1362.png b/TMessagesProj/src/main/assets/emoji/0_1362.png index aa028cf2ed..9af22bc9d4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1362.png and b/TMessagesProj/src/main/assets/emoji/0_1362.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1363.png b/TMessagesProj/src/main/assets/emoji/0_1363.png index 1075a2a308..0c479de139 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1363.png and b/TMessagesProj/src/main/assets/emoji/0_1363.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1364.png b/TMessagesProj/src/main/assets/emoji/0_1364.png index cc1a00d331..3e441b969a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1364.png and b/TMessagesProj/src/main/assets/emoji/0_1364.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1365.png b/TMessagesProj/src/main/assets/emoji/0_1365.png index ed3acc7dba..d903694f2e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1365.png and b/TMessagesProj/src/main/assets/emoji/0_1365.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1366.png b/TMessagesProj/src/main/assets/emoji/0_1366.png index d55f78735b..d87980a754 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1366.png and b/TMessagesProj/src/main/assets/emoji/0_1366.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1367.png b/TMessagesProj/src/main/assets/emoji/0_1367.png index a8aee7c185..2f88850352 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1367.png and b/TMessagesProj/src/main/assets/emoji/0_1367.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1368.png b/TMessagesProj/src/main/assets/emoji/0_1368.png index 7b95276a9b..17dff28523 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1368.png and b/TMessagesProj/src/main/assets/emoji/0_1368.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1369.png b/TMessagesProj/src/main/assets/emoji/0_1369.png index cbed03aaa0..0b04859219 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1369.png and b/TMessagesProj/src/main/assets/emoji/0_1369.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_137.png b/TMessagesProj/src/main/assets/emoji/0_137.png index 4dd094da97..9d48d395e5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_137.png and b/TMessagesProj/src/main/assets/emoji/0_137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1370.png b/TMessagesProj/src/main/assets/emoji/0_1370.png index 680029fda6..b5861821d3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1370.png and b/TMessagesProj/src/main/assets/emoji/0_1370.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1371.png b/TMessagesProj/src/main/assets/emoji/0_1371.png index 959314fa04..4c6e6a92c1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1371.png and b/TMessagesProj/src/main/assets/emoji/0_1371.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1372.png b/TMessagesProj/src/main/assets/emoji/0_1372.png index c66acd247e..274ab65144 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1372.png and b/TMessagesProj/src/main/assets/emoji/0_1372.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1373.png b/TMessagesProj/src/main/assets/emoji/0_1373.png index ebeb8d83c9..012ec8dbd6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1373.png and b/TMessagesProj/src/main/assets/emoji/0_1373.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1374.png b/TMessagesProj/src/main/assets/emoji/0_1374.png index 0ec1e7100c..12f25d28ba 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1374.png and b/TMessagesProj/src/main/assets/emoji/0_1374.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1375.png b/TMessagesProj/src/main/assets/emoji/0_1375.png index 26b3543950..c962565997 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1375.png and b/TMessagesProj/src/main/assets/emoji/0_1375.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1376.png b/TMessagesProj/src/main/assets/emoji/0_1376.png index 3624f9a590..f81f5375d5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1376.png and b/TMessagesProj/src/main/assets/emoji/0_1376.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1377.png b/TMessagesProj/src/main/assets/emoji/0_1377.png index 26246693d0..66845a29eb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1377.png and b/TMessagesProj/src/main/assets/emoji/0_1377.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1378.png b/TMessagesProj/src/main/assets/emoji/0_1378.png index d8be2bedcf..2649420dcd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1378.png and b/TMessagesProj/src/main/assets/emoji/0_1378.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1379.png b/TMessagesProj/src/main/assets/emoji/0_1379.png index 27ea02aab5..f9914272d2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1379.png and b/TMessagesProj/src/main/assets/emoji/0_1379.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_138.png b/TMessagesProj/src/main/assets/emoji/0_138.png index 8847e9494c..4d5ab6a339 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_138.png and b/TMessagesProj/src/main/assets/emoji/0_138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1380.png b/TMessagesProj/src/main/assets/emoji/0_1380.png index 9b80e37088..f6aafdd254 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1380.png and b/TMessagesProj/src/main/assets/emoji/0_1380.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1381.png b/TMessagesProj/src/main/assets/emoji/0_1381.png index 1f77bf4454..b17abe107b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1381.png and b/TMessagesProj/src/main/assets/emoji/0_1381.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1382.png b/TMessagesProj/src/main/assets/emoji/0_1382.png index ec2a90f969..52c3f5db4b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1382.png and b/TMessagesProj/src/main/assets/emoji/0_1382.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1383.png b/TMessagesProj/src/main/assets/emoji/0_1383.png index 913eb86db4..2aaf6f02dd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1383.png and b/TMessagesProj/src/main/assets/emoji/0_1383.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1384.png b/TMessagesProj/src/main/assets/emoji/0_1384.png index 49cba07b2b..8f12300dcd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1384.png and b/TMessagesProj/src/main/assets/emoji/0_1384.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1385.png b/TMessagesProj/src/main/assets/emoji/0_1385.png index 3f6cc7d599..5cefb2bdaf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1385.png and b/TMessagesProj/src/main/assets/emoji/0_1385.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1386.png b/TMessagesProj/src/main/assets/emoji/0_1386.png index 52b7bb47e4..d7dbaf821b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1386.png and b/TMessagesProj/src/main/assets/emoji/0_1386.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1387.png b/TMessagesProj/src/main/assets/emoji/0_1387.png index ba292fcfcc..d735528ed9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1387.png and b/TMessagesProj/src/main/assets/emoji/0_1387.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1388.png b/TMessagesProj/src/main/assets/emoji/0_1388.png index f1954fd7e0..e1f599e284 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1388.png and b/TMessagesProj/src/main/assets/emoji/0_1388.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1389.png b/TMessagesProj/src/main/assets/emoji/0_1389.png index 202f34bd74..340024749e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1389.png and b/TMessagesProj/src/main/assets/emoji/0_1389.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_139.png b/TMessagesProj/src/main/assets/emoji/0_139.png index c5ceef6752..acca8f7d2d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_139.png and b/TMessagesProj/src/main/assets/emoji/0_139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1390.png b/TMessagesProj/src/main/assets/emoji/0_1390.png index 4b6eca7b57..c725fe905f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1390.png and b/TMessagesProj/src/main/assets/emoji/0_1390.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1391.png b/TMessagesProj/src/main/assets/emoji/0_1391.png index 436171a9b2..1742c6ffb0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1391.png and b/TMessagesProj/src/main/assets/emoji/0_1391.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1392.png b/TMessagesProj/src/main/assets/emoji/0_1392.png index 44aec3772a..b419355d03 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1392.png and b/TMessagesProj/src/main/assets/emoji/0_1392.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1393.png b/TMessagesProj/src/main/assets/emoji/0_1393.png index 5d2258336f..58a426102e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1393.png and b/TMessagesProj/src/main/assets/emoji/0_1393.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1394.png b/TMessagesProj/src/main/assets/emoji/0_1394.png index af87b2c835..a109e29397 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1394.png and b/TMessagesProj/src/main/assets/emoji/0_1394.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1395.png b/TMessagesProj/src/main/assets/emoji/0_1395.png index f6c007f445..866e68eef9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1395.png and b/TMessagesProj/src/main/assets/emoji/0_1395.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1396.png b/TMessagesProj/src/main/assets/emoji/0_1396.png index 3d2b25cf41..841ef981e6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1396.png and b/TMessagesProj/src/main/assets/emoji/0_1396.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1397.png b/TMessagesProj/src/main/assets/emoji/0_1397.png index f95c1f39a0..8cdf8ba747 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1397.png and b/TMessagesProj/src/main/assets/emoji/0_1397.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1398.png b/TMessagesProj/src/main/assets/emoji/0_1398.png index be9c279a09..65cd3d9767 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1398.png and b/TMessagesProj/src/main/assets/emoji/0_1398.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1399.png b/TMessagesProj/src/main/assets/emoji/0_1399.png index 38961de53f..83016e6cee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1399.png and b/TMessagesProj/src/main/assets/emoji/0_1399.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_14.png b/TMessagesProj/src/main/assets/emoji/0_14.png index b9281e239f..e69b06e405 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_14.png and b/TMessagesProj/src/main/assets/emoji/0_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_140.png b/TMessagesProj/src/main/assets/emoji/0_140.png index 63009dbaa6..d61b3cecfd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_140.png and b/TMessagesProj/src/main/assets/emoji/0_140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1400.png b/TMessagesProj/src/main/assets/emoji/0_1400.png index 04c3fba519..068ac7e50c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1400.png and b/TMessagesProj/src/main/assets/emoji/0_1400.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1401.png b/TMessagesProj/src/main/assets/emoji/0_1401.png index 6eb93e733e..1ba9945440 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1401.png and b/TMessagesProj/src/main/assets/emoji/0_1401.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1402.png b/TMessagesProj/src/main/assets/emoji/0_1402.png index 4eac1d7f21..1d73d5579f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1402.png and b/TMessagesProj/src/main/assets/emoji/0_1402.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1403.png b/TMessagesProj/src/main/assets/emoji/0_1403.png index e06d192fb1..06ec6b460f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1403.png and b/TMessagesProj/src/main/assets/emoji/0_1403.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1404.png b/TMessagesProj/src/main/assets/emoji/0_1404.png index 55669c42a2..d8b34b38c1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1404.png and b/TMessagesProj/src/main/assets/emoji/0_1404.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1405.png b/TMessagesProj/src/main/assets/emoji/0_1405.png index e811a8aad2..e9526909b8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1405.png and b/TMessagesProj/src/main/assets/emoji/0_1405.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1406.png b/TMessagesProj/src/main/assets/emoji/0_1406.png index 170c32a98d..51bb6cc39e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1406.png and b/TMessagesProj/src/main/assets/emoji/0_1406.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1407.png b/TMessagesProj/src/main/assets/emoji/0_1407.png index d0af0df451..e6d4b17959 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1407.png and b/TMessagesProj/src/main/assets/emoji/0_1407.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1408.png b/TMessagesProj/src/main/assets/emoji/0_1408.png index 4438ea20b7..54b158e074 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1408.png and b/TMessagesProj/src/main/assets/emoji/0_1408.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1409.png b/TMessagesProj/src/main/assets/emoji/0_1409.png index 55c488094d..32d4db9d19 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1409.png and b/TMessagesProj/src/main/assets/emoji/0_1409.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_141.png b/TMessagesProj/src/main/assets/emoji/0_141.png index cc58df1831..9b0a510932 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_141.png and b/TMessagesProj/src/main/assets/emoji/0_141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1410.png b/TMessagesProj/src/main/assets/emoji/0_1410.png index a7b4add979..3569d53fc0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1410.png and b/TMessagesProj/src/main/assets/emoji/0_1410.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1411.png b/TMessagesProj/src/main/assets/emoji/0_1411.png index de7b77167d..458f416c5c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1411.png and b/TMessagesProj/src/main/assets/emoji/0_1411.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1412.png b/TMessagesProj/src/main/assets/emoji/0_1412.png index 0f036e8456..f91b6fd615 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1412.png and b/TMessagesProj/src/main/assets/emoji/0_1412.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1413.png b/TMessagesProj/src/main/assets/emoji/0_1413.png index 31d4dd3b29..28a7c475f3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1413.png and b/TMessagesProj/src/main/assets/emoji/0_1413.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1414.png b/TMessagesProj/src/main/assets/emoji/0_1414.png index 59a047a82b..d92a776e46 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1414.png and b/TMessagesProj/src/main/assets/emoji/0_1414.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1415.png b/TMessagesProj/src/main/assets/emoji/0_1415.png index a0c17262b6..ac809a6c59 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1415.png and b/TMessagesProj/src/main/assets/emoji/0_1415.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1416.png b/TMessagesProj/src/main/assets/emoji/0_1416.png index 8fcbd4c5ed..21da1ac8f8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1416.png and b/TMessagesProj/src/main/assets/emoji/0_1416.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1417.png b/TMessagesProj/src/main/assets/emoji/0_1417.png index b5c9b66719..8a4839e31b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1417.png and b/TMessagesProj/src/main/assets/emoji/0_1417.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1418.png b/TMessagesProj/src/main/assets/emoji/0_1418.png index 248f792cc1..fb05241299 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1418.png and b/TMessagesProj/src/main/assets/emoji/0_1418.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1419.png b/TMessagesProj/src/main/assets/emoji/0_1419.png index 5eadd138d3..26ba80c138 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1419.png and b/TMessagesProj/src/main/assets/emoji/0_1419.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_142.png b/TMessagesProj/src/main/assets/emoji/0_142.png index b01f2801f2..f6b7fcfc1b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_142.png and b/TMessagesProj/src/main/assets/emoji/0_142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1420.png b/TMessagesProj/src/main/assets/emoji/0_1420.png index e9c4f10d0c..5763353c05 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1420.png and b/TMessagesProj/src/main/assets/emoji/0_1420.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1421.png b/TMessagesProj/src/main/assets/emoji/0_1421.png index 50ee6e0f10..628effd066 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1421.png and b/TMessagesProj/src/main/assets/emoji/0_1421.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1422.png b/TMessagesProj/src/main/assets/emoji/0_1422.png index da4226fac2..61f2944ffc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1422.png and b/TMessagesProj/src/main/assets/emoji/0_1422.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1423.png b/TMessagesProj/src/main/assets/emoji/0_1423.png index 08f3d13ce2..2a2a7fc920 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1423.png and b/TMessagesProj/src/main/assets/emoji/0_1423.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1424.png b/TMessagesProj/src/main/assets/emoji/0_1424.png index d55b39fea5..7ee6e95f4a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1424.png and b/TMessagesProj/src/main/assets/emoji/0_1424.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1425.png b/TMessagesProj/src/main/assets/emoji/0_1425.png index 473054c7ff..8c33b4f6e8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1425.png and b/TMessagesProj/src/main/assets/emoji/0_1425.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1426.png b/TMessagesProj/src/main/assets/emoji/0_1426.png index 89761d90f0..d97adb3084 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1426.png and b/TMessagesProj/src/main/assets/emoji/0_1426.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1427.png b/TMessagesProj/src/main/assets/emoji/0_1427.png index 23fd888b92..5bede9d0ec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1427.png and b/TMessagesProj/src/main/assets/emoji/0_1427.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1428.png b/TMessagesProj/src/main/assets/emoji/0_1428.png index 846d68ec96..958756e516 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1428.png and b/TMessagesProj/src/main/assets/emoji/0_1428.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1429.png b/TMessagesProj/src/main/assets/emoji/0_1429.png index 23b3ab90b5..682ed079da 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1429.png and b/TMessagesProj/src/main/assets/emoji/0_1429.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_143.png b/TMessagesProj/src/main/assets/emoji/0_143.png index 0497a94bca..525b21aa2f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_143.png and b/TMessagesProj/src/main/assets/emoji/0_143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1430.png b/TMessagesProj/src/main/assets/emoji/0_1430.png index 87ad65b28a..c91d6e702f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1430.png and b/TMessagesProj/src/main/assets/emoji/0_1430.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1431.png b/TMessagesProj/src/main/assets/emoji/0_1431.png index 986fac78c4..7912cddf97 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1431.png and b/TMessagesProj/src/main/assets/emoji/0_1431.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1432.png b/TMessagesProj/src/main/assets/emoji/0_1432.png index c8631a0c35..a99f550254 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1432.png and b/TMessagesProj/src/main/assets/emoji/0_1432.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1433.png b/TMessagesProj/src/main/assets/emoji/0_1433.png index 5e2fbe4477..42ceedc115 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1433.png and b/TMessagesProj/src/main/assets/emoji/0_1433.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1434.png b/TMessagesProj/src/main/assets/emoji/0_1434.png index 46d0662cb6..f83a94126c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1434.png and b/TMessagesProj/src/main/assets/emoji/0_1434.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1435.png b/TMessagesProj/src/main/assets/emoji/0_1435.png index 5260c31062..eed5868e64 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1435.png and b/TMessagesProj/src/main/assets/emoji/0_1435.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1436.png b/TMessagesProj/src/main/assets/emoji/0_1436.png index ded90c7578..b4aca06841 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1436.png and b/TMessagesProj/src/main/assets/emoji/0_1436.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1437.png b/TMessagesProj/src/main/assets/emoji/0_1437.png index f5f0f05251..b96afdcaa6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1437.png and b/TMessagesProj/src/main/assets/emoji/0_1437.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1438.png b/TMessagesProj/src/main/assets/emoji/0_1438.png index e13d1806eb..6f7dad15c6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1438.png and b/TMessagesProj/src/main/assets/emoji/0_1438.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1439.png b/TMessagesProj/src/main/assets/emoji/0_1439.png index 55554841fb..f141084d04 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1439.png and b/TMessagesProj/src/main/assets/emoji/0_1439.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_144.png b/TMessagesProj/src/main/assets/emoji/0_144.png index a74a51e683..1619e4ab31 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_144.png and b/TMessagesProj/src/main/assets/emoji/0_144.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1440.png b/TMessagesProj/src/main/assets/emoji/0_1440.png index 68b8d7d3b0..d10168cd4a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1440.png and b/TMessagesProj/src/main/assets/emoji/0_1440.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1441.png b/TMessagesProj/src/main/assets/emoji/0_1441.png index 3c2aec87d5..9ea77d0791 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1441.png and b/TMessagesProj/src/main/assets/emoji/0_1441.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1442.png b/TMessagesProj/src/main/assets/emoji/0_1442.png index 26a67865d1..19b3cbcbbc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1442.png and b/TMessagesProj/src/main/assets/emoji/0_1442.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1443.png b/TMessagesProj/src/main/assets/emoji/0_1443.png index d5d9b42778..a398327909 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1443.png and b/TMessagesProj/src/main/assets/emoji/0_1443.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1444.png b/TMessagesProj/src/main/assets/emoji/0_1444.png index 3ce672745b..8a74938f09 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1444.png and b/TMessagesProj/src/main/assets/emoji/0_1444.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1445.png b/TMessagesProj/src/main/assets/emoji/0_1445.png index dd8eff19bc..4ddb4146f8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1445.png and b/TMessagesProj/src/main/assets/emoji/0_1445.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1446.png b/TMessagesProj/src/main/assets/emoji/0_1446.png index 1e0350e37b..de42062494 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1446.png and b/TMessagesProj/src/main/assets/emoji/0_1446.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1447.png b/TMessagesProj/src/main/assets/emoji/0_1447.png index 06a3b5de00..8f7484427f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1447.png and b/TMessagesProj/src/main/assets/emoji/0_1447.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1448.png b/TMessagesProj/src/main/assets/emoji/0_1448.png index b88ecb241d..4943656b94 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1448.png and b/TMessagesProj/src/main/assets/emoji/0_1448.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1449.png b/TMessagesProj/src/main/assets/emoji/0_1449.png index 05b84af771..3a3db66727 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1449.png and b/TMessagesProj/src/main/assets/emoji/0_1449.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_145.png b/TMessagesProj/src/main/assets/emoji/0_145.png index efd523bfa8..d37eb8e1d1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_145.png and b/TMessagesProj/src/main/assets/emoji/0_145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1450.png b/TMessagesProj/src/main/assets/emoji/0_1450.png index 21d01b12bc..7dabc7e0d0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1450.png and b/TMessagesProj/src/main/assets/emoji/0_1450.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1451.png b/TMessagesProj/src/main/assets/emoji/0_1451.png index 95643b4f31..7495440e18 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1451.png and b/TMessagesProj/src/main/assets/emoji/0_1451.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1452.png b/TMessagesProj/src/main/assets/emoji/0_1452.png index 01465aade3..6cb6602fd6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1452.png and b/TMessagesProj/src/main/assets/emoji/0_1452.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1453.png b/TMessagesProj/src/main/assets/emoji/0_1453.png index 293902d77b..f9331da6f0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1453.png and b/TMessagesProj/src/main/assets/emoji/0_1453.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1454.png b/TMessagesProj/src/main/assets/emoji/0_1454.png index f74c4fdc2f..e74c5c03cb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1454.png and b/TMessagesProj/src/main/assets/emoji/0_1454.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1455.png b/TMessagesProj/src/main/assets/emoji/0_1455.png index 6e3a976d41..99ed08efa6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1455.png and b/TMessagesProj/src/main/assets/emoji/0_1455.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1456.png b/TMessagesProj/src/main/assets/emoji/0_1456.png index 368eb95a2c..bcc0223695 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1456.png and b/TMessagesProj/src/main/assets/emoji/0_1456.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1457.png b/TMessagesProj/src/main/assets/emoji/0_1457.png index eb34526659..5dbebe7205 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1457.png and b/TMessagesProj/src/main/assets/emoji/0_1457.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1458.png b/TMessagesProj/src/main/assets/emoji/0_1458.png index 22d83a991e..601bea223f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1458.png and b/TMessagesProj/src/main/assets/emoji/0_1458.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1459.png b/TMessagesProj/src/main/assets/emoji/0_1459.png index 09ecfea17e..672ce545d8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1459.png and b/TMessagesProj/src/main/assets/emoji/0_1459.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_146.png b/TMessagesProj/src/main/assets/emoji/0_146.png index 0d3c9d2a50..177826ad2b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_146.png and b/TMessagesProj/src/main/assets/emoji/0_146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1460.png b/TMessagesProj/src/main/assets/emoji/0_1460.png index 7a31a11bda..efa8e82eb0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1460.png and b/TMessagesProj/src/main/assets/emoji/0_1460.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1461.png b/TMessagesProj/src/main/assets/emoji/0_1461.png index dec31190aa..fe8f289abf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1461.png and b/TMessagesProj/src/main/assets/emoji/0_1461.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1462.png b/TMessagesProj/src/main/assets/emoji/0_1462.png index a622919be0..5cab8e81de 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1462.png and b/TMessagesProj/src/main/assets/emoji/0_1462.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1463.png b/TMessagesProj/src/main/assets/emoji/0_1463.png index d8ba9622da..8567c4ed42 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1463.png and b/TMessagesProj/src/main/assets/emoji/0_1463.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1464.png b/TMessagesProj/src/main/assets/emoji/0_1464.png index 0ebdf59421..d5463c1f99 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1464.png and b/TMessagesProj/src/main/assets/emoji/0_1464.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1465.png b/TMessagesProj/src/main/assets/emoji/0_1465.png index 28f67c55ff..9546ed0cfd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1465.png and b/TMessagesProj/src/main/assets/emoji/0_1465.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1466.png b/TMessagesProj/src/main/assets/emoji/0_1466.png index 933422406f..8966c276cd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1466.png and b/TMessagesProj/src/main/assets/emoji/0_1466.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1467.png b/TMessagesProj/src/main/assets/emoji/0_1467.png index 56951201b6..bf14872e34 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1467.png and b/TMessagesProj/src/main/assets/emoji/0_1467.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1468.png b/TMessagesProj/src/main/assets/emoji/0_1468.png index 2b896d616a..cfc5dab535 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1468.png and b/TMessagesProj/src/main/assets/emoji/0_1468.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1469.png b/TMessagesProj/src/main/assets/emoji/0_1469.png index cc6fe43072..db9ea4e687 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1469.png and b/TMessagesProj/src/main/assets/emoji/0_1469.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_147.png b/TMessagesProj/src/main/assets/emoji/0_147.png index b268351c21..c0d35a1fa6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_147.png and b/TMessagesProj/src/main/assets/emoji/0_147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1470.png b/TMessagesProj/src/main/assets/emoji/0_1470.png index af7b531725..50ec1ceb2b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1470.png and b/TMessagesProj/src/main/assets/emoji/0_1470.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1471.png b/TMessagesProj/src/main/assets/emoji/0_1471.png index 333f858673..b0befe3354 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1471.png and b/TMessagesProj/src/main/assets/emoji/0_1471.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1472.png b/TMessagesProj/src/main/assets/emoji/0_1472.png index 968347131e..9ba9509b0e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1472.png and b/TMessagesProj/src/main/assets/emoji/0_1472.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1473.png b/TMessagesProj/src/main/assets/emoji/0_1473.png index 439ca3bad9..d626787d57 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1473.png and b/TMessagesProj/src/main/assets/emoji/0_1473.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1474.png b/TMessagesProj/src/main/assets/emoji/0_1474.png index 4925a17b17..4de14c43bf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1474.png and b/TMessagesProj/src/main/assets/emoji/0_1474.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1475.png b/TMessagesProj/src/main/assets/emoji/0_1475.png index 0d8142f786..f905bd81cd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1475.png and b/TMessagesProj/src/main/assets/emoji/0_1475.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1476.png b/TMessagesProj/src/main/assets/emoji/0_1476.png index 4dc4c99210..869888286c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1476.png and b/TMessagesProj/src/main/assets/emoji/0_1476.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1477.png b/TMessagesProj/src/main/assets/emoji/0_1477.png index 92e50fe1f2..eb1fbf7487 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1477.png and b/TMessagesProj/src/main/assets/emoji/0_1477.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1478.png b/TMessagesProj/src/main/assets/emoji/0_1478.png index b138287818..6d1120ed92 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1478.png and b/TMessagesProj/src/main/assets/emoji/0_1478.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1479.png b/TMessagesProj/src/main/assets/emoji/0_1479.png index ac725086df..0ba77642a3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1479.png and b/TMessagesProj/src/main/assets/emoji/0_1479.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_148.png b/TMessagesProj/src/main/assets/emoji/0_148.png index 572df7f8aa..0944bdfdae 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_148.png and b/TMessagesProj/src/main/assets/emoji/0_148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1480.png b/TMessagesProj/src/main/assets/emoji/0_1480.png index bd793e438b..6002e36f74 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1480.png and b/TMessagesProj/src/main/assets/emoji/0_1480.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1481.png b/TMessagesProj/src/main/assets/emoji/0_1481.png index a438052530..843f6aa990 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1481.png and b/TMessagesProj/src/main/assets/emoji/0_1481.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1482.png b/TMessagesProj/src/main/assets/emoji/0_1482.png index 208b99d367..341eb92e58 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1482.png and b/TMessagesProj/src/main/assets/emoji/0_1482.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1483.png b/TMessagesProj/src/main/assets/emoji/0_1483.png index 092214ed39..28d8dd4d80 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1483.png and b/TMessagesProj/src/main/assets/emoji/0_1483.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1484.png b/TMessagesProj/src/main/assets/emoji/0_1484.png index 789971a986..b0e3f9f1b4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1484.png and b/TMessagesProj/src/main/assets/emoji/0_1484.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1485.png b/TMessagesProj/src/main/assets/emoji/0_1485.png index 794f134cde..d110877369 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1485.png and b/TMessagesProj/src/main/assets/emoji/0_1485.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1486.png b/TMessagesProj/src/main/assets/emoji/0_1486.png index 1b0c930e6c..b18b4bc6e9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1486.png and b/TMessagesProj/src/main/assets/emoji/0_1486.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1487.png b/TMessagesProj/src/main/assets/emoji/0_1487.png index 4e23f48ee3..4ad1f2bdb9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1487.png and b/TMessagesProj/src/main/assets/emoji/0_1487.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1488.png b/TMessagesProj/src/main/assets/emoji/0_1488.png index 72ced224da..170bd144e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1488.png and b/TMessagesProj/src/main/assets/emoji/0_1488.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1489.png b/TMessagesProj/src/main/assets/emoji/0_1489.png index 0d643f99d0..ccdcd419a8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1489.png and b/TMessagesProj/src/main/assets/emoji/0_1489.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_149.png b/TMessagesProj/src/main/assets/emoji/0_149.png index 518ec8d691..2cc7c54980 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_149.png and b/TMessagesProj/src/main/assets/emoji/0_149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1490.png b/TMessagesProj/src/main/assets/emoji/0_1490.png index e85dce23c0..2a3ff2722f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1490.png and b/TMessagesProj/src/main/assets/emoji/0_1490.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1491.png b/TMessagesProj/src/main/assets/emoji/0_1491.png index 9376949cd7..7f4a3067b2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1491.png and b/TMessagesProj/src/main/assets/emoji/0_1491.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1492.png b/TMessagesProj/src/main/assets/emoji/0_1492.png index 9f4e61af9f..e7b2a44581 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1492.png and b/TMessagesProj/src/main/assets/emoji/0_1492.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1493.png b/TMessagesProj/src/main/assets/emoji/0_1493.png index 6713794d5a..570943c426 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1493.png and b/TMessagesProj/src/main/assets/emoji/0_1493.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1494.png b/TMessagesProj/src/main/assets/emoji/0_1494.png index b66ee026d9..706c19eac1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1494.png and b/TMessagesProj/src/main/assets/emoji/0_1494.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1495.png b/TMessagesProj/src/main/assets/emoji/0_1495.png index a8839a9853..4d4a9d5d4e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1495.png and b/TMessagesProj/src/main/assets/emoji/0_1495.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1496.png b/TMessagesProj/src/main/assets/emoji/0_1496.png index c81a85de96..f18752cbf1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1496.png and b/TMessagesProj/src/main/assets/emoji/0_1496.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1497.png b/TMessagesProj/src/main/assets/emoji/0_1497.png index 3727464612..aa302b2339 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1497.png and b/TMessagesProj/src/main/assets/emoji/0_1497.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1498.png b/TMessagesProj/src/main/assets/emoji/0_1498.png index 48785b34cf..dac83fc331 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1498.png and b/TMessagesProj/src/main/assets/emoji/0_1498.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1499.png b/TMessagesProj/src/main/assets/emoji/0_1499.png index 7ec6261c7e..8c0d435bcd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1499.png and b/TMessagesProj/src/main/assets/emoji/0_1499.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_15.png b/TMessagesProj/src/main/assets/emoji/0_15.png index c98f98327e..3b7e5c2b2e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_15.png and b/TMessagesProj/src/main/assets/emoji/0_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_150.png b/TMessagesProj/src/main/assets/emoji/0_150.png index 62a085f008..81318968ce 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_150.png and b/TMessagesProj/src/main/assets/emoji/0_150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1500.png b/TMessagesProj/src/main/assets/emoji/0_1500.png index aaa6eb07f4..e0ade0154c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1500.png and b/TMessagesProj/src/main/assets/emoji/0_1500.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1501.png b/TMessagesProj/src/main/assets/emoji/0_1501.png index e7b338b8e9..a8460751ba 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1501.png and b/TMessagesProj/src/main/assets/emoji/0_1501.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1502.png b/TMessagesProj/src/main/assets/emoji/0_1502.png index ddc0163fac..529fa79e71 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1502.png and b/TMessagesProj/src/main/assets/emoji/0_1502.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1503.png b/TMessagesProj/src/main/assets/emoji/0_1503.png index d56f7f4f86..9f6c742c3f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1503.png and b/TMessagesProj/src/main/assets/emoji/0_1503.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1504.png b/TMessagesProj/src/main/assets/emoji/0_1504.png index 1da160688c..cd13924e52 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1504.png and b/TMessagesProj/src/main/assets/emoji/0_1504.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1505.png b/TMessagesProj/src/main/assets/emoji/0_1505.png index 06c5858126..030c6a87ac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1505.png and b/TMessagesProj/src/main/assets/emoji/0_1505.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1506.png b/TMessagesProj/src/main/assets/emoji/0_1506.png index 1b96fc0f98..08211a9e9d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1506.png and b/TMessagesProj/src/main/assets/emoji/0_1506.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1507.png b/TMessagesProj/src/main/assets/emoji/0_1507.png index d660be1059..cda1b5c43c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1507.png and b/TMessagesProj/src/main/assets/emoji/0_1507.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1508.png b/TMessagesProj/src/main/assets/emoji/0_1508.png index 923552f239..7f19fe22dd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1508.png and b/TMessagesProj/src/main/assets/emoji/0_1508.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1509.png b/TMessagesProj/src/main/assets/emoji/0_1509.png index 2a1ad26220..c5d8c34d04 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1509.png and b/TMessagesProj/src/main/assets/emoji/0_1509.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_151.png b/TMessagesProj/src/main/assets/emoji/0_151.png index 525b0951ea..5921184f41 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_151.png and b/TMessagesProj/src/main/assets/emoji/0_151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1510.png b/TMessagesProj/src/main/assets/emoji/0_1510.png index f91e222584..1dc1e3be36 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1510.png and b/TMessagesProj/src/main/assets/emoji/0_1510.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1511.png b/TMessagesProj/src/main/assets/emoji/0_1511.png index 975edd67eb..86d53bc50e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1511.png and b/TMessagesProj/src/main/assets/emoji/0_1511.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1512.png b/TMessagesProj/src/main/assets/emoji/0_1512.png index cded1ad3a5..157c01e2f3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1512.png and b/TMessagesProj/src/main/assets/emoji/0_1512.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1513.png b/TMessagesProj/src/main/assets/emoji/0_1513.png index fdfe6c7c11..58b4423ae5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1513.png and b/TMessagesProj/src/main/assets/emoji/0_1513.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1514.png b/TMessagesProj/src/main/assets/emoji/0_1514.png index 967c22138b..2d56c2bc57 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1514.png and b/TMessagesProj/src/main/assets/emoji/0_1514.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1515.png b/TMessagesProj/src/main/assets/emoji/0_1515.png index 13ce75f2fa..25e90b2669 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1515.png and b/TMessagesProj/src/main/assets/emoji/0_1515.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1516.png b/TMessagesProj/src/main/assets/emoji/0_1516.png index 8984d9a4f2..8e8a847e04 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1516.png and b/TMessagesProj/src/main/assets/emoji/0_1516.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1517.png b/TMessagesProj/src/main/assets/emoji/0_1517.png index bb52496ff5..ce72b05d36 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1517.png and b/TMessagesProj/src/main/assets/emoji/0_1517.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1518.png b/TMessagesProj/src/main/assets/emoji/0_1518.png index 156f73f13b..4354b60c63 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1518.png and b/TMessagesProj/src/main/assets/emoji/0_1518.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1519.png b/TMessagesProj/src/main/assets/emoji/0_1519.png index 0309c12d09..065b7206ed 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1519.png and b/TMessagesProj/src/main/assets/emoji/0_1519.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_152.png b/TMessagesProj/src/main/assets/emoji/0_152.png index 6d83ebf8e7..c3742823a2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_152.png and b/TMessagesProj/src/main/assets/emoji/0_152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1520.png b/TMessagesProj/src/main/assets/emoji/0_1520.png index 1d928d145a..afb0f178b7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1520.png and b/TMessagesProj/src/main/assets/emoji/0_1520.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1521.png b/TMessagesProj/src/main/assets/emoji/0_1521.png index 94f21420bf..78808b7daa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1521.png and b/TMessagesProj/src/main/assets/emoji/0_1521.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1522.png b/TMessagesProj/src/main/assets/emoji/0_1522.png index 5eed69fa14..f6467b6268 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1522.png and b/TMessagesProj/src/main/assets/emoji/0_1522.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1523.png b/TMessagesProj/src/main/assets/emoji/0_1523.png index 7d704fb3ce..9b92218a1c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1523.png and b/TMessagesProj/src/main/assets/emoji/0_1523.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1524.png b/TMessagesProj/src/main/assets/emoji/0_1524.png index 74715ba0c8..81023193d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1524.png and b/TMessagesProj/src/main/assets/emoji/0_1524.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1525.png b/TMessagesProj/src/main/assets/emoji/0_1525.png index f24472deb4..7b9724d56e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1525.png and b/TMessagesProj/src/main/assets/emoji/0_1525.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1526.png b/TMessagesProj/src/main/assets/emoji/0_1526.png index 0195be48fa..8e8f062392 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1526.png and b/TMessagesProj/src/main/assets/emoji/0_1526.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1527.png b/TMessagesProj/src/main/assets/emoji/0_1527.png index f5550f83ff..d8df5d896a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1527.png and b/TMessagesProj/src/main/assets/emoji/0_1527.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1528.png b/TMessagesProj/src/main/assets/emoji/0_1528.png index b0d9fa4e4b..b843e0a00e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1528.png and b/TMessagesProj/src/main/assets/emoji/0_1528.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1529.png b/TMessagesProj/src/main/assets/emoji/0_1529.png index 9921b997aa..a6feef9e75 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1529.png and b/TMessagesProj/src/main/assets/emoji/0_1529.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_153.png b/TMessagesProj/src/main/assets/emoji/0_153.png index e0963af477..6aa92d4efd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_153.png and b/TMessagesProj/src/main/assets/emoji/0_153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1530.png b/TMessagesProj/src/main/assets/emoji/0_1530.png index 06ba7e899c..9e8fd70179 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1530.png and b/TMessagesProj/src/main/assets/emoji/0_1530.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1531.png b/TMessagesProj/src/main/assets/emoji/0_1531.png index 597d7c69d1..f4caa841fc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1531.png and b/TMessagesProj/src/main/assets/emoji/0_1531.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1532.png b/TMessagesProj/src/main/assets/emoji/0_1532.png index d1fa6cb21e..86c1f9d6f6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1532.png and b/TMessagesProj/src/main/assets/emoji/0_1532.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1533.png b/TMessagesProj/src/main/assets/emoji/0_1533.png index 975868c4d0..ef43f2a511 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1533.png and b/TMessagesProj/src/main/assets/emoji/0_1533.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1534.png b/TMessagesProj/src/main/assets/emoji/0_1534.png index 022bb719a9..cac3ffa721 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1534.png and b/TMessagesProj/src/main/assets/emoji/0_1534.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1535.png b/TMessagesProj/src/main/assets/emoji/0_1535.png index 03432bfb62..dc0018e719 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1535.png and b/TMessagesProj/src/main/assets/emoji/0_1535.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1536.png b/TMessagesProj/src/main/assets/emoji/0_1536.png index bd8d9b2583..8e224ba9a9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1536.png and b/TMessagesProj/src/main/assets/emoji/0_1536.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1537.png b/TMessagesProj/src/main/assets/emoji/0_1537.png index 19e11bd6e2..23e33f8ec7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1537.png and b/TMessagesProj/src/main/assets/emoji/0_1537.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1538.png b/TMessagesProj/src/main/assets/emoji/0_1538.png index 8b9efe2ef9..3ee7ecf01c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1538.png and b/TMessagesProj/src/main/assets/emoji/0_1538.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1539.png b/TMessagesProj/src/main/assets/emoji/0_1539.png index f96f51a542..5abe362219 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1539.png and b/TMessagesProj/src/main/assets/emoji/0_1539.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_154.png b/TMessagesProj/src/main/assets/emoji/0_154.png index 2f54e8d5a3..1d432abb94 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_154.png and b/TMessagesProj/src/main/assets/emoji/0_154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1540.png b/TMessagesProj/src/main/assets/emoji/0_1540.png index 1a9e67abbd..327567d78d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1540.png and b/TMessagesProj/src/main/assets/emoji/0_1540.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1541.png b/TMessagesProj/src/main/assets/emoji/0_1541.png index dbcbcf9fba..c133e33b86 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1541.png and b/TMessagesProj/src/main/assets/emoji/0_1541.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1542.png b/TMessagesProj/src/main/assets/emoji/0_1542.png index 25501cb6d9..f35796d568 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1542.png and b/TMessagesProj/src/main/assets/emoji/0_1542.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1543.png b/TMessagesProj/src/main/assets/emoji/0_1543.png index 460f05b2ac..fbd5c119fa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1543.png and b/TMessagesProj/src/main/assets/emoji/0_1543.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1544.png b/TMessagesProj/src/main/assets/emoji/0_1544.png index 7224eeef65..364f6be8bd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1544.png and b/TMessagesProj/src/main/assets/emoji/0_1544.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1545.png b/TMessagesProj/src/main/assets/emoji/0_1545.png index 41ab81b1ee..ad78c52dfe 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1545.png and b/TMessagesProj/src/main/assets/emoji/0_1545.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1546.png b/TMessagesProj/src/main/assets/emoji/0_1546.png index d31a3071bd..0d2ab248a4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1546.png and b/TMessagesProj/src/main/assets/emoji/0_1546.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1547.png b/TMessagesProj/src/main/assets/emoji/0_1547.png index 8e776b267d..51c8da8ded 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1547.png and b/TMessagesProj/src/main/assets/emoji/0_1547.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1548.png b/TMessagesProj/src/main/assets/emoji/0_1548.png index c253440307..9aa3b3b68a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1548.png and b/TMessagesProj/src/main/assets/emoji/0_1548.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1549.png b/TMessagesProj/src/main/assets/emoji/0_1549.png index 9ba903005d..01067288db 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1549.png and b/TMessagesProj/src/main/assets/emoji/0_1549.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_155.png b/TMessagesProj/src/main/assets/emoji/0_155.png index 2c23d988d8..5e76a56e76 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_155.png and b/TMessagesProj/src/main/assets/emoji/0_155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1550.png b/TMessagesProj/src/main/assets/emoji/0_1550.png index 387323bb30..32bcacbc7a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1550.png and b/TMessagesProj/src/main/assets/emoji/0_1550.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1551.png b/TMessagesProj/src/main/assets/emoji/0_1551.png index 455a9ac2d3..6752cb6eca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1551.png and b/TMessagesProj/src/main/assets/emoji/0_1551.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1552.png b/TMessagesProj/src/main/assets/emoji/0_1552.png index d50cc7547e..e473961f02 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1552.png and b/TMessagesProj/src/main/assets/emoji/0_1552.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1553.png b/TMessagesProj/src/main/assets/emoji/0_1553.png index 207a136b22..b634a24a7a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1553.png and b/TMessagesProj/src/main/assets/emoji/0_1553.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1554.png b/TMessagesProj/src/main/assets/emoji/0_1554.png index f59b09dbf7..e587da0872 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1554.png and b/TMessagesProj/src/main/assets/emoji/0_1554.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1555.png b/TMessagesProj/src/main/assets/emoji/0_1555.png index 095720ab4b..a72c2e6a40 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1555.png and b/TMessagesProj/src/main/assets/emoji/0_1555.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1556.png b/TMessagesProj/src/main/assets/emoji/0_1556.png index 833bc85227..67eec2bc58 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1556.png and b/TMessagesProj/src/main/assets/emoji/0_1556.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1557.png b/TMessagesProj/src/main/assets/emoji/0_1557.png index acd569dd2a..939780f8e2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1557.png and b/TMessagesProj/src/main/assets/emoji/0_1557.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1558.png b/TMessagesProj/src/main/assets/emoji/0_1558.png index 63cd9ba9d7..907ca1391c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1558.png and b/TMessagesProj/src/main/assets/emoji/0_1558.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1559.png b/TMessagesProj/src/main/assets/emoji/0_1559.png index 23ac634a06..6723733a68 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1559.png and b/TMessagesProj/src/main/assets/emoji/0_1559.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_156.png b/TMessagesProj/src/main/assets/emoji/0_156.png index c1c72e76c5..7f38e795d3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_156.png and b/TMessagesProj/src/main/assets/emoji/0_156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1560.png b/TMessagesProj/src/main/assets/emoji/0_1560.png index 5edb1cd784..06fb9a7b19 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1560.png and b/TMessagesProj/src/main/assets/emoji/0_1560.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1561.png b/TMessagesProj/src/main/assets/emoji/0_1561.png index 4fdd84abba..5ec0339944 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1561.png and b/TMessagesProj/src/main/assets/emoji/0_1561.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1562.png b/TMessagesProj/src/main/assets/emoji/0_1562.png index a3ce1f5fff..3a64cc0bd3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1562.png and b/TMessagesProj/src/main/assets/emoji/0_1562.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1563.png b/TMessagesProj/src/main/assets/emoji/0_1563.png index a96da846ae..6d712dec97 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1563.png and b/TMessagesProj/src/main/assets/emoji/0_1563.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1564.png b/TMessagesProj/src/main/assets/emoji/0_1564.png index c94f076ee6..d4f648e08e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1564.png and b/TMessagesProj/src/main/assets/emoji/0_1564.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1565.png b/TMessagesProj/src/main/assets/emoji/0_1565.png index 2d8c8e04f0..b6ae03f1f4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1565.png and b/TMessagesProj/src/main/assets/emoji/0_1565.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1566.png b/TMessagesProj/src/main/assets/emoji/0_1566.png index c9892c9ba3..6997efb902 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1566.png and b/TMessagesProj/src/main/assets/emoji/0_1566.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1567.png b/TMessagesProj/src/main/assets/emoji/0_1567.png index 00bf125a37..d5021b9270 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1567.png and b/TMessagesProj/src/main/assets/emoji/0_1567.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1568.png b/TMessagesProj/src/main/assets/emoji/0_1568.png index eb07a113ce..9cd1132875 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1568.png and b/TMessagesProj/src/main/assets/emoji/0_1568.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1569.png b/TMessagesProj/src/main/assets/emoji/0_1569.png index 0847f61e85..6db83c8f9c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1569.png and b/TMessagesProj/src/main/assets/emoji/0_1569.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_157.png b/TMessagesProj/src/main/assets/emoji/0_157.png index 6318eb5c23..90549784fa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_157.png and b/TMessagesProj/src/main/assets/emoji/0_157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1570.png b/TMessagesProj/src/main/assets/emoji/0_1570.png index aaa13fc7fb..1b5c94f341 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1570.png and b/TMessagesProj/src/main/assets/emoji/0_1570.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1571.png b/TMessagesProj/src/main/assets/emoji/0_1571.png index 887d97bee9..797b54f4b0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1571.png and b/TMessagesProj/src/main/assets/emoji/0_1571.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1572.png b/TMessagesProj/src/main/assets/emoji/0_1572.png index 1d4a504280..917bad9ce2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1572.png and b/TMessagesProj/src/main/assets/emoji/0_1572.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1573.png b/TMessagesProj/src/main/assets/emoji/0_1573.png index 0c9d7b60a1..c928eaed80 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1573.png and b/TMessagesProj/src/main/assets/emoji/0_1573.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1574.png b/TMessagesProj/src/main/assets/emoji/0_1574.png index e16100b140..5b44b8410a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1574.png and b/TMessagesProj/src/main/assets/emoji/0_1574.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1575.png b/TMessagesProj/src/main/assets/emoji/0_1575.png index 6698185312..3488035a35 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1575.png and b/TMessagesProj/src/main/assets/emoji/0_1575.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1576.png b/TMessagesProj/src/main/assets/emoji/0_1576.png index 1d6acf15b5..a046a172c8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1576.png and b/TMessagesProj/src/main/assets/emoji/0_1576.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1577.png b/TMessagesProj/src/main/assets/emoji/0_1577.png index cb68b2dd53..cd3ec30dab 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1577.png and b/TMessagesProj/src/main/assets/emoji/0_1577.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1578.png b/TMessagesProj/src/main/assets/emoji/0_1578.png index 12c82e9243..a9b156b1e5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1578.png and b/TMessagesProj/src/main/assets/emoji/0_1578.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1579.png b/TMessagesProj/src/main/assets/emoji/0_1579.png index 2e292df873..94fc6d6034 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1579.png and b/TMessagesProj/src/main/assets/emoji/0_1579.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_158.png b/TMessagesProj/src/main/assets/emoji/0_158.png index f710de6087..da75a70aea 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_158.png and b/TMessagesProj/src/main/assets/emoji/0_158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1580.png b/TMessagesProj/src/main/assets/emoji/0_1580.png index a4c596e92e..dcbefa26c1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1580.png and b/TMessagesProj/src/main/assets/emoji/0_1580.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1581.png b/TMessagesProj/src/main/assets/emoji/0_1581.png index c933b14bb2..61b7f39319 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1581.png and b/TMessagesProj/src/main/assets/emoji/0_1581.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1582.png b/TMessagesProj/src/main/assets/emoji/0_1582.png index ac430906eb..ca6a2cfc60 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1582.png and b/TMessagesProj/src/main/assets/emoji/0_1582.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1583.png b/TMessagesProj/src/main/assets/emoji/0_1583.png index 9154d8c986..ea40290019 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1583.png and b/TMessagesProj/src/main/assets/emoji/0_1583.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1584.png b/TMessagesProj/src/main/assets/emoji/0_1584.png index e923c547e1..eb67902e54 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1584.png and b/TMessagesProj/src/main/assets/emoji/0_1584.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1585.png b/TMessagesProj/src/main/assets/emoji/0_1585.png index 85d46efcff..3fc3dc010c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1585.png and b/TMessagesProj/src/main/assets/emoji/0_1585.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1586.png b/TMessagesProj/src/main/assets/emoji/0_1586.png index d57205edea..2d75d97290 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1586.png and b/TMessagesProj/src/main/assets/emoji/0_1586.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1587.png b/TMessagesProj/src/main/assets/emoji/0_1587.png index c435cf6e20..d289a4249f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1587.png and b/TMessagesProj/src/main/assets/emoji/0_1587.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1588.png b/TMessagesProj/src/main/assets/emoji/0_1588.png index cb08db621b..eca907c231 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1588.png and b/TMessagesProj/src/main/assets/emoji/0_1588.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1589.png b/TMessagesProj/src/main/assets/emoji/0_1589.png index a125dc944c..3083ffd4a3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1589.png and b/TMessagesProj/src/main/assets/emoji/0_1589.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_159.png b/TMessagesProj/src/main/assets/emoji/0_159.png index 910f1c7237..e7e9cc7b51 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_159.png and b/TMessagesProj/src/main/assets/emoji/0_159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1590.png b/TMessagesProj/src/main/assets/emoji/0_1590.png index 08b3e29823..1e5812a695 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1590.png and b/TMessagesProj/src/main/assets/emoji/0_1590.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1591.png b/TMessagesProj/src/main/assets/emoji/0_1591.png index f9c69a4031..004b314443 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1591.png and b/TMessagesProj/src/main/assets/emoji/0_1591.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1592.png b/TMessagesProj/src/main/assets/emoji/0_1592.png index d56aed9438..188ffaef27 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1592.png and b/TMessagesProj/src/main/assets/emoji/0_1592.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1593.png b/TMessagesProj/src/main/assets/emoji/0_1593.png index 95c3dbbeae..cecb813caa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1593.png and b/TMessagesProj/src/main/assets/emoji/0_1593.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1594.png b/TMessagesProj/src/main/assets/emoji/0_1594.png index e9e352905d..5eb9af4ae7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1594.png and b/TMessagesProj/src/main/assets/emoji/0_1594.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1595.png b/TMessagesProj/src/main/assets/emoji/0_1595.png index 56b114c6c7..8995d73c60 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1595.png and b/TMessagesProj/src/main/assets/emoji/0_1595.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1596.png b/TMessagesProj/src/main/assets/emoji/0_1596.png index caa055f327..fd65ac46f4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1596.png and b/TMessagesProj/src/main/assets/emoji/0_1596.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1597.png b/TMessagesProj/src/main/assets/emoji/0_1597.png index e3afa56dd6..0ae4f54640 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1597.png and b/TMessagesProj/src/main/assets/emoji/0_1597.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1598.png b/TMessagesProj/src/main/assets/emoji/0_1598.png index 314129c8eb..9fcef95c49 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1598.png and b/TMessagesProj/src/main/assets/emoji/0_1598.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1599.png b/TMessagesProj/src/main/assets/emoji/0_1599.png index 0b551f344e..865f305b15 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1599.png and b/TMessagesProj/src/main/assets/emoji/0_1599.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_16.png b/TMessagesProj/src/main/assets/emoji/0_16.png index 1e3ef42c45..97244cd961 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_16.png and b/TMessagesProj/src/main/assets/emoji/0_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_160.png b/TMessagesProj/src/main/assets/emoji/0_160.png index de91302114..7ec8865611 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_160.png and b/TMessagesProj/src/main/assets/emoji/0_160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1600.png b/TMessagesProj/src/main/assets/emoji/0_1600.png index b5d6f84873..b6d88f97bf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1600.png and b/TMessagesProj/src/main/assets/emoji/0_1600.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1601.png b/TMessagesProj/src/main/assets/emoji/0_1601.png index d48fa4b93d..9549c63634 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1601.png and b/TMessagesProj/src/main/assets/emoji/0_1601.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1602.png b/TMessagesProj/src/main/assets/emoji/0_1602.png index bd1e7a6a63..13ef13a0a0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1602.png and b/TMessagesProj/src/main/assets/emoji/0_1602.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1603.png b/TMessagesProj/src/main/assets/emoji/0_1603.png index 575966df4e..103161e6e0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1603.png and b/TMessagesProj/src/main/assets/emoji/0_1603.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1604.png b/TMessagesProj/src/main/assets/emoji/0_1604.png index 043928aaa1..5f68a6901c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1604.png and b/TMessagesProj/src/main/assets/emoji/0_1604.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1605.png b/TMessagesProj/src/main/assets/emoji/0_1605.png index 80988c0252..5363fd83fb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1605.png and b/TMessagesProj/src/main/assets/emoji/0_1605.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1606.png b/TMessagesProj/src/main/assets/emoji/0_1606.png index b8cc869a19..0ebb4ec8c5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1606.png and b/TMessagesProj/src/main/assets/emoji/0_1606.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1607.png b/TMessagesProj/src/main/assets/emoji/0_1607.png index 0b52142436..8da7c843de 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1607.png and b/TMessagesProj/src/main/assets/emoji/0_1607.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1608.png b/TMessagesProj/src/main/assets/emoji/0_1608.png index 00644e6d7a..b86b5a46d8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1608.png and b/TMessagesProj/src/main/assets/emoji/0_1608.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1609.png b/TMessagesProj/src/main/assets/emoji/0_1609.png index 68ceed9251..802621e6ff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1609.png and b/TMessagesProj/src/main/assets/emoji/0_1609.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_161.png b/TMessagesProj/src/main/assets/emoji/0_161.png index 03d2f68a5c..fed9880b8a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_161.png and b/TMessagesProj/src/main/assets/emoji/0_161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1610.png b/TMessagesProj/src/main/assets/emoji/0_1610.png index eaaae32d85..88b2418132 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1610.png and b/TMessagesProj/src/main/assets/emoji/0_1610.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1611.png b/TMessagesProj/src/main/assets/emoji/0_1611.png index c4b05b0ce5..5e04d26d15 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1611.png and b/TMessagesProj/src/main/assets/emoji/0_1611.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1612.png b/TMessagesProj/src/main/assets/emoji/0_1612.png index 838bfbc41d..fdb94b225b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1612.png and b/TMessagesProj/src/main/assets/emoji/0_1612.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1613.png b/TMessagesProj/src/main/assets/emoji/0_1613.png index e82c96cf3e..9c46b05511 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1613.png and b/TMessagesProj/src/main/assets/emoji/0_1613.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1614.png b/TMessagesProj/src/main/assets/emoji/0_1614.png index c7dcaaf701..f3bac2b456 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1614.png and b/TMessagesProj/src/main/assets/emoji/0_1614.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1615.png b/TMessagesProj/src/main/assets/emoji/0_1615.png index cdba196aa6..9117a0c3c7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1615.png and b/TMessagesProj/src/main/assets/emoji/0_1615.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1616.png b/TMessagesProj/src/main/assets/emoji/0_1616.png index ff80456784..52809f63f6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1616.png and b/TMessagesProj/src/main/assets/emoji/0_1616.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1617.png b/TMessagesProj/src/main/assets/emoji/0_1617.png index 1ecb1fa75a..0f3135bf46 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1617.png and b/TMessagesProj/src/main/assets/emoji/0_1617.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1618.png b/TMessagesProj/src/main/assets/emoji/0_1618.png index 7b9b8f4ccd..373b467f62 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1618.png and b/TMessagesProj/src/main/assets/emoji/0_1618.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1619.png b/TMessagesProj/src/main/assets/emoji/0_1619.png index 483fa051fd..3228298e74 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1619.png and b/TMessagesProj/src/main/assets/emoji/0_1619.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_162.png b/TMessagesProj/src/main/assets/emoji/0_162.png index 29fc59e0fa..e5ad15059b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_162.png and b/TMessagesProj/src/main/assets/emoji/0_162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1620.png b/TMessagesProj/src/main/assets/emoji/0_1620.png index 3e4852821a..509cc375e5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1620.png and b/TMessagesProj/src/main/assets/emoji/0_1620.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1621.png b/TMessagesProj/src/main/assets/emoji/0_1621.png index 9330aaceb7..661a2e84d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1621.png and b/TMessagesProj/src/main/assets/emoji/0_1621.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1622.png b/TMessagesProj/src/main/assets/emoji/0_1622.png index bf78de41e0..fd7fedec64 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1622.png and b/TMessagesProj/src/main/assets/emoji/0_1622.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1623.png b/TMessagesProj/src/main/assets/emoji/0_1623.png index 0ebc29c6de..292d2a6c60 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1623.png and b/TMessagesProj/src/main/assets/emoji/0_1623.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1624.png b/TMessagesProj/src/main/assets/emoji/0_1624.png index 87cf4ea219..abde8c4bff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1624.png and b/TMessagesProj/src/main/assets/emoji/0_1624.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1625.png b/TMessagesProj/src/main/assets/emoji/0_1625.png index 74085e7ef1..9c1e1728b2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1625.png and b/TMessagesProj/src/main/assets/emoji/0_1625.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1626.png b/TMessagesProj/src/main/assets/emoji/0_1626.png index 3b749f6a30..630d91a81f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1626.png and b/TMessagesProj/src/main/assets/emoji/0_1626.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1627.png b/TMessagesProj/src/main/assets/emoji/0_1627.png index 7a959661eb..b8b4324a04 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1627.png and b/TMessagesProj/src/main/assets/emoji/0_1627.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1628.png b/TMessagesProj/src/main/assets/emoji/0_1628.png index 9c27674b1e..3c1f5cffe8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1628.png and b/TMessagesProj/src/main/assets/emoji/0_1628.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1629.png b/TMessagesProj/src/main/assets/emoji/0_1629.png index e02247f2ca..d664cd5c5c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1629.png and b/TMessagesProj/src/main/assets/emoji/0_1629.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_163.png b/TMessagesProj/src/main/assets/emoji/0_163.png index df13e3de83..add7d6efeb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_163.png and b/TMessagesProj/src/main/assets/emoji/0_163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1630.png b/TMessagesProj/src/main/assets/emoji/0_1630.png index ff111db8ab..9d6412ef75 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1630.png and b/TMessagesProj/src/main/assets/emoji/0_1630.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1631.png b/TMessagesProj/src/main/assets/emoji/0_1631.png index e7e5a98593..1f15614857 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1631.png and b/TMessagesProj/src/main/assets/emoji/0_1631.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1632.png b/TMessagesProj/src/main/assets/emoji/0_1632.png index ccbc39c8d9..b712244a8e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1632.png and b/TMessagesProj/src/main/assets/emoji/0_1632.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1633.png b/TMessagesProj/src/main/assets/emoji/0_1633.png index e9ea4ec78e..aa2c8dc9ad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1633.png and b/TMessagesProj/src/main/assets/emoji/0_1633.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1634.png b/TMessagesProj/src/main/assets/emoji/0_1634.png index ff374b7686..c50a18b586 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1634.png and b/TMessagesProj/src/main/assets/emoji/0_1634.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1635.png b/TMessagesProj/src/main/assets/emoji/0_1635.png index 3778f74652..57d4966774 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1635.png and b/TMessagesProj/src/main/assets/emoji/0_1635.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1636.png b/TMessagesProj/src/main/assets/emoji/0_1636.png index 2d4cd894aa..f9d1410cb1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1636.png and b/TMessagesProj/src/main/assets/emoji/0_1636.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1637.png b/TMessagesProj/src/main/assets/emoji/0_1637.png index ce17dac4c0..d83d7b4dce 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1637.png and b/TMessagesProj/src/main/assets/emoji/0_1637.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1638.png b/TMessagesProj/src/main/assets/emoji/0_1638.png index f8b693bfb0..a79b1856ee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1638.png and b/TMessagesProj/src/main/assets/emoji/0_1638.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1639.png b/TMessagesProj/src/main/assets/emoji/0_1639.png index 3171756cc2..171d864ad2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1639.png and b/TMessagesProj/src/main/assets/emoji/0_1639.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_164.png b/TMessagesProj/src/main/assets/emoji/0_164.png index 4525c8e37e..ce239e2e58 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_164.png and b/TMessagesProj/src/main/assets/emoji/0_164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1640.png b/TMessagesProj/src/main/assets/emoji/0_1640.png index 9c57d0da74..7210cdaa17 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1640.png and b/TMessagesProj/src/main/assets/emoji/0_1640.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1641.png b/TMessagesProj/src/main/assets/emoji/0_1641.png index eaa9f403c0..f89f53961b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1641.png and b/TMessagesProj/src/main/assets/emoji/0_1641.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1642.png b/TMessagesProj/src/main/assets/emoji/0_1642.png index 0cac478607..7368f72a09 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1642.png and b/TMessagesProj/src/main/assets/emoji/0_1642.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1643.png b/TMessagesProj/src/main/assets/emoji/0_1643.png index af76961f97..b869975f7e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1643.png and b/TMessagesProj/src/main/assets/emoji/0_1643.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1644.png b/TMessagesProj/src/main/assets/emoji/0_1644.png index d3727db5fd..d434462a66 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1644.png and b/TMessagesProj/src/main/assets/emoji/0_1644.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1645.png b/TMessagesProj/src/main/assets/emoji/0_1645.png index a39a3d7579..51c8960c30 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1645.png and b/TMessagesProj/src/main/assets/emoji/0_1645.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1646.png b/TMessagesProj/src/main/assets/emoji/0_1646.png index d50457cb74..c441301027 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1646.png and b/TMessagesProj/src/main/assets/emoji/0_1646.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1647.png b/TMessagesProj/src/main/assets/emoji/0_1647.png index fe3844be1d..fa9f61caf9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1647.png and b/TMessagesProj/src/main/assets/emoji/0_1647.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1648.png b/TMessagesProj/src/main/assets/emoji/0_1648.png index e90d73ef6e..02fe6d136c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1648.png and b/TMessagesProj/src/main/assets/emoji/0_1648.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1649.png b/TMessagesProj/src/main/assets/emoji/0_1649.png index ac35067eff..3413c2e92f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1649.png and b/TMessagesProj/src/main/assets/emoji/0_1649.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_165.png b/TMessagesProj/src/main/assets/emoji/0_165.png index 9dd05138de..5f3e5b53a8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_165.png and b/TMessagesProj/src/main/assets/emoji/0_165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1650.png b/TMessagesProj/src/main/assets/emoji/0_1650.png index b7809597b3..e27db83ab6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1650.png and b/TMessagesProj/src/main/assets/emoji/0_1650.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1651.png b/TMessagesProj/src/main/assets/emoji/0_1651.png index 85675c36d0..3fdcb63e31 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1651.png and b/TMessagesProj/src/main/assets/emoji/0_1651.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1652.png b/TMessagesProj/src/main/assets/emoji/0_1652.png index e12d878f44..7a3d5532ad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1652.png and b/TMessagesProj/src/main/assets/emoji/0_1652.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1653.png b/TMessagesProj/src/main/assets/emoji/0_1653.png index f7b16f1e57..6fa3aa0d48 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1653.png and b/TMessagesProj/src/main/assets/emoji/0_1653.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1654.png b/TMessagesProj/src/main/assets/emoji/0_1654.png index 69081dd654..529701afe9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1654.png and b/TMessagesProj/src/main/assets/emoji/0_1654.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1655.png b/TMessagesProj/src/main/assets/emoji/0_1655.png index 9462e399ae..3d413a8e0c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1655.png and b/TMessagesProj/src/main/assets/emoji/0_1655.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1656.png b/TMessagesProj/src/main/assets/emoji/0_1656.png index 1effeb1bd6..86cfd75573 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1656.png and b/TMessagesProj/src/main/assets/emoji/0_1656.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1657.png b/TMessagesProj/src/main/assets/emoji/0_1657.png index c5f278db22..4e35f3fd0e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1657.png and b/TMessagesProj/src/main/assets/emoji/0_1657.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1658.png b/TMessagesProj/src/main/assets/emoji/0_1658.png index 98e0a302c4..799ed3d059 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1658.png and b/TMessagesProj/src/main/assets/emoji/0_1658.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1659.png b/TMessagesProj/src/main/assets/emoji/0_1659.png index cf7c40236e..b48fea6943 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1659.png and b/TMessagesProj/src/main/assets/emoji/0_1659.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_166.png b/TMessagesProj/src/main/assets/emoji/0_166.png index 5f030e7818..8f98c0c910 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_166.png and b/TMessagesProj/src/main/assets/emoji/0_166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1660.png b/TMessagesProj/src/main/assets/emoji/0_1660.png index 8b5a7b3d39..e3e27cff31 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1660.png and b/TMessagesProj/src/main/assets/emoji/0_1660.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1661.png b/TMessagesProj/src/main/assets/emoji/0_1661.png index ce06f1cef8..bf29844585 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1661.png and b/TMessagesProj/src/main/assets/emoji/0_1661.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1662.png b/TMessagesProj/src/main/assets/emoji/0_1662.png index 7f034d62f3..7158c7c2a2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1662.png and b/TMessagesProj/src/main/assets/emoji/0_1662.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1663.png b/TMessagesProj/src/main/assets/emoji/0_1663.png index 703a7bcd98..e4c535b77f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1663.png and b/TMessagesProj/src/main/assets/emoji/0_1663.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1664.png b/TMessagesProj/src/main/assets/emoji/0_1664.png index ab0cb8c150..a5c0bc93ac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1664.png and b/TMessagesProj/src/main/assets/emoji/0_1664.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1665.png b/TMessagesProj/src/main/assets/emoji/0_1665.png index 02127a0388..76648cb3ee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1665.png and b/TMessagesProj/src/main/assets/emoji/0_1665.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1666.png b/TMessagesProj/src/main/assets/emoji/0_1666.png index ce841ecccf..61afeb48c7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1666.png and b/TMessagesProj/src/main/assets/emoji/0_1666.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1667.png b/TMessagesProj/src/main/assets/emoji/0_1667.png index cf2eedff03..42c1465a0e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1667.png and b/TMessagesProj/src/main/assets/emoji/0_1667.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1668.png b/TMessagesProj/src/main/assets/emoji/0_1668.png index fd554ea765..51fd7121b1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1668.png and b/TMessagesProj/src/main/assets/emoji/0_1668.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1669.png b/TMessagesProj/src/main/assets/emoji/0_1669.png index ad167d8b21..293d17605a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1669.png and b/TMessagesProj/src/main/assets/emoji/0_1669.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_167.png b/TMessagesProj/src/main/assets/emoji/0_167.png index e9dac81cf4..55b4ded57f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_167.png and b/TMessagesProj/src/main/assets/emoji/0_167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1670.png b/TMessagesProj/src/main/assets/emoji/0_1670.png index 013c05b4ac..6b1909bf64 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1670.png and b/TMessagesProj/src/main/assets/emoji/0_1670.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1671.png b/TMessagesProj/src/main/assets/emoji/0_1671.png index 23980e1ee4..4c765e8d2f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1671.png and b/TMessagesProj/src/main/assets/emoji/0_1671.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1672.png b/TMessagesProj/src/main/assets/emoji/0_1672.png index 57057875ee..508c36dcb7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1672.png and b/TMessagesProj/src/main/assets/emoji/0_1672.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1673.png b/TMessagesProj/src/main/assets/emoji/0_1673.png index 6e6dce103c..c2c688eca8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1673.png and b/TMessagesProj/src/main/assets/emoji/0_1673.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1674.png b/TMessagesProj/src/main/assets/emoji/0_1674.png index a8153ef4cc..4b2cefa962 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1674.png and b/TMessagesProj/src/main/assets/emoji/0_1674.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1675.png b/TMessagesProj/src/main/assets/emoji/0_1675.png index 3392cc5c27..c7ed8fc6b9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1675.png and b/TMessagesProj/src/main/assets/emoji/0_1675.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1676.png b/TMessagesProj/src/main/assets/emoji/0_1676.png index 13889c7753..0564ba60dc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1676.png and b/TMessagesProj/src/main/assets/emoji/0_1676.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1677.png b/TMessagesProj/src/main/assets/emoji/0_1677.png index 79cd8f0d43..561764b48a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1677.png and b/TMessagesProj/src/main/assets/emoji/0_1677.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1678.png b/TMessagesProj/src/main/assets/emoji/0_1678.png index 92db9950c4..54a557a1d2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1678.png and b/TMessagesProj/src/main/assets/emoji/0_1678.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1679.png b/TMessagesProj/src/main/assets/emoji/0_1679.png index 111ffdeef7..c97c1baeab 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1679.png and b/TMessagesProj/src/main/assets/emoji/0_1679.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_168.png b/TMessagesProj/src/main/assets/emoji/0_168.png index f178e6c11e..c4d664113f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_168.png and b/TMessagesProj/src/main/assets/emoji/0_168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1680.png b/TMessagesProj/src/main/assets/emoji/0_1680.png index 1b631836d3..2a3f65d65d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1680.png and b/TMessagesProj/src/main/assets/emoji/0_1680.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1681.png b/TMessagesProj/src/main/assets/emoji/0_1681.png index c824a06cd7..c2af666410 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1681.png and b/TMessagesProj/src/main/assets/emoji/0_1681.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1682.png b/TMessagesProj/src/main/assets/emoji/0_1682.png index 99be99466d..ecc2d51a2e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1682.png and b/TMessagesProj/src/main/assets/emoji/0_1682.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1683.png b/TMessagesProj/src/main/assets/emoji/0_1683.png index d28208b619..ccf20271ee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1683.png and b/TMessagesProj/src/main/assets/emoji/0_1683.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1684.png b/TMessagesProj/src/main/assets/emoji/0_1684.png index 20492bb3c3..0f07413ab9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1684.png and b/TMessagesProj/src/main/assets/emoji/0_1684.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1685.png b/TMessagesProj/src/main/assets/emoji/0_1685.png index eabebdff8d..96912c8642 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1685.png and b/TMessagesProj/src/main/assets/emoji/0_1685.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1686.png b/TMessagesProj/src/main/assets/emoji/0_1686.png index df4819046e..d2d76dd294 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1686.png and b/TMessagesProj/src/main/assets/emoji/0_1686.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1687.png b/TMessagesProj/src/main/assets/emoji/0_1687.png index 957cff34ed..17bfd8f70b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1687.png and b/TMessagesProj/src/main/assets/emoji/0_1687.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1688.png b/TMessagesProj/src/main/assets/emoji/0_1688.png index 136dce045f..f8e1114287 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1688.png and b/TMessagesProj/src/main/assets/emoji/0_1688.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1689.png b/TMessagesProj/src/main/assets/emoji/0_1689.png index 81c4590a80..be602a8c7b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1689.png and b/TMessagesProj/src/main/assets/emoji/0_1689.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_169.png b/TMessagesProj/src/main/assets/emoji/0_169.png index 6846fe73ea..51a6300e65 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_169.png and b/TMessagesProj/src/main/assets/emoji/0_169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1690.png b/TMessagesProj/src/main/assets/emoji/0_1690.png index 83f0482136..7100824d85 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1690.png and b/TMessagesProj/src/main/assets/emoji/0_1690.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1691.png b/TMessagesProj/src/main/assets/emoji/0_1691.png index 7e71f24e45..d95a16881a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1691.png and b/TMessagesProj/src/main/assets/emoji/0_1691.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1692.png b/TMessagesProj/src/main/assets/emoji/0_1692.png index 292381cdfd..a39f403ee7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1692.png and b/TMessagesProj/src/main/assets/emoji/0_1692.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1693.png b/TMessagesProj/src/main/assets/emoji/0_1693.png index a3bf47f12b..e962c49d74 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1693.png and b/TMessagesProj/src/main/assets/emoji/0_1693.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1694.png b/TMessagesProj/src/main/assets/emoji/0_1694.png index fe461a0a9c..dfb5e03976 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1694.png and b/TMessagesProj/src/main/assets/emoji/0_1694.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1695.png b/TMessagesProj/src/main/assets/emoji/0_1695.png index 375c781cbc..e1c4b701ae 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1695.png and b/TMessagesProj/src/main/assets/emoji/0_1695.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1696.png b/TMessagesProj/src/main/assets/emoji/0_1696.png index c650eed586..016cc7a8ef 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1696.png and b/TMessagesProj/src/main/assets/emoji/0_1696.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1697.png b/TMessagesProj/src/main/assets/emoji/0_1697.png index 45f2f3df98..9d22f218f4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1697.png and b/TMessagesProj/src/main/assets/emoji/0_1697.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1698.png b/TMessagesProj/src/main/assets/emoji/0_1698.png index 721be654cb..bbc96a415a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1698.png and b/TMessagesProj/src/main/assets/emoji/0_1698.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1699.png b/TMessagesProj/src/main/assets/emoji/0_1699.png index 767d06c516..a01cdf670d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1699.png and b/TMessagesProj/src/main/assets/emoji/0_1699.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_17.png b/TMessagesProj/src/main/assets/emoji/0_17.png index 2e14d5a3be..a256fdc3cc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_17.png and b/TMessagesProj/src/main/assets/emoji/0_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_170.png b/TMessagesProj/src/main/assets/emoji/0_170.png index 8d88d03452..f68669c855 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_170.png and b/TMessagesProj/src/main/assets/emoji/0_170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1700.png b/TMessagesProj/src/main/assets/emoji/0_1700.png index dad43b23f0..2212e2ffd0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1700.png and b/TMessagesProj/src/main/assets/emoji/0_1700.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1701.png b/TMessagesProj/src/main/assets/emoji/0_1701.png index 0db6a70459..4ccfff5f15 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1701.png and b/TMessagesProj/src/main/assets/emoji/0_1701.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1702.png b/TMessagesProj/src/main/assets/emoji/0_1702.png index 9a1508d522..0ce04c982c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1702.png and b/TMessagesProj/src/main/assets/emoji/0_1702.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1703.png b/TMessagesProj/src/main/assets/emoji/0_1703.png index 075c6e4c33..b8eafdd9e2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1703.png and b/TMessagesProj/src/main/assets/emoji/0_1703.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1704.png b/TMessagesProj/src/main/assets/emoji/0_1704.png index 06f5a25992..25a434312a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1704.png and b/TMessagesProj/src/main/assets/emoji/0_1704.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1705.png b/TMessagesProj/src/main/assets/emoji/0_1705.png index cae21fc08f..f3d565867c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1705.png and b/TMessagesProj/src/main/assets/emoji/0_1705.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1706.png b/TMessagesProj/src/main/assets/emoji/0_1706.png index 139638636e..eb5ff54429 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1706.png and b/TMessagesProj/src/main/assets/emoji/0_1706.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1707.png b/TMessagesProj/src/main/assets/emoji/0_1707.png index d69b58fa84..4aee5c9d20 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1707.png and b/TMessagesProj/src/main/assets/emoji/0_1707.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1708.png b/TMessagesProj/src/main/assets/emoji/0_1708.png index 5ca3f8b8e6..a39f32bc1d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1708.png and b/TMessagesProj/src/main/assets/emoji/0_1708.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1709.png b/TMessagesProj/src/main/assets/emoji/0_1709.png index 00d9e5d973..7aec8b0630 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1709.png and b/TMessagesProj/src/main/assets/emoji/0_1709.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_171.png b/TMessagesProj/src/main/assets/emoji/0_171.png index 574958ffc6..d262c82d49 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_171.png and b/TMessagesProj/src/main/assets/emoji/0_171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1710.png b/TMessagesProj/src/main/assets/emoji/0_1710.png index ea03f38bcb..e2abe88020 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1710.png and b/TMessagesProj/src/main/assets/emoji/0_1710.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1711.png b/TMessagesProj/src/main/assets/emoji/0_1711.png index c5ec88d291..37065288f5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1711.png and b/TMessagesProj/src/main/assets/emoji/0_1711.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1712.png b/TMessagesProj/src/main/assets/emoji/0_1712.png index b6b0bd23f7..3d76094414 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1712.png and b/TMessagesProj/src/main/assets/emoji/0_1712.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1713.png b/TMessagesProj/src/main/assets/emoji/0_1713.png index 7bf5338405..8cf372139f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1713.png and b/TMessagesProj/src/main/assets/emoji/0_1713.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1714.png b/TMessagesProj/src/main/assets/emoji/0_1714.png index 5ed857453c..db06b5f1bf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1714.png and b/TMessagesProj/src/main/assets/emoji/0_1714.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1715.png b/TMessagesProj/src/main/assets/emoji/0_1715.png index 214a87ba12..c34405474b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1715.png and b/TMessagesProj/src/main/assets/emoji/0_1715.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1716.png b/TMessagesProj/src/main/assets/emoji/0_1716.png index 6ead42c63c..6d94125963 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1716.png and b/TMessagesProj/src/main/assets/emoji/0_1716.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1717.png b/TMessagesProj/src/main/assets/emoji/0_1717.png index 6d32230abf..914c453981 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1717.png and b/TMessagesProj/src/main/assets/emoji/0_1717.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1718.png b/TMessagesProj/src/main/assets/emoji/0_1718.png index fa19c1cad3..17427a0fbd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1718.png and b/TMessagesProj/src/main/assets/emoji/0_1718.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1719.png b/TMessagesProj/src/main/assets/emoji/0_1719.png index 844a7bd9f7..83dd12ff63 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1719.png and b/TMessagesProj/src/main/assets/emoji/0_1719.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_172.png b/TMessagesProj/src/main/assets/emoji/0_172.png index 04c0b124af..e96cd86213 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_172.png and b/TMessagesProj/src/main/assets/emoji/0_172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1720.png b/TMessagesProj/src/main/assets/emoji/0_1720.png index c3d91dda5c..94295c559c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1720.png and b/TMessagesProj/src/main/assets/emoji/0_1720.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1721.png b/TMessagesProj/src/main/assets/emoji/0_1721.png index 2ceeb442b3..acef133143 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1721.png and b/TMessagesProj/src/main/assets/emoji/0_1721.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1722.png b/TMessagesProj/src/main/assets/emoji/0_1722.png index e3a814cff2..96866791fb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1722.png and b/TMessagesProj/src/main/assets/emoji/0_1722.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1723.png b/TMessagesProj/src/main/assets/emoji/0_1723.png index 08bd0bb413..3a3c6b44dd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1723.png and b/TMessagesProj/src/main/assets/emoji/0_1723.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1724.png b/TMessagesProj/src/main/assets/emoji/0_1724.png index 91a4d94a66..2eddeea966 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1724.png and b/TMessagesProj/src/main/assets/emoji/0_1724.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1725.png b/TMessagesProj/src/main/assets/emoji/0_1725.png index 1ef4e986dd..c6df8d6f59 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1725.png and b/TMessagesProj/src/main/assets/emoji/0_1725.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1726.png b/TMessagesProj/src/main/assets/emoji/0_1726.png index 5db031d590..4ffb662428 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1726.png and b/TMessagesProj/src/main/assets/emoji/0_1726.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1727.png b/TMessagesProj/src/main/assets/emoji/0_1727.png index 1700a8bf69..a15e3866e4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1727.png and b/TMessagesProj/src/main/assets/emoji/0_1727.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1728.png b/TMessagesProj/src/main/assets/emoji/0_1728.png index a4b3b85634..0304586af3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1728.png and b/TMessagesProj/src/main/assets/emoji/0_1728.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1729.png b/TMessagesProj/src/main/assets/emoji/0_1729.png index 42abeae5ec..0f75a1b4bc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1729.png and b/TMessagesProj/src/main/assets/emoji/0_1729.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_173.png b/TMessagesProj/src/main/assets/emoji/0_173.png index d1c7f26fdc..01233d2793 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_173.png and b/TMessagesProj/src/main/assets/emoji/0_173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1730.png b/TMessagesProj/src/main/assets/emoji/0_1730.png index 3059134693..25e589e5a5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1730.png and b/TMessagesProj/src/main/assets/emoji/0_1730.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1731.png b/TMessagesProj/src/main/assets/emoji/0_1731.png index 736daa1896..daac7cd80a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1731.png and b/TMessagesProj/src/main/assets/emoji/0_1731.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1732.png b/TMessagesProj/src/main/assets/emoji/0_1732.png index 4a280f3d0d..a19514eb68 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1732.png and b/TMessagesProj/src/main/assets/emoji/0_1732.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1733.png b/TMessagesProj/src/main/assets/emoji/0_1733.png index 4f6d818a01..27e2b8f1ed 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1733.png and b/TMessagesProj/src/main/assets/emoji/0_1733.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1734.png b/TMessagesProj/src/main/assets/emoji/0_1734.png index 4927983095..b7934f22fb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1734.png and b/TMessagesProj/src/main/assets/emoji/0_1734.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1735.png b/TMessagesProj/src/main/assets/emoji/0_1735.png index 4c39a3f32f..26bcff5fa8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1735.png and b/TMessagesProj/src/main/assets/emoji/0_1735.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1736.png b/TMessagesProj/src/main/assets/emoji/0_1736.png index 3bd1d0c650..7899b43adc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1736.png and b/TMessagesProj/src/main/assets/emoji/0_1736.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1737.png b/TMessagesProj/src/main/assets/emoji/0_1737.png index 27a04dbeac..35dfd5eb3b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1737.png and b/TMessagesProj/src/main/assets/emoji/0_1737.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1738.png b/TMessagesProj/src/main/assets/emoji/0_1738.png index a031699359..9f029c1829 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1738.png and b/TMessagesProj/src/main/assets/emoji/0_1738.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1739.png b/TMessagesProj/src/main/assets/emoji/0_1739.png index d9c9282181..5257810066 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1739.png and b/TMessagesProj/src/main/assets/emoji/0_1739.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_174.png b/TMessagesProj/src/main/assets/emoji/0_174.png index 724796a471..bcdf23dd03 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_174.png and b/TMessagesProj/src/main/assets/emoji/0_174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1740.png b/TMessagesProj/src/main/assets/emoji/0_1740.png index 702f40f7b0..5c13b7cfa8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1740.png and b/TMessagesProj/src/main/assets/emoji/0_1740.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1741.png b/TMessagesProj/src/main/assets/emoji/0_1741.png index b167aa8c8d..887cbf235a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1741.png and b/TMessagesProj/src/main/assets/emoji/0_1741.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1742.png b/TMessagesProj/src/main/assets/emoji/0_1742.png index cd11e69630..f3dcab56a7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1742.png and b/TMessagesProj/src/main/assets/emoji/0_1742.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1743.png b/TMessagesProj/src/main/assets/emoji/0_1743.png index 8b7b89c0be..cf1815b1ec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1743.png and b/TMessagesProj/src/main/assets/emoji/0_1743.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1744.png b/TMessagesProj/src/main/assets/emoji/0_1744.png index d63965ddf9..e1bcd4953a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1744.png and b/TMessagesProj/src/main/assets/emoji/0_1744.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1745.png b/TMessagesProj/src/main/assets/emoji/0_1745.png index 7fdeea2c5c..c7b72c3e01 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1745.png and b/TMessagesProj/src/main/assets/emoji/0_1745.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1746.png b/TMessagesProj/src/main/assets/emoji/0_1746.png index 674ddbc88e..d685b63a06 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1746.png and b/TMessagesProj/src/main/assets/emoji/0_1746.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1747.png b/TMessagesProj/src/main/assets/emoji/0_1747.png index 8e01dac5a2..819f6495ee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1747.png and b/TMessagesProj/src/main/assets/emoji/0_1747.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1748.png b/TMessagesProj/src/main/assets/emoji/0_1748.png index 026c85981b..01f8f63547 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1748.png and b/TMessagesProj/src/main/assets/emoji/0_1748.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1749.png b/TMessagesProj/src/main/assets/emoji/0_1749.png index 24240b0c6e..6ad3a44d3d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1749.png and b/TMessagesProj/src/main/assets/emoji/0_1749.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_175.png b/TMessagesProj/src/main/assets/emoji/0_175.png index 9f34eb1de6..b8afbb377f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_175.png and b/TMessagesProj/src/main/assets/emoji/0_175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1750.png b/TMessagesProj/src/main/assets/emoji/0_1750.png index 633c85a07e..3656ef207a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1750.png and b/TMessagesProj/src/main/assets/emoji/0_1750.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1751.png b/TMessagesProj/src/main/assets/emoji/0_1751.png index 78c312523a..e9d1346da1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1751.png and b/TMessagesProj/src/main/assets/emoji/0_1751.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1752.png b/TMessagesProj/src/main/assets/emoji/0_1752.png index eae9ebefe3..01ac0cd52a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1752.png and b/TMessagesProj/src/main/assets/emoji/0_1752.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1753.png b/TMessagesProj/src/main/assets/emoji/0_1753.png index c340845a44..37ecc26c3d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1753.png and b/TMessagesProj/src/main/assets/emoji/0_1753.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1754.png b/TMessagesProj/src/main/assets/emoji/0_1754.png index 3b471675a3..84bbbd2899 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1754.png and b/TMessagesProj/src/main/assets/emoji/0_1754.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1755.png b/TMessagesProj/src/main/assets/emoji/0_1755.png index 70091051a9..aeb2af65db 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1755.png and b/TMessagesProj/src/main/assets/emoji/0_1755.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1756.png b/TMessagesProj/src/main/assets/emoji/0_1756.png index 6c15a20aac..887ecb36e7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1756.png and b/TMessagesProj/src/main/assets/emoji/0_1756.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1757.png b/TMessagesProj/src/main/assets/emoji/0_1757.png index c7feef09a3..fd39df6b93 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1757.png and b/TMessagesProj/src/main/assets/emoji/0_1757.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1758.png b/TMessagesProj/src/main/assets/emoji/0_1758.png index 3d5af8ceb1..722081def7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1758.png and b/TMessagesProj/src/main/assets/emoji/0_1758.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1759.png b/TMessagesProj/src/main/assets/emoji/0_1759.png index 75c00439e0..73714fa5d9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1759.png and b/TMessagesProj/src/main/assets/emoji/0_1759.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_176.png b/TMessagesProj/src/main/assets/emoji/0_176.png index 478fe162a4..fb189f96a9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_176.png and b/TMessagesProj/src/main/assets/emoji/0_176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1760.png b/TMessagesProj/src/main/assets/emoji/0_1760.png index 6de2c20fdd..20bee70762 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1760.png and b/TMessagesProj/src/main/assets/emoji/0_1760.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1761.png b/TMessagesProj/src/main/assets/emoji/0_1761.png index 244e0cb83c..c2831184ca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1761.png and b/TMessagesProj/src/main/assets/emoji/0_1761.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1762.png b/TMessagesProj/src/main/assets/emoji/0_1762.png index e48222fa3a..4104942206 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1762.png and b/TMessagesProj/src/main/assets/emoji/0_1762.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1763.png b/TMessagesProj/src/main/assets/emoji/0_1763.png index 36fc30fb67..b50851f448 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1763.png and b/TMessagesProj/src/main/assets/emoji/0_1763.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1764.png b/TMessagesProj/src/main/assets/emoji/0_1764.png index 55c18627ca..36864c6ed8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1764.png and b/TMessagesProj/src/main/assets/emoji/0_1764.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1765.png b/TMessagesProj/src/main/assets/emoji/0_1765.png index e4516c8791..20b824a88b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1765.png and b/TMessagesProj/src/main/assets/emoji/0_1765.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1766.png b/TMessagesProj/src/main/assets/emoji/0_1766.png index 9f40b6a004..c1579cb167 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1766.png and b/TMessagesProj/src/main/assets/emoji/0_1766.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1767.png b/TMessagesProj/src/main/assets/emoji/0_1767.png index 8d6ea50d36..3a04041564 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1767.png and b/TMessagesProj/src/main/assets/emoji/0_1767.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1768.png b/TMessagesProj/src/main/assets/emoji/0_1768.png index 19f8f2acba..21efd74ea1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1768.png and b/TMessagesProj/src/main/assets/emoji/0_1768.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1769.png b/TMessagesProj/src/main/assets/emoji/0_1769.png index b6d1e0637a..35d0576d98 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1769.png and b/TMessagesProj/src/main/assets/emoji/0_1769.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_177.png b/TMessagesProj/src/main/assets/emoji/0_177.png index 4661766f66..8e583fcc69 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_177.png and b/TMessagesProj/src/main/assets/emoji/0_177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1770.png b/TMessagesProj/src/main/assets/emoji/0_1770.png index 879472f52a..589411644c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1770.png and b/TMessagesProj/src/main/assets/emoji/0_1770.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1771.png b/TMessagesProj/src/main/assets/emoji/0_1771.png index da762aa50f..c9104787ee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1771.png and b/TMessagesProj/src/main/assets/emoji/0_1771.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1772.png b/TMessagesProj/src/main/assets/emoji/0_1772.png index 5d3504edfe..e0fa66ab71 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1772.png and b/TMessagesProj/src/main/assets/emoji/0_1772.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1773.png b/TMessagesProj/src/main/assets/emoji/0_1773.png index 725a6284aa..a005585bc8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1773.png and b/TMessagesProj/src/main/assets/emoji/0_1773.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1774.png b/TMessagesProj/src/main/assets/emoji/0_1774.png index 2594003de6..a941d2b86e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1774.png and b/TMessagesProj/src/main/assets/emoji/0_1774.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1775.png b/TMessagesProj/src/main/assets/emoji/0_1775.png index 2c48d76586..f1146ac311 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1775.png and b/TMessagesProj/src/main/assets/emoji/0_1775.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1776.png b/TMessagesProj/src/main/assets/emoji/0_1776.png index 7674cb8f0a..fd85aa0c13 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1776.png and b/TMessagesProj/src/main/assets/emoji/0_1776.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1777.png b/TMessagesProj/src/main/assets/emoji/0_1777.png index 1da759067c..60bac85e2c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1777.png and b/TMessagesProj/src/main/assets/emoji/0_1777.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1778.png b/TMessagesProj/src/main/assets/emoji/0_1778.png index 933a19dc58..f56e3b908d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1778.png and b/TMessagesProj/src/main/assets/emoji/0_1778.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1779.png b/TMessagesProj/src/main/assets/emoji/0_1779.png index ad1109a155..bc209cc6b1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1779.png and b/TMessagesProj/src/main/assets/emoji/0_1779.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_178.png b/TMessagesProj/src/main/assets/emoji/0_178.png index 2029cdda03..728bf98d27 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_178.png and b/TMessagesProj/src/main/assets/emoji/0_178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1780.png b/TMessagesProj/src/main/assets/emoji/0_1780.png index 9fa991db62..78392afaf9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1780.png and b/TMessagesProj/src/main/assets/emoji/0_1780.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1781.png b/TMessagesProj/src/main/assets/emoji/0_1781.png index bc9cffba5c..6d4ca911ae 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1781.png and b/TMessagesProj/src/main/assets/emoji/0_1781.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1782.png b/TMessagesProj/src/main/assets/emoji/0_1782.png index f9e3764ad8..951118a9a9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1782.png and b/TMessagesProj/src/main/assets/emoji/0_1782.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1783.png b/TMessagesProj/src/main/assets/emoji/0_1783.png index db4deb2a31..e78cdacb83 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1783.png and b/TMessagesProj/src/main/assets/emoji/0_1783.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1784.png b/TMessagesProj/src/main/assets/emoji/0_1784.png index ddcba98855..48dfe4d110 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1784.png and b/TMessagesProj/src/main/assets/emoji/0_1784.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1785.png b/TMessagesProj/src/main/assets/emoji/0_1785.png index 21e373486f..f92797eed8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1785.png and b/TMessagesProj/src/main/assets/emoji/0_1785.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1786.png b/TMessagesProj/src/main/assets/emoji/0_1786.png index 608cbed9c5..b45e0f1d45 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1786.png and b/TMessagesProj/src/main/assets/emoji/0_1786.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1787.png b/TMessagesProj/src/main/assets/emoji/0_1787.png index 122991b3ef..0a9364cbc6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1787.png and b/TMessagesProj/src/main/assets/emoji/0_1787.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1788.png b/TMessagesProj/src/main/assets/emoji/0_1788.png index bf19476fcd..3408dc0fc5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1788.png and b/TMessagesProj/src/main/assets/emoji/0_1788.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1789.png b/TMessagesProj/src/main/assets/emoji/0_1789.png index 1855e75f9c..63865dd9c5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1789.png and b/TMessagesProj/src/main/assets/emoji/0_1789.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_179.png b/TMessagesProj/src/main/assets/emoji/0_179.png index fee8bdc587..538e3e293e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_179.png and b/TMessagesProj/src/main/assets/emoji/0_179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1790.png b/TMessagesProj/src/main/assets/emoji/0_1790.png index 170e0aef7a..5781c47b02 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1790.png and b/TMessagesProj/src/main/assets/emoji/0_1790.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1791.png b/TMessagesProj/src/main/assets/emoji/0_1791.png index 83b80324ea..b3e8b66961 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1791.png and b/TMessagesProj/src/main/assets/emoji/0_1791.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1792.png b/TMessagesProj/src/main/assets/emoji/0_1792.png index 856ff92fc7..fbb878ba2c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1792.png and b/TMessagesProj/src/main/assets/emoji/0_1792.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1793.png b/TMessagesProj/src/main/assets/emoji/0_1793.png index f5a967d487..478d3f032d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1793.png and b/TMessagesProj/src/main/assets/emoji/0_1793.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1794.png b/TMessagesProj/src/main/assets/emoji/0_1794.png index 218b75d08e..7457afe46b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1794.png and b/TMessagesProj/src/main/assets/emoji/0_1794.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1795.png b/TMessagesProj/src/main/assets/emoji/0_1795.png index af2a21c543..2ba9d12f3b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1795.png and b/TMessagesProj/src/main/assets/emoji/0_1795.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1796.png b/TMessagesProj/src/main/assets/emoji/0_1796.png index 4c2c61c5f3..a5a3e27ad6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1796.png and b/TMessagesProj/src/main/assets/emoji/0_1796.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1797.png b/TMessagesProj/src/main/assets/emoji/0_1797.png index 6bf7a3c331..9703f914c1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1797.png and b/TMessagesProj/src/main/assets/emoji/0_1797.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1798.png b/TMessagesProj/src/main/assets/emoji/0_1798.png index efdc06a858..fdbb2dd47b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1798.png and b/TMessagesProj/src/main/assets/emoji/0_1798.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1799.png b/TMessagesProj/src/main/assets/emoji/0_1799.png index b1bb537200..8b8fd05057 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1799.png and b/TMessagesProj/src/main/assets/emoji/0_1799.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_18.png b/TMessagesProj/src/main/assets/emoji/0_18.png index 087c48a889..7ee9d3b1e9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_18.png and b/TMessagesProj/src/main/assets/emoji/0_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_180.png b/TMessagesProj/src/main/assets/emoji/0_180.png index 07e430cd88..cdb2d5357e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_180.png and b/TMessagesProj/src/main/assets/emoji/0_180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1800.png b/TMessagesProj/src/main/assets/emoji/0_1800.png index 5ce856520e..563eff53f2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1800.png and b/TMessagesProj/src/main/assets/emoji/0_1800.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1801.png b/TMessagesProj/src/main/assets/emoji/0_1801.png index 0449df7c1f..abc87648c0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1801.png and b/TMessagesProj/src/main/assets/emoji/0_1801.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1802.png b/TMessagesProj/src/main/assets/emoji/0_1802.png index 4c4ca2227d..6364f65313 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1802.png and b/TMessagesProj/src/main/assets/emoji/0_1802.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1803.png b/TMessagesProj/src/main/assets/emoji/0_1803.png index 5073db07bf..5679200156 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1803.png and b/TMessagesProj/src/main/assets/emoji/0_1803.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1804.png b/TMessagesProj/src/main/assets/emoji/0_1804.png index b80a773945..fd06970fd7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1804.png and b/TMessagesProj/src/main/assets/emoji/0_1804.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1805.png b/TMessagesProj/src/main/assets/emoji/0_1805.png index 30d06eccbc..b1dab9dc2f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1805.png and b/TMessagesProj/src/main/assets/emoji/0_1805.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1806.png b/TMessagesProj/src/main/assets/emoji/0_1806.png index 0621b45606..68607c333e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1806.png and b/TMessagesProj/src/main/assets/emoji/0_1806.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1807.png b/TMessagesProj/src/main/assets/emoji/0_1807.png index 2300fbaa49..82df9fefe0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1807.png and b/TMessagesProj/src/main/assets/emoji/0_1807.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1808.png b/TMessagesProj/src/main/assets/emoji/0_1808.png index decbd5f6c2..a5e4b82984 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1808.png and b/TMessagesProj/src/main/assets/emoji/0_1808.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1809.png b/TMessagesProj/src/main/assets/emoji/0_1809.png index 79a02c0d7b..4cc195680d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1809.png and b/TMessagesProj/src/main/assets/emoji/0_1809.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_181.png b/TMessagesProj/src/main/assets/emoji/0_181.png index ceb34e1092..1cf2811a9f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_181.png and b/TMessagesProj/src/main/assets/emoji/0_181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1810.png b/TMessagesProj/src/main/assets/emoji/0_1810.png index 274a510720..fd5783b1fd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1810.png and b/TMessagesProj/src/main/assets/emoji/0_1810.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1811.png b/TMessagesProj/src/main/assets/emoji/0_1811.png index ce5a374514..a9b58afa60 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1811.png and b/TMessagesProj/src/main/assets/emoji/0_1811.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1812.png b/TMessagesProj/src/main/assets/emoji/0_1812.png index 575c6285b2..f6abd88fa2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1812.png and b/TMessagesProj/src/main/assets/emoji/0_1812.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1813.png b/TMessagesProj/src/main/assets/emoji/0_1813.png index 777bbb2cc3..89bebf9b07 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1813.png and b/TMessagesProj/src/main/assets/emoji/0_1813.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1814.png b/TMessagesProj/src/main/assets/emoji/0_1814.png index 925f9ab1a2..3c51b915b7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1814.png and b/TMessagesProj/src/main/assets/emoji/0_1814.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1815.png b/TMessagesProj/src/main/assets/emoji/0_1815.png index 5476cce7a5..8a56beba4f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1815.png and b/TMessagesProj/src/main/assets/emoji/0_1815.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1816.png b/TMessagesProj/src/main/assets/emoji/0_1816.png index ec95da0f86..cb1137337d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1816.png and b/TMessagesProj/src/main/assets/emoji/0_1816.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1817.png b/TMessagesProj/src/main/assets/emoji/0_1817.png index 7c9330d7a0..d1ee65e2e5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1817.png and b/TMessagesProj/src/main/assets/emoji/0_1817.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1818.png b/TMessagesProj/src/main/assets/emoji/0_1818.png index 6071580fc5..0027304463 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1818.png and b/TMessagesProj/src/main/assets/emoji/0_1818.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1819.png b/TMessagesProj/src/main/assets/emoji/0_1819.png index 8acd96cab3..d1438ea0a9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1819.png and b/TMessagesProj/src/main/assets/emoji/0_1819.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_182.png b/TMessagesProj/src/main/assets/emoji/0_182.png index 4754a095ba..c8f2fd927b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_182.png and b/TMessagesProj/src/main/assets/emoji/0_182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1820.png b/TMessagesProj/src/main/assets/emoji/0_1820.png index 3ba91b0e39..7fb8fef94f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1820.png and b/TMessagesProj/src/main/assets/emoji/0_1820.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1821.png b/TMessagesProj/src/main/assets/emoji/0_1821.png index 7ee514ec65..308d72bd35 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1821.png and b/TMessagesProj/src/main/assets/emoji/0_1821.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1822.png b/TMessagesProj/src/main/assets/emoji/0_1822.png index a3ab367948..f52881456d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1822.png and b/TMessagesProj/src/main/assets/emoji/0_1822.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1823.png b/TMessagesProj/src/main/assets/emoji/0_1823.png index f149f9c589..631a6377be 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1823.png and b/TMessagesProj/src/main/assets/emoji/0_1823.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1824.png b/TMessagesProj/src/main/assets/emoji/0_1824.png index 2042af0b23..4b65f68da3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1824.png and b/TMessagesProj/src/main/assets/emoji/0_1824.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1825.png b/TMessagesProj/src/main/assets/emoji/0_1825.png index 4328834383..b11e1ab1d9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1825.png and b/TMessagesProj/src/main/assets/emoji/0_1825.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1826.png b/TMessagesProj/src/main/assets/emoji/0_1826.png index b063602c75..b0b57e25e2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1826.png and b/TMessagesProj/src/main/assets/emoji/0_1826.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1827.png b/TMessagesProj/src/main/assets/emoji/0_1827.png index c9710c1e27..5d72ab6d20 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1827.png and b/TMessagesProj/src/main/assets/emoji/0_1827.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1828.png b/TMessagesProj/src/main/assets/emoji/0_1828.png index f9d8a7888d..bb3ee556de 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1828.png and b/TMessagesProj/src/main/assets/emoji/0_1828.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1829.png b/TMessagesProj/src/main/assets/emoji/0_1829.png index e7e6b1e59c..bd5f54dd5a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1829.png and b/TMessagesProj/src/main/assets/emoji/0_1829.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_183.png b/TMessagesProj/src/main/assets/emoji/0_183.png index 30cd665e66..06a4cd546e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_183.png and b/TMessagesProj/src/main/assets/emoji/0_183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1830.png b/TMessagesProj/src/main/assets/emoji/0_1830.png index 47bdce9883..4420a213c1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1830.png and b/TMessagesProj/src/main/assets/emoji/0_1830.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1831.png b/TMessagesProj/src/main/assets/emoji/0_1831.png index 74d5fc1ca5..8b9f328d1f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1831.png and b/TMessagesProj/src/main/assets/emoji/0_1831.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1832.png b/TMessagesProj/src/main/assets/emoji/0_1832.png index da2528fc47..f5f1c27a78 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1832.png and b/TMessagesProj/src/main/assets/emoji/0_1832.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1833.png b/TMessagesProj/src/main/assets/emoji/0_1833.png index a31c413da6..4e0849efe7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1833.png and b/TMessagesProj/src/main/assets/emoji/0_1833.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1834.png b/TMessagesProj/src/main/assets/emoji/0_1834.png index dce7cef06a..3c0eae164b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1834.png and b/TMessagesProj/src/main/assets/emoji/0_1834.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1835.png b/TMessagesProj/src/main/assets/emoji/0_1835.png index 6da966974a..e7d687136b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1835.png and b/TMessagesProj/src/main/assets/emoji/0_1835.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1836.png b/TMessagesProj/src/main/assets/emoji/0_1836.png index 71498284cb..478a71e8f9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1836.png and b/TMessagesProj/src/main/assets/emoji/0_1836.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1837.png b/TMessagesProj/src/main/assets/emoji/0_1837.png index 8400de1533..4ded362ac2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1837.png and b/TMessagesProj/src/main/assets/emoji/0_1837.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1838.png b/TMessagesProj/src/main/assets/emoji/0_1838.png index d6aa98568b..f920ea8988 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1838.png and b/TMessagesProj/src/main/assets/emoji/0_1838.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1839.png b/TMessagesProj/src/main/assets/emoji/0_1839.png index 6dba0e8ce2..831560adf3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1839.png and b/TMessagesProj/src/main/assets/emoji/0_1839.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_184.png b/TMessagesProj/src/main/assets/emoji/0_184.png index 4b26b2159f..fb1bd44784 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_184.png and b/TMessagesProj/src/main/assets/emoji/0_184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1840.png b/TMessagesProj/src/main/assets/emoji/0_1840.png index 090edab913..1a07af02e6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1840.png and b/TMessagesProj/src/main/assets/emoji/0_1840.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1841.png b/TMessagesProj/src/main/assets/emoji/0_1841.png index 52b945594a..d162fc7439 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1841.png and b/TMessagesProj/src/main/assets/emoji/0_1841.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1842.png b/TMessagesProj/src/main/assets/emoji/0_1842.png index 1e2e0f9143..60f363354f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1842.png and b/TMessagesProj/src/main/assets/emoji/0_1842.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1843.png b/TMessagesProj/src/main/assets/emoji/0_1843.png index 3283b7ad37..f01c3dcfa6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1843.png and b/TMessagesProj/src/main/assets/emoji/0_1843.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1844.png b/TMessagesProj/src/main/assets/emoji/0_1844.png index 5dd1d8bb34..0bff08fe93 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1844.png and b/TMessagesProj/src/main/assets/emoji/0_1844.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1845.png b/TMessagesProj/src/main/assets/emoji/0_1845.png index 2ec3a624b4..9ad26a0a5c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1845.png and b/TMessagesProj/src/main/assets/emoji/0_1845.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1846.png b/TMessagesProj/src/main/assets/emoji/0_1846.png index 1e50161718..3610261ef6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1846.png and b/TMessagesProj/src/main/assets/emoji/0_1846.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1847.png b/TMessagesProj/src/main/assets/emoji/0_1847.png index fefe8f5be7..20e695c2c9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1847.png and b/TMessagesProj/src/main/assets/emoji/0_1847.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1848.png b/TMessagesProj/src/main/assets/emoji/0_1848.png index 6911a2b07b..b1cffc635c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1848.png and b/TMessagesProj/src/main/assets/emoji/0_1848.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1849.png b/TMessagesProj/src/main/assets/emoji/0_1849.png index e6f47282e5..0b2ee14f24 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1849.png and b/TMessagesProj/src/main/assets/emoji/0_1849.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_185.png b/TMessagesProj/src/main/assets/emoji/0_185.png index c45c3f3c7d..7bde09b4ce 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_185.png and b/TMessagesProj/src/main/assets/emoji/0_185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1850.png b/TMessagesProj/src/main/assets/emoji/0_1850.png index 7d7b7d3bf0..7cb734df86 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1850.png and b/TMessagesProj/src/main/assets/emoji/0_1850.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1851.png b/TMessagesProj/src/main/assets/emoji/0_1851.png index b54612aba6..421da3f843 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1851.png and b/TMessagesProj/src/main/assets/emoji/0_1851.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1852.png b/TMessagesProj/src/main/assets/emoji/0_1852.png index 9c610f409f..090ac38686 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1852.png and b/TMessagesProj/src/main/assets/emoji/0_1852.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1853.png b/TMessagesProj/src/main/assets/emoji/0_1853.png index 126706d8b5..5deaa9cdd0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1853.png and b/TMessagesProj/src/main/assets/emoji/0_1853.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1854.png b/TMessagesProj/src/main/assets/emoji/0_1854.png index 282068608a..e44a9e7285 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1854.png and b/TMessagesProj/src/main/assets/emoji/0_1854.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1855.png b/TMessagesProj/src/main/assets/emoji/0_1855.png index e438efc350..826bf5ddbf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1855.png and b/TMessagesProj/src/main/assets/emoji/0_1855.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1856.png b/TMessagesProj/src/main/assets/emoji/0_1856.png index 8cea174124..5133f36d2b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1856.png and b/TMessagesProj/src/main/assets/emoji/0_1856.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1857.png b/TMessagesProj/src/main/assets/emoji/0_1857.png index 68691d4dbf..c7ca07a8cd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1857.png and b/TMessagesProj/src/main/assets/emoji/0_1857.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1858.png b/TMessagesProj/src/main/assets/emoji/0_1858.png index 4889173286..a87766d3f3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1858.png and b/TMessagesProj/src/main/assets/emoji/0_1858.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1859.png b/TMessagesProj/src/main/assets/emoji/0_1859.png index 2ca7a99d1d..8db69cc9eb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1859.png and b/TMessagesProj/src/main/assets/emoji/0_1859.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_186.png b/TMessagesProj/src/main/assets/emoji/0_186.png index 091d0b0d19..e06a8cb8e1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_186.png and b/TMessagesProj/src/main/assets/emoji/0_186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1860.png b/TMessagesProj/src/main/assets/emoji/0_1860.png index c5815d8797..a5808e94f3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1860.png and b/TMessagesProj/src/main/assets/emoji/0_1860.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1861.png b/TMessagesProj/src/main/assets/emoji/0_1861.png index 88c97de5da..0cf0c42762 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1861.png and b/TMessagesProj/src/main/assets/emoji/0_1861.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1862.png b/TMessagesProj/src/main/assets/emoji/0_1862.png index 15e282a18e..8f6dadad16 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1862.png and b/TMessagesProj/src/main/assets/emoji/0_1862.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1863.png b/TMessagesProj/src/main/assets/emoji/0_1863.png index f2b903d133..e623f2a6e7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1863.png and b/TMessagesProj/src/main/assets/emoji/0_1863.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1864.png b/TMessagesProj/src/main/assets/emoji/0_1864.png index befef0757c..0a387cea3e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1864.png and b/TMessagesProj/src/main/assets/emoji/0_1864.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1865.png b/TMessagesProj/src/main/assets/emoji/0_1865.png index 211b9ac5c2..654a318345 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1865.png and b/TMessagesProj/src/main/assets/emoji/0_1865.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1866.png b/TMessagesProj/src/main/assets/emoji/0_1866.png index 4ce5fa1f93..9edd18bd75 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1866.png and b/TMessagesProj/src/main/assets/emoji/0_1866.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1867.png b/TMessagesProj/src/main/assets/emoji/0_1867.png index 767d5b299d..70bce96ea4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1867.png and b/TMessagesProj/src/main/assets/emoji/0_1867.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1868.png b/TMessagesProj/src/main/assets/emoji/0_1868.png index f3d7d0c70c..9f03ab8d34 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1868.png and b/TMessagesProj/src/main/assets/emoji/0_1868.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1869.png b/TMessagesProj/src/main/assets/emoji/0_1869.png index d0cc157e1d..06b016d79f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1869.png and b/TMessagesProj/src/main/assets/emoji/0_1869.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_187.png b/TMessagesProj/src/main/assets/emoji/0_187.png index 7182599264..476a889269 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_187.png and b/TMessagesProj/src/main/assets/emoji/0_187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1870.png b/TMessagesProj/src/main/assets/emoji/0_1870.png index 36c01ecae0..50c7030120 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1870.png and b/TMessagesProj/src/main/assets/emoji/0_1870.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1871.png b/TMessagesProj/src/main/assets/emoji/0_1871.png index e70ad18a3d..2c700bda14 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1871.png and b/TMessagesProj/src/main/assets/emoji/0_1871.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1872.png b/TMessagesProj/src/main/assets/emoji/0_1872.png index bb654e3418..e447b3ef24 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1872.png and b/TMessagesProj/src/main/assets/emoji/0_1872.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1873.png b/TMessagesProj/src/main/assets/emoji/0_1873.png index c018d209e6..b7ed202b9d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1873.png and b/TMessagesProj/src/main/assets/emoji/0_1873.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1874.png b/TMessagesProj/src/main/assets/emoji/0_1874.png index fec56a7ed2..936c6890b4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1874.png and b/TMessagesProj/src/main/assets/emoji/0_1874.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1875.png b/TMessagesProj/src/main/assets/emoji/0_1875.png index 4379619643..50cd711d9d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1875.png and b/TMessagesProj/src/main/assets/emoji/0_1875.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1876.png b/TMessagesProj/src/main/assets/emoji/0_1876.png index 5ca081b5d1..9338d1e589 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1876.png and b/TMessagesProj/src/main/assets/emoji/0_1876.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1877.png b/TMessagesProj/src/main/assets/emoji/0_1877.png index 0ca8defc28..cd5e10b08e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1877.png and b/TMessagesProj/src/main/assets/emoji/0_1877.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1878.png b/TMessagesProj/src/main/assets/emoji/0_1878.png index d0e076a96a..7e00aa5f2d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1878.png and b/TMessagesProj/src/main/assets/emoji/0_1878.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1879.png b/TMessagesProj/src/main/assets/emoji/0_1879.png index 947fc2f1cf..28fa955ea5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1879.png and b/TMessagesProj/src/main/assets/emoji/0_1879.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_188.png b/TMessagesProj/src/main/assets/emoji/0_188.png index 4fd7124bbf..d33b32603d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_188.png and b/TMessagesProj/src/main/assets/emoji/0_188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1880.png b/TMessagesProj/src/main/assets/emoji/0_1880.png index 39b19ec675..4f3ef4c7ad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1880.png and b/TMessagesProj/src/main/assets/emoji/0_1880.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1881.png b/TMessagesProj/src/main/assets/emoji/0_1881.png index 7a63a638ca..439bda1318 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1881.png and b/TMessagesProj/src/main/assets/emoji/0_1881.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1882.png b/TMessagesProj/src/main/assets/emoji/0_1882.png index 6ce3342339..1599beb9e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1882.png and b/TMessagesProj/src/main/assets/emoji/0_1882.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1883.png b/TMessagesProj/src/main/assets/emoji/0_1883.png index 2f89bc88ef..10899f15d8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1883.png and b/TMessagesProj/src/main/assets/emoji/0_1883.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1884.png b/TMessagesProj/src/main/assets/emoji/0_1884.png index 4607707ebf..2623b73d77 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1884.png and b/TMessagesProj/src/main/assets/emoji/0_1884.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1885.png b/TMessagesProj/src/main/assets/emoji/0_1885.png index 9667262a06..0acc38ece9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1885.png and b/TMessagesProj/src/main/assets/emoji/0_1885.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1886.png b/TMessagesProj/src/main/assets/emoji/0_1886.png index 0e5a9df60a..b7fbf147a8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1886.png and b/TMessagesProj/src/main/assets/emoji/0_1886.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1887.png b/TMessagesProj/src/main/assets/emoji/0_1887.png index 8bc2acf98e..dd02d5fbe3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1887.png and b/TMessagesProj/src/main/assets/emoji/0_1887.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1888.png b/TMessagesProj/src/main/assets/emoji/0_1888.png index fd01f419fa..ae8ecad448 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1888.png and b/TMessagesProj/src/main/assets/emoji/0_1888.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1889.png b/TMessagesProj/src/main/assets/emoji/0_1889.png index ef0796bb0f..66581ed4e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1889.png and b/TMessagesProj/src/main/assets/emoji/0_1889.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_189.png b/TMessagesProj/src/main/assets/emoji/0_189.png index 71554431b2..d2b70948d5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_189.png and b/TMessagesProj/src/main/assets/emoji/0_189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1890.png b/TMessagesProj/src/main/assets/emoji/0_1890.png index 1e59a32b8d..290603c560 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1890.png and b/TMessagesProj/src/main/assets/emoji/0_1890.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1891.png b/TMessagesProj/src/main/assets/emoji/0_1891.png index 23f188f894..540379fb8a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1891.png and b/TMessagesProj/src/main/assets/emoji/0_1891.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1892.png b/TMessagesProj/src/main/assets/emoji/0_1892.png index f8519440d4..965f7639c3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1892.png and b/TMessagesProj/src/main/assets/emoji/0_1892.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1893.png b/TMessagesProj/src/main/assets/emoji/0_1893.png index 1438f28bc8..b56997aec2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1893.png and b/TMessagesProj/src/main/assets/emoji/0_1893.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1894.png b/TMessagesProj/src/main/assets/emoji/0_1894.png index b9eb8a9e3a..53cbfeda8a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1894.png and b/TMessagesProj/src/main/assets/emoji/0_1894.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1895.png b/TMessagesProj/src/main/assets/emoji/0_1895.png index 749c1a4190..77a0bd3a45 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1895.png and b/TMessagesProj/src/main/assets/emoji/0_1895.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1896.png b/TMessagesProj/src/main/assets/emoji/0_1896.png index f53fe97a38..beb7a0e0ef 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1896.png and b/TMessagesProj/src/main/assets/emoji/0_1896.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1897.png b/TMessagesProj/src/main/assets/emoji/0_1897.png index 2ef2a16237..4e2508960a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1897.png and b/TMessagesProj/src/main/assets/emoji/0_1897.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1898.png b/TMessagesProj/src/main/assets/emoji/0_1898.png index f9db06e577..9d175ca3b2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1898.png and b/TMessagesProj/src/main/assets/emoji/0_1898.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1899.png b/TMessagesProj/src/main/assets/emoji/0_1899.png index 90940261c4..8b9ddd5353 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1899.png and b/TMessagesProj/src/main/assets/emoji/0_1899.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_19.png b/TMessagesProj/src/main/assets/emoji/0_19.png index f8591ab3b3..538ca9ba1d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_19.png and b/TMessagesProj/src/main/assets/emoji/0_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_190.png b/TMessagesProj/src/main/assets/emoji/0_190.png index a549c5af46..4d926c9fba 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_190.png and b/TMessagesProj/src/main/assets/emoji/0_190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1900.png b/TMessagesProj/src/main/assets/emoji/0_1900.png index 46b6567720..b69eead327 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1900.png and b/TMessagesProj/src/main/assets/emoji/0_1900.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1901.png b/TMessagesProj/src/main/assets/emoji/0_1901.png index 78bfd62969..c984ab7b0f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1901.png and b/TMessagesProj/src/main/assets/emoji/0_1901.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1902.png b/TMessagesProj/src/main/assets/emoji/0_1902.png index c6579dce83..5ef938ff2a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1902.png and b/TMessagesProj/src/main/assets/emoji/0_1902.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1903.png b/TMessagesProj/src/main/assets/emoji/0_1903.png index cc7f5ee6b0..656872b2eb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1903.png and b/TMessagesProj/src/main/assets/emoji/0_1903.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1904.png b/TMessagesProj/src/main/assets/emoji/0_1904.png index be1fe14111..c836b1bd9b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1904.png and b/TMessagesProj/src/main/assets/emoji/0_1904.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1905.png b/TMessagesProj/src/main/assets/emoji/0_1905.png index c94794c5b5..a0c23c0761 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1905.png and b/TMessagesProj/src/main/assets/emoji/0_1905.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1906.png b/TMessagesProj/src/main/assets/emoji/0_1906.png index 2d7efc2ed4..c9c1bb06a9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1906.png and b/TMessagesProj/src/main/assets/emoji/0_1906.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1907.png b/TMessagesProj/src/main/assets/emoji/0_1907.png index 01523e88db..b77c680f1b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1907.png and b/TMessagesProj/src/main/assets/emoji/0_1907.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1908.png b/TMessagesProj/src/main/assets/emoji/0_1908.png index 823c46682e..c23fee712f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1908.png and b/TMessagesProj/src/main/assets/emoji/0_1908.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1909.png b/TMessagesProj/src/main/assets/emoji/0_1909.png index 691046a642..37a6fea4b3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1909.png and b/TMessagesProj/src/main/assets/emoji/0_1909.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_191.png b/TMessagesProj/src/main/assets/emoji/0_191.png index 00b7790463..627c024b6e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_191.png and b/TMessagesProj/src/main/assets/emoji/0_191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1910.png b/TMessagesProj/src/main/assets/emoji/0_1910.png index 2b49251b25..d9ca76b414 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1910.png and b/TMessagesProj/src/main/assets/emoji/0_1910.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1911.png b/TMessagesProj/src/main/assets/emoji/0_1911.png index 659a9802af..d34ee58f88 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1911.png and b/TMessagesProj/src/main/assets/emoji/0_1911.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1912.png b/TMessagesProj/src/main/assets/emoji/0_1912.png index 9b131acbeb..2216c2e7fa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1912.png and b/TMessagesProj/src/main/assets/emoji/0_1912.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1913.png b/TMessagesProj/src/main/assets/emoji/0_1913.png index 43bc507f8c..d1eb34afad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1913.png and b/TMessagesProj/src/main/assets/emoji/0_1913.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1914.png b/TMessagesProj/src/main/assets/emoji/0_1914.png index 65bda7de3d..08ce692561 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1914.png and b/TMessagesProj/src/main/assets/emoji/0_1914.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1915.png b/TMessagesProj/src/main/assets/emoji/0_1915.png index dc5fb0b1ec..29c01f4885 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1915.png and b/TMessagesProj/src/main/assets/emoji/0_1915.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1916.png b/TMessagesProj/src/main/assets/emoji/0_1916.png index 8509e8a7fc..74ea6631ed 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1916.png and b/TMessagesProj/src/main/assets/emoji/0_1916.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1917.png b/TMessagesProj/src/main/assets/emoji/0_1917.png index 2510acf47b..ac38615092 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1917.png and b/TMessagesProj/src/main/assets/emoji/0_1917.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1918.png b/TMessagesProj/src/main/assets/emoji/0_1918.png index cf8c43c7c1..12ec0fb8a8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1918.png and b/TMessagesProj/src/main/assets/emoji/0_1918.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1919.png b/TMessagesProj/src/main/assets/emoji/0_1919.png index cf8c43c7c1..12ec0fb8a8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1919.png and b/TMessagesProj/src/main/assets/emoji/0_1919.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_192.png b/TMessagesProj/src/main/assets/emoji/0_192.png index 6b85dd023f..54ac4c0e0c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_192.png and b/TMessagesProj/src/main/assets/emoji/0_192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1920.png b/TMessagesProj/src/main/assets/emoji/0_1920.png index 4244dd694f..db3c850a33 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1920.png and b/TMessagesProj/src/main/assets/emoji/0_1920.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1921.png b/TMessagesProj/src/main/assets/emoji/0_1921.png index 4244dd694f..db3c850a33 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1921.png and b/TMessagesProj/src/main/assets/emoji/0_1921.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1922.png b/TMessagesProj/src/main/assets/emoji/0_1922.png index 4244dd694f..db3c850a33 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1922.png and b/TMessagesProj/src/main/assets/emoji/0_1922.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1923.png b/TMessagesProj/src/main/assets/emoji/0_1923.png index cf8c43c7c1..12ec0fb8a8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1923.png and b/TMessagesProj/src/main/assets/emoji/0_1923.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1924.png b/TMessagesProj/src/main/assets/emoji/0_1924.png index cf8c43c7c1..12ec0fb8a8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1924.png and b/TMessagesProj/src/main/assets/emoji/0_1924.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1925.png b/TMessagesProj/src/main/assets/emoji/0_1925.png index 4244dd694f..db3c850a33 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1925.png and b/TMessagesProj/src/main/assets/emoji/0_1925.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1926.png b/TMessagesProj/src/main/assets/emoji/0_1926.png index 4244dd694f..db3c850a33 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1926.png and b/TMessagesProj/src/main/assets/emoji/0_1926.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1927.png b/TMessagesProj/src/main/assets/emoji/0_1927.png index 4244dd694f..db3c850a33 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1927.png and b/TMessagesProj/src/main/assets/emoji/0_1927.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1928.png b/TMessagesProj/src/main/assets/emoji/0_1928.png index cf8c43c7c1..12ec0fb8a8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1928.png and b/TMessagesProj/src/main/assets/emoji/0_1928.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1929.png b/TMessagesProj/src/main/assets/emoji/0_1929.png index cf8c43c7c1..12ec0fb8a8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1929.png and b/TMessagesProj/src/main/assets/emoji/0_1929.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_193.png b/TMessagesProj/src/main/assets/emoji/0_193.png index 7dc1928626..a46a6ed933 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_193.png and b/TMessagesProj/src/main/assets/emoji/0_193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1930.png b/TMessagesProj/src/main/assets/emoji/0_1930.png index 4244dd694f..db3c850a33 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1930.png and b/TMessagesProj/src/main/assets/emoji/0_1930.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1931.png b/TMessagesProj/src/main/assets/emoji/0_1931.png index 4244dd694f..db3c850a33 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1931.png and b/TMessagesProj/src/main/assets/emoji/0_1931.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1932.png b/TMessagesProj/src/main/assets/emoji/0_1932.png index 4244dd694f..db3c850a33 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1932.png and b/TMessagesProj/src/main/assets/emoji/0_1932.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1933.png b/TMessagesProj/src/main/assets/emoji/0_1933.png index c05822a03e..61ff535b2f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1933.png and b/TMessagesProj/src/main/assets/emoji/0_1933.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1934.png b/TMessagesProj/src/main/assets/emoji/0_1934.png index c05822a03e..61ff535b2f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1934.png and b/TMessagesProj/src/main/assets/emoji/0_1934.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1935.png b/TMessagesProj/src/main/assets/emoji/0_1935.png index ea9128b0f5..c68355254d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1935.png and b/TMessagesProj/src/main/assets/emoji/0_1935.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1936.png b/TMessagesProj/src/main/assets/emoji/0_1936.png index ea9128b0f5..c68355254d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1936.png and b/TMessagesProj/src/main/assets/emoji/0_1936.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1937.png b/TMessagesProj/src/main/assets/emoji/0_1937.png index ea9128b0f5..c68355254d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1937.png and b/TMessagesProj/src/main/assets/emoji/0_1937.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1938.png b/TMessagesProj/src/main/assets/emoji/0_1938.png index c05822a03e..61ff535b2f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1938.png and b/TMessagesProj/src/main/assets/emoji/0_1938.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1939.png b/TMessagesProj/src/main/assets/emoji/0_1939.png index c05822a03e..61ff535b2f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1939.png and b/TMessagesProj/src/main/assets/emoji/0_1939.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_194.png b/TMessagesProj/src/main/assets/emoji/0_194.png index c749e37a4e..8165ea2553 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_194.png and b/TMessagesProj/src/main/assets/emoji/0_194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1940.png b/TMessagesProj/src/main/assets/emoji/0_1940.png index ea9128b0f5..c68355254d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1940.png and b/TMessagesProj/src/main/assets/emoji/0_1940.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1941.png b/TMessagesProj/src/main/assets/emoji/0_1941.png index ea9128b0f5..c68355254d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1941.png and b/TMessagesProj/src/main/assets/emoji/0_1941.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1942.png b/TMessagesProj/src/main/assets/emoji/0_1942.png index ea9128b0f5..c68355254d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1942.png and b/TMessagesProj/src/main/assets/emoji/0_1942.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1943.png b/TMessagesProj/src/main/assets/emoji/0_1943.png index 81f683a93a..d0415112ad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1943.png and b/TMessagesProj/src/main/assets/emoji/0_1943.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1944.png b/TMessagesProj/src/main/assets/emoji/0_1944.png index c94848e10a..a07ab4795d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1944.png and b/TMessagesProj/src/main/assets/emoji/0_1944.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1945.png b/TMessagesProj/src/main/assets/emoji/0_1945.png index 7e9099be42..d156251044 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1945.png and b/TMessagesProj/src/main/assets/emoji/0_1945.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1946.png b/TMessagesProj/src/main/assets/emoji/0_1946.png index 3a098d8dc1..c8ec128d8d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1946.png and b/TMessagesProj/src/main/assets/emoji/0_1946.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1947.png b/TMessagesProj/src/main/assets/emoji/0_1947.png index bb6f51c71f..521d95afab 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1947.png and b/TMessagesProj/src/main/assets/emoji/0_1947.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1948.png b/TMessagesProj/src/main/assets/emoji/0_1948.png index cff99ac534..63a6b7dc34 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1948.png and b/TMessagesProj/src/main/assets/emoji/0_1948.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1949.png b/TMessagesProj/src/main/assets/emoji/0_1949.png index 9273acdecd..830746929e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1949.png and b/TMessagesProj/src/main/assets/emoji/0_1949.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_195.png b/TMessagesProj/src/main/assets/emoji/0_195.png index e9110bfee6..6770a8c64c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_195.png and b/TMessagesProj/src/main/assets/emoji/0_195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1950.png b/TMessagesProj/src/main/assets/emoji/0_1950.png index adf570889b..14f2356e69 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1950.png and b/TMessagesProj/src/main/assets/emoji/0_1950.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1951.png b/TMessagesProj/src/main/assets/emoji/0_1951.png index 370f83981b..fca3446818 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1951.png and b/TMessagesProj/src/main/assets/emoji/0_1951.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1952.png b/TMessagesProj/src/main/assets/emoji/0_1952.png index 80923aa91c..153c7c7687 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1952.png and b/TMessagesProj/src/main/assets/emoji/0_1952.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1953.png b/TMessagesProj/src/main/assets/emoji/0_1953.png index 9a9b6ffccc..dc90fe59a9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1953.png and b/TMessagesProj/src/main/assets/emoji/0_1953.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1954.png b/TMessagesProj/src/main/assets/emoji/0_1954.png index 7b2c817b82..72976ad0b9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1954.png and b/TMessagesProj/src/main/assets/emoji/0_1954.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1955.png b/TMessagesProj/src/main/assets/emoji/0_1955.png index e9f10d9228..5de397af54 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1955.png and b/TMessagesProj/src/main/assets/emoji/0_1955.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1956.png b/TMessagesProj/src/main/assets/emoji/0_1956.png index 25a86b82f0..9ada90edb1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1956.png and b/TMessagesProj/src/main/assets/emoji/0_1956.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1957.png b/TMessagesProj/src/main/assets/emoji/0_1957.png index 460027cc07..3c15734c87 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1957.png and b/TMessagesProj/src/main/assets/emoji/0_1957.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1958.png b/TMessagesProj/src/main/assets/emoji/0_1958.png index fc57cf2058..de5c56d93b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1958.png and b/TMessagesProj/src/main/assets/emoji/0_1958.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1959.png b/TMessagesProj/src/main/assets/emoji/0_1959.png index d94c1ff599..00147605c9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1959.png and b/TMessagesProj/src/main/assets/emoji/0_1959.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_196.png b/TMessagesProj/src/main/assets/emoji/0_196.png index 2eeec9858a..a0bdacb241 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_196.png and b/TMessagesProj/src/main/assets/emoji/0_196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1960.png b/TMessagesProj/src/main/assets/emoji/0_1960.png index 31e37d1899..b9ffe826fc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1960.png and b/TMessagesProj/src/main/assets/emoji/0_1960.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1961.png b/TMessagesProj/src/main/assets/emoji/0_1961.png index b222f64f4d..6b30163034 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1961.png and b/TMessagesProj/src/main/assets/emoji/0_1961.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1962.png b/TMessagesProj/src/main/assets/emoji/0_1962.png index e6ebc851e1..f9e0bba8c8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1962.png and b/TMessagesProj/src/main/assets/emoji/0_1962.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1963.png b/TMessagesProj/src/main/assets/emoji/0_1963.png index db163c954c..5a491dd50c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1963.png and b/TMessagesProj/src/main/assets/emoji/0_1963.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1964.png b/TMessagesProj/src/main/assets/emoji/0_1964.png index b3900fe4b4..b21920d15e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1964.png and b/TMessagesProj/src/main/assets/emoji/0_1964.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1965.png b/TMessagesProj/src/main/assets/emoji/0_1965.png index fdd76fc85d..a9b5522ded 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1965.png and b/TMessagesProj/src/main/assets/emoji/0_1965.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1966.png b/TMessagesProj/src/main/assets/emoji/0_1966.png index 449274dc20..21cb380f06 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1966.png and b/TMessagesProj/src/main/assets/emoji/0_1966.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1967.png b/TMessagesProj/src/main/assets/emoji/0_1967.png index 79fb206b32..598f13cd47 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1967.png and b/TMessagesProj/src/main/assets/emoji/0_1967.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1968.png b/TMessagesProj/src/main/assets/emoji/0_1968.png index 5af3ab3c18..72c51a3c56 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1968.png and b/TMessagesProj/src/main/assets/emoji/0_1968.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1969.png b/TMessagesProj/src/main/assets/emoji/0_1969.png index 935d2f9cb6..eb47a2f116 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1969.png and b/TMessagesProj/src/main/assets/emoji/0_1969.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_197.png b/TMessagesProj/src/main/assets/emoji/0_197.png index 3151fe8ccf..7598be9e1e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_197.png and b/TMessagesProj/src/main/assets/emoji/0_197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1970.png b/TMessagesProj/src/main/assets/emoji/0_1970.png index 2b20471b94..0a0b02e436 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1970.png and b/TMessagesProj/src/main/assets/emoji/0_1970.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1971.png b/TMessagesProj/src/main/assets/emoji/0_1971.png index 5c32f05178..b60b877890 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1971.png and b/TMessagesProj/src/main/assets/emoji/0_1971.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1972.png b/TMessagesProj/src/main/assets/emoji/0_1972.png index d3f893c70f..dd40a7c8bf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1972.png and b/TMessagesProj/src/main/assets/emoji/0_1972.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1973.png b/TMessagesProj/src/main/assets/emoji/0_1973.png index b7cb016110..9c68b2b176 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1973.png and b/TMessagesProj/src/main/assets/emoji/0_1973.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1974.png b/TMessagesProj/src/main/assets/emoji/0_1974.png index 3350d0a99c..16a0cdba84 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1974.png and b/TMessagesProj/src/main/assets/emoji/0_1974.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1975.png b/TMessagesProj/src/main/assets/emoji/0_1975.png index 5008ace3c3..4bddca5ba7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1975.png and b/TMessagesProj/src/main/assets/emoji/0_1975.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1976.png b/TMessagesProj/src/main/assets/emoji/0_1976.png index bda13e903d..d488f21e44 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1976.png and b/TMessagesProj/src/main/assets/emoji/0_1976.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1977.png b/TMessagesProj/src/main/assets/emoji/0_1977.png index 50ef521ce8..a5c8753f04 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1977.png and b/TMessagesProj/src/main/assets/emoji/0_1977.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1978.png b/TMessagesProj/src/main/assets/emoji/0_1978.png index 89563fd2fb..0f88829dcf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1978.png and b/TMessagesProj/src/main/assets/emoji/0_1978.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1979.png b/TMessagesProj/src/main/assets/emoji/0_1979.png index a6d7fa2309..48f3ef26c0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1979.png and b/TMessagesProj/src/main/assets/emoji/0_1979.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_198.png b/TMessagesProj/src/main/assets/emoji/0_198.png index 3c9cb513ec..7bfa43ceb0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_198.png and b/TMessagesProj/src/main/assets/emoji/0_198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1980.png b/TMessagesProj/src/main/assets/emoji/0_1980.png index 5d9b0b61a1..7a518b6c02 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1980.png and b/TMessagesProj/src/main/assets/emoji/0_1980.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1981.png b/TMessagesProj/src/main/assets/emoji/0_1981.png index 167569f394..b7404732ba 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1981.png and b/TMessagesProj/src/main/assets/emoji/0_1981.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1982.png b/TMessagesProj/src/main/assets/emoji/0_1982.png index a1cf02c743..5b5a6e9b46 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1982.png and b/TMessagesProj/src/main/assets/emoji/0_1982.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1983.png b/TMessagesProj/src/main/assets/emoji/0_1983.png index 978dc45d66..d58c0a6a5e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1983.png and b/TMessagesProj/src/main/assets/emoji/0_1983.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1984.png b/TMessagesProj/src/main/assets/emoji/0_1984.png index ca7b3ffd08..85498a9015 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1984.png and b/TMessagesProj/src/main/assets/emoji/0_1984.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1985.png b/TMessagesProj/src/main/assets/emoji/0_1985.png index d4e153a8d2..1be62cc7b6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1985.png and b/TMessagesProj/src/main/assets/emoji/0_1985.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1986.png b/TMessagesProj/src/main/assets/emoji/0_1986.png index 8195fc7c97..488ebcc62a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1986.png and b/TMessagesProj/src/main/assets/emoji/0_1986.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1987.png b/TMessagesProj/src/main/assets/emoji/0_1987.png index 3136d7f746..fdffc8b3e5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1987.png and b/TMessagesProj/src/main/assets/emoji/0_1987.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1988.png b/TMessagesProj/src/main/assets/emoji/0_1988.png index 7713238670..d719d77839 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1988.png and b/TMessagesProj/src/main/assets/emoji/0_1988.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_1989.png b/TMessagesProj/src/main/assets/emoji/0_1989.png index 2c7a278e7e..81a6a78cd5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_1989.png and b/TMessagesProj/src/main/assets/emoji/0_1989.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_199.png b/TMessagesProj/src/main/assets/emoji/0_199.png index 38cf603077..c07a27cbc4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_199.png and b/TMessagesProj/src/main/assets/emoji/0_199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_2.png b/TMessagesProj/src/main/assets/emoji/0_2.png index 0e3388790e..452304e081 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_2.png and b/TMessagesProj/src/main/assets/emoji/0_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_20.png b/TMessagesProj/src/main/assets/emoji/0_20.png index adf483e858..24ae36443f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_20.png and b/TMessagesProj/src/main/assets/emoji/0_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_200.png b/TMessagesProj/src/main/assets/emoji/0_200.png index d11d0eb2e2..6db491403b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_200.png and b/TMessagesProj/src/main/assets/emoji/0_200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_201.png b/TMessagesProj/src/main/assets/emoji/0_201.png index 9ea7188796..f1575f1163 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_201.png and b/TMessagesProj/src/main/assets/emoji/0_201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_202.png b/TMessagesProj/src/main/assets/emoji/0_202.png index a08363a8af..e438196a51 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_202.png and b/TMessagesProj/src/main/assets/emoji/0_202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_203.png b/TMessagesProj/src/main/assets/emoji/0_203.png index 55b899bf8a..276be3720c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_203.png and b/TMessagesProj/src/main/assets/emoji/0_203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_204.png b/TMessagesProj/src/main/assets/emoji/0_204.png index a009efefd1..910f238f86 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_204.png and b/TMessagesProj/src/main/assets/emoji/0_204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_205.png b/TMessagesProj/src/main/assets/emoji/0_205.png index 979ecc9356..7c433cf1ef 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_205.png and b/TMessagesProj/src/main/assets/emoji/0_205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_206.png b/TMessagesProj/src/main/assets/emoji/0_206.png index 9453997efd..0ffd1454ea 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_206.png and b/TMessagesProj/src/main/assets/emoji/0_206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_207.png b/TMessagesProj/src/main/assets/emoji/0_207.png index 8d09cf591a..aa4ead24e4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_207.png and b/TMessagesProj/src/main/assets/emoji/0_207.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_208.png b/TMessagesProj/src/main/assets/emoji/0_208.png index bf8aa87682..9d668b8093 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_208.png and b/TMessagesProj/src/main/assets/emoji/0_208.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_209.png b/TMessagesProj/src/main/assets/emoji/0_209.png index 411bf9a986..9bd0e1eed1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_209.png and b/TMessagesProj/src/main/assets/emoji/0_209.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_21.png b/TMessagesProj/src/main/assets/emoji/0_21.png index 29d280bc6e..12194555ac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_21.png and b/TMessagesProj/src/main/assets/emoji/0_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_210.png b/TMessagesProj/src/main/assets/emoji/0_210.png index 05eab0a29c..fd06882412 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_210.png and b/TMessagesProj/src/main/assets/emoji/0_210.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_211.png b/TMessagesProj/src/main/assets/emoji/0_211.png index f071686841..74109d7034 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_211.png and b/TMessagesProj/src/main/assets/emoji/0_211.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_212.png b/TMessagesProj/src/main/assets/emoji/0_212.png index 96ea718447..613b255979 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_212.png and b/TMessagesProj/src/main/assets/emoji/0_212.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_213.png b/TMessagesProj/src/main/assets/emoji/0_213.png index 5145c7941b..c86ddaa9f2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_213.png and b/TMessagesProj/src/main/assets/emoji/0_213.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_214.png b/TMessagesProj/src/main/assets/emoji/0_214.png index 4989806fe8..fca9ad7ce3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_214.png and b/TMessagesProj/src/main/assets/emoji/0_214.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_215.png b/TMessagesProj/src/main/assets/emoji/0_215.png index 38cebe8d94..fe1a6e4b77 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_215.png and b/TMessagesProj/src/main/assets/emoji/0_215.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_216.png b/TMessagesProj/src/main/assets/emoji/0_216.png index c4deb62df5..a3cea3dace 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_216.png and b/TMessagesProj/src/main/assets/emoji/0_216.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_217.png b/TMessagesProj/src/main/assets/emoji/0_217.png index 3ea86bd88f..09ecd231d8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_217.png and b/TMessagesProj/src/main/assets/emoji/0_217.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_218.png b/TMessagesProj/src/main/assets/emoji/0_218.png index 2e00cd7e54..102035126e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_218.png and b/TMessagesProj/src/main/assets/emoji/0_218.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_219.png b/TMessagesProj/src/main/assets/emoji/0_219.png index f0fb566a98..631c2b08ca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_219.png and b/TMessagesProj/src/main/assets/emoji/0_219.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_22.png b/TMessagesProj/src/main/assets/emoji/0_22.png index 2ab9ca7f23..a34c18b140 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_22.png and b/TMessagesProj/src/main/assets/emoji/0_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_220.png b/TMessagesProj/src/main/assets/emoji/0_220.png index 79fa3c7556..0a7a8f5cfc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_220.png and b/TMessagesProj/src/main/assets/emoji/0_220.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_221.png b/TMessagesProj/src/main/assets/emoji/0_221.png index 0be5901161..748ab2d76f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_221.png and b/TMessagesProj/src/main/assets/emoji/0_221.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_222.png b/TMessagesProj/src/main/assets/emoji/0_222.png index 7c3c2ac38e..efa8baf5ca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_222.png and b/TMessagesProj/src/main/assets/emoji/0_222.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_223.png b/TMessagesProj/src/main/assets/emoji/0_223.png index ff8909ec9b..5d67d617bc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_223.png and b/TMessagesProj/src/main/assets/emoji/0_223.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_224.png b/TMessagesProj/src/main/assets/emoji/0_224.png index c3544a85e3..f2040c5f65 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_224.png and b/TMessagesProj/src/main/assets/emoji/0_224.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_225.png b/TMessagesProj/src/main/assets/emoji/0_225.png index 63337694ee..c27d8f0de6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_225.png and b/TMessagesProj/src/main/assets/emoji/0_225.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_226.png b/TMessagesProj/src/main/assets/emoji/0_226.png index d0950b67ff..0b85e2af27 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_226.png and b/TMessagesProj/src/main/assets/emoji/0_226.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_227.png b/TMessagesProj/src/main/assets/emoji/0_227.png index 63b1ac7d9d..e4cb83f2a8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_227.png and b/TMessagesProj/src/main/assets/emoji/0_227.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_228.png b/TMessagesProj/src/main/assets/emoji/0_228.png index 5e43845df5..1088d27bcf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_228.png and b/TMessagesProj/src/main/assets/emoji/0_228.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_229.png b/TMessagesProj/src/main/assets/emoji/0_229.png index 956a6a6f0d..dc4272b1ae 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_229.png and b/TMessagesProj/src/main/assets/emoji/0_229.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_23.png b/TMessagesProj/src/main/assets/emoji/0_23.png index 3df15a5a2b..4b74933639 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_23.png and b/TMessagesProj/src/main/assets/emoji/0_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_230.png b/TMessagesProj/src/main/assets/emoji/0_230.png index 46329bef0e..767fb1a11b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_230.png and b/TMessagesProj/src/main/assets/emoji/0_230.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_231.png b/TMessagesProj/src/main/assets/emoji/0_231.png index 2bc14678e9..b08d02dd77 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_231.png and b/TMessagesProj/src/main/assets/emoji/0_231.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_232.png b/TMessagesProj/src/main/assets/emoji/0_232.png index 3067a31ae5..7e25b42d7b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_232.png and b/TMessagesProj/src/main/assets/emoji/0_232.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_233.png b/TMessagesProj/src/main/assets/emoji/0_233.png index e514781d5e..13dab1b874 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_233.png and b/TMessagesProj/src/main/assets/emoji/0_233.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_234.png b/TMessagesProj/src/main/assets/emoji/0_234.png index 8a00763029..635322d66f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_234.png and b/TMessagesProj/src/main/assets/emoji/0_234.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_235.png b/TMessagesProj/src/main/assets/emoji/0_235.png index cf68c8e605..63374d5f8d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_235.png and b/TMessagesProj/src/main/assets/emoji/0_235.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_236.png b/TMessagesProj/src/main/assets/emoji/0_236.png index 27c77987d2..90e2f54355 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_236.png and b/TMessagesProj/src/main/assets/emoji/0_236.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_237.png b/TMessagesProj/src/main/assets/emoji/0_237.png index 22b2e3a7d9..fea3397bb9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_237.png and b/TMessagesProj/src/main/assets/emoji/0_237.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_238.png b/TMessagesProj/src/main/assets/emoji/0_238.png index f9a8a936a1..5814db5ed5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_238.png and b/TMessagesProj/src/main/assets/emoji/0_238.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_239.png b/TMessagesProj/src/main/assets/emoji/0_239.png index a8b45faafe..258891507c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_239.png and b/TMessagesProj/src/main/assets/emoji/0_239.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_24.png b/TMessagesProj/src/main/assets/emoji/0_24.png index 2a31464bfa..363b5dec4e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_24.png and b/TMessagesProj/src/main/assets/emoji/0_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_240.png b/TMessagesProj/src/main/assets/emoji/0_240.png index 3cd70061d4..87e425d215 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_240.png and b/TMessagesProj/src/main/assets/emoji/0_240.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_241.png b/TMessagesProj/src/main/assets/emoji/0_241.png index 512b2e675f..0ece88c47f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_241.png and b/TMessagesProj/src/main/assets/emoji/0_241.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_242.png b/TMessagesProj/src/main/assets/emoji/0_242.png index 4d090a9c3c..b76f57df98 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_242.png and b/TMessagesProj/src/main/assets/emoji/0_242.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_243.png b/TMessagesProj/src/main/assets/emoji/0_243.png index 11f85a8016..2b0f946765 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_243.png and b/TMessagesProj/src/main/assets/emoji/0_243.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_244.png b/TMessagesProj/src/main/assets/emoji/0_244.png index 63c287f10a..c65fb92102 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_244.png and b/TMessagesProj/src/main/assets/emoji/0_244.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_245.png b/TMessagesProj/src/main/assets/emoji/0_245.png index c437f4231d..a9a20348b8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_245.png and b/TMessagesProj/src/main/assets/emoji/0_245.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_246.png b/TMessagesProj/src/main/assets/emoji/0_246.png index d73d6d0197..e193699a21 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_246.png and b/TMessagesProj/src/main/assets/emoji/0_246.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_247.png b/TMessagesProj/src/main/assets/emoji/0_247.png index 44e33472bc..f4ed824b13 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_247.png and b/TMessagesProj/src/main/assets/emoji/0_247.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_248.png b/TMessagesProj/src/main/assets/emoji/0_248.png index 1c5fc2f79a..5c81967174 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_248.png and b/TMessagesProj/src/main/assets/emoji/0_248.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_249.png b/TMessagesProj/src/main/assets/emoji/0_249.png index 4b87666a07..0e341c6a81 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_249.png and b/TMessagesProj/src/main/assets/emoji/0_249.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_25.png b/TMessagesProj/src/main/assets/emoji/0_25.png index cb10fb0a7c..e83d002f78 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_25.png and b/TMessagesProj/src/main/assets/emoji/0_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_250.png b/TMessagesProj/src/main/assets/emoji/0_250.png index f771c89697..a50df79c1e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_250.png and b/TMessagesProj/src/main/assets/emoji/0_250.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_251.png b/TMessagesProj/src/main/assets/emoji/0_251.png index a46b69a6d6..13cb21983a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_251.png and b/TMessagesProj/src/main/assets/emoji/0_251.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_252.png b/TMessagesProj/src/main/assets/emoji/0_252.png index 6f6ae682ce..a5963ac008 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_252.png and b/TMessagesProj/src/main/assets/emoji/0_252.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_253.png b/TMessagesProj/src/main/assets/emoji/0_253.png index 4afa69b6c1..85490de61c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_253.png and b/TMessagesProj/src/main/assets/emoji/0_253.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_254.png b/TMessagesProj/src/main/assets/emoji/0_254.png index 7d14b60028..074045ca88 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_254.png and b/TMessagesProj/src/main/assets/emoji/0_254.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_255.png b/TMessagesProj/src/main/assets/emoji/0_255.png index 6fd0043a5c..ba5e53b836 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_255.png and b/TMessagesProj/src/main/assets/emoji/0_255.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_256.png b/TMessagesProj/src/main/assets/emoji/0_256.png index 6be15d9003..9f54e712ac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_256.png and b/TMessagesProj/src/main/assets/emoji/0_256.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_257.png b/TMessagesProj/src/main/assets/emoji/0_257.png index 22c1a3f8f5..2434249ef9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_257.png and b/TMessagesProj/src/main/assets/emoji/0_257.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_258.png b/TMessagesProj/src/main/assets/emoji/0_258.png index 122acd8768..5edd7a3629 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_258.png and b/TMessagesProj/src/main/assets/emoji/0_258.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_259.png b/TMessagesProj/src/main/assets/emoji/0_259.png index 05411d3388..32cd9bf5f4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_259.png and b/TMessagesProj/src/main/assets/emoji/0_259.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_26.png b/TMessagesProj/src/main/assets/emoji/0_26.png index 677eb7ba8b..ec4d6d397d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_26.png and b/TMessagesProj/src/main/assets/emoji/0_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_260.png b/TMessagesProj/src/main/assets/emoji/0_260.png index bb0bc6ba92..e59f5edca4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_260.png and b/TMessagesProj/src/main/assets/emoji/0_260.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_261.png b/TMessagesProj/src/main/assets/emoji/0_261.png index 2574f11a04..50fd0ab2cf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_261.png and b/TMessagesProj/src/main/assets/emoji/0_261.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_262.png b/TMessagesProj/src/main/assets/emoji/0_262.png index 0b7d9a37f5..8d6f12a4b8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_262.png and b/TMessagesProj/src/main/assets/emoji/0_262.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_263.png b/TMessagesProj/src/main/assets/emoji/0_263.png index e970debe48..2ad32a7338 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_263.png and b/TMessagesProj/src/main/assets/emoji/0_263.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_264.png b/TMessagesProj/src/main/assets/emoji/0_264.png index 26a34fd542..c3c744d34a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_264.png and b/TMessagesProj/src/main/assets/emoji/0_264.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_265.png b/TMessagesProj/src/main/assets/emoji/0_265.png index b74e93e929..9cb927b507 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_265.png and b/TMessagesProj/src/main/assets/emoji/0_265.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_266.png b/TMessagesProj/src/main/assets/emoji/0_266.png index 4ae7c50358..392690f105 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_266.png and b/TMessagesProj/src/main/assets/emoji/0_266.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_267.png b/TMessagesProj/src/main/assets/emoji/0_267.png index 7115c354e5..917b812068 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_267.png and b/TMessagesProj/src/main/assets/emoji/0_267.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_268.png b/TMessagesProj/src/main/assets/emoji/0_268.png index 8add3daae7..c65840ccd8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_268.png and b/TMessagesProj/src/main/assets/emoji/0_268.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_269.png b/TMessagesProj/src/main/assets/emoji/0_269.png index fd10ad239c..e320d2b99a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_269.png and b/TMessagesProj/src/main/assets/emoji/0_269.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_27.png b/TMessagesProj/src/main/assets/emoji/0_27.png index 02d7139685..e4687bf880 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_27.png and b/TMessagesProj/src/main/assets/emoji/0_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_270.png b/TMessagesProj/src/main/assets/emoji/0_270.png index 960d8591e6..6ac8bffc9f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_270.png and b/TMessagesProj/src/main/assets/emoji/0_270.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_271.png b/TMessagesProj/src/main/assets/emoji/0_271.png index 8da415cf64..cfb6922673 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_271.png and b/TMessagesProj/src/main/assets/emoji/0_271.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_272.png b/TMessagesProj/src/main/assets/emoji/0_272.png index fec0f7b7fe..392f3cccac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_272.png and b/TMessagesProj/src/main/assets/emoji/0_272.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_273.png b/TMessagesProj/src/main/assets/emoji/0_273.png index a515a3eb79..4852565275 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_273.png and b/TMessagesProj/src/main/assets/emoji/0_273.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_274.png b/TMessagesProj/src/main/assets/emoji/0_274.png index 03c932ebea..9571dba4d0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_274.png and b/TMessagesProj/src/main/assets/emoji/0_274.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_275.png b/TMessagesProj/src/main/assets/emoji/0_275.png index 4f7d201269..2ae366e18e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_275.png and b/TMessagesProj/src/main/assets/emoji/0_275.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_276.png b/TMessagesProj/src/main/assets/emoji/0_276.png index 8561fa6d57..a889482be3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_276.png and b/TMessagesProj/src/main/assets/emoji/0_276.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_277.png b/TMessagesProj/src/main/assets/emoji/0_277.png index 194b4a9b6f..a5fe33c125 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_277.png and b/TMessagesProj/src/main/assets/emoji/0_277.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_278.png b/TMessagesProj/src/main/assets/emoji/0_278.png index b8218c7f62..a5de3b9812 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_278.png and b/TMessagesProj/src/main/assets/emoji/0_278.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_279.png b/TMessagesProj/src/main/assets/emoji/0_279.png index 030b1b30c2..9341ed6b5d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_279.png and b/TMessagesProj/src/main/assets/emoji/0_279.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_28.png b/TMessagesProj/src/main/assets/emoji/0_28.png index 04f0190f54..ddef5f1a55 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_28.png and b/TMessagesProj/src/main/assets/emoji/0_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_280.png b/TMessagesProj/src/main/assets/emoji/0_280.png index 9f50cd9234..cae55db1d0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_280.png and b/TMessagesProj/src/main/assets/emoji/0_280.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_281.png b/TMessagesProj/src/main/assets/emoji/0_281.png index 742daf4c3d..9beac977f5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_281.png and b/TMessagesProj/src/main/assets/emoji/0_281.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_282.png b/TMessagesProj/src/main/assets/emoji/0_282.png index a6f2ef2e3f..ecf92062e6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_282.png and b/TMessagesProj/src/main/assets/emoji/0_282.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_283.png b/TMessagesProj/src/main/assets/emoji/0_283.png index f7b7683ea0..07fbef2041 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_283.png and b/TMessagesProj/src/main/assets/emoji/0_283.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_284.png b/TMessagesProj/src/main/assets/emoji/0_284.png index faf770e331..dfc99d8ac7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_284.png and b/TMessagesProj/src/main/assets/emoji/0_284.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_285.png b/TMessagesProj/src/main/assets/emoji/0_285.png index 49d3ad4910..91f8b06503 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_285.png and b/TMessagesProj/src/main/assets/emoji/0_285.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_286.png b/TMessagesProj/src/main/assets/emoji/0_286.png index 4dd6ac14a0..d3b0149f7b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_286.png and b/TMessagesProj/src/main/assets/emoji/0_286.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_287.png b/TMessagesProj/src/main/assets/emoji/0_287.png index 6d7d301849..9e5f39d9d3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_287.png and b/TMessagesProj/src/main/assets/emoji/0_287.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_288.png b/TMessagesProj/src/main/assets/emoji/0_288.png index 6e16fc532e..6635af0bf9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_288.png and b/TMessagesProj/src/main/assets/emoji/0_288.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_289.png b/TMessagesProj/src/main/assets/emoji/0_289.png index 3920cb98b7..6ec1ae7c10 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_289.png and b/TMessagesProj/src/main/assets/emoji/0_289.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_29.png b/TMessagesProj/src/main/assets/emoji/0_29.png index 1333654818..49c69e4606 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_29.png and b/TMessagesProj/src/main/assets/emoji/0_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_290.png b/TMessagesProj/src/main/assets/emoji/0_290.png index 3910ee0fff..f22560a4bc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_290.png and b/TMessagesProj/src/main/assets/emoji/0_290.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_291.png b/TMessagesProj/src/main/assets/emoji/0_291.png index b7bb9390b6..7f65566467 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_291.png and b/TMessagesProj/src/main/assets/emoji/0_291.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_292.png b/TMessagesProj/src/main/assets/emoji/0_292.png index a9d737e7f1..bf8ffb6161 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_292.png and b/TMessagesProj/src/main/assets/emoji/0_292.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_293.png b/TMessagesProj/src/main/assets/emoji/0_293.png index 87aa72d0d7..48012f4024 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_293.png and b/TMessagesProj/src/main/assets/emoji/0_293.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_294.png b/TMessagesProj/src/main/assets/emoji/0_294.png index eb02cbf4a8..f282c8edea 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_294.png and b/TMessagesProj/src/main/assets/emoji/0_294.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_295.png b/TMessagesProj/src/main/assets/emoji/0_295.png index f71a9835c6..92d6435d28 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_295.png and b/TMessagesProj/src/main/assets/emoji/0_295.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_296.png b/TMessagesProj/src/main/assets/emoji/0_296.png index 4d6e1fd4fe..b1cb75ea92 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_296.png and b/TMessagesProj/src/main/assets/emoji/0_296.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_297.png b/TMessagesProj/src/main/assets/emoji/0_297.png index 0636d1b8e9..0307a66c0f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_297.png and b/TMessagesProj/src/main/assets/emoji/0_297.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_298.png b/TMessagesProj/src/main/assets/emoji/0_298.png index 7b81910a0e..d3c97fa50c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_298.png and b/TMessagesProj/src/main/assets/emoji/0_298.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_299.png b/TMessagesProj/src/main/assets/emoji/0_299.png index 0a026bb9b7..011b42ef53 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_299.png and b/TMessagesProj/src/main/assets/emoji/0_299.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_3.png b/TMessagesProj/src/main/assets/emoji/0_3.png index 99280b5a8f..8e5a6de8c0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_3.png and b/TMessagesProj/src/main/assets/emoji/0_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_30.png b/TMessagesProj/src/main/assets/emoji/0_30.png index d7ee004352..a18e16030f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_30.png and b/TMessagesProj/src/main/assets/emoji/0_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_300.png b/TMessagesProj/src/main/assets/emoji/0_300.png index 6c20ac3674..ae188cc964 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_300.png and b/TMessagesProj/src/main/assets/emoji/0_300.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_301.png b/TMessagesProj/src/main/assets/emoji/0_301.png index 60f3f57cde..8d85db0fba 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_301.png and b/TMessagesProj/src/main/assets/emoji/0_301.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_302.png b/TMessagesProj/src/main/assets/emoji/0_302.png index 95506f174b..3d63539fca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_302.png and b/TMessagesProj/src/main/assets/emoji/0_302.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_303.png b/TMessagesProj/src/main/assets/emoji/0_303.png index 848c586d05..705cb126ee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_303.png and b/TMessagesProj/src/main/assets/emoji/0_303.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_304.png b/TMessagesProj/src/main/assets/emoji/0_304.png index 33e41d42d7..2acfd377d4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_304.png and b/TMessagesProj/src/main/assets/emoji/0_304.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_305.png b/TMessagesProj/src/main/assets/emoji/0_305.png index 56f6198ce4..a3060f8ed6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_305.png and b/TMessagesProj/src/main/assets/emoji/0_305.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_306.png b/TMessagesProj/src/main/assets/emoji/0_306.png index c09466b3f1..95019ce50f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_306.png and b/TMessagesProj/src/main/assets/emoji/0_306.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_307.png b/TMessagesProj/src/main/assets/emoji/0_307.png index 56e69d8dc9..04fd3f741a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_307.png and b/TMessagesProj/src/main/assets/emoji/0_307.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_308.png b/TMessagesProj/src/main/assets/emoji/0_308.png index 10801a6061..b1c388dcc3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_308.png and b/TMessagesProj/src/main/assets/emoji/0_308.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_309.png b/TMessagesProj/src/main/assets/emoji/0_309.png index bb6d523533..8a654d1415 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_309.png and b/TMessagesProj/src/main/assets/emoji/0_309.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_31.png b/TMessagesProj/src/main/assets/emoji/0_31.png index 86052de6aa..8f67cb7938 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_31.png and b/TMessagesProj/src/main/assets/emoji/0_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_310.png b/TMessagesProj/src/main/assets/emoji/0_310.png index 85a421c806..000cd3bfbb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_310.png and b/TMessagesProj/src/main/assets/emoji/0_310.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_311.png b/TMessagesProj/src/main/assets/emoji/0_311.png index fe5d5ae58e..03e6f40ea7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_311.png and b/TMessagesProj/src/main/assets/emoji/0_311.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_312.png b/TMessagesProj/src/main/assets/emoji/0_312.png index 248ed1e81a..2a2a83c919 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_312.png and b/TMessagesProj/src/main/assets/emoji/0_312.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_313.png b/TMessagesProj/src/main/assets/emoji/0_313.png index a5e627641e..4503497c23 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_313.png and b/TMessagesProj/src/main/assets/emoji/0_313.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_314.png b/TMessagesProj/src/main/assets/emoji/0_314.png index ebfe457330..c016f57a41 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_314.png and b/TMessagesProj/src/main/assets/emoji/0_314.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_315.png b/TMessagesProj/src/main/assets/emoji/0_315.png index b64ceb42a9..731a633c56 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_315.png and b/TMessagesProj/src/main/assets/emoji/0_315.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_316.png b/TMessagesProj/src/main/assets/emoji/0_316.png index 9b4d1958c3..a74332209e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_316.png and b/TMessagesProj/src/main/assets/emoji/0_316.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_317.png b/TMessagesProj/src/main/assets/emoji/0_317.png index fc34ee29ef..abbc22a2d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_317.png and b/TMessagesProj/src/main/assets/emoji/0_317.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_318.png b/TMessagesProj/src/main/assets/emoji/0_318.png index 61b35dedd7..2902cff045 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_318.png and b/TMessagesProj/src/main/assets/emoji/0_318.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_319.png b/TMessagesProj/src/main/assets/emoji/0_319.png index e140f03c57..e9829d650c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_319.png and b/TMessagesProj/src/main/assets/emoji/0_319.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_32.png b/TMessagesProj/src/main/assets/emoji/0_32.png index 328edb3b61..b7d54e7194 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_32.png and b/TMessagesProj/src/main/assets/emoji/0_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_320.png b/TMessagesProj/src/main/assets/emoji/0_320.png index acc549cf70..44cd21edfc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_320.png and b/TMessagesProj/src/main/assets/emoji/0_320.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_321.png b/TMessagesProj/src/main/assets/emoji/0_321.png index eb70ba36c5..76584f07c9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_321.png and b/TMessagesProj/src/main/assets/emoji/0_321.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_322.png b/TMessagesProj/src/main/assets/emoji/0_322.png index 44f18f4481..8dcbe5ec60 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_322.png and b/TMessagesProj/src/main/assets/emoji/0_322.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_323.png b/TMessagesProj/src/main/assets/emoji/0_323.png index 3c06bb48be..9e3c1cb009 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_323.png and b/TMessagesProj/src/main/assets/emoji/0_323.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_324.png b/TMessagesProj/src/main/assets/emoji/0_324.png index 5d5ac0fa86..3d0f3ab4aa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_324.png and b/TMessagesProj/src/main/assets/emoji/0_324.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_325.png b/TMessagesProj/src/main/assets/emoji/0_325.png index 98f4253573..230a1fed73 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_325.png and b/TMessagesProj/src/main/assets/emoji/0_325.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_326.png b/TMessagesProj/src/main/assets/emoji/0_326.png index c907f6d51e..5539abeaa3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_326.png and b/TMessagesProj/src/main/assets/emoji/0_326.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_327.png b/TMessagesProj/src/main/assets/emoji/0_327.png index 43b423bfb1..fe497717a0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_327.png and b/TMessagesProj/src/main/assets/emoji/0_327.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_328.png b/TMessagesProj/src/main/assets/emoji/0_328.png index 6df7749b3e..bbc3fa1e7f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_328.png and b/TMessagesProj/src/main/assets/emoji/0_328.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_329.png b/TMessagesProj/src/main/assets/emoji/0_329.png index 1de0623ea0..8b49be35e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_329.png and b/TMessagesProj/src/main/assets/emoji/0_329.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_33.png b/TMessagesProj/src/main/assets/emoji/0_33.png index b7aa432b65..10c6cbaf23 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_33.png and b/TMessagesProj/src/main/assets/emoji/0_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_330.png b/TMessagesProj/src/main/assets/emoji/0_330.png index 3b9fb705c8..b23cb196f9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_330.png and b/TMessagesProj/src/main/assets/emoji/0_330.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_331.png b/TMessagesProj/src/main/assets/emoji/0_331.png index 8b27fe8d00..1e29f60185 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_331.png and b/TMessagesProj/src/main/assets/emoji/0_331.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_332.png b/TMessagesProj/src/main/assets/emoji/0_332.png index d923c66c84..d9734a1df0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_332.png and b/TMessagesProj/src/main/assets/emoji/0_332.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_333.png b/TMessagesProj/src/main/assets/emoji/0_333.png index 9ff7c7a30e..2ab6f02d43 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_333.png and b/TMessagesProj/src/main/assets/emoji/0_333.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_334.png b/TMessagesProj/src/main/assets/emoji/0_334.png index 2cb8909315..02ca55c695 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_334.png and b/TMessagesProj/src/main/assets/emoji/0_334.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_335.png b/TMessagesProj/src/main/assets/emoji/0_335.png index ec1f3bfb34..e2f9df1f8e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_335.png and b/TMessagesProj/src/main/assets/emoji/0_335.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_336.png b/TMessagesProj/src/main/assets/emoji/0_336.png index 829039b428..d6f757b571 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_336.png and b/TMessagesProj/src/main/assets/emoji/0_336.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_337.png b/TMessagesProj/src/main/assets/emoji/0_337.png index 06250dbe6f..5d10d42d03 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_337.png and b/TMessagesProj/src/main/assets/emoji/0_337.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_338.png b/TMessagesProj/src/main/assets/emoji/0_338.png index 8e0560f6b5..0575adf89b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_338.png and b/TMessagesProj/src/main/assets/emoji/0_338.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_339.png b/TMessagesProj/src/main/assets/emoji/0_339.png index a3cf752881..f4d2a9b530 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_339.png and b/TMessagesProj/src/main/assets/emoji/0_339.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_34.png b/TMessagesProj/src/main/assets/emoji/0_34.png index 84043c2ebc..705ff3090b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_34.png and b/TMessagesProj/src/main/assets/emoji/0_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_340.png b/TMessagesProj/src/main/assets/emoji/0_340.png index e07be80c2a..c9b45f6d63 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_340.png and b/TMessagesProj/src/main/assets/emoji/0_340.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_341.png b/TMessagesProj/src/main/assets/emoji/0_341.png index cd7f867984..266d29f23a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_341.png and b/TMessagesProj/src/main/assets/emoji/0_341.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_342.png b/TMessagesProj/src/main/assets/emoji/0_342.png index 411d622105..548b9d3acd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_342.png and b/TMessagesProj/src/main/assets/emoji/0_342.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_343.png b/TMessagesProj/src/main/assets/emoji/0_343.png index 5084c7c7a8..91a1f186f8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_343.png and b/TMessagesProj/src/main/assets/emoji/0_343.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_344.png b/TMessagesProj/src/main/assets/emoji/0_344.png index 3ed0ed03b1..03abe1e69f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_344.png and b/TMessagesProj/src/main/assets/emoji/0_344.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_345.png b/TMessagesProj/src/main/assets/emoji/0_345.png index 071dbc4ac0..d4dae0fba3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_345.png and b/TMessagesProj/src/main/assets/emoji/0_345.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_346.png b/TMessagesProj/src/main/assets/emoji/0_346.png index 499dc91cf6..1957bf211a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_346.png and b/TMessagesProj/src/main/assets/emoji/0_346.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_347.png b/TMessagesProj/src/main/assets/emoji/0_347.png index 2b273adc30..1b6845ca1f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_347.png and b/TMessagesProj/src/main/assets/emoji/0_347.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_348.png b/TMessagesProj/src/main/assets/emoji/0_348.png index 30aaf82fa2..32dfa1793f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_348.png and b/TMessagesProj/src/main/assets/emoji/0_348.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_349.png b/TMessagesProj/src/main/assets/emoji/0_349.png index 710d8b4f57..9172f61596 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_349.png and b/TMessagesProj/src/main/assets/emoji/0_349.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_35.png b/TMessagesProj/src/main/assets/emoji/0_35.png index 6395fb6e7a..868c7afb0f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_35.png and b/TMessagesProj/src/main/assets/emoji/0_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_350.png b/TMessagesProj/src/main/assets/emoji/0_350.png index 7a9803013a..1fda6e3676 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_350.png and b/TMessagesProj/src/main/assets/emoji/0_350.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_351.png b/TMessagesProj/src/main/assets/emoji/0_351.png index c2641d5e5d..80985cc181 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_351.png and b/TMessagesProj/src/main/assets/emoji/0_351.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_352.png b/TMessagesProj/src/main/assets/emoji/0_352.png index 4a1b197042..4a70ed3df6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_352.png and b/TMessagesProj/src/main/assets/emoji/0_352.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_353.png b/TMessagesProj/src/main/assets/emoji/0_353.png index d7d617c189..438c0e62ff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_353.png and b/TMessagesProj/src/main/assets/emoji/0_353.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_354.png b/TMessagesProj/src/main/assets/emoji/0_354.png index 18f756ee2f..58f02711d8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_354.png and b/TMessagesProj/src/main/assets/emoji/0_354.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_355.png b/TMessagesProj/src/main/assets/emoji/0_355.png index 6e14a75b5c..88c6fc12f3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_355.png and b/TMessagesProj/src/main/assets/emoji/0_355.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_356.png b/TMessagesProj/src/main/assets/emoji/0_356.png index 0fd14a80f6..fb87a17084 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_356.png and b/TMessagesProj/src/main/assets/emoji/0_356.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_357.png b/TMessagesProj/src/main/assets/emoji/0_357.png index 358badf337..24c0480068 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_357.png and b/TMessagesProj/src/main/assets/emoji/0_357.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_358.png b/TMessagesProj/src/main/assets/emoji/0_358.png index 918ff20ee7..ebd1e4ba08 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_358.png and b/TMessagesProj/src/main/assets/emoji/0_358.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_359.png b/TMessagesProj/src/main/assets/emoji/0_359.png index da064e92cb..336540080f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_359.png and b/TMessagesProj/src/main/assets/emoji/0_359.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_36.png b/TMessagesProj/src/main/assets/emoji/0_36.png index b2e320f8bc..762fe35c70 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_36.png and b/TMessagesProj/src/main/assets/emoji/0_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_360.png b/TMessagesProj/src/main/assets/emoji/0_360.png index 5a504b4956..b24e450808 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_360.png and b/TMessagesProj/src/main/assets/emoji/0_360.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_361.png b/TMessagesProj/src/main/assets/emoji/0_361.png index ecac495ad5..38fb446514 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_361.png and b/TMessagesProj/src/main/assets/emoji/0_361.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_362.png b/TMessagesProj/src/main/assets/emoji/0_362.png index e628815142..cc9a93bd60 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_362.png and b/TMessagesProj/src/main/assets/emoji/0_362.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_363.png b/TMessagesProj/src/main/assets/emoji/0_363.png index 506aa36e96..a7b4fd76f6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_363.png and b/TMessagesProj/src/main/assets/emoji/0_363.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_364.png b/TMessagesProj/src/main/assets/emoji/0_364.png index e6d79890b7..a53acff2f0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_364.png and b/TMessagesProj/src/main/assets/emoji/0_364.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_365.png b/TMessagesProj/src/main/assets/emoji/0_365.png index 817fb0cd11..9d8387ec8a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_365.png and b/TMessagesProj/src/main/assets/emoji/0_365.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_366.png b/TMessagesProj/src/main/assets/emoji/0_366.png index f6f075b8f9..5e48c0a22c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_366.png and b/TMessagesProj/src/main/assets/emoji/0_366.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_367.png b/TMessagesProj/src/main/assets/emoji/0_367.png index 0e0f595e94..29b80fc64c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_367.png and b/TMessagesProj/src/main/assets/emoji/0_367.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_368.png b/TMessagesProj/src/main/assets/emoji/0_368.png index 7f8ef5edf5..e5f2f5a06f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_368.png and b/TMessagesProj/src/main/assets/emoji/0_368.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_369.png b/TMessagesProj/src/main/assets/emoji/0_369.png index 77d687ce27..0042138433 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_369.png and b/TMessagesProj/src/main/assets/emoji/0_369.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_37.png b/TMessagesProj/src/main/assets/emoji/0_37.png index a170833915..d4828826bf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_37.png and b/TMessagesProj/src/main/assets/emoji/0_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_370.png b/TMessagesProj/src/main/assets/emoji/0_370.png index 106866c4b9..b9477045b3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_370.png and b/TMessagesProj/src/main/assets/emoji/0_370.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_371.png b/TMessagesProj/src/main/assets/emoji/0_371.png index 9d6c1d21da..5abeee218c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_371.png and b/TMessagesProj/src/main/assets/emoji/0_371.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_372.png b/TMessagesProj/src/main/assets/emoji/0_372.png index ebcfe17b72..5b946b8a33 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_372.png and b/TMessagesProj/src/main/assets/emoji/0_372.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_373.png b/TMessagesProj/src/main/assets/emoji/0_373.png index 253d45ae21..eeac949b60 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_373.png and b/TMessagesProj/src/main/assets/emoji/0_373.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_374.png b/TMessagesProj/src/main/assets/emoji/0_374.png index 1c1d253c77..5182f7c7e1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_374.png and b/TMessagesProj/src/main/assets/emoji/0_374.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_375.png b/TMessagesProj/src/main/assets/emoji/0_375.png index 61bbdbe6cf..c6784c1848 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_375.png and b/TMessagesProj/src/main/assets/emoji/0_375.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_376.png b/TMessagesProj/src/main/assets/emoji/0_376.png index 2eb82c8df0..9641e978e8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_376.png and b/TMessagesProj/src/main/assets/emoji/0_376.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_377.png b/TMessagesProj/src/main/assets/emoji/0_377.png index ef87bd5b81..3e6a580b1b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_377.png and b/TMessagesProj/src/main/assets/emoji/0_377.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_378.png b/TMessagesProj/src/main/assets/emoji/0_378.png index 4f32498915..e936353ee8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_378.png and b/TMessagesProj/src/main/assets/emoji/0_378.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_379.png b/TMessagesProj/src/main/assets/emoji/0_379.png index e08f399804..e2a32f5da2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_379.png and b/TMessagesProj/src/main/assets/emoji/0_379.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_38.png b/TMessagesProj/src/main/assets/emoji/0_38.png index a620b46f7e..a20634e19e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_38.png and b/TMessagesProj/src/main/assets/emoji/0_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_380.png b/TMessagesProj/src/main/assets/emoji/0_380.png index 4637b8eb5a..2ac576ddbf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_380.png and b/TMessagesProj/src/main/assets/emoji/0_380.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_381.png b/TMessagesProj/src/main/assets/emoji/0_381.png index e17f01c470..70670c1ce4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_381.png and b/TMessagesProj/src/main/assets/emoji/0_381.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_382.png b/TMessagesProj/src/main/assets/emoji/0_382.png index 19ef62a4f8..1dd878791f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_382.png and b/TMessagesProj/src/main/assets/emoji/0_382.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_383.png b/TMessagesProj/src/main/assets/emoji/0_383.png index bfbc7b433d..fbb189fcc7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_383.png and b/TMessagesProj/src/main/assets/emoji/0_383.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_384.png b/TMessagesProj/src/main/assets/emoji/0_384.png index c8da66646d..0aa3616f9b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_384.png and b/TMessagesProj/src/main/assets/emoji/0_384.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_385.png b/TMessagesProj/src/main/assets/emoji/0_385.png index 655186f1d3..6348dd0e46 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_385.png and b/TMessagesProj/src/main/assets/emoji/0_385.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_386.png b/TMessagesProj/src/main/assets/emoji/0_386.png index f5fffe2797..97eb4199f7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_386.png and b/TMessagesProj/src/main/assets/emoji/0_386.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_387.png b/TMessagesProj/src/main/assets/emoji/0_387.png index e5deb442a3..adc24a8aa7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_387.png and b/TMessagesProj/src/main/assets/emoji/0_387.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_388.png b/TMessagesProj/src/main/assets/emoji/0_388.png index a9a4a86ce6..4062ef8af5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_388.png and b/TMessagesProj/src/main/assets/emoji/0_388.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_389.png b/TMessagesProj/src/main/assets/emoji/0_389.png index 91f3e5c0da..4c7980e364 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_389.png and b/TMessagesProj/src/main/assets/emoji/0_389.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_39.png b/TMessagesProj/src/main/assets/emoji/0_39.png index dafcea3b5c..13cef9dfb0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_39.png and b/TMessagesProj/src/main/assets/emoji/0_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_390.png b/TMessagesProj/src/main/assets/emoji/0_390.png index 44e2be7de3..31c4c42a21 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_390.png and b/TMessagesProj/src/main/assets/emoji/0_390.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_391.png b/TMessagesProj/src/main/assets/emoji/0_391.png index b7f6ecf071..aba7c84923 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_391.png and b/TMessagesProj/src/main/assets/emoji/0_391.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_392.png b/TMessagesProj/src/main/assets/emoji/0_392.png index 22a05103ff..c4ca4ed5c3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_392.png and b/TMessagesProj/src/main/assets/emoji/0_392.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_393.png b/TMessagesProj/src/main/assets/emoji/0_393.png index b4b0cf3f98..dcad0751b6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_393.png and b/TMessagesProj/src/main/assets/emoji/0_393.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_394.png b/TMessagesProj/src/main/assets/emoji/0_394.png index 04621dfa62..39f2b57eb8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_394.png and b/TMessagesProj/src/main/assets/emoji/0_394.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_395.png b/TMessagesProj/src/main/assets/emoji/0_395.png index 46a716103c..8d69ec22ef 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_395.png and b/TMessagesProj/src/main/assets/emoji/0_395.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_396.png b/TMessagesProj/src/main/assets/emoji/0_396.png index e9e61cf5e1..d21ff8efdf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_396.png and b/TMessagesProj/src/main/assets/emoji/0_396.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_397.png b/TMessagesProj/src/main/assets/emoji/0_397.png index 65669711ba..c0c8650fbd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_397.png and b/TMessagesProj/src/main/assets/emoji/0_397.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_398.png b/TMessagesProj/src/main/assets/emoji/0_398.png index 91bcd29c87..57a0f29b61 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_398.png and b/TMessagesProj/src/main/assets/emoji/0_398.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_399.png b/TMessagesProj/src/main/assets/emoji/0_399.png index dfdfdbce5b..a2cf72315a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_399.png and b/TMessagesProj/src/main/assets/emoji/0_399.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_4.png b/TMessagesProj/src/main/assets/emoji/0_4.png index caaeff3a36..ab8a3f2680 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_4.png and b/TMessagesProj/src/main/assets/emoji/0_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_40.png b/TMessagesProj/src/main/assets/emoji/0_40.png index 9c14d5272e..e19c35d16d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_40.png and b/TMessagesProj/src/main/assets/emoji/0_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_400.png b/TMessagesProj/src/main/assets/emoji/0_400.png index f4cafc2373..f27b4731ee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_400.png and b/TMessagesProj/src/main/assets/emoji/0_400.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_401.png b/TMessagesProj/src/main/assets/emoji/0_401.png index 09681deb62..799c3ec99e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_401.png and b/TMessagesProj/src/main/assets/emoji/0_401.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_402.png b/TMessagesProj/src/main/assets/emoji/0_402.png index dbca9f3365..2b75980046 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_402.png and b/TMessagesProj/src/main/assets/emoji/0_402.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_403.png b/TMessagesProj/src/main/assets/emoji/0_403.png index 2678c8cee4..7a0d2031c9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_403.png and b/TMessagesProj/src/main/assets/emoji/0_403.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_404.png b/TMessagesProj/src/main/assets/emoji/0_404.png index 15d822073c..6b9b8cccda 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_404.png and b/TMessagesProj/src/main/assets/emoji/0_404.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_405.png b/TMessagesProj/src/main/assets/emoji/0_405.png index 69269b7efe..2c6d367105 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_405.png and b/TMessagesProj/src/main/assets/emoji/0_405.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_406.png b/TMessagesProj/src/main/assets/emoji/0_406.png index 65db09f9d4..c81c153e39 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_406.png and b/TMessagesProj/src/main/assets/emoji/0_406.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_407.png b/TMessagesProj/src/main/assets/emoji/0_407.png index 8169c30b10..6448ac2e27 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_407.png and b/TMessagesProj/src/main/assets/emoji/0_407.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_408.png b/TMessagesProj/src/main/assets/emoji/0_408.png index 6e20eff792..77f7494486 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_408.png and b/TMessagesProj/src/main/assets/emoji/0_408.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_409.png b/TMessagesProj/src/main/assets/emoji/0_409.png index df153fcd2e..0a61387175 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_409.png and b/TMessagesProj/src/main/assets/emoji/0_409.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_41.png b/TMessagesProj/src/main/assets/emoji/0_41.png index 7a32e83e28..115360ab5d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_41.png and b/TMessagesProj/src/main/assets/emoji/0_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_410.png b/TMessagesProj/src/main/assets/emoji/0_410.png index f36680a097..a41b27002a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_410.png and b/TMessagesProj/src/main/assets/emoji/0_410.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_411.png b/TMessagesProj/src/main/assets/emoji/0_411.png index c9c0ec4f63..ceec13a382 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_411.png and b/TMessagesProj/src/main/assets/emoji/0_411.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_412.png b/TMessagesProj/src/main/assets/emoji/0_412.png index 1d99c36096..b1f04b8946 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_412.png and b/TMessagesProj/src/main/assets/emoji/0_412.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_413.png b/TMessagesProj/src/main/assets/emoji/0_413.png index 41cb123842..7c950f0615 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_413.png and b/TMessagesProj/src/main/assets/emoji/0_413.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_414.png b/TMessagesProj/src/main/assets/emoji/0_414.png index 8226b297b7..155cf73a44 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_414.png and b/TMessagesProj/src/main/assets/emoji/0_414.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_415.png b/TMessagesProj/src/main/assets/emoji/0_415.png index 8524593d3b..fce74d9084 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_415.png and b/TMessagesProj/src/main/assets/emoji/0_415.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_416.png b/TMessagesProj/src/main/assets/emoji/0_416.png index 9be6d92f63..37020f6c5f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_416.png and b/TMessagesProj/src/main/assets/emoji/0_416.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_417.png b/TMessagesProj/src/main/assets/emoji/0_417.png index fc0d1e2274..a42fd80871 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_417.png and b/TMessagesProj/src/main/assets/emoji/0_417.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_418.png b/TMessagesProj/src/main/assets/emoji/0_418.png index 4b4ecab38f..88a53fc940 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_418.png and b/TMessagesProj/src/main/assets/emoji/0_418.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_419.png b/TMessagesProj/src/main/assets/emoji/0_419.png index d03b16a1e7..ea46e21958 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_419.png and b/TMessagesProj/src/main/assets/emoji/0_419.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_42.png b/TMessagesProj/src/main/assets/emoji/0_42.png index 471f40e0aa..2b74f9f2aa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_42.png and b/TMessagesProj/src/main/assets/emoji/0_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_420.png b/TMessagesProj/src/main/assets/emoji/0_420.png index 8e57698a9d..370dff8679 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_420.png and b/TMessagesProj/src/main/assets/emoji/0_420.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_421.png b/TMessagesProj/src/main/assets/emoji/0_421.png index 198bb74c04..b6ad350030 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_421.png and b/TMessagesProj/src/main/assets/emoji/0_421.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_422.png b/TMessagesProj/src/main/assets/emoji/0_422.png index b579cc2e3e..c95bb1fa11 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_422.png and b/TMessagesProj/src/main/assets/emoji/0_422.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_423.png b/TMessagesProj/src/main/assets/emoji/0_423.png index deb65aca00..27eac81477 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_423.png and b/TMessagesProj/src/main/assets/emoji/0_423.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_424.png b/TMessagesProj/src/main/assets/emoji/0_424.png index 79e5a7688a..ef0d675362 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_424.png and b/TMessagesProj/src/main/assets/emoji/0_424.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_425.png b/TMessagesProj/src/main/assets/emoji/0_425.png index 7c2030aa05..3ffc4c7a35 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_425.png and b/TMessagesProj/src/main/assets/emoji/0_425.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_426.png b/TMessagesProj/src/main/assets/emoji/0_426.png index bd50f0ea86..e6e309add8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_426.png and b/TMessagesProj/src/main/assets/emoji/0_426.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_427.png b/TMessagesProj/src/main/assets/emoji/0_427.png index 72c5ac79bb..7f4efc59ae 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_427.png and b/TMessagesProj/src/main/assets/emoji/0_427.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_428.png b/TMessagesProj/src/main/assets/emoji/0_428.png index d28de53443..1126966f46 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_428.png and b/TMessagesProj/src/main/assets/emoji/0_428.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_429.png b/TMessagesProj/src/main/assets/emoji/0_429.png index 7eab5409dc..b71e451cbf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_429.png and b/TMessagesProj/src/main/assets/emoji/0_429.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_43.png b/TMessagesProj/src/main/assets/emoji/0_43.png index 13239702ff..9ad48cfdc5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_43.png and b/TMessagesProj/src/main/assets/emoji/0_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_430.png b/TMessagesProj/src/main/assets/emoji/0_430.png index de64a0ed20..b96b58b7de 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_430.png and b/TMessagesProj/src/main/assets/emoji/0_430.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_431.png b/TMessagesProj/src/main/assets/emoji/0_431.png index 099e316d57..8211c454a4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_431.png and b/TMessagesProj/src/main/assets/emoji/0_431.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_432.png b/TMessagesProj/src/main/assets/emoji/0_432.png index 48c84469f4..4e38ca0bd1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_432.png and b/TMessagesProj/src/main/assets/emoji/0_432.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_433.png b/TMessagesProj/src/main/assets/emoji/0_433.png index e57cb8f8a0..c34e188dec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_433.png and b/TMessagesProj/src/main/assets/emoji/0_433.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_434.png b/TMessagesProj/src/main/assets/emoji/0_434.png index 4a6970eda3..9a4c437e34 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_434.png and b/TMessagesProj/src/main/assets/emoji/0_434.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_435.png b/TMessagesProj/src/main/assets/emoji/0_435.png index 7969208319..ed874417f9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_435.png and b/TMessagesProj/src/main/assets/emoji/0_435.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_436.png b/TMessagesProj/src/main/assets/emoji/0_436.png index db23515dc6..35d49fcced 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_436.png and b/TMessagesProj/src/main/assets/emoji/0_436.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_437.png b/TMessagesProj/src/main/assets/emoji/0_437.png index 65dc2cccdd..ef5c03332e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_437.png and b/TMessagesProj/src/main/assets/emoji/0_437.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_438.png b/TMessagesProj/src/main/assets/emoji/0_438.png index 1271821b90..bcfdb37544 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_438.png and b/TMessagesProj/src/main/assets/emoji/0_438.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_439.png b/TMessagesProj/src/main/assets/emoji/0_439.png index 8236db0fc3..6e87fae250 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_439.png and b/TMessagesProj/src/main/assets/emoji/0_439.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_44.png b/TMessagesProj/src/main/assets/emoji/0_44.png index 89c04addfd..8308a003a5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_44.png and b/TMessagesProj/src/main/assets/emoji/0_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_440.png b/TMessagesProj/src/main/assets/emoji/0_440.png index 9ae921a9e9..aa66d0cdd1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_440.png and b/TMessagesProj/src/main/assets/emoji/0_440.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_441.png b/TMessagesProj/src/main/assets/emoji/0_441.png index ffebc0e1d8..9a911c149c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_441.png and b/TMessagesProj/src/main/assets/emoji/0_441.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_442.png b/TMessagesProj/src/main/assets/emoji/0_442.png index 80ca6316f0..a935b701ad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_442.png and b/TMessagesProj/src/main/assets/emoji/0_442.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_443.png b/TMessagesProj/src/main/assets/emoji/0_443.png index e6c3748601..f37da1bd71 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_443.png and b/TMessagesProj/src/main/assets/emoji/0_443.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_444.png b/TMessagesProj/src/main/assets/emoji/0_444.png index 45c14ca375..85af9333de 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_444.png and b/TMessagesProj/src/main/assets/emoji/0_444.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_445.png b/TMessagesProj/src/main/assets/emoji/0_445.png index 58bbe2a84c..f246477e97 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_445.png and b/TMessagesProj/src/main/assets/emoji/0_445.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_446.png b/TMessagesProj/src/main/assets/emoji/0_446.png index d3e205b5a7..b57b67e842 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_446.png and b/TMessagesProj/src/main/assets/emoji/0_446.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_447.png b/TMessagesProj/src/main/assets/emoji/0_447.png index 2007179d4b..1ae6366fae 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_447.png and b/TMessagesProj/src/main/assets/emoji/0_447.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_448.png b/TMessagesProj/src/main/assets/emoji/0_448.png index 49e805f63b..24f08709ba 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_448.png and b/TMessagesProj/src/main/assets/emoji/0_448.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_449.png b/TMessagesProj/src/main/assets/emoji/0_449.png index 5a22a168a4..dee4d08aed 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_449.png and b/TMessagesProj/src/main/assets/emoji/0_449.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_45.png b/TMessagesProj/src/main/assets/emoji/0_45.png index 557a32b0ba..d3b5c9d34c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_45.png and b/TMessagesProj/src/main/assets/emoji/0_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_450.png b/TMessagesProj/src/main/assets/emoji/0_450.png index a7d674fa77..91ceb577c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_450.png and b/TMessagesProj/src/main/assets/emoji/0_450.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_451.png b/TMessagesProj/src/main/assets/emoji/0_451.png index a3be36b1c8..6e89b2a620 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_451.png and b/TMessagesProj/src/main/assets/emoji/0_451.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_452.png b/TMessagesProj/src/main/assets/emoji/0_452.png index 609a521be6..ec467ec3d7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_452.png and b/TMessagesProj/src/main/assets/emoji/0_452.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_453.png b/TMessagesProj/src/main/assets/emoji/0_453.png index a95a1394ed..160961fe27 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_453.png and b/TMessagesProj/src/main/assets/emoji/0_453.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_454.png b/TMessagesProj/src/main/assets/emoji/0_454.png index 48caccebd1..d5af9bbbdc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_454.png and b/TMessagesProj/src/main/assets/emoji/0_454.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_455.png b/TMessagesProj/src/main/assets/emoji/0_455.png index faba532497..26d13ac386 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_455.png and b/TMessagesProj/src/main/assets/emoji/0_455.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_456.png b/TMessagesProj/src/main/assets/emoji/0_456.png index dceef6dbd3..ca093d101c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_456.png and b/TMessagesProj/src/main/assets/emoji/0_456.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_457.png b/TMessagesProj/src/main/assets/emoji/0_457.png index 799516b7fd..60e32e556d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_457.png and b/TMessagesProj/src/main/assets/emoji/0_457.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_458.png b/TMessagesProj/src/main/assets/emoji/0_458.png index 9a07c525d3..4e2a6a75c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_458.png and b/TMessagesProj/src/main/assets/emoji/0_458.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_459.png b/TMessagesProj/src/main/assets/emoji/0_459.png index 8fa385f55b..29fa252b6e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_459.png and b/TMessagesProj/src/main/assets/emoji/0_459.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_46.png b/TMessagesProj/src/main/assets/emoji/0_46.png index 85dac86f3c..3c63b9b417 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_46.png and b/TMessagesProj/src/main/assets/emoji/0_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_460.png b/TMessagesProj/src/main/assets/emoji/0_460.png index 68196a838a..ee21c1de09 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_460.png and b/TMessagesProj/src/main/assets/emoji/0_460.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_461.png b/TMessagesProj/src/main/assets/emoji/0_461.png index da9c7893b3..e2d05fb6bf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_461.png and b/TMessagesProj/src/main/assets/emoji/0_461.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_462.png b/TMessagesProj/src/main/assets/emoji/0_462.png index b25d2315e8..1a760aae65 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_462.png and b/TMessagesProj/src/main/assets/emoji/0_462.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_463.png b/TMessagesProj/src/main/assets/emoji/0_463.png index 43854e839b..ff3e88d857 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_463.png and b/TMessagesProj/src/main/assets/emoji/0_463.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_464.png b/TMessagesProj/src/main/assets/emoji/0_464.png index bb73f6bd26..8e4de85be7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_464.png and b/TMessagesProj/src/main/assets/emoji/0_464.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_465.png b/TMessagesProj/src/main/assets/emoji/0_465.png index 1fc002806b..47a346adb7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_465.png and b/TMessagesProj/src/main/assets/emoji/0_465.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_466.png b/TMessagesProj/src/main/assets/emoji/0_466.png index 8480afc3c1..d2131156dc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_466.png and b/TMessagesProj/src/main/assets/emoji/0_466.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_467.png b/TMessagesProj/src/main/assets/emoji/0_467.png index 801e5a712a..40532fc437 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_467.png and b/TMessagesProj/src/main/assets/emoji/0_467.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_468.png b/TMessagesProj/src/main/assets/emoji/0_468.png index b0fedaed50..71661da58e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_468.png and b/TMessagesProj/src/main/assets/emoji/0_468.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_469.png b/TMessagesProj/src/main/assets/emoji/0_469.png index c443ed36a9..7fa2049cc3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_469.png and b/TMessagesProj/src/main/assets/emoji/0_469.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_47.png b/TMessagesProj/src/main/assets/emoji/0_47.png index 43414a8af7..f8eb53d8cf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_47.png and b/TMessagesProj/src/main/assets/emoji/0_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_470.png b/TMessagesProj/src/main/assets/emoji/0_470.png index 24f691b7cf..f84a560a0a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_470.png and b/TMessagesProj/src/main/assets/emoji/0_470.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_471.png b/TMessagesProj/src/main/assets/emoji/0_471.png index 968894e95c..0d4d5d0ddf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_471.png and b/TMessagesProj/src/main/assets/emoji/0_471.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_472.png b/TMessagesProj/src/main/assets/emoji/0_472.png index 2f64fa4a9b..130ccb8814 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_472.png and b/TMessagesProj/src/main/assets/emoji/0_472.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_473.png b/TMessagesProj/src/main/assets/emoji/0_473.png index 30cc03217c..7f268b1e6d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_473.png and b/TMessagesProj/src/main/assets/emoji/0_473.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_474.png b/TMessagesProj/src/main/assets/emoji/0_474.png index e0a8880f36..6ccd927f2d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_474.png and b/TMessagesProj/src/main/assets/emoji/0_474.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_475.png b/TMessagesProj/src/main/assets/emoji/0_475.png index 274739ea52..9552e64a3e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_475.png and b/TMessagesProj/src/main/assets/emoji/0_475.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_476.png b/TMessagesProj/src/main/assets/emoji/0_476.png index 51f3bccaeb..d5c4740007 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_476.png and b/TMessagesProj/src/main/assets/emoji/0_476.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_477.png b/TMessagesProj/src/main/assets/emoji/0_477.png index 9827ee9438..588c0ec887 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_477.png and b/TMessagesProj/src/main/assets/emoji/0_477.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_478.png b/TMessagesProj/src/main/assets/emoji/0_478.png index 03105a282a..3060f10de8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_478.png and b/TMessagesProj/src/main/assets/emoji/0_478.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_479.png b/TMessagesProj/src/main/assets/emoji/0_479.png index cffcbd73c4..de52dab309 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_479.png and b/TMessagesProj/src/main/assets/emoji/0_479.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_48.png b/TMessagesProj/src/main/assets/emoji/0_48.png index fbb23cc725..fa13e021de 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_48.png and b/TMessagesProj/src/main/assets/emoji/0_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_480.png b/TMessagesProj/src/main/assets/emoji/0_480.png index 5065d361c4..4915705f00 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_480.png and b/TMessagesProj/src/main/assets/emoji/0_480.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_481.png b/TMessagesProj/src/main/assets/emoji/0_481.png index d85f9ae515..b4f8a12dd2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_481.png and b/TMessagesProj/src/main/assets/emoji/0_481.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_482.png b/TMessagesProj/src/main/assets/emoji/0_482.png index c3e5f4d836..389a60c83b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_482.png and b/TMessagesProj/src/main/assets/emoji/0_482.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_483.png b/TMessagesProj/src/main/assets/emoji/0_483.png index 81760e9cb8..4c0509653b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_483.png and b/TMessagesProj/src/main/assets/emoji/0_483.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_484.png b/TMessagesProj/src/main/assets/emoji/0_484.png index 80af933cca..e82eeb07c7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_484.png and b/TMessagesProj/src/main/assets/emoji/0_484.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_485.png b/TMessagesProj/src/main/assets/emoji/0_485.png index 703071838a..9904eb341a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_485.png and b/TMessagesProj/src/main/assets/emoji/0_485.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_486.png b/TMessagesProj/src/main/assets/emoji/0_486.png index d588581de6..8bc58d3f32 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_486.png and b/TMessagesProj/src/main/assets/emoji/0_486.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_487.png b/TMessagesProj/src/main/assets/emoji/0_487.png index 2ce10643cc..e009d9a860 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_487.png and b/TMessagesProj/src/main/assets/emoji/0_487.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_488.png b/TMessagesProj/src/main/assets/emoji/0_488.png index f548a602df..60e26b9d81 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_488.png and b/TMessagesProj/src/main/assets/emoji/0_488.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_489.png b/TMessagesProj/src/main/assets/emoji/0_489.png index 988abb02b0..ff981469ef 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_489.png and b/TMessagesProj/src/main/assets/emoji/0_489.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_49.png b/TMessagesProj/src/main/assets/emoji/0_49.png index 98f441e734..e7f90fed98 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_49.png and b/TMessagesProj/src/main/assets/emoji/0_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_490.png b/TMessagesProj/src/main/assets/emoji/0_490.png index 8d4a36ac4f..ec682743d5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_490.png and b/TMessagesProj/src/main/assets/emoji/0_490.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_491.png b/TMessagesProj/src/main/assets/emoji/0_491.png index 60dae87fd5..8c20cd7433 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_491.png and b/TMessagesProj/src/main/assets/emoji/0_491.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_492.png b/TMessagesProj/src/main/assets/emoji/0_492.png index 227b59c072..c18661c7f8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_492.png and b/TMessagesProj/src/main/assets/emoji/0_492.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_493.png b/TMessagesProj/src/main/assets/emoji/0_493.png index 4bb06be8f9..a50d0a55ed 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_493.png and b/TMessagesProj/src/main/assets/emoji/0_493.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_494.png b/TMessagesProj/src/main/assets/emoji/0_494.png index 14cb2fb5fb..2d3b26587a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_494.png and b/TMessagesProj/src/main/assets/emoji/0_494.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_495.png b/TMessagesProj/src/main/assets/emoji/0_495.png index 7010b4ee90..554ba2641b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_495.png and b/TMessagesProj/src/main/assets/emoji/0_495.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_496.png b/TMessagesProj/src/main/assets/emoji/0_496.png index 33d1e15cab..7353d2fcf6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_496.png and b/TMessagesProj/src/main/assets/emoji/0_496.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_497.png b/TMessagesProj/src/main/assets/emoji/0_497.png index 1f64f09be9..5048fcd7bf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_497.png and b/TMessagesProj/src/main/assets/emoji/0_497.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_498.png b/TMessagesProj/src/main/assets/emoji/0_498.png index 412bcccd30..363d2ddfaa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_498.png and b/TMessagesProj/src/main/assets/emoji/0_498.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_499.png b/TMessagesProj/src/main/assets/emoji/0_499.png index b287810ef7..de7c45aa70 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_499.png and b/TMessagesProj/src/main/assets/emoji/0_499.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_5.png b/TMessagesProj/src/main/assets/emoji/0_5.png index b1248757be..3fd7eb1d5a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_5.png and b/TMessagesProj/src/main/assets/emoji/0_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_50.png b/TMessagesProj/src/main/assets/emoji/0_50.png index 93f53ab05a..77868a57be 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_50.png and b/TMessagesProj/src/main/assets/emoji/0_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_500.png b/TMessagesProj/src/main/assets/emoji/0_500.png index b1d535e255..e0b363cea3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_500.png and b/TMessagesProj/src/main/assets/emoji/0_500.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_501.png b/TMessagesProj/src/main/assets/emoji/0_501.png index c511cba53d..d40143bf4d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_501.png and b/TMessagesProj/src/main/assets/emoji/0_501.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_502.png b/TMessagesProj/src/main/assets/emoji/0_502.png index 78abfe5b6a..ab6df25d5c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_502.png and b/TMessagesProj/src/main/assets/emoji/0_502.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_503.png b/TMessagesProj/src/main/assets/emoji/0_503.png index ad27e641d0..03040a9746 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_503.png and b/TMessagesProj/src/main/assets/emoji/0_503.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_504.png b/TMessagesProj/src/main/assets/emoji/0_504.png index 71c3bcae0e..6d5028e07a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_504.png and b/TMessagesProj/src/main/assets/emoji/0_504.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_505.png b/TMessagesProj/src/main/assets/emoji/0_505.png index 53c1183faa..e48d42b119 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_505.png and b/TMessagesProj/src/main/assets/emoji/0_505.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_506.png b/TMessagesProj/src/main/assets/emoji/0_506.png index 418b276308..6e19e6e492 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_506.png and b/TMessagesProj/src/main/assets/emoji/0_506.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_507.png b/TMessagesProj/src/main/assets/emoji/0_507.png index ce19098386..f6c3ee6f8a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_507.png and b/TMessagesProj/src/main/assets/emoji/0_507.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_508.png b/TMessagesProj/src/main/assets/emoji/0_508.png index 8e6d6fcbb4..d0c68f32bf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_508.png and b/TMessagesProj/src/main/assets/emoji/0_508.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_509.png b/TMessagesProj/src/main/assets/emoji/0_509.png index dec0dc4dd6..9469ca45c6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_509.png and b/TMessagesProj/src/main/assets/emoji/0_509.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_51.png b/TMessagesProj/src/main/assets/emoji/0_51.png index cb2c381888..7c027b10dc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_51.png and b/TMessagesProj/src/main/assets/emoji/0_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_510.png b/TMessagesProj/src/main/assets/emoji/0_510.png index 9ad05d18d7..ac6a06d95b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_510.png and b/TMessagesProj/src/main/assets/emoji/0_510.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_511.png b/TMessagesProj/src/main/assets/emoji/0_511.png index 99f536757e..d1473284a0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_511.png and b/TMessagesProj/src/main/assets/emoji/0_511.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_512.png b/TMessagesProj/src/main/assets/emoji/0_512.png index 3f28e7e18e..15e708f69b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_512.png and b/TMessagesProj/src/main/assets/emoji/0_512.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_513.png b/TMessagesProj/src/main/assets/emoji/0_513.png index 355f0c62c9..500dcd3f99 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_513.png and b/TMessagesProj/src/main/assets/emoji/0_513.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_514.png b/TMessagesProj/src/main/assets/emoji/0_514.png index 0e7d48fcfd..a741c13138 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_514.png and b/TMessagesProj/src/main/assets/emoji/0_514.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_515.png b/TMessagesProj/src/main/assets/emoji/0_515.png index d8389e30b4..f533fa7f84 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_515.png and b/TMessagesProj/src/main/assets/emoji/0_515.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_516.png b/TMessagesProj/src/main/assets/emoji/0_516.png index 55b0ab6cff..9bb162cef4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_516.png and b/TMessagesProj/src/main/assets/emoji/0_516.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_517.png b/TMessagesProj/src/main/assets/emoji/0_517.png index e112779542..c53eb610fa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_517.png and b/TMessagesProj/src/main/assets/emoji/0_517.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_518.png b/TMessagesProj/src/main/assets/emoji/0_518.png index e125f1b1d4..c33c329c7e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_518.png and b/TMessagesProj/src/main/assets/emoji/0_518.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_519.png b/TMessagesProj/src/main/assets/emoji/0_519.png index 5f598925db..57d77c0856 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_519.png and b/TMessagesProj/src/main/assets/emoji/0_519.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_52.png b/TMessagesProj/src/main/assets/emoji/0_52.png index 2e14467e53..0790974b58 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_52.png and b/TMessagesProj/src/main/assets/emoji/0_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_520.png b/TMessagesProj/src/main/assets/emoji/0_520.png index 4532c22c5d..8487301580 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_520.png and b/TMessagesProj/src/main/assets/emoji/0_520.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_521.png b/TMessagesProj/src/main/assets/emoji/0_521.png index 4ff121e228..053de551c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_521.png and b/TMessagesProj/src/main/assets/emoji/0_521.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_522.png b/TMessagesProj/src/main/assets/emoji/0_522.png index e3d63cdaaf..e2cf99de66 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_522.png and b/TMessagesProj/src/main/assets/emoji/0_522.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_523.png b/TMessagesProj/src/main/assets/emoji/0_523.png index 218c113e1d..76b958967b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_523.png and b/TMessagesProj/src/main/assets/emoji/0_523.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_524.png b/TMessagesProj/src/main/assets/emoji/0_524.png index 7849a03a74..79c46be2c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_524.png and b/TMessagesProj/src/main/assets/emoji/0_524.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_525.png b/TMessagesProj/src/main/assets/emoji/0_525.png index 0d970b3173..8f960bf2b1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_525.png and b/TMessagesProj/src/main/assets/emoji/0_525.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_526.png b/TMessagesProj/src/main/assets/emoji/0_526.png index 06500320ca..95a728a91f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_526.png and b/TMessagesProj/src/main/assets/emoji/0_526.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_527.png b/TMessagesProj/src/main/assets/emoji/0_527.png index 5512aee6f7..e2ac6c7b84 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_527.png and b/TMessagesProj/src/main/assets/emoji/0_527.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_528.png b/TMessagesProj/src/main/assets/emoji/0_528.png index 7d8825de07..203828b906 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_528.png and b/TMessagesProj/src/main/assets/emoji/0_528.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_529.png b/TMessagesProj/src/main/assets/emoji/0_529.png index d0a7647dce..68b59a47e4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_529.png and b/TMessagesProj/src/main/assets/emoji/0_529.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_53.png b/TMessagesProj/src/main/assets/emoji/0_53.png index 2a16714a6b..3382cb1bb6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_53.png and b/TMessagesProj/src/main/assets/emoji/0_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_530.png b/TMessagesProj/src/main/assets/emoji/0_530.png index 833cac01a9..4c0728d39a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_530.png and b/TMessagesProj/src/main/assets/emoji/0_530.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_531.png b/TMessagesProj/src/main/assets/emoji/0_531.png index 84e80c4112..1dd113f313 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_531.png and b/TMessagesProj/src/main/assets/emoji/0_531.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_532.png b/TMessagesProj/src/main/assets/emoji/0_532.png index 5ca788bba5..4781d4a509 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_532.png and b/TMessagesProj/src/main/assets/emoji/0_532.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_533.png b/TMessagesProj/src/main/assets/emoji/0_533.png index 84d6bbccf5..546d4e4dd2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_533.png and b/TMessagesProj/src/main/assets/emoji/0_533.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_534.png b/TMessagesProj/src/main/assets/emoji/0_534.png index 9c008f6503..700648eae7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_534.png and b/TMessagesProj/src/main/assets/emoji/0_534.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_535.png b/TMessagesProj/src/main/assets/emoji/0_535.png index 16a237f474..028ab104ba 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_535.png and b/TMessagesProj/src/main/assets/emoji/0_535.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_536.png b/TMessagesProj/src/main/assets/emoji/0_536.png index 2d8abd34d9..55ce567b64 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_536.png and b/TMessagesProj/src/main/assets/emoji/0_536.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_537.png b/TMessagesProj/src/main/assets/emoji/0_537.png index 6809ba5fce..94cb847152 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_537.png and b/TMessagesProj/src/main/assets/emoji/0_537.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_538.png b/TMessagesProj/src/main/assets/emoji/0_538.png index f19aa14f03..2423716748 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_538.png and b/TMessagesProj/src/main/assets/emoji/0_538.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_539.png b/TMessagesProj/src/main/assets/emoji/0_539.png index 9b500128d1..7ecf8bb2ea 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_539.png and b/TMessagesProj/src/main/assets/emoji/0_539.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_54.png b/TMessagesProj/src/main/assets/emoji/0_54.png index 2358b1caf1..2987e7c695 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_54.png and b/TMessagesProj/src/main/assets/emoji/0_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_540.png b/TMessagesProj/src/main/assets/emoji/0_540.png index 242ae0d6cc..e090d594bc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_540.png and b/TMessagesProj/src/main/assets/emoji/0_540.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_541.png b/TMessagesProj/src/main/assets/emoji/0_541.png index f003dca7fb..48af78d34a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_541.png and b/TMessagesProj/src/main/assets/emoji/0_541.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_542.png b/TMessagesProj/src/main/assets/emoji/0_542.png index c6ea265dd3..20f69690a9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_542.png and b/TMessagesProj/src/main/assets/emoji/0_542.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_543.png b/TMessagesProj/src/main/assets/emoji/0_543.png index fff61f4679..aa190d6b34 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_543.png and b/TMessagesProj/src/main/assets/emoji/0_543.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_544.png b/TMessagesProj/src/main/assets/emoji/0_544.png index 4107ab30b6..06c00b3e68 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_544.png and b/TMessagesProj/src/main/assets/emoji/0_544.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_545.png b/TMessagesProj/src/main/assets/emoji/0_545.png index 164b996651..035d9baa43 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_545.png and b/TMessagesProj/src/main/assets/emoji/0_545.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_546.png b/TMessagesProj/src/main/assets/emoji/0_546.png index f9431e0f2d..5a64a5be32 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_546.png and b/TMessagesProj/src/main/assets/emoji/0_546.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_547.png b/TMessagesProj/src/main/assets/emoji/0_547.png index 46ee48aa75..5015df0115 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_547.png and b/TMessagesProj/src/main/assets/emoji/0_547.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_548.png b/TMessagesProj/src/main/assets/emoji/0_548.png index 8da71ce56e..4dc36a3eac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_548.png and b/TMessagesProj/src/main/assets/emoji/0_548.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_549.png b/TMessagesProj/src/main/assets/emoji/0_549.png index 344e531d42..1d11797fae 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_549.png and b/TMessagesProj/src/main/assets/emoji/0_549.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_55.png b/TMessagesProj/src/main/assets/emoji/0_55.png index 92da0ee774..7eda294452 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_55.png and b/TMessagesProj/src/main/assets/emoji/0_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_550.png b/TMessagesProj/src/main/assets/emoji/0_550.png index aae884ebeb..00edb2e7b3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_550.png and b/TMessagesProj/src/main/assets/emoji/0_550.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_551.png b/TMessagesProj/src/main/assets/emoji/0_551.png index d637180147..fc53c77786 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_551.png and b/TMessagesProj/src/main/assets/emoji/0_551.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_552.png b/TMessagesProj/src/main/assets/emoji/0_552.png index 7456802f18..305b7f325f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_552.png and b/TMessagesProj/src/main/assets/emoji/0_552.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_553.png b/TMessagesProj/src/main/assets/emoji/0_553.png index acbb3e2b8f..617b1ac30d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_553.png and b/TMessagesProj/src/main/assets/emoji/0_553.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_554.png b/TMessagesProj/src/main/assets/emoji/0_554.png index 59e7acea88..9e5ca231af 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_554.png and b/TMessagesProj/src/main/assets/emoji/0_554.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_555.png b/TMessagesProj/src/main/assets/emoji/0_555.png index d059acdf55..31d1730ca7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_555.png and b/TMessagesProj/src/main/assets/emoji/0_555.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_556.png b/TMessagesProj/src/main/assets/emoji/0_556.png index 9d56822778..ada205b65e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_556.png and b/TMessagesProj/src/main/assets/emoji/0_556.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_557.png b/TMessagesProj/src/main/assets/emoji/0_557.png index 2008fc73d1..40f36a02a6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_557.png and b/TMessagesProj/src/main/assets/emoji/0_557.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_558.png b/TMessagesProj/src/main/assets/emoji/0_558.png index ba85b21ea6..9b5573c4c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_558.png and b/TMessagesProj/src/main/assets/emoji/0_558.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_559.png b/TMessagesProj/src/main/assets/emoji/0_559.png index 8f076ead51..a2e076abcb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_559.png and b/TMessagesProj/src/main/assets/emoji/0_559.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_56.png b/TMessagesProj/src/main/assets/emoji/0_56.png index ca0ae863eb..d14e690d40 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_56.png and b/TMessagesProj/src/main/assets/emoji/0_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_560.png b/TMessagesProj/src/main/assets/emoji/0_560.png index 2ffd22180c..22f9a214ea 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_560.png and b/TMessagesProj/src/main/assets/emoji/0_560.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_561.png b/TMessagesProj/src/main/assets/emoji/0_561.png index b1bd3e7ebc..57e7221487 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_561.png and b/TMessagesProj/src/main/assets/emoji/0_561.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_562.png b/TMessagesProj/src/main/assets/emoji/0_562.png index d573a00d19..880cd7aaec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_562.png and b/TMessagesProj/src/main/assets/emoji/0_562.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_563.png b/TMessagesProj/src/main/assets/emoji/0_563.png index c7d73b1163..ef1f261ec6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_563.png and b/TMessagesProj/src/main/assets/emoji/0_563.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_564.png b/TMessagesProj/src/main/assets/emoji/0_564.png index ce493c87f5..6420462df0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_564.png and b/TMessagesProj/src/main/assets/emoji/0_564.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_565.png b/TMessagesProj/src/main/assets/emoji/0_565.png index d6ca7b653a..11bdcbe3d4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_565.png and b/TMessagesProj/src/main/assets/emoji/0_565.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_566.png b/TMessagesProj/src/main/assets/emoji/0_566.png index c7bb8150a8..46af1be2c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_566.png and b/TMessagesProj/src/main/assets/emoji/0_566.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_567.png b/TMessagesProj/src/main/assets/emoji/0_567.png index c1b268cc81..78b6e5f1e5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_567.png and b/TMessagesProj/src/main/assets/emoji/0_567.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_568.png b/TMessagesProj/src/main/assets/emoji/0_568.png index e77c48d45f..6b77dc114f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_568.png and b/TMessagesProj/src/main/assets/emoji/0_568.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_569.png b/TMessagesProj/src/main/assets/emoji/0_569.png index 7717f67686..a528d9e457 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_569.png and b/TMessagesProj/src/main/assets/emoji/0_569.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_57.png b/TMessagesProj/src/main/assets/emoji/0_57.png index 4252f03d8b..afd99286c6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_57.png and b/TMessagesProj/src/main/assets/emoji/0_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_570.png b/TMessagesProj/src/main/assets/emoji/0_570.png index 9c0cf840ce..4fb89ea903 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_570.png and b/TMessagesProj/src/main/assets/emoji/0_570.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_571.png b/TMessagesProj/src/main/assets/emoji/0_571.png index 63a4ff9f7d..3f86915d5a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_571.png and b/TMessagesProj/src/main/assets/emoji/0_571.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_572.png b/TMessagesProj/src/main/assets/emoji/0_572.png index da382a8381..8dfaaa5ee9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_572.png and b/TMessagesProj/src/main/assets/emoji/0_572.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_573.png b/TMessagesProj/src/main/assets/emoji/0_573.png index 487558dfd7..8aa17d4810 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_573.png and b/TMessagesProj/src/main/assets/emoji/0_573.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_574.png b/TMessagesProj/src/main/assets/emoji/0_574.png index 8a1cec8305..91706ba3d9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_574.png and b/TMessagesProj/src/main/assets/emoji/0_574.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_575.png b/TMessagesProj/src/main/assets/emoji/0_575.png index c11b4cffb1..90b9475662 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_575.png and b/TMessagesProj/src/main/assets/emoji/0_575.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_576.png b/TMessagesProj/src/main/assets/emoji/0_576.png index 6d231231cb..4ceaea20f6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_576.png and b/TMessagesProj/src/main/assets/emoji/0_576.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_577.png b/TMessagesProj/src/main/assets/emoji/0_577.png index 52b2b5b468..8c5332b5e8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_577.png and b/TMessagesProj/src/main/assets/emoji/0_577.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_578.png b/TMessagesProj/src/main/assets/emoji/0_578.png index f46df028aa..4dbafd9901 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_578.png and b/TMessagesProj/src/main/assets/emoji/0_578.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_579.png b/TMessagesProj/src/main/assets/emoji/0_579.png index 12754eb136..3a5db36237 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_579.png and b/TMessagesProj/src/main/assets/emoji/0_579.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_58.png b/TMessagesProj/src/main/assets/emoji/0_58.png index 4c0d777aa9..8587db1e73 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_58.png and b/TMessagesProj/src/main/assets/emoji/0_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_580.png b/TMessagesProj/src/main/assets/emoji/0_580.png index 9ec069b394..74e5b31328 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_580.png and b/TMessagesProj/src/main/assets/emoji/0_580.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_581.png b/TMessagesProj/src/main/assets/emoji/0_581.png index 3149ae01f1..afb8688e37 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_581.png and b/TMessagesProj/src/main/assets/emoji/0_581.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_582.png b/TMessagesProj/src/main/assets/emoji/0_582.png index 20d0e0c59c..fd402c1988 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_582.png and b/TMessagesProj/src/main/assets/emoji/0_582.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_583.png b/TMessagesProj/src/main/assets/emoji/0_583.png index 08759cf4b3..fd34583594 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_583.png and b/TMessagesProj/src/main/assets/emoji/0_583.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_584.png b/TMessagesProj/src/main/assets/emoji/0_584.png index 8e3b54dbac..bc42ce35fa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_584.png and b/TMessagesProj/src/main/assets/emoji/0_584.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_585.png b/TMessagesProj/src/main/assets/emoji/0_585.png index 0b1f32c8d2..fed26aa674 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_585.png and b/TMessagesProj/src/main/assets/emoji/0_585.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_586.png b/TMessagesProj/src/main/assets/emoji/0_586.png index 86bbfe72fe..67537752cd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_586.png and b/TMessagesProj/src/main/assets/emoji/0_586.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_587.png b/TMessagesProj/src/main/assets/emoji/0_587.png index 8f09d4d36c..d3e489ec85 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_587.png and b/TMessagesProj/src/main/assets/emoji/0_587.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_588.png b/TMessagesProj/src/main/assets/emoji/0_588.png index 405d0fd0bd..760bfa6acd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_588.png and b/TMessagesProj/src/main/assets/emoji/0_588.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_589.png b/TMessagesProj/src/main/assets/emoji/0_589.png index cc9139a3dd..d881971ebd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_589.png and b/TMessagesProj/src/main/assets/emoji/0_589.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_59.png b/TMessagesProj/src/main/assets/emoji/0_59.png index 632f495dde..bd1821ff46 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_59.png and b/TMessagesProj/src/main/assets/emoji/0_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_590.png b/TMessagesProj/src/main/assets/emoji/0_590.png index 53c22e184a..578ea9cfc4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_590.png and b/TMessagesProj/src/main/assets/emoji/0_590.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_591.png b/TMessagesProj/src/main/assets/emoji/0_591.png index 190d1a3ea3..c3a9614f78 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_591.png and b/TMessagesProj/src/main/assets/emoji/0_591.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_592.png b/TMessagesProj/src/main/assets/emoji/0_592.png index d24597462b..7bebad94af 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_592.png and b/TMessagesProj/src/main/assets/emoji/0_592.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_593.png b/TMessagesProj/src/main/assets/emoji/0_593.png index b3359b6a51..6442f6cf7b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_593.png and b/TMessagesProj/src/main/assets/emoji/0_593.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_594.png b/TMessagesProj/src/main/assets/emoji/0_594.png index 95e83dbecf..ea65de140e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_594.png and b/TMessagesProj/src/main/assets/emoji/0_594.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_595.png b/TMessagesProj/src/main/assets/emoji/0_595.png index ed99a1d20d..bb7aeb792c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_595.png and b/TMessagesProj/src/main/assets/emoji/0_595.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_596.png b/TMessagesProj/src/main/assets/emoji/0_596.png index f82e4fa890..350b202033 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_596.png and b/TMessagesProj/src/main/assets/emoji/0_596.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_597.png b/TMessagesProj/src/main/assets/emoji/0_597.png index e72be6955e..077a20e619 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_597.png and b/TMessagesProj/src/main/assets/emoji/0_597.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_598.png b/TMessagesProj/src/main/assets/emoji/0_598.png index 486d4eb283..a94cfc275e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_598.png and b/TMessagesProj/src/main/assets/emoji/0_598.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_599.png b/TMessagesProj/src/main/assets/emoji/0_599.png index ccfab32bc5..f9857adaaa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_599.png and b/TMessagesProj/src/main/assets/emoji/0_599.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_6.png b/TMessagesProj/src/main/assets/emoji/0_6.png index 033bdca654..1ec254f034 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_6.png and b/TMessagesProj/src/main/assets/emoji/0_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_60.png b/TMessagesProj/src/main/assets/emoji/0_60.png index c766ef2f6b..f466580ac0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_60.png and b/TMessagesProj/src/main/assets/emoji/0_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_600.png b/TMessagesProj/src/main/assets/emoji/0_600.png index 625c2d1d2f..7dbcb2b9e6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_600.png and b/TMessagesProj/src/main/assets/emoji/0_600.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_601.png b/TMessagesProj/src/main/assets/emoji/0_601.png index 50a78d342b..5ce5b98dbf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_601.png and b/TMessagesProj/src/main/assets/emoji/0_601.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_602.png b/TMessagesProj/src/main/assets/emoji/0_602.png index ad00c6a3a5..37e4d37700 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_602.png and b/TMessagesProj/src/main/assets/emoji/0_602.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_603.png b/TMessagesProj/src/main/assets/emoji/0_603.png index ca6a2e4865..faf2266573 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_603.png and b/TMessagesProj/src/main/assets/emoji/0_603.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_604.png b/TMessagesProj/src/main/assets/emoji/0_604.png index 9058cfaa17..2c1dad3383 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_604.png and b/TMessagesProj/src/main/assets/emoji/0_604.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_605.png b/TMessagesProj/src/main/assets/emoji/0_605.png index 4c9c3c6bea..99ef067f32 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_605.png and b/TMessagesProj/src/main/assets/emoji/0_605.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_606.png b/TMessagesProj/src/main/assets/emoji/0_606.png index 1397955924..0b3cc1a805 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_606.png and b/TMessagesProj/src/main/assets/emoji/0_606.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_607.png b/TMessagesProj/src/main/assets/emoji/0_607.png index 643b3b3fee..cc9a298f14 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_607.png and b/TMessagesProj/src/main/assets/emoji/0_607.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_608.png b/TMessagesProj/src/main/assets/emoji/0_608.png index c32b172121..6a62c92136 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_608.png and b/TMessagesProj/src/main/assets/emoji/0_608.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_609.png b/TMessagesProj/src/main/assets/emoji/0_609.png index ab231e9505..6b27e9ca19 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_609.png and b/TMessagesProj/src/main/assets/emoji/0_609.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_61.png b/TMessagesProj/src/main/assets/emoji/0_61.png index 083e45edf6..28aa7c8aab 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_61.png and b/TMessagesProj/src/main/assets/emoji/0_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_610.png b/TMessagesProj/src/main/assets/emoji/0_610.png index 13d8de7214..ab5a132e85 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_610.png and b/TMessagesProj/src/main/assets/emoji/0_610.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_611.png b/TMessagesProj/src/main/assets/emoji/0_611.png index 68ecde4e81..287336eb8f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_611.png and b/TMessagesProj/src/main/assets/emoji/0_611.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_612.png b/TMessagesProj/src/main/assets/emoji/0_612.png index fd3d13ff37..244f050bc0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_612.png and b/TMessagesProj/src/main/assets/emoji/0_612.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_613.png b/TMessagesProj/src/main/assets/emoji/0_613.png index bf66e2ae85..04220a40fb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_613.png and b/TMessagesProj/src/main/assets/emoji/0_613.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_614.png b/TMessagesProj/src/main/assets/emoji/0_614.png index 952da49260..77af69c7ce 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_614.png and b/TMessagesProj/src/main/assets/emoji/0_614.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_615.png b/TMessagesProj/src/main/assets/emoji/0_615.png index ada619380d..76658b7c0d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_615.png and b/TMessagesProj/src/main/assets/emoji/0_615.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_616.png b/TMessagesProj/src/main/assets/emoji/0_616.png index 1e2bd876c4..090218b800 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_616.png and b/TMessagesProj/src/main/assets/emoji/0_616.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_617.png b/TMessagesProj/src/main/assets/emoji/0_617.png index b78877f6c1..d2266de3cc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_617.png and b/TMessagesProj/src/main/assets/emoji/0_617.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_618.png b/TMessagesProj/src/main/assets/emoji/0_618.png index 39dfc8c2eb..a8fcb56d5f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_618.png and b/TMessagesProj/src/main/assets/emoji/0_618.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_619.png b/TMessagesProj/src/main/assets/emoji/0_619.png index c20e575426..a07661f6bc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_619.png and b/TMessagesProj/src/main/assets/emoji/0_619.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_62.png b/TMessagesProj/src/main/assets/emoji/0_62.png index 145be655ec..d4a37aad53 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_62.png and b/TMessagesProj/src/main/assets/emoji/0_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_620.png b/TMessagesProj/src/main/assets/emoji/0_620.png index 8c40a4879f..b8f752ae18 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_620.png and b/TMessagesProj/src/main/assets/emoji/0_620.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_621.png b/TMessagesProj/src/main/assets/emoji/0_621.png index b67d0f64d7..93bcd4c4f0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_621.png and b/TMessagesProj/src/main/assets/emoji/0_621.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_622.png b/TMessagesProj/src/main/assets/emoji/0_622.png index 21288f10de..df92535535 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_622.png and b/TMessagesProj/src/main/assets/emoji/0_622.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_623.png b/TMessagesProj/src/main/assets/emoji/0_623.png index 6136490b13..b4dd68bfd9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_623.png and b/TMessagesProj/src/main/assets/emoji/0_623.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_624.png b/TMessagesProj/src/main/assets/emoji/0_624.png index 22b1b77354..7861c29130 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_624.png and b/TMessagesProj/src/main/assets/emoji/0_624.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_625.png b/TMessagesProj/src/main/assets/emoji/0_625.png index 40595daf3c..7841e1657a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_625.png and b/TMessagesProj/src/main/assets/emoji/0_625.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_626.png b/TMessagesProj/src/main/assets/emoji/0_626.png index 9cc1b8d681..d72623a5bd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_626.png and b/TMessagesProj/src/main/assets/emoji/0_626.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_627.png b/TMessagesProj/src/main/assets/emoji/0_627.png index 3886a408cb..46600f3d65 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_627.png and b/TMessagesProj/src/main/assets/emoji/0_627.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_628.png b/TMessagesProj/src/main/assets/emoji/0_628.png index d09ea74c33..808aad1159 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_628.png and b/TMessagesProj/src/main/assets/emoji/0_628.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_629.png b/TMessagesProj/src/main/assets/emoji/0_629.png index 07f419f274..f15700d89c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_629.png and b/TMessagesProj/src/main/assets/emoji/0_629.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_63.png b/TMessagesProj/src/main/assets/emoji/0_63.png index e89b7063d7..7865ff435f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_63.png and b/TMessagesProj/src/main/assets/emoji/0_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_630.png b/TMessagesProj/src/main/assets/emoji/0_630.png index 9d8ceaed54..08438e3618 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_630.png and b/TMessagesProj/src/main/assets/emoji/0_630.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_631.png b/TMessagesProj/src/main/assets/emoji/0_631.png index 51f712f584..e28f2e17e4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_631.png and b/TMessagesProj/src/main/assets/emoji/0_631.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_632.png b/TMessagesProj/src/main/assets/emoji/0_632.png index 148b6387ac..2f4e7670f1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_632.png and b/TMessagesProj/src/main/assets/emoji/0_632.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_633.png b/TMessagesProj/src/main/assets/emoji/0_633.png index d7ebf4d5a0..918a34f1db 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_633.png and b/TMessagesProj/src/main/assets/emoji/0_633.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_634.png b/TMessagesProj/src/main/assets/emoji/0_634.png index 355da089db..ebf711420a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_634.png and b/TMessagesProj/src/main/assets/emoji/0_634.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_635.png b/TMessagesProj/src/main/assets/emoji/0_635.png index d6e98446e4..dd4d360499 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_635.png and b/TMessagesProj/src/main/assets/emoji/0_635.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_636.png b/TMessagesProj/src/main/assets/emoji/0_636.png index c85d15ed24..57dbecdc81 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_636.png and b/TMessagesProj/src/main/assets/emoji/0_636.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_637.png b/TMessagesProj/src/main/assets/emoji/0_637.png index fd8733b86c..d886b7982f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_637.png and b/TMessagesProj/src/main/assets/emoji/0_637.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_638.png b/TMessagesProj/src/main/assets/emoji/0_638.png index 90690b4e6b..8f82298b36 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_638.png and b/TMessagesProj/src/main/assets/emoji/0_638.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_639.png b/TMessagesProj/src/main/assets/emoji/0_639.png index c37f3c64ca..0e11f9ebda 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_639.png and b/TMessagesProj/src/main/assets/emoji/0_639.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_64.png b/TMessagesProj/src/main/assets/emoji/0_64.png index 36f29ab7a0..7975287344 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_64.png and b/TMessagesProj/src/main/assets/emoji/0_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_640.png b/TMessagesProj/src/main/assets/emoji/0_640.png index 30510d71e0..027cbedb2e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_640.png and b/TMessagesProj/src/main/assets/emoji/0_640.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_641.png b/TMessagesProj/src/main/assets/emoji/0_641.png index 6d8585054f..9f22ae8d8f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_641.png and b/TMessagesProj/src/main/assets/emoji/0_641.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_642.png b/TMessagesProj/src/main/assets/emoji/0_642.png index c7b5a4b17d..6714705de7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_642.png and b/TMessagesProj/src/main/assets/emoji/0_642.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_643.png b/TMessagesProj/src/main/assets/emoji/0_643.png index 561c2b06e7..a6b2c6d05e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_643.png and b/TMessagesProj/src/main/assets/emoji/0_643.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_644.png b/TMessagesProj/src/main/assets/emoji/0_644.png index fd477aba77..f97b6840d3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_644.png and b/TMessagesProj/src/main/assets/emoji/0_644.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_645.png b/TMessagesProj/src/main/assets/emoji/0_645.png index 61197989ff..ae5aaf9160 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_645.png and b/TMessagesProj/src/main/assets/emoji/0_645.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_646.png b/TMessagesProj/src/main/assets/emoji/0_646.png index 59500fb270..44c689e76c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_646.png and b/TMessagesProj/src/main/assets/emoji/0_646.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_647.png b/TMessagesProj/src/main/assets/emoji/0_647.png index 4fbc236e82..3c1bf3014b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_647.png and b/TMessagesProj/src/main/assets/emoji/0_647.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_648.png b/TMessagesProj/src/main/assets/emoji/0_648.png index 9a476c25e0..bc3589ff9f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_648.png and b/TMessagesProj/src/main/assets/emoji/0_648.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_649.png b/TMessagesProj/src/main/assets/emoji/0_649.png index a5579a35c0..4121278f66 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_649.png and b/TMessagesProj/src/main/assets/emoji/0_649.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_65.png b/TMessagesProj/src/main/assets/emoji/0_65.png index 08478bd42b..a4a206c18b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_65.png and b/TMessagesProj/src/main/assets/emoji/0_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_650.png b/TMessagesProj/src/main/assets/emoji/0_650.png index 052382b12b..f7b19c18d7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_650.png and b/TMessagesProj/src/main/assets/emoji/0_650.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_651.png b/TMessagesProj/src/main/assets/emoji/0_651.png index 67c94bf811..6825097df9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_651.png and b/TMessagesProj/src/main/assets/emoji/0_651.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_652.png b/TMessagesProj/src/main/assets/emoji/0_652.png index 1db49985ca..3f53f176dd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_652.png and b/TMessagesProj/src/main/assets/emoji/0_652.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_653.png b/TMessagesProj/src/main/assets/emoji/0_653.png index bb700427b7..cba761c558 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_653.png and b/TMessagesProj/src/main/assets/emoji/0_653.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_654.png b/TMessagesProj/src/main/assets/emoji/0_654.png index 2640010055..20b2062e79 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_654.png and b/TMessagesProj/src/main/assets/emoji/0_654.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_655.png b/TMessagesProj/src/main/assets/emoji/0_655.png index 64f4b6a9e0..68d2061ef1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_655.png and b/TMessagesProj/src/main/assets/emoji/0_655.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_656.png b/TMessagesProj/src/main/assets/emoji/0_656.png index 5ac595188e..873b996458 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_656.png and b/TMessagesProj/src/main/assets/emoji/0_656.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_657.png b/TMessagesProj/src/main/assets/emoji/0_657.png index 329624fcf8..a48528038b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_657.png and b/TMessagesProj/src/main/assets/emoji/0_657.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_658.png b/TMessagesProj/src/main/assets/emoji/0_658.png index 86bc87aa21..135fed5bc0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_658.png and b/TMessagesProj/src/main/assets/emoji/0_658.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_659.png b/TMessagesProj/src/main/assets/emoji/0_659.png index cbcd8f294b..28f20c18ec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_659.png and b/TMessagesProj/src/main/assets/emoji/0_659.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_66.png b/TMessagesProj/src/main/assets/emoji/0_66.png index f9dca63cb5..8cf518e39f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_66.png and b/TMessagesProj/src/main/assets/emoji/0_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_660.png b/TMessagesProj/src/main/assets/emoji/0_660.png index 5091df3142..ca566cca34 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_660.png and b/TMessagesProj/src/main/assets/emoji/0_660.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_661.png b/TMessagesProj/src/main/assets/emoji/0_661.png index 70f0f6bb57..8665911d53 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_661.png and b/TMessagesProj/src/main/assets/emoji/0_661.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_662.png b/TMessagesProj/src/main/assets/emoji/0_662.png index 857b846f6c..2ccfb36f2e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_662.png and b/TMessagesProj/src/main/assets/emoji/0_662.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_663.png b/TMessagesProj/src/main/assets/emoji/0_663.png index 4df11b1075..b51efb93eb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_663.png and b/TMessagesProj/src/main/assets/emoji/0_663.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_664.png b/TMessagesProj/src/main/assets/emoji/0_664.png index 65d8ec7d5f..d34ee99902 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_664.png and b/TMessagesProj/src/main/assets/emoji/0_664.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_665.png b/TMessagesProj/src/main/assets/emoji/0_665.png index 09030e0291..97048e9e7e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_665.png and b/TMessagesProj/src/main/assets/emoji/0_665.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_666.png b/TMessagesProj/src/main/assets/emoji/0_666.png index dd53dbebc6..cd646f82a4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_666.png and b/TMessagesProj/src/main/assets/emoji/0_666.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_667.png b/TMessagesProj/src/main/assets/emoji/0_667.png index 28bcb90c78..6ef47de3e4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_667.png and b/TMessagesProj/src/main/assets/emoji/0_667.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_668.png b/TMessagesProj/src/main/assets/emoji/0_668.png index 092cf8c3eb..9dc5f44526 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_668.png and b/TMessagesProj/src/main/assets/emoji/0_668.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_669.png b/TMessagesProj/src/main/assets/emoji/0_669.png index a45112f18d..e99c2124a7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_669.png and b/TMessagesProj/src/main/assets/emoji/0_669.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_67.png b/TMessagesProj/src/main/assets/emoji/0_67.png index 780115436e..310d105f48 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_67.png and b/TMessagesProj/src/main/assets/emoji/0_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_670.png b/TMessagesProj/src/main/assets/emoji/0_670.png index d00047262f..70f8bf1d52 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_670.png and b/TMessagesProj/src/main/assets/emoji/0_670.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_671.png b/TMessagesProj/src/main/assets/emoji/0_671.png index d1657bc95b..b8eefcebd5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_671.png and b/TMessagesProj/src/main/assets/emoji/0_671.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_672.png b/TMessagesProj/src/main/assets/emoji/0_672.png index ccf9143234..06a83d8632 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_672.png and b/TMessagesProj/src/main/assets/emoji/0_672.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_673.png b/TMessagesProj/src/main/assets/emoji/0_673.png index 9f62e93068..8324343a18 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_673.png and b/TMessagesProj/src/main/assets/emoji/0_673.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_674.png b/TMessagesProj/src/main/assets/emoji/0_674.png index 2e749e798b..bc0d89bfb1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_674.png and b/TMessagesProj/src/main/assets/emoji/0_674.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_675.png b/TMessagesProj/src/main/assets/emoji/0_675.png index 843514c774..58d6fef9e5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_675.png and b/TMessagesProj/src/main/assets/emoji/0_675.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_676.png b/TMessagesProj/src/main/assets/emoji/0_676.png index eabc6fda1d..7aa3f4511a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_676.png and b/TMessagesProj/src/main/assets/emoji/0_676.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_677.png b/TMessagesProj/src/main/assets/emoji/0_677.png index 6f482c5536..ad3d7778f1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_677.png and b/TMessagesProj/src/main/assets/emoji/0_677.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_678.png b/TMessagesProj/src/main/assets/emoji/0_678.png index 59b3ecf30a..0dcef7feda 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_678.png and b/TMessagesProj/src/main/assets/emoji/0_678.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_679.png b/TMessagesProj/src/main/assets/emoji/0_679.png index 4ecc681c69..a30467e85b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_679.png and b/TMessagesProj/src/main/assets/emoji/0_679.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_68.png b/TMessagesProj/src/main/assets/emoji/0_68.png index 6b47943980..dce4614a13 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_68.png and b/TMessagesProj/src/main/assets/emoji/0_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_680.png b/TMessagesProj/src/main/assets/emoji/0_680.png index 3bece2cd2b..5db50dfe4a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_680.png and b/TMessagesProj/src/main/assets/emoji/0_680.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_681.png b/TMessagesProj/src/main/assets/emoji/0_681.png index f53654b204..4e2ccff54e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_681.png and b/TMessagesProj/src/main/assets/emoji/0_681.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_682.png b/TMessagesProj/src/main/assets/emoji/0_682.png index 38f33d6062..3bf49986f5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_682.png and b/TMessagesProj/src/main/assets/emoji/0_682.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_683.png b/TMessagesProj/src/main/assets/emoji/0_683.png index 504c170047..a5521b2aee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_683.png and b/TMessagesProj/src/main/assets/emoji/0_683.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_684.png b/TMessagesProj/src/main/assets/emoji/0_684.png index c64a95012e..ca22386cc0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_684.png and b/TMessagesProj/src/main/assets/emoji/0_684.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_685.png b/TMessagesProj/src/main/assets/emoji/0_685.png index d153f55461..023ae0275a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_685.png and b/TMessagesProj/src/main/assets/emoji/0_685.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_686.png b/TMessagesProj/src/main/assets/emoji/0_686.png index 651e064a39..f291d8353e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_686.png and b/TMessagesProj/src/main/assets/emoji/0_686.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_687.png b/TMessagesProj/src/main/assets/emoji/0_687.png index 9feeabae42..6a5953f4f0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_687.png and b/TMessagesProj/src/main/assets/emoji/0_687.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_688.png b/TMessagesProj/src/main/assets/emoji/0_688.png index af47b78b36..81f93b8b0b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_688.png and b/TMessagesProj/src/main/assets/emoji/0_688.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_689.png b/TMessagesProj/src/main/assets/emoji/0_689.png index d9229e103c..0fcbcb4ef8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_689.png and b/TMessagesProj/src/main/assets/emoji/0_689.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_69.png b/TMessagesProj/src/main/assets/emoji/0_69.png index 9378937fbe..dc1d1fff9e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_69.png and b/TMessagesProj/src/main/assets/emoji/0_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_690.png b/TMessagesProj/src/main/assets/emoji/0_690.png index 868d8198f6..37ba274d9c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_690.png and b/TMessagesProj/src/main/assets/emoji/0_690.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_691.png b/TMessagesProj/src/main/assets/emoji/0_691.png index 7caf3d4dee..81e2e9e5c0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_691.png and b/TMessagesProj/src/main/assets/emoji/0_691.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_692.png b/TMessagesProj/src/main/assets/emoji/0_692.png index 590355bb31..27bc90279a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_692.png and b/TMessagesProj/src/main/assets/emoji/0_692.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_693.png b/TMessagesProj/src/main/assets/emoji/0_693.png index 29ea2fc4d3..93df95d423 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_693.png and b/TMessagesProj/src/main/assets/emoji/0_693.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_694.png b/TMessagesProj/src/main/assets/emoji/0_694.png index 7de29b6bb2..9ebbf42aeb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_694.png and b/TMessagesProj/src/main/assets/emoji/0_694.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_695.png b/TMessagesProj/src/main/assets/emoji/0_695.png index e25215c294..aa456d6ab1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_695.png and b/TMessagesProj/src/main/assets/emoji/0_695.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_696.png b/TMessagesProj/src/main/assets/emoji/0_696.png index b7be6b733d..2eed758e0a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_696.png and b/TMessagesProj/src/main/assets/emoji/0_696.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_697.png b/TMessagesProj/src/main/assets/emoji/0_697.png index ba88f04c0d..49fbfe1e39 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_697.png and b/TMessagesProj/src/main/assets/emoji/0_697.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_698.png b/TMessagesProj/src/main/assets/emoji/0_698.png index cd8e814973..e9506e008b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_698.png and b/TMessagesProj/src/main/assets/emoji/0_698.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_699.png b/TMessagesProj/src/main/assets/emoji/0_699.png index 55da0140ca..cd33bccca8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_699.png and b/TMessagesProj/src/main/assets/emoji/0_699.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_7.png b/TMessagesProj/src/main/assets/emoji/0_7.png index 04a7e33b52..9ebe788426 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_7.png and b/TMessagesProj/src/main/assets/emoji/0_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_70.png b/TMessagesProj/src/main/assets/emoji/0_70.png index f2953f9bb8..70ff4b747e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_70.png and b/TMessagesProj/src/main/assets/emoji/0_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_700.png b/TMessagesProj/src/main/assets/emoji/0_700.png index fcc3fa97af..10563a8314 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_700.png and b/TMessagesProj/src/main/assets/emoji/0_700.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_701.png b/TMessagesProj/src/main/assets/emoji/0_701.png index ee0611e6a6..26d1816bfc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_701.png and b/TMessagesProj/src/main/assets/emoji/0_701.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_702.png b/TMessagesProj/src/main/assets/emoji/0_702.png index e460598b08..4779873d3f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_702.png and b/TMessagesProj/src/main/assets/emoji/0_702.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_703.png b/TMessagesProj/src/main/assets/emoji/0_703.png index d874d88a65..309ae09100 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_703.png and b/TMessagesProj/src/main/assets/emoji/0_703.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_704.png b/TMessagesProj/src/main/assets/emoji/0_704.png index 98cbc0e9d0..1ebae0327b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_704.png and b/TMessagesProj/src/main/assets/emoji/0_704.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_705.png b/TMessagesProj/src/main/assets/emoji/0_705.png index aa7ea06f8b..50eb8b1116 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_705.png and b/TMessagesProj/src/main/assets/emoji/0_705.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_706.png b/TMessagesProj/src/main/assets/emoji/0_706.png index 7f82c5634f..8de19155b2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_706.png and b/TMessagesProj/src/main/assets/emoji/0_706.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_707.png b/TMessagesProj/src/main/assets/emoji/0_707.png index ed622141b2..c2809ea522 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_707.png and b/TMessagesProj/src/main/assets/emoji/0_707.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_708.png b/TMessagesProj/src/main/assets/emoji/0_708.png index 87d54b8f43..000e59571d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_708.png and b/TMessagesProj/src/main/assets/emoji/0_708.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_709.png b/TMessagesProj/src/main/assets/emoji/0_709.png index ff959b3131..97eb8eef3d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_709.png and b/TMessagesProj/src/main/assets/emoji/0_709.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_71.png b/TMessagesProj/src/main/assets/emoji/0_71.png index 0a051f825f..bdec7d8ed2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_71.png and b/TMessagesProj/src/main/assets/emoji/0_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_710.png b/TMessagesProj/src/main/assets/emoji/0_710.png index 8112d2eff7..886b6ae9fb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_710.png and b/TMessagesProj/src/main/assets/emoji/0_710.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_711.png b/TMessagesProj/src/main/assets/emoji/0_711.png index 54ebf981f5..3c9aa50822 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_711.png and b/TMessagesProj/src/main/assets/emoji/0_711.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_712.png b/TMessagesProj/src/main/assets/emoji/0_712.png index 46bbe09b74..bdd1c3f8cd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_712.png and b/TMessagesProj/src/main/assets/emoji/0_712.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_713.png b/TMessagesProj/src/main/assets/emoji/0_713.png index 368792289d..14c79c1882 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_713.png and b/TMessagesProj/src/main/assets/emoji/0_713.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_714.png b/TMessagesProj/src/main/assets/emoji/0_714.png index 78c431ee5e..c85b8bce67 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_714.png and b/TMessagesProj/src/main/assets/emoji/0_714.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_715.png b/TMessagesProj/src/main/assets/emoji/0_715.png index 80b55d654e..acd9b09eba 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_715.png and b/TMessagesProj/src/main/assets/emoji/0_715.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_716.png b/TMessagesProj/src/main/assets/emoji/0_716.png index 088cff1196..d7a07597bb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_716.png and b/TMessagesProj/src/main/assets/emoji/0_716.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_717.png b/TMessagesProj/src/main/assets/emoji/0_717.png index 1c52e08d54..d587d16e94 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_717.png and b/TMessagesProj/src/main/assets/emoji/0_717.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_718.png b/TMessagesProj/src/main/assets/emoji/0_718.png index 4ea7a663d6..6172c358f0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_718.png and b/TMessagesProj/src/main/assets/emoji/0_718.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_719.png b/TMessagesProj/src/main/assets/emoji/0_719.png index cd36932f2f..b69815a147 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_719.png and b/TMessagesProj/src/main/assets/emoji/0_719.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_72.png b/TMessagesProj/src/main/assets/emoji/0_72.png index e4c6a1adde..a6d76594ea 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_72.png and b/TMessagesProj/src/main/assets/emoji/0_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_720.png b/TMessagesProj/src/main/assets/emoji/0_720.png index 261689916b..1f1a2aa201 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_720.png and b/TMessagesProj/src/main/assets/emoji/0_720.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_721.png b/TMessagesProj/src/main/assets/emoji/0_721.png index 25e78a188f..e6047149f6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_721.png and b/TMessagesProj/src/main/assets/emoji/0_721.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_722.png b/TMessagesProj/src/main/assets/emoji/0_722.png index 556ca710a6..f3dbd461ed 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_722.png and b/TMessagesProj/src/main/assets/emoji/0_722.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_723.png b/TMessagesProj/src/main/assets/emoji/0_723.png index 11cd82764f..f35c3aa36c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_723.png and b/TMessagesProj/src/main/assets/emoji/0_723.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_724.png b/TMessagesProj/src/main/assets/emoji/0_724.png index 1a12f75694..ec9fc04604 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_724.png and b/TMessagesProj/src/main/assets/emoji/0_724.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_725.png b/TMessagesProj/src/main/assets/emoji/0_725.png index 906ad52ca4..b77a8c90ca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_725.png and b/TMessagesProj/src/main/assets/emoji/0_725.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_726.png b/TMessagesProj/src/main/assets/emoji/0_726.png index c3b2cb060a..752dced491 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_726.png and b/TMessagesProj/src/main/assets/emoji/0_726.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_727.png b/TMessagesProj/src/main/assets/emoji/0_727.png index 7442ee2a93..1a8f67a73a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_727.png and b/TMessagesProj/src/main/assets/emoji/0_727.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_728.png b/TMessagesProj/src/main/assets/emoji/0_728.png index dacedf8c0e..978be76894 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_728.png and b/TMessagesProj/src/main/assets/emoji/0_728.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_729.png b/TMessagesProj/src/main/assets/emoji/0_729.png index 274eb317c2..0b04688e4b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_729.png and b/TMessagesProj/src/main/assets/emoji/0_729.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_73.png b/TMessagesProj/src/main/assets/emoji/0_73.png index 2ef045ae6f..7379c94261 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_73.png and b/TMessagesProj/src/main/assets/emoji/0_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_730.png b/TMessagesProj/src/main/assets/emoji/0_730.png index 8e2c31b07d..10cbeae352 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_730.png and b/TMessagesProj/src/main/assets/emoji/0_730.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_731.png b/TMessagesProj/src/main/assets/emoji/0_731.png index 67cee31b56..8246b5088c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_731.png and b/TMessagesProj/src/main/assets/emoji/0_731.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_732.png b/TMessagesProj/src/main/assets/emoji/0_732.png index 4c5f48e0c2..4d72f2426f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_732.png and b/TMessagesProj/src/main/assets/emoji/0_732.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_733.png b/TMessagesProj/src/main/assets/emoji/0_733.png index 5a1456f393..219759f01b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_733.png and b/TMessagesProj/src/main/assets/emoji/0_733.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_734.png b/TMessagesProj/src/main/assets/emoji/0_734.png index 4acdc77dd8..b95938afa3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_734.png and b/TMessagesProj/src/main/assets/emoji/0_734.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_735.png b/TMessagesProj/src/main/assets/emoji/0_735.png index c7b8dc3392..c2b7d0f993 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_735.png and b/TMessagesProj/src/main/assets/emoji/0_735.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_736.png b/TMessagesProj/src/main/assets/emoji/0_736.png index 4c828edba6..54b909a3fc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_736.png and b/TMessagesProj/src/main/assets/emoji/0_736.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_737.png b/TMessagesProj/src/main/assets/emoji/0_737.png index 549d2f95b9..c57dba521f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_737.png and b/TMessagesProj/src/main/assets/emoji/0_737.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_738.png b/TMessagesProj/src/main/assets/emoji/0_738.png index f0e0be7674..437a3d1586 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_738.png and b/TMessagesProj/src/main/assets/emoji/0_738.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_739.png b/TMessagesProj/src/main/assets/emoji/0_739.png index 4e746f2097..6460eafb74 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_739.png and b/TMessagesProj/src/main/assets/emoji/0_739.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_74.png b/TMessagesProj/src/main/assets/emoji/0_74.png index bae09b7f4f..87dcf97de1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_74.png and b/TMessagesProj/src/main/assets/emoji/0_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_740.png b/TMessagesProj/src/main/assets/emoji/0_740.png index 7862c93ee7..3a80054cec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_740.png and b/TMessagesProj/src/main/assets/emoji/0_740.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_741.png b/TMessagesProj/src/main/assets/emoji/0_741.png index 1a1a830b45..671723519a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_741.png and b/TMessagesProj/src/main/assets/emoji/0_741.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_742.png b/TMessagesProj/src/main/assets/emoji/0_742.png index d4087a5c44..f588050e2b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_742.png and b/TMessagesProj/src/main/assets/emoji/0_742.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_743.png b/TMessagesProj/src/main/assets/emoji/0_743.png index a0277c1dab..cecff0b24a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_743.png and b/TMessagesProj/src/main/assets/emoji/0_743.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_744.png b/TMessagesProj/src/main/assets/emoji/0_744.png index c1511f19f6..8f0a611b27 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_744.png and b/TMessagesProj/src/main/assets/emoji/0_744.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_745.png b/TMessagesProj/src/main/assets/emoji/0_745.png index 9aa74e0095..d1777799a9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_745.png and b/TMessagesProj/src/main/assets/emoji/0_745.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_746.png b/TMessagesProj/src/main/assets/emoji/0_746.png index e12b44e16e..f3e6f0dd9c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_746.png and b/TMessagesProj/src/main/assets/emoji/0_746.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_747.png b/TMessagesProj/src/main/assets/emoji/0_747.png index 4384244cbd..c6ac47ad7e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_747.png and b/TMessagesProj/src/main/assets/emoji/0_747.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_748.png b/TMessagesProj/src/main/assets/emoji/0_748.png index 486c30ef95..2bc9c094a4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_748.png and b/TMessagesProj/src/main/assets/emoji/0_748.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_749.png b/TMessagesProj/src/main/assets/emoji/0_749.png index ce4337fa1d..67a12d97be 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_749.png and b/TMessagesProj/src/main/assets/emoji/0_749.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_75.png b/TMessagesProj/src/main/assets/emoji/0_75.png index 41c5c9e741..bb8e3fe986 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_75.png and b/TMessagesProj/src/main/assets/emoji/0_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_750.png b/TMessagesProj/src/main/assets/emoji/0_750.png index cf4b8c2f05..fe3234c1a3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_750.png and b/TMessagesProj/src/main/assets/emoji/0_750.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_751.png b/TMessagesProj/src/main/assets/emoji/0_751.png index d142650403..4d1472ba40 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_751.png and b/TMessagesProj/src/main/assets/emoji/0_751.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_752.png b/TMessagesProj/src/main/assets/emoji/0_752.png index c22336a11f..f24330af2c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_752.png and b/TMessagesProj/src/main/assets/emoji/0_752.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_753.png b/TMessagesProj/src/main/assets/emoji/0_753.png index d2cc2e7748..3aaa5eeb1a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_753.png and b/TMessagesProj/src/main/assets/emoji/0_753.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_754.png b/TMessagesProj/src/main/assets/emoji/0_754.png index ea68ed45a5..287aa8d53d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_754.png and b/TMessagesProj/src/main/assets/emoji/0_754.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_755.png b/TMessagesProj/src/main/assets/emoji/0_755.png index 7fb13ebd84..4832b5a400 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_755.png and b/TMessagesProj/src/main/assets/emoji/0_755.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_756.png b/TMessagesProj/src/main/assets/emoji/0_756.png index 16649d9e3f..382ab6511b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_756.png and b/TMessagesProj/src/main/assets/emoji/0_756.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_757.png b/TMessagesProj/src/main/assets/emoji/0_757.png index ccb0f32ffa..59c7fe9406 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_757.png and b/TMessagesProj/src/main/assets/emoji/0_757.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_758.png b/TMessagesProj/src/main/assets/emoji/0_758.png index bee8757c3d..b788a89332 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_758.png and b/TMessagesProj/src/main/assets/emoji/0_758.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_759.png b/TMessagesProj/src/main/assets/emoji/0_759.png index 32bb21b81c..c98d83078c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_759.png and b/TMessagesProj/src/main/assets/emoji/0_759.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_76.png b/TMessagesProj/src/main/assets/emoji/0_76.png index dcb96e5a5a..b5cd7d7797 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_76.png and b/TMessagesProj/src/main/assets/emoji/0_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_760.png b/TMessagesProj/src/main/assets/emoji/0_760.png index c7006fa82b..40b48f9766 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_760.png and b/TMessagesProj/src/main/assets/emoji/0_760.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_761.png b/TMessagesProj/src/main/assets/emoji/0_761.png index 1bb90ed176..3db325b812 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_761.png and b/TMessagesProj/src/main/assets/emoji/0_761.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_762.png b/TMessagesProj/src/main/assets/emoji/0_762.png index d9fed370ff..3355cae741 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_762.png and b/TMessagesProj/src/main/assets/emoji/0_762.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_763.png b/TMessagesProj/src/main/assets/emoji/0_763.png index 3811e115c3..2bc0aa298d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_763.png and b/TMessagesProj/src/main/assets/emoji/0_763.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_764.png b/TMessagesProj/src/main/assets/emoji/0_764.png index 08b0cee8f7..c17876bd9c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_764.png and b/TMessagesProj/src/main/assets/emoji/0_764.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_765.png b/TMessagesProj/src/main/assets/emoji/0_765.png index 1c5363a0b4..f76c85d5a7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_765.png and b/TMessagesProj/src/main/assets/emoji/0_765.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_766.png b/TMessagesProj/src/main/assets/emoji/0_766.png index 0976190566..ca615f034f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_766.png and b/TMessagesProj/src/main/assets/emoji/0_766.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_767.png b/TMessagesProj/src/main/assets/emoji/0_767.png index 5e24ab45a1..299b294af4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_767.png and b/TMessagesProj/src/main/assets/emoji/0_767.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_768.png b/TMessagesProj/src/main/assets/emoji/0_768.png index 0cf8b4b823..e8db2b9ae1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_768.png and b/TMessagesProj/src/main/assets/emoji/0_768.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_769.png b/TMessagesProj/src/main/assets/emoji/0_769.png index 223f73e7cf..110953d987 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_769.png and b/TMessagesProj/src/main/assets/emoji/0_769.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_77.png b/TMessagesProj/src/main/assets/emoji/0_77.png index 3cd4d16ab6..0cf6a7691e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_77.png and b/TMessagesProj/src/main/assets/emoji/0_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_770.png b/TMessagesProj/src/main/assets/emoji/0_770.png index b5ed483426..8223690e05 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_770.png and b/TMessagesProj/src/main/assets/emoji/0_770.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_771.png b/TMessagesProj/src/main/assets/emoji/0_771.png index f17fb69a80..3067048c41 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_771.png and b/TMessagesProj/src/main/assets/emoji/0_771.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_772.png b/TMessagesProj/src/main/assets/emoji/0_772.png index a49459aac2..867ba0a357 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_772.png and b/TMessagesProj/src/main/assets/emoji/0_772.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_773.png b/TMessagesProj/src/main/assets/emoji/0_773.png index a76f9d7555..2347d0aaee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_773.png and b/TMessagesProj/src/main/assets/emoji/0_773.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_774.png b/TMessagesProj/src/main/assets/emoji/0_774.png index 2abe3b98dc..31e348503c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_774.png and b/TMessagesProj/src/main/assets/emoji/0_774.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_775.png b/TMessagesProj/src/main/assets/emoji/0_775.png index 18aaacea47..34aa52a562 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_775.png and b/TMessagesProj/src/main/assets/emoji/0_775.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_776.png b/TMessagesProj/src/main/assets/emoji/0_776.png index 20f8bb2043..3fb78dc6f2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_776.png and b/TMessagesProj/src/main/assets/emoji/0_776.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_777.png b/TMessagesProj/src/main/assets/emoji/0_777.png index a2c2cf117d..4d70971553 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_777.png and b/TMessagesProj/src/main/assets/emoji/0_777.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_778.png b/TMessagesProj/src/main/assets/emoji/0_778.png index 6f5682c789..f54cbb7297 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_778.png and b/TMessagesProj/src/main/assets/emoji/0_778.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_779.png b/TMessagesProj/src/main/assets/emoji/0_779.png index 7abfdae1ea..41aa020ab5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_779.png and b/TMessagesProj/src/main/assets/emoji/0_779.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_78.png b/TMessagesProj/src/main/assets/emoji/0_78.png index 5f7dd3cf5e..7ceaf62991 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_78.png and b/TMessagesProj/src/main/assets/emoji/0_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_780.png b/TMessagesProj/src/main/assets/emoji/0_780.png index a89b853ac3..9bf2f268d9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_780.png and b/TMessagesProj/src/main/assets/emoji/0_780.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_781.png b/TMessagesProj/src/main/assets/emoji/0_781.png index 6bd8417542..bbd5c76cb0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_781.png and b/TMessagesProj/src/main/assets/emoji/0_781.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_782.png b/TMessagesProj/src/main/assets/emoji/0_782.png index a5fa3dd2e1..91305e0a21 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_782.png and b/TMessagesProj/src/main/assets/emoji/0_782.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_783.png b/TMessagesProj/src/main/assets/emoji/0_783.png index 7f53f00d58..75c6ea9b35 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_783.png and b/TMessagesProj/src/main/assets/emoji/0_783.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_784.png b/TMessagesProj/src/main/assets/emoji/0_784.png index 9f60eb58c3..1e97c2a74b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_784.png and b/TMessagesProj/src/main/assets/emoji/0_784.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_785.png b/TMessagesProj/src/main/assets/emoji/0_785.png index b068ced6d0..216567de74 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_785.png and b/TMessagesProj/src/main/assets/emoji/0_785.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_786.png b/TMessagesProj/src/main/assets/emoji/0_786.png index 076961b66a..eaf3564dd0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_786.png and b/TMessagesProj/src/main/assets/emoji/0_786.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_787.png b/TMessagesProj/src/main/assets/emoji/0_787.png index c67e6791d1..70c143ebe4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_787.png and b/TMessagesProj/src/main/assets/emoji/0_787.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_788.png b/TMessagesProj/src/main/assets/emoji/0_788.png index ef72b0da21..2be398082a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_788.png and b/TMessagesProj/src/main/assets/emoji/0_788.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_789.png b/TMessagesProj/src/main/assets/emoji/0_789.png index d9fa0d7bfa..0dd11e82c7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_789.png and b/TMessagesProj/src/main/assets/emoji/0_789.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_79.png b/TMessagesProj/src/main/assets/emoji/0_79.png index 02f1b93599..63562eff30 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_79.png and b/TMessagesProj/src/main/assets/emoji/0_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_790.png b/TMessagesProj/src/main/assets/emoji/0_790.png index afa09ca320..5d6345f904 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_790.png and b/TMessagesProj/src/main/assets/emoji/0_790.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_791.png b/TMessagesProj/src/main/assets/emoji/0_791.png index dadaac31b1..caaccbd500 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_791.png and b/TMessagesProj/src/main/assets/emoji/0_791.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_792.png b/TMessagesProj/src/main/assets/emoji/0_792.png index c08f1201e6..eabb372115 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_792.png and b/TMessagesProj/src/main/assets/emoji/0_792.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_793.png b/TMessagesProj/src/main/assets/emoji/0_793.png index b00f3af1d1..a177386118 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_793.png and b/TMessagesProj/src/main/assets/emoji/0_793.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_794.png b/TMessagesProj/src/main/assets/emoji/0_794.png index d76d065956..4780140153 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_794.png and b/TMessagesProj/src/main/assets/emoji/0_794.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_795.png b/TMessagesProj/src/main/assets/emoji/0_795.png index a284ff83c0..c7d665f32c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_795.png and b/TMessagesProj/src/main/assets/emoji/0_795.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_796.png b/TMessagesProj/src/main/assets/emoji/0_796.png index d581b94637..49db7e8911 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_796.png and b/TMessagesProj/src/main/assets/emoji/0_796.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_797.png b/TMessagesProj/src/main/assets/emoji/0_797.png index f5e24b4995..461375889c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_797.png and b/TMessagesProj/src/main/assets/emoji/0_797.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_798.png b/TMessagesProj/src/main/assets/emoji/0_798.png index 240eb29896..50f6d35188 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_798.png and b/TMessagesProj/src/main/assets/emoji/0_798.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_799.png b/TMessagesProj/src/main/assets/emoji/0_799.png index ecee680a53..7ff5823a7e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_799.png and b/TMessagesProj/src/main/assets/emoji/0_799.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_8.png b/TMessagesProj/src/main/assets/emoji/0_8.png index 2b5dc2c9ba..55b2a9a2e2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_8.png and b/TMessagesProj/src/main/assets/emoji/0_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_80.png b/TMessagesProj/src/main/assets/emoji/0_80.png index 4382ba9870..26d90991cb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_80.png and b/TMessagesProj/src/main/assets/emoji/0_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_800.png b/TMessagesProj/src/main/assets/emoji/0_800.png index b01819e9d2..78dd5d810d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_800.png and b/TMessagesProj/src/main/assets/emoji/0_800.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_801.png b/TMessagesProj/src/main/assets/emoji/0_801.png index b8676d1f6e..a3042f2b01 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_801.png and b/TMessagesProj/src/main/assets/emoji/0_801.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_802.png b/TMessagesProj/src/main/assets/emoji/0_802.png index fbe169ef93..56be2121af 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_802.png and b/TMessagesProj/src/main/assets/emoji/0_802.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_803.png b/TMessagesProj/src/main/assets/emoji/0_803.png index 8b301f5fde..6a16ed8fca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_803.png and b/TMessagesProj/src/main/assets/emoji/0_803.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_804.png b/TMessagesProj/src/main/assets/emoji/0_804.png index 5a4fc51fce..60f5687e5a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_804.png and b/TMessagesProj/src/main/assets/emoji/0_804.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_805.png b/TMessagesProj/src/main/assets/emoji/0_805.png index 87c703d727..95c0959b9f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_805.png and b/TMessagesProj/src/main/assets/emoji/0_805.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_806.png b/TMessagesProj/src/main/assets/emoji/0_806.png index 336d862f80..20ed1de661 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_806.png and b/TMessagesProj/src/main/assets/emoji/0_806.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_807.png b/TMessagesProj/src/main/assets/emoji/0_807.png index d01e2a07e5..0c4533c999 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_807.png and b/TMessagesProj/src/main/assets/emoji/0_807.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_808.png b/TMessagesProj/src/main/assets/emoji/0_808.png index 7647150502..f69642320c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_808.png and b/TMessagesProj/src/main/assets/emoji/0_808.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_809.png b/TMessagesProj/src/main/assets/emoji/0_809.png index 2c5574638e..d17a383caf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_809.png and b/TMessagesProj/src/main/assets/emoji/0_809.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_81.png b/TMessagesProj/src/main/assets/emoji/0_81.png index d0aa0d9db1..95e1b65c39 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_81.png and b/TMessagesProj/src/main/assets/emoji/0_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_810.png b/TMessagesProj/src/main/assets/emoji/0_810.png index 55c22e34e3..81fbd000c1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_810.png and b/TMessagesProj/src/main/assets/emoji/0_810.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_811.png b/TMessagesProj/src/main/assets/emoji/0_811.png index 173813a126..4e67fa2053 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_811.png and b/TMessagesProj/src/main/assets/emoji/0_811.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_812.png b/TMessagesProj/src/main/assets/emoji/0_812.png index a4d85a7f05..c4fc98205c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_812.png and b/TMessagesProj/src/main/assets/emoji/0_812.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_813.png b/TMessagesProj/src/main/assets/emoji/0_813.png index 1528bee464..5545614b9a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_813.png and b/TMessagesProj/src/main/assets/emoji/0_813.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_814.png b/TMessagesProj/src/main/assets/emoji/0_814.png index 260ed8cca1..5f30823d2a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_814.png and b/TMessagesProj/src/main/assets/emoji/0_814.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_815.png b/TMessagesProj/src/main/assets/emoji/0_815.png index 47e689ac71..983e20c366 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_815.png and b/TMessagesProj/src/main/assets/emoji/0_815.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_816.png b/TMessagesProj/src/main/assets/emoji/0_816.png index d9ef358df2..d9616307ff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_816.png and b/TMessagesProj/src/main/assets/emoji/0_816.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_817.png b/TMessagesProj/src/main/assets/emoji/0_817.png index 5ca4b65fed..eb58865861 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_817.png and b/TMessagesProj/src/main/assets/emoji/0_817.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_818.png b/TMessagesProj/src/main/assets/emoji/0_818.png index b2bce64bc5..bab4f39de0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_818.png and b/TMessagesProj/src/main/assets/emoji/0_818.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_819.png b/TMessagesProj/src/main/assets/emoji/0_819.png index c365d1fa02..21263ff78d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_819.png and b/TMessagesProj/src/main/assets/emoji/0_819.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_82.png b/TMessagesProj/src/main/assets/emoji/0_82.png index 825987c2b7..f4c64e135d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_82.png and b/TMessagesProj/src/main/assets/emoji/0_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_820.png b/TMessagesProj/src/main/assets/emoji/0_820.png index b4ce2fe173..a57648c1b9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_820.png and b/TMessagesProj/src/main/assets/emoji/0_820.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_821.png b/TMessagesProj/src/main/assets/emoji/0_821.png index 2c41e61b66..b85e3a2526 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_821.png and b/TMessagesProj/src/main/assets/emoji/0_821.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_822.png b/TMessagesProj/src/main/assets/emoji/0_822.png index 6ff8c49156..974fe27902 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_822.png and b/TMessagesProj/src/main/assets/emoji/0_822.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_823.png b/TMessagesProj/src/main/assets/emoji/0_823.png index cca07b4609..3d1fb193dc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_823.png and b/TMessagesProj/src/main/assets/emoji/0_823.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_824.png b/TMessagesProj/src/main/assets/emoji/0_824.png index 396ee576c1..15b590ae95 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_824.png and b/TMessagesProj/src/main/assets/emoji/0_824.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_825.png b/TMessagesProj/src/main/assets/emoji/0_825.png index 68be65184d..87d652f222 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_825.png and b/TMessagesProj/src/main/assets/emoji/0_825.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_826.png b/TMessagesProj/src/main/assets/emoji/0_826.png index 3968f456d9..ed8ceb159c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_826.png and b/TMessagesProj/src/main/assets/emoji/0_826.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_827.png b/TMessagesProj/src/main/assets/emoji/0_827.png index 60e4ddc412..bae0deae84 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_827.png and b/TMessagesProj/src/main/assets/emoji/0_827.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_828.png b/TMessagesProj/src/main/assets/emoji/0_828.png index 47db129c8f..7a953bd218 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_828.png and b/TMessagesProj/src/main/assets/emoji/0_828.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_829.png b/TMessagesProj/src/main/assets/emoji/0_829.png index 8f26acf2ae..caaa2bdcc1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_829.png and b/TMessagesProj/src/main/assets/emoji/0_829.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_83.png b/TMessagesProj/src/main/assets/emoji/0_83.png index d4eef2db5d..8135cf0984 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_83.png and b/TMessagesProj/src/main/assets/emoji/0_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_830.png b/TMessagesProj/src/main/assets/emoji/0_830.png index c5da98fe75..a8cf5417fe 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_830.png and b/TMessagesProj/src/main/assets/emoji/0_830.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_831.png b/TMessagesProj/src/main/assets/emoji/0_831.png index 8c759f0ffb..6fb3190fdc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_831.png and b/TMessagesProj/src/main/assets/emoji/0_831.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_832.png b/TMessagesProj/src/main/assets/emoji/0_832.png index b9977d42fb..972ee0e618 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_832.png and b/TMessagesProj/src/main/assets/emoji/0_832.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_833.png b/TMessagesProj/src/main/assets/emoji/0_833.png index f75713cbb4..fb1afc8053 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_833.png and b/TMessagesProj/src/main/assets/emoji/0_833.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_834.png b/TMessagesProj/src/main/assets/emoji/0_834.png index 583d4ff2fb..0bef4c935e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_834.png and b/TMessagesProj/src/main/assets/emoji/0_834.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_835.png b/TMessagesProj/src/main/assets/emoji/0_835.png index a9c0627ccd..ae805732e2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_835.png and b/TMessagesProj/src/main/assets/emoji/0_835.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_836.png b/TMessagesProj/src/main/assets/emoji/0_836.png index 42806170ae..8e14d179f3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_836.png and b/TMessagesProj/src/main/assets/emoji/0_836.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_837.png b/TMessagesProj/src/main/assets/emoji/0_837.png index 1d65aedd7e..f90604e903 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_837.png and b/TMessagesProj/src/main/assets/emoji/0_837.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_838.png b/TMessagesProj/src/main/assets/emoji/0_838.png index 18b0e4dbed..832809b108 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_838.png and b/TMessagesProj/src/main/assets/emoji/0_838.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_839.png b/TMessagesProj/src/main/assets/emoji/0_839.png index f4ebe495d1..a78defabf2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_839.png and b/TMessagesProj/src/main/assets/emoji/0_839.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_84.png b/TMessagesProj/src/main/assets/emoji/0_84.png index 248e2e40f0..d804dcfc4f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_84.png and b/TMessagesProj/src/main/assets/emoji/0_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_840.png b/TMessagesProj/src/main/assets/emoji/0_840.png index 55e28819a8..654f7882b3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_840.png and b/TMessagesProj/src/main/assets/emoji/0_840.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_841.png b/TMessagesProj/src/main/assets/emoji/0_841.png index 03ea4ff370..fde980eb6d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_841.png and b/TMessagesProj/src/main/assets/emoji/0_841.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_842.png b/TMessagesProj/src/main/assets/emoji/0_842.png index 46b3501b55..ea9149a800 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_842.png and b/TMessagesProj/src/main/assets/emoji/0_842.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_843.png b/TMessagesProj/src/main/assets/emoji/0_843.png index 935099e1a3..334ae7e09e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_843.png and b/TMessagesProj/src/main/assets/emoji/0_843.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_844.png b/TMessagesProj/src/main/assets/emoji/0_844.png index fec60ea97b..5c36eec5c9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_844.png and b/TMessagesProj/src/main/assets/emoji/0_844.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_845.png b/TMessagesProj/src/main/assets/emoji/0_845.png index c317647b25..5351f419e1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_845.png and b/TMessagesProj/src/main/assets/emoji/0_845.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_846.png b/TMessagesProj/src/main/assets/emoji/0_846.png index 4d60eb5690..debf5b5e37 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_846.png and b/TMessagesProj/src/main/assets/emoji/0_846.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_847.png b/TMessagesProj/src/main/assets/emoji/0_847.png index c0ef9eaed2..b3732df305 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_847.png and b/TMessagesProj/src/main/assets/emoji/0_847.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_848.png b/TMessagesProj/src/main/assets/emoji/0_848.png index bcb0854319..00783f0f0a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_848.png and b/TMessagesProj/src/main/assets/emoji/0_848.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_849.png b/TMessagesProj/src/main/assets/emoji/0_849.png index 9c464e775a..f1a192e5bb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_849.png and b/TMessagesProj/src/main/assets/emoji/0_849.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_85.png b/TMessagesProj/src/main/assets/emoji/0_85.png index e8970ec479..2eaeca944b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_85.png and b/TMessagesProj/src/main/assets/emoji/0_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_850.png b/TMessagesProj/src/main/assets/emoji/0_850.png index facd7d65c2..68ee1c6f69 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_850.png and b/TMessagesProj/src/main/assets/emoji/0_850.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_851.png b/TMessagesProj/src/main/assets/emoji/0_851.png index 758bd9410c..d547598fe0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_851.png and b/TMessagesProj/src/main/assets/emoji/0_851.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_852.png b/TMessagesProj/src/main/assets/emoji/0_852.png index 5b8367a373..3ac3849d2d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_852.png and b/TMessagesProj/src/main/assets/emoji/0_852.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_853.png b/TMessagesProj/src/main/assets/emoji/0_853.png index d420e23ed0..051b47d9c7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_853.png and b/TMessagesProj/src/main/assets/emoji/0_853.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_854.png b/TMessagesProj/src/main/assets/emoji/0_854.png index eb0aaa9d50..0d4d6a857d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_854.png and b/TMessagesProj/src/main/assets/emoji/0_854.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_855.png b/TMessagesProj/src/main/assets/emoji/0_855.png index 9503235813..241669fa55 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_855.png and b/TMessagesProj/src/main/assets/emoji/0_855.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_856.png b/TMessagesProj/src/main/assets/emoji/0_856.png index cd9979b89d..af2f31a4df 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_856.png and b/TMessagesProj/src/main/assets/emoji/0_856.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_857.png b/TMessagesProj/src/main/assets/emoji/0_857.png index 699921c5af..82f586a688 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_857.png and b/TMessagesProj/src/main/assets/emoji/0_857.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_858.png b/TMessagesProj/src/main/assets/emoji/0_858.png index 9592dbf329..4093dcf54b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_858.png and b/TMessagesProj/src/main/assets/emoji/0_858.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_859.png b/TMessagesProj/src/main/assets/emoji/0_859.png index 68fa80d92e..14896b3767 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_859.png and b/TMessagesProj/src/main/assets/emoji/0_859.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_86.png b/TMessagesProj/src/main/assets/emoji/0_86.png index 0bef327d7c..fb6dd977e4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_86.png and b/TMessagesProj/src/main/assets/emoji/0_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_860.png b/TMessagesProj/src/main/assets/emoji/0_860.png index 3e41b541cd..1c67466416 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_860.png and b/TMessagesProj/src/main/assets/emoji/0_860.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_861.png b/TMessagesProj/src/main/assets/emoji/0_861.png index 0811e658c3..d487b3d65c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_861.png and b/TMessagesProj/src/main/assets/emoji/0_861.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_862.png b/TMessagesProj/src/main/assets/emoji/0_862.png index fdd45cac43..81fab0557f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_862.png and b/TMessagesProj/src/main/assets/emoji/0_862.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_863.png b/TMessagesProj/src/main/assets/emoji/0_863.png index 3b73fa2103..e2c789f143 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_863.png and b/TMessagesProj/src/main/assets/emoji/0_863.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_864.png b/TMessagesProj/src/main/assets/emoji/0_864.png index 572ed9af71..f40d73096b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_864.png and b/TMessagesProj/src/main/assets/emoji/0_864.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_865.png b/TMessagesProj/src/main/assets/emoji/0_865.png index 56e51d49cc..b37408a3a6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_865.png and b/TMessagesProj/src/main/assets/emoji/0_865.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_866.png b/TMessagesProj/src/main/assets/emoji/0_866.png index 29fbb1b858..f62cc8c62d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_866.png and b/TMessagesProj/src/main/assets/emoji/0_866.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_867.png b/TMessagesProj/src/main/assets/emoji/0_867.png index eb32818924..d30370e9bb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_867.png and b/TMessagesProj/src/main/assets/emoji/0_867.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_868.png b/TMessagesProj/src/main/assets/emoji/0_868.png index 9ddfa3192f..ce322c0c4e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_868.png and b/TMessagesProj/src/main/assets/emoji/0_868.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_869.png b/TMessagesProj/src/main/assets/emoji/0_869.png index a45e22b83c..bbfab7141a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_869.png and b/TMessagesProj/src/main/assets/emoji/0_869.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_87.png b/TMessagesProj/src/main/assets/emoji/0_87.png index ced3b492bd..84b8eded5b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_87.png and b/TMessagesProj/src/main/assets/emoji/0_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_870.png b/TMessagesProj/src/main/assets/emoji/0_870.png index d20edd6eed..022693adbd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_870.png and b/TMessagesProj/src/main/assets/emoji/0_870.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_871.png b/TMessagesProj/src/main/assets/emoji/0_871.png index 5c7efaea77..d5dd8551c1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_871.png and b/TMessagesProj/src/main/assets/emoji/0_871.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_872.png b/TMessagesProj/src/main/assets/emoji/0_872.png index 4606b20f5c..84ed918a27 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_872.png and b/TMessagesProj/src/main/assets/emoji/0_872.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_873.png b/TMessagesProj/src/main/assets/emoji/0_873.png index a25e640d9d..14e67fe954 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_873.png and b/TMessagesProj/src/main/assets/emoji/0_873.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_874.png b/TMessagesProj/src/main/assets/emoji/0_874.png index 8a0fda05d4..69b49f4959 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_874.png and b/TMessagesProj/src/main/assets/emoji/0_874.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_875.png b/TMessagesProj/src/main/assets/emoji/0_875.png index 58b198dd3c..0013669257 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_875.png and b/TMessagesProj/src/main/assets/emoji/0_875.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_876.png b/TMessagesProj/src/main/assets/emoji/0_876.png index 2e8c077375..4c2f08e928 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_876.png and b/TMessagesProj/src/main/assets/emoji/0_876.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_877.png b/TMessagesProj/src/main/assets/emoji/0_877.png index 15c2eda952..d22a17d392 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_877.png and b/TMessagesProj/src/main/assets/emoji/0_877.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_878.png b/TMessagesProj/src/main/assets/emoji/0_878.png index 5f2ec4760d..bb2413a73a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_878.png and b/TMessagesProj/src/main/assets/emoji/0_878.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_879.png b/TMessagesProj/src/main/assets/emoji/0_879.png index 303fa8ceec..5cfc4e0dca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_879.png and b/TMessagesProj/src/main/assets/emoji/0_879.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_88.png b/TMessagesProj/src/main/assets/emoji/0_88.png index 82f13d517a..cbf9aef6e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_88.png and b/TMessagesProj/src/main/assets/emoji/0_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_880.png b/TMessagesProj/src/main/assets/emoji/0_880.png index 1e44617316..cd3b5078ae 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_880.png and b/TMessagesProj/src/main/assets/emoji/0_880.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_881.png b/TMessagesProj/src/main/assets/emoji/0_881.png index a6bdf4e485..37f505a603 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_881.png and b/TMessagesProj/src/main/assets/emoji/0_881.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_882.png b/TMessagesProj/src/main/assets/emoji/0_882.png index 54dc2cf74e..c1c0bae945 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_882.png and b/TMessagesProj/src/main/assets/emoji/0_882.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_883.png b/TMessagesProj/src/main/assets/emoji/0_883.png index 6012fcda80..27fe3fdd2f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_883.png and b/TMessagesProj/src/main/assets/emoji/0_883.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_884.png b/TMessagesProj/src/main/assets/emoji/0_884.png index ea9bab1773..d4b99c11ca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_884.png and b/TMessagesProj/src/main/assets/emoji/0_884.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_885.png b/TMessagesProj/src/main/assets/emoji/0_885.png index 6ff236f6b1..0af558975b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_885.png and b/TMessagesProj/src/main/assets/emoji/0_885.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_886.png b/TMessagesProj/src/main/assets/emoji/0_886.png index b56df9cc76..b0e6a7a221 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_886.png and b/TMessagesProj/src/main/assets/emoji/0_886.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_887.png b/TMessagesProj/src/main/assets/emoji/0_887.png index e7d2236fc8..38159feb25 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_887.png and b/TMessagesProj/src/main/assets/emoji/0_887.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_888.png b/TMessagesProj/src/main/assets/emoji/0_888.png index b0ec7d60ab..88c84fa2d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_888.png and b/TMessagesProj/src/main/assets/emoji/0_888.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_889.png b/TMessagesProj/src/main/assets/emoji/0_889.png index 1aaf722062..f55ef15843 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_889.png and b/TMessagesProj/src/main/assets/emoji/0_889.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_89.png b/TMessagesProj/src/main/assets/emoji/0_89.png index 8308c7ba0f..f6df1ba0f6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_89.png and b/TMessagesProj/src/main/assets/emoji/0_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_890.png b/TMessagesProj/src/main/assets/emoji/0_890.png index 2a1a90a9b2..88fa751a90 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_890.png and b/TMessagesProj/src/main/assets/emoji/0_890.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_891.png b/TMessagesProj/src/main/assets/emoji/0_891.png index c18050ae7b..58bcf19a31 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_891.png and b/TMessagesProj/src/main/assets/emoji/0_891.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_892.png b/TMessagesProj/src/main/assets/emoji/0_892.png index cd3911ebcd..d58b9712cf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_892.png and b/TMessagesProj/src/main/assets/emoji/0_892.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_893.png b/TMessagesProj/src/main/assets/emoji/0_893.png index ad437ce75e..684b58106b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_893.png and b/TMessagesProj/src/main/assets/emoji/0_893.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_894.png b/TMessagesProj/src/main/assets/emoji/0_894.png index e9affdb45b..ea710168e0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_894.png and b/TMessagesProj/src/main/assets/emoji/0_894.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_895.png b/TMessagesProj/src/main/assets/emoji/0_895.png index c81dfe15d2..98b04cd7c1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_895.png and b/TMessagesProj/src/main/assets/emoji/0_895.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_896.png b/TMessagesProj/src/main/assets/emoji/0_896.png index fde448be3c..068f7121b2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_896.png and b/TMessagesProj/src/main/assets/emoji/0_896.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_897.png b/TMessagesProj/src/main/assets/emoji/0_897.png index 56f2c96e28..ddfd93806f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_897.png and b/TMessagesProj/src/main/assets/emoji/0_897.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_898.png b/TMessagesProj/src/main/assets/emoji/0_898.png index 0cec1e1c69..735c500b5a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_898.png and b/TMessagesProj/src/main/assets/emoji/0_898.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_899.png b/TMessagesProj/src/main/assets/emoji/0_899.png index 0aaf7af069..2eb07e4a8b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_899.png and b/TMessagesProj/src/main/assets/emoji/0_899.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_9.png b/TMessagesProj/src/main/assets/emoji/0_9.png index a599ec0738..ca0f3dee04 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_9.png and b/TMessagesProj/src/main/assets/emoji/0_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_90.png b/TMessagesProj/src/main/assets/emoji/0_90.png index e6a8aebe50..ee73400b36 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_90.png and b/TMessagesProj/src/main/assets/emoji/0_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_900.png b/TMessagesProj/src/main/assets/emoji/0_900.png index ecb185a12a..d664cb88df 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_900.png and b/TMessagesProj/src/main/assets/emoji/0_900.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_901.png b/TMessagesProj/src/main/assets/emoji/0_901.png index a77eb1a3da..84b0d10fc3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_901.png and b/TMessagesProj/src/main/assets/emoji/0_901.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_902.png b/TMessagesProj/src/main/assets/emoji/0_902.png index 9183f9a28b..6c9e40e9cc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_902.png and b/TMessagesProj/src/main/assets/emoji/0_902.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_903.png b/TMessagesProj/src/main/assets/emoji/0_903.png index 4e0508010b..824019db53 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_903.png and b/TMessagesProj/src/main/assets/emoji/0_903.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_904.png b/TMessagesProj/src/main/assets/emoji/0_904.png index fcc41520a8..90d6682ee5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_904.png and b/TMessagesProj/src/main/assets/emoji/0_904.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_905.png b/TMessagesProj/src/main/assets/emoji/0_905.png index 3c09fa052a..fa2e10f506 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_905.png and b/TMessagesProj/src/main/assets/emoji/0_905.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_906.png b/TMessagesProj/src/main/assets/emoji/0_906.png index d60833b4a1..fcf3d514d2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_906.png and b/TMessagesProj/src/main/assets/emoji/0_906.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_907.png b/TMessagesProj/src/main/assets/emoji/0_907.png index e8d0ea4093..75cbdc5626 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_907.png and b/TMessagesProj/src/main/assets/emoji/0_907.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_908.png b/TMessagesProj/src/main/assets/emoji/0_908.png index 7e975a323b..7af71ef2d1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_908.png and b/TMessagesProj/src/main/assets/emoji/0_908.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_909.png b/TMessagesProj/src/main/assets/emoji/0_909.png index 52843e4ac7..5b92298680 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_909.png and b/TMessagesProj/src/main/assets/emoji/0_909.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_91.png b/TMessagesProj/src/main/assets/emoji/0_91.png index 868b90ca47..51cb4efa6e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_91.png and b/TMessagesProj/src/main/assets/emoji/0_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_910.png b/TMessagesProj/src/main/assets/emoji/0_910.png index 97c17162e4..c7c5718092 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_910.png and b/TMessagesProj/src/main/assets/emoji/0_910.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_911.png b/TMessagesProj/src/main/assets/emoji/0_911.png index bef67e1d9e..4151f83b99 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_911.png and b/TMessagesProj/src/main/assets/emoji/0_911.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_912.png b/TMessagesProj/src/main/assets/emoji/0_912.png index 2f5e168975..ca7ac22659 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_912.png and b/TMessagesProj/src/main/assets/emoji/0_912.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_913.png b/TMessagesProj/src/main/assets/emoji/0_913.png index 21f6a19565..5a5db46e9d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_913.png and b/TMessagesProj/src/main/assets/emoji/0_913.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_914.png b/TMessagesProj/src/main/assets/emoji/0_914.png index 2da882d1d4..04b579f497 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_914.png and b/TMessagesProj/src/main/assets/emoji/0_914.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_915.png b/TMessagesProj/src/main/assets/emoji/0_915.png index 0008399a28..36fc1497fe 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_915.png and b/TMessagesProj/src/main/assets/emoji/0_915.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_916.png b/TMessagesProj/src/main/assets/emoji/0_916.png index ec5cee1463..a75a39a994 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_916.png and b/TMessagesProj/src/main/assets/emoji/0_916.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_917.png b/TMessagesProj/src/main/assets/emoji/0_917.png index 8bf9d1a61a..a68b6d554b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_917.png and b/TMessagesProj/src/main/assets/emoji/0_917.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_918.png b/TMessagesProj/src/main/assets/emoji/0_918.png index 61b709e537..a2ca707713 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_918.png and b/TMessagesProj/src/main/assets/emoji/0_918.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_919.png b/TMessagesProj/src/main/assets/emoji/0_919.png index 6d8fb59f10..e357919beb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_919.png and b/TMessagesProj/src/main/assets/emoji/0_919.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_92.png b/TMessagesProj/src/main/assets/emoji/0_92.png index 8822f4e540..72edfdb999 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_92.png and b/TMessagesProj/src/main/assets/emoji/0_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_920.png b/TMessagesProj/src/main/assets/emoji/0_920.png index 006dd8c466..10a52f0163 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_920.png and b/TMessagesProj/src/main/assets/emoji/0_920.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_921.png b/TMessagesProj/src/main/assets/emoji/0_921.png index 7f0f3fb2ce..7c52e24565 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_921.png and b/TMessagesProj/src/main/assets/emoji/0_921.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_922.png b/TMessagesProj/src/main/assets/emoji/0_922.png index a58ebecd85..2b3d839153 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_922.png and b/TMessagesProj/src/main/assets/emoji/0_922.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_923.png b/TMessagesProj/src/main/assets/emoji/0_923.png index 398e76c66b..da5fcf72d8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_923.png and b/TMessagesProj/src/main/assets/emoji/0_923.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_924.png b/TMessagesProj/src/main/assets/emoji/0_924.png index b84cdfb535..ad02c83a9f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_924.png and b/TMessagesProj/src/main/assets/emoji/0_924.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_925.png b/TMessagesProj/src/main/assets/emoji/0_925.png index 3e4ff13b72..0ea95eaa0e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_925.png and b/TMessagesProj/src/main/assets/emoji/0_925.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_926.png b/TMessagesProj/src/main/assets/emoji/0_926.png index 5bad9537d5..b2d6bf502a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_926.png and b/TMessagesProj/src/main/assets/emoji/0_926.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_927.png b/TMessagesProj/src/main/assets/emoji/0_927.png index dfb4f35c4d..084c1c3531 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_927.png and b/TMessagesProj/src/main/assets/emoji/0_927.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_928.png b/TMessagesProj/src/main/assets/emoji/0_928.png index d8f07a3c42..56f9e49d0f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_928.png and b/TMessagesProj/src/main/assets/emoji/0_928.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_929.png b/TMessagesProj/src/main/assets/emoji/0_929.png index 17200be8aa..629aa99463 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_929.png and b/TMessagesProj/src/main/assets/emoji/0_929.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_93.png b/TMessagesProj/src/main/assets/emoji/0_93.png index d4c76178f1..61e0518117 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_93.png and b/TMessagesProj/src/main/assets/emoji/0_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_930.png b/TMessagesProj/src/main/assets/emoji/0_930.png index a29ad8a15f..303c9e2912 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_930.png and b/TMessagesProj/src/main/assets/emoji/0_930.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_931.png b/TMessagesProj/src/main/assets/emoji/0_931.png index 84fb677c37..e6810ccb42 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_931.png and b/TMessagesProj/src/main/assets/emoji/0_931.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_932.png b/TMessagesProj/src/main/assets/emoji/0_932.png index ad0e9b1d0c..80b3cf6e1a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_932.png and b/TMessagesProj/src/main/assets/emoji/0_932.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_933.png b/TMessagesProj/src/main/assets/emoji/0_933.png index a7a42d96e6..c71f687cb7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_933.png and b/TMessagesProj/src/main/assets/emoji/0_933.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_934.png b/TMessagesProj/src/main/assets/emoji/0_934.png index 07cfd70dae..2b3cda8538 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_934.png and b/TMessagesProj/src/main/assets/emoji/0_934.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_935.png b/TMessagesProj/src/main/assets/emoji/0_935.png index 75dc81b6ca..2ae31cc0ee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_935.png and b/TMessagesProj/src/main/assets/emoji/0_935.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_936.png b/TMessagesProj/src/main/assets/emoji/0_936.png index b534087803..581c2c22ea 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_936.png and b/TMessagesProj/src/main/assets/emoji/0_936.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_937.png b/TMessagesProj/src/main/assets/emoji/0_937.png index ef8fba95be..c93ac86a7b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_937.png and b/TMessagesProj/src/main/assets/emoji/0_937.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_938.png b/TMessagesProj/src/main/assets/emoji/0_938.png index 2bcf809acb..eb39beb8a9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_938.png and b/TMessagesProj/src/main/assets/emoji/0_938.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_939.png b/TMessagesProj/src/main/assets/emoji/0_939.png index d1777f1c20..f18256a317 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_939.png and b/TMessagesProj/src/main/assets/emoji/0_939.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_94.png b/TMessagesProj/src/main/assets/emoji/0_94.png index d5337fee48..97ff5ee56a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_94.png and b/TMessagesProj/src/main/assets/emoji/0_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_940.png b/TMessagesProj/src/main/assets/emoji/0_940.png index 7def7684f8..e0a1501992 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_940.png and b/TMessagesProj/src/main/assets/emoji/0_940.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_941.png b/TMessagesProj/src/main/assets/emoji/0_941.png index 4c5c89e2a5..ca0b3d4736 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_941.png and b/TMessagesProj/src/main/assets/emoji/0_941.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_942.png b/TMessagesProj/src/main/assets/emoji/0_942.png index 79fdced1ae..3553fcd0d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_942.png and b/TMessagesProj/src/main/assets/emoji/0_942.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_943.png b/TMessagesProj/src/main/assets/emoji/0_943.png index 2e3eae9d7d..54a280d85e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_943.png and b/TMessagesProj/src/main/assets/emoji/0_943.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_944.png b/TMessagesProj/src/main/assets/emoji/0_944.png index 65028176ef..7a2e783810 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_944.png and b/TMessagesProj/src/main/assets/emoji/0_944.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_945.png b/TMessagesProj/src/main/assets/emoji/0_945.png index e6e8ff1014..e4fb2fd620 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_945.png and b/TMessagesProj/src/main/assets/emoji/0_945.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_946.png b/TMessagesProj/src/main/assets/emoji/0_946.png index 06d87dc676..ec8407204a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_946.png and b/TMessagesProj/src/main/assets/emoji/0_946.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_947.png b/TMessagesProj/src/main/assets/emoji/0_947.png index 74edff61d1..2264a4dac9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_947.png and b/TMessagesProj/src/main/assets/emoji/0_947.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_948.png b/TMessagesProj/src/main/assets/emoji/0_948.png index 239ce76971..ed1a884aa4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_948.png and b/TMessagesProj/src/main/assets/emoji/0_948.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_949.png b/TMessagesProj/src/main/assets/emoji/0_949.png index bd488be2ac..0780a52ecb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_949.png and b/TMessagesProj/src/main/assets/emoji/0_949.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_95.png b/TMessagesProj/src/main/assets/emoji/0_95.png index 3ac9926fb4..2236964481 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_95.png and b/TMessagesProj/src/main/assets/emoji/0_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_950.png b/TMessagesProj/src/main/assets/emoji/0_950.png index edf2f7c9d9..123574b65a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_950.png and b/TMessagesProj/src/main/assets/emoji/0_950.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_951.png b/TMessagesProj/src/main/assets/emoji/0_951.png index 8e906aa978..080db0813a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_951.png and b/TMessagesProj/src/main/assets/emoji/0_951.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_952.png b/TMessagesProj/src/main/assets/emoji/0_952.png index c5aff46e3c..c8f6cbb490 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_952.png and b/TMessagesProj/src/main/assets/emoji/0_952.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_953.png b/TMessagesProj/src/main/assets/emoji/0_953.png index efa1d48ece..7e1f9b4aff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_953.png and b/TMessagesProj/src/main/assets/emoji/0_953.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_954.png b/TMessagesProj/src/main/assets/emoji/0_954.png index 5400886658..576a5409b6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_954.png and b/TMessagesProj/src/main/assets/emoji/0_954.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_955.png b/TMessagesProj/src/main/assets/emoji/0_955.png index b880daca7e..c72db0d035 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_955.png and b/TMessagesProj/src/main/assets/emoji/0_955.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_956.png b/TMessagesProj/src/main/assets/emoji/0_956.png index 98bb02c998..5c5955dd8b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_956.png and b/TMessagesProj/src/main/assets/emoji/0_956.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_957.png b/TMessagesProj/src/main/assets/emoji/0_957.png index 7dbe4010ed..059c501fcd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_957.png and b/TMessagesProj/src/main/assets/emoji/0_957.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_958.png b/TMessagesProj/src/main/assets/emoji/0_958.png index 32df268623..e02f61f561 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_958.png and b/TMessagesProj/src/main/assets/emoji/0_958.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_959.png b/TMessagesProj/src/main/assets/emoji/0_959.png index 67d45eff35..c3886e1ccf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_959.png and b/TMessagesProj/src/main/assets/emoji/0_959.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_96.png b/TMessagesProj/src/main/assets/emoji/0_96.png index 9b6bcbccf3..6872f4ac77 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_96.png and b/TMessagesProj/src/main/assets/emoji/0_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_960.png b/TMessagesProj/src/main/assets/emoji/0_960.png index 89ab63d209..7bbf241d70 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_960.png and b/TMessagesProj/src/main/assets/emoji/0_960.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_961.png b/TMessagesProj/src/main/assets/emoji/0_961.png index e4b241ac77..53853c133b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_961.png and b/TMessagesProj/src/main/assets/emoji/0_961.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_962.png b/TMessagesProj/src/main/assets/emoji/0_962.png index 5a6e203524..de5f6dc9f5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_962.png and b/TMessagesProj/src/main/assets/emoji/0_962.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_963.png b/TMessagesProj/src/main/assets/emoji/0_963.png index 052ff9dc16..ae107d07d9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_963.png and b/TMessagesProj/src/main/assets/emoji/0_963.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_964.png b/TMessagesProj/src/main/assets/emoji/0_964.png index f9d506db09..d87993d23a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_964.png and b/TMessagesProj/src/main/assets/emoji/0_964.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_965.png b/TMessagesProj/src/main/assets/emoji/0_965.png index 1e8b67130e..31e4fcf354 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_965.png and b/TMessagesProj/src/main/assets/emoji/0_965.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_966.png b/TMessagesProj/src/main/assets/emoji/0_966.png index 85e1681f9a..5a06737731 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_966.png and b/TMessagesProj/src/main/assets/emoji/0_966.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_967.png b/TMessagesProj/src/main/assets/emoji/0_967.png index 8de7334cad..621ff026ec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_967.png and b/TMessagesProj/src/main/assets/emoji/0_967.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_968.png b/TMessagesProj/src/main/assets/emoji/0_968.png index 953b0d1a23..5166894062 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_968.png and b/TMessagesProj/src/main/assets/emoji/0_968.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_969.png b/TMessagesProj/src/main/assets/emoji/0_969.png index ab0ba54033..a99d4df67a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_969.png and b/TMessagesProj/src/main/assets/emoji/0_969.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_97.png b/TMessagesProj/src/main/assets/emoji/0_97.png index ba56b208e9..15c23f712e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_97.png and b/TMessagesProj/src/main/assets/emoji/0_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_970.png b/TMessagesProj/src/main/assets/emoji/0_970.png index 70f131b7c6..b44175fa75 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_970.png and b/TMessagesProj/src/main/assets/emoji/0_970.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_971.png b/TMessagesProj/src/main/assets/emoji/0_971.png index b2b18e1635..2f1fa1e078 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_971.png and b/TMessagesProj/src/main/assets/emoji/0_971.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_972.png b/TMessagesProj/src/main/assets/emoji/0_972.png index 3201431b94..91d98125a2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_972.png and b/TMessagesProj/src/main/assets/emoji/0_972.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_973.png b/TMessagesProj/src/main/assets/emoji/0_973.png index e0beb78144..ccc3e24ede 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_973.png and b/TMessagesProj/src/main/assets/emoji/0_973.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_974.png b/TMessagesProj/src/main/assets/emoji/0_974.png index b6ff90abe2..d5c3fbd67d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_974.png and b/TMessagesProj/src/main/assets/emoji/0_974.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_975.png b/TMessagesProj/src/main/assets/emoji/0_975.png index 0052903615..4d59c79efa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_975.png and b/TMessagesProj/src/main/assets/emoji/0_975.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_976.png b/TMessagesProj/src/main/assets/emoji/0_976.png index 526d67a720..92eea78346 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_976.png and b/TMessagesProj/src/main/assets/emoji/0_976.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_977.png b/TMessagesProj/src/main/assets/emoji/0_977.png index 1e45994160..d854433592 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_977.png and b/TMessagesProj/src/main/assets/emoji/0_977.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_978.png b/TMessagesProj/src/main/assets/emoji/0_978.png index 232577d120..d158b170ed 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_978.png and b/TMessagesProj/src/main/assets/emoji/0_978.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_979.png b/TMessagesProj/src/main/assets/emoji/0_979.png index bfdb938c61..7915065f8d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_979.png and b/TMessagesProj/src/main/assets/emoji/0_979.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_98.png b/TMessagesProj/src/main/assets/emoji/0_98.png index 6949113af7..db9d19447b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_98.png and b/TMessagesProj/src/main/assets/emoji/0_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_980.png b/TMessagesProj/src/main/assets/emoji/0_980.png index 2927f8895b..b27c08d007 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_980.png and b/TMessagesProj/src/main/assets/emoji/0_980.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_981.png b/TMessagesProj/src/main/assets/emoji/0_981.png index fe599a16c0..7b6f694368 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_981.png and b/TMessagesProj/src/main/assets/emoji/0_981.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_982.png b/TMessagesProj/src/main/assets/emoji/0_982.png index d23164f027..77d4ca75f0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_982.png and b/TMessagesProj/src/main/assets/emoji/0_982.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_983.png b/TMessagesProj/src/main/assets/emoji/0_983.png index 9e74e79a48..317a676f4b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_983.png and b/TMessagesProj/src/main/assets/emoji/0_983.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_984.png b/TMessagesProj/src/main/assets/emoji/0_984.png index 8585d5ecf6..5feab32b7f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_984.png and b/TMessagesProj/src/main/assets/emoji/0_984.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_985.png b/TMessagesProj/src/main/assets/emoji/0_985.png index d89481c8aa..9588853b20 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_985.png and b/TMessagesProj/src/main/assets/emoji/0_985.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_986.png b/TMessagesProj/src/main/assets/emoji/0_986.png index d83c5883e4..034152a564 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_986.png and b/TMessagesProj/src/main/assets/emoji/0_986.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_987.png b/TMessagesProj/src/main/assets/emoji/0_987.png index 621e5fff6c..982b910c50 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_987.png and b/TMessagesProj/src/main/assets/emoji/0_987.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_988.png b/TMessagesProj/src/main/assets/emoji/0_988.png index 0ceca93096..9129b21695 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_988.png and b/TMessagesProj/src/main/assets/emoji/0_988.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_989.png b/TMessagesProj/src/main/assets/emoji/0_989.png index 1fdda6eaca..944fe36518 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_989.png and b/TMessagesProj/src/main/assets/emoji/0_989.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_99.png b/TMessagesProj/src/main/assets/emoji/0_99.png index 1fe30d11f0..9b78789594 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_99.png and b/TMessagesProj/src/main/assets/emoji/0_99.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_990.png b/TMessagesProj/src/main/assets/emoji/0_990.png index beab913617..c74b03805f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_990.png and b/TMessagesProj/src/main/assets/emoji/0_990.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_991.png b/TMessagesProj/src/main/assets/emoji/0_991.png index fc970f55bd..3e1eb861b0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_991.png and b/TMessagesProj/src/main/assets/emoji/0_991.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_992.png b/TMessagesProj/src/main/assets/emoji/0_992.png index 82befd039c..747148a023 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_992.png and b/TMessagesProj/src/main/assets/emoji/0_992.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_993.png b/TMessagesProj/src/main/assets/emoji/0_993.png index 6fe4e8d12a..8d999c419f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_993.png and b/TMessagesProj/src/main/assets/emoji/0_993.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_994.png b/TMessagesProj/src/main/assets/emoji/0_994.png index 3839c21e4b..dad49a7f2a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_994.png and b/TMessagesProj/src/main/assets/emoji/0_994.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_995.png b/TMessagesProj/src/main/assets/emoji/0_995.png index 5cbfad1c6e..fcf8931b89 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_995.png and b/TMessagesProj/src/main/assets/emoji/0_995.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_996.png b/TMessagesProj/src/main/assets/emoji/0_996.png index 4f02fe709f..7a10ec89b0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_996.png and b/TMessagesProj/src/main/assets/emoji/0_996.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_997.png b/TMessagesProj/src/main/assets/emoji/0_997.png index e5d71ae3e1..dec6fe4796 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_997.png and b/TMessagesProj/src/main/assets/emoji/0_997.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_998.png b/TMessagesProj/src/main/assets/emoji/0_998.png index 0eb806281f..e3b124bba8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_998.png and b/TMessagesProj/src/main/assets/emoji/0_998.png differ diff --git a/TMessagesProj/src/main/assets/emoji/0_999.png b/TMessagesProj/src/main/assets/emoji/0_999.png index 741ea257e3..49b5e42d82 100644 Binary files a/TMessagesProj/src/main/assets/emoji/0_999.png and b/TMessagesProj/src/main/assets/emoji/0_999.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_0.png b/TMessagesProj/src/main/assets/emoji/1_0.png index c711c45d16..d179a109b8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_0.png and b/TMessagesProj/src/main/assets/emoji/1_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_1.png b/TMessagesProj/src/main/assets/emoji/1_1.png index 688ecf2063..ca40fb72c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_1.png and b/TMessagesProj/src/main/assets/emoji/1_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_10.png b/TMessagesProj/src/main/assets/emoji/1_10.png index e665925753..f265df8103 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_10.png and b/TMessagesProj/src/main/assets/emoji/1_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_100.png b/TMessagesProj/src/main/assets/emoji/1_100.png index 8409453158..3c82b2a89f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_100.png and b/TMessagesProj/src/main/assets/emoji/1_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_101.png b/TMessagesProj/src/main/assets/emoji/1_101.png index 4afdafaff3..60bf6c23e1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_101.png and b/TMessagesProj/src/main/assets/emoji/1_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_102.png b/TMessagesProj/src/main/assets/emoji/1_102.png index f68dc6d87c..c98f8fcd77 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_102.png and b/TMessagesProj/src/main/assets/emoji/1_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_103.png b/TMessagesProj/src/main/assets/emoji/1_103.png index 75adb21a9f..64816c2f00 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_103.png and b/TMessagesProj/src/main/assets/emoji/1_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_104.png b/TMessagesProj/src/main/assets/emoji/1_104.png index 03f9d73abc..f78b5327c3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_104.png and b/TMessagesProj/src/main/assets/emoji/1_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_105.png b/TMessagesProj/src/main/assets/emoji/1_105.png index c344a3a65c..dbb08f785e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_105.png and b/TMessagesProj/src/main/assets/emoji/1_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_106.png b/TMessagesProj/src/main/assets/emoji/1_106.png index 6ac35d6a99..56c3b0457e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_106.png and b/TMessagesProj/src/main/assets/emoji/1_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_107.png b/TMessagesProj/src/main/assets/emoji/1_107.png index 1b54476d6a..129a6c26a2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_107.png and b/TMessagesProj/src/main/assets/emoji/1_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_108.png b/TMessagesProj/src/main/assets/emoji/1_108.png index 9f26a5416e..f4b78d9468 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_108.png and b/TMessagesProj/src/main/assets/emoji/1_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_109.png b/TMessagesProj/src/main/assets/emoji/1_109.png index c710299701..ee7f9946e5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_109.png and b/TMessagesProj/src/main/assets/emoji/1_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_11.png b/TMessagesProj/src/main/assets/emoji/1_11.png index ef44c376e0..a6351c6394 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_11.png and b/TMessagesProj/src/main/assets/emoji/1_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_110.png b/TMessagesProj/src/main/assets/emoji/1_110.png index 27d6e872ff..34b328a57b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_110.png and b/TMessagesProj/src/main/assets/emoji/1_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_111.png b/TMessagesProj/src/main/assets/emoji/1_111.png index c608342071..14771d1cd1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_111.png and b/TMessagesProj/src/main/assets/emoji/1_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_112.png b/TMessagesProj/src/main/assets/emoji/1_112.png index a785d5b4e2..cd354535f9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_112.png and b/TMessagesProj/src/main/assets/emoji/1_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_113.png b/TMessagesProj/src/main/assets/emoji/1_113.png index d5ce662cc9..14900504b7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_113.png and b/TMessagesProj/src/main/assets/emoji/1_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_114.png b/TMessagesProj/src/main/assets/emoji/1_114.png index ef1d04e318..8354c26862 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_114.png and b/TMessagesProj/src/main/assets/emoji/1_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_115.png b/TMessagesProj/src/main/assets/emoji/1_115.png index f6a1c5a1f0..eb62bb38f4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_115.png and b/TMessagesProj/src/main/assets/emoji/1_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_116.png b/TMessagesProj/src/main/assets/emoji/1_116.png index c0de88fc6b..f3d33628ac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_116.png and b/TMessagesProj/src/main/assets/emoji/1_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_117.png b/TMessagesProj/src/main/assets/emoji/1_117.png index 78884b6fa5..bfb783d9a1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_117.png and b/TMessagesProj/src/main/assets/emoji/1_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_118.png b/TMessagesProj/src/main/assets/emoji/1_118.png index aa7e0c3036..b0ac9386e5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_118.png and b/TMessagesProj/src/main/assets/emoji/1_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_119.png b/TMessagesProj/src/main/assets/emoji/1_119.png index 0c88efcda4..f9c7794e40 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_119.png and b/TMessagesProj/src/main/assets/emoji/1_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_12.png b/TMessagesProj/src/main/assets/emoji/1_12.png index 16f4078976..a8cd129ff6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_12.png and b/TMessagesProj/src/main/assets/emoji/1_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_120.png b/TMessagesProj/src/main/assets/emoji/1_120.png index 46fa4d12e2..6577e788aa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_120.png and b/TMessagesProj/src/main/assets/emoji/1_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_121.png b/TMessagesProj/src/main/assets/emoji/1_121.png index 22c6eae26c..730aaba19c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_121.png and b/TMessagesProj/src/main/assets/emoji/1_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_122.png b/TMessagesProj/src/main/assets/emoji/1_122.png index 06cfd3224b..decb2ea2c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_122.png and b/TMessagesProj/src/main/assets/emoji/1_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_123.png b/TMessagesProj/src/main/assets/emoji/1_123.png index c90e19fa32..3d9ef4142b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_123.png and b/TMessagesProj/src/main/assets/emoji/1_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_124.png b/TMessagesProj/src/main/assets/emoji/1_124.png index f27cd3b03a..47e2cf6fef 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_124.png and b/TMessagesProj/src/main/assets/emoji/1_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_125.png b/TMessagesProj/src/main/assets/emoji/1_125.png index cab0dc78df..9b74bf5e68 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_125.png and b/TMessagesProj/src/main/assets/emoji/1_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_126.png b/TMessagesProj/src/main/assets/emoji/1_126.png index eb323e08e2..90a485cfe2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_126.png and b/TMessagesProj/src/main/assets/emoji/1_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_127.png b/TMessagesProj/src/main/assets/emoji/1_127.png index a0a40b5a5a..d5556b3c0c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_127.png and b/TMessagesProj/src/main/assets/emoji/1_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_128.png b/TMessagesProj/src/main/assets/emoji/1_128.png index f9507335c3..fd2ccfef48 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_128.png and b/TMessagesProj/src/main/assets/emoji/1_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_129.png b/TMessagesProj/src/main/assets/emoji/1_129.png index 9ded554934..672108b086 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_129.png and b/TMessagesProj/src/main/assets/emoji/1_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_13.png b/TMessagesProj/src/main/assets/emoji/1_13.png index bf9b5761e0..a603a54b46 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_13.png and b/TMessagesProj/src/main/assets/emoji/1_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_130.png b/TMessagesProj/src/main/assets/emoji/1_130.png index a0e957118a..56dfa1376e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_130.png and b/TMessagesProj/src/main/assets/emoji/1_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_131.png b/TMessagesProj/src/main/assets/emoji/1_131.png index b6469b19ca..6762240a7d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_131.png and b/TMessagesProj/src/main/assets/emoji/1_131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_132.png b/TMessagesProj/src/main/assets/emoji/1_132.png index 566065784b..fba45ef5c6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_132.png and b/TMessagesProj/src/main/assets/emoji/1_132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_133.png b/TMessagesProj/src/main/assets/emoji/1_133.png index 80efb6907e..047d09d7c5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_133.png and b/TMessagesProj/src/main/assets/emoji/1_133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_134.png b/TMessagesProj/src/main/assets/emoji/1_134.png index 4fc5d3c0b9..90f87e9d56 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_134.png and b/TMessagesProj/src/main/assets/emoji/1_134.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_135.png b/TMessagesProj/src/main/assets/emoji/1_135.png index 09028b8a3d..c4d9b8df31 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_135.png and b/TMessagesProj/src/main/assets/emoji/1_135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_136.png b/TMessagesProj/src/main/assets/emoji/1_136.png index 731f6915ab..b0f03c0000 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_136.png and b/TMessagesProj/src/main/assets/emoji/1_136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_137.png b/TMessagesProj/src/main/assets/emoji/1_137.png index fca58e9ba5..40a0868998 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_137.png and b/TMessagesProj/src/main/assets/emoji/1_137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_138.png b/TMessagesProj/src/main/assets/emoji/1_138.png index dd28c209dc..b209952467 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_138.png and b/TMessagesProj/src/main/assets/emoji/1_138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_139.png b/TMessagesProj/src/main/assets/emoji/1_139.png index e1ed9359aa..de6929ceda 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_139.png and b/TMessagesProj/src/main/assets/emoji/1_139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_14.png b/TMessagesProj/src/main/assets/emoji/1_14.png index f8fffe762d..fe4448bcac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_14.png and b/TMessagesProj/src/main/assets/emoji/1_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_140.png b/TMessagesProj/src/main/assets/emoji/1_140.png index 47748374b0..502adb61a7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_140.png and b/TMessagesProj/src/main/assets/emoji/1_140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_141.png b/TMessagesProj/src/main/assets/emoji/1_141.png index 9eb0de9022..177485150f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_141.png and b/TMessagesProj/src/main/assets/emoji/1_141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_142.png b/TMessagesProj/src/main/assets/emoji/1_142.png index 60f2dede56..d191e998df 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_142.png and b/TMessagesProj/src/main/assets/emoji/1_142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_143.png b/TMessagesProj/src/main/assets/emoji/1_143.png index aa6d75b8c3..8402c7f58e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_143.png and b/TMessagesProj/src/main/assets/emoji/1_143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_144.png b/TMessagesProj/src/main/assets/emoji/1_144.png index 712139595d..2d93e576ec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_144.png and b/TMessagesProj/src/main/assets/emoji/1_144.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_145.png b/TMessagesProj/src/main/assets/emoji/1_145.png index d3c8249134..54f2dd4a36 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_145.png and b/TMessagesProj/src/main/assets/emoji/1_145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_146.png b/TMessagesProj/src/main/assets/emoji/1_146.png index 87d3ab1da5..dba29b1076 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_146.png and b/TMessagesProj/src/main/assets/emoji/1_146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_147.png b/TMessagesProj/src/main/assets/emoji/1_147.png index 956162c128..9846ee9395 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_147.png and b/TMessagesProj/src/main/assets/emoji/1_147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_148.png b/TMessagesProj/src/main/assets/emoji/1_148.png index e44bfb2a3c..fb440dedb9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_148.png and b/TMessagesProj/src/main/assets/emoji/1_148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_149.png b/TMessagesProj/src/main/assets/emoji/1_149.png index 74293a844a..89a43ca3f1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_149.png and b/TMessagesProj/src/main/assets/emoji/1_149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_15.png b/TMessagesProj/src/main/assets/emoji/1_15.png index ec34a28bd2..b51324e62e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_15.png and b/TMessagesProj/src/main/assets/emoji/1_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_150.png b/TMessagesProj/src/main/assets/emoji/1_150.png index ad18f6b6bb..bc4e2135c9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_150.png and b/TMessagesProj/src/main/assets/emoji/1_150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_151.png b/TMessagesProj/src/main/assets/emoji/1_151.png index 0d875745d3..1f9cd4e531 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_151.png and b/TMessagesProj/src/main/assets/emoji/1_151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_152.png b/TMessagesProj/src/main/assets/emoji/1_152.png index 5bbf709395..2f1404d078 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_152.png and b/TMessagesProj/src/main/assets/emoji/1_152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_153.png b/TMessagesProj/src/main/assets/emoji/1_153.png index 0db3d9bbf3..c77b1528fc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_153.png and b/TMessagesProj/src/main/assets/emoji/1_153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_154.png b/TMessagesProj/src/main/assets/emoji/1_154.png index 8a1be1b42d..11ed79d155 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_154.png and b/TMessagesProj/src/main/assets/emoji/1_154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_155.png b/TMessagesProj/src/main/assets/emoji/1_155.png index 2fe30ec806..3634ef2f26 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_155.png and b/TMessagesProj/src/main/assets/emoji/1_155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_156.png b/TMessagesProj/src/main/assets/emoji/1_156.png index 9b5dcb1110..b2ffdc2021 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_156.png and b/TMessagesProj/src/main/assets/emoji/1_156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_157.png b/TMessagesProj/src/main/assets/emoji/1_157.png index 0e11841e9b..a8a610b80a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_157.png and b/TMessagesProj/src/main/assets/emoji/1_157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_158.png b/TMessagesProj/src/main/assets/emoji/1_158.png index 16273bae86..25af13dc92 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_158.png and b/TMessagesProj/src/main/assets/emoji/1_158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_159.png b/TMessagesProj/src/main/assets/emoji/1_159.png index c9f604bb19..94ebc678ca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_159.png and b/TMessagesProj/src/main/assets/emoji/1_159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_16.png b/TMessagesProj/src/main/assets/emoji/1_16.png index 2a5673e4a7..199dfc55b8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_16.png and b/TMessagesProj/src/main/assets/emoji/1_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_160.png b/TMessagesProj/src/main/assets/emoji/1_160.png index 83a7d05fcb..b358350568 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_160.png and b/TMessagesProj/src/main/assets/emoji/1_160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_161.png b/TMessagesProj/src/main/assets/emoji/1_161.png index 0891e1b048..08967e1390 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_161.png and b/TMessagesProj/src/main/assets/emoji/1_161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_162.png b/TMessagesProj/src/main/assets/emoji/1_162.png index fd13bf7e1a..59fcb61d98 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_162.png and b/TMessagesProj/src/main/assets/emoji/1_162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_163.png b/TMessagesProj/src/main/assets/emoji/1_163.png index ec1750cc9e..df050a7601 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_163.png and b/TMessagesProj/src/main/assets/emoji/1_163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_164.png b/TMessagesProj/src/main/assets/emoji/1_164.png index f35509eceb..b31a42ade7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_164.png and b/TMessagesProj/src/main/assets/emoji/1_164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_165.png b/TMessagesProj/src/main/assets/emoji/1_165.png index 6f485c9899..65edae0828 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_165.png and b/TMessagesProj/src/main/assets/emoji/1_165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_166.png b/TMessagesProj/src/main/assets/emoji/1_166.png index 6ed18a05c7..a6e904e0cd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_166.png and b/TMessagesProj/src/main/assets/emoji/1_166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_167.png b/TMessagesProj/src/main/assets/emoji/1_167.png index 00e1002bc8..163ddbb30d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_167.png and b/TMessagesProj/src/main/assets/emoji/1_167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_168.png b/TMessagesProj/src/main/assets/emoji/1_168.png index fbf0feca1f..1950e8c4c9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_168.png and b/TMessagesProj/src/main/assets/emoji/1_168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_169.png b/TMessagesProj/src/main/assets/emoji/1_169.png index 2148ef1981..02149b01d3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_169.png and b/TMessagesProj/src/main/assets/emoji/1_169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_17.png b/TMessagesProj/src/main/assets/emoji/1_17.png index 2a3159abc2..f55f11c200 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_17.png and b/TMessagesProj/src/main/assets/emoji/1_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_170.png b/TMessagesProj/src/main/assets/emoji/1_170.png index 6a8e53af83..171363de11 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_170.png and b/TMessagesProj/src/main/assets/emoji/1_170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_171.png b/TMessagesProj/src/main/assets/emoji/1_171.png index 29ec5c484e..6259d36c81 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_171.png and b/TMessagesProj/src/main/assets/emoji/1_171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_172.png b/TMessagesProj/src/main/assets/emoji/1_172.png index 04bcf30ae5..75a972752c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_172.png and b/TMessagesProj/src/main/assets/emoji/1_172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_173.png b/TMessagesProj/src/main/assets/emoji/1_173.png index d0ac3ee297..d6b4996d1e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_173.png and b/TMessagesProj/src/main/assets/emoji/1_173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_174.png b/TMessagesProj/src/main/assets/emoji/1_174.png index e52a39bed5..560e1df487 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_174.png and b/TMessagesProj/src/main/assets/emoji/1_174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_175.png b/TMessagesProj/src/main/assets/emoji/1_175.png index 59dedfc7a9..8c0b49f0ba 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_175.png and b/TMessagesProj/src/main/assets/emoji/1_175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_176.png b/TMessagesProj/src/main/assets/emoji/1_176.png index 6ac0154ece..f6ab02a61d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_176.png and b/TMessagesProj/src/main/assets/emoji/1_176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_177.png b/TMessagesProj/src/main/assets/emoji/1_177.png index 08c8a5af70..795a943329 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_177.png and b/TMessagesProj/src/main/assets/emoji/1_177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_178.png b/TMessagesProj/src/main/assets/emoji/1_178.png index 29833e3931..fff48945dc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_178.png and b/TMessagesProj/src/main/assets/emoji/1_178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_179.png b/TMessagesProj/src/main/assets/emoji/1_179.png index 63ccd9a0f7..56a63d5f56 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_179.png and b/TMessagesProj/src/main/assets/emoji/1_179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_18.png b/TMessagesProj/src/main/assets/emoji/1_18.png index 1260a9ef24..382297c905 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_18.png and b/TMessagesProj/src/main/assets/emoji/1_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_180.png b/TMessagesProj/src/main/assets/emoji/1_180.png index 0e9e861726..5b629f5795 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_180.png and b/TMessagesProj/src/main/assets/emoji/1_180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_181.png b/TMessagesProj/src/main/assets/emoji/1_181.png index 94380e0f65..196f477ba0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_181.png and b/TMessagesProj/src/main/assets/emoji/1_181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_182.png b/TMessagesProj/src/main/assets/emoji/1_182.png index e2f0825180..930c375ec0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_182.png and b/TMessagesProj/src/main/assets/emoji/1_182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_183.png b/TMessagesProj/src/main/assets/emoji/1_183.png index 30eaca683a..be9d0cf693 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_183.png and b/TMessagesProj/src/main/assets/emoji/1_183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_184.png b/TMessagesProj/src/main/assets/emoji/1_184.png index 55507eb737..d6151092b3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_184.png and b/TMessagesProj/src/main/assets/emoji/1_184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_185.png b/TMessagesProj/src/main/assets/emoji/1_185.png index cd08f575a7..2c3fe78cbd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_185.png and b/TMessagesProj/src/main/assets/emoji/1_185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_186.png b/TMessagesProj/src/main/assets/emoji/1_186.png index ab06d1b3c5..e5c0eeb425 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_186.png and b/TMessagesProj/src/main/assets/emoji/1_186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_187.png b/TMessagesProj/src/main/assets/emoji/1_187.png index 5fe72aa179..e373cc4c5b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_187.png and b/TMessagesProj/src/main/assets/emoji/1_187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_188.png b/TMessagesProj/src/main/assets/emoji/1_188.png index a4017c2cc2..82ca6c9cb8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_188.png and b/TMessagesProj/src/main/assets/emoji/1_188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_189.png b/TMessagesProj/src/main/assets/emoji/1_189.png index fcc7713b44..8252ac77df 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_189.png and b/TMessagesProj/src/main/assets/emoji/1_189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_19.png b/TMessagesProj/src/main/assets/emoji/1_19.png index 4d1d3ba55a..288caa01c9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_19.png and b/TMessagesProj/src/main/assets/emoji/1_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_190.png b/TMessagesProj/src/main/assets/emoji/1_190.png index 1d79127341..10eb6efbc4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_190.png and b/TMessagesProj/src/main/assets/emoji/1_190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_191.png b/TMessagesProj/src/main/assets/emoji/1_191.png index 97aea5a25a..6e45aa2144 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_191.png and b/TMessagesProj/src/main/assets/emoji/1_191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_192.png b/TMessagesProj/src/main/assets/emoji/1_192.png index 25dca9d003..f6ab984ce6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_192.png and b/TMessagesProj/src/main/assets/emoji/1_192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_193.png b/TMessagesProj/src/main/assets/emoji/1_193.png index d2de806d9a..f8b6638fcc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_193.png and b/TMessagesProj/src/main/assets/emoji/1_193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_194.png b/TMessagesProj/src/main/assets/emoji/1_194.png index b6fc163f5a..8a1c9d8584 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_194.png and b/TMessagesProj/src/main/assets/emoji/1_194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_195.png b/TMessagesProj/src/main/assets/emoji/1_195.png index 701d28a1c0..3b05cccfee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_195.png and b/TMessagesProj/src/main/assets/emoji/1_195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_196.png b/TMessagesProj/src/main/assets/emoji/1_196.png index 53f901342e..ecb4847181 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_196.png and b/TMessagesProj/src/main/assets/emoji/1_196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_197.png b/TMessagesProj/src/main/assets/emoji/1_197.png index 12e0eac418..49c43906f0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_197.png and b/TMessagesProj/src/main/assets/emoji/1_197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_198.png b/TMessagesProj/src/main/assets/emoji/1_198.png index e27add41ae..1448754015 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_198.png and b/TMessagesProj/src/main/assets/emoji/1_198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_199.png b/TMessagesProj/src/main/assets/emoji/1_199.png index 4f7bf02a37..35352b0e94 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_199.png and b/TMessagesProj/src/main/assets/emoji/1_199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_2.png b/TMessagesProj/src/main/assets/emoji/1_2.png index 96f46f87b1..3cdd3f1ab4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_2.png and b/TMessagesProj/src/main/assets/emoji/1_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_20.png b/TMessagesProj/src/main/assets/emoji/1_20.png index 4e7ebcccd9..2ec2f79953 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_20.png and b/TMessagesProj/src/main/assets/emoji/1_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_200.png b/TMessagesProj/src/main/assets/emoji/1_200.png index 908d71e621..c6da655d25 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_200.png and b/TMessagesProj/src/main/assets/emoji/1_200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_201.png b/TMessagesProj/src/main/assets/emoji/1_201.png index 46c55de644..6cd2c2ba01 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_201.png and b/TMessagesProj/src/main/assets/emoji/1_201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_202.png b/TMessagesProj/src/main/assets/emoji/1_202.png index 839817fe55..e2473eab38 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_202.png and b/TMessagesProj/src/main/assets/emoji/1_202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_203.png b/TMessagesProj/src/main/assets/emoji/1_203.png index 559857e2cb..3c5a694248 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_203.png and b/TMessagesProj/src/main/assets/emoji/1_203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_204.png b/TMessagesProj/src/main/assets/emoji/1_204.png index ac6a5ab3fa..0e1d73053f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_204.png and b/TMessagesProj/src/main/assets/emoji/1_204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_205.png b/TMessagesProj/src/main/assets/emoji/1_205.png index 68c5c98d2b..1794b86b70 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_205.png and b/TMessagesProj/src/main/assets/emoji/1_205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_206.png b/TMessagesProj/src/main/assets/emoji/1_206.png index acf0cee6ba..9c0846699d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_206.png and b/TMessagesProj/src/main/assets/emoji/1_206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_207.png b/TMessagesProj/src/main/assets/emoji/1_207.png index 8ebb65bd98..c16fde4497 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_207.png and b/TMessagesProj/src/main/assets/emoji/1_207.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_208.png b/TMessagesProj/src/main/assets/emoji/1_208.png index 2eccd455af..84bbff18f6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_208.png and b/TMessagesProj/src/main/assets/emoji/1_208.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_209.png b/TMessagesProj/src/main/assets/emoji/1_209.png index be72e94b0c..2898dec422 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_209.png and b/TMessagesProj/src/main/assets/emoji/1_209.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_21.png b/TMessagesProj/src/main/assets/emoji/1_21.png index aae9d2810b..48939e511e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_21.png and b/TMessagesProj/src/main/assets/emoji/1_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_210.png b/TMessagesProj/src/main/assets/emoji/1_210.png index 8c5b0a134a..9048311e10 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_210.png and b/TMessagesProj/src/main/assets/emoji/1_210.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_211.png b/TMessagesProj/src/main/assets/emoji/1_211.png index a3654b1f8e..3df5ddf395 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_211.png and b/TMessagesProj/src/main/assets/emoji/1_211.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_212.png b/TMessagesProj/src/main/assets/emoji/1_212.png index daee9f6d0f..17d5d4a12c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_212.png and b/TMessagesProj/src/main/assets/emoji/1_212.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_22.png b/TMessagesProj/src/main/assets/emoji/1_22.png index b21ce62c45..f683d4279b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_22.png and b/TMessagesProj/src/main/assets/emoji/1_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_23.png b/TMessagesProj/src/main/assets/emoji/1_23.png index 6a656776ef..da69569044 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_23.png and b/TMessagesProj/src/main/assets/emoji/1_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_24.png b/TMessagesProj/src/main/assets/emoji/1_24.png index 8e3a8d0866..4d0caf3714 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_24.png and b/TMessagesProj/src/main/assets/emoji/1_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_25.png b/TMessagesProj/src/main/assets/emoji/1_25.png index 2f9af96347..bfda723f3b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_25.png and b/TMessagesProj/src/main/assets/emoji/1_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_26.png b/TMessagesProj/src/main/assets/emoji/1_26.png index 119404ade9..6a8118fa99 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_26.png and b/TMessagesProj/src/main/assets/emoji/1_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_27.png b/TMessagesProj/src/main/assets/emoji/1_27.png index 7731d4c0b0..2a7d9c4dd1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_27.png and b/TMessagesProj/src/main/assets/emoji/1_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_28.png b/TMessagesProj/src/main/assets/emoji/1_28.png index 651a1a5340..104c62fd37 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_28.png and b/TMessagesProj/src/main/assets/emoji/1_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_29.png b/TMessagesProj/src/main/assets/emoji/1_29.png index 5c0f888c21..396cd1ae24 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_29.png and b/TMessagesProj/src/main/assets/emoji/1_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_3.png b/TMessagesProj/src/main/assets/emoji/1_3.png index e62f8a2aff..eaf1e9c274 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_3.png and b/TMessagesProj/src/main/assets/emoji/1_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_30.png b/TMessagesProj/src/main/assets/emoji/1_30.png index 880fd451f0..fd74aaac7c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_30.png and b/TMessagesProj/src/main/assets/emoji/1_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_31.png b/TMessagesProj/src/main/assets/emoji/1_31.png index a562e468a4..efb75f1ff6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_31.png and b/TMessagesProj/src/main/assets/emoji/1_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_32.png b/TMessagesProj/src/main/assets/emoji/1_32.png index 315e394da3..5fec84ad28 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_32.png and b/TMessagesProj/src/main/assets/emoji/1_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_33.png b/TMessagesProj/src/main/assets/emoji/1_33.png index e4b131d230..16c2795844 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_33.png and b/TMessagesProj/src/main/assets/emoji/1_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_34.png b/TMessagesProj/src/main/assets/emoji/1_34.png index d534d22919..cdeb306ac8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_34.png and b/TMessagesProj/src/main/assets/emoji/1_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_35.png b/TMessagesProj/src/main/assets/emoji/1_35.png index 05b22f9358..70ac8ae106 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_35.png and b/TMessagesProj/src/main/assets/emoji/1_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_36.png b/TMessagesProj/src/main/assets/emoji/1_36.png index fff2102d60..b5eb9fa216 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_36.png and b/TMessagesProj/src/main/assets/emoji/1_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_37.png b/TMessagesProj/src/main/assets/emoji/1_37.png index 3d0ddf7bf1..c554d7ff8a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_37.png and b/TMessagesProj/src/main/assets/emoji/1_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_38.png b/TMessagesProj/src/main/assets/emoji/1_38.png index b05596eccb..cccdf08401 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_38.png and b/TMessagesProj/src/main/assets/emoji/1_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_39.png b/TMessagesProj/src/main/assets/emoji/1_39.png index 3a510b0cbc..eb3cb1ae06 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_39.png and b/TMessagesProj/src/main/assets/emoji/1_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_4.png b/TMessagesProj/src/main/assets/emoji/1_4.png index 3804bba296..23297751e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_4.png and b/TMessagesProj/src/main/assets/emoji/1_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_40.png b/TMessagesProj/src/main/assets/emoji/1_40.png index 2ccf7bd636..8249757e2f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_40.png and b/TMessagesProj/src/main/assets/emoji/1_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_41.png b/TMessagesProj/src/main/assets/emoji/1_41.png index a70761a5c7..cbffff6af3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_41.png and b/TMessagesProj/src/main/assets/emoji/1_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_42.png b/TMessagesProj/src/main/assets/emoji/1_42.png index ecc52d85ab..8edf7a3cee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_42.png and b/TMessagesProj/src/main/assets/emoji/1_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_43.png b/TMessagesProj/src/main/assets/emoji/1_43.png index 5eb25ee974..af8b4129ee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_43.png and b/TMessagesProj/src/main/assets/emoji/1_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_44.png b/TMessagesProj/src/main/assets/emoji/1_44.png index 05030a7307..5a2f4c196b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_44.png and b/TMessagesProj/src/main/assets/emoji/1_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_45.png b/TMessagesProj/src/main/assets/emoji/1_45.png index 2d8e5cb5e1..61365ec46c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_45.png and b/TMessagesProj/src/main/assets/emoji/1_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_46.png b/TMessagesProj/src/main/assets/emoji/1_46.png index ecdb442ec5..40e727a02a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_46.png and b/TMessagesProj/src/main/assets/emoji/1_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_47.png b/TMessagesProj/src/main/assets/emoji/1_47.png index 0550a0f9d0..198c41ab7a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_47.png and b/TMessagesProj/src/main/assets/emoji/1_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_48.png b/TMessagesProj/src/main/assets/emoji/1_48.png index e3e4dd4c14..7a302b1f68 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_48.png and b/TMessagesProj/src/main/assets/emoji/1_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_49.png b/TMessagesProj/src/main/assets/emoji/1_49.png index 5602c295bb..3640d34766 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_49.png and b/TMessagesProj/src/main/assets/emoji/1_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_5.png b/TMessagesProj/src/main/assets/emoji/1_5.png index 1374c891bc..6c639993af 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_5.png and b/TMessagesProj/src/main/assets/emoji/1_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_50.png b/TMessagesProj/src/main/assets/emoji/1_50.png index 893cc6ec31..003ccc3356 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_50.png and b/TMessagesProj/src/main/assets/emoji/1_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_51.png b/TMessagesProj/src/main/assets/emoji/1_51.png index f063b98c4d..4955913807 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_51.png and b/TMessagesProj/src/main/assets/emoji/1_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_52.png b/TMessagesProj/src/main/assets/emoji/1_52.png index 1592137f99..38ca320c43 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_52.png and b/TMessagesProj/src/main/assets/emoji/1_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_53.png b/TMessagesProj/src/main/assets/emoji/1_53.png index 168b12f376..fae4eb693e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_53.png and b/TMessagesProj/src/main/assets/emoji/1_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_54.png b/TMessagesProj/src/main/assets/emoji/1_54.png index fc62eb39ea..944bc85eb4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_54.png and b/TMessagesProj/src/main/assets/emoji/1_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_55.png b/TMessagesProj/src/main/assets/emoji/1_55.png index cac87d1c50..b226fa631f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_55.png and b/TMessagesProj/src/main/assets/emoji/1_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_56.png b/TMessagesProj/src/main/assets/emoji/1_56.png index 8843259a01..b3a6b2900e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_56.png and b/TMessagesProj/src/main/assets/emoji/1_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_57.png b/TMessagesProj/src/main/assets/emoji/1_57.png index 4fb66c5dfd..fbc3bb1029 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_57.png and b/TMessagesProj/src/main/assets/emoji/1_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_58.png b/TMessagesProj/src/main/assets/emoji/1_58.png index b3c30c0c9e..1dfab1c4e5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_58.png and b/TMessagesProj/src/main/assets/emoji/1_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_59.png b/TMessagesProj/src/main/assets/emoji/1_59.png index 98e69983ae..bdb902b8a9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_59.png and b/TMessagesProj/src/main/assets/emoji/1_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_6.png b/TMessagesProj/src/main/assets/emoji/1_6.png index 226e8e76cb..9fbe7076f1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_6.png and b/TMessagesProj/src/main/assets/emoji/1_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_60.png b/TMessagesProj/src/main/assets/emoji/1_60.png index 2925b8371a..b55e3bb72d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_60.png and b/TMessagesProj/src/main/assets/emoji/1_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_61.png b/TMessagesProj/src/main/assets/emoji/1_61.png index 1fe1f70534..16376ec295 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_61.png and b/TMessagesProj/src/main/assets/emoji/1_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_62.png b/TMessagesProj/src/main/assets/emoji/1_62.png index c3a81a3ddc..999a63e702 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_62.png and b/TMessagesProj/src/main/assets/emoji/1_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_63.png b/TMessagesProj/src/main/assets/emoji/1_63.png index cb474dd911..4f6a5f1beb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_63.png and b/TMessagesProj/src/main/assets/emoji/1_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_64.png b/TMessagesProj/src/main/assets/emoji/1_64.png index 53cc00ff23..0a01f54b47 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_64.png and b/TMessagesProj/src/main/assets/emoji/1_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_65.png b/TMessagesProj/src/main/assets/emoji/1_65.png index 16224845b5..18f5f4a7db 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_65.png and b/TMessagesProj/src/main/assets/emoji/1_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_66.png b/TMessagesProj/src/main/assets/emoji/1_66.png index 4e8e9ee2d1..100574e5a2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_66.png and b/TMessagesProj/src/main/assets/emoji/1_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_67.png b/TMessagesProj/src/main/assets/emoji/1_67.png index 847eaf47ee..37145b0a58 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_67.png and b/TMessagesProj/src/main/assets/emoji/1_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_68.png b/TMessagesProj/src/main/assets/emoji/1_68.png index 3851c11ca0..41ee4225bf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_68.png and b/TMessagesProj/src/main/assets/emoji/1_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_69.png b/TMessagesProj/src/main/assets/emoji/1_69.png index c94b350af7..4318a1cdf9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_69.png and b/TMessagesProj/src/main/assets/emoji/1_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_7.png b/TMessagesProj/src/main/assets/emoji/1_7.png index c186132562..188d2b9bce 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_7.png and b/TMessagesProj/src/main/assets/emoji/1_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_70.png b/TMessagesProj/src/main/assets/emoji/1_70.png index c49b172f7c..7e8f91c17f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_70.png and b/TMessagesProj/src/main/assets/emoji/1_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_71.png b/TMessagesProj/src/main/assets/emoji/1_71.png index 5678a6c9c1..69a95e0efb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_71.png and b/TMessagesProj/src/main/assets/emoji/1_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_72.png b/TMessagesProj/src/main/assets/emoji/1_72.png index 5d445a4d01..0d3d787ab4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_72.png and b/TMessagesProj/src/main/assets/emoji/1_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_73.png b/TMessagesProj/src/main/assets/emoji/1_73.png index 5979690c30..ed7b9fdda3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_73.png and b/TMessagesProj/src/main/assets/emoji/1_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_74.png b/TMessagesProj/src/main/assets/emoji/1_74.png index b966c82f01..fff62ba95c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_74.png and b/TMessagesProj/src/main/assets/emoji/1_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_75.png b/TMessagesProj/src/main/assets/emoji/1_75.png index e4fb014f71..23e9bfd4c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_75.png and b/TMessagesProj/src/main/assets/emoji/1_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_76.png b/TMessagesProj/src/main/assets/emoji/1_76.png index e124e60c24..fb610f224e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_76.png and b/TMessagesProj/src/main/assets/emoji/1_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_77.png b/TMessagesProj/src/main/assets/emoji/1_77.png index 7cc71b6592..606312c4cc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_77.png and b/TMessagesProj/src/main/assets/emoji/1_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_78.png b/TMessagesProj/src/main/assets/emoji/1_78.png index 77e5bd7e84..d06c664ca1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_78.png and b/TMessagesProj/src/main/assets/emoji/1_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_79.png b/TMessagesProj/src/main/assets/emoji/1_79.png index c0e1b04b23..2c6796d847 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_79.png and b/TMessagesProj/src/main/assets/emoji/1_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_8.png b/TMessagesProj/src/main/assets/emoji/1_8.png index 9090ccb93d..bcb4e48b40 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_8.png and b/TMessagesProj/src/main/assets/emoji/1_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_80.png b/TMessagesProj/src/main/assets/emoji/1_80.png index 2856fb0ac1..1e53e3c3c0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_80.png and b/TMessagesProj/src/main/assets/emoji/1_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_81.png b/TMessagesProj/src/main/assets/emoji/1_81.png index 0741b9c8ec..8ad0b14954 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_81.png and b/TMessagesProj/src/main/assets/emoji/1_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_82.png b/TMessagesProj/src/main/assets/emoji/1_82.png index 085cecd468..c20992e35f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_82.png and b/TMessagesProj/src/main/assets/emoji/1_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_83.png b/TMessagesProj/src/main/assets/emoji/1_83.png index 02befa291f..1e1d6c5d10 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_83.png and b/TMessagesProj/src/main/assets/emoji/1_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_84.png b/TMessagesProj/src/main/assets/emoji/1_84.png index 7bb10fae0a..642d6bb56f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_84.png and b/TMessagesProj/src/main/assets/emoji/1_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_85.png b/TMessagesProj/src/main/assets/emoji/1_85.png index 9da5574dc2..2982ddfa97 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_85.png and b/TMessagesProj/src/main/assets/emoji/1_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_86.png b/TMessagesProj/src/main/assets/emoji/1_86.png index f9fe21de2f..2e6e636e89 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_86.png and b/TMessagesProj/src/main/assets/emoji/1_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_87.png b/TMessagesProj/src/main/assets/emoji/1_87.png index 694da7c74a..d2154283b9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_87.png and b/TMessagesProj/src/main/assets/emoji/1_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_88.png b/TMessagesProj/src/main/assets/emoji/1_88.png index a9a9e8a0cf..11982f6b06 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_88.png and b/TMessagesProj/src/main/assets/emoji/1_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_89.png b/TMessagesProj/src/main/assets/emoji/1_89.png index fe5e3a2ae8..9f6819b717 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_89.png and b/TMessagesProj/src/main/assets/emoji/1_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_9.png b/TMessagesProj/src/main/assets/emoji/1_9.png index 8100387c9d..39886df5cc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_9.png and b/TMessagesProj/src/main/assets/emoji/1_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_90.png b/TMessagesProj/src/main/assets/emoji/1_90.png index 75e8766de7..1fc9f5ffcd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_90.png and b/TMessagesProj/src/main/assets/emoji/1_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_91.png b/TMessagesProj/src/main/assets/emoji/1_91.png index 7c0d706268..fe0342fe6c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_91.png and b/TMessagesProj/src/main/assets/emoji/1_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_92.png b/TMessagesProj/src/main/assets/emoji/1_92.png index cddf62bfd4..5c9b61b455 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_92.png and b/TMessagesProj/src/main/assets/emoji/1_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_93.png b/TMessagesProj/src/main/assets/emoji/1_93.png index ca0292df1d..a563b576af 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_93.png and b/TMessagesProj/src/main/assets/emoji/1_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_94.png b/TMessagesProj/src/main/assets/emoji/1_94.png index 5e1cdd9c03..caa62f55a8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_94.png and b/TMessagesProj/src/main/assets/emoji/1_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_95.png b/TMessagesProj/src/main/assets/emoji/1_95.png index 9118525a18..c23ca9ab4b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_95.png and b/TMessagesProj/src/main/assets/emoji/1_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_96.png b/TMessagesProj/src/main/assets/emoji/1_96.png index 22f32ec9ae..b7e547d1e8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_96.png and b/TMessagesProj/src/main/assets/emoji/1_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_97.png b/TMessagesProj/src/main/assets/emoji/1_97.png index 40f5933b38..a4273e2cd4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_97.png and b/TMessagesProj/src/main/assets/emoji/1_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_98.png b/TMessagesProj/src/main/assets/emoji/1_98.png index 890772d082..5afb301792 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_98.png and b/TMessagesProj/src/main/assets/emoji/1_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/1_99.png b/TMessagesProj/src/main/assets/emoji/1_99.png index 99615e1d88..b0d459c884 100644 Binary files a/TMessagesProj/src/main/assets/emoji/1_99.png and b/TMessagesProj/src/main/assets/emoji/1_99.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_0.png b/TMessagesProj/src/main/assets/emoji/2_0.png index b8983c814b..bda07661ea 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_0.png and b/TMessagesProj/src/main/assets/emoji/2_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_1.png b/TMessagesProj/src/main/assets/emoji/2_1.png index 1c749ffa74..7262568d0e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_1.png and b/TMessagesProj/src/main/assets/emoji/2_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_10.png b/TMessagesProj/src/main/assets/emoji/2_10.png index bb5a0b167f..3a6538ff9b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_10.png and b/TMessagesProj/src/main/assets/emoji/2_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_100.png b/TMessagesProj/src/main/assets/emoji/2_100.png index e0c7ce0a46..0650add0bf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_100.png and b/TMessagesProj/src/main/assets/emoji/2_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_101.png b/TMessagesProj/src/main/assets/emoji/2_101.png index 85ef44eba0..405d2c3ed2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_101.png and b/TMessagesProj/src/main/assets/emoji/2_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_102.png b/TMessagesProj/src/main/assets/emoji/2_102.png index 9d5754150b..fb3bed71c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_102.png and b/TMessagesProj/src/main/assets/emoji/2_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_103.png b/TMessagesProj/src/main/assets/emoji/2_103.png index 841e0df494..6724812f54 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_103.png and b/TMessagesProj/src/main/assets/emoji/2_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_104.png b/TMessagesProj/src/main/assets/emoji/2_104.png index 85dcacdd73..1c918f88cd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_104.png and b/TMessagesProj/src/main/assets/emoji/2_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_105.png b/TMessagesProj/src/main/assets/emoji/2_105.png index 5fb5d91d27..bb12889e93 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_105.png and b/TMessagesProj/src/main/assets/emoji/2_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_106.png b/TMessagesProj/src/main/assets/emoji/2_106.png index 23e8e2087c..1e62980cf5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_106.png and b/TMessagesProj/src/main/assets/emoji/2_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_107.png b/TMessagesProj/src/main/assets/emoji/2_107.png index a46e6a8054..eb4a7af710 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_107.png and b/TMessagesProj/src/main/assets/emoji/2_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_108.png b/TMessagesProj/src/main/assets/emoji/2_108.png index 3cc41ae965..0b228107d2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_108.png and b/TMessagesProj/src/main/assets/emoji/2_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_109.png b/TMessagesProj/src/main/assets/emoji/2_109.png index 5cbd7ee3b9..24e673dba9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_109.png and b/TMessagesProj/src/main/assets/emoji/2_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_11.png b/TMessagesProj/src/main/assets/emoji/2_11.png index 7e2e1bbaea..fef7e45a54 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_11.png and b/TMessagesProj/src/main/assets/emoji/2_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_110.png b/TMessagesProj/src/main/assets/emoji/2_110.png index 543e141ea2..d9893d754b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_110.png and b/TMessagesProj/src/main/assets/emoji/2_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_111.png b/TMessagesProj/src/main/assets/emoji/2_111.png index 07b3fb8061..01c1d79c09 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_111.png and b/TMessagesProj/src/main/assets/emoji/2_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_112.png b/TMessagesProj/src/main/assets/emoji/2_112.png index bdcc78944b..d95acef671 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_112.png and b/TMessagesProj/src/main/assets/emoji/2_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_113.png b/TMessagesProj/src/main/assets/emoji/2_113.png index 94e4f6d7b1..a8bef61ca9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_113.png and b/TMessagesProj/src/main/assets/emoji/2_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_114.png b/TMessagesProj/src/main/assets/emoji/2_114.png index b131a2c267..b656c3407f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_114.png and b/TMessagesProj/src/main/assets/emoji/2_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_115.png b/TMessagesProj/src/main/assets/emoji/2_115.png index 416226dfeb..1904d2ff3e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_115.png and b/TMessagesProj/src/main/assets/emoji/2_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_116.png b/TMessagesProj/src/main/assets/emoji/2_116.png index 85a4ef3bdf..4fb068a760 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_116.png and b/TMessagesProj/src/main/assets/emoji/2_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_117.png b/TMessagesProj/src/main/assets/emoji/2_117.png index f1ad06b672..d1d7965c79 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_117.png and b/TMessagesProj/src/main/assets/emoji/2_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_118.png b/TMessagesProj/src/main/assets/emoji/2_118.png index 2aa17dbf04..0c4b2b9cd4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_118.png and b/TMessagesProj/src/main/assets/emoji/2_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_119.png b/TMessagesProj/src/main/assets/emoji/2_119.png index 5eea14242c..25ebb4094d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_119.png and b/TMessagesProj/src/main/assets/emoji/2_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_12.png b/TMessagesProj/src/main/assets/emoji/2_12.png index 201c42c5d3..53552a0d51 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_12.png and b/TMessagesProj/src/main/assets/emoji/2_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_120.png b/TMessagesProj/src/main/assets/emoji/2_120.png index 7d9673d4db..b1a1c0fa64 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_120.png and b/TMessagesProj/src/main/assets/emoji/2_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_121.png b/TMessagesProj/src/main/assets/emoji/2_121.png index c9f5d68a9a..ae0661867f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_121.png and b/TMessagesProj/src/main/assets/emoji/2_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_122.png b/TMessagesProj/src/main/assets/emoji/2_122.png index 50f338d79c..ba4b965e72 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_122.png and b/TMessagesProj/src/main/assets/emoji/2_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_123.png b/TMessagesProj/src/main/assets/emoji/2_123.png index c41e6d7766..888780c6d4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_123.png and b/TMessagesProj/src/main/assets/emoji/2_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_124.png b/TMessagesProj/src/main/assets/emoji/2_124.png index f6e20d1edf..c030b8b03e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_124.png and b/TMessagesProj/src/main/assets/emoji/2_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_125.png b/TMessagesProj/src/main/assets/emoji/2_125.png index 6e793ecb0e..18d63788f4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_125.png and b/TMessagesProj/src/main/assets/emoji/2_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_126.png b/TMessagesProj/src/main/assets/emoji/2_126.png index e76ea1c001..022d6a77c3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_126.png and b/TMessagesProj/src/main/assets/emoji/2_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_127.png b/TMessagesProj/src/main/assets/emoji/2_127.png index a892790e85..c9c3f766c0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_127.png and b/TMessagesProj/src/main/assets/emoji/2_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_128.png b/TMessagesProj/src/main/assets/emoji/2_128.png index d57f83c6f6..088a36ae2e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_128.png and b/TMessagesProj/src/main/assets/emoji/2_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_13.png b/TMessagesProj/src/main/assets/emoji/2_13.png index 1149d114ee..03f43b548e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_13.png and b/TMessagesProj/src/main/assets/emoji/2_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_14.png b/TMessagesProj/src/main/assets/emoji/2_14.png index 03b87d09da..5f2f5a6804 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_14.png and b/TMessagesProj/src/main/assets/emoji/2_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_15.png b/TMessagesProj/src/main/assets/emoji/2_15.png index 13e7b4360c..3e7e449529 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_15.png and b/TMessagesProj/src/main/assets/emoji/2_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_16.png b/TMessagesProj/src/main/assets/emoji/2_16.png index 71a4283f7f..7f3121d966 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_16.png and b/TMessagesProj/src/main/assets/emoji/2_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_17.png b/TMessagesProj/src/main/assets/emoji/2_17.png index d0d6696435..054d46efb0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_17.png and b/TMessagesProj/src/main/assets/emoji/2_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_18.png b/TMessagesProj/src/main/assets/emoji/2_18.png index 6a307f4bf2..08dd0e7fce 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_18.png and b/TMessagesProj/src/main/assets/emoji/2_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_19.png b/TMessagesProj/src/main/assets/emoji/2_19.png index 355ed79fac..ab5271b22c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_19.png and b/TMessagesProj/src/main/assets/emoji/2_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_2.png b/TMessagesProj/src/main/assets/emoji/2_2.png index 218a6fc5ea..eb5d722c85 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_2.png and b/TMessagesProj/src/main/assets/emoji/2_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_20.png b/TMessagesProj/src/main/assets/emoji/2_20.png index 6cccba4ca7..6a0bf41489 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_20.png and b/TMessagesProj/src/main/assets/emoji/2_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_21.png b/TMessagesProj/src/main/assets/emoji/2_21.png index 331147584b..41d9837050 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_21.png and b/TMessagesProj/src/main/assets/emoji/2_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_22.png b/TMessagesProj/src/main/assets/emoji/2_22.png index 8173a27619..9bad624072 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_22.png and b/TMessagesProj/src/main/assets/emoji/2_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_23.png b/TMessagesProj/src/main/assets/emoji/2_23.png index 7d799593df..958e4b222a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_23.png and b/TMessagesProj/src/main/assets/emoji/2_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_24.png b/TMessagesProj/src/main/assets/emoji/2_24.png index 2cf0b6cd51..c635ab10d4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_24.png and b/TMessagesProj/src/main/assets/emoji/2_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_25.png b/TMessagesProj/src/main/assets/emoji/2_25.png index 32ab526802..4b4879d468 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_25.png and b/TMessagesProj/src/main/assets/emoji/2_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_26.png b/TMessagesProj/src/main/assets/emoji/2_26.png index e01deb972a..ee0d8199d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_26.png and b/TMessagesProj/src/main/assets/emoji/2_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_27.png b/TMessagesProj/src/main/assets/emoji/2_27.png index d2e532ff29..62d5b140b2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_27.png and b/TMessagesProj/src/main/assets/emoji/2_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_28.png b/TMessagesProj/src/main/assets/emoji/2_28.png index d41004dd7c..dfe135b206 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_28.png and b/TMessagesProj/src/main/assets/emoji/2_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_29.png b/TMessagesProj/src/main/assets/emoji/2_29.png index 8fdc6f166c..8115379fcb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_29.png and b/TMessagesProj/src/main/assets/emoji/2_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_3.png b/TMessagesProj/src/main/assets/emoji/2_3.png index b585a1e3d9..b1ecd225e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_3.png and b/TMessagesProj/src/main/assets/emoji/2_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_30.png b/TMessagesProj/src/main/assets/emoji/2_30.png index 9ff9f5e4ba..749549486a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_30.png and b/TMessagesProj/src/main/assets/emoji/2_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_31.png b/TMessagesProj/src/main/assets/emoji/2_31.png index 9aabbbdda5..8881743ddd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_31.png and b/TMessagesProj/src/main/assets/emoji/2_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_32.png b/TMessagesProj/src/main/assets/emoji/2_32.png index 63f0ab6be5..0570ce299a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_32.png and b/TMessagesProj/src/main/assets/emoji/2_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_33.png b/TMessagesProj/src/main/assets/emoji/2_33.png index ce1f22f2e7..61f9092ea8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_33.png and b/TMessagesProj/src/main/assets/emoji/2_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_34.png b/TMessagesProj/src/main/assets/emoji/2_34.png index c429179255..b0f610f691 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_34.png and b/TMessagesProj/src/main/assets/emoji/2_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_35.png b/TMessagesProj/src/main/assets/emoji/2_35.png index d6c2e04c0f..623bffba0f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_35.png and b/TMessagesProj/src/main/assets/emoji/2_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_36.png b/TMessagesProj/src/main/assets/emoji/2_36.png index f433f810c7..a76aa471c6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_36.png and b/TMessagesProj/src/main/assets/emoji/2_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_37.png b/TMessagesProj/src/main/assets/emoji/2_37.png index fd143139b1..b172bc1af4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_37.png and b/TMessagesProj/src/main/assets/emoji/2_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_38.png b/TMessagesProj/src/main/assets/emoji/2_38.png index 1cb895449e..c14bea858e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_38.png and b/TMessagesProj/src/main/assets/emoji/2_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_39.png b/TMessagesProj/src/main/assets/emoji/2_39.png index 446af065f8..deb5eaf5bf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_39.png and b/TMessagesProj/src/main/assets/emoji/2_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_4.png b/TMessagesProj/src/main/assets/emoji/2_4.png index f573a8fec7..892e49d31b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_4.png and b/TMessagesProj/src/main/assets/emoji/2_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_40.png b/TMessagesProj/src/main/assets/emoji/2_40.png index 5a9a3c6097..a04b7222c6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_40.png and b/TMessagesProj/src/main/assets/emoji/2_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_41.png b/TMessagesProj/src/main/assets/emoji/2_41.png index 7254bf8815..48c8d607aa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_41.png and b/TMessagesProj/src/main/assets/emoji/2_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_42.png b/TMessagesProj/src/main/assets/emoji/2_42.png index b5ccbf653b..4f44e3771f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_42.png and b/TMessagesProj/src/main/assets/emoji/2_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_43.png b/TMessagesProj/src/main/assets/emoji/2_43.png index d1854b40af..1adeb37c0c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_43.png and b/TMessagesProj/src/main/assets/emoji/2_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_44.png b/TMessagesProj/src/main/assets/emoji/2_44.png index 6e34b581e2..d838b918d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_44.png and b/TMessagesProj/src/main/assets/emoji/2_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_45.png b/TMessagesProj/src/main/assets/emoji/2_45.png index 03cfbe5182..55129b2872 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_45.png and b/TMessagesProj/src/main/assets/emoji/2_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_46.png b/TMessagesProj/src/main/assets/emoji/2_46.png index 4368bb2d2a..67564a5a7e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_46.png and b/TMessagesProj/src/main/assets/emoji/2_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_47.png b/TMessagesProj/src/main/assets/emoji/2_47.png index 270f61db8b..e20a92dad9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_47.png and b/TMessagesProj/src/main/assets/emoji/2_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_48.png b/TMessagesProj/src/main/assets/emoji/2_48.png index e2f32c0968..3f6fcf3d3e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_48.png and b/TMessagesProj/src/main/assets/emoji/2_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_49.png b/TMessagesProj/src/main/assets/emoji/2_49.png index a24197d084..939ff90bd5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_49.png and b/TMessagesProj/src/main/assets/emoji/2_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_5.png b/TMessagesProj/src/main/assets/emoji/2_5.png index cca4301b0d..efe381f276 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_5.png and b/TMessagesProj/src/main/assets/emoji/2_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_50.png b/TMessagesProj/src/main/assets/emoji/2_50.png index 42e8120802..13c521c63e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_50.png and b/TMessagesProj/src/main/assets/emoji/2_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_51.png b/TMessagesProj/src/main/assets/emoji/2_51.png index 2d338c2c6f..1b1883c120 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_51.png and b/TMessagesProj/src/main/assets/emoji/2_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_52.png b/TMessagesProj/src/main/assets/emoji/2_52.png index 3da7bd4e41..12a0d2a9c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_52.png and b/TMessagesProj/src/main/assets/emoji/2_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_53.png b/TMessagesProj/src/main/assets/emoji/2_53.png index 582a42db77..87b8a903d3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_53.png and b/TMessagesProj/src/main/assets/emoji/2_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_54.png b/TMessagesProj/src/main/assets/emoji/2_54.png index 61f92c9d0e..0bdb8cc804 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_54.png and b/TMessagesProj/src/main/assets/emoji/2_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_55.png b/TMessagesProj/src/main/assets/emoji/2_55.png index f2bb6dedbd..ccc20c5cc9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_55.png and b/TMessagesProj/src/main/assets/emoji/2_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_56.png b/TMessagesProj/src/main/assets/emoji/2_56.png index 7c8751c4f2..d218def40d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_56.png and b/TMessagesProj/src/main/assets/emoji/2_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_57.png b/TMessagesProj/src/main/assets/emoji/2_57.png index 2db37a5b63..0ef0c5dca3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_57.png and b/TMessagesProj/src/main/assets/emoji/2_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_58.png b/TMessagesProj/src/main/assets/emoji/2_58.png index 1152d23d51..9c193b483d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_58.png and b/TMessagesProj/src/main/assets/emoji/2_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_59.png b/TMessagesProj/src/main/assets/emoji/2_59.png index a16d36f723..a530d06317 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_59.png and b/TMessagesProj/src/main/assets/emoji/2_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_6.png b/TMessagesProj/src/main/assets/emoji/2_6.png index 69f5d7eee2..ebb7e223f9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_6.png and b/TMessagesProj/src/main/assets/emoji/2_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_60.png b/TMessagesProj/src/main/assets/emoji/2_60.png index 5643a21be2..4d253b12e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_60.png and b/TMessagesProj/src/main/assets/emoji/2_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_61.png b/TMessagesProj/src/main/assets/emoji/2_61.png index 3b344251a3..cc5924a628 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_61.png and b/TMessagesProj/src/main/assets/emoji/2_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_62.png b/TMessagesProj/src/main/assets/emoji/2_62.png index f90742ccdc..cc0fbdd51c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_62.png and b/TMessagesProj/src/main/assets/emoji/2_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_63.png b/TMessagesProj/src/main/assets/emoji/2_63.png index 9d6b8d1b01..9c7ae78e5a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_63.png and b/TMessagesProj/src/main/assets/emoji/2_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_64.png b/TMessagesProj/src/main/assets/emoji/2_64.png index 41d2eaa633..3423b92eac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_64.png and b/TMessagesProj/src/main/assets/emoji/2_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_65.png b/TMessagesProj/src/main/assets/emoji/2_65.png index cf66c23574..d730a08bf7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_65.png and b/TMessagesProj/src/main/assets/emoji/2_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_66.png b/TMessagesProj/src/main/assets/emoji/2_66.png index 0d8b005c21..13abb33ca1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_66.png and b/TMessagesProj/src/main/assets/emoji/2_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_67.png b/TMessagesProj/src/main/assets/emoji/2_67.png index c3e3252c35..bc697bcb2b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_67.png and b/TMessagesProj/src/main/assets/emoji/2_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_68.png b/TMessagesProj/src/main/assets/emoji/2_68.png index bfdca1c407..257bbcf4e4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_68.png and b/TMessagesProj/src/main/assets/emoji/2_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_69.png b/TMessagesProj/src/main/assets/emoji/2_69.png index a7ec94fb5b..875cd2d71a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_69.png and b/TMessagesProj/src/main/assets/emoji/2_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_7.png b/TMessagesProj/src/main/assets/emoji/2_7.png index 7a7f06d667..93571f8189 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_7.png and b/TMessagesProj/src/main/assets/emoji/2_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_70.png b/TMessagesProj/src/main/assets/emoji/2_70.png index 371cd6441e..1a052395bd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_70.png and b/TMessagesProj/src/main/assets/emoji/2_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_71.png b/TMessagesProj/src/main/assets/emoji/2_71.png index db8497ded4..faade900e7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_71.png and b/TMessagesProj/src/main/assets/emoji/2_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_72.png b/TMessagesProj/src/main/assets/emoji/2_72.png index 71f057f751..42b2b98cc0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_72.png and b/TMessagesProj/src/main/assets/emoji/2_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_73.png b/TMessagesProj/src/main/assets/emoji/2_73.png index b44afe576d..b1934f681a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_73.png and b/TMessagesProj/src/main/assets/emoji/2_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_74.png b/TMessagesProj/src/main/assets/emoji/2_74.png index 93ac500d15..29a4f65a1e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_74.png and b/TMessagesProj/src/main/assets/emoji/2_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_75.png b/TMessagesProj/src/main/assets/emoji/2_75.png index f65e029a31..fd2b85119b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_75.png and b/TMessagesProj/src/main/assets/emoji/2_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_76.png b/TMessagesProj/src/main/assets/emoji/2_76.png index 091637dd03..1c1808d00d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_76.png and b/TMessagesProj/src/main/assets/emoji/2_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_77.png b/TMessagesProj/src/main/assets/emoji/2_77.png index ca93f44e3b..b92b1a9bff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_77.png and b/TMessagesProj/src/main/assets/emoji/2_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_78.png b/TMessagesProj/src/main/assets/emoji/2_78.png index 5ac7736ec6..70f4b8581e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_78.png and b/TMessagesProj/src/main/assets/emoji/2_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_79.png b/TMessagesProj/src/main/assets/emoji/2_79.png index 9e977a573d..5e63053439 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_79.png and b/TMessagesProj/src/main/assets/emoji/2_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_8.png b/TMessagesProj/src/main/assets/emoji/2_8.png index c4a2e6b2c2..f015df3615 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_8.png and b/TMessagesProj/src/main/assets/emoji/2_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_80.png b/TMessagesProj/src/main/assets/emoji/2_80.png index d80d197138..2601ab1ca9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_80.png and b/TMessagesProj/src/main/assets/emoji/2_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_81.png b/TMessagesProj/src/main/assets/emoji/2_81.png index 4f9896bebd..bfa15e924a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_81.png and b/TMessagesProj/src/main/assets/emoji/2_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_82.png b/TMessagesProj/src/main/assets/emoji/2_82.png index 98c3a00754..29badf6088 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_82.png and b/TMessagesProj/src/main/assets/emoji/2_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_83.png b/TMessagesProj/src/main/assets/emoji/2_83.png index 8948aadba8..a440f99464 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_83.png and b/TMessagesProj/src/main/assets/emoji/2_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_84.png b/TMessagesProj/src/main/assets/emoji/2_84.png index 1e64968a11..3fab6d99ad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_84.png and b/TMessagesProj/src/main/assets/emoji/2_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_85.png b/TMessagesProj/src/main/assets/emoji/2_85.png index e83e5d5e26..b1fcef2235 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_85.png and b/TMessagesProj/src/main/assets/emoji/2_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_86.png b/TMessagesProj/src/main/assets/emoji/2_86.png index 1574cd7578..adf5057885 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_86.png and b/TMessagesProj/src/main/assets/emoji/2_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_87.png b/TMessagesProj/src/main/assets/emoji/2_87.png index 5aa16dd909..bd10219463 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_87.png and b/TMessagesProj/src/main/assets/emoji/2_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_88.png b/TMessagesProj/src/main/assets/emoji/2_88.png index 0014d07744..8fc81a6297 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_88.png and b/TMessagesProj/src/main/assets/emoji/2_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_89.png b/TMessagesProj/src/main/assets/emoji/2_89.png index f1ba758c8e..98e0b8e0bf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_89.png and b/TMessagesProj/src/main/assets/emoji/2_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_9.png b/TMessagesProj/src/main/assets/emoji/2_9.png index 915369bd9a..5ace08c674 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_9.png and b/TMessagesProj/src/main/assets/emoji/2_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_90.png b/TMessagesProj/src/main/assets/emoji/2_90.png index 072b7d2c9a..84dded66a2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_90.png and b/TMessagesProj/src/main/assets/emoji/2_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_91.png b/TMessagesProj/src/main/assets/emoji/2_91.png index b04763858b..2407b94a6b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_91.png and b/TMessagesProj/src/main/assets/emoji/2_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_92.png b/TMessagesProj/src/main/assets/emoji/2_92.png index 66f3fe84d6..597ffee84d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_92.png and b/TMessagesProj/src/main/assets/emoji/2_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_93.png b/TMessagesProj/src/main/assets/emoji/2_93.png index a8b70bbfb0..f6251dffca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_93.png and b/TMessagesProj/src/main/assets/emoji/2_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_94.png b/TMessagesProj/src/main/assets/emoji/2_94.png index 04c6dd9f9e..d31ae671d3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_94.png and b/TMessagesProj/src/main/assets/emoji/2_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_95.png b/TMessagesProj/src/main/assets/emoji/2_95.png index 788fd36fce..a113a20b65 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_95.png and b/TMessagesProj/src/main/assets/emoji/2_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_96.png b/TMessagesProj/src/main/assets/emoji/2_96.png index ff5281e702..bfaa3fbbec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_96.png and b/TMessagesProj/src/main/assets/emoji/2_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_97.png b/TMessagesProj/src/main/assets/emoji/2_97.png index 0e562f6c1a..477e4334be 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_97.png and b/TMessagesProj/src/main/assets/emoji/2_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_98.png b/TMessagesProj/src/main/assets/emoji/2_98.png index c4734568a3..54e5fc6d7f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_98.png and b/TMessagesProj/src/main/assets/emoji/2_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/2_99.png b/TMessagesProj/src/main/assets/emoji/2_99.png index 3c92dfc670..653e43ed77 100644 Binary files a/TMessagesProj/src/main/assets/emoji/2_99.png and b/TMessagesProj/src/main/assets/emoji/2_99.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_0.png b/TMessagesProj/src/main/assets/emoji/3_0.png index 525febfb30..6037e4d394 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_0.png and b/TMessagesProj/src/main/assets/emoji/3_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_1.png b/TMessagesProj/src/main/assets/emoji/3_1.png index 8c6f5606b3..e994ed6be4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_1.png and b/TMessagesProj/src/main/assets/emoji/3_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_10.png b/TMessagesProj/src/main/assets/emoji/3_10.png index d7994f0ab3..157cb26e86 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_10.png and b/TMessagesProj/src/main/assets/emoji/3_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_100.png b/TMessagesProj/src/main/assets/emoji/3_100.png index 835949d085..db197874e0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_100.png and b/TMessagesProj/src/main/assets/emoji/3_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_101.png b/TMessagesProj/src/main/assets/emoji/3_101.png index b09a90bad6..b128cd24f3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_101.png and b/TMessagesProj/src/main/assets/emoji/3_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_102.png b/TMessagesProj/src/main/assets/emoji/3_102.png index 19d91a840d..394f367c71 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_102.png and b/TMessagesProj/src/main/assets/emoji/3_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_103.png b/TMessagesProj/src/main/assets/emoji/3_103.png index 56fabc5bf1..3bcb306fb1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_103.png and b/TMessagesProj/src/main/assets/emoji/3_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_104.png b/TMessagesProj/src/main/assets/emoji/3_104.png index b476a2a54f..394e3c07aa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_104.png and b/TMessagesProj/src/main/assets/emoji/3_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_105.png b/TMessagesProj/src/main/assets/emoji/3_105.png index 2eacb75302..13cdb29113 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_105.png and b/TMessagesProj/src/main/assets/emoji/3_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_106.png b/TMessagesProj/src/main/assets/emoji/3_106.png index 77dd12c116..8393bebdf8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_106.png and b/TMessagesProj/src/main/assets/emoji/3_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_107.png b/TMessagesProj/src/main/assets/emoji/3_107.png index f80eff1af5..f03dd9b68d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_107.png and b/TMessagesProj/src/main/assets/emoji/3_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_108.png b/TMessagesProj/src/main/assets/emoji/3_108.png index 41f16b339f..354c604815 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_108.png and b/TMessagesProj/src/main/assets/emoji/3_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_109.png b/TMessagesProj/src/main/assets/emoji/3_109.png index 278c148c65..00c5d88c34 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_109.png and b/TMessagesProj/src/main/assets/emoji/3_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_11.png b/TMessagesProj/src/main/assets/emoji/3_11.png index 17266501cb..9d21aed481 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_11.png and b/TMessagesProj/src/main/assets/emoji/3_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_110.png b/TMessagesProj/src/main/assets/emoji/3_110.png index cbf24d1572..fa52d2e465 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_110.png and b/TMessagesProj/src/main/assets/emoji/3_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_111.png b/TMessagesProj/src/main/assets/emoji/3_111.png index b398a42fff..b181c2ac57 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_111.png and b/TMessagesProj/src/main/assets/emoji/3_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_112.png b/TMessagesProj/src/main/assets/emoji/3_112.png index bf9897cf84..71c6f2cf9b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_112.png and b/TMessagesProj/src/main/assets/emoji/3_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_113.png b/TMessagesProj/src/main/assets/emoji/3_113.png index 719c29d1ef..a6a944973f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_113.png and b/TMessagesProj/src/main/assets/emoji/3_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_114.png b/TMessagesProj/src/main/assets/emoji/3_114.png index 9238accfde..1af83a59f8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_114.png and b/TMessagesProj/src/main/assets/emoji/3_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_115.png b/TMessagesProj/src/main/assets/emoji/3_115.png index 2643a8668a..255697bd32 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_115.png and b/TMessagesProj/src/main/assets/emoji/3_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_116.png b/TMessagesProj/src/main/assets/emoji/3_116.png index b62b0d0f02..8d383c516f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_116.png and b/TMessagesProj/src/main/assets/emoji/3_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_117.png b/TMessagesProj/src/main/assets/emoji/3_117.png index d63c9d2dbe..8c26ef3e3d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_117.png and b/TMessagesProj/src/main/assets/emoji/3_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_118.png b/TMessagesProj/src/main/assets/emoji/3_118.png index 0ccca11769..7aa3e823f9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_118.png and b/TMessagesProj/src/main/assets/emoji/3_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_119.png b/TMessagesProj/src/main/assets/emoji/3_119.png index 2b81f05471..539aca3d96 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_119.png and b/TMessagesProj/src/main/assets/emoji/3_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_12.png b/TMessagesProj/src/main/assets/emoji/3_12.png index 0f5c2847bd..cb02028025 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_12.png and b/TMessagesProj/src/main/assets/emoji/3_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_120.png b/TMessagesProj/src/main/assets/emoji/3_120.png index 4f331f5dcd..a043d87ac6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_120.png and b/TMessagesProj/src/main/assets/emoji/3_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_121.png b/TMessagesProj/src/main/assets/emoji/3_121.png index 9ee3e7118b..a6ed540051 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_121.png and b/TMessagesProj/src/main/assets/emoji/3_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_122.png b/TMessagesProj/src/main/assets/emoji/3_122.png index d16b50a658..2b31c6974f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_122.png and b/TMessagesProj/src/main/assets/emoji/3_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_123.png b/TMessagesProj/src/main/assets/emoji/3_123.png index a1b501376d..d1221a3160 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_123.png and b/TMessagesProj/src/main/assets/emoji/3_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_124.png b/TMessagesProj/src/main/assets/emoji/3_124.png index 6ec0b4023f..0003d2a7af 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_124.png and b/TMessagesProj/src/main/assets/emoji/3_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_125.png b/TMessagesProj/src/main/assets/emoji/3_125.png index 64d19098c1..ac00fd000c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_125.png and b/TMessagesProj/src/main/assets/emoji/3_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_126.png b/TMessagesProj/src/main/assets/emoji/3_126.png index f26100bfa1..5d3cb10747 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_126.png and b/TMessagesProj/src/main/assets/emoji/3_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_127.png b/TMessagesProj/src/main/assets/emoji/3_127.png index afd5d57a25..541e45d44a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_127.png and b/TMessagesProj/src/main/assets/emoji/3_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_128.png b/TMessagesProj/src/main/assets/emoji/3_128.png index 58fe617a00..a865957b03 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_128.png and b/TMessagesProj/src/main/assets/emoji/3_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_129.png b/TMessagesProj/src/main/assets/emoji/3_129.png index e1dea49ff6..31ab6e33e6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_129.png and b/TMessagesProj/src/main/assets/emoji/3_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_13.png b/TMessagesProj/src/main/assets/emoji/3_13.png index 8fdc1212a9..2879d09492 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_13.png and b/TMessagesProj/src/main/assets/emoji/3_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_130.png b/TMessagesProj/src/main/assets/emoji/3_130.png index 07fec112bc..d7c4b8211e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_130.png and b/TMessagesProj/src/main/assets/emoji/3_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_131.png b/TMessagesProj/src/main/assets/emoji/3_131.png index 9be8df9359..208ba4d5f8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_131.png and b/TMessagesProj/src/main/assets/emoji/3_131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_132.png b/TMessagesProj/src/main/assets/emoji/3_132.png index 2857930d9b..d6e01a1546 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_132.png and b/TMessagesProj/src/main/assets/emoji/3_132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_133.png b/TMessagesProj/src/main/assets/emoji/3_133.png index e487ad9eec..ae50b717a0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_133.png and b/TMessagesProj/src/main/assets/emoji/3_133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_134.png b/TMessagesProj/src/main/assets/emoji/3_134.png index a49a08d387..b12f6d17d2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_134.png and b/TMessagesProj/src/main/assets/emoji/3_134.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_135.png b/TMessagesProj/src/main/assets/emoji/3_135.png index 7389991dab..6824f997a5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_135.png and b/TMessagesProj/src/main/assets/emoji/3_135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_136.png b/TMessagesProj/src/main/assets/emoji/3_136.png index 98d828e5b0..d97ee83d58 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_136.png and b/TMessagesProj/src/main/assets/emoji/3_136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_137.png b/TMessagesProj/src/main/assets/emoji/3_137.png index 3c7d144d5a..91b97b3853 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_137.png and b/TMessagesProj/src/main/assets/emoji/3_137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_138.png b/TMessagesProj/src/main/assets/emoji/3_138.png index d44bc27419..f62970b71e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_138.png and b/TMessagesProj/src/main/assets/emoji/3_138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_139.png b/TMessagesProj/src/main/assets/emoji/3_139.png index 053806a272..bced608660 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_139.png and b/TMessagesProj/src/main/assets/emoji/3_139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_14.png b/TMessagesProj/src/main/assets/emoji/3_14.png index 4320770655..bba0c84789 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_14.png and b/TMessagesProj/src/main/assets/emoji/3_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_140.png b/TMessagesProj/src/main/assets/emoji/3_140.png index e69e29091f..9f825e7b24 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_140.png and b/TMessagesProj/src/main/assets/emoji/3_140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_141.png b/TMessagesProj/src/main/assets/emoji/3_141.png index dbf49877ef..fcccfd775b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_141.png and b/TMessagesProj/src/main/assets/emoji/3_141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_142.png b/TMessagesProj/src/main/assets/emoji/3_142.png index 74c18374ce..637d3eec85 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_142.png and b/TMessagesProj/src/main/assets/emoji/3_142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_143.png b/TMessagesProj/src/main/assets/emoji/3_143.png index bc856a1e24..b3ff680452 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_143.png and b/TMessagesProj/src/main/assets/emoji/3_143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_144.png b/TMessagesProj/src/main/assets/emoji/3_144.png index 2c3db58adb..26c06e6e77 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_144.png and b/TMessagesProj/src/main/assets/emoji/3_144.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_145.png b/TMessagesProj/src/main/assets/emoji/3_145.png index 1ee1cb438e..cc0e7c9c6b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_145.png and b/TMessagesProj/src/main/assets/emoji/3_145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_146.png b/TMessagesProj/src/main/assets/emoji/3_146.png index 75afb133ab..70ce0ef501 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_146.png and b/TMessagesProj/src/main/assets/emoji/3_146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_147.png b/TMessagesProj/src/main/assets/emoji/3_147.png index adc4c2debe..6feb0d1fa6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_147.png and b/TMessagesProj/src/main/assets/emoji/3_147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_148.png b/TMessagesProj/src/main/assets/emoji/3_148.png index 2ae5270b04..a985ec9834 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_148.png and b/TMessagesProj/src/main/assets/emoji/3_148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_149.png b/TMessagesProj/src/main/assets/emoji/3_149.png index a95a150a13..edcca77171 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_149.png and b/TMessagesProj/src/main/assets/emoji/3_149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_15.png b/TMessagesProj/src/main/assets/emoji/3_15.png index 57033d6351..9c79668408 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_15.png and b/TMessagesProj/src/main/assets/emoji/3_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_150.png b/TMessagesProj/src/main/assets/emoji/3_150.png index a336ae33e0..cc0d2dd704 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_150.png and b/TMessagesProj/src/main/assets/emoji/3_150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_151.png b/TMessagesProj/src/main/assets/emoji/3_151.png index 6a649b3e6a..fec14cbac4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_151.png and b/TMessagesProj/src/main/assets/emoji/3_151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_152.png b/TMessagesProj/src/main/assets/emoji/3_152.png index 111e15aa27..7810d4d021 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_152.png and b/TMessagesProj/src/main/assets/emoji/3_152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_153.png b/TMessagesProj/src/main/assets/emoji/3_153.png index 477a990f29..47797c8e9b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_153.png and b/TMessagesProj/src/main/assets/emoji/3_153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_154.png b/TMessagesProj/src/main/assets/emoji/3_154.png index a7ceaefbb0..6d7566c58d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_154.png and b/TMessagesProj/src/main/assets/emoji/3_154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_155.png b/TMessagesProj/src/main/assets/emoji/3_155.png index 6b0c48774d..0145ce93d2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_155.png and b/TMessagesProj/src/main/assets/emoji/3_155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_156.png b/TMessagesProj/src/main/assets/emoji/3_156.png index 7818390103..c38d33e400 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_156.png and b/TMessagesProj/src/main/assets/emoji/3_156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_157.png b/TMessagesProj/src/main/assets/emoji/3_157.png index 6aca1fff0f..440d59245f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_157.png and b/TMessagesProj/src/main/assets/emoji/3_157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_158.png b/TMessagesProj/src/main/assets/emoji/3_158.png index e71a9a2738..4f00fb16d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_158.png and b/TMessagesProj/src/main/assets/emoji/3_158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_159.png b/TMessagesProj/src/main/assets/emoji/3_159.png index ac24ed162f..8e003410fb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_159.png and b/TMessagesProj/src/main/assets/emoji/3_159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_16.png b/TMessagesProj/src/main/assets/emoji/3_16.png index fb83a6d127..83035e7678 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_16.png and b/TMessagesProj/src/main/assets/emoji/3_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_160.png b/TMessagesProj/src/main/assets/emoji/3_160.png index 9b164ae5bb..129f6fcabe 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_160.png and b/TMessagesProj/src/main/assets/emoji/3_160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_161.png b/TMessagesProj/src/main/assets/emoji/3_161.png index 4462873022..ad5da9df65 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_161.png and b/TMessagesProj/src/main/assets/emoji/3_161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_162.png b/TMessagesProj/src/main/assets/emoji/3_162.png index 157ac001a2..107e86fafb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_162.png and b/TMessagesProj/src/main/assets/emoji/3_162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_163.png b/TMessagesProj/src/main/assets/emoji/3_163.png index e882a9f711..d1465ad6b0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_163.png and b/TMessagesProj/src/main/assets/emoji/3_163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_164.png b/TMessagesProj/src/main/assets/emoji/3_164.png index bfbcc194fd..3ff3740011 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_164.png and b/TMessagesProj/src/main/assets/emoji/3_164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_165.png b/TMessagesProj/src/main/assets/emoji/3_165.png index 47ac39ad7b..9ae76cc067 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_165.png and b/TMessagesProj/src/main/assets/emoji/3_165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_166.png b/TMessagesProj/src/main/assets/emoji/3_166.png index 13d17bade5..8f6e398b3e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_166.png and b/TMessagesProj/src/main/assets/emoji/3_166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_167.png b/TMessagesProj/src/main/assets/emoji/3_167.png index 249ad4804d..e773b03cf2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_167.png and b/TMessagesProj/src/main/assets/emoji/3_167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_168.png b/TMessagesProj/src/main/assets/emoji/3_168.png index adc3d03be4..cb0bc65993 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_168.png and b/TMessagesProj/src/main/assets/emoji/3_168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_169.png b/TMessagesProj/src/main/assets/emoji/3_169.png index ae4b29e75c..1ac5e2f0ce 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_169.png and b/TMessagesProj/src/main/assets/emoji/3_169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_17.png b/TMessagesProj/src/main/assets/emoji/3_17.png index eedb181c7c..923b0d351f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_17.png and b/TMessagesProj/src/main/assets/emoji/3_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_170.png b/TMessagesProj/src/main/assets/emoji/3_170.png index 4e42f8c132..aa732022c9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_170.png and b/TMessagesProj/src/main/assets/emoji/3_170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_171.png b/TMessagesProj/src/main/assets/emoji/3_171.png index c94ad4d59f..2436f24362 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_171.png and b/TMessagesProj/src/main/assets/emoji/3_171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_172.png b/TMessagesProj/src/main/assets/emoji/3_172.png index 8e4d951e0e..75fc04a505 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_172.png and b/TMessagesProj/src/main/assets/emoji/3_172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_173.png b/TMessagesProj/src/main/assets/emoji/3_173.png index c3f8675a60..2d6558e681 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_173.png and b/TMessagesProj/src/main/assets/emoji/3_173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_174.png b/TMessagesProj/src/main/assets/emoji/3_174.png index b87222c848..a8d7d5687f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_174.png and b/TMessagesProj/src/main/assets/emoji/3_174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_175.png b/TMessagesProj/src/main/assets/emoji/3_175.png index 620ae1c025..91ebe20aa9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_175.png and b/TMessagesProj/src/main/assets/emoji/3_175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_176.png b/TMessagesProj/src/main/assets/emoji/3_176.png index 7f96a5eb5b..798772919c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_176.png and b/TMessagesProj/src/main/assets/emoji/3_176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_177.png b/TMessagesProj/src/main/assets/emoji/3_177.png index 72a5bec52f..0cc67d8ccb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_177.png and b/TMessagesProj/src/main/assets/emoji/3_177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_178.png b/TMessagesProj/src/main/assets/emoji/3_178.png index 132735e375..83675475bd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_178.png and b/TMessagesProj/src/main/assets/emoji/3_178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_179.png b/TMessagesProj/src/main/assets/emoji/3_179.png index 3d546d9b77..1acfd4be31 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_179.png and b/TMessagesProj/src/main/assets/emoji/3_179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_18.png b/TMessagesProj/src/main/assets/emoji/3_18.png index a4e7239b1d..ac3a1b21c0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_18.png and b/TMessagesProj/src/main/assets/emoji/3_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_180.png b/TMessagesProj/src/main/assets/emoji/3_180.png index 517f7a7024..23f77e8402 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_180.png and b/TMessagesProj/src/main/assets/emoji/3_180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_181.png b/TMessagesProj/src/main/assets/emoji/3_181.png index 08a8a8c9d4..12029e7797 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_181.png and b/TMessagesProj/src/main/assets/emoji/3_181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_182.png b/TMessagesProj/src/main/assets/emoji/3_182.png index 051ca9297d..ae844e9f49 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_182.png and b/TMessagesProj/src/main/assets/emoji/3_182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_183.png b/TMessagesProj/src/main/assets/emoji/3_183.png index 59923a8d56..4cea9cfca8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_183.png and b/TMessagesProj/src/main/assets/emoji/3_183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_184.png b/TMessagesProj/src/main/assets/emoji/3_184.png index 969ea00f21..fe33279a9e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_184.png and b/TMessagesProj/src/main/assets/emoji/3_184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_185.png b/TMessagesProj/src/main/assets/emoji/3_185.png index 54ffbc883b..8f0c445959 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_185.png and b/TMessagesProj/src/main/assets/emoji/3_185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_186.png b/TMessagesProj/src/main/assets/emoji/3_186.png index 6f1907368c..572a9634d9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_186.png and b/TMessagesProj/src/main/assets/emoji/3_186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_187.png b/TMessagesProj/src/main/assets/emoji/3_187.png index 07db02e98e..9f9ea72871 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_187.png and b/TMessagesProj/src/main/assets/emoji/3_187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_188.png b/TMessagesProj/src/main/assets/emoji/3_188.png index 30e92e0fcf..898c742bc8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_188.png and b/TMessagesProj/src/main/assets/emoji/3_188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_189.png b/TMessagesProj/src/main/assets/emoji/3_189.png index 48e25703e0..7a50ec9dfb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_189.png and b/TMessagesProj/src/main/assets/emoji/3_189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_19.png b/TMessagesProj/src/main/assets/emoji/3_19.png index 527b04eccb..b4a2511a78 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_19.png and b/TMessagesProj/src/main/assets/emoji/3_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_190.png b/TMessagesProj/src/main/assets/emoji/3_190.png index 36faa8ccfe..71755d6f65 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_190.png and b/TMessagesProj/src/main/assets/emoji/3_190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_191.png b/TMessagesProj/src/main/assets/emoji/3_191.png index 0c430e1874..a3316dd2e4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_191.png and b/TMessagesProj/src/main/assets/emoji/3_191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_192.png b/TMessagesProj/src/main/assets/emoji/3_192.png index 2aaec07bf1..d209dd60b8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_192.png and b/TMessagesProj/src/main/assets/emoji/3_192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_193.png b/TMessagesProj/src/main/assets/emoji/3_193.png index 39cdb2b411..e762702a66 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_193.png and b/TMessagesProj/src/main/assets/emoji/3_193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_194.png b/TMessagesProj/src/main/assets/emoji/3_194.png index 56b99c70fc..6670191bed 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_194.png and b/TMessagesProj/src/main/assets/emoji/3_194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_195.png b/TMessagesProj/src/main/assets/emoji/3_195.png index 5990aff42c..9519b6c1d8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_195.png and b/TMessagesProj/src/main/assets/emoji/3_195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_196.png b/TMessagesProj/src/main/assets/emoji/3_196.png index 5e1f12d1e8..d2df586dec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_196.png and b/TMessagesProj/src/main/assets/emoji/3_196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_197.png b/TMessagesProj/src/main/assets/emoji/3_197.png index 548f27c2ee..3596a06403 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_197.png and b/TMessagesProj/src/main/assets/emoji/3_197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_198.png b/TMessagesProj/src/main/assets/emoji/3_198.png index 6317ac6d0b..0b24087a11 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_198.png and b/TMessagesProj/src/main/assets/emoji/3_198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_199.png b/TMessagesProj/src/main/assets/emoji/3_199.png index 9d0a3db2c3..91cfe0aa82 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_199.png and b/TMessagesProj/src/main/assets/emoji/3_199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_2.png b/TMessagesProj/src/main/assets/emoji/3_2.png index ab845a6ce8..f3cde7be13 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_2.png and b/TMessagesProj/src/main/assets/emoji/3_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_20.png b/TMessagesProj/src/main/assets/emoji/3_20.png index c8ca7d3d24..02ac42c8b9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_20.png and b/TMessagesProj/src/main/assets/emoji/3_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_200.png b/TMessagesProj/src/main/assets/emoji/3_200.png index d1b585a1af..6a1b67a4dc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_200.png and b/TMessagesProj/src/main/assets/emoji/3_200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_201.png b/TMessagesProj/src/main/assets/emoji/3_201.png index a194eb53bb..aa2de0ac91 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_201.png and b/TMessagesProj/src/main/assets/emoji/3_201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_202.png b/TMessagesProj/src/main/assets/emoji/3_202.png index b291fdc3dc..59e6a89a55 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_202.png and b/TMessagesProj/src/main/assets/emoji/3_202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_203.png b/TMessagesProj/src/main/assets/emoji/3_203.png index 93701da265..f4235556e0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_203.png and b/TMessagesProj/src/main/assets/emoji/3_203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_204.png b/TMessagesProj/src/main/assets/emoji/3_204.png index 63b6b39907..dc695b0bd7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_204.png and b/TMessagesProj/src/main/assets/emoji/3_204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_205.png b/TMessagesProj/src/main/assets/emoji/3_205.png index 29f644c073..3c5d614ed3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_205.png and b/TMessagesProj/src/main/assets/emoji/3_205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_206.png b/TMessagesProj/src/main/assets/emoji/3_206.png index ffb6664a78..cfe019e451 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_206.png and b/TMessagesProj/src/main/assets/emoji/3_206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_207.png b/TMessagesProj/src/main/assets/emoji/3_207.png index 2ab7d4c55d..073f4a0121 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_207.png and b/TMessagesProj/src/main/assets/emoji/3_207.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_208.png b/TMessagesProj/src/main/assets/emoji/3_208.png index 567d14f42c..d5cdfa6621 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_208.png and b/TMessagesProj/src/main/assets/emoji/3_208.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_209.png b/TMessagesProj/src/main/assets/emoji/3_209.png index 4a4585f8c7..6c6c2fb345 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_209.png and b/TMessagesProj/src/main/assets/emoji/3_209.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_21.png b/TMessagesProj/src/main/assets/emoji/3_21.png index e1e6883b56..748ca32e77 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_21.png and b/TMessagesProj/src/main/assets/emoji/3_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_210.png b/TMessagesProj/src/main/assets/emoji/3_210.png index 581d0eca14..0359d36e83 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_210.png and b/TMessagesProj/src/main/assets/emoji/3_210.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_211.png b/TMessagesProj/src/main/assets/emoji/3_211.png index 1b2cdd5311..d5761b7f23 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_211.png and b/TMessagesProj/src/main/assets/emoji/3_211.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_212.png b/TMessagesProj/src/main/assets/emoji/3_212.png index 18f1426f54..b5dfa27bd0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_212.png and b/TMessagesProj/src/main/assets/emoji/3_212.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_213.png b/TMessagesProj/src/main/assets/emoji/3_213.png index 3e3fc916cd..66c4979a34 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_213.png and b/TMessagesProj/src/main/assets/emoji/3_213.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_214.png b/TMessagesProj/src/main/assets/emoji/3_214.png index 891b440601..848f7c0f3a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_214.png and b/TMessagesProj/src/main/assets/emoji/3_214.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_215.png b/TMessagesProj/src/main/assets/emoji/3_215.png index 3ee661ab03..bfda5b048d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_215.png and b/TMessagesProj/src/main/assets/emoji/3_215.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_216.png b/TMessagesProj/src/main/assets/emoji/3_216.png index f4140a2a00..4b6a2a9a4d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_216.png and b/TMessagesProj/src/main/assets/emoji/3_216.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_217.png b/TMessagesProj/src/main/assets/emoji/3_217.png index ee1927430f..d597533ad1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_217.png and b/TMessagesProj/src/main/assets/emoji/3_217.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_218.png b/TMessagesProj/src/main/assets/emoji/3_218.png index f5a335a190..45217fffd7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_218.png and b/TMessagesProj/src/main/assets/emoji/3_218.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_219.png b/TMessagesProj/src/main/assets/emoji/3_219.png index 422c65c129..feaebc353a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_219.png and b/TMessagesProj/src/main/assets/emoji/3_219.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_22.png b/TMessagesProj/src/main/assets/emoji/3_22.png index e9bac7f93c..8e8c42281e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_22.png and b/TMessagesProj/src/main/assets/emoji/3_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_220.png b/TMessagesProj/src/main/assets/emoji/3_220.png index 1380d8fdb1..cbd4b8aa8e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_220.png and b/TMessagesProj/src/main/assets/emoji/3_220.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_221.png b/TMessagesProj/src/main/assets/emoji/3_221.png index 513376f8df..fe4df32d0e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_221.png and b/TMessagesProj/src/main/assets/emoji/3_221.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_222.png b/TMessagesProj/src/main/assets/emoji/3_222.png index 6b897e8d51..38f7f7157e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_222.png and b/TMessagesProj/src/main/assets/emoji/3_222.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_223.png b/TMessagesProj/src/main/assets/emoji/3_223.png index 26a0a12dea..a14d31e954 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_223.png and b/TMessagesProj/src/main/assets/emoji/3_223.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_224.png b/TMessagesProj/src/main/assets/emoji/3_224.png index 2314c914eb..6cacfa38bc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_224.png and b/TMessagesProj/src/main/assets/emoji/3_224.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_225.png b/TMessagesProj/src/main/assets/emoji/3_225.png index 8ba2d6b809..07c51f79b5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_225.png and b/TMessagesProj/src/main/assets/emoji/3_225.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_226.png b/TMessagesProj/src/main/assets/emoji/3_226.png index 361df5a98e..1b2cf4ced2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_226.png and b/TMessagesProj/src/main/assets/emoji/3_226.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_227.png b/TMessagesProj/src/main/assets/emoji/3_227.png index 93465f8223..c8bd0fbeab 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_227.png and b/TMessagesProj/src/main/assets/emoji/3_227.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_228.png b/TMessagesProj/src/main/assets/emoji/3_228.png index 3933a71d88..a2080545ad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_228.png and b/TMessagesProj/src/main/assets/emoji/3_228.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_229.png b/TMessagesProj/src/main/assets/emoji/3_229.png index 4e9fdb52e4..c9722ab8a7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_229.png and b/TMessagesProj/src/main/assets/emoji/3_229.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_23.png b/TMessagesProj/src/main/assets/emoji/3_23.png index f64672e66f..bfdb0f636d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_23.png and b/TMessagesProj/src/main/assets/emoji/3_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_230.png b/TMessagesProj/src/main/assets/emoji/3_230.png index eaa31866be..e7d852ff20 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_230.png and b/TMessagesProj/src/main/assets/emoji/3_230.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_231.png b/TMessagesProj/src/main/assets/emoji/3_231.png index 1683b55ba8..5060af929c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_231.png and b/TMessagesProj/src/main/assets/emoji/3_231.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_232.png b/TMessagesProj/src/main/assets/emoji/3_232.png index 76d344c3bb..94abba6f90 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_232.png and b/TMessagesProj/src/main/assets/emoji/3_232.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_233.png b/TMessagesProj/src/main/assets/emoji/3_233.png index 4b28a0b3da..caa6fd1dfd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_233.png and b/TMessagesProj/src/main/assets/emoji/3_233.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_234.png b/TMessagesProj/src/main/assets/emoji/3_234.png index d2c658665b..09ea10fc58 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_234.png and b/TMessagesProj/src/main/assets/emoji/3_234.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_235.png b/TMessagesProj/src/main/assets/emoji/3_235.png index ca6b9e7da9..91056e6feb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_235.png and b/TMessagesProj/src/main/assets/emoji/3_235.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_236.png b/TMessagesProj/src/main/assets/emoji/3_236.png index 9d6cf6c931..5fe62acc63 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_236.png and b/TMessagesProj/src/main/assets/emoji/3_236.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_237.png b/TMessagesProj/src/main/assets/emoji/3_237.png index 845f7705bd..d9e70e6f02 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_237.png and b/TMessagesProj/src/main/assets/emoji/3_237.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_238.png b/TMessagesProj/src/main/assets/emoji/3_238.png index 6f2b940e04..6739f972ed 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_238.png and b/TMessagesProj/src/main/assets/emoji/3_238.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_239.png b/TMessagesProj/src/main/assets/emoji/3_239.png index 92b36db5c4..cbb4d618f1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_239.png and b/TMessagesProj/src/main/assets/emoji/3_239.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_24.png b/TMessagesProj/src/main/assets/emoji/3_24.png index 2d88555f2f..a1423cba28 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_24.png and b/TMessagesProj/src/main/assets/emoji/3_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_240.png b/TMessagesProj/src/main/assets/emoji/3_240.png index 0f4150e4bb..0fc50726f4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_240.png and b/TMessagesProj/src/main/assets/emoji/3_240.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_241.png b/TMessagesProj/src/main/assets/emoji/3_241.png index c7513dd8eb..d85aaffc34 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_241.png and b/TMessagesProj/src/main/assets/emoji/3_241.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_242.png b/TMessagesProj/src/main/assets/emoji/3_242.png index ce57ea2077..98d9103c7e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_242.png and b/TMessagesProj/src/main/assets/emoji/3_242.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_243.png b/TMessagesProj/src/main/assets/emoji/3_243.png index f7c9132d13..01016eed5f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_243.png and b/TMessagesProj/src/main/assets/emoji/3_243.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_244.png b/TMessagesProj/src/main/assets/emoji/3_244.png index 8519c04f0f..c6bdfe6fe3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_244.png and b/TMessagesProj/src/main/assets/emoji/3_244.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_245.png b/TMessagesProj/src/main/assets/emoji/3_245.png index b1582885a6..c0e27957c6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_245.png and b/TMessagesProj/src/main/assets/emoji/3_245.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_246.png b/TMessagesProj/src/main/assets/emoji/3_246.png index 48fda9cb66..0a630b5cbf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_246.png and b/TMessagesProj/src/main/assets/emoji/3_246.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_247.png b/TMessagesProj/src/main/assets/emoji/3_247.png index 946c4c3c88..582c7bcf43 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_247.png and b/TMessagesProj/src/main/assets/emoji/3_247.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_248.png b/TMessagesProj/src/main/assets/emoji/3_248.png index 69a8e39a2d..d718dd1bb5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_248.png and b/TMessagesProj/src/main/assets/emoji/3_248.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_249.png b/TMessagesProj/src/main/assets/emoji/3_249.png index 06b5b16b39..85f581d467 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_249.png and b/TMessagesProj/src/main/assets/emoji/3_249.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_25.png b/TMessagesProj/src/main/assets/emoji/3_25.png index ff871b4f70..e8b2434b44 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_25.png and b/TMessagesProj/src/main/assets/emoji/3_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_250.png b/TMessagesProj/src/main/assets/emoji/3_250.png index b76a299559..8ef537e5bb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_250.png and b/TMessagesProj/src/main/assets/emoji/3_250.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_251.png b/TMessagesProj/src/main/assets/emoji/3_251.png index d35920be1e..61706cbdc8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_251.png and b/TMessagesProj/src/main/assets/emoji/3_251.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_252.png b/TMessagesProj/src/main/assets/emoji/3_252.png index 0f0d25a43a..b8ab8f8711 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_252.png and b/TMessagesProj/src/main/assets/emoji/3_252.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_253.png b/TMessagesProj/src/main/assets/emoji/3_253.png index 09354436be..6cd4e3b740 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_253.png and b/TMessagesProj/src/main/assets/emoji/3_253.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_254.png b/TMessagesProj/src/main/assets/emoji/3_254.png index 33dece08eb..d7aece2790 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_254.png and b/TMessagesProj/src/main/assets/emoji/3_254.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_255.png b/TMessagesProj/src/main/assets/emoji/3_255.png index 68f820dcc1..5f7f06188a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_255.png and b/TMessagesProj/src/main/assets/emoji/3_255.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_256.png b/TMessagesProj/src/main/assets/emoji/3_256.png index fc4fe1f537..719f3baf02 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_256.png and b/TMessagesProj/src/main/assets/emoji/3_256.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_257.png b/TMessagesProj/src/main/assets/emoji/3_257.png index 27639b1b8d..c130ed53ca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_257.png and b/TMessagesProj/src/main/assets/emoji/3_257.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_258.png b/TMessagesProj/src/main/assets/emoji/3_258.png index b15b16c4c2..9d7637fdcd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_258.png and b/TMessagesProj/src/main/assets/emoji/3_258.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_259.png b/TMessagesProj/src/main/assets/emoji/3_259.png index b8a4bc6bd1..66e022ec5f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_259.png and b/TMessagesProj/src/main/assets/emoji/3_259.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_26.png b/TMessagesProj/src/main/assets/emoji/3_26.png index d0180f779f..59dc381768 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_26.png and b/TMessagesProj/src/main/assets/emoji/3_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_260.png b/TMessagesProj/src/main/assets/emoji/3_260.png index c4350846b2..79df95054e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_260.png and b/TMessagesProj/src/main/assets/emoji/3_260.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_261.png b/TMessagesProj/src/main/assets/emoji/3_261.png index 6f90586f60..f90df5661b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_261.png and b/TMessagesProj/src/main/assets/emoji/3_261.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_262.png b/TMessagesProj/src/main/assets/emoji/3_262.png index a5f1bb0162..b05aa7c368 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_262.png and b/TMessagesProj/src/main/assets/emoji/3_262.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_263.png b/TMessagesProj/src/main/assets/emoji/3_263.png index 778c45ad30..50751116f6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_263.png and b/TMessagesProj/src/main/assets/emoji/3_263.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_264.png b/TMessagesProj/src/main/assets/emoji/3_264.png index 18c3987f8d..575abebfd0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_264.png and b/TMessagesProj/src/main/assets/emoji/3_264.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_265.png b/TMessagesProj/src/main/assets/emoji/3_265.png index 20ba7e6ffa..4065e4a03a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_265.png and b/TMessagesProj/src/main/assets/emoji/3_265.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_266.png b/TMessagesProj/src/main/assets/emoji/3_266.png index e3cadbbf6c..68f49cdc06 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_266.png and b/TMessagesProj/src/main/assets/emoji/3_266.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_267.png b/TMessagesProj/src/main/assets/emoji/3_267.png index c907f7a5ed..7ef0c85a98 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_267.png and b/TMessagesProj/src/main/assets/emoji/3_267.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_268.png b/TMessagesProj/src/main/assets/emoji/3_268.png index 829fd1d6d8..10e1d82497 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_268.png and b/TMessagesProj/src/main/assets/emoji/3_268.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_269.png b/TMessagesProj/src/main/assets/emoji/3_269.png index 238dcf903d..3b40ee8c82 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_269.png and b/TMessagesProj/src/main/assets/emoji/3_269.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_27.png b/TMessagesProj/src/main/assets/emoji/3_27.png index d719cb6ff3..f92604e635 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_27.png and b/TMessagesProj/src/main/assets/emoji/3_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_270.png b/TMessagesProj/src/main/assets/emoji/3_270.png index 74bf5cdc6a..5745c2c376 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_270.png and b/TMessagesProj/src/main/assets/emoji/3_270.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_271.png b/TMessagesProj/src/main/assets/emoji/3_271.png index fd65885013..fc678ae384 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_271.png and b/TMessagesProj/src/main/assets/emoji/3_271.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_272.png b/TMessagesProj/src/main/assets/emoji/3_272.png index 8c41b11040..2cdbedbea9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_272.png and b/TMessagesProj/src/main/assets/emoji/3_272.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_273.png b/TMessagesProj/src/main/assets/emoji/3_273.png index f1699de424..c75c4a2c54 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_273.png and b/TMessagesProj/src/main/assets/emoji/3_273.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_274.png b/TMessagesProj/src/main/assets/emoji/3_274.png index 8468121fb8..b60d92d80b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_274.png and b/TMessagesProj/src/main/assets/emoji/3_274.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_275.png b/TMessagesProj/src/main/assets/emoji/3_275.png index 1650f5a05f..59a4cf7345 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_275.png and b/TMessagesProj/src/main/assets/emoji/3_275.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_276.png b/TMessagesProj/src/main/assets/emoji/3_276.png index d4755ab9fd..0de9a43f4c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_276.png and b/TMessagesProj/src/main/assets/emoji/3_276.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_277.png b/TMessagesProj/src/main/assets/emoji/3_277.png index fd241a2c33..54a386d098 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_277.png and b/TMessagesProj/src/main/assets/emoji/3_277.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_278.png b/TMessagesProj/src/main/assets/emoji/3_278.png index b49bad17db..fd72d55337 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_278.png and b/TMessagesProj/src/main/assets/emoji/3_278.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_279.png b/TMessagesProj/src/main/assets/emoji/3_279.png index e05ab63f0e..9ca5a39a8f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_279.png and b/TMessagesProj/src/main/assets/emoji/3_279.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_28.png b/TMessagesProj/src/main/assets/emoji/3_28.png index 87225ca2f8..22846039d2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_28.png and b/TMessagesProj/src/main/assets/emoji/3_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_280.png b/TMessagesProj/src/main/assets/emoji/3_280.png index 09fa27f0f3..8653628b68 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_280.png and b/TMessagesProj/src/main/assets/emoji/3_280.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_281.png b/TMessagesProj/src/main/assets/emoji/3_281.png index 86eccae16c..8c33c6dd31 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_281.png and b/TMessagesProj/src/main/assets/emoji/3_281.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_282.png b/TMessagesProj/src/main/assets/emoji/3_282.png index c6bd9fe458..5da7e1a72b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_282.png and b/TMessagesProj/src/main/assets/emoji/3_282.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_283.png b/TMessagesProj/src/main/assets/emoji/3_283.png index 3b308fa795..cf151c0dfe 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_283.png and b/TMessagesProj/src/main/assets/emoji/3_283.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_284.png b/TMessagesProj/src/main/assets/emoji/3_284.png index 72d51310d6..1ff8183b77 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_284.png and b/TMessagesProj/src/main/assets/emoji/3_284.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_285.png b/TMessagesProj/src/main/assets/emoji/3_285.png index 4b5cfb5719..806d44fe06 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_285.png and b/TMessagesProj/src/main/assets/emoji/3_285.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_286.png b/TMessagesProj/src/main/assets/emoji/3_286.png index debb1d431e..eb4b71b049 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_286.png and b/TMessagesProj/src/main/assets/emoji/3_286.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_287.png b/TMessagesProj/src/main/assets/emoji/3_287.png index 8b4873610c..c9b80261b6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_287.png and b/TMessagesProj/src/main/assets/emoji/3_287.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_288.png b/TMessagesProj/src/main/assets/emoji/3_288.png index 9cc03c3a16..74cf30d311 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_288.png and b/TMessagesProj/src/main/assets/emoji/3_288.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_289.png b/TMessagesProj/src/main/assets/emoji/3_289.png index f31bbe4270..83793140d4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_289.png and b/TMessagesProj/src/main/assets/emoji/3_289.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_29.png b/TMessagesProj/src/main/assets/emoji/3_29.png index 08804f923e..6caab11732 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_29.png and b/TMessagesProj/src/main/assets/emoji/3_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_290.png b/TMessagesProj/src/main/assets/emoji/3_290.png index 79219ea633..6858fd346f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_290.png and b/TMessagesProj/src/main/assets/emoji/3_290.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_291.png b/TMessagesProj/src/main/assets/emoji/3_291.png index 3ae0090ee4..fccc7dfb23 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_291.png and b/TMessagesProj/src/main/assets/emoji/3_291.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_292.png b/TMessagesProj/src/main/assets/emoji/3_292.png index cb8ee7646f..723a57ac30 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_292.png and b/TMessagesProj/src/main/assets/emoji/3_292.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_293.png b/TMessagesProj/src/main/assets/emoji/3_293.png index f4ae03a399..689c86c500 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_293.png and b/TMessagesProj/src/main/assets/emoji/3_293.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_294.png b/TMessagesProj/src/main/assets/emoji/3_294.png index bc69e4f64d..a59b294d8e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_294.png and b/TMessagesProj/src/main/assets/emoji/3_294.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_295.png b/TMessagesProj/src/main/assets/emoji/3_295.png index 131c90114e..af15c116fc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_295.png and b/TMessagesProj/src/main/assets/emoji/3_295.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_296.png b/TMessagesProj/src/main/assets/emoji/3_296.png index bd0214b385..2ae982e77a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_296.png and b/TMessagesProj/src/main/assets/emoji/3_296.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_297.png b/TMessagesProj/src/main/assets/emoji/3_297.png index d15600c703..dfc1d20e61 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_297.png and b/TMessagesProj/src/main/assets/emoji/3_297.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_298.png b/TMessagesProj/src/main/assets/emoji/3_298.png index 3af4556046..2f9095d485 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_298.png and b/TMessagesProj/src/main/assets/emoji/3_298.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_299.png b/TMessagesProj/src/main/assets/emoji/3_299.png index ffc4f0064c..97d0bc0dda 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_299.png and b/TMessagesProj/src/main/assets/emoji/3_299.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_3.png b/TMessagesProj/src/main/assets/emoji/3_3.png index 4a90036144..af4adbb7ef 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_3.png and b/TMessagesProj/src/main/assets/emoji/3_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_30.png b/TMessagesProj/src/main/assets/emoji/3_30.png index 63ae1f5648..a2ed23e703 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_30.png and b/TMessagesProj/src/main/assets/emoji/3_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_300.png b/TMessagesProj/src/main/assets/emoji/3_300.png index ed747721f5..38ea696243 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_300.png and b/TMessagesProj/src/main/assets/emoji/3_300.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_301.png b/TMessagesProj/src/main/assets/emoji/3_301.png index 69e79cf689..9d4e5bd00b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_301.png and b/TMessagesProj/src/main/assets/emoji/3_301.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_302.png b/TMessagesProj/src/main/assets/emoji/3_302.png index 68328546d7..bd21725fc1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_302.png and b/TMessagesProj/src/main/assets/emoji/3_302.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_303.png b/TMessagesProj/src/main/assets/emoji/3_303.png index c54bf206a0..8ecbbda7af 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_303.png and b/TMessagesProj/src/main/assets/emoji/3_303.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_304.png b/TMessagesProj/src/main/assets/emoji/3_304.png index b121001402..9d4b609c89 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_304.png and b/TMessagesProj/src/main/assets/emoji/3_304.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_305.png b/TMessagesProj/src/main/assets/emoji/3_305.png index cc352daff3..d35b467870 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_305.png and b/TMessagesProj/src/main/assets/emoji/3_305.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_306.png b/TMessagesProj/src/main/assets/emoji/3_306.png index dd0f5a9fa0..42b4d0bf31 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_306.png and b/TMessagesProj/src/main/assets/emoji/3_306.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_307.png b/TMessagesProj/src/main/assets/emoji/3_307.png index 01a68d4d6b..1b03bd9ed9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_307.png and b/TMessagesProj/src/main/assets/emoji/3_307.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_308.png b/TMessagesProj/src/main/assets/emoji/3_308.png index 35dcddd972..e9f79ab600 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_308.png and b/TMessagesProj/src/main/assets/emoji/3_308.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_309.png b/TMessagesProj/src/main/assets/emoji/3_309.png index bae7d3fcf8..b890a705cf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_309.png and b/TMessagesProj/src/main/assets/emoji/3_309.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_31.png b/TMessagesProj/src/main/assets/emoji/3_31.png index 3433ae176a..19f0238a5a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_31.png and b/TMessagesProj/src/main/assets/emoji/3_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_310.png b/TMessagesProj/src/main/assets/emoji/3_310.png index e0efc6059d..ff8c2bb091 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_310.png and b/TMessagesProj/src/main/assets/emoji/3_310.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_311.png b/TMessagesProj/src/main/assets/emoji/3_311.png index ffadf3305b..e8307dc8a3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_311.png and b/TMessagesProj/src/main/assets/emoji/3_311.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_312.png b/TMessagesProj/src/main/assets/emoji/3_312.png index b54e77ea7c..8e8b144234 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_312.png and b/TMessagesProj/src/main/assets/emoji/3_312.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_313.png b/TMessagesProj/src/main/assets/emoji/3_313.png index a987c6d618..681a09a1d5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_313.png and b/TMessagesProj/src/main/assets/emoji/3_313.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_314.png b/TMessagesProj/src/main/assets/emoji/3_314.png index 13965e9be2..85ae67746b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_314.png and b/TMessagesProj/src/main/assets/emoji/3_314.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_315.png b/TMessagesProj/src/main/assets/emoji/3_315.png index 1921710c36..357172d212 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_315.png and b/TMessagesProj/src/main/assets/emoji/3_315.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_316.png b/TMessagesProj/src/main/assets/emoji/3_316.png index 76959be293..5c3ec11750 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_316.png and b/TMessagesProj/src/main/assets/emoji/3_316.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_317.png b/TMessagesProj/src/main/assets/emoji/3_317.png index 3b6830928c..1555aed990 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_317.png and b/TMessagesProj/src/main/assets/emoji/3_317.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_318.png b/TMessagesProj/src/main/assets/emoji/3_318.png index 05152f9b13..ca5100cf14 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_318.png and b/TMessagesProj/src/main/assets/emoji/3_318.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_319.png b/TMessagesProj/src/main/assets/emoji/3_319.png index 0bed3dfc56..29bcee4127 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_319.png and b/TMessagesProj/src/main/assets/emoji/3_319.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_32.png b/TMessagesProj/src/main/assets/emoji/3_32.png index d174327bcc..1ff701143a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_32.png and b/TMessagesProj/src/main/assets/emoji/3_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_320.png b/TMessagesProj/src/main/assets/emoji/3_320.png index 858cd09860..a155ddaa18 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_320.png and b/TMessagesProj/src/main/assets/emoji/3_320.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_321.png b/TMessagesProj/src/main/assets/emoji/3_321.png index bf76fd6464..f804cd5f06 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_321.png and b/TMessagesProj/src/main/assets/emoji/3_321.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_322.png b/TMessagesProj/src/main/assets/emoji/3_322.png index 0a336e057c..91cb76097a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_322.png and b/TMessagesProj/src/main/assets/emoji/3_322.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_323.png b/TMessagesProj/src/main/assets/emoji/3_323.png index 1524ecc2c6..1e22bc1e12 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_323.png and b/TMessagesProj/src/main/assets/emoji/3_323.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_324.png b/TMessagesProj/src/main/assets/emoji/3_324.png index ba8ce58239..f04643819c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_324.png and b/TMessagesProj/src/main/assets/emoji/3_324.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_325.png b/TMessagesProj/src/main/assets/emoji/3_325.png index cbf9842520..ebf0f1a4d4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_325.png and b/TMessagesProj/src/main/assets/emoji/3_325.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_326.png b/TMessagesProj/src/main/assets/emoji/3_326.png index 33d578c219..6fbe82d9b1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_326.png and b/TMessagesProj/src/main/assets/emoji/3_326.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_327.png b/TMessagesProj/src/main/assets/emoji/3_327.png index f2504f97a1..83dfc68075 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_327.png and b/TMessagesProj/src/main/assets/emoji/3_327.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_328.png b/TMessagesProj/src/main/assets/emoji/3_328.png index fcc9a684a4..b1e54eafb4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_328.png and b/TMessagesProj/src/main/assets/emoji/3_328.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_329.png b/TMessagesProj/src/main/assets/emoji/3_329.png index aafc456463..885079450a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_329.png and b/TMessagesProj/src/main/assets/emoji/3_329.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_33.png b/TMessagesProj/src/main/assets/emoji/3_33.png index 65de704502..0db1ae36a6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_33.png and b/TMessagesProj/src/main/assets/emoji/3_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_330.png b/TMessagesProj/src/main/assets/emoji/3_330.png index d99b613ad3..d6ee309886 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_330.png and b/TMessagesProj/src/main/assets/emoji/3_330.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_331.png b/TMessagesProj/src/main/assets/emoji/3_331.png index fef7515822..05a0362c3c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_331.png and b/TMessagesProj/src/main/assets/emoji/3_331.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_332.png b/TMessagesProj/src/main/assets/emoji/3_332.png index 55ab1b24ee..53882704f3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_332.png and b/TMessagesProj/src/main/assets/emoji/3_332.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_333.png b/TMessagesProj/src/main/assets/emoji/3_333.png index 4a2986047e..8014d7c31c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_333.png and b/TMessagesProj/src/main/assets/emoji/3_333.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_334.png b/TMessagesProj/src/main/assets/emoji/3_334.png index 2452c1ac23..7d816b0e0a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_334.png and b/TMessagesProj/src/main/assets/emoji/3_334.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_34.png b/TMessagesProj/src/main/assets/emoji/3_34.png index 5f8287ba6d..55de74815b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_34.png and b/TMessagesProj/src/main/assets/emoji/3_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_35.png b/TMessagesProj/src/main/assets/emoji/3_35.png index 8af3c736cd..0ff9bb858a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_35.png and b/TMessagesProj/src/main/assets/emoji/3_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_36.png b/TMessagesProj/src/main/assets/emoji/3_36.png index 6794f264ce..5d3b1a8a6c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_36.png and b/TMessagesProj/src/main/assets/emoji/3_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_37.png b/TMessagesProj/src/main/assets/emoji/3_37.png index 68f77351c8..a34cffcca2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_37.png and b/TMessagesProj/src/main/assets/emoji/3_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_38.png b/TMessagesProj/src/main/assets/emoji/3_38.png index eea7bd2777..afd38b0dbe 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_38.png and b/TMessagesProj/src/main/assets/emoji/3_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_39.png b/TMessagesProj/src/main/assets/emoji/3_39.png index 74c59f536b..05717d6390 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_39.png and b/TMessagesProj/src/main/assets/emoji/3_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_4.png b/TMessagesProj/src/main/assets/emoji/3_4.png index 695bf69525..0874410041 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_4.png and b/TMessagesProj/src/main/assets/emoji/3_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_40.png b/TMessagesProj/src/main/assets/emoji/3_40.png index 4dc0908d4c..8a88c3d464 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_40.png and b/TMessagesProj/src/main/assets/emoji/3_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_41.png b/TMessagesProj/src/main/assets/emoji/3_41.png index 6e0da452ff..0e210f508c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_41.png and b/TMessagesProj/src/main/assets/emoji/3_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_42.png b/TMessagesProj/src/main/assets/emoji/3_42.png index b307ab30a7..b4fa9e7fbb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_42.png and b/TMessagesProj/src/main/assets/emoji/3_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_43.png b/TMessagesProj/src/main/assets/emoji/3_43.png index 732970a3fd..dd09c0b97d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_43.png and b/TMessagesProj/src/main/assets/emoji/3_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_44.png b/TMessagesProj/src/main/assets/emoji/3_44.png index cc892112a3..0cc108939b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_44.png and b/TMessagesProj/src/main/assets/emoji/3_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_45.png b/TMessagesProj/src/main/assets/emoji/3_45.png index 79d3090bac..9c20557e38 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_45.png and b/TMessagesProj/src/main/assets/emoji/3_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_46.png b/TMessagesProj/src/main/assets/emoji/3_46.png index 1abf94d436..e78490c2f6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_46.png and b/TMessagesProj/src/main/assets/emoji/3_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_47.png b/TMessagesProj/src/main/assets/emoji/3_47.png index 9903d157cf..7fe87bfef4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_47.png and b/TMessagesProj/src/main/assets/emoji/3_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_48.png b/TMessagesProj/src/main/assets/emoji/3_48.png index d312a492f5..084157c103 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_48.png and b/TMessagesProj/src/main/assets/emoji/3_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_49.png b/TMessagesProj/src/main/assets/emoji/3_49.png index 00b5e3517a..3a3922c769 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_49.png and b/TMessagesProj/src/main/assets/emoji/3_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_5.png b/TMessagesProj/src/main/assets/emoji/3_5.png index fcedd7bf9e..f5104e64ae 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_5.png and b/TMessagesProj/src/main/assets/emoji/3_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_50.png b/TMessagesProj/src/main/assets/emoji/3_50.png index 4373a1df76..995b0c7662 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_50.png and b/TMessagesProj/src/main/assets/emoji/3_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_51.png b/TMessagesProj/src/main/assets/emoji/3_51.png index 2558a8e0f1..3a2fedb5a4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_51.png and b/TMessagesProj/src/main/assets/emoji/3_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_52.png b/TMessagesProj/src/main/assets/emoji/3_52.png index 29e35348ab..630126daa9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_52.png and b/TMessagesProj/src/main/assets/emoji/3_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_53.png b/TMessagesProj/src/main/assets/emoji/3_53.png index 6b98628953..b87496b22e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_53.png and b/TMessagesProj/src/main/assets/emoji/3_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_54.png b/TMessagesProj/src/main/assets/emoji/3_54.png index 232c9a6b8f..ee57167482 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_54.png and b/TMessagesProj/src/main/assets/emoji/3_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_55.png b/TMessagesProj/src/main/assets/emoji/3_55.png index 5ce1445dcf..7b5430e221 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_55.png and b/TMessagesProj/src/main/assets/emoji/3_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_56.png b/TMessagesProj/src/main/assets/emoji/3_56.png index 25f91d4af7..8f0689655c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_56.png and b/TMessagesProj/src/main/assets/emoji/3_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_57.png b/TMessagesProj/src/main/assets/emoji/3_57.png index 311103eb4f..e08159c15f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_57.png and b/TMessagesProj/src/main/assets/emoji/3_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_58.png b/TMessagesProj/src/main/assets/emoji/3_58.png index 1a0825abfe..4d4b0d5b8f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_58.png and b/TMessagesProj/src/main/assets/emoji/3_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_59.png b/TMessagesProj/src/main/assets/emoji/3_59.png index 5f101c8630..a0738040ca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_59.png and b/TMessagesProj/src/main/assets/emoji/3_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_6.png b/TMessagesProj/src/main/assets/emoji/3_6.png index fa93a47f03..d60aa84713 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_6.png and b/TMessagesProj/src/main/assets/emoji/3_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_60.png b/TMessagesProj/src/main/assets/emoji/3_60.png index 351d882eae..7380794543 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_60.png and b/TMessagesProj/src/main/assets/emoji/3_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_61.png b/TMessagesProj/src/main/assets/emoji/3_61.png index 645af71637..f2593df890 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_61.png and b/TMessagesProj/src/main/assets/emoji/3_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_62.png b/TMessagesProj/src/main/assets/emoji/3_62.png index 11dbe391c5..7369a17f3a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_62.png and b/TMessagesProj/src/main/assets/emoji/3_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_63.png b/TMessagesProj/src/main/assets/emoji/3_63.png index 70404e8669..2a93014b5e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_63.png and b/TMessagesProj/src/main/assets/emoji/3_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_64.png b/TMessagesProj/src/main/assets/emoji/3_64.png index e455878d48..966bfa61f1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_64.png and b/TMessagesProj/src/main/assets/emoji/3_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_65.png b/TMessagesProj/src/main/assets/emoji/3_65.png index 5d816f1a52..85fa871773 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_65.png and b/TMessagesProj/src/main/assets/emoji/3_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_66.png b/TMessagesProj/src/main/assets/emoji/3_66.png index bc9a64cef4..91752892de 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_66.png and b/TMessagesProj/src/main/assets/emoji/3_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_67.png b/TMessagesProj/src/main/assets/emoji/3_67.png index 02d4b6555d..5cc77421cc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_67.png and b/TMessagesProj/src/main/assets/emoji/3_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_68.png b/TMessagesProj/src/main/assets/emoji/3_68.png index 42fea07b52..b769a64dad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_68.png and b/TMessagesProj/src/main/assets/emoji/3_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_69.png b/TMessagesProj/src/main/assets/emoji/3_69.png index 657f780b39..a61a1ad3fd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_69.png and b/TMessagesProj/src/main/assets/emoji/3_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_7.png b/TMessagesProj/src/main/assets/emoji/3_7.png index 14322f8ee0..b3dd36ea3b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_7.png and b/TMessagesProj/src/main/assets/emoji/3_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_70.png b/TMessagesProj/src/main/assets/emoji/3_70.png index b94a9358d2..20e7c5ec78 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_70.png and b/TMessagesProj/src/main/assets/emoji/3_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_71.png b/TMessagesProj/src/main/assets/emoji/3_71.png index ee9e496779..e5401e1245 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_71.png and b/TMessagesProj/src/main/assets/emoji/3_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_72.png b/TMessagesProj/src/main/assets/emoji/3_72.png index f0991fa60e..60a819b0d5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_72.png and b/TMessagesProj/src/main/assets/emoji/3_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_73.png b/TMessagesProj/src/main/assets/emoji/3_73.png index 6949e21225..73ab85a9ab 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_73.png and b/TMessagesProj/src/main/assets/emoji/3_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_74.png b/TMessagesProj/src/main/assets/emoji/3_74.png index 7adc7eaf35..1d0f8e3124 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_74.png and b/TMessagesProj/src/main/assets/emoji/3_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_75.png b/TMessagesProj/src/main/assets/emoji/3_75.png index 91266ebc85..e91d6a19b7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_75.png and b/TMessagesProj/src/main/assets/emoji/3_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_76.png b/TMessagesProj/src/main/assets/emoji/3_76.png index d8ad567466..ceded19927 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_76.png and b/TMessagesProj/src/main/assets/emoji/3_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_77.png b/TMessagesProj/src/main/assets/emoji/3_77.png index 0cee503038..b2edb67bc1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_77.png and b/TMessagesProj/src/main/assets/emoji/3_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_78.png b/TMessagesProj/src/main/assets/emoji/3_78.png index 7fc8b98823..4352576a81 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_78.png and b/TMessagesProj/src/main/assets/emoji/3_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_79.png b/TMessagesProj/src/main/assets/emoji/3_79.png index 249b8d2d03..360459fafe 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_79.png and b/TMessagesProj/src/main/assets/emoji/3_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_8.png b/TMessagesProj/src/main/assets/emoji/3_8.png index c3ccd8bbd3..0f1484f256 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_8.png and b/TMessagesProj/src/main/assets/emoji/3_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_80.png b/TMessagesProj/src/main/assets/emoji/3_80.png index 8f16bab4db..a21c917ffa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_80.png and b/TMessagesProj/src/main/assets/emoji/3_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_81.png b/TMessagesProj/src/main/assets/emoji/3_81.png index 249d6e15a6..341da6ce93 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_81.png and b/TMessagesProj/src/main/assets/emoji/3_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_82.png b/TMessagesProj/src/main/assets/emoji/3_82.png index a0145319c4..bc9f9f08ba 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_82.png and b/TMessagesProj/src/main/assets/emoji/3_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_83.png b/TMessagesProj/src/main/assets/emoji/3_83.png index 82fe362d8b..203d5d934e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_83.png and b/TMessagesProj/src/main/assets/emoji/3_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_84.png b/TMessagesProj/src/main/assets/emoji/3_84.png index 316fadb688..baff5807a3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_84.png and b/TMessagesProj/src/main/assets/emoji/3_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_85.png b/TMessagesProj/src/main/assets/emoji/3_85.png index 1c4b9be0d4..8ebad8f8bb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_85.png and b/TMessagesProj/src/main/assets/emoji/3_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_86.png b/TMessagesProj/src/main/assets/emoji/3_86.png index a706060981..9ef8888d5a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_86.png and b/TMessagesProj/src/main/assets/emoji/3_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_87.png b/TMessagesProj/src/main/assets/emoji/3_87.png index 86a429ec9c..8af4f92723 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_87.png and b/TMessagesProj/src/main/assets/emoji/3_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_88.png b/TMessagesProj/src/main/assets/emoji/3_88.png index 27f8970bbc..346f924d1d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_88.png and b/TMessagesProj/src/main/assets/emoji/3_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_89.png b/TMessagesProj/src/main/assets/emoji/3_89.png index d709287c14..631a6ac3a9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_89.png and b/TMessagesProj/src/main/assets/emoji/3_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_9.png b/TMessagesProj/src/main/assets/emoji/3_9.png index b3fb16ca48..50a451d779 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_9.png and b/TMessagesProj/src/main/assets/emoji/3_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_90.png b/TMessagesProj/src/main/assets/emoji/3_90.png index b8017e4ac6..5133a9de56 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_90.png and b/TMessagesProj/src/main/assets/emoji/3_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_91.png b/TMessagesProj/src/main/assets/emoji/3_91.png index 32659977aa..cf81c4d33c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_91.png and b/TMessagesProj/src/main/assets/emoji/3_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_92.png b/TMessagesProj/src/main/assets/emoji/3_92.png index 88010e31cf..f55d05c3a7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_92.png and b/TMessagesProj/src/main/assets/emoji/3_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_93.png b/TMessagesProj/src/main/assets/emoji/3_93.png index 2754609269..d8b94e5fc7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_93.png and b/TMessagesProj/src/main/assets/emoji/3_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_94.png b/TMessagesProj/src/main/assets/emoji/3_94.png index 7a55c2c662..348c88c519 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_94.png and b/TMessagesProj/src/main/assets/emoji/3_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_95.png b/TMessagesProj/src/main/assets/emoji/3_95.png index 74dffe7ec2..a60c55235b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_95.png and b/TMessagesProj/src/main/assets/emoji/3_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_96.png b/TMessagesProj/src/main/assets/emoji/3_96.png index fc56b41d88..d4915bf928 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_96.png and b/TMessagesProj/src/main/assets/emoji/3_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_97.png b/TMessagesProj/src/main/assets/emoji/3_97.png index f02c4b09f3..58b92a3e8d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_97.png and b/TMessagesProj/src/main/assets/emoji/3_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_98.png b/TMessagesProj/src/main/assets/emoji/3_98.png index ca158ef13e..30f838344d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_98.png and b/TMessagesProj/src/main/assets/emoji/3_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/3_99.png b/TMessagesProj/src/main/assets/emoji/3_99.png index 992699b5f3..3581597198 100644 Binary files a/TMessagesProj/src/main/assets/emoji/3_99.png and b/TMessagesProj/src/main/assets/emoji/3_99.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_0.png b/TMessagesProj/src/main/assets/emoji/4_0.png index bb8c3e8e8c..175ec81560 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_0.png and b/TMessagesProj/src/main/assets/emoji/4_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_1.png b/TMessagesProj/src/main/assets/emoji/4_1.png index 46648ed3ee..4279e4a406 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_1.png and b/TMessagesProj/src/main/assets/emoji/4_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_10.png b/TMessagesProj/src/main/assets/emoji/4_10.png index eee12240b0..1edea7cc27 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_10.png and b/TMessagesProj/src/main/assets/emoji/4_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_100.png b/TMessagesProj/src/main/assets/emoji/4_100.png index 0db12cf3a0..bf958dda47 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_100.png and b/TMessagesProj/src/main/assets/emoji/4_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_101.png b/TMessagesProj/src/main/assets/emoji/4_101.png index f7b4163afa..95d9d2f0b5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_101.png and b/TMessagesProj/src/main/assets/emoji/4_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_102.png b/TMessagesProj/src/main/assets/emoji/4_102.png index db45ac1196..c0efc617bf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_102.png and b/TMessagesProj/src/main/assets/emoji/4_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_103.png b/TMessagesProj/src/main/assets/emoji/4_103.png index cb7290083c..dd20e8bae4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_103.png and b/TMessagesProj/src/main/assets/emoji/4_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_104.png b/TMessagesProj/src/main/assets/emoji/4_104.png index a33ee1b864..c1b0726287 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_104.png and b/TMessagesProj/src/main/assets/emoji/4_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_105.png b/TMessagesProj/src/main/assets/emoji/4_105.png index e992cda8bb..2136fb5a75 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_105.png and b/TMessagesProj/src/main/assets/emoji/4_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_106.png b/TMessagesProj/src/main/assets/emoji/4_106.png index c0da28c0d7..56ba160876 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_106.png and b/TMessagesProj/src/main/assets/emoji/4_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_107.png b/TMessagesProj/src/main/assets/emoji/4_107.png index b1931f9573..074c427874 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_107.png and b/TMessagesProj/src/main/assets/emoji/4_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_108.png b/TMessagesProj/src/main/assets/emoji/4_108.png index c763e8028e..8ff41593fa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_108.png and b/TMessagesProj/src/main/assets/emoji/4_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_109.png b/TMessagesProj/src/main/assets/emoji/4_109.png index 35432f951d..4e8cec42ff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_109.png and b/TMessagesProj/src/main/assets/emoji/4_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_11.png b/TMessagesProj/src/main/assets/emoji/4_11.png index a348eb797d..6fe9531ce9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_11.png and b/TMessagesProj/src/main/assets/emoji/4_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_110.png b/TMessagesProj/src/main/assets/emoji/4_110.png index 3dcc6521d2..21980d613f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_110.png and b/TMessagesProj/src/main/assets/emoji/4_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_111.png b/TMessagesProj/src/main/assets/emoji/4_111.png index 71acb66219..f82e0d0e7d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_111.png and b/TMessagesProj/src/main/assets/emoji/4_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_112.png b/TMessagesProj/src/main/assets/emoji/4_112.png index 4d0abfb94b..644ca8b1bb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_112.png and b/TMessagesProj/src/main/assets/emoji/4_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_113.png b/TMessagesProj/src/main/assets/emoji/4_113.png index f9e3558ba1..72dc768641 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_113.png and b/TMessagesProj/src/main/assets/emoji/4_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_114.png b/TMessagesProj/src/main/assets/emoji/4_114.png index fb6631c058..00a9c796c7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_114.png and b/TMessagesProj/src/main/assets/emoji/4_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_115.png b/TMessagesProj/src/main/assets/emoji/4_115.png index d36d3adc5c..79087c7fa5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_115.png and b/TMessagesProj/src/main/assets/emoji/4_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_116.png b/TMessagesProj/src/main/assets/emoji/4_116.png index 4f19d97f94..25eacc9e25 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_116.png and b/TMessagesProj/src/main/assets/emoji/4_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_117.png b/TMessagesProj/src/main/assets/emoji/4_117.png index de4bb5ebab..fb5691c694 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_117.png and b/TMessagesProj/src/main/assets/emoji/4_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_118.png b/TMessagesProj/src/main/assets/emoji/4_118.png index f403a9a34f..8113c6bf00 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_118.png and b/TMessagesProj/src/main/assets/emoji/4_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_119.png b/TMessagesProj/src/main/assets/emoji/4_119.png index 9d4b3a9abc..49a944c6e0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_119.png and b/TMessagesProj/src/main/assets/emoji/4_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_12.png b/TMessagesProj/src/main/assets/emoji/4_12.png index 478a09d34e..3f30526664 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_12.png and b/TMessagesProj/src/main/assets/emoji/4_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_120.png b/TMessagesProj/src/main/assets/emoji/4_120.png index 813601169f..176de0c871 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_120.png and b/TMessagesProj/src/main/assets/emoji/4_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_121.png b/TMessagesProj/src/main/assets/emoji/4_121.png index fb7eec1620..9397158b77 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_121.png and b/TMessagesProj/src/main/assets/emoji/4_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_122.png b/TMessagesProj/src/main/assets/emoji/4_122.png index f39a415afd..f94e86f383 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_122.png and b/TMessagesProj/src/main/assets/emoji/4_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_123.png b/TMessagesProj/src/main/assets/emoji/4_123.png index e7e5201328..1cce8d2f4a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_123.png and b/TMessagesProj/src/main/assets/emoji/4_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_124.png b/TMessagesProj/src/main/assets/emoji/4_124.png index f73c9a0469..01e902abbd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_124.png and b/TMessagesProj/src/main/assets/emoji/4_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_125.png b/TMessagesProj/src/main/assets/emoji/4_125.png index 4431df56bd..d32b684179 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_125.png and b/TMessagesProj/src/main/assets/emoji/4_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_126.png b/TMessagesProj/src/main/assets/emoji/4_126.png index 156ace02ec..f54fd9fff1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_126.png and b/TMessagesProj/src/main/assets/emoji/4_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_127.png b/TMessagesProj/src/main/assets/emoji/4_127.png index cf772cba22..07c415cf49 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_127.png and b/TMessagesProj/src/main/assets/emoji/4_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_128.png b/TMessagesProj/src/main/assets/emoji/4_128.png index 232aa10b54..fc3ad76c53 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_128.png and b/TMessagesProj/src/main/assets/emoji/4_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_129.png b/TMessagesProj/src/main/assets/emoji/4_129.png index 849b62fef1..84716c3b6d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_129.png and b/TMessagesProj/src/main/assets/emoji/4_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_13.png b/TMessagesProj/src/main/assets/emoji/4_13.png index a6f2c2a46b..10fbd68c2f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_13.png and b/TMessagesProj/src/main/assets/emoji/4_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_130.png b/TMessagesProj/src/main/assets/emoji/4_130.png index eb392deb55..bbe2c5c68e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_130.png and b/TMessagesProj/src/main/assets/emoji/4_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_14.png b/TMessagesProj/src/main/assets/emoji/4_14.png index 254d01d22f..31695823cf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_14.png and b/TMessagesProj/src/main/assets/emoji/4_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_15.png b/TMessagesProj/src/main/assets/emoji/4_15.png index 513f8a4592..911ac0b4c2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_15.png and b/TMessagesProj/src/main/assets/emoji/4_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_16.png b/TMessagesProj/src/main/assets/emoji/4_16.png index 5ee81a6f2b..5a0247b72b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_16.png and b/TMessagesProj/src/main/assets/emoji/4_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_17.png b/TMessagesProj/src/main/assets/emoji/4_17.png index 554925226a..f871527382 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_17.png and b/TMessagesProj/src/main/assets/emoji/4_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_18.png b/TMessagesProj/src/main/assets/emoji/4_18.png index 02c00cf559..d8995d50d5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_18.png and b/TMessagesProj/src/main/assets/emoji/4_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_19.png b/TMessagesProj/src/main/assets/emoji/4_19.png index 2b7a109d49..3fe2db9d26 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_19.png and b/TMessagesProj/src/main/assets/emoji/4_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_2.png b/TMessagesProj/src/main/assets/emoji/4_2.png index a3f6c690f8..9f9dc8f6cd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_2.png and b/TMessagesProj/src/main/assets/emoji/4_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_20.png b/TMessagesProj/src/main/assets/emoji/4_20.png index 71536ca148..2f08ed2026 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_20.png and b/TMessagesProj/src/main/assets/emoji/4_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_21.png b/TMessagesProj/src/main/assets/emoji/4_21.png index 61a3645da3..c9d9aecff3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_21.png and b/TMessagesProj/src/main/assets/emoji/4_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_22.png b/TMessagesProj/src/main/assets/emoji/4_22.png index b4a01b55a8..af9ffe41ad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_22.png and b/TMessagesProj/src/main/assets/emoji/4_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_23.png b/TMessagesProj/src/main/assets/emoji/4_23.png index 413fa2d4da..7add65deac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_23.png and b/TMessagesProj/src/main/assets/emoji/4_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_24.png b/TMessagesProj/src/main/assets/emoji/4_24.png index a8f74de40d..80223afe93 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_24.png and b/TMessagesProj/src/main/assets/emoji/4_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_25.png b/TMessagesProj/src/main/assets/emoji/4_25.png index 360c35d004..830442bf3f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_25.png and b/TMessagesProj/src/main/assets/emoji/4_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_26.png b/TMessagesProj/src/main/assets/emoji/4_26.png index a5e48da561..b8a4a957fa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_26.png and b/TMessagesProj/src/main/assets/emoji/4_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_27.png b/TMessagesProj/src/main/assets/emoji/4_27.png index 0395db817e..5d2f9de572 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_27.png and b/TMessagesProj/src/main/assets/emoji/4_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_28.png b/TMessagesProj/src/main/assets/emoji/4_28.png index de41649526..758af219ab 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_28.png and b/TMessagesProj/src/main/assets/emoji/4_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_29.png b/TMessagesProj/src/main/assets/emoji/4_29.png index ebe9d3cf47..ba89e40224 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_29.png and b/TMessagesProj/src/main/assets/emoji/4_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_3.png b/TMessagesProj/src/main/assets/emoji/4_3.png index f096ff968d..994112f4c6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_3.png and b/TMessagesProj/src/main/assets/emoji/4_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_30.png b/TMessagesProj/src/main/assets/emoji/4_30.png index bc4d1b2b4e..87e671f674 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_30.png and b/TMessagesProj/src/main/assets/emoji/4_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_31.png b/TMessagesProj/src/main/assets/emoji/4_31.png index 713818221c..3eb7871d37 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_31.png and b/TMessagesProj/src/main/assets/emoji/4_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_32.png b/TMessagesProj/src/main/assets/emoji/4_32.png index 8af55abf82..c7d6c590de 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_32.png and b/TMessagesProj/src/main/assets/emoji/4_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_33.png b/TMessagesProj/src/main/assets/emoji/4_33.png index 96ef2414d7..4ec66ead13 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_33.png and b/TMessagesProj/src/main/assets/emoji/4_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_34.png b/TMessagesProj/src/main/assets/emoji/4_34.png index 1c886faa6f..5b98fa335a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_34.png and b/TMessagesProj/src/main/assets/emoji/4_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_35.png b/TMessagesProj/src/main/assets/emoji/4_35.png index 7fb94fc9fd..79a453f2a1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_35.png and b/TMessagesProj/src/main/assets/emoji/4_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_36.png b/TMessagesProj/src/main/assets/emoji/4_36.png index 4492c4a395..f1945102be 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_36.png and b/TMessagesProj/src/main/assets/emoji/4_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_37.png b/TMessagesProj/src/main/assets/emoji/4_37.png index 8aca72cbd8..01a5cce38b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_37.png and b/TMessagesProj/src/main/assets/emoji/4_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_38.png b/TMessagesProj/src/main/assets/emoji/4_38.png index fdcb373a8e..bf21a8f738 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_38.png and b/TMessagesProj/src/main/assets/emoji/4_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_39.png b/TMessagesProj/src/main/assets/emoji/4_39.png index 99a2703a33..a7caafcab2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_39.png and b/TMessagesProj/src/main/assets/emoji/4_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_4.png b/TMessagesProj/src/main/assets/emoji/4_4.png index ab829decc1..382f0513c9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_4.png and b/TMessagesProj/src/main/assets/emoji/4_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_40.png b/TMessagesProj/src/main/assets/emoji/4_40.png index cdbdffbad0..fb3cc7680d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_40.png and b/TMessagesProj/src/main/assets/emoji/4_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_41.png b/TMessagesProj/src/main/assets/emoji/4_41.png index c94ab0a328..097fa7410d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_41.png and b/TMessagesProj/src/main/assets/emoji/4_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_42.png b/TMessagesProj/src/main/assets/emoji/4_42.png index 4d5bdc6b1a..17264a3b5d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_42.png and b/TMessagesProj/src/main/assets/emoji/4_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_43.png b/TMessagesProj/src/main/assets/emoji/4_43.png index 658f97519e..c92d38a206 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_43.png and b/TMessagesProj/src/main/assets/emoji/4_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_44.png b/TMessagesProj/src/main/assets/emoji/4_44.png index f70b382e40..4f42c281d5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_44.png and b/TMessagesProj/src/main/assets/emoji/4_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_45.png b/TMessagesProj/src/main/assets/emoji/4_45.png index 5a412685ad..c91ae30656 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_45.png and b/TMessagesProj/src/main/assets/emoji/4_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_46.png b/TMessagesProj/src/main/assets/emoji/4_46.png index 56a2169a23..f7ebd90add 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_46.png and b/TMessagesProj/src/main/assets/emoji/4_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_47.png b/TMessagesProj/src/main/assets/emoji/4_47.png index 7e7ade3c46..e57f72be21 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_47.png and b/TMessagesProj/src/main/assets/emoji/4_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_48.png b/TMessagesProj/src/main/assets/emoji/4_48.png index 7be7cd9cd7..ec4e18b395 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_48.png and b/TMessagesProj/src/main/assets/emoji/4_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_49.png b/TMessagesProj/src/main/assets/emoji/4_49.png index 1b81179363..7c0c8c807a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_49.png and b/TMessagesProj/src/main/assets/emoji/4_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_5.png b/TMessagesProj/src/main/assets/emoji/4_5.png index 0f0940ed66..dd089cc680 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_5.png and b/TMessagesProj/src/main/assets/emoji/4_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_50.png b/TMessagesProj/src/main/assets/emoji/4_50.png index 36cce28643..0b9b381ea4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_50.png and b/TMessagesProj/src/main/assets/emoji/4_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_51.png b/TMessagesProj/src/main/assets/emoji/4_51.png index f6f837891e..490bc2656d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_51.png and b/TMessagesProj/src/main/assets/emoji/4_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_52.png b/TMessagesProj/src/main/assets/emoji/4_52.png index 5a7e761606..90c59264bc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_52.png and b/TMessagesProj/src/main/assets/emoji/4_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_53.png b/TMessagesProj/src/main/assets/emoji/4_53.png index a5105f0b2c..b5b493a1d1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_53.png and b/TMessagesProj/src/main/assets/emoji/4_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_54.png b/TMessagesProj/src/main/assets/emoji/4_54.png index 7db12713fa..8ff7a5222d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_54.png and b/TMessagesProj/src/main/assets/emoji/4_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_55.png b/TMessagesProj/src/main/assets/emoji/4_55.png index d1abdd029f..7fe056e306 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_55.png and b/TMessagesProj/src/main/assets/emoji/4_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_56.png b/TMessagesProj/src/main/assets/emoji/4_56.png index 7681cf7f1b..2718129c17 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_56.png and b/TMessagesProj/src/main/assets/emoji/4_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_57.png b/TMessagesProj/src/main/assets/emoji/4_57.png index eef0dad02c..d9680a88ee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_57.png and b/TMessagesProj/src/main/assets/emoji/4_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_58.png b/TMessagesProj/src/main/assets/emoji/4_58.png index 6c5cd4fd66..ad2367c488 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_58.png and b/TMessagesProj/src/main/assets/emoji/4_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_59.png b/TMessagesProj/src/main/assets/emoji/4_59.png index 1b681d9c1d..1d2c2bb0a1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_59.png and b/TMessagesProj/src/main/assets/emoji/4_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_6.png b/TMessagesProj/src/main/assets/emoji/4_6.png index ca2a20d5bd..890b865879 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_6.png and b/TMessagesProj/src/main/assets/emoji/4_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_60.png b/TMessagesProj/src/main/assets/emoji/4_60.png index 42dfc2f51b..0e8bc489bb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_60.png and b/TMessagesProj/src/main/assets/emoji/4_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_61.png b/TMessagesProj/src/main/assets/emoji/4_61.png index d65fd1ec6d..2e3a3515ec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_61.png and b/TMessagesProj/src/main/assets/emoji/4_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_62.png b/TMessagesProj/src/main/assets/emoji/4_62.png index 973d062135..35cdbe681d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_62.png and b/TMessagesProj/src/main/assets/emoji/4_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_63.png b/TMessagesProj/src/main/assets/emoji/4_63.png index 2d2c4df820..46d1d21475 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_63.png and b/TMessagesProj/src/main/assets/emoji/4_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_64.png b/TMessagesProj/src/main/assets/emoji/4_64.png index c1af39ea78..272e05c9ee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_64.png and b/TMessagesProj/src/main/assets/emoji/4_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_65.png b/TMessagesProj/src/main/assets/emoji/4_65.png index 3fbc2b66b9..0002b80959 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_65.png and b/TMessagesProj/src/main/assets/emoji/4_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_66.png b/TMessagesProj/src/main/assets/emoji/4_66.png index 134c4a22e4..dec1e429e4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_66.png and b/TMessagesProj/src/main/assets/emoji/4_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_67.png b/TMessagesProj/src/main/assets/emoji/4_67.png index e78ba16de8..979d31a487 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_67.png and b/TMessagesProj/src/main/assets/emoji/4_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_68.png b/TMessagesProj/src/main/assets/emoji/4_68.png index ae50116f6d..bd0474739e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_68.png and b/TMessagesProj/src/main/assets/emoji/4_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_69.png b/TMessagesProj/src/main/assets/emoji/4_69.png index d007b4b06b..2e55537529 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_69.png and b/TMessagesProj/src/main/assets/emoji/4_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_7.png b/TMessagesProj/src/main/assets/emoji/4_7.png index c08269555f..b37a7dadac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_7.png and b/TMessagesProj/src/main/assets/emoji/4_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_70.png b/TMessagesProj/src/main/assets/emoji/4_70.png index 0475ec48e4..18032e7ec9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_70.png and b/TMessagesProj/src/main/assets/emoji/4_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_71.png b/TMessagesProj/src/main/assets/emoji/4_71.png index 0c363cbcbb..1c5919731b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_71.png and b/TMessagesProj/src/main/assets/emoji/4_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_72.png b/TMessagesProj/src/main/assets/emoji/4_72.png index cbde3751af..d2cf0cde47 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_72.png and b/TMessagesProj/src/main/assets/emoji/4_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_73.png b/TMessagesProj/src/main/assets/emoji/4_73.png index b982661977..6aae915356 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_73.png and b/TMessagesProj/src/main/assets/emoji/4_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_74.png b/TMessagesProj/src/main/assets/emoji/4_74.png index 2f915c52a2..ad9e66e25b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_74.png and b/TMessagesProj/src/main/assets/emoji/4_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_75.png b/TMessagesProj/src/main/assets/emoji/4_75.png index b0ba1b3805..75c52da44b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_75.png and b/TMessagesProj/src/main/assets/emoji/4_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_76.png b/TMessagesProj/src/main/assets/emoji/4_76.png index 6990f789f2..410b1cbac3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_76.png and b/TMessagesProj/src/main/assets/emoji/4_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_77.png b/TMessagesProj/src/main/assets/emoji/4_77.png index 7b0e638bdc..3261695479 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_77.png and b/TMessagesProj/src/main/assets/emoji/4_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_78.png b/TMessagesProj/src/main/assets/emoji/4_78.png index 23f635331a..96be19953d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_78.png and b/TMessagesProj/src/main/assets/emoji/4_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_79.png b/TMessagesProj/src/main/assets/emoji/4_79.png index da6aa4c80e..275bc961ce 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_79.png and b/TMessagesProj/src/main/assets/emoji/4_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_8.png b/TMessagesProj/src/main/assets/emoji/4_8.png index f854a2e898..2babf57edb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_8.png and b/TMessagesProj/src/main/assets/emoji/4_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_80.png b/TMessagesProj/src/main/assets/emoji/4_80.png index 1b9e315a34..f15da7e378 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_80.png and b/TMessagesProj/src/main/assets/emoji/4_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_81.png b/TMessagesProj/src/main/assets/emoji/4_81.png index 5b6aae0269..8337e10c75 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_81.png and b/TMessagesProj/src/main/assets/emoji/4_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_82.png b/TMessagesProj/src/main/assets/emoji/4_82.png index a448ca060d..757342dcce 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_82.png and b/TMessagesProj/src/main/assets/emoji/4_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_83.png b/TMessagesProj/src/main/assets/emoji/4_83.png index 715eb0506d..b3e525f4fd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_83.png and b/TMessagesProj/src/main/assets/emoji/4_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_84.png b/TMessagesProj/src/main/assets/emoji/4_84.png index 9643f8cbf2..19bdda7aa2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_84.png and b/TMessagesProj/src/main/assets/emoji/4_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_85.png b/TMessagesProj/src/main/assets/emoji/4_85.png index 110367a7b5..f7b06c88da 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_85.png and b/TMessagesProj/src/main/assets/emoji/4_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_86.png b/TMessagesProj/src/main/assets/emoji/4_86.png index 829ed1cef3..e90d29fcbb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_86.png and b/TMessagesProj/src/main/assets/emoji/4_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_87.png b/TMessagesProj/src/main/assets/emoji/4_87.png index 5e568c7c4b..3254d60f81 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_87.png and b/TMessagesProj/src/main/assets/emoji/4_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_88.png b/TMessagesProj/src/main/assets/emoji/4_88.png index 3136784373..e3ed3436b7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_88.png and b/TMessagesProj/src/main/assets/emoji/4_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_89.png b/TMessagesProj/src/main/assets/emoji/4_89.png index 157cf24d15..920dc48e88 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_89.png and b/TMessagesProj/src/main/assets/emoji/4_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_9.png b/TMessagesProj/src/main/assets/emoji/4_9.png index fb5a7c3dbe..68762e3466 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_9.png and b/TMessagesProj/src/main/assets/emoji/4_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_90.png b/TMessagesProj/src/main/assets/emoji/4_90.png index 2bd8e43505..ece66eed82 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_90.png and b/TMessagesProj/src/main/assets/emoji/4_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_91.png b/TMessagesProj/src/main/assets/emoji/4_91.png index 289d5edc1e..9b41f2cb18 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_91.png and b/TMessagesProj/src/main/assets/emoji/4_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_92.png b/TMessagesProj/src/main/assets/emoji/4_92.png index 8695f57905..1180fa0969 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_92.png and b/TMessagesProj/src/main/assets/emoji/4_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_93.png b/TMessagesProj/src/main/assets/emoji/4_93.png index 76f30d53bc..e4c58c9f4a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_93.png and b/TMessagesProj/src/main/assets/emoji/4_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_94.png b/TMessagesProj/src/main/assets/emoji/4_94.png index 299a59b507..c2b8a317dd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_94.png and b/TMessagesProj/src/main/assets/emoji/4_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_95.png b/TMessagesProj/src/main/assets/emoji/4_95.png index 551f111631..c7c33bcd63 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_95.png and b/TMessagesProj/src/main/assets/emoji/4_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_96.png b/TMessagesProj/src/main/assets/emoji/4_96.png index eb04ca7f47..e45b8da188 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_96.png and b/TMessagesProj/src/main/assets/emoji/4_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_97.png b/TMessagesProj/src/main/assets/emoji/4_97.png index 7a7611081b..374b4abba9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_97.png and b/TMessagesProj/src/main/assets/emoji/4_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_98.png b/TMessagesProj/src/main/assets/emoji/4_98.png index 29b1749f25..59521ffae4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_98.png and b/TMessagesProj/src/main/assets/emoji/4_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/4_99.png b/TMessagesProj/src/main/assets/emoji/4_99.png index e0dd25fd6c..6d57662952 100644 Binary files a/TMessagesProj/src/main/assets/emoji/4_99.png and b/TMessagesProj/src/main/assets/emoji/4_99.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_0.png b/TMessagesProj/src/main/assets/emoji/5_0.png index 5e450837be..10ce9aa83b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_0.png and b/TMessagesProj/src/main/assets/emoji/5_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_1.png b/TMessagesProj/src/main/assets/emoji/5_1.png index b63c8a0456..3f9e86d1b7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_1.png and b/TMessagesProj/src/main/assets/emoji/5_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_10.png b/TMessagesProj/src/main/assets/emoji/5_10.png index 134a2dcc45..4b353ec278 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_10.png and b/TMessagesProj/src/main/assets/emoji/5_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_100.png b/TMessagesProj/src/main/assets/emoji/5_100.png index 8d73ccc256..aad73a839d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_100.png and b/TMessagesProj/src/main/assets/emoji/5_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_101.png b/TMessagesProj/src/main/assets/emoji/5_101.png index 9cf676c88f..c6349af5f2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_101.png and b/TMessagesProj/src/main/assets/emoji/5_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_102.png b/TMessagesProj/src/main/assets/emoji/5_102.png index 1d7c01e534..b942e3d00f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_102.png and b/TMessagesProj/src/main/assets/emoji/5_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_103.png b/TMessagesProj/src/main/assets/emoji/5_103.png index e09831a0fa..6b50d3fec7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_103.png and b/TMessagesProj/src/main/assets/emoji/5_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_104.png b/TMessagesProj/src/main/assets/emoji/5_104.png index 36e95797b2..c48081436f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_104.png and b/TMessagesProj/src/main/assets/emoji/5_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_105.png b/TMessagesProj/src/main/assets/emoji/5_105.png index 6b670e5704..0d0925c62c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_105.png and b/TMessagesProj/src/main/assets/emoji/5_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_106.png b/TMessagesProj/src/main/assets/emoji/5_106.png index c426475e73..26a52d7ce0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_106.png and b/TMessagesProj/src/main/assets/emoji/5_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_107.png b/TMessagesProj/src/main/assets/emoji/5_107.png index 78b704d39d..9e206fc084 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_107.png and b/TMessagesProj/src/main/assets/emoji/5_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_108.png b/TMessagesProj/src/main/assets/emoji/5_108.png index 3b10ba4e5b..5ee1996dc3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_108.png and b/TMessagesProj/src/main/assets/emoji/5_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_109.png b/TMessagesProj/src/main/assets/emoji/5_109.png index 31ecb69e2d..6073b2d90c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_109.png and b/TMessagesProj/src/main/assets/emoji/5_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_11.png b/TMessagesProj/src/main/assets/emoji/5_11.png index b3e370b11d..75d7642303 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_11.png and b/TMessagesProj/src/main/assets/emoji/5_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_110.png b/TMessagesProj/src/main/assets/emoji/5_110.png index 8acccf1174..f63bc8586a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_110.png and b/TMessagesProj/src/main/assets/emoji/5_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_111.png b/TMessagesProj/src/main/assets/emoji/5_111.png index d8115e7d34..dae89146e1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_111.png and b/TMessagesProj/src/main/assets/emoji/5_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_112.png b/TMessagesProj/src/main/assets/emoji/5_112.png index 4c59ad98aa..07727ab2ad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_112.png and b/TMessagesProj/src/main/assets/emoji/5_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_113.png b/TMessagesProj/src/main/assets/emoji/5_113.png index 2111c66b13..c9df2793ee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_113.png and b/TMessagesProj/src/main/assets/emoji/5_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_114.png b/TMessagesProj/src/main/assets/emoji/5_114.png index 9a9c35658a..3f7d035448 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_114.png and b/TMessagesProj/src/main/assets/emoji/5_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_115.png b/TMessagesProj/src/main/assets/emoji/5_115.png index 64fc0f7e28..4351d9fd55 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_115.png and b/TMessagesProj/src/main/assets/emoji/5_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_116.png b/TMessagesProj/src/main/assets/emoji/5_116.png index ac06e135d5..32715fad15 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_116.png and b/TMessagesProj/src/main/assets/emoji/5_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_117.png b/TMessagesProj/src/main/assets/emoji/5_117.png index c7ce188eae..a6152e4b0b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_117.png and b/TMessagesProj/src/main/assets/emoji/5_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_118.png b/TMessagesProj/src/main/assets/emoji/5_118.png index b7b689340b..b5156186c7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_118.png and b/TMessagesProj/src/main/assets/emoji/5_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_119.png b/TMessagesProj/src/main/assets/emoji/5_119.png index c134e3ee5d..40a2ed8028 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_119.png and b/TMessagesProj/src/main/assets/emoji/5_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_12.png b/TMessagesProj/src/main/assets/emoji/5_12.png index 29eaf6652c..ed944b983c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_12.png and b/TMessagesProj/src/main/assets/emoji/5_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_120.png b/TMessagesProj/src/main/assets/emoji/5_120.png index 3d5aa23acd..3dda87d95f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_120.png and b/TMessagesProj/src/main/assets/emoji/5_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_121.png b/TMessagesProj/src/main/assets/emoji/5_121.png index 1792de9370..18bbad5b55 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_121.png and b/TMessagesProj/src/main/assets/emoji/5_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_122.png b/TMessagesProj/src/main/assets/emoji/5_122.png index a6a2a5538f..65e39fbf6c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_122.png and b/TMessagesProj/src/main/assets/emoji/5_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_123.png b/TMessagesProj/src/main/assets/emoji/5_123.png index 066e0c7aa8..e860c1d0e2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_123.png and b/TMessagesProj/src/main/assets/emoji/5_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_124.png b/TMessagesProj/src/main/assets/emoji/5_124.png index fe12e766d3..d2a45c8640 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_124.png and b/TMessagesProj/src/main/assets/emoji/5_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_125.png b/TMessagesProj/src/main/assets/emoji/5_125.png index dc44ba47c3..c5fa369270 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_125.png and b/TMessagesProj/src/main/assets/emoji/5_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_126.png b/TMessagesProj/src/main/assets/emoji/5_126.png index 5c0b435970..d6535aa5d9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_126.png and b/TMessagesProj/src/main/assets/emoji/5_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_127.png b/TMessagesProj/src/main/assets/emoji/5_127.png index e029f552f2..e8f256b210 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_127.png and b/TMessagesProj/src/main/assets/emoji/5_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_128.png b/TMessagesProj/src/main/assets/emoji/5_128.png index 85519765c9..e98cb80278 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_128.png and b/TMessagesProj/src/main/assets/emoji/5_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_129.png b/TMessagesProj/src/main/assets/emoji/5_129.png index 94477085f7..6216b2042b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_129.png and b/TMessagesProj/src/main/assets/emoji/5_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_13.png b/TMessagesProj/src/main/assets/emoji/5_13.png index 064e187c0d..80c3ef04d7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_13.png and b/TMessagesProj/src/main/assets/emoji/5_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_130.png b/TMessagesProj/src/main/assets/emoji/5_130.png index e091254b65..9fe7885535 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_130.png and b/TMessagesProj/src/main/assets/emoji/5_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_131.png b/TMessagesProj/src/main/assets/emoji/5_131.png index 5505af987a..8f7dad68f7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_131.png and b/TMessagesProj/src/main/assets/emoji/5_131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_132.png b/TMessagesProj/src/main/assets/emoji/5_132.png index 5adaba2d1b..2050959bc5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_132.png and b/TMessagesProj/src/main/assets/emoji/5_132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_133.png b/TMessagesProj/src/main/assets/emoji/5_133.png index 0acbac67d7..3cae2ae710 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_133.png and b/TMessagesProj/src/main/assets/emoji/5_133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_134.png b/TMessagesProj/src/main/assets/emoji/5_134.png index 21d9fc92b5..bfa35169e7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_134.png and b/TMessagesProj/src/main/assets/emoji/5_134.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_135.png b/TMessagesProj/src/main/assets/emoji/5_135.png index db7e9f49d2..54d4ff3999 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_135.png and b/TMessagesProj/src/main/assets/emoji/5_135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_136.png b/TMessagesProj/src/main/assets/emoji/5_136.png index b0ea3e0e0b..da30bbc9af 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_136.png and b/TMessagesProj/src/main/assets/emoji/5_136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_137.png b/TMessagesProj/src/main/assets/emoji/5_137.png index 5bc76ec6f9..a36034cd6e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_137.png and b/TMessagesProj/src/main/assets/emoji/5_137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_138.png b/TMessagesProj/src/main/assets/emoji/5_138.png index 3e2dfcc636..3ba273048c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_138.png and b/TMessagesProj/src/main/assets/emoji/5_138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_139.png b/TMessagesProj/src/main/assets/emoji/5_139.png index 62928412ee..db15e9b03b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_139.png and b/TMessagesProj/src/main/assets/emoji/5_139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_14.png b/TMessagesProj/src/main/assets/emoji/5_14.png index 2bfaf0c414..4132e4c523 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_14.png and b/TMessagesProj/src/main/assets/emoji/5_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_140.png b/TMessagesProj/src/main/assets/emoji/5_140.png index 1aa1bc9a36..3f049448d1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_140.png and b/TMessagesProj/src/main/assets/emoji/5_140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_141.png b/TMessagesProj/src/main/assets/emoji/5_141.png index 1fd92b5456..b3bd60ee7d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_141.png and b/TMessagesProj/src/main/assets/emoji/5_141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_142.png b/TMessagesProj/src/main/assets/emoji/5_142.png index 5bd48077c0..3e42c85077 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_142.png and b/TMessagesProj/src/main/assets/emoji/5_142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_143.png b/TMessagesProj/src/main/assets/emoji/5_143.png index 80b21ab4bc..2ba58ba025 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_143.png and b/TMessagesProj/src/main/assets/emoji/5_143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_144.png b/TMessagesProj/src/main/assets/emoji/5_144.png index 6ad13a6098..2559a201d4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_144.png and b/TMessagesProj/src/main/assets/emoji/5_144.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_145.png b/TMessagesProj/src/main/assets/emoji/5_145.png index cd6fd9b139..603b9d09bc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_145.png and b/TMessagesProj/src/main/assets/emoji/5_145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_146.png b/TMessagesProj/src/main/assets/emoji/5_146.png index 0394e9200f..3db276feb1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_146.png and b/TMessagesProj/src/main/assets/emoji/5_146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_147.png b/TMessagesProj/src/main/assets/emoji/5_147.png index ca4302bcb1..28f13192a4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_147.png and b/TMessagesProj/src/main/assets/emoji/5_147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_148.png b/TMessagesProj/src/main/assets/emoji/5_148.png index 9c65f87182..c1242e5b9c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_148.png and b/TMessagesProj/src/main/assets/emoji/5_148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_149.png b/TMessagesProj/src/main/assets/emoji/5_149.png index 12a776f202..d25f8a42f6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_149.png and b/TMessagesProj/src/main/assets/emoji/5_149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_15.png b/TMessagesProj/src/main/assets/emoji/5_15.png index 0c90af022f..ff479373ff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_15.png and b/TMessagesProj/src/main/assets/emoji/5_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_150.png b/TMessagesProj/src/main/assets/emoji/5_150.png index 5493622445..a84f29dd9b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_150.png and b/TMessagesProj/src/main/assets/emoji/5_150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_151.png b/TMessagesProj/src/main/assets/emoji/5_151.png index 4f106eaa66..5ffa63db00 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_151.png and b/TMessagesProj/src/main/assets/emoji/5_151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_152.png b/TMessagesProj/src/main/assets/emoji/5_152.png index 3589967b7d..06ec5c751d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_152.png and b/TMessagesProj/src/main/assets/emoji/5_152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_153.png b/TMessagesProj/src/main/assets/emoji/5_153.png index 295ea25cbe..2a90d0db08 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_153.png and b/TMessagesProj/src/main/assets/emoji/5_153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_154.png b/TMessagesProj/src/main/assets/emoji/5_154.png index 1dfa645359..7e8ef3a91d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_154.png and b/TMessagesProj/src/main/assets/emoji/5_154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_155.png b/TMessagesProj/src/main/assets/emoji/5_155.png index 224266f4a8..f3c653a878 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_155.png and b/TMessagesProj/src/main/assets/emoji/5_155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_156.png b/TMessagesProj/src/main/assets/emoji/5_156.png index ba4f10036c..296ab58fb4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_156.png and b/TMessagesProj/src/main/assets/emoji/5_156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_157.png b/TMessagesProj/src/main/assets/emoji/5_157.png index acdf792d2d..6d3d09c701 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_157.png and b/TMessagesProj/src/main/assets/emoji/5_157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_158.png b/TMessagesProj/src/main/assets/emoji/5_158.png index 23cead5089..e8c533993b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_158.png and b/TMessagesProj/src/main/assets/emoji/5_158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_159.png b/TMessagesProj/src/main/assets/emoji/5_159.png index 9e39b83829..fc6bf4a1ab 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_159.png and b/TMessagesProj/src/main/assets/emoji/5_159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_16.png b/TMessagesProj/src/main/assets/emoji/5_16.png index 0a680a3406..6484f14ecc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_16.png and b/TMessagesProj/src/main/assets/emoji/5_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_160.png b/TMessagesProj/src/main/assets/emoji/5_160.png index 57639be56d..c3921ddc51 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_160.png and b/TMessagesProj/src/main/assets/emoji/5_160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_161.png b/TMessagesProj/src/main/assets/emoji/5_161.png index ef7ab5c67b..1d28d1597d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_161.png and b/TMessagesProj/src/main/assets/emoji/5_161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_162.png b/TMessagesProj/src/main/assets/emoji/5_162.png index e2dd58d426..e1626e7cd5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_162.png and b/TMessagesProj/src/main/assets/emoji/5_162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_163.png b/TMessagesProj/src/main/assets/emoji/5_163.png index 4f471a8f4f..879542aa23 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_163.png and b/TMessagesProj/src/main/assets/emoji/5_163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_164.png b/TMessagesProj/src/main/assets/emoji/5_164.png index bbd6d50a3b..c0160dfc19 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_164.png and b/TMessagesProj/src/main/assets/emoji/5_164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_165.png b/TMessagesProj/src/main/assets/emoji/5_165.png index 6ee176359e..1da7bb17c2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_165.png and b/TMessagesProj/src/main/assets/emoji/5_165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_166.png b/TMessagesProj/src/main/assets/emoji/5_166.png index 311e55ac17..4fee6e40a3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_166.png and b/TMessagesProj/src/main/assets/emoji/5_166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_167.png b/TMessagesProj/src/main/assets/emoji/5_167.png index eff092116b..91d3a22d1c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_167.png and b/TMessagesProj/src/main/assets/emoji/5_167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_168.png b/TMessagesProj/src/main/assets/emoji/5_168.png index db7cf62200..68eaf65e1c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_168.png and b/TMessagesProj/src/main/assets/emoji/5_168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_169.png b/TMessagesProj/src/main/assets/emoji/5_169.png index 82e8a836df..b5d564dd56 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_169.png and b/TMessagesProj/src/main/assets/emoji/5_169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_17.png b/TMessagesProj/src/main/assets/emoji/5_17.png index 943ab60be9..601dbf1cca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_17.png and b/TMessagesProj/src/main/assets/emoji/5_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_170.png b/TMessagesProj/src/main/assets/emoji/5_170.png index f8cb1bcc4d..fecba4f6e2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_170.png and b/TMessagesProj/src/main/assets/emoji/5_170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_171.png b/TMessagesProj/src/main/assets/emoji/5_171.png index d6611ca2e3..c3ee655a41 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_171.png and b/TMessagesProj/src/main/assets/emoji/5_171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_172.png b/TMessagesProj/src/main/assets/emoji/5_172.png index dbbe63fb5d..4ee52bc339 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_172.png and b/TMessagesProj/src/main/assets/emoji/5_172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_173.png b/TMessagesProj/src/main/assets/emoji/5_173.png index 081928fedb..b931792e28 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_173.png and b/TMessagesProj/src/main/assets/emoji/5_173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_174.png b/TMessagesProj/src/main/assets/emoji/5_174.png index 98af1ef131..ae48862e6d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_174.png and b/TMessagesProj/src/main/assets/emoji/5_174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_175.png b/TMessagesProj/src/main/assets/emoji/5_175.png index 1415d40451..8930ef95cc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_175.png and b/TMessagesProj/src/main/assets/emoji/5_175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_176.png b/TMessagesProj/src/main/assets/emoji/5_176.png index 6d566b8e38..8333a13f6a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_176.png and b/TMessagesProj/src/main/assets/emoji/5_176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_177.png b/TMessagesProj/src/main/assets/emoji/5_177.png index fb46d68299..ece4721111 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_177.png and b/TMessagesProj/src/main/assets/emoji/5_177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_178.png b/TMessagesProj/src/main/assets/emoji/5_178.png index 8a0c85609a..34f62a9c81 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_178.png and b/TMessagesProj/src/main/assets/emoji/5_178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_179.png b/TMessagesProj/src/main/assets/emoji/5_179.png index 70789204de..86098f5b92 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_179.png and b/TMessagesProj/src/main/assets/emoji/5_179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_18.png b/TMessagesProj/src/main/assets/emoji/5_18.png index ce73d2b8fd..5479b7bf81 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_18.png and b/TMessagesProj/src/main/assets/emoji/5_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_180.png b/TMessagesProj/src/main/assets/emoji/5_180.png index 23097bf547..469f0f461e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_180.png and b/TMessagesProj/src/main/assets/emoji/5_180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_181.png b/TMessagesProj/src/main/assets/emoji/5_181.png index 0bda24b868..7f2bf763b8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_181.png and b/TMessagesProj/src/main/assets/emoji/5_181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_182.png b/TMessagesProj/src/main/assets/emoji/5_182.png index 354e968ce5..3e833f89d1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_182.png and b/TMessagesProj/src/main/assets/emoji/5_182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_183.png b/TMessagesProj/src/main/assets/emoji/5_183.png index bbeb5496cf..aeb62f6b32 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_183.png and b/TMessagesProj/src/main/assets/emoji/5_183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_184.png b/TMessagesProj/src/main/assets/emoji/5_184.png index 26b6f7c786..eb00b07750 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_184.png and b/TMessagesProj/src/main/assets/emoji/5_184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_185.png b/TMessagesProj/src/main/assets/emoji/5_185.png index 2e1313ee6d..3ee5b8b01f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_185.png and b/TMessagesProj/src/main/assets/emoji/5_185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_186.png b/TMessagesProj/src/main/assets/emoji/5_186.png index 1a61851150..fb1019f66f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_186.png and b/TMessagesProj/src/main/assets/emoji/5_186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_187.png b/TMessagesProj/src/main/assets/emoji/5_187.png index 9d281cc504..1f9f11cefe 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_187.png and b/TMessagesProj/src/main/assets/emoji/5_187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_188.png b/TMessagesProj/src/main/assets/emoji/5_188.png index 8aacb80dba..2fd04a3c97 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_188.png and b/TMessagesProj/src/main/assets/emoji/5_188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_189.png b/TMessagesProj/src/main/assets/emoji/5_189.png index e9d9f3c777..1d48fae348 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_189.png and b/TMessagesProj/src/main/assets/emoji/5_189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_19.png b/TMessagesProj/src/main/assets/emoji/5_19.png index 56ffb95437..952bedbb44 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_19.png and b/TMessagesProj/src/main/assets/emoji/5_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_190.png b/TMessagesProj/src/main/assets/emoji/5_190.png index 7b5cc3efe4..cdb2af7a85 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_190.png and b/TMessagesProj/src/main/assets/emoji/5_190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_191.png b/TMessagesProj/src/main/assets/emoji/5_191.png index 268d3e70d9..12d4acb38f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_191.png and b/TMessagesProj/src/main/assets/emoji/5_191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_192.png b/TMessagesProj/src/main/assets/emoji/5_192.png index 0bf93ea0c2..fa49709275 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_192.png and b/TMessagesProj/src/main/assets/emoji/5_192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_193.png b/TMessagesProj/src/main/assets/emoji/5_193.png index b91076ea1a..18ccc69b58 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_193.png and b/TMessagesProj/src/main/assets/emoji/5_193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_194.png b/TMessagesProj/src/main/assets/emoji/5_194.png index 54e6a0fa11..8b096cc1b1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_194.png and b/TMessagesProj/src/main/assets/emoji/5_194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_195.png b/TMessagesProj/src/main/assets/emoji/5_195.png index 099cab9206..d6bbd427e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_195.png and b/TMessagesProj/src/main/assets/emoji/5_195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_196.png b/TMessagesProj/src/main/assets/emoji/5_196.png index 8813ca881c..8b95a39d4f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_196.png and b/TMessagesProj/src/main/assets/emoji/5_196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_197.png b/TMessagesProj/src/main/assets/emoji/5_197.png index d63e6c6229..259949c481 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_197.png and b/TMessagesProj/src/main/assets/emoji/5_197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_198.png b/TMessagesProj/src/main/assets/emoji/5_198.png index b2a4d14feb..cf401d8174 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_198.png and b/TMessagesProj/src/main/assets/emoji/5_198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_199.png b/TMessagesProj/src/main/assets/emoji/5_199.png index a3a227c3d5..85192e023e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_199.png and b/TMessagesProj/src/main/assets/emoji/5_199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_2.png b/TMessagesProj/src/main/assets/emoji/5_2.png index 64b750326c..82e4c0eb2f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_2.png and b/TMessagesProj/src/main/assets/emoji/5_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_20.png b/TMessagesProj/src/main/assets/emoji/5_20.png index 425cde5a11..ac95d76d52 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_20.png and b/TMessagesProj/src/main/assets/emoji/5_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_200.png b/TMessagesProj/src/main/assets/emoji/5_200.png index 5ae3ebd25e..7248ed669e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_200.png and b/TMessagesProj/src/main/assets/emoji/5_200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_201.png b/TMessagesProj/src/main/assets/emoji/5_201.png index 67b4cc8339..fe8a4b0c10 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_201.png and b/TMessagesProj/src/main/assets/emoji/5_201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_202.png b/TMessagesProj/src/main/assets/emoji/5_202.png index e297bad827..e8b0731ee5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_202.png and b/TMessagesProj/src/main/assets/emoji/5_202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_203.png b/TMessagesProj/src/main/assets/emoji/5_203.png index c7346abd47..7985275cdd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_203.png and b/TMessagesProj/src/main/assets/emoji/5_203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_204.png b/TMessagesProj/src/main/assets/emoji/5_204.png index ea3528594c..8a70c4e11d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_204.png and b/TMessagesProj/src/main/assets/emoji/5_204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_205.png b/TMessagesProj/src/main/assets/emoji/5_205.png index 225c1f3282..8a8c87ece4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_205.png and b/TMessagesProj/src/main/assets/emoji/5_205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_206.png b/TMessagesProj/src/main/assets/emoji/5_206.png index 06e6ba3685..fc9090b044 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_206.png and b/TMessagesProj/src/main/assets/emoji/5_206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_207.png b/TMessagesProj/src/main/assets/emoji/5_207.png index 03ebd60504..6fd6b3ccc4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_207.png and b/TMessagesProj/src/main/assets/emoji/5_207.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_208.png b/TMessagesProj/src/main/assets/emoji/5_208.png index ce6b4ea413..404aa14310 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_208.png and b/TMessagesProj/src/main/assets/emoji/5_208.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_209.png b/TMessagesProj/src/main/assets/emoji/5_209.png index 259347444f..fdc5fc8e83 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_209.png and b/TMessagesProj/src/main/assets/emoji/5_209.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_21.png b/TMessagesProj/src/main/assets/emoji/5_21.png index 1e6c17902b..2bd3c2d3fd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_21.png and b/TMessagesProj/src/main/assets/emoji/5_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_210.png b/TMessagesProj/src/main/assets/emoji/5_210.png index 571bfdb593..311c61810b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_210.png and b/TMessagesProj/src/main/assets/emoji/5_210.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_211.png b/TMessagesProj/src/main/assets/emoji/5_211.png index 1b8a462826..bab87cf953 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_211.png and b/TMessagesProj/src/main/assets/emoji/5_211.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_212.png b/TMessagesProj/src/main/assets/emoji/5_212.png index 97b8e1b5cf..65b4600b5e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_212.png and b/TMessagesProj/src/main/assets/emoji/5_212.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_213.png b/TMessagesProj/src/main/assets/emoji/5_213.png index 2cd7be883d..7892c4b959 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_213.png and b/TMessagesProj/src/main/assets/emoji/5_213.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_214.png b/TMessagesProj/src/main/assets/emoji/5_214.png index 9c9fdc2fbe..9eea767500 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_214.png and b/TMessagesProj/src/main/assets/emoji/5_214.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_215.png b/TMessagesProj/src/main/assets/emoji/5_215.png index adbff04b50..cf42990c04 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_215.png and b/TMessagesProj/src/main/assets/emoji/5_215.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_216.png b/TMessagesProj/src/main/assets/emoji/5_216.png index 418ee569a5..f4194d409d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_216.png and b/TMessagesProj/src/main/assets/emoji/5_216.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_217.png b/TMessagesProj/src/main/assets/emoji/5_217.png index c7e83d5c30..8f24e34f45 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_217.png and b/TMessagesProj/src/main/assets/emoji/5_217.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_218.png b/TMessagesProj/src/main/assets/emoji/5_218.png index 95398105cc..3c806d7f4e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_218.png and b/TMessagesProj/src/main/assets/emoji/5_218.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_219.png b/TMessagesProj/src/main/assets/emoji/5_219.png index 7f78b9cf31..967401d0db 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_219.png and b/TMessagesProj/src/main/assets/emoji/5_219.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_22.png b/TMessagesProj/src/main/assets/emoji/5_22.png index baf2729603..27fddfb21c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_22.png and b/TMessagesProj/src/main/assets/emoji/5_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_220.png b/TMessagesProj/src/main/assets/emoji/5_220.png index 283e751df3..14a7906eff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_220.png and b/TMessagesProj/src/main/assets/emoji/5_220.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_221.png b/TMessagesProj/src/main/assets/emoji/5_221.png index 165228005e..39c7ccfa80 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_221.png and b/TMessagesProj/src/main/assets/emoji/5_221.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_222.png b/TMessagesProj/src/main/assets/emoji/5_222.png index 3e29be4730..63cdfef6a7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_222.png and b/TMessagesProj/src/main/assets/emoji/5_222.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_223.png b/TMessagesProj/src/main/assets/emoji/5_223.png index bd1b2112ae..a12d7b6dc4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_223.png and b/TMessagesProj/src/main/assets/emoji/5_223.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_224.png b/TMessagesProj/src/main/assets/emoji/5_224.png index d7721f7cf5..8df94fcb96 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_224.png and b/TMessagesProj/src/main/assets/emoji/5_224.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_225.png b/TMessagesProj/src/main/assets/emoji/5_225.png index 12b108878b..8849c023ee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_225.png and b/TMessagesProj/src/main/assets/emoji/5_225.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_226.png b/TMessagesProj/src/main/assets/emoji/5_226.png index 16575b2c2d..340e7f74c1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_226.png and b/TMessagesProj/src/main/assets/emoji/5_226.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_227.png b/TMessagesProj/src/main/assets/emoji/5_227.png index 2a81cae621..939e61904e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_227.png and b/TMessagesProj/src/main/assets/emoji/5_227.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_228.png b/TMessagesProj/src/main/assets/emoji/5_228.png index 5bbbd6660e..8227ab4695 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_228.png and b/TMessagesProj/src/main/assets/emoji/5_228.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_229.png b/TMessagesProj/src/main/assets/emoji/5_229.png index 05a3193eaf..c5b1d4a46c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_229.png and b/TMessagesProj/src/main/assets/emoji/5_229.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_23.png b/TMessagesProj/src/main/assets/emoji/5_23.png index 39500211f1..20ce83a532 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_23.png and b/TMessagesProj/src/main/assets/emoji/5_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_24.png b/TMessagesProj/src/main/assets/emoji/5_24.png index 514fa78135..e0cbe4723e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_24.png and b/TMessagesProj/src/main/assets/emoji/5_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_25.png b/TMessagesProj/src/main/assets/emoji/5_25.png index 812917bd06..3a0ee9091e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_25.png and b/TMessagesProj/src/main/assets/emoji/5_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_26.png b/TMessagesProj/src/main/assets/emoji/5_26.png index 230484ee86..aefb61e0a4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_26.png and b/TMessagesProj/src/main/assets/emoji/5_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_27.png b/TMessagesProj/src/main/assets/emoji/5_27.png index b07c6e628c..6935177ee9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_27.png and b/TMessagesProj/src/main/assets/emoji/5_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_28.png b/TMessagesProj/src/main/assets/emoji/5_28.png index cd6e39b6c2..c2302da43e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_28.png and b/TMessagesProj/src/main/assets/emoji/5_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_29.png b/TMessagesProj/src/main/assets/emoji/5_29.png index 452dfeb3fc..d1173989d1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_29.png and b/TMessagesProj/src/main/assets/emoji/5_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_3.png b/TMessagesProj/src/main/assets/emoji/5_3.png index 8640f749c5..80fd90ae12 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_3.png and b/TMessagesProj/src/main/assets/emoji/5_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_30.png b/TMessagesProj/src/main/assets/emoji/5_30.png index 212d4482ef..a29020ab50 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_30.png and b/TMessagesProj/src/main/assets/emoji/5_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_31.png b/TMessagesProj/src/main/assets/emoji/5_31.png index 758bc2c2e6..16bf01cbea 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_31.png and b/TMessagesProj/src/main/assets/emoji/5_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_32.png b/TMessagesProj/src/main/assets/emoji/5_32.png index eeae24bcfc..e0a0b088e6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_32.png and b/TMessagesProj/src/main/assets/emoji/5_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_33.png b/TMessagesProj/src/main/assets/emoji/5_33.png index 48da451c04..b86dfdff3a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_33.png and b/TMessagesProj/src/main/assets/emoji/5_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_34.png b/TMessagesProj/src/main/assets/emoji/5_34.png index 5a4c43899d..87959ba01a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_34.png and b/TMessagesProj/src/main/assets/emoji/5_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_35.png b/TMessagesProj/src/main/assets/emoji/5_35.png index e76ca84810..e0e3cb4402 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_35.png and b/TMessagesProj/src/main/assets/emoji/5_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_36.png b/TMessagesProj/src/main/assets/emoji/5_36.png index 6b072cbe65..43e9128278 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_36.png and b/TMessagesProj/src/main/assets/emoji/5_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_37.png b/TMessagesProj/src/main/assets/emoji/5_37.png index 8c5deb5bab..d8d2fa4e16 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_37.png and b/TMessagesProj/src/main/assets/emoji/5_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_38.png b/TMessagesProj/src/main/assets/emoji/5_38.png index eefd0c4e63..53319f5549 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_38.png and b/TMessagesProj/src/main/assets/emoji/5_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_39.png b/TMessagesProj/src/main/assets/emoji/5_39.png index 262aa3b35a..f049a18501 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_39.png and b/TMessagesProj/src/main/assets/emoji/5_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_4.png b/TMessagesProj/src/main/assets/emoji/5_4.png index 57a637f45b..2ec75d785a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_4.png and b/TMessagesProj/src/main/assets/emoji/5_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_40.png b/TMessagesProj/src/main/assets/emoji/5_40.png index 17bea3b81d..d6cdee66b4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_40.png and b/TMessagesProj/src/main/assets/emoji/5_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_41.png b/TMessagesProj/src/main/assets/emoji/5_41.png index b38da5d1e0..ecdfde14d5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_41.png and b/TMessagesProj/src/main/assets/emoji/5_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_42.png b/TMessagesProj/src/main/assets/emoji/5_42.png index 9ba9542d4e..55ca41ac4d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_42.png and b/TMessagesProj/src/main/assets/emoji/5_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_43.png b/TMessagesProj/src/main/assets/emoji/5_43.png index 3451d3cb97..cec046f191 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_43.png and b/TMessagesProj/src/main/assets/emoji/5_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_44.png b/TMessagesProj/src/main/assets/emoji/5_44.png index ea0d816ffd..ff2707726f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_44.png and b/TMessagesProj/src/main/assets/emoji/5_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_45.png b/TMessagesProj/src/main/assets/emoji/5_45.png index 6d28a6889c..267085a64e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_45.png and b/TMessagesProj/src/main/assets/emoji/5_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_46.png b/TMessagesProj/src/main/assets/emoji/5_46.png index 515e90a831..af6c607c3c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_46.png and b/TMessagesProj/src/main/assets/emoji/5_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_47.png b/TMessagesProj/src/main/assets/emoji/5_47.png index a8a29fb378..569ac71235 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_47.png and b/TMessagesProj/src/main/assets/emoji/5_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_48.png b/TMessagesProj/src/main/assets/emoji/5_48.png index 791eaf3163..5381ac5026 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_48.png and b/TMessagesProj/src/main/assets/emoji/5_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_49.png b/TMessagesProj/src/main/assets/emoji/5_49.png index ea9f75dd2b..aea1fc69d9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_49.png and b/TMessagesProj/src/main/assets/emoji/5_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_5.png b/TMessagesProj/src/main/assets/emoji/5_5.png index 9e60be44de..6f22828969 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_5.png and b/TMessagesProj/src/main/assets/emoji/5_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_50.png b/TMessagesProj/src/main/assets/emoji/5_50.png index ca69e487a7..c056762d20 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_50.png and b/TMessagesProj/src/main/assets/emoji/5_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_51.png b/TMessagesProj/src/main/assets/emoji/5_51.png index 6f645aaf65..243a2a2317 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_51.png and b/TMessagesProj/src/main/assets/emoji/5_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_52.png b/TMessagesProj/src/main/assets/emoji/5_52.png index 6f7cb9b691..c200bc9f31 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_52.png and b/TMessagesProj/src/main/assets/emoji/5_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_53.png b/TMessagesProj/src/main/assets/emoji/5_53.png index fe688c15b2..abf2da6ba9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_53.png and b/TMessagesProj/src/main/assets/emoji/5_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_54.png b/TMessagesProj/src/main/assets/emoji/5_54.png index b46235bd01..8b82b72bcf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_54.png and b/TMessagesProj/src/main/assets/emoji/5_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_55.png b/TMessagesProj/src/main/assets/emoji/5_55.png index 6ab4617791..9a059179a3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_55.png and b/TMessagesProj/src/main/assets/emoji/5_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_56.png b/TMessagesProj/src/main/assets/emoji/5_56.png index fff1aa5d02..64209cf54e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_56.png and b/TMessagesProj/src/main/assets/emoji/5_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_57.png b/TMessagesProj/src/main/assets/emoji/5_57.png index 23e136fbcd..d20214bad0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_57.png and b/TMessagesProj/src/main/assets/emoji/5_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_58.png b/TMessagesProj/src/main/assets/emoji/5_58.png index 87bd326780..82769c2e7a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_58.png and b/TMessagesProj/src/main/assets/emoji/5_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_59.png b/TMessagesProj/src/main/assets/emoji/5_59.png index 97d0ee1029..b5ba33b96b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_59.png and b/TMessagesProj/src/main/assets/emoji/5_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_6.png b/TMessagesProj/src/main/assets/emoji/5_6.png index b4895a709d..048278875e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_6.png and b/TMessagesProj/src/main/assets/emoji/5_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_60.png b/TMessagesProj/src/main/assets/emoji/5_60.png index 76625a379a..9d0e985b12 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_60.png and b/TMessagesProj/src/main/assets/emoji/5_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_61.png b/TMessagesProj/src/main/assets/emoji/5_61.png index 8b139f9572..116e7d0e3b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_61.png and b/TMessagesProj/src/main/assets/emoji/5_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_62.png b/TMessagesProj/src/main/assets/emoji/5_62.png index 2ad2212c4d..5691fe97af 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_62.png and b/TMessagesProj/src/main/assets/emoji/5_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_63.png b/TMessagesProj/src/main/assets/emoji/5_63.png index 75af972869..7cfb88088f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_63.png and b/TMessagesProj/src/main/assets/emoji/5_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_64.png b/TMessagesProj/src/main/assets/emoji/5_64.png index 49c1b54024..dd9d9498ad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_64.png and b/TMessagesProj/src/main/assets/emoji/5_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_65.png b/TMessagesProj/src/main/assets/emoji/5_65.png index 162b0f714b..ea370015ff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_65.png and b/TMessagesProj/src/main/assets/emoji/5_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_66.png b/TMessagesProj/src/main/assets/emoji/5_66.png index 073fe30b5e..0cfd0e1ed9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_66.png and b/TMessagesProj/src/main/assets/emoji/5_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_67.png b/TMessagesProj/src/main/assets/emoji/5_67.png index f9c3108496..c6f5442775 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_67.png and b/TMessagesProj/src/main/assets/emoji/5_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_68.png b/TMessagesProj/src/main/assets/emoji/5_68.png index 0f41b0da7a..ea472731a5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_68.png and b/TMessagesProj/src/main/assets/emoji/5_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_69.png b/TMessagesProj/src/main/assets/emoji/5_69.png index bfe3d41576..2916d0b520 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_69.png and b/TMessagesProj/src/main/assets/emoji/5_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_7.png b/TMessagesProj/src/main/assets/emoji/5_7.png index b828c887c4..835fe61343 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_7.png and b/TMessagesProj/src/main/assets/emoji/5_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_70.png b/TMessagesProj/src/main/assets/emoji/5_70.png index ff29591b94..822cbef784 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_70.png and b/TMessagesProj/src/main/assets/emoji/5_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_71.png b/TMessagesProj/src/main/assets/emoji/5_71.png index 60cc9e1614..f4a87f5886 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_71.png and b/TMessagesProj/src/main/assets/emoji/5_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_72.png b/TMessagesProj/src/main/assets/emoji/5_72.png index cf3950410e..b4c73ea2c7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_72.png and b/TMessagesProj/src/main/assets/emoji/5_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_73.png b/TMessagesProj/src/main/assets/emoji/5_73.png index 23bf0bb554..811e260413 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_73.png and b/TMessagesProj/src/main/assets/emoji/5_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_74.png b/TMessagesProj/src/main/assets/emoji/5_74.png index f498fef024..64a0abfd74 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_74.png and b/TMessagesProj/src/main/assets/emoji/5_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_75.png b/TMessagesProj/src/main/assets/emoji/5_75.png index fb4cdd2685..0174f4d74e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_75.png and b/TMessagesProj/src/main/assets/emoji/5_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_76.png b/TMessagesProj/src/main/assets/emoji/5_76.png index dc92204e24..849322c1d9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_76.png and b/TMessagesProj/src/main/assets/emoji/5_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_77.png b/TMessagesProj/src/main/assets/emoji/5_77.png index be7fc4a421..c43ab7cf59 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_77.png and b/TMessagesProj/src/main/assets/emoji/5_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_78.png b/TMessagesProj/src/main/assets/emoji/5_78.png index 2f8dab0f68..cb66b31af1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_78.png and b/TMessagesProj/src/main/assets/emoji/5_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_79.png b/TMessagesProj/src/main/assets/emoji/5_79.png index 1d993c68ed..45d99ad083 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_79.png and b/TMessagesProj/src/main/assets/emoji/5_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_8.png b/TMessagesProj/src/main/assets/emoji/5_8.png index e77bfe9750..54d467dff5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_8.png and b/TMessagesProj/src/main/assets/emoji/5_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_80.png b/TMessagesProj/src/main/assets/emoji/5_80.png index 728ff9659e..9ff8abc167 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_80.png and b/TMessagesProj/src/main/assets/emoji/5_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_81.png b/TMessagesProj/src/main/assets/emoji/5_81.png index 7ad1db0f48..724a5e0f5f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_81.png and b/TMessagesProj/src/main/assets/emoji/5_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_82.png b/TMessagesProj/src/main/assets/emoji/5_82.png index fd7426104e..9bede1563d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_82.png and b/TMessagesProj/src/main/assets/emoji/5_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_83.png b/TMessagesProj/src/main/assets/emoji/5_83.png index 68c3bbd170..11e834add0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_83.png and b/TMessagesProj/src/main/assets/emoji/5_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_84.png b/TMessagesProj/src/main/assets/emoji/5_84.png index c484a4e0e2..5c1b93240c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_84.png and b/TMessagesProj/src/main/assets/emoji/5_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_85.png b/TMessagesProj/src/main/assets/emoji/5_85.png index af12fd3a78..96ff2f4e97 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_85.png and b/TMessagesProj/src/main/assets/emoji/5_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_86.png b/TMessagesProj/src/main/assets/emoji/5_86.png index 09bdd943a8..0652a7c6d7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_86.png and b/TMessagesProj/src/main/assets/emoji/5_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_87.png b/TMessagesProj/src/main/assets/emoji/5_87.png index 865c909632..c28ead611a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_87.png and b/TMessagesProj/src/main/assets/emoji/5_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_88.png b/TMessagesProj/src/main/assets/emoji/5_88.png index e8d45a55e2..a89bb4ff41 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_88.png and b/TMessagesProj/src/main/assets/emoji/5_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_89.png b/TMessagesProj/src/main/assets/emoji/5_89.png index 4017d56d6c..d3c38f8755 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_89.png and b/TMessagesProj/src/main/assets/emoji/5_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_9.png b/TMessagesProj/src/main/assets/emoji/5_9.png index eef4ce8813..5e16e41884 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_9.png and b/TMessagesProj/src/main/assets/emoji/5_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_90.png b/TMessagesProj/src/main/assets/emoji/5_90.png index 2052ab108d..12942f6fa7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_90.png and b/TMessagesProj/src/main/assets/emoji/5_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_91.png b/TMessagesProj/src/main/assets/emoji/5_91.png index d51399ea9f..f7656f9727 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_91.png and b/TMessagesProj/src/main/assets/emoji/5_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_92.png b/TMessagesProj/src/main/assets/emoji/5_92.png index e61e03110e..a91f5d0912 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_92.png and b/TMessagesProj/src/main/assets/emoji/5_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_93.png b/TMessagesProj/src/main/assets/emoji/5_93.png index 057d72db74..11bbf0d38f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_93.png and b/TMessagesProj/src/main/assets/emoji/5_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_94.png b/TMessagesProj/src/main/assets/emoji/5_94.png index 4bb01b48cc..3ef9a86f19 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_94.png and b/TMessagesProj/src/main/assets/emoji/5_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_95.png b/TMessagesProj/src/main/assets/emoji/5_95.png index 0f6872773a..0b95ff454d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_95.png and b/TMessagesProj/src/main/assets/emoji/5_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_96.png b/TMessagesProj/src/main/assets/emoji/5_96.png index 067caf45c7..5340e37748 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_96.png and b/TMessagesProj/src/main/assets/emoji/5_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_97.png b/TMessagesProj/src/main/assets/emoji/5_97.png index 0f1240fbed..8c90b8d4f2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_97.png and b/TMessagesProj/src/main/assets/emoji/5_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_98.png b/TMessagesProj/src/main/assets/emoji/5_98.png index 8c4a9dc254..02362d3ac6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_98.png and b/TMessagesProj/src/main/assets/emoji/5_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/5_99.png b/TMessagesProj/src/main/assets/emoji/5_99.png index f9e072d287..892efb6d86 100644 Binary files a/TMessagesProj/src/main/assets/emoji/5_99.png and b/TMessagesProj/src/main/assets/emoji/5_99.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_0.png b/TMessagesProj/src/main/assets/emoji/6_0.png index 8be64f99b2..49e56ce744 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_0.png and b/TMessagesProj/src/main/assets/emoji/6_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_1.png b/TMessagesProj/src/main/assets/emoji/6_1.png index a02f89d21b..44c470e799 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_1.png and b/TMessagesProj/src/main/assets/emoji/6_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_10.png b/TMessagesProj/src/main/assets/emoji/6_10.png index e33139241b..8576b98c2a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_10.png and b/TMessagesProj/src/main/assets/emoji/6_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_100.png b/TMessagesProj/src/main/assets/emoji/6_100.png index 2c0d78c875..c0a7b0d0be 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_100.png and b/TMessagesProj/src/main/assets/emoji/6_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_101.png b/TMessagesProj/src/main/assets/emoji/6_101.png index 30f09cf77e..e2684466ab 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_101.png and b/TMessagesProj/src/main/assets/emoji/6_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_102.png b/TMessagesProj/src/main/assets/emoji/6_102.png index b57b913553..074fa943c1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_102.png and b/TMessagesProj/src/main/assets/emoji/6_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_103.png b/TMessagesProj/src/main/assets/emoji/6_103.png index bce2707019..57d7b5c421 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_103.png and b/TMessagesProj/src/main/assets/emoji/6_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_104.png b/TMessagesProj/src/main/assets/emoji/6_104.png index 402e4c4a10..2d9d368d39 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_104.png and b/TMessagesProj/src/main/assets/emoji/6_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_105.png b/TMessagesProj/src/main/assets/emoji/6_105.png index 938764a2d3..7dc482890a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_105.png and b/TMessagesProj/src/main/assets/emoji/6_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_106.png b/TMessagesProj/src/main/assets/emoji/6_106.png index 5bfa503ae6..26bddbf44a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_106.png and b/TMessagesProj/src/main/assets/emoji/6_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_107.png b/TMessagesProj/src/main/assets/emoji/6_107.png index f4b7fae7a5..7a72a6b166 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_107.png and b/TMessagesProj/src/main/assets/emoji/6_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_108.png b/TMessagesProj/src/main/assets/emoji/6_108.png index 3c128bc109..ce26d9eb2e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_108.png and b/TMessagesProj/src/main/assets/emoji/6_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_109.png b/TMessagesProj/src/main/assets/emoji/6_109.png index 03446c0e1e..a2d2ed5c33 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_109.png and b/TMessagesProj/src/main/assets/emoji/6_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_11.png b/TMessagesProj/src/main/assets/emoji/6_11.png index cf04dd6895..7efc9ce6b1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_11.png and b/TMessagesProj/src/main/assets/emoji/6_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_110.png b/TMessagesProj/src/main/assets/emoji/6_110.png index fe99a8cfe1..cd9c21a159 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_110.png and b/TMessagesProj/src/main/assets/emoji/6_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_111.png b/TMessagesProj/src/main/assets/emoji/6_111.png index 8e0a5444a5..560cf16f9f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_111.png and b/TMessagesProj/src/main/assets/emoji/6_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_112.png b/TMessagesProj/src/main/assets/emoji/6_112.png index 9b83fa2595..38a4d1e2db 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_112.png and b/TMessagesProj/src/main/assets/emoji/6_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_113.png b/TMessagesProj/src/main/assets/emoji/6_113.png index 5d0b4b15a4..0b4473e1fb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_113.png and b/TMessagesProj/src/main/assets/emoji/6_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_114.png b/TMessagesProj/src/main/assets/emoji/6_114.png index 24bb1afb7b..f8d1931613 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_114.png and b/TMessagesProj/src/main/assets/emoji/6_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_115.png b/TMessagesProj/src/main/assets/emoji/6_115.png index c6e88729cd..b2ea0b9a97 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_115.png and b/TMessagesProj/src/main/assets/emoji/6_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_116.png b/TMessagesProj/src/main/assets/emoji/6_116.png index 9f80b23d11..2fdcb0eaef 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_116.png and b/TMessagesProj/src/main/assets/emoji/6_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_117.png b/TMessagesProj/src/main/assets/emoji/6_117.png index 2792d74bde..d4528c0489 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_117.png and b/TMessagesProj/src/main/assets/emoji/6_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_118.png b/TMessagesProj/src/main/assets/emoji/6_118.png index 87a1031534..3c19c1f3cd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_118.png and b/TMessagesProj/src/main/assets/emoji/6_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_119.png b/TMessagesProj/src/main/assets/emoji/6_119.png index 0d303bab21..ae733d06f6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_119.png and b/TMessagesProj/src/main/assets/emoji/6_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_12.png b/TMessagesProj/src/main/assets/emoji/6_12.png index 50619fbdea..9cf5ee283a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_12.png and b/TMessagesProj/src/main/assets/emoji/6_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_120.png b/TMessagesProj/src/main/assets/emoji/6_120.png index f3f182715d..83a7e5aaec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_120.png and b/TMessagesProj/src/main/assets/emoji/6_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_121.png b/TMessagesProj/src/main/assets/emoji/6_121.png index 8d2190da1e..b23803058e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_121.png and b/TMessagesProj/src/main/assets/emoji/6_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_122.png b/TMessagesProj/src/main/assets/emoji/6_122.png index 5282cfc01d..90d5ae9215 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_122.png and b/TMessagesProj/src/main/assets/emoji/6_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_123.png b/TMessagesProj/src/main/assets/emoji/6_123.png index c56a1158d7..39daa16073 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_123.png and b/TMessagesProj/src/main/assets/emoji/6_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_124.png b/TMessagesProj/src/main/assets/emoji/6_124.png index e7e00491bf..f397a2bff1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_124.png and b/TMessagesProj/src/main/assets/emoji/6_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_125.png b/TMessagesProj/src/main/assets/emoji/6_125.png index 2cf58c8beb..e080985b33 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_125.png and b/TMessagesProj/src/main/assets/emoji/6_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_126.png b/TMessagesProj/src/main/assets/emoji/6_126.png index a378b02235..bf3cdd750d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_126.png and b/TMessagesProj/src/main/assets/emoji/6_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_127.png b/TMessagesProj/src/main/assets/emoji/6_127.png index 0cbace45f0..0e41b91c77 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_127.png and b/TMessagesProj/src/main/assets/emoji/6_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_128.png b/TMessagesProj/src/main/assets/emoji/6_128.png index ecb6682669..dc4c8ab22f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_128.png and b/TMessagesProj/src/main/assets/emoji/6_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_129.png b/TMessagesProj/src/main/assets/emoji/6_129.png index fcffe7a86a..a320043746 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_129.png and b/TMessagesProj/src/main/assets/emoji/6_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_13.png b/TMessagesProj/src/main/assets/emoji/6_13.png index 90e04122e8..ee5635c80b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_13.png and b/TMessagesProj/src/main/assets/emoji/6_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_130.png b/TMessagesProj/src/main/assets/emoji/6_130.png index 789b414cbd..fd965d7436 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_130.png and b/TMessagesProj/src/main/assets/emoji/6_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_131.png b/TMessagesProj/src/main/assets/emoji/6_131.png index 4b3d727968..8cb59f0a92 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_131.png and b/TMessagesProj/src/main/assets/emoji/6_131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_132.png b/TMessagesProj/src/main/assets/emoji/6_132.png index 6d1d56c22f..0e4de4b2c0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_132.png and b/TMessagesProj/src/main/assets/emoji/6_132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_133.png b/TMessagesProj/src/main/assets/emoji/6_133.png index f11cf4deeb..9802d0c219 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_133.png and b/TMessagesProj/src/main/assets/emoji/6_133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_134.png b/TMessagesProj/src/main/assets/emoji/6_134.png index 4053a7c8d7..525262bc4d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_134.png and b/TMessagesProj/src/main/assets/emoji/6_134.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_135.png b/TMessagesProj/src/main/assets/emoji/6_135.png index c32b20e155..53b69ef7cd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_135.png and b/TMessagesProj/src/main/assets/emoji/6_135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_136.png b/TMessagesProj/src/main/assets/emoji/6_136.png index 2a641c3441..0d2598215a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_136.png and b/TMessagesProj/src/main/assets/emoji/6_136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_137.png b/TMessagesProj/src/main/assets/emoji/6_137.png index f5ac9d4258..9000f835af 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_137.png and b/TMessagesProj/src/main/assets/emoji/6_137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_138.png b/TMessagesProj/src/main/assets/emoji/6_138.png index 11410dc353..fa3487b2b7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_138.png and b/TMessagesProj/src/main/assets/emoji/6_138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_139.png b/TMessagesProj/src/main/assets/emoji/6_139.png index 26ee05356a..ca6977a070 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_139.png and b/TMessagesProj/src/main/assets/emoji/6_139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_14.png b/TMessagesProj/src/main/assets/emoji/6_14.png index 2876d3d587..aac2331a71 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_14.png and b/TMessagesProj/src/main/assets/emoji/6_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_140.png b/TMessagesProj/src/main/assets/emoji/6_140.png index e1ff28a784..2719e9979d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_140.png and b/TMessagesProj/src/main/assets/emoji/6_140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_141.png b/TMessagesProj/src/main/assets/emoji/6_141.png index ae403c97f5..232ef27086 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_141.png and b/TMessagesProj/src/main/assets/emoji/6_141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_142.png b/TMessagesProj/src/main/assets/emoji/6_142.png index 1bd36850a8..76dfd3af7b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_142.png and b/TMessagesProj/src/main/assets/emoji/6_142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_143.png b/TMessagesProj/src/main/assets/emoji/6_143.png index 69e9730d70..309c9dbbde 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_143.png and b/TMessagesProj/src/main/assets/emoji/6_143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_144.png b/TMessagesProj/src/main/assets/emoji/6_144.png index c27faf6646..1e3cbaccf4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_144.png and b/TMessagesProj/src/main/assets/emoji/6_144.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_145.png b/TMessagesProj/src/main/assets/emoji/6_145.png index 551098aabb..d76cf76364 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_145.png and b/TMessagesProj/src/main/assets/emoji/6_145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_146.png b/TMessagesProj/src/main/assets/emoji/6_146.png index 9ff86ecc2a..7376a31129 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_146.png and b/TMessagesProj/src/main/assets/emoji/6_146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_147.png b/TMessagesProj/src/main/assets/emoji/6_147.png index d7d32074b3..eaf20ac5f3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_147.png and b/TMessagesProj/src/main/assets/emoji/6_147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_148.png b/TMessagesProj/src/main/assets/emoji/6_148.png index 0420b98ad9..71e203383b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_148.png and b/TMessagesProj/src/main/assets/emoji/6_148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_149.png b/TMessagesProj/src/main/assets/emoji/6_149.png index 95c497230a..ede339eeef 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_149.png and b/TMessagesProj/src/main/assets/emoji/6_149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_15.png b/TMessagesProj/src/main/assets/emoji/6_15.png index 1b5220e79a..d105fcfa08 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_15.png and b/TMessagesProj/src/main/assets/emoji/6_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_150.png b/TMessagesProj/src/main/assets/emoji/6_150.png index 0286b1ff46..d22a77f470 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_150.png and b/TMessagesProj/src/main/assets/emoji/6_150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_151.png b/TMessagesProj/src/main/assets/emoji/6_151.png index 4754fc72b9..c768db28af 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_151.png and b/TMessagesProj/src/main/assets/emoji/6_151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_152.png b/TMessagesProj/src/main/assets/emoji/6_152.png index 38a0398b27..fc6c544240 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_152.png and b/TMessagesProj/src/main/assets/emoji/6_152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_153.png b/TMessagesProj/src/main/assets/emoji/6_153.png index 7ce7a0679b..a078b3d197 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_153.png and b/TMessagesProj/src/main/assets/emoji/6_153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_154.png b/TMessagesProj/src/main/assets/emoji/6_154.png index 724863ab7f..b9e9ed566d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_154.png and b/TMessagesProj/src/main/assets/emoji/6_154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_155.png b/TMessagesProj/src/main/assets/emoji/6_155.png index 0c3f150796..adecd9742f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_155.png and b/TMessagesProj/src/main/assets/emoji/6_155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_156.png b/TMessagesProj/src/main/assets/emoji/6_156.png index e1d1b4b5d1..38cb6b2bd9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_156.png and b/TMessagesProj/src/main/assets/emoji/6_156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_157.png b/TMessagesProj/src/main/assets/emoji/6_157.png index c5ce7a8a84..314a88cf53 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_157.png and b/TMessagesProj/src/main/assets/emoji/6_157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_158.png b/TMessagesProj/src/main/assets/emoji/6_158.png index 14dbdef63b..9f6c277561 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_158.png and b/TMessagesProj/src/main/assets/emoji/6_158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_159.png b/TMessagesProj/src/main/assets/emoji/6_159.png index 5e6457e736..eb1040ea58 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_159.png and b/TMessagesProj/src/main/assets/emoji/6_159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_16.png b/TMessagesProj/src/main/assets/emoji/6_16.png index e9aa688ebc..9710dbcdb5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_16.png and b/TMessagesProj/src/main/assets/emoji/6_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_160.png b/TMessagesProj/src/main/assets/emoji/6_160.png index b804e51b81..0dd621a735 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_160.png and b/TMessagesProj/src/main/assets/emoji/6_160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_161.png b/TMessagesProj/src/main/assets/emoji/6_161.png index 530854f5d7..8e229ed5fa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_161.png and b/TMessagesProj/src/main/assets/emoji/6_161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_162.png b/TMessagesProj/src/main/assets/emoji/6_162.png index d31d40fbe7..16b76dabe0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_162.png and b/TMessagesProj/src/main/assets/emoji/6_162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_163.png b/TMessagesProj/src/main/assets/emoji/6_163.png index 26d62af442..d703f2033d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_163.png and b/TMessagesProj/src/main/assets/emoji/6_163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_164.png b/TMessagesProj/src/main/assets/emoji/6_164.png index ffebdd9acf..48772ec9e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_164.png and b/TMessagesProj/src/main/assets/emoji/6_164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_165.png b/TMessagesProj/src/main/assets/emoji/6_165.png index 1dadb09675..c03c9e3ef1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_165.png and b/TMessagesProj/src/main/assets/emoji/6_165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_166.png b/TMessagesProj/src/main/assets/emoji/6_166.png index 58a054257f..2cafc90af4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_166.png and b/TMessagesProj/src/main/assets/emoji/6_166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_167.png b/TMessagesProj/src/main/assets/emoji/6_167.png index 12cc93ad98..cb618e5493 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_167.png and b/TMessagesProj/src/main/assets/emoji/6_167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_168.png b/TMessagesProj/src/main/assets/emoji/6_168.png index b07b0c58a9..e63d9ba3e9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_168.png and b/TMessagesProj/src/main/assets/emoji/6_168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_169.png b/TMessagesProj/src/main/assets/emoji/6_169.png index e36a2a89a2..99608eeea7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_169.png and b/TMessagesProj/src/main/assets/emoji/6_169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_17.png b/TMessagesProj/src/main/assets/emoji/6_17.png index 8c214b94de..b2bdd9ccd4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_17.png and b/TMessagesProj/src/main/assets/emoji/6_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_170.png b/TMessagesProj/src/main/assets/emoji/6_170.png index abcd807c28..72708f676a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_170.png and b/TMessagesProj/src/main/assets/emoji/6_170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_171.png b/TMessagesProj/src/main/assets/emoji/6_171.png index 7c1a39ddf0..4f7afde89a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_171.png and b/TMessagesProj/src/main/assets/emoji/6_171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_172.png b/TMessagesProj/src/main/assets/emoji/6_172.png index 9542367c02..43b15f77da 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_172.png and b/TMessagesProj/src/main/assets/emoji/6_172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_173.png b/TMessagesProj/src/main/assets/emoji/6_173.png index b45a79a974..5fd27089cc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_173.png and b/TMessagesProj/src/main/assets/emoji/6_173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_174.png b/TMessagesProj/src/main/assets/emoji/6_174.png index a30a3e2b35..04f5c94618 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_174.png and b/TMessagesProj/src/main/assets/emoji/6_174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_175.png b/TMessagesProj/src/main/assets/emoji/6_175.png index b83d02c909..7c09dbb2a5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_175.png and b/TMessagesProj/src/main/assets/emoji/6_175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_176.png b/TMessagesProj/src/main/assets/emoji/6_176.png index 603a6d6c4d..bc71dcc571 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_176.png and b/TMessagesProj/src/main/assets/emoji/6_176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_177.png b/TMessagesProj/src/main/assets/emoji/6_177.png index 56e26e834e..531df3750d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_177.png and b/TMessagesProj/src/main/assets/emoji/6_177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_178.png b/TMessagesProj/src/main/assets/emoji/6_178.png index 658149f106..30ecdc9df1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_178.png and b/TMessagesProj/src/main/assets/emoji/6_178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_179.png b/TMessagesProj/src/main/assets/emoji/6_179.png index 92ad95caf6..8845ea73d8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_179.png and b/TMessagesProj/src/main/assets/emoji/6_179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_18.png b/TMessagesProj/src/main/assets/emoji/6_18.png index abf255a887..0006f2d713 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_18.png and b/TMessagesProj/src/main/assets/emoji/6_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_180.png b/TMessagesProj/src/main/assets/emoji/6_180.png index 098b393b96..389d29021f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_180.png and b/TMessagesProj/src/main/assets/emoji/6_180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_181.png b/TMessagesProj/src/main/assets/emoji/6_181.png index 9b98b88d3c..a5363cd3c8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_181.png and b/TMessagesProj/src/main/assets/emoji/6_181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_182.png b/TMessagesProj/src/main/assets/emoji/6_182.png index e620aa66db..22ccd0c5d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_182.png and b/TMessagesProj/src/main/assets/emoji/6_182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_183.png b/TMessagesProj/src/main/assets/emoji/6_183.png index e308be52e5..1598a5e5ef 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_183.png and b/TMessagesProj/src/main/assets/emoji/6_183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_184.png b/TMessagesProj/src/main/assets/emoji/6_184.png index 33af5d40c7..ddc081ec3d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_184.png and b/TMessagesProj/src/main/assets/emoji/6_184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_185.png b/TMessagesProj/src/main/assets/emoji/6_185.png index 2e150dfeac..ecd5623236 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_185.png and b/TMessagesProj/src/main/assets/emoji/6_185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_186.png b/TMessagesProj/src/main/assets/emoji/6_186.png index e99f8ed37c..4c656ad266 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_186.png and b/TMessagesProj/src/main/assets/emoji/6_186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_187.png b/TMessagesProj/src/main/assets/emoji/6_187.png index 2a9df20b62..cff43fd862 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_187.png and b/TMessagesProj/src/main/assets/emoji/6_187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_188.png b/TMessagesProj/src/main/assets/emoji/6_188.png index 5284ca0077..91e476ef79 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_188.png and b/TMessagesProj/src/main/assets/emoji/6_188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_189.png b/TMessagesProj/src/main/assets/emoji/6_189.png index 58c2b0c25c..1a24c2d7e7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_189.png and b/TMessagesProj/src/main/assets/emoji/6_189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_19.png b/TMessagesProj/src/main/assets/emoji/6_19.png index c8493d15d3..b4a6d49bb1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_19.png and b/TMessagesProj/src/main/assets/emoji/6_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_190.png b/TMessagesProj/src/main/assets/emoji/6_190.png index 4e702cf57e..79258cee6f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_190.png and b/TMessagesProj/src/main/assets/emoji/6_190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_191.png b/TMessagesProj/src/main/assets/emoji/6_191.png index f6d1f4c4c1..b25d7023e6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_191.png and b/TMessagesProj/src/main/assets/emoji/6_191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_192.png b/TMessagesProj/src/main/assets/emoji/6_192.png index 9fa3d55dc2..e070e5f0bc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_192.png and b/TMessagesProj/src/main/assets/emoji/6_192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_193.png b/TMessagesProj/src/main/assets/emoji/6_193.png index 115c926ddf..d98d4b8fa6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_193.png and b/TMessagesProj/src/main/assets/emoji/6_193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_194.png b/TMessagesProj/src/main/assets/emoji/6_194.png index 7e882d17c6..ca364894bd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_194.png and b/TMessagesProj/src/main/assets/emoji/6_194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_195.png b/TMessagesProj/src/main/assets/emoji/6_195.png index b9addb37d6..009d8e4286 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_195.png and b/TMessagesProj/src/main/assets/emoji/6_195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_196.png b/TMessagesProj/src/main/assets/emoji/6_196.png index f1c981281d..bea4bb3f6f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_196.png and b/TMessagesProj/src/main/assets/emoji/6_196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_197.png b/TMessagesProj/src/main/assets/emoji/6_197.png index 7e59bb8896..f52ba3a088 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_197.png and b/TMessagesProj/src/main/assets/emoji/6_197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_198.png b/TMessagesProj/src/main/assets/emoji/6_198.png index 2d2c3d168f..bf88344c33 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_198.png and b/TMessagesProj/src/main/assets/emoji/6_198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_199.png b/TMessagesProj/src/main/assets/emoji/6_199.png index 2a361459f1..08c3378a9f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_199.png and b/TMessagesProj/src/main/assets/emoji/6_199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_2.png b/TMessagesProj/src/main/assets/emoji/6_2.png index aa2ee1b17e..925dc4250e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_2.png and b/TMessagesProj/src/main/assets/emoji/6_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_20.png b/TMessagesProj/src/main/assets/emoji/6_20.png index 3173d2a721..c423d9f12c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_20.png and b/TMessagesProj/src/main/assets/emoji/6_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_200.png b/TMessagesProj/src/main/assets/emoji/6_200.png index 299c2a6817..03dab6b05c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_200.png and b/TMessagesProj/src/main/assets/emoji/6_200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_201.png b/TMessagesProj/src/main/assets/emoji/6_201.png index c0fbb4147e..3a59c097c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_201.png and b/TMessagesProj/src/main/assets/emoji/6_201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_202.png b/TMessagesProj/src/main/assets/emoji/6_202.png index fcaeecd16f..676b70388f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_202.png and b/TMessagesProj/src/main/assets/emoji/6_202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_203.png b/TMessagesProj/src/main/assets/emoji/6_203.png index 13abf5e959..1d6bcde311 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_203.png and b/TMessagesProj/src/main/assets/emoji/6_203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_204.png b/TMessagesProj/src/main/assets/emoji/6_204.png index 02818df2b3..74758ed968 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_204.png and b/TMessagesProj/src/main/assets/emoji/6_204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_205.png b/TMessagesProj/src/main/assets/emoji/6_205.png index e8b3102886..1b3cd72bcc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_205.png and b/TMessagesProj/src/main/assets/emoji/6_205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_206.png b/TMessagesProj/src/main/assets/emoji/6_206.png index b3b650d29f..063999ce02 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_206.png and b/TMessagesProj/src/main/assets/emoji/6_206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_207.png b/TMessagesProj/src/main/assets/emoji/6_207.png index d330aaacc7..57c0b79def 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_207.png and b/TMessagesProj/src/main/assets/emoji/6_207.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_208.png b/TMessagesProj/src/main/assets/emoji/6_208.png index 9bd5e1cfdb..29b1c60da0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_208.png and b/TMessagesProj/src/main/assets/emoji/6_208.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_209.png b/TMessagesProj/src/main/assets/emoji/6_209.png index a3d6e99689..2a66148893 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_209.png and b/TMessagesProj/src/main/assets/emoji/6_209.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_21.png b/TMessagesProj/src/main/assets/emoji/6_21.png index 1f4939d405..f22a9a5afc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_21.png and b/TMessagesProj/src/main/assets/emoji/6_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_210.png b/TMessagesProj/src/main/assets/emoji/6_210.png index c29f049f3f..93a96e56d5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_210.png and b/TMessagesProj/src/main/assets/emoji/6_210.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_211.png b/TMessagesProj/src/main/assets/emoji/6_211.png index be0291eddb..f7ed511333 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_211.png and b/TMessagesProj/src/main/assets/emoji/6_211.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_212.png b/TMessagesProj/src/main/assets/emoji/6_212.png index aa70f00418..b0c676fdb1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_212.png and b/TMessagesProj/src/main/assets/emoji/6_212.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_213.png b/TMessagesProj/src/main/assets/emoji/6_213.png index 75bf91f585..49892f930a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_213.png and b/TMessagesProj/src/main/assets/emoji/6_213.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_214.png b/TMessagesProj/src/main/assets/emoji/6_214.png index 74a14d5dd8..29e8f07229 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_214.png and b/TMessagesProj/src/main/assets/emoji/6_214.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_215.png b/TMessagesProj/src/main/assets/emoji/6_215.png index 70ade58bca..7f61a93d93 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_215.png and b/TMessagesProj/src/main/assets/emoji/6_215.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_216.png b/TMessagesProj/src/main/assets/emoji/6_216.png index 898c68e855..323ffb842b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_216.png and b/TMessagesProj/src/main/assets/emoji/6_216.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_217.png b/TMessagesProj/src/main/assets/emoji/6_217.png index 2c71cc79e4..7834d34102 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_217.png and b/TMessagesProj/src/main/assets/emoji/6_217.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_218.png b/TMessagesProj/src/main/assets/emoji/6_218.png index 49ee407d20..5c138520ba 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_218.png and b/TMessagesProj/src/main/assets/emoji/6_218.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_219.png b/TMessagesProj/src/main/assets/emoji/6_219.png index f3c84918e2..01209e97c5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_219.png and b/TMessagesProj/src/main/assets/emoji/6_219.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_22.png b/TMessagesProj/src/main/assets/emoji/6_22.png index f5bccc9099..de8e986e18 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_22.png and b/TMessagesProj/src/main/assets/emoji/6_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_220.png b/TMessagesProj/src/main/assets/emoji/6_220.png index 17a1e0fa8e..921a10e376 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_220.png and b/TMessagesProj/src/main/assets/emoji/6_220.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_221.png b/TMessagesProj/src/main/assets/emoji/6_221.png index 4e76e514f2..e238f8726b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_221.png and b/TMessagesProj/src/main/assets/emoji/6_221.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_222.png b/TMessagesProj/src/main/assets/emoji/6_222.png index 6e2dd17c86..9a02899a5a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_222.png and b/TMessagesProj/src/main/assets/emoji/6_222.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_223.png b/TMessagesProj/src/main/assets/emoji/6_223.png index bc0e80d246..eb1a3d3c62 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_223.png and b/TMessagesProj/src/main/assets/emoji/6_223.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_224.png b/TMessagesProj/src/main/assets/emoji/6_224.png index b6a513c14f..638d406519 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_224.png and b/TMessagesProj/src/main/assets/emoji/6_224.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_225.png b/TMessagesProj/src/main/assets/emoji/6_225.png index b2fe3a2ebb..7fd9a09d32 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_225.png and b/TMessagesProj/src/main/assets/emoji/6_225.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_226.png b/TMessagesProj/src/main/assets/emoji/6_226.png index 6c776238a7..14e1e2954f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_226.png and b/TMessagesProj/src/main/assets/emoji/6_226.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_227.png b/TMessagesProj/src/main/assets/emoji/6_227.png index 4bd55fc8e1..f1e97054b3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_227.png and b/TMessagesProj/src/main/assets/emoji/6_227.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_228.png b/TMessagesProj/src/main/assets/emoji/6_228.png index a085c8a145..915ad32a78 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_228.png and b/TMessagesProj/src/main/assets/emoji/6_228.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_229.png b/TMessagesProj/src/main/assets/emoji/6_229.png index 04af5fccb7..49260d2538 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_229.png and b/TMessagesProj/src/main/assets/emoji/6_229.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_23.png b/TMessagesProj/src/main/assets/emoji/6_23.png index cf4dc2740d..b274a56dce 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_23.png and b/TMessagesProj/src/main/assets/emoji/6_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_230.png b/TMessagesProj/src/main/assets/emoji/6_230.png index b9ced96fab..ab704237ff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_230.png and b/TMessagesProj/src/main/assets/emoji/6_230.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_231.png b/TMessagesProj/src/main/assets/emoji/6_231.png index 8a7e6ff01c..79bc4e3c78 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_231.png and b/TMessagesProj/src/main/assets/emoji/6_231.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_232.png b/TMessagesProj/src/main/assets/emoji/6_232.png index cd39244999..e5e524f1f4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_232.png and b/TMessagesProj/src/main/assets/emoji/6_232.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_233.png b/TMessagesProj/src/main/assets/emoji/6_233.png index c814f28be4..7d69edae51 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_233.png and b/TMessagesProj/src/main/assets/emoji/6_233.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_234.png b/TMessagesProj/src/main/assets/emoji/6_234.png index 0cc11bc936..9bfb36a5ce 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_234.png and b/TMessagesProj/src/main/assets/emoji/6_234.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_235.png b/TMessagesProj/src/main/assets/emoji/6_235.png index 8514bf18a5..0c30f874e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_235.png and b/TMessagesProj/src/main/assets/emoji/6_235.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_236.png b/TMessagesProj/src/main/assets/emoji/6_236.png index b0c7cf2154..8b12ba9e0c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_236.png and b/TMessagesProj/src/main/assets/emoji/6_236.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_237.png b/TMessagesProj/src/main/assets/emoji/6_237.png index 4fdc879cac..84d95eedd4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_237.png and b/TMessagesProj/src/main/assets/emoji/6_237.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_238.png b/TMessagesProj/src/main/assets/emoji/6_238.png index b4c8a0bdbd..5e213f499c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_238.png and b/TMessagesProj/src/main/assets/emoji/6_238.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_239.png b/TMessagesProj/src/main/assets/emoji/6_239.png index cc295ba56a..5812f32d5e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_239.png and b/TMessagesProj/src/main/assets/emoji/6_239.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_24.png b/TMessagesProj/src/main/assets/emoji/6_24.png index 22165df859..8ebd78ada5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_24.png and b/TMessagesProj/src/main/assets/emoji/6_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_240.png b/TMessagesProj/src/main/assets/emoji/6_240.png index b13d899394..4ad9da9c7d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_240.png and b/TMessagesProj/src/main/assets/emoji/6_240.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_241.png b/TMessagesProj/src/main/assets/emoji/6_241.png index 92cde504b6..ce07907b70 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_241.png and b/TMessagesProj/src/main/assets/emoji/6_241.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_242.png b/TMessagesProj/src/main/assets/emoji/6_242.png index cedb5bf70a..f368f77419 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_242.png and b/TMessagesProj/src/main/assets/emoji/6_242.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_243.png b/TMessagesProj/src/main/assets/emoji/6_243.png index c9aeb867fd..fc4e4929ad 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_243.png and b/TMessagesProj/src/main/assets/emoji/6_243.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_244.png b/TMessagesProj/src/main/assets/emoji/6_244.png index 9fc1654341..c260654ceb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_244.png and b/TMessagesProj/src/main/assets/emoji/6_244.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_245.png b/TMessagesProj/src/main/assets/emoji/6_245.png index 06dcb4875d..9364c7f219 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_245.png and b/TMessagesProj/src/main/assets/emoji/6_245.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_246.png b/TMessagesProj/src/main/assets/emoji/6_246.png index 39531221b3..96688077c6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_246.png and b/TMessagesProj/src/main/assets/emoji/6_246.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_247.png b/TMessagesProj/src/main/assets/emoji/6_247.png index 87de8bdbd4..c13c3206cb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_247.png and b/TMessagesProj/src/main/assets/emoji/6_247.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_248.png b/TMessagesProj/src/main/assets/emoji/6_248.png index 7f293e8833..fb69d34b61 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_248.png and b/TMessagesProj/src/main/assets/emoji/6_248.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_249.png b/TMessagesProj/src/main/assets/emoji/6_249.png index 1d149957ec..5eee107026 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_249.png and b/TMessagesProj/src/main/assets/emoji/6_249.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_25.png b/TMessagesProj/src/main/assets/emoji/6_25.png index 94db41b2d2..67f46535a6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_25.png and b/TMessagesProj/src/main/assets/emoji/6_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_250.png b/TMessagesProj/src/main/assets/emoji/6_250.png index db377029a3..512eba22b8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_250.png and b/TMessagesProj/src/main/assets/emoji/6_250.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_251.png b/TMessagesProj/src/main/assets/emoji/6_251.png index 3509abcfa7..6e4f3c996d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_251.png and b/TMessagesProj/src/main/assets/emoji/6_251.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_252.png b/TMessagesProj/src/main/assets/emoji/6_252.png index a912388b9b..f4013278da 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_252.png and b/TMessagesProj/src/main/assets/emoji/6_252.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_253.png b/TMessagesProj/src/main/assets/emoji/6_253.png index d37073354d..b95e35dcbd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_253.png and b/TMessagesProj/src/main/assets/emoji/6_253.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_254.png b/TMessagesProj/src/main/assets/emoji/6_254.png index 80b1c2a981..51bc41ba96 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_254.png and b/TMessagesProj/src/main/assets/emoji/6_254.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_255.png b/TMessagesProj/src/main/assets/emoji/6_255.png index 11bacf366f..57e9bb219c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_255.png and b/TMessagesProj/src/main/assets/emoji/6_255.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_256.png b/TMessagesProj/src/main/assets/emoji/6_256.png index 527faf5d7f..2f87587f30 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_256.png and b/TMessagesProj/src/main/assets/emoji/6_256.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_257.png b/TMessagesProj/src/main/assets/emoji/6_257.png index d34684cc6b..69ba7dcdb3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_257.png and b/TMessagesProj/src/main/assets/emoji/6_257.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_258.png b/TMessagesProj/src/main/assets/emoji/6_258.png index 244304e54e..b058f79bf9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_258.png and b/TMessagesProj/src/main/assets/emoji/6_258.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_259.png b/TMessagesProj/src/main/assets/emoji/6_259.png index 86d3a609ed..d9f09b2837 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_259.png and b/TMessagesProj/src/main/assets/emoji/6_259.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_26.png b/TMessagesProj/src/main/assets/emoji/6_26.png index d4a0dd4371..b5588ed07e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_26.png and b/TMessagesProj/src/main/assets/emoji/6_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_260.png b/TMessagesProj/src/main/assets/emoji/6_260.png index 33b4fdd2bc..b294251f64 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_260.png and b/TMessagesProj/src/main/assets/emoji/6_260.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_261.png b/TMessagesProj/src/main/assets/emoji/6_261.png index a34ad938fa..2c6e163930 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_261.png and b/TMessagesProj/src/main/assets/emoji/6_261.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_262.png b/TMessagesProj/src/main/assets/emoji/6_262.png index d2eecb882a..3579756873 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_262.png and b/TMessagesProj/src/main/assets/emoji/6_262.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_263.png b/TMessagesProj/src/main/assets/emoji/6_263.png index 58c9a117d1..dd4d513310 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_263.png and b/TMessagesProj/src/main/assets/emoji/6_263.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_264.png b/TMessagesProj/src/main/assets/emoji/6_264.png index 043820d3c6..9204ae1414 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_264.png and b/TMessagesProj/src/main/assets/emoji/6_264.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_265.png b/TMessagesProj/src/main/assets/emoji/6_265.png index 9eabcfee0f..c30fd816cd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_265.png and b/TMessagesProj/src/main/assets/emoji/6_265.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_266.png b/TMessagesProj/src/main/assets/emoji/6_266.png index ad540db6ff..90161ba718 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_266.png and b/TMessagesProj/src/main/assets/emoji/6_266.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_267.png b/TMessagesProj/src/main/assets/emoji/6_267.png index 5116b7641d..b0bab30bff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_267.png and b/TMessagesProj/src/main/assets/emoji/6_267.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_268.png b/TMessagesProj/src/main/assets/emoji/6_268.png index 8e44da982c..60aa3c249a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_268.png and b/TMessagesProj/src/main/assets/emoji/6_268.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_269.png b/TMessagesProj/src/main/assets/emoji/6_269.png index 6dd5dcc394..87a6fe192c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_269.png and b/TMessagesProj/src/main/assets/emoji/6_269.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_27.png b/TMessagesProj/src/main/assets/emoji/6_27.png index 0b3026cf51..d0a5fc136e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_27.png and b/TMessagesProj/src/main/assets/emoji/6_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_270.png b/TMessagesProj/src/main/assets/emoji/6_270.png index b99d06e010..912346ecb9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_270.png and b/TMessagesProj/src/main/assets/emoji/6_270.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_271.png b/TMessagesProj/src/main/assets/emoji/6_271.png index 051e67fe09..69f0094a6b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_271.png and b/TMessagesProj/src/main/assets/emoji/6_271.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_272.png b/TMessagesProj/src/main/assets/emoji/6_272.png index 8c8c543e95..9035536694 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_272.png and b/TMessagesProj/src/main/assets/emoji/6_272.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_273.png b/TMessagesProj/src/main/assets/emoji/6_273.png index b846a8f0e3..d8f1c584ef 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_273.png and b/TMessagesProj/src/main/assets/emoji/6_273.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_274.png b/TMessagesProj/src/main/assets/emoji/6_274.png index 4ef6f6546c..38ff826628 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_274.png and b/TMessagesProj/src/main/assets/emoji/6_274.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_275.png b/TMessagesProj/src/main/assets/emoji/6_275.png index 22fb6fa358..debecf4ea1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_275.png and b/TMessagesProj/src/main/assets/emoji/6_275.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_276.png b/TMessagesProj/src/main/assets/emoji/6_276.png index a8ca914c60..3a115e30ff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_276.png and b/TMessagesProj/src/main/assets/emoji/6_276.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_277.png b/TMessagesProj/src/main/assets/emoji/6_277.png index efa38ea9ed..8368eb4190 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_277.png and b/TMessagesProj/src/main/assets/emoji/6_277.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_278.png b/TMessagesProj/src/main/assets/emoji/6_278.png index 4e7f735821..783f71d3b7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_278.png and b/TMessagesProj/src/main/assets/emoji/6_278.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_279.png b/TMessagesProj/src/main/assets/emoji/6_279.png index e914f4d796..75e0f482d7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_279.png and b/TMessagesProj/src/main/assets/emoji/6_279.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_28.png b/TMessagesProj/src/main/assets/emoji/6_28.png index a6fadad0bb..26069d823a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_28.png and b/TMessagesProj/src/main/assets/emoji/6_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_280.png b/TMessagesProj/src/main/assets/emoji/6_280.png index 79faffb941..019c5d0683 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_280.png and b/TMessagesProj/src/main/assets/emoji/6_280.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_281.png b/TMessagesProj/src/main/assets/emoji/6_281.png index a732cb93c6..eb27604ca8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_281.png and b/TMessagesProj/src/main/assets/emoji/6_281.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_282.png b/TMessagesProj/src/main/assets/emoji/6_282.png index ee7797575f..2fa1e27e23 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_282.png and b/TMessagesProj/src/main/assets/emoji/6_282.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_283.png b/TMessagesProj/src/main/assets/emoji/6_283.png index ba8144c5b7..15f8838c16 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_283.png and b/TMessagesProj/src/main/assets/emoji/6_283.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_284.png b/TMessagesProj/src/main/assets/emoji/6_284.png index 63cee6ee73..2230296fb7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_284.png and b/TMessagesProj/src/main/assets/emoji/6_284.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_285.png b/TMessagesProj/src/main/assets/emoji/6_285.png index dcd0fb462b..6a0bd0a52a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_285.png and b/TMessagesProj/src/main/assets/emoji/6_285.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_286.png b/TMessagesProj/src/main/assets/emoji/6_286.png index 6e93a78571..5375d570a0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_286.png and b/TMessagesProj/src/main/assets/emoji/6_286.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_287.png b/TMessagesProj/src/main/assets/emoji/6_287.png index 222f42be3d..df91bb4c5e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_287.png and b/TMessagesProj/src/main/assets/emoji/6_287.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_288.png b/TMessagesProj/src/main/assets/emoji/6_288.png index 8c7d950097..fd7477caf9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_288.png and b/TMessagesProj/src/main/assets/emoji/6_288.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_289.png b/TMessagesProj/src/main/assets/emoji/6_289.png index fb06b9e1dc..6f7a9f0e37 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_289.png and b/TMessagesProj/src/main/assets/emoji/6_289.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_29.png b/TMessagesProj/src/main/assets/emoji/6_29.png index 3c7c5997ca..4c49c368d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_29.png and b/TMessagesProj/src/main/assets/emoji/6_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_290.png b/TMessagesProj/src/main/assets/emoji/6_290.png index 6e4061cc99..3735be8c98 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_290.png and b/TMessagesProj/src/main/assets/emoji/6_290.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_291.png b/TMessagesProj/src/main/assets/emoji/6_291.png index 8c6cdaba28..d802242cda 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_291.png and b/TMessagesProj/src/main/assets/emoji/6_291.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_292.png b/TMessagesProj/src/main/assets/emoji/6_292.png index 1c09def8fd..544c4dc68b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_292.png and b/TMessagesProj/src/main/assets/emoji/6_292.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_293.png b/TMessagesProj/src/main/assets/emoji/6_293.png index bcf960e416..8aba2ede39 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_293.png and b/TMessagesProj/src/main/assets/emoji/6_293.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_294.png b/TMessagesProj/src/main/assets/emoji/6_294.png index c31b4bc3ae..6f22fb30f4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_294.png and b/TMessagesProj/src/main/assets/emoji/6_294.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_295.png b/TMessagesProj/src/main/assets/emoji/6_295.png index bd4ab3bbd8..299c34f60b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_295.png and b/TMessagesProj/src/main/assets/emoji/6_295.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_296.png b/TMessagesProj/src/main/assets/emoji/6_296.png index a810d6a0aa..7fc7acad5b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_296.png and b/TMessagesProj/src/main/assets/emoji/6_296.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_297.png b/TMessagesProj/src/main/assets/emoji/6_297.png index 04e93645bd..f962431e4e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_297.png and b/TMessagesProj/src/main/assets/emoji/6_297.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_3.png b/TMessagesProj/src/main/assets/emoji/6_3.png index 1e96ae1ca6..797e95de92 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_3.png and b/TMessagesProj/src/main/assets/emoji/6_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_30.png b/TMessagesProj/src/main/assets/emoji/6_30.png index 8abadc5912..a0f63df074 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_30.png and b/TMessagesProj/src/main/assets/emoji/6_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_31.png b/TMessagesProj/src/main/assets/emoji/6_31.png index 0fd37f4d6d..e31735261a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_31.png and b/TMessagesProj/src/main/assets/emoji/6_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_32.png b/TMessagesProj/src/main/assets/emoji/6_32.png index eb43c0fccd..c295b3fda5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_32.png and b/TMessagesProj/src/main/assets/emoji/6_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_33.png b/TMessagesProj/src/main/assets/emoji/6_33.png index d082155056..b11ffcd747 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_33.png and b/TMessagesProj/src/main/assets/emoji/6_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_34.png b/TMessagesProj/src/main/assets/emoji/6_34.png index 6d5dd056b0..25cafe4032 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_34.png and b/TMessagesProj/src/main/assets/emoji/6_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_35.png b/TMessagesProj/src/main/assets/emoji/6_35.png index 7979f374c7..d8bc0e7681 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_35.png and b/TMessagesProj/src/main/assets/emoji/6_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_36.png b/TMessagesProj/src/main/assets/emoji/6_36.png index c9b6d6ed6e..bf072990d8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_36.png and b/TMessagesProj/src/main/assets/emoji/6_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_37.png b/TMessagesProj/src/main/assets/emoji/6_37.png index a4b804f6c6..0b8de0b879 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_37.png and b/TMessagesProj/src/main/assets/emoji/6_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_38.png b/TMessagesProj/src/main/assets/emoji/6_38.png index 1b60a4ed8f..057292cb35 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_38.png and b/TMessagesProj/src/main/assets/emoji/6_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_39.png b/TMessagesProj/src/main/assets/emoji/6_39.png index 7d635f1f03..1656cc7ab1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_39.png and b/TMessagesProj/src/main/assets/emoji/6_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_4.png b/TMessagesProj/src/main/assets/emoji/6_4.png index a7f39f353d..a98bfeed62 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_4.png and b/TMessagesProj/src/main/assets/emoji/6_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_40.png b/TMessagesProj/src/main/assets/emoji/6_40.png index 5896dc4600..f7811e33aa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_40.png and b/TMessagesProj/src/main/assets/emoji/6_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_41.png b/TMessagesProj/src/main/assets/emoji/6_41.png index 1e7d05066c..3d4ca46bb7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_41.png and b/TMessagesProj/src/main/assets/emoji/6_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_42.png b/TMessagesProj/src/main/assets/emoji/6_42.png index 885eae8631..cbe70eb853 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_42.png and b/TMessagesProj/src/main/assets/emoji/6_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_43.png b/TMessagesProj/src/main/assets/emoji/6_43.png index d904eacb22..6f5904e5ba 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_43.png and b/TMessagesProj/src/main/assets/emoji/6_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_44.png b/TMessagesProj/src/main/assets/emoji/6_44.png index 7c201f3dfd..1283fbf4a2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_44.png and b/TMessagesProj/src/main/assets/emoji/6_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_45.png b/TMessagesProj/src/main/assets/emoji/6_45.png index 10492081c0..39eae91de4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_45.png and b/TMessagesProj/src/main/assets/emoji/6_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_46.png b/TMessagesProj/src/main/assets/emoji/6_46.png index d9ac2454ee..bc67565c17 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_46.png and b/TMessagesProj/src/main/assets/emoji/6_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_47.png b/TMessagesProj/src/main/assets/emoji/6_47.png index 3050788bf0..f5ba19a8fc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_47.png and b/TMessagesProj/src/main/assets/emoji/6_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_48.png b/TMessagesProj/src/main/assets/emoji/6_48.png index fcdf2ebc8d..97c43b87c4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_48.png and b/TMessagesProj/src/main/assets/emoji/6_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_49.png b/TMessagesProj/src/main/assets/emoji/6_49.png index 33631b00cc..70db7ea6e2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_49.png and b/TMessagesProj/src/main/assets/emoji/6_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_5.png b/TMessagesProj/src/main/assets/emoji/6_5.png index e0637c102d..e53bd311b6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_5.png and b/TMessagesProj/src/main/assets/emoji/6_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_50.png b/TMessagesProj/src/main/assets/emoji/6_50.png index 771f6603d3..af6d62857c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_50.png and b/TMessagesProj/src/main/assets/emoji/6_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_51.png b/TMessagesProj/src/main/assets/emoji/6_51.png index 36df632e95..879379c145 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_51.png and b/TMessagesProj/src/main/assets/emoji/6_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_52.png b/TMessagesProj/src/main/assets/emoji/6_52.png index 660421ba9b..b3f7303345 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_52.png and b/TMessagesProj/src/main/assets/emoji/6_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_53.png b/TMessagesProj/src/main/assets/emoji/6_53.png index 6cd196fb46..4b645caff6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_53.png and b/TMessagesProj/src/main/assets/emoji/6_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_54.png b/TMessagesProj/src/main/assets/emoji/6_54.png index 36656c9dfa..de8bbe5b98 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_54.png and b/TMessagesProj/src/main/assets/emoji/6_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_55.png b/TMessagesProj/src/main/assets/emoji/6_55.png index 282c3b2b32..905f2a91a0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_55.png and b/TMessagesProj/src/main/assets/emoji/6_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_56.png b/TMessagesProj/src/main/assets/emoji/6_56.png index 92a35226dc..3b01d1f78f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_56.png and b/TMessagesProj/src/main/assets/emoji/6_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_57.png b/TMessagesProj/src/main/assets/emoji/6_57.png index 15e37ecfee..a36814ce6e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_57.png and b/TMessagesProj/src/main/assets/emoji/6_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_58.png b/TMessagesProj/src/main/assets/emoji/6_58.png index 15823f03be..111909eebf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_58.png and b/TMessagesProj/src/main/assets/emoji/6_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_59.png b/TMessagesProj/src/main/assets/emoji/6_59.png index 2f0aa63dda..829d691698 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_59.png and b/TMessagesProj/src/main/assets/emoji/6_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_6.png b/TMessagesProj/src/main/assets/emoji/6_6.png index 7dbf615acf..e01e729854 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_6.png and b/TMessagesProj/src/main/assets/emoji/6_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_60.png b/TMessagesProj/src/main/assets/emoji/6_60.png index 4b3afc6cfa..3553d30fc4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_60.png and b/TMessagesProj/src/main/assets/emoji/6_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_61.png b/TMessagesProj/src/main/assets/emoji/6_61.png index 855d37c5b3..710a3563dc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_61.png and b/TMessagesProj/src/main/assets/emoji/6_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_62.png b/TMessagesProj/src/main/assets/emoji/6_62.png index 7ff21d95cd..ec70c7b5a0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_62.png and b/TMessagesProj/src/main/assets/emoji/6_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_63.png b/TMessagesProj/src/main/assets/emoji/6_63.png index a2e0325df7..66fbcf3c73 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_63.png and b/TMessagesProj/src/main/assets/emoji/6_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_64.png b/TMessagesProj/src/main/assets/emoji/6_64.png index 0b89ec9f5c..84340c545c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_64.png and b/TMessagesProj/src/main/assets/emoji/6_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_65.png b/TMessagesProj/src/main/assets/emoji/6_65.png index 3012bb56af..38a0016794 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_65.png and b/TMessagesProj/src/main/assets/emoji/6_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_66.png b/TMessagesProj/src/main/assets/emoji/6_66.png index 37f948acd0..8530436d5f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_66.png and b/TMessagesProj/src/main/assets/emoji/6_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_67.png b/TMessagesProj/src/main/assets/emoji/6_67.png index 2de16ccd48..25b87acccd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_67.png and b/TMessagesProj/src/main/assets/emoji/6_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_68.png b/TMessagesProj/src/main/assets/emoji/6_68.png index 43a3939a28..85a34b52b5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_68.png and b/TMessagesProj/src/main/assets/emoji/6_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_69.png b/TMessagesProj/src/main/assets/emoji/6_69.png index 2ffb137d5c..e92b6464a1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_69.png and b/TMessagesProj/src/main/assets/emoji/6_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_7.png b/TMessagesProj/src/main/assets/emoji/6_7.png index 027d4f76ad..341d93595a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_7.png and b/TMessagesProj/src/main/assets/emoji/6_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_70.png b/TMessagesProj/src/main/assets/emoji/6_70.png index ac1db913eb..c35a309b29 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_70.png and b/TMessagesProj/src/main/assets/emoji/6_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_71.png b/TMessagesProj/src/main/assets/emoji/6_71.png index 6a18020bb4..5b6d4071d7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_71.png and b/TMessagesProj/src/main/assets/emoji/6_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_72.png b/TMessagesProj/src/main/assets/emoji/6_72.png index a2f94ead6a..98608664d0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_72.png and b/TMessagesProj/src/main/assets/emoji/6_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_73.png b/TMessagesProj/src/main/assets/emoji/6_73.png index 84ff60ec3d..4103509500 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_73.png and b/TMessagesProj/src/main/assets/emoji/6_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_74.png b/TMessagesProj/src/main/assets/emoji/6_74.png index 98a31f5d8c..037b821a1d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_74.png and b/TMessagesProj/src/main/assets/emoji/6_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_75.png b/TMessagesProj/src/main/assets/emoji/6_75.png index 1871a1096b..67e2bf7d8d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_75.png and b/TMessagesProj/src/main/assets/emoji/6_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_76.png b/TMessagesProj/src/main/assets/emoji/6_76.png index c3eaedafd9..c8b55acc0d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_76.png and b/TMessagesProj/src/main/assets/emoji/6_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_77.png b/TMessagesProj/src/main/assets/emoji/6_77.png index 923c3b5211..f4211687c6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_77.png and b/TMessagesProj/src/main/assets/emoji/6_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_78.png b/TMessagesProj/src/main/assets/emoji/6_78.png index 7306b07ecb..7727efdcef 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_78.png and b/TMessagesProj/src/main/assets/emoji/6_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_79.png b/TMessagesProj/src/main/assets/emoji/6_79.png index 1724fdba01..22574f3cd1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_79.png and b/TMessagesProj/src/main/assets/emoji/6_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_8.png b/TMessagesProj/src/main/assets/emoji/6_8.png index 15929f2f00..7144fef432 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_8.png and b/TMessagesProj/src/main/assets/emoji/6_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_80.png b/TMessagesProj/src/main/assets/emoji/6_80.png index 50e0d4e833..9dc3f28f0f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_80.png and b/TMessagesProj/src/main/assets/emoji/6_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_81.png b/TMessagesProj/src/main/assets/emoji/6_81.png index 151f3a2ed7..839791c2f9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_81.png and b/TMessagesProj/src/main/assets/emoji/6_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_82.png b/TMessagesProj/src/main/assets/emoji/6_82.png index bb8b3d3785..c8a3109e94 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_82.png and b/TMessagesProj/src/main/assets/emoji/6_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_83.png b/TMessagesProj/src/main/assets/emoji/6_83.png index 769dffadb8..5ad3e49728 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_83.png and b/TMessagesProj/src/main/assets/emoji/6_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_84.png b/TMessagesProj/src/main/assets/emoji/6_84.png index 95fc90aaac..24ec50b72c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_84.png and b/TMessagesProj/src/main/assets/emoji/6_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_85.png b/TMessagesProj/src/main/assets/emoji/6_85.png index 375aecb555..c36f302ab0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_85.png and b/TMessagesProj/src/main/assets/emoji/6_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_86.png b/TMessagesProj/src/main/assets/emoji/6_86.png index 15a22ea03c..b26659debb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_86.png and b/TMessagesProj/src/main/assets/emoji/6_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_87.png b/TMessagesProj/src/main/assets/emoji/6_87.png index 8f07e10476..086a3dbcb6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_87.png and b/TMessagesProj/src/main/assets/emoji/6_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_88.png b/TMessagesProj/src/main/assets/emoji/6_88.png index 620f14797f..88477c6693 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_88.png and b/TMessagesProj/src/main/assets/emoji/6_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_89.png b/TMessagesProj/src/main/assets/emoji/6_89.png index ada731d06d..5784947d3a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_89.png and b/TMessagesProj/src/main/assets/emoji/6_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_9.png b/TMessagesProj/src/main/assets/emoji/6_9.png index 0299ac4515..69c8830d15 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_9.png and b/TMessagesProj/src/main/assets/emoji/6_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_90.png b/TMessagesProj/src/main/assets/emoji/6_90.png index 5a35a3b0a7..013f6018dd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_90.png and b/TMessagesProj/src/main/assets/emoji/6_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_91.png b/TMessagesProj/src/main/assets/emoji/6_91.png index 74ee5f5600..1322f9a330 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_91.png and b/TMessagesProj/src/main/assets/emoji/6_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_92.png b/TMessagesProj/src/main/assets/emoji/6_92.png index 1d4b21d985..bf15c8057c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_92.png and b/TMessagesProj/src/main/assets/emoji/6_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_93.png b/TMessagesProj/src/main/assets/emoji/6_93.png index 920ae1d8db..531c716cc6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_93.png and b/TMessagesProj/src/main/assets/emoji/6_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_94.png b/TMessagesProj/src/main/assets/emoji/6_94.png index f38142de4a..f27cf3a046 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_94.png and b/TMessagesProj/src/main/assets/emoji/6_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_95.png b/TMessagesProj/src/main/assets/emoji/6_95.png index 74721f37c5..b614e0526a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_95.png and b/TMessagesProj/src/main/assets/emoji/6_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_96.png b/TMessagesProj/src/main/assets/emoji/6_96.png index b0b842599d..a18d0b1010 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_96.png and b/TMessagesProj/src/main/assets/emoji/6_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_97.png b/TMessagesProj/src/main/assets/emoji/6_97.png index 8d40f79690..1ef0abb5c2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_97.png and b/TMessagesProj/src/main/assets/emoji/6_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_98.png b/TMessagesProj/src/main/assets/emoji/6_98.png index 21ed53cde8..5a5a14c68a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_98.png and b/TMessagesProj/src/main/assets/emoji/6_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/6_99.png b/TMessagesProj/src/main/assets/emoji/6_99.png index 0692ef2480..77240314e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/6_99.png and b/TMessagesProj/src/main/assets/emoji/6_99.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_0.png b/TMessagesProj/src/main/assets/emoji/7_0.png index 212b86fb13..038292b11a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_0.png and b/TMessagesProj/src/main/assets/emoji/7_0.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_1.png b/TMessagesProj/src/main/assets/emoji/7_1.png index fde676a8ad..6a74305f72 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_1.png and b/TMessagesProj/src/main/assets/emoji/7_1.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_10.png b/TMessagesProj/src/main/assets/emoji/7_10.png index 5e745e41f6..61a08be8a6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_10.png and b/TMessagesProj/src/main/assets/emoji/7_10.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_100.png b/TMessagesProj/src/main/assets/emoji/7_100.png index a6c6d53d46..d747bb1581 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_100.png and b/TMessagesProj/src/main/assets/emoji/7_100.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_101.png b/TMessagesProj/src/main/assets/emoji/7_101.png index 914de277e6..1d26d778ff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_101.png and b/TMessagesProj/src/main/assets/emoji/7_101.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_102.png b/TMessagesProj/src/main/assets/emoji/7_102.png index 557bb23d7f..bf0f9c9c58 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_102.png and b/TMessagesProj/src/main/assets/emoji/7_102.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_103.png b/TMessagesProj/src/main/assets/emoji/7_103.png index 6398d337f8..35a88003f0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_103.png and b/TMessagesProj/src/main/assets/emoji/7_103.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_104.png b/TMessagesProj/src/main/assets/emoji/7_104.png index 41b6333db4..8318cb254c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_104.png and b/TMessagesProj/src/main/assets/emoji/7_104.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_105.png b/TMessagesProj/src/main/assets/emoji/7_105.png index 22ab30c460..159ba15cf2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_105.png and b/TMessagesProj/src/main/assets/emoji/7_105.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_106.png b/TMessagesProj/src/main/assets/emoji/7_106.png index 44baad1f14..de0c2e6931 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_106.png and b/TMessagesProj/src/main/assets/emoji/7_106.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_107.png b/TMessagesProj/src/main/assets/emoji/7_107.png index 10a7f37bac..e22e52a3c7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_107.png and b/TMessagesProj/src/main/assets/emoji/7_107.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_108.png b/TMessagesProj/src/main/assets/emoji/7_108.png index a4f5c51b88..a97d06dbe1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_108.png and b/TMessagesProj/src/main/assets/emoji/7_108.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_109.png b/TMessagesProj/src/main/assets/emoji/7_109.png index 4b3891da53..efb679e437 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_109.png and b/TMessagesProj/src/main/assets/emoji/7_109.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_11.png b/TMessagesProj/src/main/assets/emoji/7_11.png index 5fc15898c5..626cad1b8d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_11.png and b/TMessagesProj/src/main/assets/emoji/7_11.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_110.png b/TMessagesProj/src/main/assets/emoji/7_110.png index 9973509483..775425940d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_110.png and b/TMessagesProj/src/main/assets/emoji/7_110.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_111.png b/TMessagesProj/src/main/assets/emoji/7_111.png index a34c2d083c..7130790125 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_111.png and b/TMessagesProj/src/main/assets/emoji/7_111.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_112.png b/TMessagesProj/src/main/assets/emoji/7_112.png index 3890411aef..59cefed035 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_112.png and b/TMessagesProj/src/main/assets/emoji/7_112.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_113.png b/TMessagesProj/src/main/assets/emoji/7_113.png index 41bdebd776..17bb5d76ca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_113.png and b/TMessagesProj/src/main/assets/emoji/7_113.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_114.png b/TMessagesProj/src/main/assets/emoji/7_114.png index ac2f50bf4a..e1e64f41a2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_114.png and b/TMessagesProj/src/main/assets/emoji/7_114.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_115.png b/TMessagesProj/src/main/assets/emoji/7_115.png index 859402afeb..addb4dec42 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_115.png and b/TMessagesProj/src/main/assets/emoji/7_115.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_116.png b/TMessagesProj/src/main/assets/emoji/7_116.png index 840393f1eb..6202a7dbdc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_116.png and b/TMessagesProj/src/main/assets/emoji/7_116.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_117.png b/TMessagesProj/src/main/assets/emoji/7_117.png index dbd9d378a2..94810971c2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_117.png and b/TMessagesProj/src/main/assets/emoji/7_117.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_118.png b/TMessagesProj/src/main/assets/emoji/7_118.png index 6b469f1c3d..bdc7a634e8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_118.png and b/TMessagesProj/src/main/assets/emoji/7_118.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_119.png b/TMessagesProj/src/main/assets/emoji/7_119.png index 8096e1ff4f..1d0f2f0bea 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_119.png and b/TMessagesProj/src/main/assets/emoji/7_119.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_12.png b/TMessagesProj/src/main/assets/emoji/7_12.png index 34de193d0e..787474f9e4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_12.png and b/TMessagesProj/src/main/assets/emoji/7_12.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_120.png b/TMessagesProj/src/main/assets/emoji/7_120.png index dff77d3cf0..3e2be94538 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_120.png and b/TMessagesProj/src/main/assets/emoji/7_120.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_121.png b/TMessagesProj/src/main/assets/emoji/7_121.png index 166cfc39af..df6e3e0042 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_121.png and b/TMessagesProj/src/main/assets/emoji/7_121.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_122.png b/TMessagesProj/src/main/assets/emoji/7_122.png index 64200db398..b9e3abb7c2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_122.png and b/TMessagesProj/src/main/assets/emoji/7_122.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_123.png b/TMessagesProj/src/main/assets/emoji/7_123.png index d9f8e8557d..5add377525 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_123.png and b/TMessagesProj/src/main/assets/emoji/7_123.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_124.png b/TMessagesProj/src/main/assets/emoji/7_124.png index ab0448dd15..507350acdd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_124.png and b/TMessagesProj/src/main/assets/emoji/7_124.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_125.png b/TMessagesProj/src/main/assets/emoji/7_125.png index 4950cf9e63..97963ce024 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_125.png and b/TMessagesProj/src/main/assets/emoji/7_125.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_126.png b/TMessagesProj/src/main/assets/emoji/7_126.png index 41d8391b69..6f8ce551fd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_126.png and b/TMessagesProj/src/main/assets/emoji/7_126.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_127.png b/TMessagesProj/src/main/assets/emoji/7_127.png index 7933d8a58d..5f2fff571e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_127.png and b/TMessagesProj/src/main/assets/emoji/7_127.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_128.png b/TMessagesProj/src/main/assets/emoji/7_128.png index dd34adfb0a..fb41a63799 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_128.png and b/TMessagesProj/src/main/assets/emoji/7_128.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_129.png b/TMessagesProj/src/main/assets/emoji/7_129.png index 504615f332..669feff925 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_129.png and b/TMessagesProj/src/main/assets/emoji/7_129.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_13.png b/TMessagesProj/src/main/assets/emoji/7_13.png index 816a0bb0a3..806f2ff6c5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_13.png and b/TMessagesProj/src/main/assets/emoji/7_13.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_130.png b/TMessagesProj/src/main/assets/emoji/7_130.png index 58461da5f9..931fe9ef48 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_130.png and b/TMessagesProj/src/main/assets/emoji/7_130.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_131.png b/TMessagesProj/src/main/assets/emoji/7_131.png index ec40348864..225fc28d4a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_131.png and b/TMessagesProj/src/main/assets/emoji/7_131.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_132.png b/TMessagesProj/src/main/assets/emoji/7_132.png index d4686544fe..d81ee74015 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_132.png and b/TMessagesProj/src/main/assets/emoji/7_132.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_133.png b/TMessagesProj/src/main/assets/emoji/7_133.png index 447c67c8a0..7c69811d0c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_133.png and b/TMessagesProj/src/main/assets/emoji/7_133.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_134.png b/TMessagesProj/src/main/assets/emoji/7_134.png index d098f05511..157e856df9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_134.png and b/TMessagesProj/src/main/assets/emoji/7_134.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_135.png b/TMessagesProj/src/main/assets/emoji/7_135.png index def61a2476..357f149919 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_135.png and b/TMessagesProj/src/main/assets/emoji/7_135.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_136.png b/TMessagesProj/src/main/assets/emoji/7_136.png index d209b38c74..5141d66596 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_136.png and b/TMessagesProj/src/main/assets/emoji/7_136.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_137.png b/TMessagesProj/src/main/assets/emoji/7_137.png index b70e056ba3..57dc7ce735 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_137.png and b/TMessagesProj/src/main/assets/emoji/7_137.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_138.png b/TMessagesProj/src/main/assets/emoji/7_138.png index 8ccabe50f8..3574d62cac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_138.png and b/TMessagesProj/src/main/assets/emoji/7_138.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_139.png b/TMessagesProj/src/main/assets/emoji/7_139.png index 6bad042225..d47b0275dd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_139.png and b/TMessagesProj/src/main/assets/emoji/7_139.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_14.png b/TMessagesProj/src/main/assets/emoji/7_14.png index 31dcbbf3ae..bf112fe271 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_14.png and b/TMessagesProj/src/main/assets/emoji/7_14.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_140.png b/TMessagesProj/src/main/assets/emoji/7_140.png index 25f0778f46..17caef1273 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_140.png and b/TMessagesProj/src/main/assets/emoji/7_140.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_141.png b/TMessagesProj/src/main/assets/emoji/7_141.png index 36c4d78505..340fc3387b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_141.png and b/TMessagesProj/src/main/assets/emoji/7_141.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_142.png b/TMessagesProj/src/main/assets/emoji/7_142.png index fc59e86a25..2de736c4fc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_142.png and b/TMessagesProj/src/main/assets/emoji/7_142.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_143.png b/TMessagesProj/src/main/assets/emoji/7_143.png index bb1d7ebcfa..da236f7223 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_143.png and b/TMessagesProj/src/main/assets/emoji/7_143.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_144.png b/TMessagesProj/src/main/assets/emoji/7_144.png index 3391a90f5b..063e3686bb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_144.png and b/TMessagesProj/src/main/assets/emoji/7_144.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_145.png b/TMessagesProj/src/main/assets/emoji/7_145.png index 07f2807c63..ddbb1c799d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_145.png and b/TMessagesProj/src/main/assets/emoji/7_145.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_146.png b/TMessagesProj/src/main/assets/emoji/7_146.png index c948e24eb9..84781e1eb2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_146.png and b/TMessagesProj/src/main/assets/emoji/7_146.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_147.png b/TMessagesProj/src/main/assets/emoji/7_147.png index c5d6e373b5..91f79216b8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_147.png and b/TMessagesProj/src/main/assets/emoji/7_147.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_148.png b/TMessagesProj/src/main/assets/emoji/7_148.png index 669b27b9b9..61f1851a16 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_148.png and b/TMessagesProj/src/main/assets/emoji/7_148.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_149.png b/TMessagesProj/src/main/assets/emoji/7_149.png index 4c9f5292a7..b2a7213370 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_149.png and b/TMessagesProj/src/main/assets/emoji/7_149.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_15.png b/TMessagesProj/src/main/assets/emoji/7_15.png index eac43f307d..3a4df057ec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_15.png and b/TMessagesProj/src/main/assets/emoji/7_15.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_150.png b/TMessagesProj/src/main/assets/emoji/7_150.png index 9ad64d6f66..fbe4777d1a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_150.png and b/TMessagesProj/src/main/assets/emoji/7_150.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_151.png b/TMessagesProj/src/main/assets/emoji/7_151.png index 402d6d305a..7ab1b49332 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_151.png and b/TMessagesProj/src/main/assets/emoji/7_151.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_152.png b/TMessagesProj/src/main/assets/emoji/7_152.png index 7e9ae91369..b7e64df1a0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_152.png and b/TMessagesProj/src/main/assets/emoji/7_152.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_153.png b/TMessagesProj/src/main/assets/emoji/7_153.png index 5ddce5a530..2953d67503 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_153.png and b/TMessagesProj/src/main/assets/emoji/7_153.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_154.png b/TMessagesProj/src/main/assets/emoji/7_154.png index 5fe1cfd55b..318facc789 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_154.png and b/TMessagesProj/src/main/assets/emoji/7_154.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_155.png b/TMessagesProj/src/main/assets/emoji/7_155.png index 237fd69b0c..20063e84f9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_155.png and b/TMessagesProj/src/main/assets/emoji/7_155.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_156.png b/TMessagesProj/src/main/assets/emoji/7_156.png index 2ec5dde2ba..58b14de3c0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_156.png and b/TMessagesProj/src/main/assets/emoji/7_156.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_157.png b/TMessagesProj/src/main/assets/emoji/7_157.png index 6420ccbcc6..d69ae9bb31 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_157.png and b/TMessagesProj/src/main/assets/emoji/7_157.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_158.png b/TMessagesProj/src/main/assets/emoji/7_158.png index 7dacecf16a..7a0a8e2278 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_158.png and b/TMessagesProj/src/main/assets/emoji/7_158.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_159.png b/TMessagesProj/src/main/assets/emoji/7_159.png index 9ea4542e05..8ddfd86701 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_159.png and b/TMessagesProj/src/main/assets/emoji/7_159.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_16.png b/TMessagesProj/src/main/assets/emoji/7_16.png index e9d823d0fb..32a05ab32b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_16.png and b/TMessagesProj/src/main/assets/emoji/7_16.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_160.png b/TMessagesProj/src/main/assets/emoji/7_160.png index e082abec5c..b3bc45fb6b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_160.png and b/TMessagesProj/src/main/assets/emoji/7_160.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_161.png b/TMessagesProj/src/main/assets/emoji/7_161.png index a6304db3cc..8529390363 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_161.png and b/TMessagesProj/src/main/assets/emoji/7_161.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_162.png b/TMessagesProj/src/main/assets/emoji/7_162.png index 03d6b9e562..54e9508949 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_162.png and b/TMessagesProj/src/main/assets/emoji/7_162.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_163.png b/TMessagesProj/src/main/assets/emoji/7_163.png index 6c7fb57a20..199c9ef2db 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_163.png and b/TMessagesProj/src/main/assets/emoji/7_163.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_164.png b/TMessagesProj/src/main/assets/emoji/7_164.png index 78048d3b23..f2c9c039a0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_164.png and b/TMessagesProj/src/main/assets/emoji/7_164.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_165.png b/TMessagesProj/src/main/assets/emoji/7_165.png index 014ce32c1f..8e8fa24c20 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_165.png and b/TMessagesProj/src/main/assets/emoji/7_165.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_166.png b/TMessagesProj/src/main/assets/emoji/7_166.png index 83c45a4f24..228f6f3298 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_166.png and b/TMessagesProj/src/main/assets/emoji/7_166.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_167.png b/TMessagesProj/src/main/assets/emoji/7_167.png index 7b00eaa70d..5c51342fd4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_167.png and b/TMessagesProj/src/main/assets/emoji/7_167.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_168.png b/TMessagesProj/src/main/assets/emoji/7_168.png index 3d4b49a4a2..86c2801b31 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_168.png and b/TMessagesProj/src/main/assets/emoji/7_168.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_169.png b/TMessagesProj/src/main/assets/emoji/7_169.png index 549e662ac7..7276ffc339 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_169.png and b/TMessagesProj/src/main/assets/emoji/7_169.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_17.png b/TMessagesProj/src/main/assets/emoji/7_17.png index b45b2a449d..80d4a7451d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_17.png and b/TMessagesProj/src/main/assets/emoji/7_17.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_170.png b/TMessagesProj/src/main/assets/emoji/7_170.png index 0006217582..dc3b925c9a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_170.png and b/TMessagesProj/src/main/assets/emoji/7_170.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_171.png b/TMessagesProj/src/main/assets/emoji/7_171.png index 92f06dc05e..bb3fc22f94 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_171.png and b/TMessagesProj/src/main/assets/emoji/7_171.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_172.png b/TMessagesProj/src/main/assets/emoji/7_172.png index 2936fa29d4..5cd37fe191 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_172.png and b/TMessagesProj/src/main/assets/emoji/7_172.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_173.png b/TMessagesProj/src/main/assets/emoji/7_173.png index 260f2440da..0bdc077302 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_173.png and b/TMessagesProj/src/main/assets/emoji/7_173.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_174.png b/TMessagesProj/src/main/assets/emoji/7_174.png index 379178952a..a66a732d06 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_174.png and b/TMessagesProj/src/main/assets/emoji/7_174.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_175.png b/TMessagesProj/src/main/assets/emoji/7_175.png index 92b31106c2..2f56f0b66e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_175.png and b/TMessagesProj/src/main/assets/emoji/7_175.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_176.png b/TMessagesProj/src/main/assets/emoji/7_176.png index 04a65af43d..2d8dba20e2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_176.png and b/TMessagesProj/src/main/assets/emoji/7_176.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_177.png b/TMessagesProj/src/main/assets/emoji/7_177.png index 59825c05b4..2bdedd6c82 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_177.png and b/TMessagesProj/src/main/assets/emoji/7_177.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_178.png b/TMessagesProj/src/main/assets/emoji/7_178.png index 0b1540b4c8..7eafcc37c1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_178.png and b/TMessagesProj/src/main/assets/emoji/7_178.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_179.png b/TMessagesProj/src/main/assets/emoji/7_179.png index 2eeebeb97e..f0fba20dde 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_179.png and b/TMessagesProj/src/main/assets/emoji/7_179.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_18.png b/TMessagesProj/src/main/assets/emoji/7_18.png index 749831bb4f..fa1859dff0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_18.png and b/TMessagesProj/src/main/assets/emoji/7_18.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_180.png b/TMessagesProj/src/main/assets/emoji/7_180.png index 62e7c7f35d..69661fa32c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_180.png and b/TMessagesProj/src/main/assets/emoji/7_180.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_181.png b/TMessagesProj/src/main/assets/emoji/7_181.png index 11ad19df88..a355082854 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_181.png and b/TMessagesProj/src/main/assets/emoji/7_181.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_182.png b/TMessagesProj/src/main/assets/emoji/7_182.png index cebc10098d..f53a4199e0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_182.png and b/TMessagesProj/src/main/assets/emoji/7_182.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_183.png b/TMessagesProj/src/main/assets/emoji/7_183.png index 1e17e2221d..757da1fd8b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_183.png and b/TMessagesProj/src/main/assets/emoji/7_183.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_184.png b/TMessagesProj/src/main/assets/emoji/7_184.png index fd9fe91d9c..9760a7dd35 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_184.png and b/TMessagesProj/src/main/assets/emoji/7_184.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_185.png b/TMessagesProj/src/main/assets/emoji/7_185.png index fa20d36628..ab23a141d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_185.png and b/TMessagesProj/src/main/assets/emoji/7_185.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_186.png b/TMessagesProj/src/main/assets/emoji/7_186.png index 7d2e2361ef..0f2482ab24 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_186.png and b/TMessagesProj/src/main/assets/emoji/7_186.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_187.png b/TMessagesProj/src/main/assets/emoji/7_187.png index c07bc27a62..c8990116f2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_187.png and b/TMessagesProj/src/main/assets/emoji/7_187.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_188.png b/TMessagesProj/src/main/assets/emoji/7_188.png index 03bfd8b643..fd186b5040 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_188.png and b/TMessagesProj/src/main/assets/emoji/7_188.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_189.png b/TMessagesProj/src/main/assets/emoji/7_189.png index bf9fd2f796..ec15d8c2ba 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_189.png and b/TMessagesProj/src/main/assets/emoji/7_189.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_19.png b/TMessagesProj/src/main/assets/emoji/7_19.png index 43a964a1cf..78a52fdc96 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_19.png and b/TMessagesProj/src/main/assets/emoji/7_19.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_190.png b/TMessagesProj/src/main/assets/emoji/7_190.png index 38b6f61692..16a6fc2eee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_190.png and b/TMessagesProj/src/main/assets/emoji/7_190.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_191.png b/TMessagesProj/src/main/assets/emoji/7_191.png index 52a4278490..c3b4b20d7d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_191.png and b/TMessagesProj/src/main/assets/emoji/7_191.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_192.png b/TMessagesProj/src/main/assets/emoji/7_192.png index 04efd71657..611c9a9c9b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_192.png and b/TMessagesProj/src/main/assets/emoji/7_192.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_193.png b/TMessagesProj/src/main/assets/emoji/7_193.png index 1588f800ae..23bb93c8c2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_193.png and b/TMessagesProj/src/main/assets/emoji/7_193.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_194.png b/TMessagesProj/src/main/assets/emoji/7_194.png index cf6b16e2d2..aa28bad010 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_194.png and b/TMessagesProj/src/main/assets/emoji/7_194.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_195.png b/TMessagesProj/src/main/assets/emoji/7_195.png index 6898ac0e78..1382190ddf 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_195.png and b/TMessagesProj/src/main/assets/emoji/7_195.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_196.png b/TMessagesProj/src/main/assets/emoji/7_196.png index 19aea02c49..993f0592a8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_196.png and b/TMessagesProj/src/main/assets/emoji/7_196.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_197.png b/TMessagesProj/src/main/assets/emoji/7_197.png index 4f8b1f6bb2..d4dd245405 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_197.png and b/TMessagesProj/src/main/assets/emoji/7_197.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_198.png b/TMessagesProj/src/main/assets/emoji/7_198.png index 2ed241947e..4f148ffa7d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_198.png and b/TMessagesProj/src/main/assets/emoji/7_198.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_199.png b/TMessagesProj/src/main/assets/emoji/7_199.png index 621b079644..6d62a828a7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_199.png and b/TMessagesProj/src/main/assets/emoji/7_199.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_2.png b/TMessagesProj/src/main/assets/emoji/7_2.png index 315c81080d..1e9cc8b97f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_2.png and b/TMessagesProj/src/main/assets/emoji/7_2.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_20.png b/TMessagesProj/src/main/assets/emoji/7_20.png index 430ac4812e..23ccaf82fc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_20.png and b/TMessagesProj/src/main/assets/emoji/7_20.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_200.png b/TMessagesProj/src/main/assets/emoji/7_200.png index 0d661eb7e3..f863c0bfbb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_200.png and b/TMessagesProj/src/main/assets/emoji/7_200.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_201.png b/TMessagesProj/src/main/assets/emoji/7_201.png index 88a342f4d6..8bd8c26b65 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_201.png and b/TMessagesProj/src/main/assets/emoji/7_201.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_202.png b/TMessagesProj/src/main/assets/emoji/7_202.png index 84f6d3fd95..cfc5beaf73 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_202.png and b/TMessagesProj/src/main/assets/emoji/7_202.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_203.png b/TMessagesProj/src/main/assets/emoji/7_203.png index 6e9d049c5a..d2f5e9d59a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_203.png and b/TMessagesProj/src/main/assets/emoji/7_203.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_204.png b/TMessagesProj/src/main/assets/emoji/7_204.png index 31d257b81b..9918b2f5a4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_204.png and b/TMessagesProj/src/main/assets/emoji/7_204.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_205.png b/TMessagesProj/src/main/assets/emoji/7_205.png index 0ef5aeddf6..95e486170e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_205.png and b/TMessagesProj/src/main/assets/emoji/7_205.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_206.png b/TMessagesProj/src/main/assets/emoji/7_206.png index b282638f82..a9b841ef46 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_206.png and b/TMessagesProj/src/main/assets/emoji/7_206.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_207.png b/TMessagesProj/src/main/assets/emoji/7_207.png index 89b0768ac8..609fcd900e 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_207.png and b/TMessagesProj/src/main/assets/emoji/7_207.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_208.png b/TMessagesProj/src/main/assets/emoji/7_208.png index 0aad03a6e0..09474c333b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_208.png and b/TMessagesProj/src/main/assets/emoji/7_208.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_209.png b/TMessagesProj/src/main/assets/emoji/7_209.png index e0f90d3d5b..21c395bf00 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_209.png and b/TMessagesProj/src/main/assets/emoji/7_209.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_21.png b/TMessagesProj/src/main/assets/emoji/7_21.png index 09ff5c12d6..6751613d6b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_21.png and b/TMessagesProj/src/main/assets/emoji/7_21.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_210.png b/TMessagesProj/src/main/assets/emoji/7_210.png index bba4bf822c..048a36866a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_210.png and b/TMessagesProj/src/main/assets/emoji/7_210.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_211.png b/TMessagesProj/src/main/assets/emoji/7_211.png index f7b2414e7c..af82572813 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_211.png and b/TMessagesProj/src/main/assets/emoji/7_211.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_212.png b/TMessagesProj/src/main/assets/emoji/7_212.png index d246fc3f79..3a68412e57 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_212.png and b/TMessagesProj/src/main/assets/emoji/7_212.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_213.png b/TMessagesProj/src/main/assets/emoji/7_213.png index 210d20f09b..f6c9de81e0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_213.png and b/TMessagesProj/src/main/assets/emoji/7_213.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_214.png b/TMessagesProj/src/main/assets/emoji/7_214.png index 639f103a3e..6aa42e681b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_214.png and b/TMessagesProj/src/main/assets/emoji/7_214.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_215.png b/TMessagesProj/src/main/assets/emoji/7_215.png index 8770c09087..9fdf2bb1e6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_215.png and b/TMessagesProj/src/main/assets/emoji/7_215.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_216.png b/TMessagesProj/src/main/assets/emoji/7_216.png index 1161527e12..47c4060633 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_216.png and b/TMessagesProj/src/main/assets/emoji/7_216.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_217.png b/TMessagesProj/src/main/assets/emoji/7_217.png index ae5cb276e4..f141c86fef 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_217.png and b/TMessagesProj/src/main/assets/emoji/7_217.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_218.png b/TMessagesProj/src/main/assets/emoji/7_218.png index 587ee0bc6e..23b4162a3b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_218.png and b/TMessagesProj/src/main/assets/emoji/7_218.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_219.png b/TMessagesProj/src/main/assets/emoji/7_219.png index 21e6a023ed..318a3bebe6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_219.png and b/TMessagesProj/src/main/assets/emoji/7_219.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_22.png b/TMessagesProj/src/main/assets/emoji/7_22.png index ac462a3e69..8983650407 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_22.png and b/TMessagesProj/src/main/assets/emoji/7_22.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_220.png b/TMessagesProj/src/main/assets/emoji/7_220.png index 66735f6fbb..1af93ca405 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_220.png and b/TMessagesProj/src/main/assets/emoji/7_220.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_221.png b/TMessagesProj/src/main/assets/emoji/7_221.png index 3075e56aef..5e352a8467 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_221.png and b/TMessagesProj/src/main/assets/emoji/7_221.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_222.png b/TMessagesProj/src/main/assets/emoji/7_222.png index 9b56b4a592..51cef7e651 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_222.png and b/TMessagesProj/src/main/assets/emoji/7_222.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_223.png b/TMessagesProj/src/main/assets/emoji/7_223.png index d73b0963ba..97927584ac 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_223.png and b/TMessagesProj/src/main/assets/emoji/7_223.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_224.png b/TMessagesProj/src/main/assets/emoji/7_224.png index 0a4f8faffb..75e27db471 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_224.png and b/TMessagesProj/src/main/assets/emoji/7_224.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_225.png b/TMessagesProj/src/main/assets/emoji/7_225.png index b9dd492721..6bd32bb82d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_225.png and b/TMessagesProj/src/main/assets/emoji/7_225.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_226.png b/TMessagesProj/src/main/assets/emoji/7_226.png index ecb646f3e9..e8473fd9dc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_226.png and b/TMessagesProj/src/main/assets/emoji/7_226.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_227.png b/TMessagesProj/src/main/assets/emoji/7_227.png index 4a4100c72b..77ff8d5bc2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_227.png and b/TMessagesProj/src/main/assets/emoji/7_227.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_228.png b/TMessagesProj/src/main/assets/emoji/7_228.png index c9c8e87bc3..e6f357b127 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_228.png and b/TMessagesProj/src/main/assets/emoji/7_228.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_229.png b/TMessagesProj/src/main/assets/emoji/7_229.png index 63261d7438..62784fdb11 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_229.png and b/TMessagesProj/src/main/assets/emoji/7_229.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_23.png b/TMessagesProj/src/main/assets/emoji/7_23.png index 2e142fcc0d..56f6ccc0a7 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_23.png and b/TMessagesProj/src/main/assets/emoji/7_23.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_230.png b/TMessagesProj/src/main/assets/emoji/7_230.png index b6a641de5b..18a7dfec89 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_230.png and b/TMessagesProj/src/main/assets/emoji/7_230.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_231.png b/TMessagesProj/src/main/assets/emoji/7_231.png index 2347dcce03..8b6189ced4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_231.png and b/TMessagesProj/src/main/assets/emoji/7_231.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_232.png b/TMessagesProj/src/main/assets/emoji/7_232.png index c442d58191..ed6e4533fa 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_232.png and b/TMessagesProj/src/main/assets/emoji/7_232.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_233.png b/TMessagesProj/src/main/assets/emoji/7_233.png index 6587f5d54e..cc00aff039 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_233.png and b/TMessagesProj/src/main/assets/emoji/7_233.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_234.png b/TMessagesProj/src/main/assets/emoji/7_234.png index 9e9631e0ae..110d4a09a0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_234.png and b/TMessagesProj/src/main/assets/emoji/7_234.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_235.png b/TMessagesProj/src/main/assets/emoji/7_235.png index f8ef93c7ac..9ef85a2d0b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_235.png and b/TMessagesProj/src/main/assets/emoji/7_235.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_236.png b/TMessagesProj/src/main/assets/emoji/7_236.png index ec47921255..c65013a25f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_236.png and b/TMessagesProj/src/main/assets/emoji/7_236.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_237.png b/TMessagesProj/src/main/assets/emoji/7_237.png index 6a3ff655a7..b31dd42f6d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_237.png and b/TMessagesProj/src/main/assets/emoji/7_237.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_238.png b/TMessagesProj/src/main/assets/emoji/7_238.png index 5ee9713dad..5d6fdf939a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_238.png and b/TMessagesProj/src/main/assets/emoji/7_238.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_239.png b/TMessagesProj/src/main/assets/emoji/7_239.png index 80e3d7095b..c2044d93d0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_239.png and b/TMessagesProj/src/main/assets/emoji/7_239.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_24.png b/TMessagesProj/src/main/assets/emoji/7_24.png index 9325182e27..4bf38efb38 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_24.png and b/TMessagesProj/src/main/assets/emoji/7_24.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_240.png b/TMessagesProj/src/main/assets/emoji/7_240.png index 292932323a..97bb6a67d3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_240.png and b/TMessagesProj/src/main/assets/emoji/7_240.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_241.png b/TMessagesProj/src/main/assets/emoji/7_241.png index a402e13e3a..781d5306d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_241.png and b/TMessagesProj/src/main/assets/emoji/7_241.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_242.png b/TMessagesProj/src/main/assets/emoji/7_242.png index 6f1afc20a3..9d15d61338 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_242.png and b/TMessagesProj/src/main/assets/emoji/7_242.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_243.png b/TMessagesProj/src/main/assets/emoji/7_243.png index 963b0727f1..c12e1d97b5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_243.png and b/TMessagesProj/src/main/assets/emoji/7_243.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_244.png b/TMessagesProj/src/main/assets/emoji/7_244.png index 7acb9947b3..504ae15eca 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_244.png and b/TMessagesProj/src/main/assets/emoji/7_244.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_245.png b/TMessagesProj/src/main/assets/emoji/7_245.png index c26be3ee21..7b68f5f429 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_245.png and b/TMessagesProj/src/main/assets/emoji/7_245.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_246.png b/TMessagesProj/src/main/assets/emoji/7_246.png index 86c5c8f7df..3dced14512 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_246.png and b/TMessagesProj/src/main/assets/emoji/7_246.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_247.png b/TMessagesProj/src/main/assets/emoji/7_247.png index ac31a9e998..5c12f7afec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_247.png and b/TMessagesProj/src/main/assets/emoji/7_247.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_248.png b/TMessagesProj/src/main/assets/emoji/7_248.png index 6d2a0faf33..9732441928 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_248.png and b/TMessagesProj/src/main/assets/emoji/7_248.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_249.png b/TMessagesProj/src/main/assets/emoji/7_249.png index 7f065eeab6..e99e94abba 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_249.png and b/TMessagesProj/src/main/assets/emoji/7_249.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_25.png b/TMessagesProj/src/main/assets/emoji/7_25.png index 4a12897b95..b43db1cfe8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_25.png and b/TMessagesProj/src/main/assets/emoji/7_25.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_250.png b/TMessagesProj/src/main/assets/emoji/7_250.png index 208f1819f2..7e58521719 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_250.png and b/TMessagesProj/src/main/assets/emoji/7_250.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_251.png b/TMessagesProj/src/main/assets/emoji/7_251.png index f116e0e419..5511c6e51c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_251.png and b/TMessagesProj/src/main/assets/emoji/7_251.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_252.png b/TMessagesProj/src/main/assets/emoji/7_252.png index 7eac9217c2..1ec3823cf9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_252.png and b/TMessagesProj/src/main/assets/emoji/7_252.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_253.png b/TMessagesProj/src/main/assets/emoji/7_253.png index 9382c3d3d4..ca21bd3924 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_253.png and b/TMessagesProj/src/main/assets/emoji/7_253.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_254.png b/TMessagesProj/src/main/assets/emoji/7_254.png index 9dacf3ed7c..314dc75a3f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_254.png and b/TMessagesProj/src/main/assets/emoji/7_254.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_255.png b/TMessagesProj/src/main/assets/emoji/7_255.png index 222dc58e2c..d6c0472dc5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_255.png and b/TMessagesProj/src/main/assets/emoji/7_255.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_256.png b/TMessagesProj/src/main/assets/emoji/7_256.png index ae11786380..d8a89f75dc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_256.png and b/TMessagesProj/src/main/assets/emoji/7_256.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_257.png b/TMessagesProj/src/main/assets/emoji/7_257.png index c01245ce5b..c672d536f6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_257.png and b/TMessagesProj/src/main/assets/emoji/7_257.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_258.png b/TMessagesProj/src/main/assets/emoji/7_258.png index 277b14c953..88f2146f02 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_258.png and b/TMessagesProj/src/main/assets/emoji/7_258.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_26.png b/TMessagesProj/src/main/assets/emoji/7_26.png index 12820d17a8..ca8e53bb10 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_26.png and b/TMessagesProj/src/main/assets/emoji/7_26.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_27.png b/TMessagesProj/src/main/assets/emoji/7_27.png index 17cf6544d0..2ed59bfe47 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_27.png and b/TMessagesProj/src/main/assets/emoji/7_27.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_28.png b/TMessagesProj/src/main/assets/emoji/7_28.png index f4c5bc6453..944b407514 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_28.png and b/TMessagesProj/src/main/assets/emoji/7_28.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_29.png b/TMessagesProj/src/main/assets/emoji/7_29.png index db80e874b9..f26f49c148 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_29.png and b/TMessagesProj/src/main/assets/emoji/7_29.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_3.png b/TMessagesProj/src/main/assets/emoji/7_3.png index 43d776b2ce..ebc77d3b04 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_3.png and b/TMessagesProj/src/main/assets/emoji/7_3.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_30.png b/TMessagesProj/src/main/assets/emoji/7_30.png index 25336a9c64..b8cc9a0094 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_30.png and b/TMessagesProj/src/main/assets/emoji/7_30.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_31.png b/TMessagesProj/src/main/assets/emoji/7_31.png index e7920085af..d8ac9eef40 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_31.png and b/TMessagesProj/src/main/assets/emoji/7_31.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_32.png b/TMessagesProj/src/main/assets/emoji/7_32.png index 64490f3829..3c1a852e28 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_32.png and b/TMessagesProj/src/main/assets/emoji/7_32.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_33.png b/TMessagesProj/src/main/assets/emoji/7_33.png index c5eec42894..9aabc935e3 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_33.png and b/TMessagesProj/src/main/assets/emoji/7_33.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_34.png b/TMessagesProj/src/main/assets/emoji/7_34.png index 7da15351d1..f8a31a95b1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_34.png and b/TMessagesProj/src/main/assets/emoji/7_34.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_35.png b/TMessagesProj/src/main/assets/emoji/7_35.png index 3854981107..1eff39a723 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_35.png and b/TMessagesProj/src/main/assets/emoji/7_35.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_36.png b/TMessagesProj/src/main/assets/emoji/7_36.png index d97ca82999..438b00f4ce 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_36.png and b/TMessagesProj/src/main/assets/emoji/7_36.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_37.png b/TMessagesProj/src/main/assets/emoji/7_37.png index 472644810d..de6497c2f5 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_37.png and b/TMessagesProj/src/main/assets/emoji/7_37.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_38.png b/TMessagesProj/src/main/assets/emoji/7_38.png index 1a5789bdfb..46bf525a82 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_38.png and b/TMessagesProj/src/main/assets/emoji/7_38.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_39.png b/TMessagesProj/src/main/assets/emoji/7_39.png index 1295a938d5..2564d8e9e2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_39.png and b/TMessagesProj/src/main/assets/emoji/7_39.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_4.png b/TMessagesProj/src/main/assets/emoji/7_4.png index 31c38b1d28..4b7b47696c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_4.png and b/TMessagesProj/src/main/assets/emoji/7_4.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_40.png b/TMessagesProj/src/main/assets/emoji/7_40.png index 09faf1ade2..97f8c9302d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_40.png and b/TMessagesProj/src/main/assets/emoji/7_40.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_41.png b/TMessagesProj/src/main/assets/emoji/7_41.png index 0bdb8b27c9..5999bc2725 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_41.png and b/TMessagesProj/src/main/assets/emoji/7_41.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_42.png b/TMessagesProj/src/main/assets/emoji/7_42.png index 50279a28d7..b5b506a0f0 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_42.png and b/TMessagesProj/src/main/assets/emoji/7_42.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_43.png b/TMessagesProj/src/main/assets/emoji/7_43.png index 50d029042c..c3a287eb3d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_43.png and b/TMessagesProj/src/main/assets/emoji/7_43.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_44.png b/TMessagesProj/src/main/assets/emoji/7_44.png index 7cdfaa7250..2c3305e471 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_44.png and b/TMessagesProj/src/main/assets/emoji/7_44.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_45.png b/TMessagesProj/src/main/assets/emoji/7_45.png index cd93305fa7..d7e613975c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_45.png and b/TMessagesProj/src/main/assets/emoji/7_45.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_46.png b/TMessagesProj/src/main/assets/emoji/7_46.png index 07f307bc59..7dda2af37b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_46.png and b/TMessagesProj/src/main/assets/emoji/7_46.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_47.png b/TMessagesProj/src/main/assets/emoji/7_47.png index 780daabd98..87f2eafe59 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_47.png and b/TMessagesProj/src/main/assets/emoji/7_47.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_48.png b/TMessagesProj/src/main/assets/emoji/7_48.png index d808fec8b2..b2b119ec18 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_48.png and b/TMessagesProj/src/main/assets/emoji/7_48.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_49.png b/TMessagesProj/src/main/assets/emoji/7_49.png index aad709d29c..e6f67dbe8d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_49.png and b/TMessagesProj/src/main/assets/emoji/7_49.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_5.png b/TMessagesProj/src/main/assets/emoji/7_5.png index f09d1cf6b4..41fb009c8b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_5.png and b/TMessagesProj/src/main/assets/emoji/7_5.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_50.png b/TMessagesProj/src/main/assets/emoji/7_50.png index 6b7a0b9342..ac8f0df48a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_50.png and b/TMessagesProj/src/main/assets/emoji/7_50.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_51.png b/TMessagesProj/src/main/assets/emoji/7_51.png index 933cf70980..7c2d4b3e22 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_51.png and b/TMessagesProj/src/main/assets/emoji/7_51.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_52.png b/TMessagesProj/src/main/assets/emoji/7_52.png index 3a82fc2ab7..1f788a507d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_52.png and b/TMessagesProj/src/main/assets/emoji/7_52.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_53.png b/TMessagesProj/src/main/assets/emoji/7_53.png index 5d5f4af7d6..504b01221d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_53.png and b/TMessagesProj/src/main/assets/emoji/7_53.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_54.png b/TMessagesProj/src/main/assets/emoji/7_54.png index 433159efab..4d9b9592a4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_54.png and b/TMessagesProj/src/main/assets/emoji/7_54.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_55.png b/TMessagesProj/src/main/assets/emoji/7_55.png index 535a9d1506..9f7e872865 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_55.png and b/TMessagesProj/src/main/assets/emoji/7_55.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_56.png b/TMessagesProj/src/main/assets/emoji/7_56.png index cac1c05807..57087f889d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_56.png and b/TMessagesProj/src/main/assets/emoji/7_56.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_57.png b/TMessagesProj/src/main/assets/emoji/7_57.png index 915cdb9dfe..40fb4c9c52 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_57.png and b/TMessagesProj/src/main/assets/emoji/7_57.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_58.png b/TMessagesProj/src/main/assets/emoji/7_58.png index edf96de13c..ea0b379fd4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_58.png and b/TMessagesProj/src/main/assets/emoji/7_58.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_59.png b/TMessagesProj/src/main/assets/emoji/7_59.png index 692e824723..12bdf9cb90 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_59.png and b/TMessagesProj/src/main/assets/emoji/7_59.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_6.png b/TMessagesProj/src/main/assets/emoji/7_6.png index 19d5ae8b90..97b8f18e2a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_6.png and b/TMessagesProj/src/main/assets/emoji/7_6.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_60.png b/TMessagesProj/src/main/assets/emoji/7_60.png index cae9baa97f..5be7970eed 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_60.png and b/TMessagesProj/src/main/assets/emoji/7_60.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_61.png b/TMessagesProj/src/main/assets/emoji/7_61.png index 47d13c3245..8e0fba5a97 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_61.png and b/TMessagesProj/src/main/assets/emoji/7_61.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_62.png b/TMessagesProj/src/main/assets/emoji/7_62.png index c750fa17ce..6d0ff30fdd 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_62.png and b/TMessagesProj/src/main/assets/emoji/7_62.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_63.png b/TMessagesProj/src/main/assets/emoji/7_63.png index 29bd1e57a3..ca01cb23a6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_63.png and b/TMessagesProj/src/main/assets/emoji/7_63.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_64.png b/TMessagesProj/src/main/assets/emoji/7_64.png index b8a0db51d4..14dfc5904c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_64.png and b/TMessagesProj/src/main/assets/emoji/7_64.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_65.png b/TMessagesProj/src/main/assets/emoji/7_65.png index 3dd5d8c75f..8e5bf26ebc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_65.png and b/TMessagesProj/src/main/assets/emoji/7_65.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_66.png b/TMessagesProj/src/main/assets/emoji/7_66.png index 7496d73973..bcf6ce4b78 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_66.png and b/TMessagesProj/src/main/assets/emoji/7_66.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_67.png b/TMessagesProj/src/main/assets/emoji/7_67.png index f92e47c008..d21daa71f8 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_67.png and b/TMessagesProj/src/main/assets/emoji/7_67.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_68.png b/TMessagesProj/src/main/assets/emoji/7_68.png index a6baa29ef4..fc8bd7612b 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_68.png and b/TMessagesProj/src/main/assets/emoji/7_68.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_69.png b/TMessagesProj/src/main/assets/emoji/7_69.png index 76c0e4714d..ffbd6b9631 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_69.png and b/TMessagesProj/src/main/assets/emoji/7_69.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_7.png b/TMessagesProj/src/main/assets/emoji/7_7.png index c9385ac836..d025dfd55a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_7.png and b/TMessagesProj/src/main/assets/emoji/7_7.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_70.png b/TMessagesProj/src/main/assets/emoji/7_70.png index edd7c2b7d2..e40f5a03db 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_70.png and b/TMessagesProj/src/main/assets/emoji/7_70.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_71.png b/TMessagesProj/src/main/assets/emoji/7_71.png index 61a2767dc2..f2a8d0697f 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_71.png and b/TMessagesProj/src/main/assets/emoji/7_71.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_72.png b/TMessagesProj/src/main/assets/emoji/7_72.png index 3f5f6a72ab..fbd68068d4 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_72.png and b/TMessagesProj/src/main/assets/emoji/7_72.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_73.png b/TMessagesProj/src/main/assets/emoji/7_73.png index 0d5e0a2396..3e3b4ac16c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_73.png and b/TMessagesProj/src/main/assets/emoji/7_73.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_74.png b/TMessagesProj/src/main/assets/emoji/7_74.png index 94d532bb3a..852285a29c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_74.png and b/TMessagesProj/src/main/assets/emoji/7_74.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_75.png b/TMessagesProj/src/main/assets/emoji/7_75.png index 31cdb241bd..9d43379627 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_75.png and b/TMessagesProj/src/main/assets/emoji/7_75.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_76.png b/TMessagesProj/src/main/assets/emoji/7_76.png index 8a7131f1ce..76cd47e2ee 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_76.png and b/TMessagesProj/src/main/assets/emoji/7_76.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_77.png b/TMessagesProj/src/main/assets/emoji/7_77.png index 672c097708..f5589147cb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_77.png and b/TMessagesProj/src/main/assets/emoji/7_77.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_78.png b/TMessagesProj/src/main/assets/emoji/7_78.png index 475b4026b2..750a352c51 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_78.png and b/TMessagesProj/src/main/assets/emoji/7_78.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_79.png b/TMessagesProj/src/main/assets/emoji/7_79.png index 378b68f8a2..eb8fb10edb 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_79.png and b/TMessagesProj/src/main/assets/emoji/7_79.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_8.png b/TMessagesProj/src/main/assets/emoji/7_8.png index 150372b8a7..0f3a332a61 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_8.png and b/TMessagesProj/src/main/assets/emoji/7_8.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_80.png b/TMessagesProj/src/main/assets/emoji/7_80.png index 84d1b00d25..4746ddfc92 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_80.png and b/TMessagesProj/src/main/assets/emoji/7_80.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_81.png b/TMessagesProj/src/main/assets/emoji/7_81.png index d1305f1d65..aed79ae446 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_81.png and b/TMessagesProj/src/main/assets/emoji/7_81.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_82.png b/TMessagesProj/src/main/assets/emoji/7_82.png index 419f4b9df8..a362f65b65 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_82.png and b/TMessagesProj/src/main/assets/emoji/7_82.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_83.png b/TMessagesProj/src/main/assets/emoji/7_83.png index 5260172a89..beb830c4ef 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_83.png and b/TMessagesProj/src/main/assets/emoji/7_83.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_84.png b/TMessagesProj/src/main/assets/emoji/7_84.png index 0ac5029939..74bb7b4a35 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_84.png and b/TMessagesProj/src/main/assets/emoji/7_84.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_85.png b/TMessagesProj/src/main/assets/emoji/7_85.png index d5dc4f8489..c052c6a10c 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_85.png and b/TMessagesProj/src/main/assets/emoji/7_85.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_86.png b/TMessagesProj/src/main/assets/emoji/7_86.png index 6631dac4f0..1e521985a2 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_86.png and b/TMessagesProj/src/main/assets/emoji/7_86.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_87.png b/TMessagesProj/src/main/assets/emoji/7_87.png index dae3b6dc52..d6955ac517 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_87.png and b/TMessagesProj/src/main/assets/emoji/7_87.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_88.png b/TMessagesProj/src/main/assets/emoji/7_88.png index 2d0ed50c80..67e90d8ad1 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_88.png and b/TMessagesProj/src/main/assets/emoji/7_88.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_89.png b/TMessagesProj/src/main/assets/emoji/7_89.png index 30065e0bc9..8fb438c68a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_89.png and b/TMessagesProj/src/main/assets/emoji/7_89.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_9.png b/TMessagesProj/src/main/assets/emoji/7_9.png index e9bc7ee5b7..c05b44f9ff 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_9.png and b/TMessagesProj/src/main/assets/emoji/7_9.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_90.png b/TMessagesProj/src/main/assets/emoji/7_90.png index 42c1fc75dc..7df14a119a 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_90.png and b/TMessagesProj/src/main/assets/emoji/7_90.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_91.png b/TMessagesProj/src/main/assets/emoji/7_91.png index 27d86a92eb..aa5a4b1f77 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_91.png and b/TMessagesProj/src/main/assets/emoji/7_91.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_92.png b/TMessagesProj/src/main/assets/emoji/7_92.png index ab9a847fbe..03669d739d 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_92.png and b/TMessagesProj/src/main/assets/emoji/7_92.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_93.png b/TMessagesProj/src/main/assets/emoji/7_93.png index a2316d270e..61da9e7117 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_93.png and b/TMessagesProj/src/main/assets/emoji/7_93.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_94.png b/TMessagesProj/src/main/assets/emoji/7_94.png index 10356ca24b..03bff98583 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_94.png and b/TMessagesProj/src/main/assets/emoji/7_94.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_95.png b/TMessagesProj/src/main/assets/emoji/7_95.png index d42b2ddafd..e35dddd904 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_95.png and b/TMessagesProj/src/main/assets/emoji/7_95.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_96.png b/TMessagesProj/src/main/assets/emoji/7_96.png index 9b112d2d86..8d25c947ec 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_96.png and b/TMessagesProj/src/main/assets/emoji/7_96.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_97.png b/TMessagesProj/src/main/assets/emoji/7_97.png index e843e2f902..fc109887f9 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_97.png and b/TMessagesProj/src/main/assets/emoji/7_97.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_98.png b/TMessagesProj/src/main/assets/emoji/7_98.png index cba6150958..b86ce2c3d6 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_98.png and b/TMessagesProj/src/main/assets/emoji/7_98.png differ diff --git a/TMessagesProj/src/main/assets/emoji/7_99.png b/TMessagesProj/src/main/assets/emoji/7_99.png index bf57c995de..71b1ee30dc 100644 Binary files a/TMessagesProj/src/main/assets/emoji/7_99.png and b/TMessagesProj/src/main/assets/emoji/7_99.png differ diff --git a/TMessagesProj/src/main/assets/flecks.png b/TMessagesProj/src/main/assets/flecks.png index 10f54cfb7f..b6695a1690 100644 Binary files a/TMessagesProj/src/main/assets/flecks.png and b/TMessagesProj/src/main/assets/flecks.png differ diff --git a/TMessagesProj/src/main/assets/shaders/fragment2.glsl b/TMessagesProj/src/main/assets/shaders/fragment2.glsl deleted file mode 100644 index b36acd7f66..0000000000 --- a/TMessagesProj/src/main/assets/shaders/fragment2.glsl +++ /dev/null @@ -1,70 +0,0 @@ -precision highp float; - -uniform sampler2D u_Texture; -uniform sampler2D u_NormalMap; -uniform sampler2D u_BackgroundTexture; -uniform float f_xOffset; -uniform float f_alpha; -uniform mat4 world; - -varying vec3 vNormal; -varying vec2 vUV; -varying vec3 modelViewVertex; - -vec3 cameraPosition = vec3(0, 0, 100); - -vec4 a_Color = vec4(1); -uniform float spec1; -uniform float spec2; -uniform float u_diffuse; -uniform float normalSpec; -uniform vec3 gradientColor1; -uniform vec3 gradientColor2; -uniform vec3 normalSpecColor; -uniform vec3 specColor; -uniform vec2 resolution; -uniform vec4 gradientPosition; -uniform int modelIndex; - -void main() { - vec3 vLightPosition2 = vec3(-400,400,400); - vec3 vLightPosition3 = vec3(0,200,400); - vec3 vLightPosition4 = vec3(0,0,100); - vec3 vLightPositionNormal = vec3(100,-200,400); - - vec3 vNormalW = normalize(vec3(world * vec4(vNormal, 0.0))); - vec3 vTextureNormal = normalize(texture2D(u_NormalMap, vUV + vec2(-f_xOffset, f_xOffset)).xyz * 2.0 - 1.0); - - vec3 finalNormal = normalize(vNormalW + vTextureNormal); - - vec3 color = texture2D(u_Texture, vUV ).xyz; - vec3 viewDirectionW = normalize(cameraPosition); - - vec3 angleW = normalize(viewDirectionW + vLightPosition2); - float specComp2 = max(0., dot(vNormalW, angleW)); - specComp2 = pow(specComp2, max(1., 128.)) * spec1; - - angleW = normalize(viewDirectionW + vLightPosition4); - float specComp3 = max(0., dot(vNormalW, angleW)); - specComp3 = pow(specComp3, max(1., 30.)) * spec2; - - float diffuse = max(dot(vNormalW, viewDirectionW), (1.0 - u_diffuse)); - - float mixValue = distance(vUV,vec2(1,0)); - vec4 gradientColorFinal = vec4(mix(gradientColor1, gradientColor2, mixValue), 1.0); - - angleW = normalize(viewDirectionW + vLightPositionNormal); - float normalSpecComp = max(0., dot(finalNormal, angleW)); - normalSpecComp = pow(normalSpecComp, max(1., 128.)) * normalSpec; - - angleW = normalize(viewDirectionW + vLightPosition2); - float normalSpecComp2 = max(0., dot(finalNormal, angleW)); - normalSpecComp2 = pow(normalSpecComp2, max(1., 128.)) * normalSpec; - - vec4 normalSpecFinal = vec4(normalSpecColor, 0.0) * (normalSpecComp + normalSpecComp2); - vec4 specFinal = vec4(color, 0.0) * (specComp2 + specComp3); - - vec4 fragColor = gradientColorFinal + specFinal + normalSpecFinal; - vec4 backgroundColor = texture2D(u_BackgroundTexture, vec2(gradientPosition.x + (gl_FragCoord.x / resolution.x) * gradientPosition.y, gradientPosition.z + (1.0 - (gl_FragCoord.y / resolution.y)) * gradientPosition.w)); - gl_FragColor = mix(backgroundColor, fragColor, diffuse) * f_alpha; -} \ No newline at end of file diff --git a/TMessagesProj/src/main/assets/shaders/fragment3.glsl b/TMessagesProj/src/main/assets/shaders/fragment3.glsl index b17813e66d..5a6c1b81fd 100644 --- a/TMessagesProj/src/main/assets/shaders/fragment3.glsl +++ b/TMessagesProj/src/main/assets/shaders/fragment3.glsl @@ -75,7 +75,7 @@ void main() { vec3 flecksLightDir = normalize(flecksLightPos - pos); vec3 flecksReflectDir = reflect(-flecksLightDir, norm); float flecksSpec = pow(max(dot(normalize(vec3(0.0) - pos), flecksReflectDir), 0.0), 8.0); - vec3 flecksNormal = normalize(texture2D(u_NormalMap, uv * 1.3 + vec2(.02, .06) * time).xyz * 2.0 - 1.0); + vec3 flecksNormal = normalize(texture2D(u_NormalMap, (uv * 1.3 + vec2(.02, .06) * time) * 2.0).xyz * 2.0 - 1.0); float flecks = max(flecksNormal.x, flecksNormal.y) * flecksSpec; norm += flecksSpec * flecksNormal; norm = normalize(norm); diff --git a/TMessagesProj/src/main/assets/shaders/fragment4.glsl b/TMessagesProj/src/main/assets/shaders/fragment4.glsl index 7384467651..4aa1624123 100644 --- a/TMessagesProj/src/main/assets/shaders/fragment4.glsl +++ b/TMessagesProj/src/main/assets/shaders/fragment4.glsl @@ -6,6 +6,7 @@ uniform sampler2D u_BackgroundTexture; uniform float f_xOffset; uniform float f_alpha; uniform mat4 world; +uniform float golden; uniform float white; varying vec3 vNormal; @@ -24,7 +25,51 @@ uniform vec2 resolution; uniform vec4 gradientPosition; uniform int modelIndex; -void main() { +vec4 premium_star() { + vec3 cameraPosition = vec3(0, 0, 100); + vec3 vLightPosition2 = vec3(-400,400,400); + vec3 vLightPosition3 = vec3(0,200,400); + vec3 vLightPosition4 = vec3(0,0,100); + vec3 vLightPositionNormal = vec3(100,-200,400); + + vec3 vNormalW = normalize(vec3(world * vec4(vNormal, 0.0))); + vec3 vTextureNormal = normalize(texture2D(u_NormalMap, (vUV + vec2(-f_xOffset, f_xOffset)) * 2.0).xyz * 2.0 - 1.0); + + vec3 finalNormal = normalize(vNormalW + vTextureNormal); + + vec3 color = texture2D(u_Texture, vUV).xyz; + vec3 viewDirectionW = normalize(cameraPosition); + + vec3 angleW = normalize(viewDirectionW + vLightPosition2); + float specComp2 = max(0., dot(vNormalW, angleW)); + specComp2 = pow(specComp2, max(1., 128.)) * spec1; + + angleW = normalize(viewDirectionW + vLightPosition4); + float specComp3 = max(0., dot(vNormalW, angleW)); + specComp3 = pow(specComp3, max(1., 30.)) * spec2; + + float diffuse = max(dot(vNormalW, viewDirectionW), (1.0 - u_diffuse)); + + float mixValue = distance(vUV,vec2(1,0)); + vec4 gradientColorFinal = vec4(mix(gradientColor1, gradientColor2, mixValue), 1.0); + + angleW = normalize(viewDirectionW + vLightPositionNormal); + float normalSpecComp = max(0., dot(finalNormal, angleW)); + normalSpecComp = pow(normalSpecComp, max(1., 128.)) * normalSpec; + + angleW = normalize(viewDirectionW + vLightPosition2); + float normalSpecComp2 = max(0., dot(finalNormal, angleW)); + normalSpecComp2 = pow(normalSpecComp2, max(1., 128.)) * normalSpec; + + vec4 normalSpecFinal = vec4(normalSpecColor, 0.0) * (normalSpecComp + normalSpecComp2); + vec4 specFinal = vec4(color, 0.0) * (specComp2 + specComp3); + + vec4 fragColor = gradientColorFinal + specFinal + normalSpecFinal; + vec4 backgroundColor = texture2D(u_BackgroundTexture, vec2(gradientPosition.x + (gl_FragCoord.x / resolution.x) * gradientPosition.y, gradientPosition.z + (1.0 - (gl_FragCoord.y / resolution.y)) * gradientPosition.w)); + return mix(backgroundColor, fragColor, diffuse) * f_alpha; +} + +vec4 golden_star() { vec3 pos = modelViewVertex / 100.0 + .5; float specTexture = texture2D(u_Texture, vUV).y * clamp(vNormal.z, 0.0, 1.0); @@ -36,13 +81,8 @@ void main() { vec3 norm = normalize(vec3(world * vec4(vNormal, 0.0))); -// vec3 flecksLightPos = vec3(.5, .5, 0.0); -// vec3 flecksLightDir = normalize(flecksLightPos - pos); -// vec3 flecksReflectDir = reflect(-flecksLightDir, norm); -// float flecksSpec = pow(max(dot(normalize(vec3(0.0) - pos), flecksReflectDir), 0.0), 8.0); - vec3 flecksNormal = normalize(1.0 - texture2D(u_NormalMap, vUV + .7 * vec2(-f_xOffset, f_xOffset)).xyz); + vec3 flecksNormal = normalize(1.0 - texture2D(u_NormalMap, (vUV + .7 * vec2(-f_xOffset, f_xOffset)) * 2.0).xyz); float flecks = clamp(flecksNormal.x, 0.0, 1.0); -// norm = normalize(norm + flecksSpec * abs(vNormal.z) * flecksNormal); vec3 lightPos = vec3(-3., -3., 20.); vec3 lightDir = normalize(lightPos - pos); @@ -90,5 +130,14 @@ void main() { clamp(flecksSpec * abs(vNormal.z) * (flecksNormal.z), 0.2, 0.3) - .2 ); - gl_FragColor = mix(color * f_alpha, vec4(1.0), white); + return mix(color * f_alpha, vec4(1.0), white); +} + +void main() { +// if (golden <= 0.0) +// gl_FragColor = premium_star(); +// else if (golden >= 0.0) +// gl_FragColor = golden_star(); +// else + gl_FragColor = mix(premium_star(), golden_star(), golden); } \ No newline at end of file diff --git a/TMessagesProj/src/main/java/com/google/android/exoplayer2/util/Util.java b/TMessagesProj/src/main/java/com/google/android/exoplayer2/util/Util.java index 89242e5e95..d65a6d499b 100644 --- a/TMessagesProj/src/main/java/com/google/android/exoplayer2/util/Util.java +++ b/TMessagesProj/src/main/java/com/google/android/exoplayer2/util/Util.java @@ -1937,7 +1937,7 @@ public static UUID getDrmUuid(String drmScheme) { default: try { return UUID.fromString(drmScheme); - } catch (RuntimeException e) { + } catch (Exception e) { return null; } } diff --git a/TMessagesProj/src/main/java/com/google/zxing/qrcode/QRCodeWriter.java b/TMessagesProj/src/main/java/com/google/zxing/qrcode/QRCodeWriter.java index a942521416..21938f16b7 100755 --- a/TMessagesProj/src/main/java/com/google/zxing/qrcode/QRCodeWriter.java +++ b/TMessagesProj/src/main/java/com/google/zxing/qrcode/QRCodeWriter.java @@ -17,6 +17,8 @@ package com.google.zxing.qrcode; import android.content.Context; +import static org.telegram.messenger.AndroidUtilities.readRes; + import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; @@ -39,7 +41,6 @@ import org.telegram.messenger.ApplicationLoader; import org.telegram.messenger.R; import org.telegram.messenger.SvgHelper; -import org.telegram.ui.Components.RLottieDrawable; import java.util.Arrays; import java.util.Map; @@ -426,8 +427,7 @@ public Bitmap encode(String contents, int width, int height, Map readBufferLocal = new ThreadLocal<>(); + public static ThreadLocal bufferLocal = new ThreadLocal<>(); + public static Typeface bold() { if (mediumTypeface == null) { // so system Roboto with 500 weight doesn't support Hebrew (but 700 Roboto does) @@ -286,6 +291,7 @@ public static Typeface bold() { public static float density = 1; public static Point displaySize = new Point(); public static float screenRefreshRate = 60; + public static float screenMaxRefreshRate = 60; public static float screenRefreshTime = 1000 / screenRefreshRate; public static int roundMessageSize; public static int roundPlayingMessageSize; @@ -726,7 +732,7 @@ public static void recycleBitmaps(List bitmapToRecycle) { } } - public static boolean isMapsInstalled(BaseFragment baseFragment) { + public static boolean isMapsInstalled(BaseFragment fragment) { return true; } @@ -986,6 +992,61 @@ public void onLayoutChange(View v, int left, int top, int right, int bottom, int }); } + public static String readRes(int rawRes) { + return readRes(null, rawRes); + } + + public static String readRes(File path) { + return readRes(path, 0); + } + + public static String readRes(File path, int rawRes) { + int totalRead = 0; + byte[] readBuffer = readBufferLocal.get(); + if (readBuffer == null) { + readBuffer = new byte[64 * 1024]; + readBufferLocal.set(readBuffer); + } + InputStream inputStream = null; + try { + if (path != null) { + inputStream = new FileInputStream(path); + } else { + inputStream = ApplicationLoader.applicationContext.getResources().openRawResource(rawRes); + } + int readLen; + byte[] buffer = bufferLocal.get(); + if (buffer == null) { + buffer = new byte[4096]; + bufferLocal.set(buffer); + } + while ((readLen = inputStream.read(buffer, 0, buffer.length)) >= 0) { + if (readBuffer.length < totalRead + readLen) { + byte[] newBuffer = new byte[readBuffer.length * 2]; + System.arraycopy(readBuffer, 0, newBuffer, 0, totalRead); + readBuffer = newBuffer; + readBufferLocal.set(readBuffer); + } + if (readLen > 0) { + System.arraycopy(buffer, 0, readBuffer, totalRead, readLen); + totalRead += readLen; + } + } + } catch (Throwable e) { + return null; + } finally { + try { + if (inputStream != null) { + inputStream.close(); + } + } catch (Throwable ignore) { + + } + } + + return new String(readBuffer, 0, totalRead); + } + private static class LinkSpec { String url; int start; @@ -1596,10 +1657,6 @@ public static void createEmptyFile(File f) { } } - public static boolean isGoogleMapsInstalled(final BaseFragment fragment) { - return true; - } - public static int[] toIntArray(List integers) { int[] ret = new int[integers.size()]; for (int i = 0; i < ret.length; i++) { @@ -1923,16 +1980,16 @@ public String getRawType(boolean first) { public String getType() { if (type == 4) { - return LocaleController.getString(R.string.ContactNote); + return getString(R.string.ContactNote); } else if (type == 3) { - return LocaleController.getString(R.string.ContactUrl); + return getString(R.string.ContactUrl); } else if (type == 5) { - return LocaleController.getString(R.string.ContactBirthday); + return getString(R.string.ContactBirthday); } else if (type == 6) { if ("ORG".equalsIgnoreCase(getRawType(true))) { - return LocaleController.getString(R.string.ContactJob); + return getString(R.string.ContactJob); } else { - return LocaleController.getString(R.string.ContactJobTitle); + return getString(R.string.ContactJobTitle); } } int idx = fullData.indexOf(':'); @@ -1957,20 +2014,20 @@ public String getType() { } switch (value) { case "PREF": - value = LocaleController.getString("PhoneMain", R.string.PhoneMain); + value = getString(R.string.PhoneMain); break; case "HOME": - value = LocaleController.getString("PhoneHome", R.string.PhoneHome); + value = getString(R.string.PhoneHome); break; case "MOBILE": case "CELL": - value = LocaleController.getString("PhoneMobile", R.string.PhoneMobile); + value = getString(R.string.PhoneMobile); break; case "OTHER": - value = LocaleController.getString("PhoneOther", R.string.PhoneOther); + value = getString(R.string.PhoneOther); break; case "WORK": - value = LocaleController.getString("PhoneWork", R.string.PhoneWork); + value = getString(R.string.PhoneWork); break; } } @@ -2254,7 +2311,11 @@ public static void setWaitingForCall(boolean value) { if (value) { if (callReceiver == null) { final IntentFilter filter = new IntentFilter(TelephonyManager.ACTION_PHONE_STATE_CHANGED); - ApplicationLoader.applicationContext.registerReceiver(callReceiver = new CallReceiver(), filter); + if (Build.VERSION.SDK_INT >= 33) { + ApplicationLoader.applicationContext.registerReceiver(callReceiver = new CallReceiver(), filter, Context.RECEIVER_NOT_EXPORTED); + } else { + ApplicationLoader.applicationContext.registerReceiver(callReceiver = new CallReceiver(), filter); + } } } else { if (callReceiver != null) { @@ -2496,6 +2557,17 @@ public static void checkDisplaySize(Context context, Configuration newConfigurat display.getMetrics(displayMetrics); display.getSize(displaySize); screenRefreshRate = display.getRefreshRate(); + screenMaxRefreshRate = screenRefreshRate; + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { + float[] rates = display.getSupportedRefreshRates(); + if (rates != null) { + for (int i = 0; i < rates.length; ++i) { + if (rates[i] > screenMaxRefreshRate) { + screenMaxRefreshRate = rates[i]; + } + } + } + } screenRefreshTime = 1000 / screenRefreshRate; } } @@ -2532,6 +2604,35 @@ public static void checkDisplaySize(Context context, Configuration newConfigurat } } + public static void setPreferredMaxRefreshRate(Window window) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return; + if (window == null) return; + final WindowManager wm = window.getWindowManager(); + if (wm == null) return; + WindowManager.LayoutParams params = window.getAttributes(); + params.preferredRefreshRate = screenMaxRefreshRate; + try { + wm.updateViewLayout(window.getDecorView(), params); + } catch (Exception e) { + FileLog.e(e); + } + } + + public static void setPreferredMaxRefreshRate(WindowManager wm, View windowView, WindowManager.LayoutParams params) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return; + if (wm == null) return; + if (Math.abs(params.preferredRefreshRate - screenMaxRefreshRate) > 0.2) { + params.preferredRefreshRate = screenMaxRefreshRate; + if (windowView.isAttachedToWindow()) { + try { + wm.updateViewLayout(windowView, params); + } catch (Exception e) { + FileLog.e(e); + } + } + } + } + public static double fixLocationCoord(double value) { return ((long) (value * 1000000)) / 1000000.0; } @@ -3456,6 +3557,9 @@ public static CharSequence generateSearchName(String name, String name2, String } else if (name2 != null && name2.length() != 0) { wholeString += " " + name2; } + if (wholeString == null) { + return ""; + } wholeString = wholeString.trim(); String lower = " " + wholeString.toLowerCase(); @@ -3820,9 +3924,8 @@ public static void openDocument(MessageObject message, Activity activity, BaseFr colorsReplacement.put("info2.**", parentFragment.getThemedColor(Theme.key_dialogTopBackground)); builder.setTopAnimation(R.raw.not_available, AlertsCreator.NEW_DENY_DIALOG_TOP_ICON_SIZE, false, parentFragment.getThemedColor(Theme.key_dialogTopBackground), colorsReplacement); builder.setTopAnimationIsNew(true); -// builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); - builder.setMessage(LocaleController.getString("IncorrectTheme", R.string.IncorrectTheme)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setMessage(getString(R.string.IncorrectTheme)); + builder.setPositiveButton(getString(R.string.OK), null); parentFragment.showDialog(builder.create()); } } else { @@ -3871,8 +3974,7 @@ public static void openDocument(MessageObject message, Activity activity, BaseFr colorsReplacement.put("info2.**", parentFragment.getThemedColor(Theme.key_dialogTopBackground)); builder.setTopAnimation(R.raw.not_available, AlertsCreator.NEW_DENY_DIALOG_TOP_ICON_SIZE, false, parentFragment.getThemedColor(Theme.key_dialogTopBackground), colorsReplacement); builder.setTopAnimationIsNew(true); -// builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(getString(R.string.OK), null); builder.setMessage(LocaleController.formatString("NoHandleAppInstalled", R.string.NoHandleAppInstalled, message.getDocument().mime_type)); if (parentFragment != null) { parentFragment.showDialog(builder.create()); @@ -4235,7 +4337,7 @@ public static void showProxyAlert(Context activity, final String address, final linearLayout.setOrientation(LinearLayout.VERTICAL); if (!TextUtils.isEmpty(secret)) { TextView titleTextView = new TextView(activity); - titleTextView.setText(LocaleController.getString("UseProxyTelegramInfo2", R.string.UseProxyTelegramInfo2)); + titleTextView.setText(getString(R.string.UseProxyTelegramInfo2)); titleTextView.setTextColor(Theme.getColor(Theme.key_dialogTextGray4)); titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); titleTextView.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL); @@ -4250,22 +4352,22 @@ public static void showProxyAlert(Context activity, final String address, final String detail = null; if (a == 0) { text = address; - detail = LocaleController.getString("UseProxyAddress", R.string.UseProxyAddress); + detail = getString("UseProxyAddress", R.string.UseProxyAddress); } else if (a == 1) { text = "" + port; - detail = LocaleController.getString("UseProxyPort", R.string.UseProxyPort); + detail = getString("UseProxyPort", R.string.UseProxyPort); } else if (a == 2) { text = secret; - detail = LocaleController.getString("UseProxySecret", R.string.UseProxySecret); + detail = getString("UseProxySecret", R.string.UseProxySecret); } else if (a == 3) { text = user; - detail = LocaleController.getString("UseProxyUsername", R.string.UseProxyUsername); + detail = getString("UseProxyUsername", R.string.UseProxyUsername); } else if (a == 4) { text = password; - detail = LocaleController.getString("UseProxyPassword", R.string.UseProxyPassword); + detail = getString("UseProxyPassword", R.string.UseProxyPassword); } else if (a == 5) { - text = LocaleController.getString(R.string.ProxyBottomSheetChecking); - detail = LocaleController.getString(R.string.ProxyStatus); + text = getString(R.string.ProxyBottomSheetChecking); + detail = getString(R.string.ProxyStatus); } if (TextUtils.isEmpty(text)) { continue; @@ -4309,15 +4411,15 @@ protected void onDetachedFromWindow() { try { ConnectionsManager.getInstance(UserConfig.selectedAccount).checkProxy(address, Integer.parseInt(port), user, password, secret, time -> AndroidUtilities.runOnUIThread(() -> { if (time == -1) { - cell.getTextView().setText(LocaleController.getString(R.string.Unavailable)); + cell.getTextView().setText(getString(R.string.Unavailable)); cell.getTextView().setTextColor(Theme.getColor(Theme.key_text_RedRegular)); } else { - cell.getTextView().setText(LocaleController.getString(R.string.Available) + ", " + LocaleController.formatString(R.string.Ping, time)); + cell.getTextView().setText(getString(R.string.Available) + ", " + LocaleController.formatString(R.string.Ping, time)); cell.getTextView().setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGreenText)); } })); } catch (NumberFormatException ignored) { - cell.getTextView().setText(LocaleController.getString(R.string.Unavailable)); + cell.getTextView().setText(getString(R.string.Unavailable)); cell.getTextView().setTextColor(Theme.getColor(Theme.key_text_RedRegular)); } } @@ -4328,7 +4430,7 @@ protected void onDetachedFromWindow() { linearLayout.addView(pickerBottomLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.BOTTOM)); pickerBottomLayout.cancelButton.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); pickerBottomLayout.cancelButton.setTextColor(Theme.getColor(Theme.key_dialogTextBlue2)); - pickerBottomLayout.cancelButton.setText(LocaleController.getString("Cancel", R.string.Cancel).toUpperCase()); + pickerBottomLayout.cancelButton.setText(getString(R.string.Cancel).toUpperCase()); pickerBottomLayout.cancelButton.setOnClickListener(view -> dismissRunnable.run()); pickerBottomLayout.doneButtonTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlue2)); @@ -4977,10 +5079,10 @@ public void run(long time) { } } if (!bulletinSent) { - NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.showBulletin, Bulletin.TYPE_SUCCESS, LocaleController.getString(R.string.ProxyAddedSuccess)); + NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.showBulletin, Bulletin.TYPE_SUCCESS, getString(R.string.ProxyAddedSuccess)); } } else { - NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.showBulletin, Bulletin.TYPE_SUCCESS, LocaleController.getString(R.string.ProxyAddedSuccess)); + NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.showBulletin, Bulletin.TYPE_SUCCESS, getString(R.string.ProxyAddedSuccess)); } dismissRunnable.run(); @@ -6491,7 +6593,7 @@ public static boolean isHonor() { } public static CharSequence withLearnMore(CharSequence text, Runnable onClick) { - SpannableString link = new SpannableString(LocaleController.getString(R.string.LearnMoreArrow)); + SpannableString link = new SpannableString(getString(R.string.LearnMoreArrow)); link.setSpan(new ClickableSpan() { @Override public void onClick(@NonNull View widget) { @@ -6679,4 +6781,28 @@ public static boolean isWebAppLink(String url) { return false; } + public static CharSequence removeSpans(CharSequence text, Class spanClass) { + if (!(text instanceof Spannable)) return text; + final Spannable spannable = (Spannable) text; + final Object[] spans = spannable.getSpans(0, spannable.length(), spanClass); + for (int i = 0; i < spans.length; ++i) { + spannable.removeSpan(spans[i]); + } + return spannable; + } + + public static void notifyDataSetChanged(RecyclerView listView) { + if (listView == null) return; + if (listView.getAdapter() == null) return; + if (listView.isComputingLayout()) { + listView.post(() -> { + if (listView.getAdapter() != null) { + listView.getAdapter().notifyDataSetChanged(); + } + }); + } else { + listView.getAdapter().notifyDataSetChanged(); + } + } + } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java b/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java index 35801f40e0..b98f0edad6 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java @@ -299,8 +299,6 @@ public void onCreate() { super.onCreate(); - AnalyticsHelper.start(this); - if (BuildVars.LOGS_ENABLED) { FileLog.d("app start time = " + (startTime = SystemClock.elapsedRealtime())); try { @@ -321,6 +319,9 @@ public void onCreate() { } catch (UnsatisfiedLinkError error) { throw new RuntimeException("can't load native libraries " + Build.CPU_ABI + " lookup folder " + NativeLoader.getAbiFolder()); } + + AnalyticsHelper.start(this); + new ForegroundDetector(this) { @Override public void onActivityStarted(Activity activity) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/BillingController.java b/TMessagesProj/src/main/java/org/telegram/messenger/BillingController.java index 407b28a7cd..9b3eaf68d7 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/BillingController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/BillingController.java @@ -332,7 +332,8 @@ private void consumeGiftPurchase(Purchase purchase, TLRPC.InputStorePaymentPurpo || purpose instanceof TLRPC.TL_inputStorePaymentPremiumGiftCode || purpose instanceof TLRPC.TL_inputStorePaymentStarsTopup || purpose instanceof TLRPC.TL_inputStorePaymentStarsGift - || purpose instanceof TLRPC.TL_inputStorePaymentPremiumGiveaway) { + || purpose instanceof TLRPC.TL_inputStorePaymentPremiumGiveaway + || purpose instanceof TLRPC.TL_inputStorePaymentStarsGiveaway) { billingClient.consumeAsync( ConsumeParams.newBuilder() .setPurchaseToken(purchase.getPurchaseToken()) diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/CacheByChatsController.java b/TMessagesProj/src/main/java/org/telegram/messenger/CacheByChatsController.java index c182fab7da..c3f23d1782 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/CacheByChatsController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/CacheByChatsController.java @@ -62,7 +62,7 @@ public static String getKeepMediaString(int keepMedia) { } else if (keepMedia == KEEP_MEDIA_ONE_MONTH) { return LocaleController.formatPluralString("Months", 1); } - return LocaleController.getString("AutoDeleteMediaNever", R.string.AutoDeleteMediaNever); + return LocaleController.getString(R.string.AutoDeleteMediaNever); } public static long getDaysInSeconds(int keepMedia) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ChannelBoostsController.java b/TMessagesProj/src/main/java/org/telegram/messenger/ChannelBoostsController.java index eed408b9e3..aa05aed37b 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ChannelBoostsController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ChannelBoostsController.java @@ -52,7 +52,7 @@ public void getBoostsStats(long dialogId, Consumer 0) { stringBuilder.append(", "); } - stringBuilder.append(LocaleController.getString("SendMediaPermissionVideos", R.string.SendMediaPermissionVideos)); + stringBuilder.append(LocaleController.getString(R.string.SendMediaPermissionVideos)); } if (ChatObject.canSendStickers(chat)) { if (stringBuilder.length() > 0) { stringBuilder.append(", "); } - stringBuilder.append(LocaleController.getString("SendMediaPermissionStickersGifs", R.string.SendMediaPermissionStickersGifs)); + stringBuilder.append(LocaleController.getString(R.string.SendMediaPermissionStickersGifs)); } if (ChatObject.canSendMusic(chat)) { if (stringBuilder.length() > 0) { stringBuilder.append(", "); } - stringBuilder.append(LocaleController.getString("SendMediaPermissionMusic", R.string.SendMediaPermissionMusic)); + stringBuilder.append(LocaleController.getString(R.string.SendMediaPermissionMusic)); } if (ChatObject.canSendDocument(chat)) { if (stringBuilder.length() > 0) { stringBuilder.append(", "); } - stringBuilder.append(LocaleController.getString("SendMediaPermissionFiles", R.string.SendMediaPermissionFiles)); + stringBuilder.append(LocaleController.getString(R.string.SendMediaPermissionFiles)); } if (ChatObject.canSendVoice(chat)) { if (stringBuilder.length() > 0) { stringBuilder.append(", "); } - stringBuilder.append(LocaleController.getString("SendMediaPermissionVoice", R.string.SendMediaPermissionVoice)); + stringBuilder.append(LocaleController.getString(R.string.SendMediaPermissionVoice)); } if (ChatObject.canSendRoundVideo(chat)) { if (stringBuilder.length() > 0) { stringBuilder.append(", "); } - stringBuilder.append(LocaleController.getString("SendMediaPermissionRound", R.string.SendMediaPermissionRound)); + stringBuilder.append(LocaleController.getString(R.string.SendMediaPermissionRound)); } if (ChatObject.canSendEmbed(chat)) { if (stringBuilder.length() > 0) { stringBuilder.append(", "); } - stringBuilder.append(LocaleController.getString("SendMediaEmbededLinks", R.string.SendMediaEmbededLinks)); + stringBuilder.append(LocaleController.getString(R.string.SendMediaEmbededLinks)); } return stringBuilder.toString(); @@ -2113,7 +2113,7 @@ public static boolean isPublic(TLRPC.Chat chat) { public static String getRestrictedErrorText(TLRPC.Chat chat, int action) { if (action == ACTION_SEND_GIFS) { if (chat == null || ChatObject.isActionBannedByDefault(chat, action)) { - return LocaleController.getString("GlobalAttachGifRestricted", R.string.GlobalAttachGifRestricted); + return LocaleController.getString(R.string.GlobalAttachGifRestricted); } else if (AndroidUtilities.isBannedForever(chat.banned_rights)) { return LocaleController.formatString("AttachGifRestrictedForever", R.string.AttachGifRestrictedForever); } else { @@ -2121,7 +2121,7 @@ public static String getRestrictedErrorText(TLRPC.Chat chat, int action) { } } else if (action == ACTION_SEND_STICKERS) { if (chat == null || ChatObject.isActionBannedByDefault(chat, action)) { - return LocaleController.getString("GlobalAttachStickersRestricted", R.string.GlobalAttachStickersRestricted); + return LocaleController.getString(R.string.GlobalAttachStickersRestricted); } else if (AndroidUtilities.isBannedForever(chat.banned_rights)) { return LocaleController.formatString("AttachStickersRestrictedForever", R.string.AttachStickersRestrictedForever); } else { @@ -2129,7 +2129,7 @@ public static String getRestrictedErrorText(TLRPC.Chat chat, int action) { } } else if (action == ACTION_SEND_PHOTO) { if (chat == null || ChatObject.isActionBannedByDefault(chat, action)) { - return LocaleController.getString("GlobalAttachPhotoRestricted", R.string.GlobalAttachPhotoRestricted); + return LocaleController.getString(R.string.GlobalAttachPhotoRestricted); } else if (AndroidUtilities.isBannedForever(chat.banned_rights)) { return LocaleController.formatString("AttachPhotoRestrictedForever", R.string.AttachPhotoRestrictedForever); } else { @@ -2137,7 +2137,7 @@ public static String getRestrictedErrorText(TLRPC.Chat chat, int action) { } } else if (action == ACTION_SEND_VIDEO) { if (chat == null || ChatObject.isActionBannedByDefault(chat, action)) { - return LocaleController.getString("GlobalAttachVideoRestricted", R.string.GlobalAttachVideoRestricted); + return LocaleController.getString(R.string.GlobalAttachVideoRestricted); } else if (AndroidUtilities.isBannedForever(chat.banned_rights)) { return LocaleController.formatString("AttachVideoRestrictedForever", R.string.AttachVideoRestrictedForever); } else { @@ -2145,7 +2145,7 @@ public static String getRestrictedErrorText(TLRPC.Chat chat, int action) { } } else if (action == ACTION_SEND_DOCUMENTS) { if (chat == null || ChatObject.isActionBannedByDefault(chat, action)) { - return LocaleController.getString("GlobalAttachDocumentsRestricted", R.string.GlobalAttachDocumentsRestricted); + return LocaleController.getString(R.string.GlobalAttachDocumentsRestricted); } else if (AndroidUtilities.isBannedForever(chat.banned_rights)) { return LocaleController.formatString("AttachDocumentsRestrictedForever", R.string.AttachDocumentsRestrictedForever); } else { @@ -2153,7 +2153,7 @@ public static String getRestrictedErrorText(TLRPC.Chat chat, int action) { } } else if (action == ACTION_SEND_MEDIA) { if (chat == null || ChatObject.isActionBannedByDefault(chat, action)) { - return LocaleController.getString("GlobalAttachMediaRestricted", R.string.GlobalAttachMediaRestricted); + return LocaleController.getString(R.string.GlobalAttachMediaRestricted); } else if (AndroidUtilities.isBannedForever(chat.banned_rights)) { return LocaleController.formatString("AttachMediaRestrictedForever", R.string.AttachMediaRestrictedForever); } else { @@ -2161,7 +2161,7 @@ public static String getRestrictedErrorText(TLRPC.Chat chat, int action) { } } else if (action == ACTION_SEND_MUSIC) { if (chat == null || ChatObject.isActionBannedByDefault(chat, action)) { - return LocaleController.getString("GlobalAttachAudioRestricted", R.string.GlobalAttachAudioRestricted); + return LocaleController.getString(R.string.GlobalAttachAudioRestricted); } else if (AndroidUtilities.isBannedForever(chat.banned_rights)) { return LocaleController.formatString("AttachAudioRestrictedForever", R.string.AttachAudioRestrictedForever); } else { @@ -2169,7 +2169,7 @@ public static String getRestrictedErrorText(TLRPC.Chat chat, int action) { } } else if (action == ACTION_SEND_PLAIN) { if (chat == null || ChatObject.isActionBannedByDefault(chat, action)) { - return LocaleController.getString("GlobalAttachPlainRestricted", R.string.GlobalAttachPlainRestricted); + return LocaleController.getString(R.string.GlobalAttachPlainRestricted); } else if (AndroidUtilities.isBannedForever(chat.banned_rights)) { return LocaleController.formatString("AttachPlainRestrictedForever", R.string.AttachPlainRestrictedForever); } else { @@ -2177,7 +2177,7 @@ public static String getRestrictedErrorText(TLRPC.Chat chat, int action) { } } else if (action == ACTION_SEND_ROUND) { if (chat == null || ChatObject.isActionBannedByDefault(chat, action)) { - return LocaleController.getString("GlobalAttachRoundRestricted", R.string.GlobalAttachRoundRestricted); + return LocaleController.getString(R.string.GlobalAttachRoundRestricted); } else if (AndroidUtilities.isBannedForever(chat.banned_rights)) { return LocaleController.formatString("AttachRoundRestrictedForever", R.string.AttachRoundRestrictedForever); } else { @@ -2185,7 +2185,7 @@ public static String getRestrictedErrorText(TLRPC.Chat chat, int action) { } } else if (action == ACTION_SEND_VOICE) { if (chat == null || ChatObject.isActionBannedByDefault(chat, action)) { - return LocaleController.getString("GlobalAttachVoiceRestricted", R.string.GlobalAttachVoiceRestricted); + return LocaleController.getString(R.string.GlobalAttachVoiceRestricted); } else if (AndroidUtilities.isBannedForever(chat.banned_rights)) { return LocaleController.formatString("AttachVoiceRestrictedForever", R.string.AttachVoiceRestrictedForever); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ChatsWidgetService.java b/TMessagesProj/src/main/java/org/telegram/messenger/ChatsWidgetService.java index 875e2beaaf..b1d6f99977 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ChatsWidgetService.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ChatsWidgetService.java @@ -81,11 +81,11 @@ public int getCount() { public RemoteViews getViewAt(int position) { if (deleted) { RemoteViews rv = new RemoteViews(mContext.getPackageName(), R.layout.widget_deleted); - rv.setTextViewText(R.id.widget_deleted_text, LocaleController.getString("WidgetLoggedOff", R.string.WidgetLoggedOff)); + rv.setTextViewText(R.id.widget_deleted_text, LocaleController.getString(R.string.WidgetLoggedOff)); return rv; } else if (position >= dids.size()) { RemoteViews rv = new RemoteViews(mContext.getPackageName(), R.layout.widget_edititem); - rv.setTextViewText(R.id.widget_edititem_text, LocaleController.getString("TapToEditWidget", R.string.TapToEditWidget)); + rv.setTextViewText(R.id.widget_edititem_text, LocaleController.getString(R.string.TapToEditWidget)); Bundle extras = new Bundle(); extras.putInt("appWidgetId", appWidgetId); extras.putInt("appWidgetType", EditWidgetActivity.TYPE_CHATS); @@ -105,11 +105,11 @@ public RemoteViews getViewAt(int position) { user = accountInstance.getMessagesController().getUser(id); if (user != null) { if (UserObject.isUserSelf(user)) { - name = LocaleController.getString("SavedMessages", R.string.SavedMessages); + name = LocaleController.getString(R.string.SavedMessages); } else if (UserObject.isReplyUser(user)) { - name = LocaleController.getString("RepliesTitle", R.string.RepliesTitle); + name = LocaleController.getString(R.string.RepliesTitle); } else if (UserObject.isDeleted(user)) { - name = LocaleController.getString("HiddenName", R.string.HiddenName); + name = LocaleController.getString(R.string.HiddenName); } else { name = ContactsController.formatName(user.first_name, user.last_name); } @@ -201,7 +201,7 @@ public RemoteViews getViewAt(int position) { boolean needEmoji = true; if (chat != null && fromChat == null && (!ChatObject.isChannel(chat) || ChatObject.isMegagroup(chat))) { if (message.isOutOwner()) { - messageNameString = LocaleController.getString("FromYou", R.string.FromYou); + messageNameString = LocaleController.getString(R.string.FromYou); } else if (fromUser != null) { messageNameString = UserObject.getFirstName(fromUser).replace("\n", ""); } else { @@ -277,9 +277,9 @@ public RemoteViews getViewAt(int position) { messageString = stringBuilder; } else { if (message.messageOwner.media instanceof TLRPC.TL_messageMediaPhoto && message.messageOwner.media.photo instanceof TLRPC.TL_photoEmpty && message.messageOwner.media.ttl_seconds != 0) { - messageString = LocaleController.getString("AttachPhotoExpired", R.string.AttachPhotoExpired); + messageString = LocaleController.getString(R.string.AttachPhotoExpired); } else if (message.messageOwner.media instanceof TLRPC.TL_messageMediaDocument && message.messageOwner.media.document instanceof TLRPC.TL_documentEmpty && message.messageOwner.media.ttl_seconds != 0) { - messageString = LocaleController.getString("AttachVideoExpired", R.string.AttachVideoExpired); + messageString = LocaleController.getString(R.string.AttachVideoExpired); } else if (message.caption != null) { String emoji; if (message.isVideo()) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/CodeHighlighting.java b/TMessagesProj/src/main/java/org/telegram/messenger/CodeHighlighting.java index 00644f532b..68f7bafdeb 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/CodeHighlighting.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/CodeHighlighting.java @@ -129,7 +129,7 @@ public void updateDrawState(TextPaint tp) { } } - // setting 100-300 spans is hard + // setting 100-300 spans is slow // fast way to fix this is to do it on another thread, and not give access to data until it's finished processing public static class LockedSpannableString extends SpannableString { public LockedSpannableString(CharSequence text) { @@ -447,19 +447,24 @@ private static void matchGrammar(String text, LinkedList tokenList, TokenPattern } private static Match matchPattern(TokenPattern pattern, int pos, String text) { - Matcher matcher = pattern.pattern.getPattern().matcher(text); - matcher.region(pos, text.length()); - if (!matcher.find()) { + try { + Matcher matcher = pattern.pattern.getPattern().matcher(text); + matcher.region(pos, text.length()); + if (!matcher.find()) { + return null; + } + Match match = new Match(); + match.index = matcher.start(); + if (pattern.lookbehind && matcher.groupCount() >= 1) { + match.index += matcher.end(1) - matcher.start(1); + } + match.length = matcher.end() - match.index; + match.string = text.substring(match.index, match.index + match.length); + return match; + } catch (Exception e) { + FileLog.e(e); return null; } - Match match = new Match(); - match.index = matcher.start(); - if (pattern.lookbehind && matcher.groupCount() >= 1) { - match.index += matcher.end(1) - matcher.start(1); - } - match.length = matcher.end() - match.index; - match.string = text.substring(match.index, match.index + match.length); - return match; } private static class RematchOptions { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ContactsController.java b/TMessagesProj/src/main/java/org/telegram/messenger/ContactsController.java index 49bbc310f5..7fba8f5030 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ContactsController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ContactsController.java @@ -721,17 +721,17 @@ public HashMap readContactsFromPhoneBook() { if (type == ContactsContract.CommonDataKinds.Phone.TYPE_CUSTOM) { String custom = pCur.getString(3); - contact.phoneTypes.add(custom != null ? custom : LocaleController.getString("PhoneMobile", R.string.PhoneMobile)); + contact.phoneTypes.add(custom != null ? custom : LocaleController.getString(R.string.PhoneMobile)); } else if (type == ContactsContract.CommonDataKinds.Phone.TYPE_HOME) { - contact.phoneTypes.add(LocaleController.getString("PhoneHome", R.string.PhoneHome)); + contact.phoneTypes.add(LocaleController.getString(R.string.PhoneHome)); } else if (type == ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE) { - contact.phoneTypes.add(LocaleController.getString("PhoneMobile", R.string.PhoneMobile)); + contact.phoneTypes.add(LocaleController.getString(R.string.PhoneMobile)); } else if (type == ContactsContract.CommonDataKinds.Phone.TYPE_WORK) { - contact.phoneTypes.add(LocaleController.getString("PhoneWork", R.string.PhoneWork)); + contact.phoneTypes.add(LocaleController.getString(R.string.PhoneWork)); } else if (type == ContactsContract.CommonDataKinds.Phone.TYPE_MAIN) { - contact.phoneTypes.add(LocaleController.getString("PhoneMain", R.string.PhoneMain)); + contact.phoneTypes.add(LocaleController.getString(R.string.PhoneMain)); } else { - contact.phoneTypes.add(LocaleController.getString("PhoneOther", R.string.PhoneOther)); + contact.phoneTypes.add(LocaleController.getString(R.string.PhoneOther)); } shortContacts.put(shortNumber, contact); } @@ -879,7 +879,7 @@ public HashMap readContactsFromPhoneBook() { contact.phones.add(phoneBookContact.phone); contact.shortPhones.add(shortNumber); contact.phoneDeleted.add(0); - contact.phoneTypes.add(LocaleController.getString("PhoneOther", R.string.PhoneOther)); + contact.phoneTypes.add(LocaleController.getString(R.string.PhoneOther)); if (contactsMap == null) { contactsMap = new HashMap<>(); } @@ -2987,7 +2987,7 @@ public static String formatName(String firstName, String lastName) { @NonNull public static String formatName(String firstName, String lastName, int maxLength) { /*if ((firstName == null || firstName.length() == 0) && (lastName == null || lastName.length() == 0)) { - return LocaleController.getString("HiddenName", R.string.HiddenName); + return LocaleController.getString(R.string.HiddenName); }*/ if (firstName != null) { firstName = firstName.trim(); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ContactsWidgetService.java b/TMessagesProj/src/main/java/org/telegram/messenger/ContactsWidgetService.java index 9e564ee544..a6e4039f68 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ContactsWidgetService.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ContactsWidgetService.java @@ -79,11 +79,11 @@ public int getCount() { public RemoteViews getViewAt(int position) { if (deleted) { RemoteViews rv = new RemoteViews(mContext.getPackageName(), R.layout.widget_deleted); - rv.setTextViewText(R.id.widget_deleted_text, LocaleController.getString("WidgetLoggedOff", R.string.WidgetLoggedOff)); + rv.setTextViewText(R.id.widget_deleted_text, LocaleController.getString(R.string.WidgetLoggedOff)); return rv; } else if (position >= getCount() - 1) { RemoteViews rv = new RemoteViews(mContext.getPackageName(), R.layout.widget_edititem); - rv.setTextViewText(R.id.widget_edititem_text, LocaleController.getString("TapToEditWidgetShort", R.string.TapToEditWidgetShort)); + rv.setTextViewText(R.id.widget_edititem_text, LocaleController.getString(R.string.TapToEditWidgetShort)); Bundle extras = new Bundle(); extras.putInt("appWidgetId", appWidgetId); extras.putInt("appWidgetType", EditWidgetActivity.TYPE_CONTACTS); @@ -110,11 +110,11 @@ public RemoteViews getViewAt(int position) { if (DialogObject.isUserDialog(id)) { user = accountInstance.getMessagesController().getUser(id); if (UserObject.isUserSelf(user)) { - name = LocaleController.getString("SavedMessages", R.string.SavedMessages); + name = LocaleController.getString(R.string.SavedMessages); } else if (UserObject.isReplyUser(user)) { - name = LocaleController.getString("RepliesTitle", R.string.RepliesTitle); + name = LocaleController.getString(R.string.RepliesTitle); } else if (UserObject.isDeleted(user)) { - name = LocaleController.getString("HiddenName", R.string.HiddenName); + name = LocaleController.getString(R.string.HiddenName); } else { name = UserObject.getFirstName(user); } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/CustomTabsCopyReceiver.java b/TMessagesProj/src/main/java/org/telegram/messenger/CustomTabsCopyReceiver.java index 8141797d2d..96b2a0b19c 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/CustomTabsCopyReceiver.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/CustomTabsCopyReceiver.java @@ -20,7 +20,7 @@ public void onReceive(Context context, Intent intent) { String url = intent.getDataString(); if (url != null) { AndroidUtilities.addToClipboard(url); - Toast.makeText(context, LocaleController.getString("LinkCopied", R.string.LinkCopied), Toast.LENGTH_SHORT).show(); + Toast.makeText(context, LocaleController.getString(R.string.LinkCopied), Toast.LENGTH_SHORT).show(); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/DatabaseMigrationHelper.java b/TMessagesProj/src/main/java/org/telegram/messenger/DatabaseMigrationHelper.java index 830b1c363f..f00766b6f8 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/DatabaseMigrationHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/DatabaseMigrationHelper.java @@ -1516,6 +1516,12 @@ public static int migrate(MessagesStorage messagesStorage, int version) throws E version = 155; } + if (version == 155) { + database.executeFast("CREATE TABLE popular_bots(uid INTEGER PRIMARY KEY, time INTEGER, offset TEXT);").stepThis().dispose(); + database.executeFast("PRAGMA user_version = 156").stepThis().dispose(); + version = 156; + } + return version; } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/DialogObject.java b/TMessagesProj/src/main/java/org/telegram/messenger/DialogObject.java index c9ad0ca351..f8f64638ea 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/DialogObject.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/DialogObject.java @@ -115,7 +115,7 @@ public static String setDialogPhotoTitle(ImageReceiver imageReceiver, AvatarDraw if (dialog instanceof TLRPC.User) { TLRPC.User user = (TLRPC.User) dialog; if (UserObject.isReplyUser(user)) { - title = LocaleController.getString("RepliesTitle", R.string.RepliesTitle); + title = LocaleController.getString(R.string.RepliesTitle); if (avatarDrawable != null) { avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_REPLIES); } @@ -123,7 +123,7 @@ public static String setDialogPhotoTitle(ImageReceiver imageReceiver, AvatarDraw imageReceiver.setForUserOrChat(null, avatarDrawable); } } else if (UserObject.isUserSelf(user)) { - title = LocaleController.getString("SavedMessages", R.string.SavedMessages); + title = LocaleController.getString(R.string.SavedMessages); if (avatarDrawable != null) { avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_SAVED); } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/DownloadController.java b/TMessagesProj/src/main/java/org/telegram/messenger/DownloadController.java index 4bc86d44a9..c18fc23206 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/DownloadController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/DownloadController.java @@ -14,6 +14,7 @@ import android.content.IntentFilter; import android.content.SharedPreferences; import android.net.ConnectivityManager; +import android.os.Build; import android.util.Pair; import android.util.SparseArray; @@ -32,6 +33,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Locale; +import java.util.concurrent.ConcurrentHashMap; import cn.hutool.core.util.StrUtil; import tw.nekomimi.nekogram.NekoConfig; @@ -72,7 +74,7 @@ public interface FileDownloadProgressListener { private HashMap>> loadingFileObservers = new HashMap<>(); private HashMap> loadingFileMessagesObservers = new HashMap<>(); - private SparseArray observersByTag = new SparseArray<>(); + private ConcurrentHashMap observersByTag = new ConcurrentHashMap<>(); private boolean listenerInProgress = false; private HashMap addLaterArray = new HashMap<>(); private ArrayList deleteLaterArray = new ArrayList<>(); @@ -80,11 +82,11 @@ public interface FileDownloadProgressListener { private boolean loadingAutoDownloadConfig; - private LongSparseArray typingTimes = new LongSparseArray<>(); + private ConcurrentHashMap typingTimes = new ConcurrentHashMap<>(); public final ArrayList downloadingFiles = new ArrayList<>(); public final ArrayList recentDownloadingFiles = new ArrayList<>(); - public final SparseArray unviewedDownloads = new SparseArray<>(); + public final ConcurrentHashMap unviewedDownloads = new ConcurrentHashMap<>(); public static class Preset { public int[] mask = new int[4]; @@ -339,7 +341,11 @@ public void onReceive(Context context, Intent intent) { } }; IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); - ApplicationLoader.applicationContext.registerReceiver(networkStateReceiver, filter); + if (Build.VERSION.SDK_INT >= 33) { + ApplicationLoader.applicationContext.registerReceiver(networkStateReceiver, filter, Context.RECEIVER_NOT_EXPORTED); + } else { + ApplicationLoader.applicationContext.registerReceiver(networkStateReceiver, filter); + } if (getUserConfig().isClientActivated()) { checkAutodownloadSettings(); @@ -658,6 +664,24 @@ public boolean canDownloadMedia(int type, long size) { return (type == AUTODOWNLOAD_TYPE_PHOTO || size != 0 && size <= maxSize) && (type == AUTODOWNLOAD_TYPE_AUDIO || (mask & type) != 0); } + public int canDownloadMediaType(MessageObject messageObject) { + if (messageObject.type == MessageObject.TYPE_STORY) { + if (!SharedConfig.isAutoplayVideo()) return 0; + TLRPC.TL_messageMediaStory mediaStory = (TLRPC.TL_messageMediaStory) MessageObject.getMedia(messageObject); + TL_stories.StoryItem storyItem = mediaStory.storyItem; + if (storyItem == null || storyItem.media == null || storyItem.media.document == null || !storyItem.isPublic) { + return 0; + } + return 2; + } + if (messageObject.sponsoredMedia != null) { + return 2; + } + if (messageObject.isHiddenSensitive()) + return 0; + return canDownloadMedia(messageObject.messageOwner); + } + public int canDownloadMedia(TLRPC.Message message) { if (message == null || message.media instanceof TLRPC.TL_messageMediaStory) { return canPreloadStories() ? 2 : 0; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java b/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java index f2b0047351..7ca09422cc 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java @@ -49,39 +49,39 @@ public class Emoji { - private static HashMap rects = new HashMap<>(); + private final static HashMap rects = new HashMap<>(); public static int drawImgSize; public static int bigImgSize; private static boolean inited = false; public static Paint placeholderPaint; - private static int[] emojiCounts = new int[]{ - EmojiData.data[0].length, - EmojiData.data[1].length, - EmojiData.data[2].length, - EmojiData.data[3].length, - EmojiData.data[4].length, - EmojiData.data[5].length, - EmojiData.data[6].length, - EmojiData.data[7].length + private final static int[] emojiCounts = new int[]{ + EmojiData.data[0].length, + EmojiData.data[1].length, + EmojiData.data[2].length, + EmojiData.data[3].length, + EmojiData.data[4].length, + EmojiData.data[5].length, + EmojiData.data[6].length, + EmojiData.data[7].length }; private static Bitmap[][] emojiBmp = new Bitmap[8][]; private static boolean[][] loadingEmoji = new boolean[8][]; - public static HashMap emojiUseHistory = new HashMap<>(); - public static ArrayList recentEmoji = new ArrayList<>(); - public static HashMap emojiColor = new HashMap<>(); + public final static HashMap emojiUseHistory = new HashMap<>(); + public final static ArrayList recentEmoji = new ArrayList<>(); + public final static HashMap emojiColor = new HashMap<>(); private static boolean recentEmojiLoaded; - public static Runnable invalidateUiRunnable = () -> NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.emojiLoaded); + public final static Runnable invalidateUiRunnable = () -> NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.emojiLoaded); public static float emojiDrawingYOffset; public static boolean emojiDrawingUseAlpha = true; - private static String[] DEFAULT_RECENT = new String[]{ - "\uD83D\uDE02", "\uD83D\uDE18", "\u2764", "\uD83D\uDE0D", "\uD83D\uDE0A", "\uD83D\uDE01", - "\uD83D\uDC4D", "\u263A", "\uD83D\uDE14", "\uD83D\uDE04", "\uD83D\uDE2D", "\uD83D\uDC8B", - "\uD83D\uDE12", "\uD83D\uDE33", "\uD83D\uDE1C", "\uD83D\uDE48", "\uD83D\uDE09", "\uD83D\uDE03", - "\uD83D\uDE22", "\uD83D\uDE1D", "\uD83D\uDE31", "\uD83D\uDE21", "\uD83D\uDE0F", "\uD83D\uDE1E", - "\uD83D\uDE05", "\uD83D\uDE1A", "\uD83D\uDE4A", "\uD83D\uDE0C", "\uD83D\uDE00", "\uD83D\uDE0B", - "\uD83D\uDE06", "\uD83D\uDC4C", "\uD83D\uDE10", "\uD83D\uDE15" + private final static String[] DEFAULT_RECENT = new String[]{ + "\uD83D\uDE02", "\uD83D\uDE18", "\u2764", "\uD83D\uDE0D", "\uD83D\uDE0A", "\uD83D\uDE01", + "\uD83D\uDC4D", "\u263A", "\uD83D\uDE14", "\uD83D\uDE04", "\uD83D\uDE2D", "\uD83D\uDC8B", + "\uD83D\uDE12", "\uD83D\uDE33", "\uD83D\uDE1C", "\uD83D\uDE48", "\uD83D\uDE09", "\uD83D\uDE03", + "\uD83D\uDE22", "\uD83D\uDE1D", "\uD83D\uDE31", "\uD83D\uDE21", "\uD83D\uDE0F", "\uD83D\uDE1E", + "\uD83D\uDE05", "\uD83D\uDE1A", "\uD83D\uDE4A", "\uD83D\uDE0C", "\uD83D\uDE00", "\uD83D\uDE0B", + "\uD83D\uDE06", "\uD83D\uDC4C", "\uD83D\uDE10", "\uD83D\uDE15" }; private final static int MAX_RECENT_EMOJI_COUNT = 48; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileLoaderPriorityQueue.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileLoaderPriorityQueue.java index 2f8ff93f86..1381d1ebd7 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileLoaderPriorityQueue.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileLoaderPriorityQueue.java @@ -109,17 +109,17 @@ private void checkLoadingOperationInternal() { //operation will not use connections //just skip max++; - if (BuildVars.DEBUG_PRIVATE_VERSION) - FileLog.d("{"+name+"}.checkLoadingOperationInternal: #" + i + " "+operation.getFileName()+" priority="+operation.getPriority()+" isStory="+operation.isStory+" preFinished="+ operation.preFinished+" pauseAllNextOperations=" + pauseAllNextOperations + " max=" + max + " => skip"); +// if (BuildVars.DEBUG_PRIVATE_VERSION) +// FileLog.d("{"+name+"}.checkLoadingOperationInternal: #" + i + " "+operation.getFileName()+" priority="+operation.getPriority()+" isStory="+operation.isStory+" preFinished="+ operation.preFinished+" pauseAllNextOperations=" + pauseAllNextOperations + " max=" + max + " => skip"); continue; } else if (!pauseAllNextOperations && i < max) { - if (BuildVars.DEBUG_PRIVATE_VERSION) - FileLog.d("{"+name+"}.checkLoadingOperationInternal: #" + i + " " +operation.getFileName()+" priority="+operation.getPriority()+" isStory="+operation.isStory+" preFinished="+ operation.preFinished+" pauseAllNextOperations=" + pauseAllNextOperations + " max=" + max + " => start"); +// if (BuildVars.DEBUG_PRIVATE_VERSION) +// FileLog.d("{"+name+"}.checkLoadingOperationInternal: #" + i + " " +operation.getFileName()+" priority="+operation.getPriority()+" isStory="+operation.isStory+" preFinished="+ operation.preFinished+" pauseAllNextOperations=" + pauseAllNextOperations + " max=" + max + " => start"); tmpListOperations.add(operation); activeCount++; } else { - if (BuildVars.DEBUG_PRIVATE_VERSION) - FileLog.d("{"+name+"}.checkLoadingOperationInternal: #" + i + " " +operation.getFileName()+" priority="+operation.getPriority()+" isStory="+operation.isStory+" preFinished="+ operation.preFinished+" pauseAllNextOperations=" + pauseAllNextOperations + " max=" + max + " => pause"); +// if (BuildVars.DEBUG_PRIVATE_VERSION) +// FileLog.d("{"+name+"}.checkLoadingOperationInternal: #" + i + " " +operation.getFileName()+" priority="+operation.getPriority()+" isStory="+operation.isStory+" preFinished="+ operation.preFinished+" pauseAllNextOperations=" + pauseAllNextOperations + " max=" + max + " => pause"); if (operation.wasStarted()) { operation.pause(); } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java index 60b8dbfa20..d275934d02 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java @@ -86,7 +86,7 @@ public FileLog() { private static HashSet excludeRequests; public static void dumpResponseAndRequest(int account, TLObject request, TLObject response, TLRPC.TL_error error, long requestMsgId, long startRequestTimeInMillis, int requestToken) { - if (!BuildVars.DEBUG_PRIVATE_VERSION || !BuildVars.LOGS_ENABLED || request == null) { + if (false && (!BuildVars.DEBUG_PRIVATE_VERSION || !BuildVars.LOGS_ENABLED || request == null)) { return; } String requestSimpleName = request.getClass().getSimpleName(); @@ -130,7 +130,7 @@ public static void dumpResponseAndRequest(int account, TLObject request, TLObjec } public static void dumpUnparsedMessage(TLObject message, long messageId, int account) { - if (!BuildVars.DEBUG_PRIVATE_VERSION || !BuildVars.LOGS_ENABLED || message == null) { + if (false && (!BuildVars.DEBUG_PRIVATE_VERSION || !BuildVars.LOGS_ENABLED || message == null)) { return; } try { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/GooglePushListenerServiceProvider.java b/TMessagesProj/src/main/java/org/telegram/messenger/GooglePushListenerServiceProvider.java index 0c70b0f375..e4f9467ee9 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/GooglePushListenerServiceProvider.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/GooglePushListenerServiceProvider.java @@ -5,6 +5,7 @@ import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GoogleApiAvailability; +import com.google.firebase.FirebaseApp; import com.google.firebase.messaging.FirebaseMessaging; import org.telegram.messenger.ApplicationLoader; @@ -45,6 +46,7 @@ public void onRequestPushToken() { Utilities.globalQueue.postRunnable(() -> { try { SharedConfig.pushStringGetTimeStart = SystemClock.elapsedRealtime(); + FirebaseApp.initializeApp(ApplicationLoader.applicationContext); FirebaseMessaging.getInstance().getToken() .addOnCompleteListener(task -> { SharedConfig.pushStringGetTimeEnd = SystemClock.elapsedRealtime(); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ILocationServiceProvider.java b/TMessagesProj/src/main/java/org/telegram/messenger/ILocationServiceProvider.java index 1a783d5ae7..ea53f0a895 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ILocationServiceProvider.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ILocationServiceProvider.java @@ -4,8 +4,10 @@ import android.location.Location; import android.os.Bundle; +import androidx.annotation.Keep; import androidx.core.util.Consumer; +@Keep public interface ILocationServiceProvider { int PRIORITY_HIGH_ACCURACY = 0, PRIORITY_BALANCED_POWER_ACCURACY = 1, diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/IMapsProvider.java b/TMessagesProj/src/main/java/org/telegram/messenger/IMapsProvider.java index c8dfa9189b..081060600d 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/IMapsProvider.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/IMapsProvider.java @@ -10,12 +10,12 @@ import android.view.MotionEvent; import android.view.View; +import androidx.annotation.Keep; import androidx.core.util.Consumer; import java.util.List; -import tw.nekomimi.nekogram.NekoConfig; - +@Keep public interface IMapsProvider { int MAP_TYPE_NORMAL = 0, MAP_TYPE_SATELLITE = 1, diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java index 12326cc155..1c06bdb390 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java @@ -53,6 +53,7 @@ import org.telegram.ui.Components.RLottieDrawable; import org.telegram.ui.Components.SlotsDrawable; import org.telegram.ui.Components.ThemePreviewDrawable; +import org.telegram.ui.web.WebInstantView; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; @@ -1168,36 +1169,6 @@ public void run() { secureDocumentHash = null; } boolean canDeleteFile = true; - boolean useNativeWebpLoader = false; - - if (Build.VERSION.SDK_INT < 19) { - RandomAccessFile randomAccessFile = null; - try { - randomAccessFile = new RandomAccessFile(cacheFileFinal, "r"); - byte[] bytes; - if (cacheImage.type == ImageReceiver.TYPE_THUMB) { - bytes = headerThumb; - } else { - bytes = header; - } - randomAccessFile.readFully(bytes, 0, bytes.length); - String str = new String(bytes).toLowerCase(); - str = str.toLowerCase(); - if (str.startsWith("riff") && str.endsWith("webp")) { - useNativeWebpLoader = true; - } - } catch (Exception e) { - FileLog.e(e); - } finally { - if (randomAccessFile != null) { - try { - randomAccessFile.close(); - } catch (Exception e) { - FileLog.e(e); - } - } - } - } String mediaThumbPath = null; if (cacheImage.imageLocation.path != null) { @@ -1258,7 +1229,7 @@ public void run() { } else if (cacheImage.filter.contains("F")) { force8888 = false; } - if (!useNativeWebpLoader && w_filter != 0 && h_filter != 0) { + if (w_filter != 0 && h_filter != 0) { opts.inJustDecodeBounds = true; if (mediaId != null && mediaThumbPath == null) { @@ -1365,55 +1336,42 @@ public void run() { } } - if (useNativeWebpLoader) { - RandomAccessFile file = new RandomAccessFile(cacheFileFinal, "r"); - ByteBuffer buffer = file.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, cacheFileFinal.length()); - - BitmapFactory.Options bmOptions = new BitmapFactory.Options(); - bmOptions.inJustDecodeBounds = true; - Utilities.loadWebpImage(null, buffer, buffer.limit(), bmOptions, true); - image = Bitmaps.createBitmap(bmOptions.outWidth, bmOptions.outHeight, Bitmap.Config.ARGB_8888); - - Utilities.loadWebpImage(image, buffer, buffer.limit(), null, !opts.inPurgeable); - file.close(); - } else { - if (opts.inPurgeable || secureDocumentKey != null) { - RandomAccessFile f = new RandomAccessFile(cacheFileFinal, "r"); - int len = (int) f.length(); - int offset = 0; - byte[] bytesThumb = bytesThumbLocal.get(); - byte[] data = bytesThumb != null && bytesThumb.length >= len ? bytesThumb : null; - if (data == null) { - bytesThumb = data = new byte[len]; - bytesThumbLocal.set(bytesThumb); - } - f.readFully(data, 0, len); - f.close(); - boolean error = false; - if (secureDocumentKey != null) { - EncryptedFileInputStream.decryptBytesWithKeyFile(data, 0, len, secureDocumentKey); - byte[] hash = Utilities.computeSHA256(data, 0, len); - if (secureDocumentHash == null || !Arrays.equals(hash, secureDocumentHash)) { - error = true; - } - offset = (data[0] & 0xff); - len -= offset; - } else if (inEncryptedFile) { - EncryptedFileInputStream.decryptBytesWithKeyFile(data, 0, len, cacheImage.encryptionKeyPath); - } - if (!error) { - image = BitmapFactory.decodeByteArray(data, offset, len, opts); + if (opts.inPurgeable || secureDocumentKey != null) { + RandomAccessFile f = new RandomAccessFile(cacheFileFinal, "r"); + int len = (int) f.length(); + int offset = 0; + byte[] bytesThumb = bytesThumbLocal.get(); + byte[] data = bytesThumb != null && bytesThumb.length >= len ? bytesThumb : null; + if (data == null) { + bytesThumb = data = new byte[len]; + bytesThumbLocal.set(bytesThumb); + } + f.readFully(data, 0, len); + f.close(); + boolean error = false; + if (secureDocumentKey != null) { + EncryptedFileInputStream.decryptBytesWithKeyFile(data, 0, len, secureDocumentKey); + byte[] hash = Utilities.computeSHA256(data, 0, len); + if (secureDocumentHash == null || !Arrays.equals(hash, secureDocumentHash)) { + error = true; } + offset = (data[0] & 0xff); + len -= offset; + } else if (inEncryptedFile) { + EncryptedFileInputStream.decryptBytesWithKeyFile(data, 0, len, cacheImage.encryptionKeyPath); + } + if (!error) { + image = BitmapFactory.decodeByteArray(data, offset, len, opts); + } + } else { + FileInputStream is; + if (inEncryptedFile) { + is = new EncryptedFileInputStream(cacheFileFinal, cacheImage.encryptionKeyPath); } else { - FileInputStream is; - if (inEncryptedFile) { - is = new EncryptedFileInputStream(cacheFileFinal, cacheImage.encryptionKeyPath); - } else { - is = new FileInputStream(cacheFileFinal); - } - image = BitmapFactory.decodeStream(is, null, opts); - is.close(); + is = new FileInputStream(cacheFileFinal); } + image = BitmapFactory.decodeStream(is, null, opts); + is.close(); } if (image == null) { @@ -1509,77 +1467,64 @@ public void run() { } } if (image == null) { - if (useNativeWebpLoader && secureDocumentKey == null) { - RandomAccessFile file = new RandomAccessFile(cacheFileFinal, "r"); - ByteBuffer buffer = file.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, cacheFileFinal.length()); - - BitmapFactory.Options bmOptions = new BitmapFactory.Options(); - bmOptions.inJustDecodeBounds = true; - Utilities.loadWebpImage(null, buffer, buffer.limit(), bmOptions, true); - image = Bitmaps.createBitmap(bmOptions.outWidth, bmOptions.outHeight, Bitmap.Config.ARGB_8888); - - Utilities.loadWebpImage(image, buffer, buffer.limit(), null, !opts.inPurgeable); - file.close(); - } else { - if (image == null) { - FileInputStream is; - if (secureDocumentKey != null) { - is = new EncryptedFileInputStream(cacheFileFinal, secureDocumentKey); - } else if (inEncryptedFile) { - is = new EncryptedFileInputStream(cacheFileFinal, cacheImage.encryptionKeyPath); - } else { - is = new FileInputStream(cacheFileFinal); - } - if (cacheImage.imageLocation.document instanceof TLRPC.TL_document || cacheImage.filter != null && cacheImage.filter.contains("exif")) { - Pair orientationValues = AndroidUtilities.getImageOrientation(is); - orientation = orientationValues.first; - invert = orientationValues.second; - if (secureDocumentKey != null || cacheImage.encryptionKeyPath != null) { - is.close(); - if (secureDocumentKey != null) { - is = new EncryptedFileInputStream(cacheFileFinal, secureDocumentKey); - } else if (inEncryptedFile) { - is = new EncryptedFileInputStream(cacheFileFinal, cacheImage.encryptionKeyPath); - } - } else { - is.getChannel().position(0); - } - } - image = BitmapFactory.decodeStream(is, null, opts); - is.close(); + if (image == null) { + FileInputStream is; + if (secureDocumentKey != null) { + is = new EncryptedFileInputStream(cacheFileFinal, secureDocumentKey); + } else if (inEncryptedFile) { + is = new EncryptedFileInputStream(cacheFileFinal, cacheImage.encryptionKeyPath); + } else { + is = new FileInputStream(cacheFileFinal); } - - if (image == null) { - try { - RandomAccessFile f = new RandomAccessFile(cacheFileFinal, "r"); - int len = (int) f.length(); - int offset = 0; - byte[] bytes = bytesLocal.get(); - byte[] data = bytes != null && bytes.length >= len ? bytes : null; - if (data == null) { - bytes = data = new byte[len]; - bytesLocal.set(bytes); - } - f.readFully(data, 0, len); - f.close(); - boolean error = false; + if (cacheImage.imageLocation.document instanceof TLRPC.TL_document || cacheImage.filter != null && cacheImage.filter.contains("exif")) { + Pair orientationValues = AndroidUtilities.getImageOrientation(is); + orientation = orientationValues.first; + invert = orientationValues.second; + if (secureDocumentKey != null || cacheImage.encryptionKeyPath != null) { + is.close(); if (secureDocumentKey != null) { - EncryptedFileInputStream.decryptBytesWithKeyFile(data, 0, len, secureDocumentKey); - byte[] hash = Utilities.computeSHA256(data, 0, len); - if (secureDocumentHash == null || !Arrays.equals(hash, secureDocumentHash)) { - error = true; - } - offset = (data[0] & 0xff); - len -= offset; + is = new EncryptedFileInputStream(cacheFileFinal, secureDocumentKey); } else if (inEncryptedFile) { - EncryptedFileInputStream.decryptBytesWithKeyFile(data, 0, len, cacheImage.encryptionKeyPath); + is = new EncryptedFileInputStream(cacheFileFinal, cacheImage.encryptionKeyPath); } - if (!error) { - image = BitmapFactory.decodeByteArray(data, offset, len, opts); + } else { + is.getChannel().position(0); + } + } + image = BitmapFactory.decodeStream(is, null, opts); + is.close(); + } + + if (image == null) { + try { + RandomAccessFile f = new RandomAccessFile(cacheFileFinal, "r"); + int len = (int) f.length(); + int offset = 0; + byte[] bytes = bytesLocal.get(); + byte[] data = bytes != null && bytes.length >= len ? bytes : null; + if (data == null) { + bytes = data = new byte[len]; + bytesLocal.set(bytes); + } + f.readFully(data, 0, len); + f.close(); + boolean error = false; + if (secureDocumentKey != null) { + EncryptedFileInputStream.decryptBytesWithKeyFile(data, 0, len, secureDocumentKey); + byte[] hash = Utilities.computeSHA256(data, 0, len); + if (secureDocumentHash == null || !Arrays.equals(hash, secureDocumentHash)) { + error = true; } - } catch (Throwable e) { - FileLog.e(e); + offset = (data[0] & 0xff); + len -= offset; + } else if (inEncryptedFile) { + EncryptedFileInputStream.decryptBytesWithKeyFile(data, 0, len, cacheImage.encryptionKeyPath); + } + if (!error) { + image = BitmapFactory.decodeByteArray(data, offset, len, opts); } + } catch (Throwable e) { + FileLog.e(e); } } } @@ -2378,7 +2323,11 @@ public void onReceive(Context arg0, Intent intent) { filter.addAction(Intent.ACTION_MEDIA_UNMOUNTED); filter.addDataScheme("file"); try { - ApplicationLoader.applicationContext.registerReceiver(receiver, filter); + if (Build.VERSION.SDK_INT >= 33) { + ApplicationLoader.applicationContext.registerReceiver(receiver, filter, Context.RECEIVER_NOT_EXPORTED); + } else { + ApplicationLoader.applicationContext.registerReceiver(receiver, filter); + } } catch (Throwable ignore) { } @@ -2737,6 +2686,7 @@ public void cancelLoadingForImageReceiver(final ImageReceiver imageReceiver, fin if (imageReceiver == null) { return; } + WebInstantView.cancelLoadPhoto(imageReceiver); ArrayList runnables = imageReceiver.getLoadingOperations(); synchronized (runnables) { if (!runnables.isEmpty()) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLocation.java b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLocation.java index 60fe0dba09..d3c5bbc862 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLocation.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLocation.java @@ -3,6 +3,7 @@ import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.web.WebInstantView; public class ImageLocation { @@ -38,6 +39,8 @@ public class ImageLocation { public WebFile webFile; + public WebInstantView.WebPhoto instantFile; + public static ImageLocation getForPath(String path) { if (path == null) { return null; @@ -78,6 +81,15 @@ public static ImageLocation getForWebFile(WebFile webFile) { return imageLocation; } + public static ImageLocation getForInstantFile(WebInstantView.WebPhoto instantFile) { + if (instantFile == null) { + return null; + } + ImageLocation imageLocation = new ImageLocation(); + imageLocation.instantFile = instantFile; + return imageLocation; + } + public static ImageLocation getForObject(TLRPC.PhotoSize photoSize, TLObject object) { if (object instanceof TLRPC.Photo) { return getForPhoto(photoSize, (TLRPC.Photo) object); @@ -405,6 +417,8 @@ public String getKey(Object parentObject, Object fullObject, boolean url) { return location.volume_id + "_" + location.local_id; } else if (webFile != null) { return Utilities.MD5(webFile.url); + } else if (instantFile != null) { + return Utilities.MD5(instantFile.url); } else if (document != null) { if (!url && document instanceof DocumentObject.ThemeDocument) { DocumentObject.ThemeDocument themeDocument = (DocumentObject.ThemeDocument) document; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ImportingService.java b/TMessagesProj/src/main/java/org/telegram/messenger/ImportingService.java index 56377e9bf9..f6060bff06 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ImportingService.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ImportingService.java @@ -89,13 +89,13 @@ public int onStartCommand(Intent intent, int flags, int startId) { builder.setSmallIcon(android.R.drawable.stat_sys_upload); builder.setWhen(System.currentTimeMillis()); builder.setChannelId(NotificationsController.OTHER_NOTIFICATIONS_CHANNEL); - builder.setContentTitle(LocaleController.getString("AppName", R.string.AppName)); + builder.setContentTitle(LocaleController.getString(R.string.AppName)); if (hasImportingHistory()) { - builder.setTicker(LocaleController.getString("ImporImportingService", R.string.ImporImportingService)); - builder.setContentText(LocaleController.getString("ImporImportingService", R.string.ImporImportingService)); + builder.setTicker(LocaleController.getString(R.string.ImporImportingService)); + builder.setContentText(LocaleController.getString(R.string.ImporImportingService)); } else { - builder.setTicker(LocaleController.getString("ImporImportingStickersService", R.string.ImporImportingStickersService)); - builder.setContentText(LocaleController.getString("ImporImportingStickersService", R.string.ImporImportingStickersService)); + builder.setTicker(LocaleController.getString(R.string.ImporImportingStickersService)); + builder.setContentText(LocaleController.getString(R.string.ImporImportingStickersService)); } } builder.setProgress(100, 0, true); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/LocaleController.java b/TMessagesProj/src/main/java/org/telegram/messenger/LocaleController.java index 6382a53cf8..d5acc7ec0a 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/LocaleController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/LocaleController.java @@ -21,7 +21,6 @@ import android.telephony.TelephonyManager; import android.text.TextUtils; import android.text.format.DateFormat; -import android.util.Log; import android.util.Xml; import android.view.Gravity; @@ -36,11 +35,9 @@ import org.telegram.ui.RestrictedLanguagesSelectActivity; import org.xmlpull.v1.XmlPullParser; -import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; -import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.text.NumberFormat; @@ -765,7 +762,11 @@ public LocaleController() { try { IntentFilter timezoneFilter = new IntentFilter(Intent.ACTION_TIMEZONE_CHANGED); - ApplicationLoader.applicationContext.registerReceiver(new TimeZoneChangedReceiver(), timezoneFilter); + if (Build.VERSION.SDK_INT >= 33) { + ApplicationLoader.applicationContext.registerReceiver(new TimeZoneChangedReceiver(), timezoneFilter, Context.RECEIVER_NOT_EXPORTED); + } else { + ApplicationLoader.applicationContext.registerReceiver(new TimeZoneChangedReceiver(), timezoneFilter); + } } catch (Exception e) { FileLog.e(e); } @@ -1215,6 +1216,7 @@ private HashMap getLocaleFileStrings(File file) { private HashMap getLocaleFileStrings(File file, boolean preserveEscapes) { FileInputStream stream = null; reloadLastFile = false; + FileLog.d("getLocaleFileStrings: reloadLastFile = false"); try { if (!file.exists()) { return new HashMap<>(); @@ -1249,6 +1251,7 @@ private HashMap getLocaleFileStrings(File file, boolean preserve value = value.replace("<", "<"); if (!reloadLastFile && !value.equals(old)) { reloadLastFile = true; + FileLog.d("getLocaleFileStrings: value != old, reloadLastFile = true;"); } } } @@ -1268,7 +1271,14 @@ private HashMap getLocaleFileStrings(File file, boolean preserve } return stringMap; } catch (Exception e) { + try { + File filesDir = ApplicationLoader.getFilesDirFixed(); + filesDir = new File(filesDir, "malformed_locales/"); + filesDir.mkdirs(); + AndroidUtilities.copyFile(file, new File(filesDir, file.getName())); + } catch (Exception e2) {} FileLog.e(e); + FileLog.d("getLocaleFileStrings: error, reloadLastFile = true;"); reloadLastFile = true; } finally { try { @@ -1379,9 +1389,10 @@ public int applyLanguage(final LocaleInfo localeInfo, boolean override, boolean FileLog.e("update locale to " + config.locale); ApplicationLoader.applicationContext.getResources().updateConfiguration(config, ApplicationLoader.applicationContext.getResources().getDisplayMetrics()); changingConfiguration = false; + FileLog.d("applyLanguage: reloadLastFile=" + reloadLastFile + " force=" + force + " isLoadingRemote=" + isLoadingRemote); if (reloadLastFile || !isLoadingRemote && !force && shouldReinstallLangpack(localeInfo.shortName)) { if (BuildVars.LOGS_ENABLED) { - FileLog.d("reload locale because one of file is corrupted " + pathToFile + " " + pathToBaseFile); + FileLog.d("reload locale because one of file is corrupted " + pathToFile + " " + pathToBaseFile + " reloadLastFile=" + reloadLastFile + " isLoadingRemote=" + isLoadingRemote + " force=" + force); } if (init) { AndroidUtilities.runOnUIThread(() -> reloadCurrentRemoteLocale(currentAccount, null, true, null)); @@ -1389,6 +1400,7 @@ public int applyLanguage(final LocaleInfo localeInfo, boolean override, boolean reloadCurrentRemoteLocale(currentAccount, null, true, null); } reloadLastFile = false; + FileLog.d("reloadLastFile=false"); } if (!isLoadingRemote) { if (init) { @@ -1490,18 +1502,26 @@ public static String getString(@StringRes int res) { return getString(key, res); } - public static String getString(String key, int res) { + // deprecated: String key is no longer necessary + @Deprecated + public static String getString(String key, @StringRes int res) { return getInstance().getStringInternal(key, res); } + // deprecated: String key is no longer necessary + @Deprecated public static String getString(String key, String fallback, int fallbackRes, int res) { return getInstance().getStringInternal(key, fallback, fallbackRes, res); } + // deprecated: String key is no longer necessary + @Deprecated public static String getString(String key, String fallback, int res) { return getInstance().getStringInternal(key, fallback, 0, res); } + // deprecated: String key is no longer necessary + @Deprecated public static String getString(String key) { if (TextUtils.isEmpty(key)) { return "LOC_ERR:" + key; @@ -1555,6 +1575,14 @@ public static String formatPluralStringComma(String key, int plural) { return formatPluralStringComma(key, plural, ','); } + public static String formatPluralStringSpaced(String key, int plural) { + return formatPluralStringComma(key, plural, ' '); + } + + public static String formatPluralStringSpaced(String key, int plural, Object... args) { + return formatPluralStringComma(key, plural, ' ', args); + } + public static String formatPluralStringComma(String key, int plural, Object... args) { return formatPluralStringComma(key, plural, ',', args); } @@ -1636,14 +1664,22 @@ public static String formatString(String key, String fallback, int res, int fall if (BuildVars.USE_CLOUD_STRINGS && fallback != null) { value = getInstance().localeValues.get(fallback); } - if (value == null && res != 0) { - try { - value = ApplicationLoader.applicationContext.getString(res); - } catch (Exception e) { - if (fallbackRes != 0) { - try { - value = ApplicationLoader.applicationContext.getString(fallbackRes); - } catch (Exception ignored) {} + if (value == null) { + if (res != 0) { + try { + value = ApplicationLoader.applicationContext.getString(res); + } catch (Exception e) { + if (fallbackRes != 0) { + try { + value = ApplicationLoader.applicationContext.getString(fallbackRes); + } catch (Exception ignored) { + } + } + } + } else if (fallbackRes != 0) { + try { + value = ApplicationLoader.applicationContext.getString(fallbackRes); + } catch (Exception ignored) { } } } @@ -2233,7 +2269,7 @@ public static String formatStoryDate(long date) { int dateYear = rightNow.get(Calendar.YEAR); if (timeInMillis - date < 1000 * 60) { - return LocaleController.getString("RightNow", R.string.RightNow); + return LocaleController.getString(R.string.RightNow); } else if (timeInMillis - date < 1000 * 60 * 60) { int minutesAgo = (int) ((timeInMillis - date) / (1000 * 60)); return LocaleController.formatPluralString("MinutesAgo", minutesAgo, minutesAgo); @@ -2363,7 +2399,7 @@ public static String formatLocationUpdateDate(long date) { if (dateDay == day && year == dateYear) { int diff = (int) (ConnectionsManager.getInstance(UserConfig.selectedAccount).getCurrentTime() - date / 1000) / 60; if (diff < 1) { - return LocaleController.getString("LocationUpdatedJustNow", R.string.LocationUpdatedJustNow); + return LocaleController.getString(R.string.LocationUpdatedJustNow); } else if (diff < 60) { return LocaleController.formatPluralString("UpdatedMinutes", diff); } @@ -2419,7 +2455,7 @@ public static String formatDateOnline(long date, boolean[] madeShorter) { return LocaleController.formatString("LastSeenFormatted", R.string.LastSeenFormatted, LocaleController.formatString("TodayAtFormatted", R.string.TodayAtFormatted, getInstance().getFormatterDay().format(new Date(date)))); /*int diff = (int) (ConnectionsManager.getInstance().getCurrentTime() - date) / 60; if (diff < 1) { - return LocaleController.getString("LastSeenNow", R.string.LastSeenNow); + return LocaleController.getString(R.string.LastSeenNow); } else if (diff < 60) { return LocaleController.formatPluralString("LastSeenMinutes", diff); } else { @@ -2565,18 +2601,18 @@ public static String formatYearMont(long date, boolean alwaysShowYear) { int month = rightNow.get(Calendar.MONTH); final String[] months = new String[]{ - LocaleController.getString("January", R.string.January), - LocaleController.getString("February", R.string.February), - LocaleController.getString("March", R.string.March), - LocaleController.getString("April", R.string.April), - LocaleController.getString("May", R.string.May), - LocaleController.getString("June", R.string.June), - LocaleController.getString("July", R.string.July), - LocaleController.getString("August", R.string.August), - LocaleController.getString("September", R.string.September), - LocaleController.getString("October", R.string.October), - LocaleController.getString("November", R.string.November), - LocaleController.getString("December", R.string.December) + LocaleController.getString(R.string.January), + LocaleController.getString(R.string.February), + LocaleController.getString(R.string.March), + LocaleController.getString(R.string.April), + LocaleController.getString(R.string.May), + LocaleController.getString(R.string.June), + LocaleController.getString(R.string.July), + LocaleController.getString(R.string.August), + LocaleController.getString(R.string.September), + LocaleController.getString(R.string.October), + LocaleController.getString(R.string.November), + LocaleController.getString(R.string.December) }; if (year == dateYear && !alwaysShowYear) { return months[month]; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/LocationController.java b/TMessagesProj/src/main/java/org/telegram/messenger/LocationController.java index d5cc72a69b..74697e6d02 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/LocationController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/LocationController.java @@ -8,6 +8,7 @@ package org.telegram.messenger; +import android.Manifest; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; @@ -31,6 +32,7 @@ import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; import org.telegram.tgnet.tl.TL_stories; +import org.telegram.ui.Components.PermissionRequest; import java.util.ArrayList; import java.util.HashMap; @@ -61,9 +63,6 @@ public class LocationController extends BaseController implements NotificationCe private SparseIntArray requests = new SparseIntArray(); private LongSparseArray cacheRequests = new LongSparseArray<>(); private long locationEndWatchTime; - private boolean shareMyCurrentLocation; - - private boolean lookingForPeopleNearby; public ArrayList sharingLocationsUI = new ArrayList<>(); private LongSparseArray sharingLocationsMapUI = new LongSparseArray<>(); @@ -79,9 +78,6 @@ public class LocationController extends BaseController implements NotificationCe private final static int WATCH_LOCATION_TIMEOUT = 65 * 1000; private final static int SEND_NEW_LOCATION_TIME = 2 * 1000; - private ArrayList cachedNearbyUsers = new ArrayList<>(); - private ArrayList cachedNearbyChats = new ArrayList<>(); - private ILocationServiceProvider.ILocationRequest locationRequest; private static SparseArray Instance = new SparseArray<>(); @@ -288,7 +284,7 @@ public void onConnected(Bundle bundle) { break; case ILocationServiceProvider.STATUS_RESOLUTION_REQUIRED: Utilities.stageQueue.postRunnable(() -> { - if (lookingForPeopleNearby || !sharingLocations.isEmpty()) { + if (!sharingLocations.isEmpty()) { AndroidUtilities.runOnUIThread(() -> getNotificationCenter().postNotificationName(NotificationCenter.needShowPlayServicesAlert, status)); } }); @@ -317,7 +313,7 @@ public void startFusedLocationRequest(boolean permissionsGranted) { if (!permissionsGranted) { servicesAvailable = false; } - if (shareMyCurrentLocation || lookingForPeopleNearby || !sharingLocations.isEmpty()) { + if (!sharingLocations.isEmpty()) { if (permissionsGranted) { try { ApplicationLoader.getLocationServiceProvider().getLastLocation(this::setLastKnownLocation); @@ -444,23 +440,8 @@ private void broadcastLastKnownLocation(boolean cancelCurrent) { requests.put(reqId[0], 0); } } - if (shareMyCurrentLocation) { - UserConfig userConfig = getUserConfig(); - userConfig.lastMyLocationShareTime = (int) (System.currentTimeMillis() / 1000); - userConfig.saveConfig(false); - - TLRPC.TL_contacts_getLocated req = new TLRPC.TL_contacts_getLocated(); - req.geo_point = new TLRPC.TL_inputGeoPoint(); - req.geo_point.lat = lastKnownLocation.getLatitude(); - req.geo_point._long = lastKnownLocation.getLongitude(); - req.background = true; - getConnectionsManager().sendRequest(req, (response, error) -> { - - }); - } getConnectionsManager().resumeNetworkMaybe(); - if (shouldStopGps() || shareMyCurrentLocation) { - shareMyCurrentLocation = false; + if (shouldStopGps()) { stop(false); } } @@ -479,10 +460,6 @@ protected void setNewLocationEndWatchTime() { protected void update() { UserConfig userConfig = getUserConfig(); - if (ApplicationLoader.isScreenOn && !ApplicationLoader.mainInterfacePaused && !shareMyCurrentLocation && - userConfig.isClientActivated() && userConfig.isConfigLoaded() && userConfig.sharingMyLocationUntil != 0 && Math.abs(System.currentTimeMillis() / 1000 - userConfig.lastMyLocationShareTime) >= 60 * 60) { - shareMyCurrentLocation = true; - } if (!sharingLocations.isEmpty()) { for (int a = 0; a < sharingLocations.size(); a++) { final SharingLocationInfo info = sharingLocations.get(a); @@ -513,8 +490,8 @@ protected void update() { lastLocationSendTime = SystemClock.elapsedRealtime(); broadcastLastKnownLocation(cancelAll); } - } else if (!sharingLocations.isEmpty() || shareMyCurrentLocation) { - if (shareMyCurrentLocation || Math.abs(lastLocationSendTime - SystemClock.elapsedRealtime()) > BACKGROUD_UPDATE_TIME) { + } else if (!sharingLocations.isEmpty()) { + if (Math.abs(lastLocationSendTime - SystemClock.elapsedRealtime()) > BACKGROUD_UPDATE_TIME) { lastLocationStartTime = SystemClock.elapsedRealtime(); start(); } @@ -536,8 +513,6 @@ public void cleanup() { sharingLocationsMapUI.clear(); locationsCache.clear(); cacheRequests.clear(); - cachedNearbyUsers.clear(); - cachedNearbyChats.clear(); lastReadLocationTime.clear(); stopService(); Utilities.stageQueue.postRunnable(() -> { @@ -563,19 +538,6 @@ private void setLastKnownLocation(Location location) { } } - public void setCachedNearbyUsersAndChats(ArrayList u, ArrayList c) { - cachedNearbyUsers = new ArrayList<>(u); - cachedNearbyChats = new ArrayList<>(c); - } - - public ArrayList getCachedNearbyUsers() { - return cachedNearbyUsers; - } - - public ArrayList getCachedNearbyChats() { - return cachedNearbyChats; - } - protected void addSharingLocation(TLRPC.Message message) { final SharingLocationInfo info = new SharingLocationInfo(); info.did = message.dialog_id; @@ -792,11 +754,9 @@ public void removeSharingLocation(final long did) { private void startService() { try { - /*if (Build.VERSION.SDK_INT >= 26) { - ApplicationLoader.applicationContext.startForegroundService(new Intent(ApplicationLoader.applicationContext, LocationSharingService.class)); - } else {*/ + if (PermissionRequest.hasPermission(Manifest.permission.ACCESS_COARSE_LOCATION) || PermissionRequest.hasPermission(Manifest.permission.ACCESS_FINE_LOCATION)) { ApplicationLoader.applicationContext.startService(new Intent(ApplicationLoader.applicationContext, LocationSharingService.class)); - //} + } } catch (Throwable e) { FileLog.e(e); } @@ -899,9 +859,6 @@ private void start() { } private void stop(boolean empty) { - if (lookingForPeopleNearby || shareMyCurrentLocation) { - return; - } started = false; if (checkServices()) { try { @@ -918,17 +875,6 @@ private void stop(boolean empty) { } } - public void startLocationLookupForPeopleNearby(boolean stop) { - Utilities.stageQueue.postRunnable(() -> { - lookingForPeopleNearby = !stop; - if (lookingForPeopleNearby) { - start(); - } else if (sharingLocations.isEmpty()) { - stop(true); - } - }); - } - public Location getLastKnownLocation() { return lastKnownLocation; } @@ -1375,7 +1321,7 @@ public static void fetchLocationAddress(Location location, int type, LocationFet cityLocation.title = city; cityLocation.icon = onlyCountry ? "https://ss3.4sqi.net/img/categories_v2/building/government_capitolbuilding_64.png" : "https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png"; cityLocation.emoji = countryCodeToEmoji(countryCode); - cityLocation.address = onlyCountry ? LocaleController.getString("Country", R.string.Country) : LocaleController.getString("PassportCity", R.string.PassportCity); + cityLocation.address = onlyCountry ? LocaleController.getString(R.string.Country) : LocaleController.getString(R.string.PassportCity); cityLocation.geoAddress = cityAddress; cityAddress.country_iso2 = countryCode; @@ -1398,7 +1344,7 @@ public static void fetchLocationAddress(Location location, int type, LocationFet streetLocation.query_id = -1; streetLocation.title = street; streetLocation.icon = "pin"; - streetLocation.address = LocaleController.getString("PassportStreet1", R.string.PassportStreet1); + streetLocation.address = LocaleController.getString(R.string.PassportStreet1); streetLocation.geoAddress = streetAddress; streetAddress.country_iso2 = countryCode; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/LocationSharingService.java b/TMessagesProj/src/main/java/org/telegram/messenger/LocationSharingService.java index dbc37c2884..0313805c08 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/LocationSharingService.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/LocationSharingService.java @@ -102,7 +102,7 @@ private void updateNotification(boolean post) { if (DialogObject.isUserDialog(dialogId)) { TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(dialogId); param = UserObject.getFirstName(user); - str = LocaleController.getString("AttachLiveLocationIsSharing", R.string.AttachLiveLocationIsSharing); + str = LocaleController.getString(R.string.AttachLiveLocationIsSharing); } else { TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-dialogId); if (chat != null) { @@ -110,13 +110,13 @@ private void updateNotification(boolean post) { } else { param = ""; } - str = LocaleController.getString("AttachLiveLocationIsSharingChat", R.string.AttachLiveLocationIsSharingChat); + str = LocaleController.getString(R.string.AttachLiveLocationIsSharingChat); } } else { param = LocaleController.formatPluralString("Chats", infos.size()); - str = LocaleController.getString("AttachLiveLocationIsSharingChats", R.string.AttachLiveLocationIsSharingChats); + str = LocaleController.getString(R.string.AttachLiveLocationIsSharingChats); } - String text = String.format(str, LocaleController.getString("AttachLiveLocation", R.string.AttachLiveLocation), param); + String text = String.format(str, LocaleController.getString(R.string.AttachLiveLocation), param); builder.setTicker(text); builder.setContentText(text); if (post) { @@ -141,9 +141,9 @@ public int onStartCommand(Intent intent, int flags, int startId) { builder.setContentIntent(contentIntent); NotificationsController.checkOtherNotificationsChannel(); builder.setChannelId(NotificationsController.OTHER_NOTIFICATIONS_CHANNEL); - builder.setContentTitle(LocaleController.getString("NekoX", R.string.NekoX)); + builder.setContentTitle(LocaleController.getString(R.string.NekoX)); Intent stopIntent = new Intent(ApplicationLoader.applicationContext, StopLiveLocationReceiver.class); - builder.addAction(0, LocaleController.getString("StopLiveLocation", R.string.StopLiveLocation), PendingIntent.getBroadcast(ApplicationLoader.applicationContext, 2, stopIntent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT)); + builder.addAction(0, LocaleController.getString(R.string.StopLiveLocation), PendingIntent.getBroadcast(ApplicationLoader.applicationContext, 2, stopIntent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT)); } updateNotification(false); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java index 019dfb64f3..2ff3819c3e 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java @@ -50,7 +50,6 @@ import android.os.Environment; import android.os.PowerManager; import android.os.SystemClock; -import android.provider.DocumentsContract; import android.provider.MediaStore; import android.provider.OpenableColumns; import android.telephony.PhoneStateListener; @@ -86,6 +85,7 @@ import org.telegram.ui.Adapters.FiltersView; import org.telegram.ui.ChatActivity; import org.telegram.ui.Components.EmbedBottomSheet; +import org.telegram.ui.Components.PermissionRequest; import org.telegram.ui.Components.PhotoFilterView; import org.telegram.ui.Components.PipRoundVideoView; import org.telegram.ui.Components.Reactions.ReactionsLayoutInBubble; @@ -1930,7 +1930,6 @@ public void onSensorChanged(SensorEvent event) { final boolean accelerometerDetected = raisedToBack == minCount || accelerometerVertical || System.currentTimeMillis() - lastAccelerometerDetected < 60; final boolean alreadyPlaying = useFrontSpeaker || raiseToEarRecord; final boolean wakelockAllowed = ( -// proximityDetected || accelerometerDetected || alreadyPlaying ) && !forbidRaiseToListen() && !VoIPService.isAnyKindOfCallActive() && (allowRecording || allowListening) && !PhotoViewer.getInstance().isVisible(); @@ -3256,10 +3255,14 @@ public void checkVolumeBarUI() { private void setBluetoothScoOn(boolean scoOn) { AudioManager am = (AudioManager) ApplicationLoader.applicationContext.getSystemService(Context.AUDIO_SERVICE); + if (SharedConfig.recordViaSco && !PermissionRequest.hasPermission(Manifest.permission.BLUETOOTH_CONNECT)) { + SharedConfig.recordViaSco = false; + SharedConfig.saveConfig(); + } if (am.isBluetoothScoAvailableOffCall() && SharedConfig.recordViaSco || !scoOn) { BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter(); try { - if (btAdapter != null && btAdapter.getProfileConnectionState(BluetoothProfile.HEADSET) == BluetoothProfile.STATE_CONNECTED || !scoOn) { + if (btAdapter != null && btAdapter.getProfileConnectionState(BluetoothProfile.HEADSET) == BluetoothAdapter.STATE_CONNECTED || !scoOn) { if (scoOn && !am.isBluetoothScoOn()) { am.startBluetoothSco(); } else if (!scoOn && am.isBluetoothScoOn()) { @@ -3910,7 +3913,7 @@ public void setReplyingMessage(MessageObject replyToMsg, MessageObject replyToTo recordReplyingStory = storyItem; } - public void requestAudioFocus(boolean request) { + public void requestRecordAudioFocus(boolean request) { if (request) { if (!hasRecordAudioFocus && SharedConfig.pauseMusicOnRecord) { int result = NotificationsController.audioManager.requestAudioFocus(audioRecordFocusChangedListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT); @@ -3928,7 +3931,7 @@ public void requestAudioFocus(boolean request) { public void prepareResumedRecording(int currentAccount, MediaDataController.DraftVoice draft, long dialogId, MessageObject replyToMsg, MessageObject replyToTopMsg, TL_stories.StoryItem replyStory, int guid, String query_shortcut, int query_shortcut_id) { manualRecording = false; - requestAudioFocus(true); + requestRecordAudioFocus(true); recordQueue.cancelRunnable(recordStartRunnable); recordQueue.postRunnable(() -> { setBluetoothScoOn(true); @@ -4059,6 +4062,7 @@ public void toggleRecordingPause(boolean voiceOnce) { audioToSend.attributes.add(attributeAudio); NotificationCenter.getInstance(recordingCurrentAccount).postNotificationName(NotificationCenter.recordPaused); NotificationCenter.getInstance(recordingCurrentAccount).postNotificationName(NotificationCenter.audioDidSent, recordingGuid, audioToSend, recordingAudioFileToSend.getAbsolutePath()); + requestRecordAudioFocus(false); }); }); } else { @@ -4076,6 +4080,7 @@ public void toggleRecordingPause(boolean voiceOnce) { } AndroidUtilities.runOnUIThread(() -> { + requestRecordAudioFocus(true); MediaDataController.getInstance(recordingCurrentAccount).pushDraftVoiceMessage(recordDialogId, recordTopicId, null); audioRecorder = new AudioRecord(MediaRecorder.AudioSource.DEFAULT, sampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, recordBufferSize); @@ -4097,7 +4102,7 @@ public void startRecording(int currentAccount, long dialogId, MessageObject repl paused = true; } manualRecording = manual; - requestAudioFocus(true); + requestRecordAudioFocus(true); if (!NekoConfig.disableVibration.Bool()) { try { @@ -4310,7 +4315,7 @@ private void stopRecordingInternal(final int send, boolean notify, int scheduleD recordingAudioFileToSend.delete(); } } - requestAudioFocus(false); + requestRecordAudioFocus(false); }); }); } else { @@ -4318,7 +4323,7 @@ private void stopRecordingInternal(final int send, boolean notify, int scheduleD if (recordingAudioFile != null) { recordingAudioFile.delete(); } - requestAudioFocus(false); + requestRecordAudioFocus(false); } try { AudioEnhance.INSTANCE.releaseVoiceEnhance(); @@ -4410,7 +4415,7 @@ public MediaLoader(Context context, AccountInstance accountInstance, ArrayList cancelled = true); @@ -4459,7 +4464,11 @@ public void start(Context context) { if (cancelled) { break; } - if (sourceFile.exists()) { + if (!sourceFile.exists()) { + sourceFile = FileLoader.getInstance(currentAccount.getCurrentAccount()).getPathToAttach(message.messageOwner, true); + FileLog.d("saving file: correcting path from " + path + " to " + (sourceFile == null ? null : sourceFile.getAbsolutePath())); + } + if (sourceFile != null && sourceFile.exists()) { saveFileInternal(isMusic ? 3 : 2, sourceFile, name); copiedFiles++; } @@ -4552,7 +4561,7 @@ private void addMessageToLoad(MessageObject messageObject) { } String fileName = FileLoader.getAttachFileName(document); loadingMessageObjects.put(fileName, messageObject); - currentAccount.getFileLoader().loadFile(document, messageObject, FileLoader.PRIORITY_LOW, messageObject.shouldEncryptPhotoOrVideo() ? 2 : 0); + currentAccount.getFileLoader().loadFile(document, messageObject, FileLoader.PRIORITY_HIGH, messageObject.shouldEncryptPhotoOrVideo() ? 2 : 0); }); } @@ -4679,7 +4688,7 @@ public static void saveFile(String fullPath, Context context, final int type, fi if (context != null && type != 0) { try { final AlertDialog dialog = new AlertDialog(context, AlertDialog.ALERT_TYPE_LOADING); - dialog.setMessage(LocaleController.getString("Loading", R.string.Loading)); + dialog.setMessage(LocaleController.getString(R.string.Loading)); dialog.setCanceledOnTouchOutside(false); dialog.setCancelable(true); dialog.setOnCancelListener(d -> cancelled[0] = true); @@ -5175,11 +5184,11 @@ public static void loadGalleryPhotosAlbums(final int guid) { PhotoEntry photoEntry = new PhotoEntry(bucketId, imageId, dateTaken, path, orientation, 0, false, width, height, size); if (allPhotosAlbum == null) { - allPhotosAlbum = new AlbumEntry(0, LocaleController.getString("AllPhotos", R.string.AllPhotos), photoEntry); + allPhotosAlbum = new AlbumEntry(0, LocaleController.getString(R.string.AllPhotos), photoEntry); photoAlbumsSorted.add(0, allPhotosAlbum); } if (allMediaAlbum == null) { - allMediaAlbum = new AlbumEntry(0, LocaleController.getString("AllMedia", R.string.AllMedia), photoEntry); + allMediaAlbum = new AlbumEntry(0, LocaleController.getString(R.string.AllMedia), photoEntry); mediaAlbumsSorted.add(0, allMediaAlbum); } allPhotosAlbum.addPhoto(photoEntry); @@ -5269,7 +5278,7 @@ public static void loadGalleryPhotosAlbums(final int guid) { PhotoEntry photoEntry = new PhotoEntry(bucketId, imageId, dateTaken, path, orientation, (int) (duration / 1000), true, width, height, size); if (allVideosAlbum == null) { - allVideosAlbum = new AlbumEntry(0, LocaleController.getString("AllVideos", R.string.AllVideos), photoEntry); + allVideosAlbum = new AlbumEntry(0, LocaleController.getString(R.string.AllVideos), photoEntry); allVideosAlbum.videoOnly = true; int index = 0; if (allMediaAlbum != null) { @@ -5281,7 +5290,7 @@ public static void loadGalleryPhotosAlbums(final int guid) { mediaAlbumsSorted.add(index, allVideosAlbum); } if (allMediaAlbum == null) { - allMediaAlbum = new AlbumEntry(0, LocaleController.getString("AllMedia", R.string.AllMedia), photoEntry); + allMediaAlbum = new AlbumEntry(0, LocaleController.getString(R.string.AllMedia), photoEntry); mediaAlbumsSorted.add(0, allMediaAlbum); } allVideosAlbum.addPhoto(photoEntry); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java index 75d102943d..81a281c0d4 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java @@ -34,6 +34,7 @@ import android.text.style.CharacterStyle; import android.text.style.URLSpan; import android.text.util.Linkify; +import android.util.Log; import android.util.Pair; import android.util.SparseArray; import android.widget.Toast; @@ -871,13 +872,13 @@ private void putReactionsToCache(List reactions, int public void checkFeaturedStickers() { if (!loadingFeaturedStickers[0] && (!featuredStickersLoaded[0] || Math.abs(System.currentTimeMillis() / 1000 - loadFeaturedDate[0]) >= 60 * 60)) { - loadFeaturedStickers(false, true, false); + loadFeaturedStickers(false, true); } } public void checkFeaturedEmoji() { if (!loadingFeaturedStickers[1] && (!featuredStickersLoaded[1] || Math.abs(System.currentTimeMillis() / 1000 - loadFeaturedDate[1]) >= 60 * 60)) { - loadFeaturedStickers(true, true, false); + loadFeaturedStickers(true, true); } } @@ -2185,7 +2186,7 @@ public void addNewStickerSet(TLRPC.TL_messages_stickerSet set) { loadStickers(type, false, true); } - public void loadFeaturedStickers(boolean emoji, boolean cache, boolean force) { + public void loadFeaturedStickers(boolean emoji, boolean cache) { if (loadingFeaturedStickers[emoji ? 1 : 0] || NekoConfig.disableTrending.Bool()) { return; } @@ -2199,7 +2200,7 @@ public void loadFeaturedStickers(boolean emoji, boolean cache, boolean force) { boolean premium = false; SQLiteCursor cursor = null; try { - cursor = getMessagesStorage().getDatabase().queryFinalized("SELECT data, unread, date, hash, premium FROM stickers_featured WHERE emoji = " + (emoji ? 1 : 0)); + cursor = getMessagesStorage().getDatabase().queryFinalized("SELECT data, unread, date, hash, premium FROM stickers_featured WHERE emoji = " + (emoji ? 1 : 0) + " AND id = " + (emoji ? 2 : 1)); if (cursor.next()) { NativeByteBuffer data = cursor.byteBufferValue(0); if (data != null) { @@ -2220,7 +2221,7 @@ public void loadFeaturedStickers(boolean emoji, boolean cache, boolean force) { data.reuse(); } date = cursor.intValue(2); - hash = calcFeaturedStickersHash(emoji, newStickerArray); + hash = cursor.longValue(3); // calcFeaturedStickersHash(emoji, newStickerArray); premium = cursor.intValue(4) == 1; } } catch (Throwable e) { @@ -2237,17 +2238,25 @@ public void loadFeaturedStickers(boolean emoji, boolean cache, boolean force) { TLObject req; if (emoji) { TLRPC.TL_messages_getFeaturedEmojiStickers request = new TLRPC.TL_messages_getFeaturedEmojiStickers(); - request.hash = hash = force ? 0 : loadFeaturedHash[1]; + request.hash = hash = loadFeaturedHash[1]; req = request; } else { TLRPC.TL_messages_getFeaturedStickers request = new TLRPC.TL_messages_getFeaturedStickers(); - request.hash = hash = force ? 0 : loadFeaturedHash[0]; + request.hash = hash = loadFeaturedHash[0]; req = request; } getConnectionsManager().sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { if (response instanceof TLRPC.TL_messages_featuredStickers) { TLRPC.TL_messages_featuredStickers res = (TLRPC.TL_messages_featuredStickers) response; processLoadedFeaturedStickers(emoji, res.sets, res.unread, res.premium, false, (int) (System.currentTimeMillis() / 1000), res.hash); + } else if (response instanceof TLRPC.TL_messages_featuredStickersNotModified) { + final int date = (int) (System.currentTimeMillis() / 1000); + AndroidUtilities.runOnUIThread(() -> { + loadingFeaturedStickers[emoji ? 1 : 0] = false; + featuredStickersLoaded[emoji ? 1 : 0] = true; + loadFeaturedDate[emoji ? 1 : 0] = date; + }); + putFeaturedStickersToCache(emoji, null, null, date, hash, false); } else { processLoadedFeaturedStickers(emoji, null, null, false, false, (int) (System.currentTimeMillis() / 1000), hash); } @@ -2267,7 +2276,7 @@ private void processLoadedFeaturedStickers(boolean emoji, ArrayList arrayList = new ArrayList<>(); ShortcutInfoCompat shortcut = new ShortcutInfoCompat.Builder(ApplicationLoader.applicationContext, "compose") - .setShortLabel(LocaleController.getString("NewConversationShortcut", R.string.NewConversationShortcut)) - .setLongLabel(LocaleController.getString("NewConversationShortcut", R.string.NewConversationShortcut)) + .setShortLabel(LocaleController.getString(R.string.NewConversationShortcut)) + .setLongLabel(LocaleController.getString(R.string.NewConversationShortcut)) .setIcon(IconCompat.createWithResource(ApplicationLoader.applicationContext, R.drawable.shortcut_compose)) .setRank(0) .setIntent(intent) @@ -5567,10 +5578,10 @@ public void installShortcut(long dialogId, int type) { photo = user.photo.photo_small; } } else if (UserObject.isReplyUser(user)) { - name = LocaleController.getString("RepliesTitle", R.string.RepliesTitle); + name = LocaleController.getString(R.string.RepliesTitle); overrideAvatar = true; } else if (UserObject.isUserSelf(user)) { - name = LocaleController.getString("SavedMessages", R.string.SavedMessages); + name = LocaleController.getString(R.string.SavedMessages); overrideAvatar = true; } else { name = ContactsController.formatName(user.first_name, user.last_name); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java index 2f3621f23b..1d4019ac93 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java @@ -9,6 +9,9 @@ package org.telegram.messenger; import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.formatPluralString; +import static org.telegram.messenger.LocaleController.formatString; +import static org.telegram.messenger.LocaleController.getString; import android.graphics.Canvas; import android.graphics.Paint; @@ -98,6 +101,7 @@ import java.util.Iterator; import java.util.List; import java.util.Objects; +import java.util.Locale; import java.util.TreeSet; import java.util.concurrent.atomic.AtomicReference; import java.util.regex.Matcher; @@ -902,7 +906,7 @@ public float textYOffset(ArrayList blocks, ChatMessageCell.Tran public void layoutCode(String lng, int codeLength, boolean noforwards) { hasCodeCopyButton = codeLength >= 75 && !noforwards; if (hasCodeCopyButton) { - copyText = new Text(LocaleController.getString(R.string.CopyCode).toUpperCase(), SharedConfig.fontSize - 3, AndroidUtilities.bold()); + copyText = new Text(getString(R.string.CopyCode).toUpperCase(), SharedConfig.fontSize - 3, AndroidUtilities.bold()); copyIcon = ApplicationLoader.applicationContext.getResources().getDrawable(R.drawable.msg_copy).mutate(); copyIcon.setColorFilter(new PorterDuffColorFilter(copyIconColor, PorterDuff.Mode.SRC_IN)); copySelector = Theme.createRadSelectorDrawable(copySelectorColor, 0, 0, Math.min(5, SharedConfig.bubbleRadius), 0); @@ -965,7 +969,7 @@ public void drawCopyCodeButton(Canvas canvas, RectF bounds, int textColor, int b private static String capitalizeLanguage(String lng) { if (lng == null) return null; - String llng = lng.toLowerCase().replaceAll("\\W", ""); + String llng = lng.toLowerCase().replaceAll("\\W|lang$", ""); switch (llng) { case "js": case "javascript": @@ -1004,6 +1008,7 @@ private static String capitalizeLanguage(String lng) { case "dart": case "java": case "fift": + case "go": return capitalizeFirst(lng); case "http": case "html": @@ -2045,9 +2050,9 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL if (event.action instanceof TLRPC.TL_channelAdminLogEventActionChangeTitle) { String title = ((TLRPC.TL_channelAdminLogEventActionChangeTitle) event.action).new_value; if (chat.megagroup) { - messageText = replaceWithLink(LocaleController.formatString("EventLogEditedGroupTitle", R.string.EventLogEditedGroupTitle, title), "un1", fromUser); + messageText = replaceWithLink(formatString("EventLogEditedGroupTitle", R.string.EventLogEditedGroupTitle, title), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.formatString("EventLogEditedChannelTitle", R.string.EventLogEditedChannelTitle, title), "un1", fromUser); + messageText = replaceWithLink(formatString("EventLogEditedChannelTitle", R.string.EventLogEditedChannelTitle, title), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionChangePhoto) { TLRPC.TL_channelAdminLogEventActionChangePhoto action = (TLRPC.TL_channelAdminLogEventActionChangePhoto) event.action; @@ -2055,9 +2060,9 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL if (action.new_photo instanceof TLRPC.TL_photoEmpty) { messageOwner.action = new TLRPC.TL_messageActionChatDeletePhoto(); if (chat.megagroup) { - messageText = replaceWithLink(LocaleController.getString("EventLogRemovedWGroupPhoto", R.string.EventLogRemovedWGroupPhoto), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogRemovedWGroupPhoto), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogRemovedChannelPhoto", R.string.EventLogRemovedChannelPhoto), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogRemovedChannelPhoto), "un1", fromUser); } } else { messageOwner.action = new TLRPC.TL_messageActionChatEditPhoto(); @@ -2065,32 +2070,32 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL if (chat.megagroup) { if (isVideoAvatar()) { - messageText = replaceWithLink(LocaleController.getString("EventLogEditedGroupVideo", R.string.EventLogEditedGroupVideo), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogEditedGroupVideo), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogEditedGroupPhoto", R.string.EventLogEditedGroupPhoto), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogEditedGroupPhoto), "un1", fromUser); } } else { if (isVideoAvatar()) { - messageText = replaceWithLink(LocaleController.getString("EventLogEditedChannelVideo", R.string.EventLogEditedChannelVideo), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogEditedChannelVideo), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogEditedChannelPhoto", R.string.EventLogEditedChannelPhoto), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogEditedChannelPhoto), "un1", fromUser); } } } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionParticipantJoin) { if (chat.megagroup) { - messageText = replaceWithLink(LocaleController.getString(R.string.EventLogGroupJoined), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogGroupJoined), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString(R.string.EventLogChannelJoined), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogChannelJoined), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionParticipantLeave) { messageOwner = new TLRPC.TL_messageService(); messageOwner.action = new TLRPC.TL_messageActionChatDeleteUser(); messageOwner.action.user_id = event.user_id; if (chat.megagroup) { - messageText = replaceWithLink(LocaleController.getString("EventLogLeftGroup", R.string.EventLogLeftGroup), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogLeftGroup), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogLeftChannel", R.string.EventLogLeftChannel), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogLeftChannel), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionParticipantInvite) { TLRPC.TL_channelAdminLogEventActionParticipantInvite action = (TLRPC.TL_channelAdminLogEventActionParticipantInvite) event.action; @@ -2105,12 +2110,12 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL } if (messageOwner.from_id instanceof TLRPC.TL_peerUser && peerId == messageOwner.from_id.user_id) { if (chat.megagroup) { - messageText = replaceWithLink(LocaleController.getString(R.string.EventLogGroupJoined), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogGroupJoined), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString(R.string.EventLogChannelJoined), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogChannelJoined), "un1", fromUser); } } else { - messageText = replaceWithLink(LocaleController.getString("EventLogAdded", R.string.EventLogAdded), "un2", whoUser); + messageText = replaceWithLink(getString(R.string.EventLogAdded), "un2", whoUser); messageText = replaceWithLink(messageText, "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionParticipantToggleAdmin || @@ -2137,7 +2142,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL } StringBuilder rights; if (!(prev_participant instanceof TLRPC.TL_channelParticipantCreator) && new_participant instanceof TLRPC.TL_channelParticipantCreator) { - String str = LocaleController.getString("EventLogChangedOwnership", R.string.EventLogChangedOwnership); + String str = getString(R.string.EventLogChangedOwnership); int offset = str.indexOf("%1$s"); rights = new StringBuilder(String.format(str, getUserName(whoUser, messageOwner.entities, offset))); } else { @@ -2151,9 +2156,9 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL } String str; if (n.other) { - str = LocaleController.getString("EventLogPromotedNoRights", R.string.EventLogPromotedNoRights); + str = getString(R.string.EventLogPromotedNoRights); } else { - str = LocaleController.getString("EventLogPromoted", R.string.EventLogPromoted); + str = getString(R.string.EventLogPromoted); } int offset = str.indexOf("%1$s"); rights = new StringBuilder(String.format(str, getUserName(whoUser, messageOwner.entities, offset))); @@ -2161,68 +2166,68 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL if (!TextUtils.equals(prev_participant.rank, new_participant.rank)) { if (TextUtils.isEmpty(new_participant.rank)) { rights.append('\n').append('-').append(' '); - rights.append(LocaleController.getString("EventLogPromotedRemovedTitle", R.string.EventLogPromotedRemovedTitle)); + rights.append(getString(R.string.EventLogPromotedRemovedTitle)); } else { rights.append('\n').append('+').append(' '); - rights.append(LocaleController.formatString("EventLogPromotedTitle", R.string.EventLogPromotedTitle, new_participant.rank)); + rights.append(formatString("EventLogPromotedTitle", R.string.EventLogPromotedTitle, new_participant.rank)); } } if (o.change_info != n.change_info) { rights.append('\n').append(n.change_info ? '+' : '-').append(' '); - rights.append(chat.megagroup ? LocaleController.getString("EventLogPromotedChangeGroupInfo", R.string.EventLogPromotedChangeGroupInfo) : LocaleController.getString("EventLogPromotedChangeChannelInfo", R.string.EventLogPromotedChangeChannelInfo)); + rights.append(chat.megagroup ? getString(R.string.EventLogPromotedChangeGroupInfo) : getString(R.string.EventLogPromotedChangeChannelInfo)); } if (!chat.megagroup) { if (o.post_messages != n.post_messages) { rights.append('\n').append(n.post_messages ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogPromotedPostMessages", R.string.EventLogPromotedPostMessages)); + rights.append(getString(R.string.EventLogPromotedPostMessages)); } if (o.edit_messages != n.edit_messages) { rights.append('\n').append(n.edit_messages ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogPromotedEditMessages", R.string.EventLogPromotedEditMessages)); + rights.append(getString(R.string.EventLogPromotedEditMessages)); } } if (o.post_stories != n.post_stories) { rights.append('\n').append(n.post_stories ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogPromotedPostStories", R.string.EventLogPromotedPostStories)); + rights.append(getString(R.string.EventLogPromotedPostStories)); } if (o.edit_stories != n.edit_stories) { rights.append('\n').append(n.edit_stories ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogPromotedEditStories", R.string.EventLogPromotedEditStories)); + rights.append(getString(R.string.EventLogPromotedEditStories)); } if (o.delete_stories != n.delete_stories) { rights.append('\n').append(n.delete_stories ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogPromotedDeleteStories", R.string.EventLogPromotedDeleteStories)); + rights.append(getString(R.string.EventLogPromotedDeleteStories)); } if (o.delete_messages != n.delete_messages) { rights.append('\n').append(n.delete_messages ? '+' : '-').append(' '); - rights.append(LocaleController.getString(R.string.EventLogPromotedDeleteMessages)); + rights.append(getString(R.string.EventLogPromotedDeleteMessages)); } if (o.add_admins != n.add_admins) { rights.append('\n').append(n.add_admins ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogPromotedAddAdmins", R.string.EventLogPromotedAddAdmins)); + rights.append(getString(R.string.EventLogPromotedAddAdmins)); } if (o.anonymous != n.anonymous) { rights.append('\n').append(n.anonymous ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogPromotedSendAnonymously", R.string.EventLogPromotedSendAnonymously)); + rights.append(getString(R.string.EventLogPromotedSendAnonymously)); } if (chat.megagroup) { if (o.ban_users != n.ban_users) { rights.append('\n').append(n.ban_users ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogPromotedBanUsers", R.string.EventLogPromotedBanUsers)); + rights.append(getString(R.string.EventLogPromotedBanUsers)); } if (o.manage_call != n.manage_call) { rights.append('\n').append(n.manage_call ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogPromotedManageCall", R.string.EventLogPromotedManageCall)); + rights.append(getString(R.string.EventLogPromotedManageCall)); } } if (o.invite_users != n.invite_users) { rights.append('\n').append(n.invite_users ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogPromotedAddUsers", R.string.EventLogPromotedAddUsers)); + rights.append(getString(R.string.EventLogPromotedAddUsers)); } if (chat.megagroup) { if (o.pin_messages != n.pin_messages) { rights.append('\n').append(n.pin_messages ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogPromotedPinMessages", R.string.EventLogPromotedPinMessages)); + rights.append(getString(R.string.EventLogPromotedPinMessages)); } } } @@ -2234,7 +2239,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL TLRPC.TL_chatBannedRights o = bannedRights.prev_banned_rights; TLRPC.TL_chatBannedRights n = bannedRights.new_banned_rights; - StringBuilder rights = new StringBuilder(LocaleController.getString("EventLogDefaultPermissions", R.string.EventLogDefaultPermissions)); + StringBuilder rights = new StringBuilder(getString(R.string.EventLogDefaultPermissions)); boolean added = false; if (o == null) { o = new TLRPC.TL_chatBannedRights(); @@ -2246,7 +2251,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL rights.append('\n'); added = true; rights.append('\n').append(!n.send_messages ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedSendMessages", R.string.EventLogRestrictedSendMessages)); + rights.append(getString(R.string.EventLogRestrictedSendMessages)); } if (o.send_stickers != n.send_stickers || o.send_inline != n.send_inline || o.send_gifs != n.send_gifs || o.send_games != n.send_games) { if (!added) { @@ -2254,7 +2259,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL added = true; } rights.append('\n').append(!n.send_stickers ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedSendStickers", R.string.EventLogRestrictedSendStickers)); + rights.append(getString(R.string.EventLogRestrictedSendStickers)); } if (o.send_media != n.send_media) { if (!added) { @@ -2262,7 +2267,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL added = true; } rights.append('\n').append(!n.send_media ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedSendMedia", R.string.EventLogRestrictedSendMedia)); + rights.append(getString(R.string.EventLogRestrictedSendMedia)); } if (o.send_polls != n.send_polls) { if (!added) { @@ -2270,7 +2275,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL added = true; } rights.append('\n').append(!n.send_polls ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedSendPolls", R.string.EventLogRestrictedSendPolls)); + rights.append(getString(R.string.EventLogRestrictedSendPolls)); } if (o.embed_links != n.embed_links) { if (!added) { @@ -2278,7 +2283,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL added = true; } rights.append('\n').append(!n.embed_links ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedSendEmbed", R.string.EventLogRestrictedSendEmbed)); + rights.append(getString(R.string.EventLogRestrictedSendEmbed)); } if (o.change_info != n.change_info) { @@ -2287,7 +2292,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL added = true; } rights.append('\n').append(!n.change_info ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedChangeInfo", R.string.EventLogRestrictedChangeInfo)); + rights.append(getString(R.string.EventLogRestrictedChangeInfo)); } if (o.invite_users != n.invite_users) { if (!added) { @@ -2295,14 +2300,14 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL added = true; } rights.append('\n').append(!n.invite_users ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedInviteUsers", R.string.EventLogRestrictedInviteUsers)); + rights.append(getString(R.string.EventLogRestrictedInviteUsers)); } if (o.pin_messages != n.pin_messages) { if (!added) { rights.append('\n'); } rights.append('\n').append(!n.pin_messages ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedPinMessages", R.string.EventLogRestrictedPinMessages)); + rights.append(getString(R.string.EventLogRestrictedPinMessages)); } messageText = rights.toString(); } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionParticipantToggleBan) { @@ -2359,9 +2364,9 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL } } } else { - bannedDuration = new StringBuilder(LocaleController.getString("UserRestrictionsUntilForever", R.string.UserRestrictionsUntilForever)); + bannedDuration = new StringBuilder(getString(R.string.UserRestrictionsUntilForever)); } - String str = LocaleController.getString("EventLogRestrictedUntil", R.string.EventLogRestrictedUntil); + String str = getString(R.string.EventLogRestrictedUntil); int offset = str.indexOf("%1$s"); rights = new StringBuilder(String.format(str, getUserName(whoUser, messageOwner.entities, offset), bannedDuration.toString())); boolean added = false; @@ -2375,7 +2380,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL rights.append('\n'); added = true; rights.append('\n').append(!n.view_messages ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedReadMessages", R.string.EventLogRestrictedReadMessages)); + rights.append(getString(R.string.EventLogRestrictedReadMessages)); } if (o.send_messages != n.send_messages) { if (!added) { @@ -2383,7 +2388,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL added = true; } rights.append('\n').append(!n.send_messages ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedSendMessages", R.string.EventLogRestrictedSendMessages)); + rights.append(getString(R.string.EventLogRestrictedSendMessages)); } if (o.send_stickers != n.send_stickers || o.send_inline != n.send_inline || @@ -2394,7 +2399,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL added = true; } rights.append('\n').append(!n.send_stickers ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedSendStickers", R.string.EventLogRestrictedSendStickers)); + rights.append(getString(R.string.EventLogRestrictedSendStickers)); } if (o.send_media != n.send_media) { if (!added) { @@ -2402,7 +2407,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL added = true; } rights.append('\n').append(!n.send_media ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedSendMedia", R.string.EventLogRestrictedSendMedia)); + rights.append(getString(R.string.EventLogRestrictedSendMedia)); } if (o.send_polls != n.send_polls) { if (!added) { @@ -2410,7 +2415,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL added = true; } rights.append('\n').append(!n.send_polls ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedSendPolls", R.string.EventLogRestrictedSendPolls)); + rights.append(getString(R.string.EventLogRestrictedSendPolls)); } if (o.embed_links != n.embed_links) { if (!added) { @@ -2418,7 +2423,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL added = true; } rights.append('\n').append(!n.embed_links ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedSendEmbed", R.string.EventLogRestrictedSendEmbed)); + rights.append(getString(R.string.EventLogRestrictedSendEmbed)); } if (o.change_info != n.change_info) { @@ -2427,7 +2432,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL added = true; } rights.append('\n').append(!n.change_info ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedChangeInfo", R.string.EventLogRestrictedChangeInfo)); + rights.append(getString(R.string.EventLogRestrictedChangeInfo)); } if (o.invite_users != n.invite_users) { if (!added) { @@ -2435,22 +2440,22 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL added = true; } rights.append('\n').append(!n.invite_users ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedInviteUsers", R.string.EventLogRestrictedInviteUsers)); + rights.append(getString(R.string.EventLogRestrictedInviteUsers)); } if (o.pin_messages != n.pin_messages) { if (!added) { rights.append('\n'); } rights.append('\n').append(!n.pin_messages ? '+' : '-').append(' '); - rights.append(LocaleController.getString("EventLogRestrictedPinMessages", R.string.EventLogRestrictedPinMessages)); + rights.append(getString(R.string.EventLogRestrictedPinMessages)); } messageText = rights.toString(); } else { String str; if (n != null && (o == null || n.view_messages)) { - str = LocaleController.getString("EventLogChannelRestricted", R.string.EventLogChannelRestricted); + str = getString(R.string.EventLogChannelRestricted); } else { - str = LocaleController.getString("EventLogChannelUnrestricted", R.string.EventLogChannelUnrestricted); + str = getString(R.string.EventLogChannelUnrestricted); } int offset = str.indexOf("%1$s"); messageText = String.format(str, getUserName(whoUser, messageOwner.entities, offset)); @@ -2461,49 +2466,51 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL if (fromUser != null && fromUser.id == 136817688 && action.message.fwd_from != null && action.message.fwd_from.from_id instanceof TLRPC.TL_peerChannel) { TLRPC.Chat channel = MessagesController.getInstance(currentAccount).getChat(action.message.fwd_from.from_id.channel_id); if (action.message instanceof TLRPC.TL_messageEmpty || !action.message.pinned) { - messageText = replaceWithLink(LocaleController.getString("EventLogUnpinnedMessages", R.string.EventLogUnpinnedMessages), "un1", channel); + messageText = replaceWithLink(getString(R.string.EventLogUnpinnedMessages), "un1", channel); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogPinnedMessages", R.string.EventLogPinnedMessages), "un1", channel); + messageText = replaceWithLink(getString(R.string.EventLogPinnedMessages), "un1", channel); } } else { if (action.message instanceof TLRPC.TL_messageEmpty || !action.message.pinned) { - messageText = replaceWithLink(LocaleController.getString("EventLogUnpinnedMessages", R.string.EventLogUnpinnedMessages), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogUnpinnedMessages), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogPinnedMessages", R.string.EventLogPinnedMessages), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogPinnedMessages), "un1", fromUser); } } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionStopPoll) { TLRPC.TL_channelAdminLogEventActionStopPoll action = (TLRPC.TL_channelAdminLogEventActionStopPoll) event.action; message = action.message; if (getMedia(message) instanceof TLRPC.TL_messageMediaPoll && ((TLRPC.TL_messageMediaPoll) getMedia(message)).poll.quiz) { - messageText = replaceWithLink(LocaleController.getString("EventLogStopQuiz", R.string.EventLogStopQuiz), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogStopQuiz), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogStopPoll", R.string.EventLogStopPoll), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogStopPoll), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionToggleSignatures) { if (((TLRPC.TL_channelAdminLogEventActionToggleSignatures) event.action).new_value) { - messageText = replaceWithLink(LocaleController.getString("EventLogToggledSignaturesOn", R.string.EventLogToggledSignaturesOn), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogToggledSignaturesOn), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogToggledSignaturesOff", R.string.EventLogToggledSignaturesOff), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogToggledSignaturesOff), "un1", fromUser); } + } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionParticipantSubExtend) { + messageText = replaceWithLink(getString(R.string.EventLogSubExtend), "un1", fromUser); } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionToggleSignatureProfiles) { if (((TLRPC.TL_channelAdminLogEventActionToggleSignatureProfiles) event.action).value) { - messageText = replaceWithLink(LocaleController.getString(R.string.EventLogToggledSignaturesProfilesOn), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogToggledSignaturesProfilesOn), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString(R.string.EventLogToggledSignaturesProfilesOff), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogToggledSignaturesProfilesOff), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionToggleInvites) { if (((TLRPC.TL_channelAdminLogEventActionToggleInvites) event.action).new_value) { - messageText = replaceWithLink(LocaleController.getString("EventLogToggledInvitesOn", R.string.EventLogToggledInvitesOn), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogToggledInvitesOn), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogToggledInvitesOff", R.string.EventLogToggledInvitesOff), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogToggledInvitesOff), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionDeleteMessage) { message = ((TLRPC.TL_channelAdminLogEventActionDeleteMessage) event.action).message; if (fromUser != null && fromUser.id == MessagesController.getInstance(currentAccount).telegramAntispamUserId) { - messageText = LocaleController.getString(R.string.EventLogDeletedMessages).replace("un1", UserObject.getUserName(fromUser)); + messageText = getString(R.string.EventLogDeletedMessages).replace("un1", UserObject.getUserName(fromUser)); } else { - messageText = replaceWithLink(LocaleController.getString(R.string.EventLogDeletedMessages), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogDeletedMessages), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionChangeLinkedChat) { long newChatId = ((TLRPC.TL_channelAdminLogEventActionChangeLinkedChat) event.action).new_value; @@ -2511,32 +2518,32 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL if (chat.megagroup) { if (newChatId == 0) { TLRPC.Chat oldChat = MessagesController.getInstance(currentAccount).getChat(oldChatId); - messageText = replaceWithLink(LocaleController.getString("EventLogRemovedLinkedChannel", R.string.EventLogRemovedLinkedChannel), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogRemovedLinkedChannel), "un1", fromUser); messageText = replaceWithLink(messageText, "un2", oldChat); } else { TLRPC.Chat newChat = MessagesController.getInstance(currentAccount).getChat(newChatId); - messageText = replaceWithLink(LocaleController.getString("EventLogChangedLinkedChannel", R.string.EventLogChangedLinkedChannel), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogChangedLinkedChannel), "un1", fromUser); messageText = replaceWithLink(messageText, "un2", newChat); } } else { if (newChatId == 0) { TLRPC.Chat oldChat = MessagesController.getInstance(currentAccount).getChat(oldChatId); - messageText = replaceWithLink(LocaleController.getString("EventLogRemovedLinkedGroup", R.string.EventLogRemovedLinkedGroup), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogRemovedLinkedGroup), "un1", fromUser); messageText = replaceWithLink(messageText, "un2", oldChat); } else { TLRPC.Chat newChat = MessagesController.getInstance(currentAccount).getChat(newChatId); - messageText = replaceWithLink(LocaleController.getString("EventLogChangedLinkedGroup", R.string.EventLogChangedLinkedGroup), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogChangedLinkedGroup), "un1", fromUser); messageText = replaceWithLink(messageText, "un2", newChat); } } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionTogglePreHistoryHidden) { if (((TLRPC.TL_channelAdminLogEventActionTogglePreHistoryHidden) event.action).new_value) { - messageText = replaceWithLink(LocaleController.getString("EventLogToggledInvitesHistoryOff", R.string.EventLogToggledInvitesHistoryOff), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogToggledInvitesHistoryOff), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogToggledInvitesHistoryOn", R.string.EventLogToggledInvitesHistoryOn), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogToggledInvitesHistoryOn), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionChangeAbout) { - messageText = replaceWithLink(chat.megagroup ? LocaleController.getString("EventLogEditedGroupDescription", R.string.EventLogEditedGroupDescription) : LocaleController.getString("EventLogEditedChannelDescription", R.string.EventLogEditedChannelDescription), "un1", fromUser); + messageText = replaceWithLink(chat.megagroup ? getString(R.string.EventLogEditedGroupDescription) : getString(R.string.EventLogEditedChannelDescription), "un1", fromUser); message = new TLRPC.TL_message(); message.out = false; message.unread = false; @@ -2551,13 +2558,13 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL message.media.webpage.flags = 10; message.media.webpage.display_url = ""; message.media.webpage.url = ""; - message.media.webpage.site_name = LocaleController.getString("EventLogPreviousGroupDescription", R.string.EventLogPreviousGroupDescription); + message.media.webpage.site_name = getString(R.string.EventLogPreviousGroupDescription); message.media.webpage.description = ((TLRPC.TL_channelAdminLogEventActionChangeAbout) event.action).prev_value; } else { message.media = new TLRPC.TL_messageMediaEmpty(); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionChangeTheme) { - messageText = replaceWithLink(chat.megagroup ? LocaleController.getString("EventLogEditedGroupTheme", R.string.EventLogEditedGroupTheme) : LocaleController.getString("EventLogEditedChannelTheme", R.string.EventLogEditedChannelTheme), "un1", fromUser); + messageText = replaceWithLink(chat.megagroup ? getString(R.string.EventLogEditedGroupTheme) : getString(R.string.EventLogEditedChannelTheme), "un1", fromUser); message = new TLRPC.TL_message(); message.out = false; message.unread = false; @@ -2572,7 +2579,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL message.media.webpage.flags = 10; message.media.webpage.display_url = ""; message.media.webpage.url = ""; - message.media.webpage.site_name = LocaleController.getString("EventLogPreviousGroupTheme", R.string.EventLogPreviousGroupTheme); + message.media.webpage.site_name = getString(R.string.EventLogPreviousGroupTheme); message.media.webpage.description = ((TLRPC.TL_channelAdminLogEventActionChangeTheme) event.action).prev_value; } else { message.media = new TLRPC.TL_messageMediaEmpty(); @@ -2580,9 +2587,9 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionChangeUsername) { String newLink = ((TLRPC.TL_channelAdminLogEventActionChangeUsername) event.action).new_value; if (!TextUtils.isEmpty(newLink)) { - messageText = replaceWithLink(chat.megagroup ? LocaleController.getString("EventLogChangedGroupLink", R.string.EventLogChangedGroupLink) : LocaleController.getString("EventLogChangedChannelLink", R.string.EventLogChangedChannelLink), "un1", fromUser); + messageText = replaceWithLink(chat.megagroup ? getString(R.string.EventLogChangedGroupLink) : getString(R.string.EventLogChangedChannelLink), "un1", fromUser); } else { - messageText = replaceWithLink(chat.megagroup ? LocaleController.getString("EventLogRemovedGroupLink", R.string.EventLogRemovedGroupLink) : LocaleController.getString("EventLogRemovedChannelLink", R.string.EventLogRemovedChannelLink), "un1", fromUser); + messageText = replaceWithLink(chat.megagroup ? getString(R.string.EventLogRemovedGroupLink) : getString(R.string.EventLogRemovedChannelLink), "un1", fromUser); } message = new TLRPC.TL_message(); message.out = false; @@ -2606,7 +2613,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL message.media.webpage.flags = 10; message.media.webpage.display_url = ""; message.media.webpage.url = ""; - message.media.webpage.site_name = LocaleController.getString("EventLogPreviousLink", R.string.EventLogPreviousLink); + message.media.webpage.site_name = getString(R.string.EventLogPreviousLink); message.media.webpage.description = "https://" + MessagesController.getInstance(currentAccount).linkPrefix + "/" + ((TLRPC.TL_channelAdminLogEventActionChangeUsername) event.action).prev_value; } else { message.media = new TLRPC.TL_messageMediaEmpty(); @@ -2648,25 +2655,25 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL changedMedia = false; } if (changedMedia && changedCaption) { - messageText = replaceWithLink(LocaleController.getString("EventLogEditedMediaCaption", R.string.EventLogEditedMediaCaption), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogEditedMediaCaption), "un1", fromUser); } else if (changedCaption) { - messageText = replaceWithLink(LocaleController.getString("EventLogEditedCaption", R.string.EventLogEditedCaption), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogEditedCaption), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogEditedMedia", R.string.EventLogEditedMedia), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogEditedMedia), "un1", fromUser); } message.media = getMedia(newMessage); if (changedCaption) { message.media.webpage = new TLRPC.TL_webPage(); - message.media.webpage.site_name = LocaleController.getString("EventLogOriginalCaption", R.string.EventLogOriginalCaption); + message.media.webpage.site_name = getString(R.string.EventLogOriginalCaption); if (TextUtils.isEmpty(oldMessage.message)) { - message.media.webpage.description = LocaleController.getString("EventLogOriginalCaptionEmpty", R.string.EventLogOriginalCaptionEmpty); + message.media.webpage.description = getString(R.string.EventLogOriginalCaptionEmpty); } else { message.media.webpage.description = oldMessage.message; webPageDescriptionEntities = oldMessage.entities; } } } else { - messageText = replaceWithLink(LocaleController.getString("EventLogEditedMessages", R.string.EventLogEditedMessages), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogEditedMessages), "un1", fromUser); if (newMessage.action instanceof TLRPC.TL_messageActionGroupCall) { message = newMessage; message.media = new TLRPC.TL_messageMediaEmpty(); @@ -2675,9 +2682,9 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL message.entities = newMessage.entities; message.media = new TLRPC.TL_messageMediaWebPage(); message.media.webpage = new TLRPC.TL_webPage(); - message.media.webpage.site_name = LocaleController.getString("EventLogOriginalMessages", R.string.EventLogOriginalMessages); + message.media.webpage.site_name = getString(R.string.EventLogOriginalMessages); if (TextUtils.isEmpty(oldMessage.message)) { - message.media.webpage.description = LocaleController.getString("EventLogOriginalCaptionEmpty", R.string.EventLogOriginalCaptionEmpty); + message.media.webpage.description = getString(R.string.EventLogOriginalCaptionEmpty); } else { message.media.webpage.description = oldMessage.message; webPageDescriptionEntities = oldMessage.entities; @@ -2694,30 +2701,30 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL TLRPC.InputStickerSet newPack = ((TLRPC.TL_channelAdminLogEventActionChangeEmojiStickerSet) event.action).new_stickerset; TLRPC.InputStickerSet oldPack = ((TLRPC.TL_channelAdminLogEventActionChangeEmojiStickerSet) event.action).new_stickerset; if (newPack == null || newPack instanceof TLRPC.TL_inputStickerSetEmpty) { - messageText = replaceWithLink(LocaleController.getString("EventLogRemovedEmojiPack", R.string.EventLogRemovedEmojiPack), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogRemovedEmojiPack), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogChangedEmojiPack", R.string.EventLogChangedEmojiPack), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogChangedEmojiPack), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionChangeStickerSet) { TLRPC.InputStickerSet newStickerset = ((TLRPC.TL_channelAdminLogEventActionChangeStickerSet) event.action).new_stickerset; TLRPC.InputStickerSet oldStickerset = ((TLRPC.TL_channelAdminLogEventActionChangeStickerSet) event.action).new_stickerset; if (newStickerset == null || newStickerset instanceof TLRPC.TL_inputStickerSetEmpty) { - messageText = replaceWithLink(LocaleController.getString("EventLogRemovedStickersSet", R.string.EventLogRemovedStickersSet), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogRemovedStickersSet), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogChangedStickersSet", R.string.EventLogChangedStickersSet), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogChangedStickersSet), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionChangeLocation) { TLRPC.TL_channelAdminLogEventActionChangeLocation location = (TLRPC.TL_channelAdminLogEventActionChangeLocation) event.action; if (location.new_value instanceof TLRPC.TL_channelLocationEmpty) { - messageText = replaceWithLink(LocaleController.getString("EventLogRemovedLocation", R.string.EventLogRemovedLocation), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogRemovedLocation), "un1", fromUser); } else { TLRPC.TL_channelLocation channelLocation = (TLRPC.TL_channelLocation) location.new_value; - messageText = replaceWithLink(LocaleController.formatString("EventLogChangedLocation", R.string.EventLogChangedLocation, channelLocation.address), "un1", fromUser); + messageText = replaceWithLink(formatString("EventLogChangedLocation", R.string.EventLogChangedLocation, channelLocation.address), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionToggleSlowMode) { TLRPC.TL_channelAdminLogEventActionToggleSlowMode slowMode = (TLRPC.TL_channelAdminLogEventActionToggleSlowMode) event.action; if (slowMode.new_value == 0) { - messageText = replaceWithLink(LocaleController.getString("EventLogToggledSlowmodeOff", R.string.EventLogToggledSlowmodeOff), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogToggledSlowmodeOff), "un1", fromUser); } else { String string; if (slowMode.new_value < 60) { @@ -2727,19 +2734,19 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL } else { string = LocaleController.formatPluralString("Hours", slowMode.new_value / 60 / 60); } - messageText = replaceWithLink(LocaleController.formatString("EventLogToggledSlowmodeOn", R.string.EventLogToggledSlowmodeOn, string), "un1", fromUser); + messageText = replaceWithLink(formatString("EventLogToggledSlowmodeOn", R.string.EventLogToggledSlowmodeOn, string), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionStartGroupCall) { if (ChatObject.isChannel(chat) && (!chat.megagroup || chat.gigagroup)) { - messageText = replaceWithLink(LocaleController.getString("EventLogStartedLiveStream", R.string.EventLogStartedLiveStream), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogStartedLiveStream), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogStartedVoiceChat", R.string.EventLogStartedVoiceChat), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogStartedVoiceChat), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionDiscardGroupCall) { if (ChatObject.isChannel(chat) && (!chat.megagroup || chat.gigagroup)) { - messageText = replaceWithLink(LocaleController.getString("EventLogEndedLiveStream", R.string.EventLogEndedLiveStream), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogEndedLiveStream), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogEndedVoiceChat", R.string.EventLogEndedVoiceChat), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogEndedVoiceChat), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionParticipantMute) { TLRPC.TL_channelAdminLogEventActionParticipantMute action = (TLRPC.TL_channelAdminLogEventActionParticipantMute) event.action; @@ -2750,7 +2757,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL } else { object = MessagesController.getInstance(currentAccount).getChat(-id); } - messageText = replaceWithLink(LocaleController.getString("EventLogVoiceChatMuted", R.string.EventLogVoiceChatMuted), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogVoiceChatMuted), "un1", fromUser); messageText = replaceWithLink(messageText, "un2", object); } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionParticipantUnmute) { TLRPC.TL_channelAdminLogEventActionParticipantUnmute action = (TLRPC.TL_channelAdminLogEventActionParticipantUnmute) event.action; @@ -2761,21 +2768,21 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL } else { object = MessagesController.getInstance(currentAccount).getChat(-id); } - messageText = replaceWithLink(LocaleController.getString("EventLogVoiceChatUnmuted", R.string.EventLogVoiceChatUnmuted), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogVoiceChatUnmuted), "un1", fromUser); messageText = replaceWithLink(messageText, "un2", object); } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionToggleGroupCallSetting) { TLRPC.TL_channelAdminLogEventActionToggleGroupCallSetting action = (TLRPC.TL_channelAdminLogEventActionToggleGroupCallSetting) event.action; if (action.join_muted) { - messageText = replaceWithLink(LocaleController.getString("EventLogVoiceChatNotAllowedToSpeak", R.string.EventLogVoiceChatNotAllowedToSpeak), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogVoiceChatNotAllowedToSpeak), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("EventLogVoiceChatAllowedToSpeak", R.string.EventLogVoiceChatAllowedToSpeak), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogVoiceChatAllowedToSpeak), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionParticipantJoinByInvite) { TLRPC.TL_channelAdminLogEventActionParticipantJoinByInvite action = (TLRPC.TL_channelAdminLogEventActionParticipantJoinByInvite) event.action; if (action.via_chatlist) { - messageText = replaceWithLink(LocaleController.getString(ChatObject.isChannelAndNotMegaGroup(chat) ? R.string.ActionInviteChannelUserFolder : R.string.ActionInviteUserFolder), "un1", fromUser); + messageText = replaceWithLink(getString(ChatObject.isChannelAndNotMegaGroup(chat) ? R.string.ActionInviteChannelUserFolder : R.string.ActionInviteUserFolder), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString(ChatObject.isChannelAndNotMegaGroup(chat) ? R.string.ActionInviteChannelUser : R.string.ActionInviteUser), "un1", fromUser); + messageText = replaceWithLink(getString(ChatObject.isChannelAndNotMegaGroup(chat) ? R.string.ActionInviteChannelUser : R.string.ActionInviteUser), "un1", fromUser); } if (action.invite != null && !TextUtils.isEmpty(action.invite.link)) { messageText = TextUtils.concat(messageText, " ", action.invite.link); @@ -2785,31 +2792,31 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL boolean isChannel = ChatObject.isChannel(chat) && !chat.megagroup; if (action.new_value) { if (isChannel) { - messageText = replaceWithLink(LocaleController.getString("ActionForwardsRestrictedChannel", R.string.ActionForwardsRestrictedChannel), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.ActionForwardsRestrictedChannel), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("ActionForwardsRestrictedGroup", R.string.ActionForwardsRestrictedGroup), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.ActionForwardsRestrictedGroup), "un1", fromUser); } } else { if (isChannel) { - messageText = replaceWithLink(LocaleController.getString("ActionForwardsEnabledChannel", R.string.ActionForwardsEnabledChannel), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.ActionForwardsEnabledChannel), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.getString("ActionForwardsEnabledGroup", R.string.ActionForwardsEnabledGroup), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.ActionForwardsEnabledGroup), "un1", fromUser); } } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionExportedInviteDelete) { TLRPC.TL_channelAdminLogEventActionExportedInviteDelete action = (TLRPC.TL_channelAdminLogEventActionExportedInviteDelete) event.action; - messageText = replaceWithLink(LocaleController.formatString("ActionDeletedInviteLinkClickable", R.string.ActionDeletedInviteLinkClickable), "un1", fromUser); + messageText = replaceWithLink(formatString("ActionDeletedInviteLinkClickable", R.string.ActionDeletedInviteLinkClickable), "un1", fromUser); messageText = replaceWithLink(messageText, "un2", action.invite); } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionExportedInviteRevoke) { TLRPC.TL_channelAdminLogEventActionExportedInviteRevoke action = (TLRPC.TL_channelAdminLogEventActionExportedInviteRevoke) event.action; - messageText = replaceWithLink(LocaleController.formatString("ActionRevokedInviteLinkClickable", R.string.ActionRevokedInviteLinkClickable, action.invite.link), "un1", fromUser); + messageText = replaceWithLink(formatString("ActionRevokedInviteLinkClickable", R.string.ActionRevokedInviteLinkClickable, action.invite.link), "un1", fromUser); messageText = replaceWithLink(messageText, "un2", action.invite); } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionExportedInviteEdit) { TLRPC.TL_channelAdminLogEventActionExportedInviteEdit action = (TLRPC.TL_channelAdminLogEventActionExportedInviteEdit) event.action; if (action.prev_invite.link != null && action.prev_invite.link.equals(action.new_invite.link)) { - messageText = replaceWithLink(LocaleController.formatString("ActionEditedInviteLinkToSameClickable", R.string.ActionEditedInviteLinkToSameClickable), "un1", fromUser); + messageText = replaceWithLink(formatString("ActionEditedInviteLinkToSameClickable", R.string.ActionEditedInviteLinkToSameClickable), "un1", fromUser); } else { - messageText = replaceWithLink(LocaleController.formatString("ActionEditedInviteLinkClickable", R.string.ActionEditedInviteLinkClickable), "un1", fromUser); + messageText = replaceWithLink(formatString("ActionEditedInviteLinkClickable", R.string.ActionEditedInviteLinkClickable), "un1", fromUser); } messageText = replaceWithLink(messageText, "un2", action.prev_invite); messageText = replaceWithLink(messageText, "un3", action.new_invite); @@ -2823,18 +2830,18 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL object = MessagesController.getInstance(currentAccount).getChat(-id); } double vol = ChatObject.getParticipantVolume(action.participant) / 100.0; - messageText = replaceWithLink(LocaleController.formatString("ActionVolumeChanged", R.string.ActionVolumeChanged, (int) (vol > 0 ? Math.max(vol, 1) : 0)), "un1", fromUser); + messageText = replaceWithLink(formatString("ActionVolumeChanged", R.string.ActionVolumeChanged, (int) (vol > 0 ? Math.max(vol, 1) : 0)), "un1", fromUser); messageText = replaceWithLink(messageText, "un2", object); } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionChangeHistoryTTL) { TLRPC.TL_channelAdminLogEventActionChangeHistoryTTL action = (TLRPC.TL_channelAdminLogEventActionChangeHistoryTTL) event.action; if (!chat.megagroup) { if (action.new_value != 0) { - messageText = LocaleController.formatString("ActionTTLChannelChanged", R.string.ActionTTLChannelChanged, LocaleController.formatTTLString(action.new_value)); + messageText = formatString("ActionTTLChannelChanged", R.string.ActionTTLChannelChanged, LocaleController.formatTTLString(action.new_value)); } else { - messageText = LocaleController.getString("ActionTTLChannelDisabled", R.string.ActionTTLChannelDisabled); + messageText = getString(R.string.ActionTTLChannelDisabled); } } else if (action.new_value == 0) { - messageText = replaceWithLink(LocaleController.getString("ActionTTLDisabled", R.string.ActionTTLDisabled), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.ActionTTLDisabled), "un1", fromUser); } else { String time; if (action.new_value > 24 * 60 * 60) { @@ -2846,22 +2853,22 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL } else { time = LocaleController.formatPluralString("Seconds", action.new_value); } - messageText = replaceWithLink(LocaleController.formatString("ActionTTLChanged", R.string.ActionTTLChanged, time), "un1", fromUser); + messageText = replaceWithLink(formatString("ActionTTLChanged", R.string.ActionTTLChanged, time), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionParticipantJoinByRequest) { TLRPC.TL_channelAdminLogEventActionParticipantJoinByRequest action = (TLRPC.TL_channelAdminLogEventActionParticipantJoinByRequest) event.action; if (action.invite instanceof TLRPC.TL_chatInviteExported && "https://t.me/+PublicChat".equals(((TLRPC.TL_chatInviteExported) action.invite).link) || action.invite instanceof TLRPC.TL_chatInvitePublicJoinRequests) { - messageText = replaceWithLink(LocaleController.getString("JoinedViaRequestApproved", R.string.JoinedViaRequestApproved), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.JoinedViaRequestApproved), "un1", fromUser); messageText = replaceWithLink(messageText, "un2", MessagesController.getInstance(currentAccount).getUser(action.approved_by)); } else { - messageText = replaceWithLink(LocaleController.getString("JoinedViaInviteLinkApproved", R.string.JoinedViaInviteLinkApproved), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.JoinedViaInviteLinkApproved), "un1", fromUser); messageText = replaceWithLink(messageText, "un2", action.invite); messageText = replaceWithLink(messageText, "un3", MessagesController.getInstance(currentAccount).getUser(action.approved_by)); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionSendMessage) { message = ((TLRPC.TL_channelAdminLogEventActionSendMessage) event.action).message; - messageText = replaceWithLink(LocaleController.getString("EventLogSendMessages", R.string.EventLogSendMessages), "un1", fromUser); + messageText = replaceWithLink(getString(R.string.EventLogSendMessages), "un1", fromUser); } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionChangeAvailableReactions) { TLRPC.TL_channelAdminLogEventActionChangeAvailableReactions eventActionChangeAvailableReactions = (TLRPC.TL_channelAdminLogEventActionChangeAvailableReactions) event.action; boolean customReactionsChanged = eventActionChangeAvailableReactions.prev_value instanceof TLRPC.TL_chatReactionsSome @@ -2870,7 +2877,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL String newStr = "**new**"; String oldStr = "**old**"; if (customReactionsChanged) { - SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(replaceWithLink(LocaleController.formatString("ActionReactionsChangedList", R.string.ActionReactionsChangedList, newStr), "un1", fromUser)); + SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(replaceWithLink(formatString("ActionReactionsChangedList", R.string.ActionReactionsChangedList, newStr), "un1", fromUser)); int i = spannableStringBuilder.toString().indexOf(newStr); if (i > 0) { spannableStringBuilder.replace(i, i + newStr.length(), newReactions); @@ -2878,7 +2885,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL messageText = spannableStringBuilder; } else { CharSequence oldReactions = getStringFrom(eventActionChangeAvailableReactions.prev_value); - SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(replaceWithLink(LocaleController.formatString("ActionReactionsChanged", R.string.ActionReactionsChanged, oldStr, newStr), "un1", fromUser)); + SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(replaceWithLink(formatString("ActionReactionsChanged", R.string.ActionReactionsChanged, oldStr, newStr), "un1", fromUser)); int i = spannableStringBuilder.toString().indexOf(oldStr); if (i > 0) { spannableStringBuilder.replace(i, i + oldStr.length(), oldReactions); @@ -2913,7 +2920,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL } if (removed != null) { messageText = replaceWithLink( - LocaleController.formatString("EventLogDeactivatedUsername", R.string.EventLogDeactivatedUsername, "@" + removed), + formatString("EventLogDeactivatedUsername", R.string.EventLogDeactivatedUsername, "@" + removed), "un1", fromUser ); } @@ -2932,7 +2939,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL } if (added != null) { messageText = replaceWithLink( - LocaleController.formatString("EventLogActivatedUsername", R.string.EventLogActivatedUsername, "@" + added), + formatString("EventLogActivatedUsername", R.string.EventLogActivatedUsername, "@" + added), "un1", fromUser ); } @@ -2941,7 +2948,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL if (messageText == null) { messageText = replaceWithLink( - LocaleController.formatString("EventLogChangeUsernames", R.string.EventLogChangeUsernames, getUsernamesString(oldUsernames), getUsernamesString(newUsernames)), + formatString("EventLogChangeUsernames", R.string.EventLogChangeUsernames, getUsernamesString(oldUsernames), getUsernamesString(newUsernames)), "un1", fromUser ); } @@ -2949,19 +2956,19 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL TLRPC.TL_channelAdminLogEventActionToggleForum toggleForum = (TLRPC.TL_channelAdminLogEventActionToggleForum) event.action; if (toggleForum.new_value) { messageText = replaceWithLink( - LocaleController.formatString("EventLogSwitchToForum", R.string.EventLogSwitchToForum), + formatString("EventLogSwitchToForum", R.string.EventLogSwitchToForum), "un1", fromUser ); } else { messageText = replaceWithLink( - LocaleController.formatString("EventLogSwitchToGroup", R.string.EventLogSwitchToGroup), + formatString("EventLogSwitchToGroup", R.string.EventLogSwitchToGroup), "un1", fromUser ); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionCreateTopic) { TLRPC.TL_channelAdminLogEventActionCreateTopic createTopic = (TLRPC.TL_channelAdminLogEventActionCreateTopic) event.action; messageText = replaceWithLink( - LocaleController.formatString("EventLogCreateTopic", R.string.EventLogCreateTopic), + formatString("EventLogCreateTopic", R.string.EventLogCreateTopic), "un1", fromUser ); messageText = replaceWithLink(messageText, "un2", createTopic.topic); @@ -2969,11 +2976,11 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL TLRPC.TL_channelAdminLogEventActionEditTopic editTopic = (TLRPC.TL_channelAdminLogEventActionEditTopic) event.action; if (editTopic.prev_topic instanceof TLRPC.TL_forumTopic && editTopic.new_topic instanceof TLRPC.TL_forumTopic && ((TLRPC.TL_forumTopic) editTopic.prev_topic).hidden != ((TLRPC.TL_forumTopic) editTopic.new_topic).hidden) { - String text = ((TLRPC.TL_forumTopic) editTopic.new_topic).hidden ? LocaleController.getString("TopicHidden2", R.string.TopicHidden2) : LocaleController.getString("TopicShown2", R.string.TopicShown2); + String text = ((TLRPC.TL_forumTopic) editTopic.new_topic).hidden ? getString(R.string.TopicHidden2) : getString(R.string.TopicShown2); messageText = replaceWithLink(text, "%s", fromUser); } else { messageText = replaceWithLink( - LocaleController.getString("EventLogEditTopic", R.string.EventLogEditTopic), + getString(R.string.EventLogEditTopic), "un1", fromUser ); messageText = replaceWithLink(messageText, "un2", editTopic.prev_topic); @@ -2982,7 +2989,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionDeleteTopic) { TLRPC.TL_channelAdminLogEventActionDeleteTopic deleteTopic = (TLRPC.TL_channelAdminLogEventActionDeleteTopic) event.action; messageText = replaceWithLink( - LocaleController.getString("EventLogDeleteTopic", R.string.EventLogDeleteTopic), + getString(R.string.EventLogDeleteTopic), "un1", fromUser ); messageText = replaceWithLink(messageText, "un2", deleteTopic.topic); @@ -2990,13 +2997,13 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL TLRPC.TL_channelAdminLogEventActionPinTopic pinTopic = (TLRPC.TL_channelAdminLogEventActionPinTopic) event.action; if (pinTopic.new_topic instanceof TLRPC.TL_forumTopic && ((TLRPC.TL_forumTopic)pinTopic.new_topic).pinned) { messageText = replaceWithLink( - LocaleController.formatString("EventLogPinTopic", R.string.EventLogPinTopic), + formatString("EventLogPinTopic", R.string.EventLogPinTopic), "un1", fromUser ); messageText = replaceWithLink(messageText, "un2", pinTopic.new_topic); } else { messageText = replaceWithLink( - LocaleController.formatString("EventLogUnpinTopic", R.string.EventLogUnpinTopic), + formatString("EventLogUnpinTopic", R.string.EventLogUnpinTopic), "un1", fromUser ); messageText = replaceWithLink(messageText, "un2", pinTopic.new_topic); @@ -3005,19 +3012,19 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL TLRPC.TL_channelAdminLogEventActionToggleAntiSpam action = (TLRPC.TL_channelAdminLogEventActionToggleAntiSpam) event.action; messageText = replaceWithLink( action.new_value ? - LocaleController.getString("EventLogEnabledAntiSpam", R.string.EventLogEnabledAntiSpam) : - LocaleController.getString("EventLogDisabledAntiSpam", R.string.EventLogDisabledAntiSpam), + getString(R.string.EventLogEnabledAntiSpam) : + getString(R.string.EventLogDisabledAntiSpam), "un1", fromUser ); } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionChangeColor) { boolean isChannel = ChatObject.isChannelAndNotMegaGroup(chat); TLRPC.TL_channelAdminLogEventActionChangeColor action = (TLRPC.TL_channelAdminLogEventActionChangeColor) event.action; - messageText = replaceWithLink(LocaleController.formatString(isChannel ? R.string.EventLogChangedColor : R.string.EventLogChangedColorGroup, AvatarDrawable.colorName(action.prev_value).toLowerCase(), AvatarDrawable.colorName(action.new_value).toLowerCase()), "un1", fromUser); + messageText = replaceWithLink(formatString(isChannel ? R.string.EventLogChangedColor : R.string.EventLogChangedColorGroup, AvatarDrawable.colorName(action.prev_value).toLowerCase(), AvatarDrawable.colorName(action.new_value).toLowerCase()), "un1", fromUser); } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionChangePeerColor) { boolean isChannel = ChatObject.isChannelAndNotMegaGroup(chat); TLRPC.TL_channelAdminLogEventActionChangePeerColor action = (TLRPC.TL_channelAdminLogEventActionChangePeerColor) event.action; - SpannableStringBuilder ssb = new SpannableStringBuilder(LocaleController.getString(isChannel ? R.string.EventLogChangedPeerColorIcon : R.string.EventLogChangedPeerColorIconGroup)); + SpannableStringBuilder ssb = new SpannableStringBuilder(getString(isChannel ? R.string.EventLogChangedPeerColorIcon : R.string.EventLogChangedPeerColorIconGroup)); SpannableStringBuilder prev = new SpannableStringBuilder(); if ((action.prev_value.flags & 1) != 0) { @@ -3031,7 +3038,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL prev.setSpan(new AnimatedEmojiSpan(action.prev_value.background_emoji_id, Theme.chat_actionTextPaint.getFontMetricsInt()), prev.length() - 1, prev.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (prev.length() == 0) { - prev.append(LocaleController.getString(R.string.EventLogEmojiNone)); + prev.append(getString(R.string.EventLogEmojiNone)); } SpannableStringBuilder next = new SpannableStringBuilder(); @@ -3046,7 +3053,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL next.setSpan(new AnimatedEmojiSpan(action.new_value.background_emoji_id, Theme.chat_actionTextPaint.getFontMetricsInt()), next.length() - 1, next.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (next.length() == 0) { - next.append(LocaleController.getString(R.string.EventLogEmojiNone)); + next.append(getString(R.string.EventLogEmojiNone)); } ssb = AndroidUtilities.replaceCharSequence("%1$s", ssb, prev); @@ -3056,7 +3063,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionChangeProfilePeerColor) { boolean isChannel = ChatObject.isChannelAndNotMegaGroup(chat); TLRPC.TL_channelAdminLogEventActionChangeProfilePeerColor action = (TLRPC.TL_channelAdminLogEventActionChangeProfilePeerColor) event.action; - SpannableStringBuilder ssb = new SpannableStringBuilder(LocaleController.getString(isChannel ? R.string.EventLogChangedProfileColorIcon : R.string.EventLogChangedProfileColorIconGroup)); + SpannableStringBuilder ssb = new SpannableStringBuilder(getString(isChannel ? R.string.EventLogChangedProfileColorIcon : R.string.EventLogChangedProfileColorIconGroup)); SpannableStringBuilder prev = new SpannableStringBuilder(); if ((action.prev_value.flags & 1) != 0) { @@ -3070,7 +3077,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL prev.setSpan(new AnimatedEmojiSpan(action.prev_value.background_emoji_id, Theme.chat_actionTextPaint.getFontMetricsInt()), prev.length() - 1, prev.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (prev.length() == 0) { - prev.append(LocaleController.getString(R.string.EventLogEmojiNone)); + prev.append(getString(R.string.EventLogEmojiNone)); } SpannableStringBuilder next = new SpannableStringBuilder(); @@ -3085,7 +3092,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL next.setSpan(new AnimatedEmojiSpan(action.new_value.background_emoji_id, Theme.chat_actionTextPaint.getFontMetricsInt()), next.length() - 1, next.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (next.length() == 0) { - next.append(LocaleController.getString(R.string.EventLogEmojiNone)); + next.append(getString(R.string.EventLogEmojiNone)); } ssb = AndroidUtilities.replaceCharSequence("%1$s", ssb, prev); @@ -3099,7 +3106,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL boolean prevNone = false; SpannableString prev; if (action.prev_value instanceof TLRPC.TL_emojiStatusEmpty) { - prev = new SpannableString(LocaleController.getString(R.string.EventLogEmojiNone)); + prev = new SpannableString(getString(R.string.EventLogEmojiNone)); prevNone = true; } else { prev = new SpannableString("e"); @@ -3110,13 +3117,13 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL SpannableString next; if (action.new_value instanceof TLRPC.TL_emojiStatusEmpty) { - next = new SpannableString(LocaleController.getString(R.string.EventLogEmojiNone)); + next = new SpannableString(getString(R.string.EventLogEmojiNone)); } else { next = new SpannableString("e"); next.setSpan(new AnimatedEmojiSpan(DialogObject.getEmojiStatusDocumentId(action.new_value), Theme.chat_actionTextPaint.getFontMetricsInt()), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } - SpannableStringBuilder ssb = new SpannableStringBuilder(LocaleController.getString( + SpannableStringBuilder ssb = new SpannableStringBuilder(getString( prevNone ? ( hasUntil ? (isChannel ? R.string.EventLogChangedEmojiStatusFor : R.string.EventLogChangedEmojiStatusForGroup) : (isChannel ? R.string.EventLogChangedEmojiStatus : R.string.EventLogChangedEmojiStatusGroup) ) : ( @@ -3136,23 +3143,23 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL TLRPC.TL_channelAdminLogEventActionChangeWallpaper action = (TLRPC.TL_channelAdminLogEventActionChangeWallpaper) event.action; boolean isChannel = ChatObject.isChannelAndNotMegaGroup(chat); if (action.new_value instanceof TLRPC.TL_wallPaperNoFile && action.new_value.id == 0 && action.new_value.settings == null) { - messageText = replaceWithLink(LocaleController.getString(isChannel ? R.string.EventLogRemovedWallpaper : R.string.EventLogRemovedWallpaperGroup), "un1", fromUser); + messageText = replaceWithLink(getString(isChannel ? R.string.EventLogRemovedWallpaper : R.string.EventLogRemovedWallpaperGroup), "un1", fromUser); } else { photoThumbs = new ArrayList<>(); if (action.new_value.document != null) { photoThumbs.addAll(action.new_value.document.thumbs); photoThumbsObject = action.new_value.document; } - messageText = replaceWithLink(LocaleController.getString(isChannel ? R.string.EventLogChangedWallpaper : R.string.EventLogChangedWallpaperGroup), "un1", fromUser); + messageText = replaceWithLink(getString(isChannel ? R.string.EventLogChangedWallpaper : R.string.EventLogChangedWallpaperGroup), "un1", fromUser); } } else if (event.action instanceof TLRPC.TL_channelAdminLogEventActionChangeBackgroundEmoji) { boolean isChannel = ChatObject.isChannelAndNotMegaGroup(chat); TLRPC.TL_channelAdminLogEventActionChangeBackgroundEmoji action = (TLRPC.TL_channelAdminLogEventActionChangeBackgroundEmoji) event.action; - messageText = replaceWithLink(LocaleController.getString(isChannel ? R.string.EventLogChangedEmoji : R.string.EventLogChangedEmojiGroup), "un1", fromUser); + messageText = replaceWithLink(getString(isChannel ? R.string.EventLogChangedEmoji : R.string.EventLogChangedEmojiGroup), "un1", fromUser); SpannableString emoji1; if (action.prev_value == 0) { - emoji1 = new SpannableString(LocaleController.getString(R.string.EventLogEmojiNone)); + emoji1 = new SpannableString(getString(R.string.EventLogEmojiNone)); } else { emoji1 = new SpannableString("e"); emoji1.setSpan(new AnimatedEmojiSpan(action.prev_value, Theme.chat_actionTextPaint.getFontMetricsInt()), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); @@ -3161,7 +3168,7 @@ public MessageObject(int accountNum, TLRPC.TL_channelAdminLogEvent event, ArrayL SpannableString emoji2; if (action.new_value == 0) { - emoji2 = new SpannableString(LocaleController.getString(R.string.EventLogEmojiNone)); + emoji2 = new SpannableString(getString(R.string.EventLogEmojiNone)); } else { emoji2 = new SpannableString("e"); emoji2.setSpan(new AnimatedEmojiSpan(action.new_value, Theme.chat_actionTextPaint.getFontMetricsInt()), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); @@ -3302,7 +3309,7 @@ public boolean didSpoilLoginCode() { private CharSequence getStringFrom(TLRPC.ChatReactions reactions) { if (reactions instanceof TLRPC.TL_chatReactionsAll) { - return LocaleController.getString("AllReactions", R.string.AllReactions); + return getString(R.string.AllReactions); } if (reactions instanceof TLRPC.TL_chatReactionsSome) { TLRPC.TL_chatReactionsSome reactionsSome = (TLRPC.TL_chatReactionsSome) reactions; @@ -3316,12 +3323,12 @@ private CharSequence getStringFrom(TLRPC.ChatReactions reactions) { } return spannableStringBuilder; } - return LocaleController.getString("NoReactions", R.string.NoReactions); + return getString(R.string.NoReactions); } private String getUsernamesString(ArrayList usernames) { if (usernames == null || usernames.size() == 0) { - return LocaleController.getString("UsernameEmpty", R.string.UsernameEmpty).toLowerCase(); + return getString(R.string.UsernameEmpty).toLowerCase(); } StringBuilder sb = new StringBuilder(); for (int i = 0; i < usernames.size(); ++i) { @@ -3345,7 +3352,7 @@ private String getUserName(TLObject object, ArrayList entit } else if (object instanceof TLRPC.User) { TLRPC.User user = (TLRPC.User) object; if (user.deleted) { - name = LocaleController.getString("HiddenName", R.string.HiddenName); + name = getString(R.string.HiddenName); } else { name = ContactsController.formatName(user.first_name, user.last_name); } @@ -3464,15 +3471,15 @@ public void generateGameMessageText(TLRPC.User fromUser) { } if (game == null) { if (fromUser != null && fromUser.id == UserConfig.getInstance(currentAccount).getClientUserId()) { - messageText = LocaleController.formatString("ActionYouScored", R.string.ActionYouScored, LocaleController.formatPluralString("Points", messageOwner.action.score)); + messageText = formatString("ActionYouScored", R.string.ActionYouScored, LocaleController.formatPluralString("Points", messageOwner.action.score)); } else { - messageText = replaceWithLink(LocaleController.formatString("ActionUserScored", R.string.ActionUserScored, LocaleController.formatPluralString("Points", messageOwner.action.score)), "un1", fromUser); + messageText = replaceWithLink(formatString("ActionUserScored", R.string.ActionUserScored, LocaleController.formatPluralString("Points", messageOwner.action.score)), "un1", fromUser); } } else { if (fromUser != null && fromUser.id == UserConfig.getInstance(currentAccount).getClientUserId()) { - messageText = LocaleController.formatString("ActionYouScoredInGame", R.string.ActionYouScoredInGame, LocaleController.formatPluralString("Points", messageOwner.action.score)); + messageText = formatString("ActionYouScoredInGame", R.string.ActionYouScoredInGame, LocaleController.formatPluralString("Points", messageOwner.action.score)); } else { - messageText = replaceWithLink(LocaleController.formatString("ActionUserScoredInGame", R.string.ActionUserScoredInGame, LocaleController.formatPluralString("Points", messageOwner.action.score)), "un1", fromUser); + messageText = replaceWithLink(formatString("ActionUserScoredInGame", R.string.ActionUserScoredInGame, LocaleController.formatPluralString("Points", messageOwner.action.score)), "un1", fromUser); } messageText = replaceWithLink(messageText, "un2", game); } @@ -3505,15 +3512,15 @@ public void generatePaymentSentMessageText(TLRPC.User fromUser) { } if (replyMessageObject != null && getMedia(replyMessageObject) instanceof TLRPC.TL_messageMediaInvoice) { if (messageOwner.action.recurring_init) { - messageText = LocaleController.formatString(R.string.PaymentSuccessfullyPaidRecurrent, currency, name, getMedia(replyMessageObject).title); + messageText = formatString(R.string.PaymentSuccessfullyPaidRecurrent, currency, name, getMedia(replyMessageObject).title); } else { - messageText = LocaleController.formatString("PaymentSuccessfullyPaid", R.string.PaymentSuccessfullyPaid, currency, name, getMedia(replyMessageObject).title); + messageText = formatString("PaymentSuccessfullyPaid", R.string.PaymentSuccessfullyPaid, currency, name, getMedia(replyMessageObject).title); } } else { if (messageOwner.action.recurring_init) { - messageText = LocaleController.formatString(R.string.PaymentSuccessfullyPaidNoItemRecurrent, currency, name); + messageText = formatString(R.string.PaymentSuccessfullyPaidNoItemRecurrent, currency, name); } else { - messageText = LocaleController.formatString("PaymentSuccessfullyPaidNoItem", R.string.PaymentSuccessfullyPaidNoItem, currency, name); + messageText = formatString("PaymentSuccessfullyPaidNoItem", R.string.PaymentSuccessfullyPaidNoItem, currency, name); } } messageText = StarsIntroActivity.replaceStars(messageText); @@ -3533,42 +3540,42 @@ public void generatePinMessageText(TLRPC.User fromUser, TLRPC.Chat chat) { } } if (replyMessageObject == null || replyMessageObject.messageOwner instanceof TLRPC.TL_messageEmpty || replyMessageObject.messageOwner.action instanceof TLRPC.TL_messageActionHistoryClear) { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedNoText", R.string.ActionPinnedNoText), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedNoText), "un1", fromUser != null ? fromUser : chat); } else { if (replyMessageObject.isMusic()) { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedMusic", R.string.ActionPinnedMusic), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedMusic), "un1", fromUser != null ? fromUser : chat); } else if (replyMessageObject.isVideo()) { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedVideo", R.string.ActionPinnedVideo), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedVideo), "un1", fromUser != null ? fromUser : chat); } else if (replyMessageObject.isGif()) { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedGif", R.string.ActionPinnedGif), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedGif), "un1", fromUser != null ? fromUser : chat); } else if (replyMessageObject.isVoice()) { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedVoice", R.string.ActionPinnedVoice), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedVoice), "un1", fromUser != null ? fromUser : chat); } else if (replyMessageObject.isRoundVideo()) { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedRound", R.string.ActionPinnedRound), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedRound), "un1", fromUser != null ? fromUser : chat); } else if ((replyMessageObject.isSticker() || replyMessageObject.isAnimatedSticker()) && !replyMessageObject.isAnimatedEmoji()) { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedSticker", R.string.ActionPinnedSticker), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedSticker), "un1", fromUser != null ? fromUser : chat); } else if (getMedia(replyMessageObject) instanceof TLRPC.TL_messageMediaDocument) { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedFile", R.string.ActionPinnedFile), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedFile), "un1", fromUser != null ? fromUser : chat); } else if (getMedia(replyMessageObject) instanceof TLRPC.TL_messageMediaGeo) { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedGeo", R.string.ActionPinnedGeo), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedGeo), "un1", fromUser != null ? fromUser : chat); } else if (getMedia(replyMessageObject) instanceof TLRPC.TL_messageMediaGeoLive) { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedGeoLive", R.string.ActionPinnedGeoLive), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedGeoLive), "un1", fromUser != null ? fromUser : chat); } else if (getMedia(replyMessageObject) instanceof TLRPC.TL_messageMediaContact) { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedContact", R.string.ActionPinnedContact), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedContact), "un1", fromUser != null ? fromUser : chat); } else if (getMedia(replyMessageObject) instanceof TLRPC.TL_messageMediaPoll) { if (((TLRPC.TL_messageMediaPoll) getMedia(replyMessageObject)).poll.quiz) { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedQuiz", R.string.ActionPinnedQuiz), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedQuiz), "un1", fromUser != null ? fromUser : chat); } else { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedPoll", R.string.ActionPinnedPoll), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedPoll), "un1", fromUser != null ? fromUser : chat); } } else if (getMedia(replyMessageObject) instanceof TLRPC.TL_messageMediaPhoto) { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedPhoto", R.string.ActionPinnedPhoto), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedPhoto), "un1", fromUser != null ? fromUser : chat); } else if (getMedia(replyMessageObject) instanceof TLRPC.TL_messageMediaPaidMedia) { TLRPC.TL_messageMediaPaidMedia paidMedia = (TLRPC.TL_messageMediaPaidMedia) getMedia(replyMessageObject); String username = chat != null ? chat.title : UserObject.getUserName(fromUser); messageText = LocaleController.formatPluralString("NotificationPinnedPaidMedia", (int) paidMedia.stars_amount, username); } else if (getMedia(replyMessageObject) instanceof TLRPC.TL_messageMediaGame) { - messageText = replaceWithLink(LocaleController.formatString("ActionPinnedGame", R.string.ActionPinnedGame, "\uD83C\uDFAE " + getMedia(replyMessageObject).game.title), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(formatString("ActionPinnedGame", R.string.ActionPinnedGame, "\uD83C\uDFAE " + getMedia(replyMessageObject).game.title), "un1", fromUser != null ? fromUser : chat); messageText = Emoji.replaceEmoji(messageText, Theme.chat_msgTextPaint.getFontMetricsInt(), dp(20), false); } else if (replyMessageObject.messageText != null && replyMessageObject.messageText.length() > 0) { CharSequence mess = AnimatedEmojiSpan.cloneSpans(replyMessageObject.messageText); @@ -3589,9 +3596,9 @@ public void generatePinMessageText(TLRPC.User fromUser, TLRPC.Chat chat) { mess = new SpannableStringBuilder(mess).append("..."); } } - messageText = replaceWithLink(AndroidUtilities.formatSpannable(LocaleController.getString("ActionPinnedText", R.string.ActionPinnedText), mess), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(AndroidUtilities.formatSpannable(getString(R.string.ActionPinnedText), mess), "un1", fromUser != null ? fromUser : chat); } else { - messageText = replaceWithLink(LocaleController.getString("ActionPinnedNoText", R.string.ActionPinnedNoText), "un1", fromUser != null ? fromUser : chat); + messageText = replaceWithLink(getString(R.string.ActionPinnedNoText), "un1", fromUser != null ? fromUser : chat); } } } @@ -3621,7 +3628,6 @@ public static void updateReactions(TLRPC.Message message, TLRPC.TL_messageReacti } message.reactions = reactions; message.flags |= 1048576; - FileLog.d("msg#"+message.id+" updateReactions out=" + message.out); } public boolean hasReactions() { @@ -3970,7 +3976,7 @@ public void measureInlineBotButtons() { botButtonsLayout.append(a).append(b); CharSequence text; if (button instanceof TLRPC.TL_keyboardButtonBuy && (getMedia(messageOwner).flags & 4) != 0) { - text = LocaleController.getString("PaymentReceipt", R.string.PaymentReceipt); + text = getString(R.string.PaymentReceipt); } else { String str = button.text; if (str == null) { @@ -4053,14 +4059,14 @@ private void updateMessageText(AbstractMap users, AbstractMap< } if (user != null) { if (user.id == UserConfig.getInstance(currentAccount).clientUserId) { - messageText = LocaleController.formatString(R.string.ActionSetSameWallpaperForThisChatSelf); + messageText = formatString(R.string.ActionSetSameWallpaperForThisChatSelf); } else { - messageText = LocaleController.formatString(R.string.ActionSetSameWallpaperForThisChat, user.first_name); + messageText = formatString(R.string.ActionSetSameWallpaperForThisChat, user.first_name); } } else if (fromChat != null) { - messageText = LocaleController.getString(ChatObject.isChannelAndNotMegaGroup(fromChat) ? R.string.ActionSetWallpaperForThisChannel : R.string.ActionSetWallpaperForThisGroup); + messageText = getString(ChatObject.isChannelAndNotMegaGroup(fromChat) ? R.string.ActionSetWallpaperForThisChannel : R.string.ActionSetWallpaperForThisGroup); } else if (fromUser != null) { - messageText = LocaleController.formatString(R.string.ActionSetWallpaperForThisGroupByUser, UserObject.getFirstName(fromUser)); + messageText = formatString(R.string.ActionSetWallpaperForThisGroupByUser, UserObject.getFirstName(fromUser)); } } else if (messageOwner.action instanceof TLRPC.TL_messageActionSetChatWallPaper) { contentType = 1; @@ -4077,78 +4083,78 @@ private void updateMessageText(AbstractMap users, AbstractMap< if (user.id == UserConfig.getInstance(currentAccount).clientUserId) { if (wallPaper.same) { type = TYPE_DATE; - messageText = LocaleController.formatString(R.string.ActionSetSameWallpaperForThisChatSelf); + messageText = formatString(R.string.ActionSetSameWallpaperForThisChatSelf); } else if (wallPaper.for_both && partner != null) { - messageText = LocaleController.getString(R.string.ActionSetWallpaperForThisChatSelfBoth); + messageText = getString(R.string.ActionSetWallpaperForThisChatSelfBoth); CharSequence partnerName = new SpannableString(UserObject.getFirstName(partner)); ((SpannableString) partnerName).setSpan(new TypefaceSpan(AndroidUtilities.bold()), 0, partnerName.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); messageText = AndroidUtilities.replaceCharSequence("%s", messageText, partnerName); } else { - messageText = LocaleController.getString(R.string.ActionSetWallpaperForThisChatSelf); + messageText = getString(R.string.ActionSetWallpaperForThisChatSelf); } } else { CharSequence userName = new SpannableString(UserObject.getFirstName(user)); ((SpannableString) userName).setSpan(new TypefaceSpan(AndroidUtilities.bold()), 0, userName.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); if (wallPaper.same) { type = TYPE_DATE; - messageText = LocaleController.getString(R.string.ActionSetSameWallpaperForThisChat); + messageText = getString(R.string.ActionSetSameWallpaperForThisChat); } else if (wallPaper.for_both) { - messageText = LocaleController.getString(R.string.ActionSetWallpaperForThisChatBoth); + messageText = getString(R.string.ActionSetWallpaperForThisChatBoth); } else { - messageText = LocaleController.getString(R.string.ActionSetWallpaperForThisChat); + messageText = getString(R.string.ActionSetWallpaperForThisChat); } messageText = AndroidUtilities.replaceCharSequence("%s", messageText, userName); } } else if (fromChat != null) { - messageText = LocaleController.getString(ChatObject.isChannelAndNotMegaGroup(fromChat) ? R.string.ActionSetWallpaperForThisChannel : R.string.ActionSetWallpaperForThisGroup); + messageText = getString(ChatObject.isChannelAndNotMegaGroup(fromChat) ? R.string.ActionSetWallpaperForThisChannel : R.string.ActionSetWallpaperForThisGroup); } else if (fromUser != null) { - messageText = LocaleController.formatString(R.string.ActionSetWallpaperForThisGroupByUser, UserObject.getFirstName(fromUser)); + messageText = formatString(R.string.ActionSetWallpaperForThisGroupByUser, UserObject.getFirstName(fromUser)); } } else if (messageOwner.action instanceof TLRPC.TL_messageActionGroupCallScheduled) { TLRPC.TL_messageActionGroupCallScheduled action = (TLRPC.TL_messageActionGroupCallScheduled) messageOwner.action; if (messageOwner.peer_id instanceof TLRPC.TL_peerChat || isSupergroup()) { - messageText = LocaleController.formatString("ActionGroupCallScheduled", R.string.ActionGroupCallScheduled, LocaleController.formatStartsTime(action.schedule_date, 3, false)); + messageText = formatString(R.string.ActionGroupCallScheduled, LocaleController.formatStartsTime(action.schedule_date, 3, false)); } else { - messageText = LocaleController.formatString("ActionChannelCallScheduled", R.string.ActionChannelCallScheduled, LocaleController.formatStartsTime(action.schedule_date, 3, false)); + messageText = formatString(R.string.ActionChannelCallScheduled, LocaleController.formatStartsTime(action.schedule_date, 3, false)); } } else if (messageOwner.action instanceof TLRPC.TL_messageActionGroupCall) { if (messageOwner.action.duration != 0) { String time; int days = messageOwner.action.duration / (3600 * 24); if (days > 0) { - time = LocaleController.formatPluralString("Days", days); + time = formatPluralString("Days", days); } else { int hours = messageOwner.action.duration / 3600; if (hours > 0) { - time = LocaleController.formatPluralString("Hours", hours); + time = formatPluralString("Hours", hours); } else { int minutes = messageOwner.action.duration / 60; if (minutes > 0) { - time = LocaleController.formatPluralString("Minutes", minutes); + time = formatPluralString("Minutes", minutes); } else { - time = LocaleController.formatPluralString("Seconds", messageOwner.action.duration); + time = formatPluralString("Seconds", messageOwner.action.duration); } } } if (messageOwner.peer_id instanceof TLRPC.TL_peerChat || isSupergroup()) { if (isOut()) { - messageText = LocaleController.formatString("ActionGroupCallEndedByYou", R.string.ActionGroupCallEndedByYou, time); + messageText = formatString(R.string.ActionGroupCallEndedByYou, time); } else { - messageText = replaceWithLink(LocaleController.formatString("ActionGroupCallEndedBy", R.string.ActionGroupCallEndedBy, time), "un1", fromObject); + messageText = replaceWithLink(formatString(R.string.ActionGroupCallEndedBy, time), "un1", fromObject); } } else { - messageText = LocaleController.formatString("ActionChannelCallEnded", R.string.ActionChannelCallEnded, time); + messageText = formatString(R.string.ActionChannelCallEnded, time); } } else { if (messageOwner.peer_id instanceof TLRPC.TL_peerChat || isSupergroup()) { if (isOut()) { - messageText = LocaleController.getString("ActionGroupCallStartedByYou", R.string.ActionGroupCallStartedByYou); + messageText = getString(R.string.ActionGroupCallStartedByYou); } else { - messageText = replaceWithLink(LocaleController.getString("ActionGroupCallStarted", R.string.ActionGroupCallStarted), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionGroupCallStarted), "un1", fromObject); } } else { - messageText = LocaleController.getString("ActionChannelCallJustStarted", R.string.ActionChannelCallJustStarted); + messageText = getString(R.string.ActionChannelCallJustStarted); } } } else if (messageOwner.action instanceof TLRPC.TL_messageActionInviteToGroupCall) { @@ -4160,18 +4166,18 @@ private void updateMessageText(AbstractMap users, AbstractMap< TLRPC.User whoUser = getUser(users, sUsers, singleUserId); if (isOut()) { - messageText = replaceWithLink(LocaleController.getString("ActionGroupCallYouInvited", R.string.ActionGroupCallYouInvited), "un2", whoUser); + messageText = replaceWithLink(getString(R.string.ActionGroupCallYouInvited), "un2", whoUser); } else if (singleUserId == UserConfig.getInstance(currentAccount).getClientUserId()) { - messageText = replaceWithLink(LocaleController.getString("ActionGroupCallInvitedYou", R.string.ActionGroupCallInvitedYou), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionGroupCallInvitedYou), "un1", fromObject); } else { - messageText = replaceWithLink(LocaleController.getString("ActionGroupCallInvited", R.string.ActionGroupCallInvited), "un2", whoUser); + messageText = replaceWithLink(getString(R.string.ActionGroupCallInvited), "un2", whoUser); messageText = replaceWithLink(messageText, "un1", fromObject); } } else { if (isOut()) { - messageText = replaceWithLink(LocaleController.getString("ActionGroupCallYouInvited", R.string.ActionGroupCallYouInvited), "un2", messageOwner.action.users, users, sUsers); + messageText = replaceWithLink(getString(R.string.ActionGroupCallYouInvited), "un2", messageOwner.action.users, users, sUsers); } else { - messageText = replaceWithLink(LocaleController.getString("ActionGroupCallInvited", R.string.ActionGroupCallInvited), "un2", messageOwner.action.users, users, sUsers); + messageText = replaceWithLink(getString(R.string.ActionGroupCallInvited), "un2", messageOwner.action.users, users, sUsers); messageText = replaceWithLink(messageText, "un1", fromObject); } } @@ -4187,7 +4193,7 @@ private void updateMessageText(AbstractMap users, AbstractMap< long toId = getPeerId(action.to_id); long selfUserId = UserConfig.getInstance(currentAccount).getClientUserId(); if (toId == selfUserId) { - messageText = replaceWithLink(LocaleController.formatString("ActionUserWithinRadius", R.string.ActionUserWithinRadius, LocaleController.formatDistance(action.distance, 2)), "un1", from); + messageText = replaceWithLink(formatString(R.string.ActionUserWithinRadius, LocaleController.formatDistance(action.distance, 2)), "un1", from); } else { TLObject to; if (toId > 0) { @@ -4196,9 +4202,9 @@ private void updateMessageText(AbstractMap users, AbstractMap< to = getChat(chats, sChats, -toId); } if (fromId == selfUserId) { - messageText = replaceWithLink(LocaleController.formatString("ActionUserWithinYouRadius", R.string.ActionUserWithinYouRadius, LocaleController.formatDistance(action.distance, 2)), "un1", to); + messageText = replaceWithLink(formatString(R.string.ActionUserWithinYouRadius, LocaleController.formatDistance(action.distance, 2)), "un1", to); } else { - messageText = replaceWithLink(LocaleController.formatString("ActionUserWithinOtherRadius", R.string.ActionUserWithinOtherRadius, LocaleController.formatDistance(action.distance, 2)), "un2", to); + messageText = replaceWithLink(formatString(R.string.ActionUserWithinOtherRadius, LocaleController.formatDistance(action.distance, 2)), "un2", to); messageText = replaceWithLink(messageText, "un1", from); } } @@ -4206,25 +4212,25 @@ private void updateMessageText(AbstractMap users, AbstractMap< messageText = messageOwner.action.message; } else if (messageOwner.action instanceof TLRPC.TL_messageActionChatCreate) { if (isOut()) { - messageText = LocaleController.getString("ActionYouCreateGroup", R.string.ActionYouCreateGroup); + messageText = getString(R.string.ActionYouCreateGroup); } else { - messageText = replaceWithLink(LocaleController.getString("ActionCreateGroup", R.string.ActionCreateGroup), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionCreateGroup), "un1", fromObject); } } else if (messageOwner.action instanceof TLRPC.TL_messageActionChatDeleteUser) { if (isFromUser() && messageOwner.action.user_id == messageOwner.from_id.user_id) { if (isOut()) { - messageText = LocaleController.getString("ActionYouLeftUser", R.string.ActionYouLeftUser); + messageText = getString(R.string.ActionYouLeftUser); } else { - messageText = replaceWithLink(LocaleController.getString("ActionLeftUser", R.string.ActionLeftUser), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionLeftUser), "un1", fromObject); } } else { TLRPC.User whoUser = getUser(users, sUsers, messageOwner.action.user_id); if (isOut()) { - messageText = replaceWithLink(LocaleController.getString("ActionYouKickUser", R.string.ActionYouKickUser), "un2", whoUser); + messageText = replaceWithLink(getString(R.string.ActionYouKickUser), "un2", whoUser); } else if (messageOwner.action.user_id == UserConfig.getInstance(currentAccount).getClientUserId()) { - messageText = replaceWithLink(LocaleController.getString("ActionKickUserYou", R.string.ActionKickUserYou), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionKickUserYou), "un1", fromObject); } else { - messageText = replaceWithLink(LocaleController.getString("ActionKickUser", R.string.ActionKickUser), "un2", whoUser); + messageText = replaceWithLink(getString(R.string.ActionKickUser), "un2", whoUser); messageText = replaceWithLink(messageText, "un1", fromObject); } } @@ -4237,7 +4243,7 @@ private void updateMessageText(AbstractMap users, AbstractMap< } else { who = getChat(chats, sChats, -did); } - messageText = StarsIntroActivity.replaceStars(replaceWithLink(LocaleController.formatString(R.string.ActionRefunded, action.currency + " " + LocaleController.formatNumber(action.total_amount, ',')), "un1", who)); + messageText = StarsIntroActivity.replaceStars(replaceWithLink(formatString(R.string.ActionRefunded, action.currency + " " + LocaleController.formatNumber(action.total_amount, ',')), "un1", who)); } else if (messageOwner.action instanceof TLRPC.TL_messageActionChatAddUser) { long singleUserId = messageOwner.action.user_id; if (singleUserId == 0 && messageOwner.action.users.size() == 1) { @@ -4252,56 +4258,62 @@ private void updateMessageText(AbstractMap users, AbstractMap< if (messageOwner.from_id != null && singleUserId == messageOwner.from_id.user_id) { if (ChatObject.isChannel(chat) && !chat.megagroup) { channelJoined = true; - messageText = LocaleController.getString("ChannelJoined", R.string.ChannelJoined); + messageText = getString(R.string.ChannelJoined); } else { if (messageOwner.peer_id.channel_id != 0) { if (singleUserId == UserConfig.getInstance(currentAccount).getClientUserId()) { - messageText = LocaleController.getString("ChannelMegaJoined", R.string.ChannelMegaJoined); + messageText = getString(R.string.ChannelMegaJoined); } else { - messageText = replaceWithLink(LocaleController.getString("ActionAddUserSelfMega", R.string.ActionAddUserSelfMega), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionAddUserSelfMega), "un1", fromObject); } } else if (isOut()) { - messageText = LocaleController.getString("ActionAddUserSelfYou", R.string.ActionAddUserSelfYou); + messageText = getString(R.string.ActionAddUserSelfYou); } else { - messageText = replaceWithLink(LocaleController.getString("ActionAddUserSelf", R.string.ActionAddUserSelf), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionAddUserSelf), "un1", fromObject); } } } else { if (isOut()) { - messageText = replaceWithLink(LocaleController.getString("ActionYouAddUser", R.string.ActionYouAddUser), "un2", whoUser); + messageText = replaceWithLink(getString(R.string.ActionYouAddUser), "un2", whoUser); } else if (singleUserId == UserConfig.getInstance(currentAccount).getClientUserId()) { if (messageOwner.peer_id.channel_id != 0) { if (chat != null && chat.megagroup) { - messageText = replaceWithLink(LocaleController.getString("MegaAddedBy", R.string.MegaAddedBy), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.MegaAddedBy), "un1", fromObject); } else { - messageText = replaceWithLink(LocaleController.getString("ChannelAddedBy", R.string.ChannelAddedBy), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ChannelAddedBy), "un1", fromObject); } } else { - messageText = replaceWithLink(LocaleController.getString("ActionAddUserYou", R.string.ActionAddUserYou), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionAddUserYou), "un1", fromObject); } } else { - messageText = replaceWithLink(LocaleController.getString("ActionAddUser", R.string.ActionAddUser), "un2", whoUser); + messageText = replaceWithLink(getString(R.string.ActionAddUser), "un2", whoUser); messageText = replaceWithLink(messageText, "un1", fromObject); } } } else { if (isOut()) { - messageText = replaceWithLink(LocaleController.getString("ActionYouAddUser", R.string.ActionYouAddUser), "un2", messageOwner.action.users, users, sUsers); + messageText = replaceWithLink(getString(R.string.ActionYouAddUser), "un2", messageOwner.action.users, users, sUsers); } else { - messageText = replaceWithLink(LocaleController.getString("ActionAddUser", R.string.ActionAddUser), "un2", messageOwner.action.users, users, sUsers); + messageText = replaceWithLink(getString(R.string.ActionAddUser), "un2", messageOwner.action.users, users, sUsers); messageText = replaceWithLink(messageText, "un1", fromObject); } } } else if (messageOwner.action instanceof TLRPC.TL_messageActionChatJoinedByLink) { if (isOut()) { - messageText = LocaleController.getString(R.string.ActionInviteYou); + messageText = getString(R.string.ActionInviteYou); } else { - messageText = replaceWithLink(LocaleController.getString(R.string.ActionInviteUser), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionInviteUser), "un1", fromObject); } } else if (messageOwner.action instanceof TLRPC.TL_messageActionGiveawayLaunch) { + TLRPC.TL_messageActionGiveawayLaunch giveawayLaunch = (TLRPC.TL_messageActionGiveawayLaunch) messageOwner.action; TLRPC.Chat chat = messageOwner.peer_id != null && messageOwner.peer_id.channel_id != 0 ? getChat(chats, sChats, messageOwner.peer_id.channel_id) : null; boolean isChannel = ChatObject.isChannelAndNotMegaGroup(chat); - messageText = LocaleController.formatString(isChannel ? R.string.BoostingGiveawayJustStarted : R.string.BoostingGiveawayJustStartedGroup, chat != null ? chat.title : ""); + boolean isStars = (giveawayLaunch.flags & 1) != 0; + if (isStars) { + messageText = LocaleController.formatPluralStringComma(isChannel ? "BoostingStarsGiveawayJustStarted" : "BoostingStarsGiveawayJustStartedGroup", (int) giveawayLaunch.stars, chat != null ? chat.title : ""); + } else { + messageText = formatString(isChannel ? R.string.BoostingGiveawayJustStarted : R.string.BoostingGiveawayJustStartedGroup, chat != null ? chat.title : ""); + } } else if (messageOwner.action instanceof TLRPC.TL_messageActionBoostApply) { TLRPC.Chat chat = messageOwner.peer_id != null && messageOwner.peer_id.channel_id != 0 ? getChat(chats, sChats, messageOwner.peer_id.channel_id) : null; boolean isChannel = ChatObject.isChannelAndNotMegaGroup(chat); @@ -4317,13 +4329,13 @@ private void updateMessageText(AbstractMap users, AbstractMap< } if (self) { if (messageActionBoostApply.boosts <= 1) { - messageText = LocaleController.getString(isChannel ? R.string.BoostingBoostsChannelByYouServiceMsg : R.string.BoostingBoostsGroupByYouServiceMsg); + messageText = getString(isChannel ? R.string.BoostingBoostsChannelByYouServiceMsg : R.string.BoostingBoostsGroupByYouServiceMsg); } else { messageText = LocaleController.formatPluralString(isChannel ? "BoostingBoostsChannelByYouServiceMsgCount" : "BoostingBoostsGroupByYouServiceMsgCount", messageActionBoostApply.boosts); } } else { if (messageActionBoostApply.boosts <= 1) { - messageText = LocaleController.formatString(isChannel ? R.string.BoostingBoostsChannelByUserServiceMsg : R.string.BoostingBoostsGroupByUserServiceMsg, name); + messageText = formatString(isChannel ? R.string.BoostingBoostsChannelByUserServiceMsg : R.string.BoostingBoostsGroupByUserServiceMsg, name); } else { messageText = LocaleController.formatPluralString(isChannel ? "BoostingBoostsChannelByUserServiceMsgCount" : "BoostingBoostsGroupByUserServiceMsgCount", messageActionBoostApply.boosts, name); } @@ -4333,20 +4345,33 @@ private void updateMessageText(AbstractMap users, AbstractMap< boolean isChannel = ChatObject.isChannelAndNotMegaGroup(chat); TLRPC.TL_messageActionGiveawayResults giveawayResults = (TLRPC.TL_messageActionGiveawayResults) messageOwner.action; SpannableStringBuilder stringBuilder = new SpannableStringBuilder(); - stringBuilder.append(LocaleController.formatPluralString("BoostingGiveawayServiceWinnersSelected", giveawayResults.winners_count)); - if (giveawayResults.unclaimed_count > 0) { - stringBuilder.append("\n"); - stringBuilder.append(LocaleController.formatPluralString(isChannel ? "BoostingGiveawayServiceUndistributed" : "BoostingGiveawayServiceUndistributedGroup", giveawayResults.unclaimed_count)); + if (giveawayResults.stars) { + stringBuilder.append(LocaleController.formatPluralStringComma("BoostingStarsGiveawayServiceWinnersSelected", giveawayResults.winners_count)); + if (giveawayResults.unclaimed_count > 0) { + stringBuilder.append("\n"); + stringBuilder.append(LocaleController.formatPluralString(isChannel ? "BoostingStarsGiveawayServiceUndistributed" : "BoostingStarsGiveawayServiceUndistributedGroup", giveawayResults.unclaimed_count)); + } + } else { + stringBuilder.append(LocaleController.formatPluralString("BoostingGiveawayServiceWinnersSelected", giveawayResults.winners_count)); + if (giveawayResults.unclaimed_count > 0) { + stringBuilder.append("\n"); + stringBuilder.append(LocaleController.formatPluralString(isChannel ? "BoostingGiveawayServiceUndistributed" : "BoostingGiveawayServiceUndistributedGroup", giveawayResults.unclaimed_count)); + } } messageText = stringBuilder; + } else if (messageOwner.action instanceof TLRPC.TL_messageActionPrizeStars) { + final TLRPC.TL_messageActionPrizeStars action = (TLRPC.TL_messageActionPrizeStars) messageOwner.action; + final long chatId = -DialogObject.getPeerDialogId(action.boost_peer); + final TLRPC.Chat chat = getChat(chats, sChats, chatId); + messageText = replaceWithLink(AndroidUtilities.replaceTags(LocaleController.formatPluralStringComma("ActionStarGiveawayPrize", (int) action.stars)), "un1", chat); } else if (messageOwner.action instanceof TLRPC.TL_messageActionGiftStars) { if (fromObject instanceof TLRPC.User && ((TLRPC.User) fromObject).self) { TLRPC.User user = getUser(users, sUsers, messageOwner.peer_id.user_id); - messageText = replaceWithLink(AndroidUtilities.replaceTags(LocaleController.getString(R.string.ActionGiftOutbound)), "un1", user); + messageText = replaceWithLink(AndroidUtilities.replaceTags(getString(R.string.ActionGiftOutbound)), "un1", user); } else if (fromObject instanceof TLRPC.User && UserObject.isService(((TLRPC.User) fromObject).id)) { - messageText = TextUtils.replace(AndroidUtilities.replaceTags(LocaleController.getString(R.string.ActionGiftInbound)), new String[] {"un1"}, new CharSequence[]{ LocaleController.getString(R.string.StarsTransactionUnknown) }); + messageText = TextUtils.replace(AndroidUtilities.replaceTags(getString(R.string.ActionGiftInbound)), new String[] {"un1"}, new CharSequence[]{ getString(R.string.StarsTransactionUnknown) }); } else { - messageText = replaceWithLink(AndroidUtilities.replaceTags(LocaleController.getString(R.string.ActionGiftInbound)), "un1", fromObject); + messageText = replaceWithLink(AndroidUtilities.replaceTags(getString(R.string.ActionGiftInbound)), "un1", fromObject); } int i = messageText.toString().indexOf("un2"); if (i != -1) { @@ -4358,13 +4383,13 @@ private void updateMessageText(AbstractMap users, AbstractMap< messageText = sb.replace(i, i + 3, price); } } else if (messageOwner.action instanceof TLRPC.TL_messageActionGiftCode && ((TLRPC.TL_messageActionGiftCode) messageOwner.action).boost_peer != null) { - messageText = LocaleController.getString("BoostingReceivedGiftNoName", R.string.BoostingReceivedGiftNoName); + messageText = getString(R.string.BoostingReceivedGiftNoName); } else if (messageOwner.action instanceof TLRPC.TL_messageActionGiftPremium || messageOwner.action instanceof TLRPC.TL_messageActionGiftCode) { if (fromObject instanceof TLRPC.User && ((TLRPC.User) fromObject).self) { TLRPC.User user = getUser(users, sUsers, messageOwner.peer_id.user_id); - messageText = replaceWithLink(AndroidUtilities.replaceTags(LocaleController.getString(R.string.ActionGiftOutbound)), "un1", user); + messageText = replaceWithLink(AndroidUtilities.replaceTags(getString(R.string.ActionGiftOutbound)), "un1", user); } else { - messageText = replaceWithLink(AndroidUtilities.replaceTags(LocaleController.getString(R.string.ActionGiftInbound)), "un1", fromObject); + messageText = replaceWithLink(AndroidUtilities.replaceTags(getString(R.string.ActionGiftInbound)), "un1", fromObject); } int i = messageText.toString().indexOf("un2"); if (i != -1) { @@ -4377,67 +4402,67 @@ private void updateMessageText(AbstractMap users, AbstractMap< } } else if (messageOwner.action instanceof TLRPC.TL_messageActionSuggestProfilePhoto) { if (messageOwner.action.photo != null && messageOwner.action.photo.video_sizes != null && !messageOwner.action.photo.video_sizes.isEmpty()) { - messageText = LocaleController.getString(R.string.ActionSuggestVideoShort); + messageText = getString(R.string.ActionSuggestVideoShort); } else { - messageText = LocaleController.getString(R.string.ActionSuggestPhotoShort); + messageText = getString(R.string.ActionSuggestPhotoShort); } } else if (messageOwner.action instanceof TLRPC.TL_messageActionChatEditPhoto) { TLRPC.Chat chat = messageOwner.peer_id != null && messageOwner.peer_id.channel_id != 0 ? getChat(chats, sChats, messageOwner.peer_id.channel_id) : null; if (ChatObject.isChannel(chat) && !chat.megagroup) { if (isVideoAvatar()) { - messageText = LocaleController.getString("ActionChannelChangedVideo", R.string.ActionChannelChangedVideo); + messageText = getString(R.string.ActionChannelChangedVideo); } else { - messageText = LocaleController.getString("ActionChannelChangedPhoto", R.string.ActionChannelChangedPhoto); + messageText = getString(R.string.ActionChannelChangedPhoto); } } else { if (isOut()) { if (isVideoAvatar()) { - messageText = LocaleController.getString("ActionYouChangedVideo", R.string.ActionYouChangedVideo); + messageText = getString(R.string.ActionYouChangedVideo); } else { - messageText = LocaleController.getString("ActionYouChangedPhoto", R.string.ActionYouChangedPhoto); + messageText = getString(R.string.ActionYouChangedPhoto); } } else { if (isVideoAvatar()) { - messageText = replaceWithLink(LocaleController.getString("ActionChangedVideo", R.string.ActionChangedVideo), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionChangedVideo), "un1", fromObject); } else { - messageText = replaceWithLink(LocaleController.getString("ActionChangedPhoto", R.string.ActionChangedPhoto), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionChangedPhoto), "un1", fromObject); } } } } else if (messageOwner.action instanceof TLRPC.TL_messageActionChatEditTitle) { TLRPC.Chat chat = messageOwner.peer_id != null && messageOwner.peer_id.channel_id != 0 ? getChat(chats, sChats, messageOwner.peer_id.channel_id) : null; if (ChatObject.isChannel(chat) && !chat.megagroup) { - messageText = LocaleController.getString("ActionChannelChangedTitle", R.string.ActionChannelChangedTitle).replace("un2", messageOwner.action.title); + messageText = getString(R.string.ActionChannelChangedTitle).replace("un2", messageOwner.action.title); } else { if (isOut()) { - messageText = LocaleController.getString("ActionYouChangedTitle", R.string.ActionYouChangedTitle).replace("un2", messageOwner.action.title); + messageText = getString(R.string.ActionYouChangedTitle).replace("un2", messageOwner.action.title); } else { - messageText = replaceWithLink(LocaleController.getString("ActionChangedTitle", R.string.ActionChangedTitle).replace("un2", messageOwner.action.title), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionChangedTitle).replace("un2", messageOwner.action.title), "un1", fromObject); } } } else if (messageOwner.action instanceof TLRPC.TL_messageActionChatDeletePhoto) { TLRPC.Chat chat = messageOwner.peer_id != null && messageOwner.peer_id.channel_id != 0 ? getChat(chats, sChats, messageOwner.peer_id.channel_id) : null; if (ChatObject.isChannel(chat) && !chat.megagroup) { - messageText = LocaleController.getString("ActionChannelRemovedPhoto", R.string.ActionChannelRemovedPhoto); + messageText = getString(R.string.ActionChannelRemovedPhoto); } else { if (isOut()) { - messageText = LocaleController.getString("ActionYouRemovedPhoto", R.string.ActionYouRemovedPhoto); + messageText = getString(R.string.ActionYouRemovedPhoto); } else { - messageText = replaceWithLink(LocaleController.getString("ActionRemovedPhoto", R.string.ActionRemovedPhoto), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionRemovedPhoto), "un1", fromObject); } } } else if (messageOwner.action instanceof TLRPC.TL_messageActionTTLChange) { if (messageOwner.action.ttl != 0) { if (isOut()) { - messageText = LocaleController.formatString("MessageLifetimeChangedOutgoing", R.string.MessageLifetimeChangedOutgoing, LocaleController.formatTTLString(messageOwner.action.ttl)); + messageText = formatString(R.string.MessageLifetimeChangedOutgoing, LocaleController.formatTTLString(messageOwner.action.ttl)); } else { - messageText = LocaleController.formatString("MessageLifetimeChanged", R.string.MessageLifetimeChanged, UserObject.getFirstName(fromUser), LocaleController.formatTTLString(messageOwner.action.ttl)); + messageText = formatString(R.string.MessageLifetimeChanged, UserObject.getFirstName(fromUser), LocaleController.formatTTLString(messageOwner.action.ttl)); } } else { if (isOut()) { - messageText = LocaleController.getString("MessageLifetimeYouRemoved", R.string.MessageLifetimeYouRemoved); + messageText = getString(R.string.MessageLifetimeYouRemoved); } else { - messageText = LocaleController.formatString("MessageLifetimeRemoved", R.string.MessageLifetimeRemoved, UserObject.getFirstName(fromUser)); + messageText = formatString(R.string.MessageLifetimeRemoved, UserObject.getFirstName(fromUser)); } } } else if (messageOwner.action instanceof TLRPC.TL_messageActionRequestedPeer) { @@ -4490,7 +4515,7 @@ private void updateMessageText(AbstractMap users, AbstractMap< names.append(separator); } } - messageText = AndroidUtilities.replaceCharSequence("un1", LocaleController.getString(R.string.ActionRequestedPeer), names); + messageText = AndroidUtilities.replaceCharSequence("un1", getString(R.string.ActionRequestedPeer), names); } TLRPC.User bot = MessagesController.getInstance(currentAccount).getUser(getDialogId()); if (bot == null) { @@ -4502,14 +4527,14 @@ private void updateMessageText(AbstractMap users, AbstractMap< TLRPC.Chat chat = messageOwner.peer_id != null && messageOwner.peer_id.channel_id != 0 ? getChat(chats, sChats, messageOwner.peer_id.channel_id) : null; if (chat != null && !chat.megagroup) { if (action.period != 0) { - messageText = LocaleController.formatString("ActionTTLChannelChanged", R.string.ActionTTLChannelChanged, LocaleController.formatTTLString(action.period)); + messageText = formatString(R.string.ActionTTLChannelChanged, LocaleController.formatTTLString(action.period)); } else { - messageText = LocaleController.getString("ActionTTLChannelDisabled", R.string.ActionTTLChannelDisabled); + messageText = getString(R.string.ActionTTLChannelDisabled); } } else if (action.auto_setting_from != 0) { drawServiceWithDefaultTypeface = true; if (action.auto_setting_from == UserConfig.getInstance(currentAccount).clientUserId) { - messageText = AndroidUtilities.replaceTags(LocaleController.formatString("AutoDeleteGlobalActionFromYou", R.string.AutoDeleteGlobalActionFromYou, LocaleController.formatTTLString(action.period))); + messageText = AndroidUtilities.replaceTags(formatString(R.string.AutoDeleteGlobalActionFromYou, LocaleController.formatTTLString(action.period))); } else { TLObject object = null; if (sUsers != null) { @@ -4531,26 +4556,26 @@ private void updateMessageText(AbstractMap users, AbstractMap< if (object == null) { object = fromObject; } - messageText = replaceWithLink(AndroidUtilities.replaceTags(LocaleController.formatString("AutoDeleteGlobalAction", R.string.AutoDeleteGlobalAction, LocaleController.formatTTLString(action.period))), "un1", object); + messageText = replaceWithLink(AndroidUtilities.replaceTags(formatString(R.string.AutoDeleteGlobalAction, LocaleController.formatTTLString(action.period))), "un1", object); } } else if (action.period != 0) { if (isOut()) { - messageText = LocaleController.formatString("ActionTTLYouChanged", R.string.ActionTTLYouChanged, LocaleController.formatTTLString(action.period)); + messageText = formatString(R.string.ActionTTLYouChanged, LocaleController.formatTTLString(action.period)); } else { - messageText = replaceWithLink(LocaleController.formatString("ActionTTLChanged", R.string.ActionTTLChanged, LocaleController.formatTTLString(action.period)), "un1", fromObject); + messageText = replaceWithLink(formatString(R.string.ActionTTLChanged, LocaleController.formatTTLString(action.period)), "un1", fromObject); } } else { if (isOut()) { - messageText = LocaleController.getString("ActionTTLYouDisabled", R.string.ActionTTLYouDisabled); + messageText = getString(R.string.ActionTTLYouDisabled); } else { - messageText = replaceWithLink(LocaleController.getString("ActionTTLDisabled", R.string.ActionTTLDisabled), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionTTLDisabled), "un1", fromObject); } } } else if (messageOwner.action instanceof TLRPC.TL_messageActionLoginUnknownLocation) { String date; long time = ((long) messageOwner.date) * 1000; if (LocaleController.getInstance().getFormatterDay() != null && LocaleController.getInstance().getFormatterYear() != null) { - date = LocaleController.formatString("formatDateAtTime", R.string.formatDateAtTime, LocaleController.getInstance().getFormatterYear().format(time), LocaleController.getInstance().getFormatterDay().format(time)); + date = formatString(R.string.formatDateAtTime, LocaleController.getInstance().getFormatterYear().format(time), LocaleController.getInstance().getFormatterDay().format(time)); } else { date = "" + messageOwner.date; } @@ -4559,53 +4584,53 @@ private void updateMessageText(AbstractMap users, AbstractMap< to_user = getUser(users, sUsers, messageOwner.peer_id.user_id); } String name = to_user != null ? UserObject.getFirstName(to_user) : ""; - messageText = LocaleController.formatString("NotificationUnrecognizedDevice", R.string.NotificationUnrecognizedDevice, name, date, messageOwner.action.title, messageOwner.action.address); + messageText = formatString(R.string.NotificationUnrecognizedDevice, name, date, messageOwner.action.title, messageOwner.action.address); } else if (messageOwner.action instanceof TLRPC.TL_messageActionUserJoined || messageOwner.action instanceof TLRPC.TL_messageActionContactSignUp) { - messageText = LocaleController.formatString("NotificationContactJoined", R.string.NotificationContactJoined, UserObject.getUserName(fromUser)); + messageText = formatString(R.string.NotificationContactJoined, UserObject.getUserName(fromUser)); } else if (messageOwner.action instanceof TLRPC.TL_messageActionUserUpdatedPhoto) { - messageText = LocaleController.formatString("NotificationContactNewPhoto", R.string.NotificationContactNewPhoto, UserObject.getUserName(fromUser)); + messageText = formatString(R.string.NotificationContactNewPhoto, UserObject.getUserName(fromUser)); } else if (messageOwner.action instanceof TLRPC.TL_messageEncryptedAction) { if (messageOwner.action.encryptedAction instanceof TLRPC.TL_decryptedMessageActionScreenshotMessages) { if (isOut()) { - messageText = LocaleController.formatString("ActionTakeScreenshootYou", R.string.ActionTakeScreenshootYou); + messageText = getString(R.string.ActionTakeScreenshootYou); } else { - messageText = replaceWithLink(LocaleController.getString("ActionTakeScreenshoot", R.string.ActionTakeScreenshoot), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionTakeScreenshoot), "un1", fromObject); } } else if (messageOwner.action.encryptedAction instanceof TLRPC.TL_decryptedMessageActionSetMessageTTL) { TLRPC.TL_decryptedMessageActionSetMessageTTL action = (TLRPC.TL_decryptedMessageActionSetMessageTTL) messageOwner.action.encryptedAction; if (action.ttl_seconds != 0) { if (isOut()) { - messageText = LocaleController.formatString("MessageLifetimeChangedOutgoing", R.string.MessageLifetimeChangedOutgoing, LocaleController.formatTTLString(action.ttl_seconds)); + messageText = formatString(R.string.MessageLifetimeChangedOutgoing, LocaleController.formatTTLString(action.ttl_seconds)); } else { - messageText = LocaleController.formatString("MessageLifetimeChanged", R.string.MessageLifetimeChanged, UserObject.getFirstName(fromUser), LocaleController.formatTTLString(action.ttl_seconds)); + messageText = formatString(R.string.MessageLifetimeChanged, UserObject.getFirstName(fromUser), LocaleController.formatTTLString(action.ttl_seconds)); } } else { if (isOut()) { - messageText = LocaleController.getString("MessageLifetimeYouRemoved", R.string.MessageLifetimeYouRemoved); + messageText = getString(R.string.MessageLifetimeYouRemoved); } else { - messageText = LocaleController.formatString("MessageLifetimeRemoved", R.string.MessageLifetimeRemoved, UserObject.getFirstName(fromUser)); + messageText = formatString(R.string.MessageLifetimeRemoved, UserObject.getFirstName(fromUser)); } } } } else if (messageOwner.action instanceof TLRPC.TL_messageActionScreenshotTaken) { if (isOut()) { - messageText = LocaleController.formatString("ActionTakeScreenshootYou", R.string.ActionTakeScreenshootYou); + messageText = getString(R.string.ActionTakeScreenshootYou); } else { - messageText = replaceWithLink(LocaleController.getString("ActionTakeScreenshoot", R.string.ActionTakeScreenshoot), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.ActionTakeScreenshoot), "un1", fromObject); } } else if (messageOwner.action instanceof TLRPC.TL_messageActionCreatedBroadcastList) { - messageText = LocaleController.formatString("YouCreatedBroadcastList", R.string.YouCreatedBroadcastList); + messageText = getString(R.string.YouCreatedBroadcastList); } else if (messageOwner.action instanceof TLRPC.TL_messageActionChannelCreate) { TLRPC.Chat chat = messageOwner.peer_id != null && messageOwner.peer_id.channel_id != 0 ? getChat(chats, sChats, messageOwner.peer_id.channel_id) : null; if (ChatObject.isChannel(chat) && chat.megagroup) { - messageText = LocaleController.getString("ActionCreateMega", R.string.ActionCreateMega); + messageText = getString(R.string.ActionCreateMega); } else { - messageText = LocaleController.getString("ActionCreateChannel", R.string.ActionCreateChannel); + messageText = getString(R.string.ActionCreateChannel); } } else if (messageOwner.action instanceof TLRPC.TL_messageActionChatMigrateTo) { - messageText = LocaleController.getString("ActionMigrateFromGroup", R.string.ActionMigrateFromGroup); + messageText = getString(R.string.ActionMigrateFromGroup); } else if (messageOwner.action instanceof TLRPC.TL_messageActionChannelMigrateFrom) { - messageText = LocaleController.getString("ActionMigrateFromGroup", R.string.ActionMigrateFromGroup); + messageText = getString(R.string.ActionMigrateFromGroup); } else if (messageOwner.action instanceof TLRPC.TL_messageActionPinMessage) { TLRPC.Chat chat; if (fromUser == null) { @@ -4615,9 +4640,9 @@ private void updateMessageText(AbstractMap users, AbstractMap< } generatePinMessageText(fromUser, chat); } else if (messageOwner.action instanceof TLRPC.TL_messageActionHistoryClear) { - messageText = LocaleController.getString("HistoryCleared", R.string.HistoryCleared); + messageText = getString(R.string.HistoryCleared); } else if (messageOwner.action instanceof TLRPC.TL_messageActionTopicCreate) { - messageText = LocaleController.getString("TopicCreated", R.string.TopicCreated); + messageText = getString(R.string.TopicCreated); TLRPC.TL_messageActionTopicCreate createAction = (TLRPC.TL_messageActionTopicCreate) messageOwner.action; TLRPC.TL_forumTopic forumTopic = new TLRPC.TL_forumTopic(); @@ -4625,7 +4650,7 @@ private void updateMessageText(AbstractMap users, AbstractMap< forumTopic.title = createAction.title; forumTopic.icon_color = createAction.icon_color; - messageTextShort = AndroidUtilities.replaceCharSequence("%s", LocaleController.getString("TopicWasCreatedAction", R.string.TopicWasCreatedAction), ForumUtilities.getTopicSpannedName(forumTopic, null, false)); + messageTextShort = AndroidUtilities.replaceCharSequence("%s", getString(R.string.TopicWasCreatedAction), ForumUtilities.getTopicSpannedName(forumTopic, null, false)); } else if (messageOwner.action instanceof TLRPC.TL_messageActionTopicEdit) { TLRPC.TL_messageActionTopicEdit editAction = (TLRPC.TL_messageActionTopicEdit) messageOwner.action; @@ -4646,19 +4671,19 @@ private void updateMessageText(AbstractMap users, AbstractMap< if ((messageOwner.action.flags & 8) > 0) { if (((TLRPC.TL_messageActionTopicEdit) messageOwner.action).hidden) { - messageText = replaceWithLink(LocaleController.getString("TopicHidden2", R.string.TopicHidden2), "%s", object); - messageTextShort = LocaleController.getString("TopicHidden", R.string.TopicHidden); + messageText = replaceWithLink(getString(R.string.TopicHidden2), "%s", object); + messageTextShort = getString(R.string.TopicHidden); } else { - messageText = replaceWithLink(LocaleController.getString("TopicShown2", R.string.TopicShown2), "%s", object); - messageTextShort = LocaleController.getString("TopicShown", R.string.TopicShown); + messageText = replaceWithLink(getString(R.string.TopicShown2), "%s", object); + messageTextShort = getString(R.string.TopicShown); } } else if ((messageOwner.action.flags & 4) > 0) { if (((TLRPC.TL_messageActionTopicEdit) messageOwner.action).closed) { - messageText = replaceWithLink(LocaleController.getString("TopicClosed2", R.string.TopicClosed2), "%s", object); - messageTextShort = LocaleController.getString("TopicClosed", R.string.TopicClosed); + messageText = replaceWithLink(getString(R.string.TopicClosed2), "%s", object); + messageTextShort = getString(R.string.TopicClosed); } else { - messageText = replaceWithLink(LocaleController.getString("TopicRestarted2", R.string.TopicRestarted2), "%s", object); - messageTextShort = LocaleController.getString("TopicRestarted", R.string.TopicRestarted); + messageText = replaceWithLink(getString(R.string.TopicRestarted2), "%s", object); + messageTextShort = getString(R.string.TopicRestarted); } } else { if ((messageOwner.action.flags & 2) != 0 && (messageOwner.action.flags & 1) != 0) { @@ -4668,25 +4693,25 @@ private void updateMessageText(AbstractMap users, AbstractMap< forumTopic.icon_color = ForumBubbleDrawable.serverSupportedColor[0]; CharSequence topicName = ForumUtilities.getTopicSpannedName(forumTopic, null, topicIconDrawable, false); - CharSequence str = AndroidUtilities.replaceCharSequence("%1$s", LocaleController.getString("TopicChangeIconAndTitleTo", R.string.TopicChangeIconAndTitleTo), name); + CharSequence str = AndroidUtilities.replaceCharSequence("%1$s", getString(R.string.TopicChangeIconAndTitleTo), name); messageText = AndroidUtilities.replaceCharSequence("%2$s", str, topicName); - messageTextShort = LocaleController.getString("TopicRenamed", R.string.TopicRenamed); - messageTextForReply = AndroidUtilities.replaceCharSequence("%s", LocaleController.getString("TopicChangeIconAndTitleToInReply", R.string.TopicChangeIconAndTitleToInReply), topicName); + messageTextShort = getString(R.string.TopicRenamed); + messageTextForReply = AndroidUtilities.replaceCharSequence("%s", getString(R.string.TopicChangeIconAndTitleToInReply), topicName); } else if ((messageOwner.action.flags & 2) != 0) { TLRPC.TL_forumTopic forumTopic = new TLRPC.TL_forumTopic(); forumTopic.icon_emoji_id = editAction.icon_emoji_id; forumTopic.title = ""; forumTopic.icon_color = ForumBubbleDrawable.serverSupportedColor[0]; CharSequence topicName = ForumUtilities.getTopicSpannedName(forumTopic, null, topicIconDrawable, false); - CharSequence str = AndroidUtilities.replaceCharSequence("%1$s", LocaleController.getString("TopicIconChangedTo", R.string.TopicIconChangedTo), name); + CharSequence str = AndroidUtilities.replaceCharSequence("%1$s", getString(R.string.TopicIconChangedTo), name); messageText = AndroidUtilities.replaceCharSequence("%2$s", str, topicName); - messageTextShort = LocaleController.getString("TopicIconChanged", R.string.TopicIconChanged); - messageTextForReply = AndroidUtilities.replaceCharSequence("%s", LocaleController.getString("TopicIconChangedToInReply", R.string.TopicIconChangedToInReply), topicName); + messageTextShort = getString(R.string.TopicIconChanged); + messageTextForReply = AndroidUtilities.replaceCharSequence("%s", getString(R.string.TopicIconChangedToInReply), topicName); } else if ((messageOwner.action.flags & 1) != 0) { - CharSequence str = AndroidUtilities.replaceCharSequence("%1$s", LocaleController.getString("TopicRenamedTo", R.string.TopicRenamedTo), name); + CharSequence str = AndroidUtilities.replaceCharSequence("%1$s", getString(R.string.TopicRenamedTo), name); messageText = AndroidUtilities.replaceCharSequence("%2$s", str, editAction.title); - messageTextShort = LocaleController.getString("TopicRenamed", R.string.TopicRenamed); - messageTextForReply = AndroidUtilities.replaceCharSequence("%s", LocaleController.getString("TopicRenamedToInReply", R.string.TopicRenamedToInReply), editAction.title); + messageTextShort = getString(R.string.TopicRenamed); + messageTextForReply = AndroidUtilities.replaceCharSequence("%s", getString(R.string.TopicRenamedToInReply), editAction.title); } } } else if (messageOwner.action instanceof TLRPC.TL_messageActionGameScore) { @@ -4697,41 +4722,41 @@ private void updateMessageText(AbstractMap users, AbstractMap< if (isFromUser() && messageOwner.from_id.user_id == UserConfig.getInstance(currentAccount).getClientUserId()) { if (isMissed) { if (call.video) { - messageText = LocaleController.getString("CallMessageVideoOutgoingMissed", R.string.CallMessageVideoOutgoingMissed); + messageText = getString(R.string.CallMessageVideoOutgoingMissed); } else { - messageText = LocaleController.getString("CallMessageOutgoingMissed", R.string.CallMessageOutgoingMissed); + messageText = getString(R.string.CallMessageOutgoingMissed); } } else { if (call.video) { - messageText = LocaleController.getString("CallMessageVideoOutgoing", R.string.CallMessageVideoOutgoing); + messageText = getString(R.string.CallMessageVideoOutgoing); } else { - messageText = LocaleController.getString("CallMessageOutgoing", R.string.CallMessageOutgoing); + messageText = getString(R.string.CallMessageOutgoing); } } } else { if (isMissed) { if (call.video) { - messageText = LocaleController.getString("CallMessageVideoIncomingMissed", R.string.CallMessageVideoIncomingMissed); + messageText = getString(R.string.CallMessageVideoIncomingMissed); } else { - messageText = LocaleController.getString("CallMessageIncomingMissed", R.string.CallMessageIncomingMissed); + messageText = getString(R.string.CallMessageIncomingMissed); } } else if (call.reason instanceof TLRPC.TL_phoneCallDiscardReasonBusy) { if (call.video) { - messageText = LocaleController.getString("CallMessageVideoIncomingDeclined", R.string.CallMessageVideoIncomingDeclined); + messageText = getString(R.string.CallMessageVideoIncomingDeclined); } else { - messageText = LocaleController.getString("CallMessageIncomingDeclined", R.string.CallMessageIncomingDeclined); + messageText = getString(R.string.CallMessageIncomingDeclined); } } else { if (call.video) { - messageText = LocaleController.getString("CallMessageVideoIncoming", R.string.CallMessageVideoIncoming); + messageText = getString(R.string.CallMessageVideoIncoming); } else { - messageText = LocaleController.getString("CallMessageIncoming", R.string.CallMessageIncoming); + messageText = getString(R.string.CallMessageIncoming); } } } if (call.duration > 0) { String duration = LocaleController.formatCallDuration(call.duration); - messageText = LocaleController.formatString("CallMessageWithDuration", R.string.CallMessageWithDuration, messageText, duration); + messageText = formatString(R.string.CallMessageWithDuration, messageText, duration); String _messageText = messageText.toString(); int start = _messageText.indexOf(duration); if (start != -1) { @@ -4754,13 +4779,13 @@ private void updateMessageText(AbstractMap users, AbstractMap< String domain = ((TLRPC.TL_messageActionBotAllowed) messageOwner.action).domain; TLRPC.BotApp botApp = ((TLRPC.TL_messageActionBotAllowed) messageOwner.action).app; if (((TLRPC.TL_messageActionBotAllowed) messageOwner.action).from_request) { - messageText = LocaleController.getString(R.string.ActionBotAllowedWebapp); + messageText = getString(R.string.ActionBotAllowedWebapp); } else if (botApp != null) { String botAppTitle = botApp.title; if (botAppTitle == null) { botAppTitle = ""; } - String text = LocaleController.getString("ActionBotAllowedApp", R.string.ActionBotAllowedApp); + String text = getString(R.string.ActionBotAllowedApp); int start = text.indexOf("%1$s"); SpannableString str = new SpannableString(String.format(text, botAppTitle)); TLRPC.User bot = getUser(users, sUsers, getDialogId()); @@ -4776,7 +4801,7 @@ private void updateMessageText(AbstractMap users, AbstractMap< if (domain == null) { domain = ""; } - String text = LocaleController.getString("ActionBotAllowed", R.string.ActionBotAllowed); + String text = getString(R.string.ActionBotAllowed); int start = text.indexOf("%1$s"); SpannableString str = new SpannableString(String.format(text, domain)); if (start >= 0 && !TextUtils.isEmpty(domain)) { @@ -4785,7 +4810,7 @@ private void updateMessageText(AbstractMap users, AbstractMap< messageText = str; } } else if (messageOwner.action instanceof TLRPC.TL_messageActionAttachMenuBotAllowed || messageOwner.action instanceof TLRPC.TL_messageActionBotAllowed && ((TLRPC.TL_messageActionBotAllowed) messageOwner.action).attach_menu) { - messageText = LocaleController.getString(R.string.ActionAttachMenuBotAllowed); + messageText = getString(R.string.ActionAttachMenuBotAllowed); } else if (messageOwner.action instanceof TLRPC.TL_messageActionSecureValuesSent) { TLRPC.TL_messageActionSecureValuesSent valuesSent = (TLRPC.TL_messageActionSecureValuesSent) messageOwner.action; StringBuilder str = new StringBuilder(); @@ -4795,41 +4820,41 @@ private void updateMessageText(AbstractMap users, AbstractMap< str.append(", "); } if (type instanceof TLRPC.TL_secureValueTypePhone) { - str.append(LocaleController.getString("ActionBotDocumentPhone", R.string.ActionBotDocumentPhone)); + str.append(getString(R.string.ActionBotDocumentPhone)); } else if (type instanceof TLRPC.TL_secureValueTypeEmail) { - str.append(LocaleController.getString("ActionBotDocumentEmail", R.string.ActionBotDocumentEmail)); + str.append(getString(R.string.ActionBotDocumentEmail)); } else if (type instanceof TLRPC.TL_secureValueTypeAddress) { - str.append(LocaleController.getString("ActionBotDocumentAddress", R.string.ActionBotDocumentAddress)); + str.append(getString(R.string.ActionBotDocumentAddress)); } else if (type instanceof TLRPC.TL_secureValueTypePersonalDetails) { - str.append(LocaleController.getString("ActionBotDocumentIdentity", R.string.ActionBotDocumentIdentity)); + str.append(getString(R.string.ActionBotDocumentIdentity)); } else if (type instanceof TLRPC.TL_secureValueTypePassport) { - str.append(LocaleController.getString("ActionBotDocumentPassport", R.string.ActionBotDocumentPassport)); + str.append(getString(R.string.ActionBotDocumentPassport)); } else if (type instanceof TLRPC.TL_secureValueTypeDriverLicense) { - str.append(LocaleController.getString("ActionBotDocumentDriverLicence", R.string.ActionBotDocumentDriverLicence)); + str.append(getString(R.string.ActionBotDocumentDriverLicence)); } else if (type instanceof TLRPC.TL_secureValueTypeIdentityCard) { - str.append(LocaleController.getString("ActionBotDocumentIdentityCard", R.string.ActionBotDocumentIdentityCard)); + str.append(getString(R.string.ActionBotDocumentIdentityCard)); } else if (type instanceof TLRPC.TL_secureValueTypeUtilityBill) { - str.append(LocaleController.getString("ActionBotDocumentUtilityBill", R.string.ActionBotDocumentUtilityBill)); + str.append(getString(R.string.ActionBotDocumentUtilityBill)); } else if (type instanceof TLRPC.TL_secureValueTypeBankStatement) { - str.append(LocaleController.getString("ActionBotDocumentBankStatement", R.string.ActionBotDocumentBankStatement)); + str.append(getString(R.string.ActionBotDocumentBankStatement)); } else if (type instanceof TLRPC.TL_secureValueTypeRentalAgreement) { - str.append(LocaleController.getString("ActionBotDocumentRentalAgreement", R.string.ActionBotDocumentRentalAgreement)); + str.append(getString(R.string.ActionBotDocumentRentalAgreement)); } else if (type instanceof TLRPC.TL_secureValueTypeInternalPassport) { - str.append(LocaleController.getString("ActionBotDocumentInternalPassport", R.string.ActionBotDocumentInternalPassport)); + str.append(getString(R.string.ActionBotDocumentInternalPassport)); } else if (type instanceof TLRPC.TL_secureValueTypePassportRegistration) { - str.append(LocaleController.getString("ActionBotDocumentPassportRegistration", R.string.ActionBotDocumentPassportRegistration)); + str.append(getString(R.string.ActionBotDocumentPassportRegistration)); } else if (type instanceof TLRPC.TL_secureValueTypeTemporaryRegistration) { - str.append(LocaleController.getString("ActionBotDocumentTemporaryRegistration", R.string.ActionBotDocumentTemporaryRegistration)); + str.append(getString(R.string.ActionBotDocumentTemporaryRegistration)); } } TLRPC.User user = null; if (messageOwner.peer_id != null) { user = getUser(users, sUsers, messageOwner.peer_id.user_id); } - messageText = LocaleController.formatString("ActionBotDocuments", R.string.ActionBotDocuments, UserObject.getFirstName(user), str.toString()); + messageText = formatString("ActionBotDocuments", R.string.ActionBotDocuments, UserObject.getFirstName(user), str.toString()); } else if (messageOwner.action instanceof TLRPC.TL_messageActionWebViewDataSent) { TLRPC.TL_messageActionWebViewDataSent dataSent = (TLRPC.TL_messageActionWebViewDataSent) messageOwner.action; - messageText = LocaleController.formatString("ActionBotWebViewData", R.string.ActionBotWebViewData, dataSent.text); + messageText = formatString("ActionBotWebViewData", R.string.ActionBotWebViewData, dataSent.text); } else if (messageOwner.action instanceof TLRPC.TL_messageActionSetChatTheme) { String emoticon = ((TLRPC.TL_messageActionSetChatTheme) messageOwner.action).emoticon; String userName = UserObject.getFirstName(fromUser); @@ -4840,21 +4865,21 @@ private void updateMessageText(AbstractMap users, AbstractMap< boolean isUserSelf = UserObject.isUserSelf(fromUser); if (TextUtils.isEmpty(emoticon)) { messageText = isUserSelf - ? LocaleController.formatString("ChatThemeDisabledYou", R.string.ChatThemeDisabledYou) - : LocaleController.formatString(isChannel ? R.string.ChannelThemeDisabled : R.string.ChatThemeDisabled, userName, emoticon); + ? formatString("ChatThemeDisabledYou", R.string.ChatThemeDisabledYou) + : formatString(isChannel ? R.string.ChannelThemeDisabled : R.string.ChatThemeDisabled, userName, emoticon); } else { messageText = isUserSelf - ? LocaleController.formatString("ChatThemeChangedYou", R.string.ChatThemeChangedYou, emoticon) - : LocaleController.formatString(isChannel ? R.string.ChannelThemeChangedTo : R.string.ChatThemeChangedTo, userName, emoticon); + ? formatString("ChatThemeChangedYou", R.string.ChatThemeChangedYou, emoticon) + : formatString(isChannel ? R.string.ChannelThemeChangedTo : R.string.ChatThemeChangedTo, userName, emoticon); } } else if (messageOwner.action instanceof TLRPC.TL_messageActionChatJoinedByRequest) { if (UserObject.isUserSelf(fromUser)) { boolean isChannel = ChatObject.isChannelAndNotMegaGroup(messageOwner.peer_id.channel_id, currentAccount); messageText = isChannel - ? LocaleController.getString("RequestToJoinChannelApproved", R.string.RequestToJoinChannelApproved) - : LocaleController.getString("RequestToJoinGroupApproved", R.string.RequestToJoinGroupApproved); + ? getString(R.string.RequestToJoinChannelApproved) + : getString(R.string.RequestToJoinGroupApproved); } else { - messageText = replaceWithLink(LocaleController.getString("UserAcceptedToGroupAction", R.string.UserAcceptedToGroupAction), "un1", fromObject); + messageText = replaceWithLink(getString(R.string.UserAcceptedToGroupAction), "un1", fromObject); } } } @@ -4874,9 +4899,9 @@ private void updateMessageText(AbstractMap users, AbstractMap< } else { isChannel = ChatObject.isChannelAndNotMegaGroup(fromChat); } - messageText = LocaleController.getString(isChannel ? R.string.BoostingGiveawayChannelStarted : R.string.BoostingGiveawayGroupStarted); + messageText = getString(isChannel ? R.string.BoostingGiveawayChannelStarted : R.string.BoostingGiveawayGroupStarted); } else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaGiveawayResults) { - messageText = LocaleController.getString("BoostingGiveawayResults", R.string.BoostingGiveawayResults); + messageText = getString(R.string.BoostingGiveawayResults); } else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaStory) { if (getMedia(messageOwner).via_mention) { TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(getMedia(messageOwner).user_id); @@ -4891,20 +4916,20 @@ private void updateMessageText(AbstractMap users, AbstractMap< messageText = ""; } } else { - messageText = LocaleController.getString("ForwardedStory", R.string.ForwardedStory); + messageText = getString(R.string.ForwardedStory); } } else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaDice) { messageText = getDiceEmoji(); } else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaPoll) { if (((TLRPC.TL_messageMediaPoll) getMedia(messageOwner)).poll.quiz) { - messageText = LocaleController.getString("QuizPoll", R.string.QuizPoll); + messageText = getString(R.string.QuizPoll); } else { - messageText = LocaleController.getString("Poll", R.string.Poll); + messageText = getString(R.string.Poll); } } else if (isVoiceOnce()) { - messageText = LocaleController.getString(R.string.AttachOnceAudio); + messageText = getString(R.string.AttachOnceAudio); } else if (isRoundOnce()) { - messageText = LocaleController.getString(R.string.AttachOnceRound); + messageText = getString(R.string.AttachOnceRound); } else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaPaidMedia) { TLRPC.TL_messageMediaPaidMedia paidMedia = (TLRPC.TL_messageMediaPaidMedia) getMedia(messageOwner); final int count = paidMedia.extended_media.size(); @@ -4919,38 +4944,38 @@ private void updateMessageText(AbstractMap users, AbstractMap< } if (video) break; } - messageText = count == 1 ? LocaleController.getString(video ? R.string.AttachVideo : R.string.AttachPhoto) : LocaleController.formatPluralString(video ? "Media" : "Photos", count); - messageText = StarsIntroActivity.replaceStars(LocaleController.formatString(R.string.AttachPaidMedia, messageText)); + messageText = count == 1 ? getString(video ? R.string.AttachVideo : R.string.AttachPhoto) : LocaleController.formatPluralString(video ? "Media" : "Photos", count); + messageText = StarsIntroActivity.replaceStars(formatString(R.string.AttachPaidMedia, messageText)); } else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaPhoto) { if (getMedia(messageOwner).ttl_seconds != 0 && !(messageOwner instanceof TLRPC.TL_message_secret)) { - messageText = LocaleController.getString("AttachDestructingPhoto", R.string.AttachDestructingPhoto); + messageText = getString(R.string.AttachDestructingPhoto); } else if (getGroupId() != 0) { - messageText = LocaleController.getString("Album", R.string.Album); + messageText = getString(R.string.Album); } else { - messageText = LocaleController.getString("AttachPhoto", R.string.AttachPhoto); + messageText = getString(R.string.AttachPhoto); } } else if (isVideo() || getMedia(messageOwner) instanceof TLRPC.TL_messageMediaDocument && (getDocument() instanceof TLRPC.TL_documentEmpty || getDocument() == null) && getMedia(messageOwner).ttl_seconds != 0) { if (getMedia(messageOwner).ttl_seconds != 0 && !(messageOwner instanceof TLRPC.TL_message_secret)) { if (getMedia(messageOwner).voice) { - messageText = LocaleController.getString(R.string.AttachVoiceExpired); + messageText = getString(R.string.AttachVoiceExpired); } else if (getMedia(messageOwner).round) { - messageText = LocaleController.getString(R.string.AttachRoundExpired); + messageText = getString(R.string.AttachRoundExpired); } else { - messageText = LocaleController.getString(R.string.AttachDestructingVideo); + messageText = getString(R.string.AttachDestructingVideo); } } else { - messageText = LocaleController.getString("AttachVideo", R.string.AttachVideo); + messageText = getString(R.string.AttachVideo); } } else if (isVoice()) { - messageText = LocaleController.getString("AttachAudio", R.string.AttachAudio); + messageText = getString(R.string.AttachAudio); } else if (isRoundVideo()) { - messageText = LocaleController.getString("AttachRound", R.string.AttachRound); + messageText = getString(R.string.AttachRound); } else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaGeo || getMedia(messageOwner) instanceof TLRPC.TL_messageMediaVenue) { - messageText = LocaleController.getString("AttachLocation", R.string.AttachLocation); + messageText = getString(R.string.AttachLocation); } else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaGeoLive) { - messageText = LocaleController.getString("AttachLiveLocation", R.string.AttachLiveLocation); + messageText = getString(R.string.AttachLiveLocation); } else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaContact) { - messageText = LocaleController.getString("AttachContact", R.string.AttachContact); + messageText = getString(R.string.AttachContact); if (!TextUtils.isEmpty(getMedia(messageOwner).vcard)) { vCardData = VCardData.parse(getMedia(messageOwner).vcard); } @@ -4959,25 +4984,25 @@ private void updateMessageText(AbstractMap users, AbstractMap< } else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaInvoice) { messageText = getMedia(messageOwner).description; } else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaUnsupported) { - messageText = LocaleController.getString(R.string.UnsupportedMedia2); + messageText = getString(R.string.UnsupportedMedia2); } else if (getMedia(messageOwner) instanceof TLRPC.TL_messageMediaDocument) { if (isSticker() || isAnimatedStickerDocument(getDocument(), true)) { String sch = getStickerChar(); if (sch != null && sch.length() > 0) { - messageText = String.format("%s %s", sch, LocaleController.getString("AttachSticker", R.string.AttachSticker)); + messageText = String.format("%s %s", sch, getString(R.string.AttachSticker)); } else { - messageText = LocaleController.getString("AttachSticker", R.string.AttachSticker); + messageText = getString(R.string.AttachSticker); } } else if (isMusic()) { - messageText = LocaleController.getString("AttachMusic", R.string.AttachMusic); + messageText = getString(R.string.AttachMusic); } else if (isGif()) { - messageText = LocaleController.getString("AttachGif", R.string.AttachGif); + messageText = getString(R.string.AttachGif); } else { String name = FileLoader.getDocumentFileName(getDocument()); if (!TextUtils.isEmpty(name)) { messageText = name; } else { - messageText = LocaleController.getString("AttachDocument", R.string.AttachDocument); + messageText = getString(R.string.AttachDocument); } } } @@ -5008,9 +5033,9 @@ private void updateMessageText(AbstractMap users, AbstractMap< public CharSequence getMediaTitle(TLRPC.MessageMedia media) { if (media instanceof TLRPC.TL_messageMediaGiveaway) { - return LocaleController.getString("BoostingGiveaway", R.string.BoostingGiveaway); + return getString(R.string.BoostingGiveaway); } else if (media instanceof TLRPC.TL_messageMediaGiveawayResults) { - return LocaleController.getString("BoostingGiveawayResults", R.string.BoostingGiveawayResults); + return getString(R.string.BoostingGiveawayResults); } else if (media instanceof TLRPC.TL_messageMediaStory) { if (media.via_mention) { TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(media.user_id); @@ -5026,15 +5051,15 @@ public CharSequence getMediaTitle(TLRPC.MessageMedia media) { return ""; } } else { - return LocaleController.getString("ForwardedStory", R.string.ForwardedStory); + return getString(R.string.ForwardedStory); } } else if (media instanceof TLRPC.TL_messageMediaDice) { return getDiceEmoji(); } else if (media instanceof TLRPC.TL_messageMediaPoll) { if (((TLRPC.TL_messageMediaPoll) media).poll.quiz) { - return LocaleController.getString("QuizPoll", R.string.QuizPoll); + return getString(R.string.QuizPoll); } else { - return LocaleController.getString("Poll", R.string.Poll); + return getString(R.string.Poll); } } else if (media instanceof TLRPC.TL_messageMediaPaidMedia) { TLRPC.TL_messageMediaPaidMedia paidMedia = (TLRPC.TL_messageMediaPaidMedia) media; @@ -5050,65 +5075,65 @@ public CharSequence getMediaTitle(TLRPC.MessageMedia media) { } if (video) break; } - CharSequence s = count == 1 ? LocaleController.getString(video ? R.string.AttachVideo : R.string.AttachPhoto) : LocaleController.formatPluralString(video ? "Media" : "Photos", count); - return StarsIntroActivity.replaceStars(LocaleController.formatString(R.string.AttachPaidMedia, s)); + CharSequence s = count == 1 ? getString(video ? R.string.AttachVideo : R.string.AttachPhoto) : LocaleController.formatPluralString(video ? "Media" : "Photos", count); + return StarsIntroActivity.replaceStars(formatString(R.string.AttachPaidMedia, s)); } else if (media instanceof TLRPC.TL_messageMediaPhoto) { if (media.ttl_seconds != 0 && !(messageOwner instanceof TLRPC.TL_message_secret)) { - return LocaleController.getString("AttachDestructingPhoto", R.string.AttachDestructingPhoto); + return getString(R.string.AttachDestructingPhoto); } else if (getGroupId() != 0) { - return LocaleController.getString("Album", R.string.Album); + return getString(R.string.Album); } else { - return LocaleController.getString("AttachPhoto", R.string.AttachPhoto); + return getString(R.string.AttachPhoto); } } else if (media != null && (isVideoDocument(media.document) || media instanceof TLRPC.TL_messageMediaDocument && (media.document instanceof TLRPC.TL_documentEmpty || media.document == null) && media.ttl_seconds != 0)) { if (media.ttl_seconds != 0 && !(messageOwner instanceof TLRPC.TL_message_secret)) { if (media.voice) { - return LocaleController.getString(R.string.AttachVoiceExpired); + return getString(R.string.AttachVoiceExpired); } else if (media.round) { - return LocaleController.getString(R.string.AttachRoundExpired); + return getString(R.string.AttachRoundExpired); } else { - return LocaleController.getString(R.string.AttachDestructingVideo); + return getString(R.string.AttachDestructingVideo); } } else { - return LocaleController.getString("AttachVideo", R.string.AttachVideo); + return getString(R.string.AttachVideo); } } else if (media != null && isVoiceDocument(media.document)) { - return LocaleController.getString("AttachAudio", R.string.AttachAudio); + return getString(R.string.AttachAudio); } else if (media != null && isRoundVideoDocument(media.document)) { - return LocaleController.getString("AttachRound", R.string.AttachRound); + return getString(R.string.AttachRound); } else if (media instanceof TLRPC.TL_messageMediaGeo || media instanceof TLRPC.TL_messageMediaVenue) { - return LocaleController.getString("AttachLocation", R.string.AttachLocation); + return getString(R.string.AttachLocation); } else if (media instanceof TLRPC.TL_messageMediaGeoLive) { - return LocaleController.getString("AttachLiveLocation", R.string.AttachLiveLocation); + return getString(R.string.AttachLiveLocation); } else if (media instanceof TLRPC.TL_messageMediaContact) { // if (!TextUtils.isEmpty(media.vcard)) { // vCardData = VCardData.parse(media.vcard); // } - return LocaleController.getString("AttachContact", R.string.AttachContact); + return getString(R.string.AttachContact); } else if (media instanceof TLRPC.TL_messageMediaGame) { return messageOwner.message; } else if (media instanceof TLRPC.TL_messageMediaInvoice) { return media.description; } else if (media instanceof TLRPC.TL_messageMediaUnsupported) { - return LocaleController.getString(R.string.UnsupportedMedia2); + return getString(R.string.UnsupportedMedia2); } else if (media instanceof TLRPC.TL_messageMediaDocument) { if (isStickerDocument(media.document) || isAnimatedStickerDocument(media.document, true)) { String sch = getStickerChar(); if (sch != null && sch.length() > 0) { - return String.format("%s %s", sch, LocaleController.getString("AttachSticker", R.string.AttachSticker)); + return String.format("%s %s", sch, getString(R.string.AttachSticker)); } else { - return LocaleController.getString("AttachSticker", R.string.AttachSticker); + return getString(R.string.AttachSticker); } } else if (isMusic()) { - return LocaleController.getString("AttachMusic", R.string.AttachMusic); + return getString(R.string.AttachMusic); } else if (isGif()) { - return LocaleController.getString("AttachGif", R.string.AttachGif); + return getString(R.string.AttachGif); } else { String name = FileLoader.getDocumentFileName(media.document); if (!TextUtils.isEmpty(name)) { return name; } else { - return LocaleController.getString("AttachDocument", R.string.AttachDocument); + return getString(R.string.AttachDocument); } } } @@ -5202,7 +5227,7 @@ public void setType() { } else if (isMediaEmpty()) { type = TYPE_TEXT; if (TextUtils.isEmpty(messageText) && eventId == 0) { - messageText = LocaleController.getString("EventLogOriginalCaptionEmpty", R.string.EventLogOriginalCaptionEmpty); + messageText = ""; } } else if (hasExtendedMediaPreview()) { type = TYPE_EXTENDED_MEDIA_PREVIEW; @@ -5310,7 +5335,7 @@ public void setType() { } else if (messageOwner.action instanceof TLRPC.TL_messageActionGiftPremium || messageOwner.action instanceof TLRPC.TL_messageActionGiftCode) { contentType = 1; type = TYPE_GIFT_PREMIUM; - } else if (messageOwner.action instanceof TLRPC.TL_messageActionGiftStars) { + } else if (messageOwner.action instanceof TLRPC.TL_messageActionGiftStars || messageOwner.action instanceof TLRPC.TL_messageActionPrizeStars) { contentType = 1; type = TYPE_GIFT_STARS; } else if (messageOwner.action instanceof TLRPC.TL_messageActionChatEditPhoto || messageOwner.action instanceof TLRPC.TL_messageActionUserUpdatedPhoto) { @@ -5987,7 +6012,7 @@ public CharSequence getVoiceTranscription() { return null; } if (TextUtils.isEmpty(messageOwner.voiceTranscription)) { - SpannableString ssb = new SpannableString(LocaleController.getString("NoWordsRecognized", R.string.NoWordsRecognized)); + SpannableString ssb = new SpannableString(getString(R.string.NoWordsRecognized)); ssb.setSpan(new CharacterStyle() { @Override public void updateDrawState(TextPaint textPaint) { @@ -7042,7 +7067,7 @@ public void generateLayout(TLRPC.User fromUser) { maxLines -= 8; } if (textLayout.getLineCount() > maxLines) { - String readMore = LocaleController.getString(R.string.ReadMore); + String readMore = getString(R.string.ReadMore); int readMoreWidth = (int) Math.ceil(paint.measureText("… " + readMore) + AndroidUtilities.dp(1)); float maxRight = 0; @@ -7118,6 +7143,10 @@ public void updateDrawState(TextPaint tp) { int startCharacter = textLayout.getLineStart(linesOffset); int endCharacter = textLayout.getLineEnd(linesOffset + currentBlockLinesCount - 1); + if (endCharacter - 1 >= 0 && endCharacter - 1 < textLayout.getText().length()) { + if (textLayout.getText().charAt(endCharacter - 1) == '\n') + endCharacter--; + } if (endCharacter < startCharacter) { continue; } @@ -7501,7 +7530,7 @@ public TextLayoutBlocks(MessageObject messageObject, @NonNull CharSequence text, maxLines -= 8; } if (textLayout.getLineCount() > maxLines) { - String readMore = LocaleController.getString(R.string.ReadMore); + String readMore = getString(R.string.ReadMore); int readMoreWidth = (int) Math.ceil(textPaint.measureText("… " + readMore) + AndroidUtilities.dp(1)); float maxRight = 0; @@ -7905,7 +7934,12 @@ private boolean needDrawAvatarInternal() { if (searchType != 0) { return true; } - return !isSponsored() && (isFromChat() && isFromUser() || isFromGroup() || eventId != 0 || messageOwner.fwd_from != null && messageOwner.fwd_from.saved_from_peer != null); + boolean channelSignatureProfiles = false; + if (getDialogId() < 0) { + TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-getDialogId()); + channelSignatureProfiles = (chat != null && chat.signature_profiles); + } + return !isSponsored() && (isFromChat() && isFromUser() || isFromGroup() || channelSignatureProfiles || eventId != 0 || messageOwner.fwd_from != null && messageOwner.fwd_from.saved_from_peer != null); } public boolean isFromChat() { @@ -9351,14 +9385,14 @@ public String getMusicTitle(boolean unknown) { if (title == null || title.length() == 0) { title = FileLoader.getDocumentFileName(document); if (TextUtils.isEmpty(title) && unknown) { - title = LocaleController.getString("AudioUnknownTitle", R.string.AudioUnknownTitle); + title = getString(R.string.AudioUnknownTitle); } } return title; } else if (attribute instanceof TLRPC.TL_documentAttributeVideo) { if (attribute.round_message) { if (isQuickReply()) { - return LocaleController.formatString(R.string.BusinessInReplies, "/" + getQuickReplyDisplayName()); + return formatString(R.string.BusinessInReplies, "/" + getQuickReplyDisplayName()); } return LocaleController.formatDateAudio(messageOwner.date, true); } @@ -9369,7 +9403,7 @@ public String getMusicTitle(boolean unknown) { return fileName; } } - return LocaleController.getString("AudioUnknownTitle", R.string.AudioUnknownTitle); + return getString(R.string.AudioUnknownTitle); } public double getDuration() { @@ -9455,7 +9489,7 @@ public String getMusicAuthor(boolean unknown) { } else { String performer = attribute.performer; if (TextUtils.isEmpty(performer) && unknown) { - performer = LocaleController.getString("AudioUnknownArtist", R.string.AudioUnknownArtist); + performer = getString(R.string.AudioUnknownArtist); } return performer; } @@ -9469,7 +9503,7 @@ public String getMusicAuthor(boolean unknown) { return null; } if (isOutOwner() || messageOwner.fwd_from != null && messageOwner.fwd_from.from_id instanceof TLRPC.TL_peerUser && messageOwner.fwd_from.from_id.user_id == UserConfig.getInstance(currentAccount).getClientUserId()) { - return LocaleController.getString("FromYou", R.string.FromYou); + return getString(R.string.FromYou); } TLRPC.User user = null; TLRPC.Chat chat = null; @@ -9498,7 +9532,7 @@ public String getMusicAuthor(boolean unknown) { } } } - return LocaleController.getString("AudioUnknownArtist", R.string.AudioUnknownArtist); + return getString(R.string.AudioUnknownArtist); } public TLRPC.InputStickerSet getInputStickerSet() { @@ -9592,6 +9626,7 @@ public boolean canEditMessageScheduleTime(TLRPC.Chat chat) { public boolean canForwardMessage() { if (isQuickReply()) return false; + if (type == TYPE_GIFT_STARS) return false; return !(messageOwner instanceof TLRPC.TL_message_secret) && !needDrawBluredPreview() && !isLiveLocation() && type != MessageObject.TYPE_PHONE_CALL && !isSponsored() && !messageOwner.noforwards; } @@ -10672,7 +10707,7 @@ public CharSequence getReplyQuoteNameWithIcon() { } else if (senderName != null) { return senderName; } - return LocaleController.getString(R.string.Loading); + return getString(R.string.Loading); } public boolean hasLinkMediaToMakeSmall() { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java index d24f1b9cfc..b65979c747 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java @@ -53,6 +53,7 @@ import org.telegram.messenger.browser.Browser; import org.telegram.messenger.support.LongSparseIntArray; import org.telegram.messenger.support.LongSparseLongArray; +import org.telegram.messenger.voip.VoIPPreNotificationService; import org.telegram.messenger.voip.VoIPService; import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.NativeByteBuffer; @@ -658,6 +659,10 @@ protected boolean useCache(Integer arguments) { public long starsSubscriptionAmountMax; public float starsUsdSellRate1000; public float starsUsdWithdrawRate1000; + public boolean sponsoredLinksInappAllow; + + public long paidReactionsAnonymousTime; + public Boolean paidReactionsAnonymous; public int savedDialogsPinnedLimitDefault; public int savedDialogsPinnedLimitPremium; @@ -1691,6 +1696,9 @@ public MessagesController(int num) { starsSubscriptionAmountMax = mainPreferences.getLong("starsSubscriptionAmountMax", 2500L); starsUsdSellRate1000 = mainPreferences.getFloat("starsUsdSellRate1000", 2000); starsUsdWithdrawRate1000 = mainPreferences.getFloat("starsUsdWithdrawRate1000", 1200); + sponsoredLinksInappAllow = mainPreferences.getBoolean("sponsoredLinksInappAllow", false); + paidReactionsAnonymousTime = mainPreferences.getLong("paidReactionsAnonymousTime", 0); + paidReactionsAnonymous = mainPreferences.contains("paidReactionsAnonymous") && (System.currentTimeMillis() - paidReactionsAnonymousTime) < 1000 * 60 * 60 * 2 ? mainPreferences.getBoolean("paidReactionsAnonymous", false) : null; scheduleTranscriptionUpdate(); // BuildVars.GOOGLE_AUTH_CLIENT_ID = mainPreferences.getString("googleAuthClientId", BuildVars.GOOGLE_AUTH_CLIENT_ID); if (mainPreferences.contains("dcDomainName2")) { @@ -4414,6 +4422,17 @@ private void applyAppConfig(TLRPC.TL_jsonObject object) { } break; } + case "sponsored_links_inapp_allow": { + if (value.value instanceof TLRPC.TL_jsonBool) { + TLRPC.TL_jsonBool bool = (TLRPC.TL_jsonBool) value.value; + if (bool.value != sponsoredLinksInappAllow) { + sponsoredLinksInappAllow = bool.value; + editor.putBoolean("sponsoredLinksInappAllow", sponsoredLinksInappAllow); + changed = true; + } + } + break; + } case "ignore_restriction_reasons": { HashSet newReasons = new HashSet<>(); if (value.value instanceof TLRPC.TL_jsonArray) { @@ -10094,77 +10113,77 @@ private void updatePrintingStrings() { if (isGroup) { text = LocaleController.formatString("IsRecordingAudio", R.string.IsRecordingAudio, getUserNameForTyping(user)); } else { - text = LocaleController.getString("RecordingAudio", R.string.RecordingAudio); + text = LocaleController.getString(R.string.RecordingAudio); } type = 1; } else if (pu.action instanceof TLRPC.TL_sendMessageRecordRoundAction) { if (isGroup) { text = LocaleController.formatString("IsRecordingRound", R.string.IsRecordingRound, getUserNameForTyping(user)); } else { - text = LocaleController.getString("RecordingRound", R.string.RecordingRound); + text = LocaleController.getString(R.string.RecordingRound); } type = 4; } else if (pu.action instanceof TLRPC.TL_sendMessageUploadRoundAction) { if (isGroup) { text = LocaleController.formatString("IsSendingVideo", R.string.IsSendingVideo, getUserNameForTyping(user)); } else { - text = LocaleController.getString("SendingVideoStatus", R.string.SendingVideoStatus); + text = LocaleController.getString(R.string.SendingVideoStatus); } type = 4; } else if (pu.action instanceof TLRPC.TL_sendMessageUploadAudioAction) { if (isGroup) { text = LocaleController.formatString("IsSendingAudio", R.string.IsSendingAudio, getUserNameForTyping(user)); } else { - text = LocaleController.getString("SendingAudio", R.string.SendingAudio); + text = LocaleController.getString(R.string.SendingAudio); } type = 2; } else if (pu.action instanceof TLRPC.TL_sendMessageUploadVideoAction) { if (isGroup) { text = LocaleController.formatString("IsSendingVideo", R.string.IsSendingVideo, getUserNameForTyping(user)); } else { - text = LocaleController.getString("SendingVideoStatus", R.string.SendingVideoStatus); + text = LocaleController.getString(R.string.SendingVideoStatus); } type = 2; } else if (pu.action instanceof TLRPC.TL_sendMessageRecordVideoAction) { if (isGroup) { text = LocaleController.formatString("IsRecordingVideo", R.string.IsRecordingVideo, getUserNameForTyping(user)); } else { - text = LocaleController.getString("RecordingVideoStatus", R.string.RecordingVideoStatus); + text = LocaleController.getString(R.string.RecordingVideoStatus); } type = 2; } else if (pu.action instanceof TLRPC.TL_sendMessageUploadDocumentAction) { if (isGroup) { text = LocaleController.formatString("IsSendingFile", R.string.IsSendingFile, getUserNameForTyping(user)); } else { - text = LocaleController.getString("SendingFile", R.string.SendingFile); + text = LocaleController.getString(R.string.SendingFile); } type = 2; } else if (pu.action instanceof TLRPC.TL_sendMessageUploadPhotoAction) { if (isGroup) { text = LocaleController.formatString("IsSendingPhoto", R.string.IsSendingPhoto, getUserNameForTyping(user)); } else { - text = LocaleController.getString("SendingPhoto", R.string.SendingPhoto); + text = LocaleController.getString(R.string.SendingPhoto); } type = 2; } else if (pu.action instanceof TLRPC.TL_sendMessageGamePlayAction) { if (isGroup) { text = LocaleController.formatString("IsSendingGame", R.string.IsSendingGame, getUserNameForTyping(user)); } else { - text = LocaleController.getString("SendingGame", R.string.SendingGame); + text = LocaleController.getString(R.string.SendingGame); } type = 3; } else if (pu.action instanceof TLRPC.TL_sendMessageGeoLocationAction) { if (isGroup) { text = LocaleController.formatString("IsSelectingLocation", R.string.IsSelectingLocation, getUserNameForTyping(user)); } else { - text = LocaleController.getString("SelectingLocation", R.string.SelectingLocation); + text = LocaleController.getString(R.string.SelectingLocation); } type = 0; } else if (pu.action instanceof TLRPC.TL_sendMessageChooseContactAction) { if (isGroup) { text = LocaleController.formatString("IsSelectingContact", R.string.IsSelectingContact, getUserNameForTyping(user)); } else { - text = LocaleController.getString("SelectingContact", R.string.SelectingContact); + text = LocaleController.getString(R.string.SelectingContact); } type = 0; } else if (pu.action instanceof TLRPC.TL_sendMessageEmojiInteractionSeen) { @@ -10179,14 +10198,14 @@ private void updatePrintingStrings() { if (isGroup) { text = LocaleController.formatString("IsChoosingSticker", R.string.IsChoosingSticker, getUserNameForTyping(user)); } else { - text = LocaleController.getString("ChoosingSticker", R.string.ChoosingSticker); + text = LocaleController.getString(R.string.ChoosingSticker); } type = 5; } else { if (isGroup) { text = LocaleController.formatString("IsTypingGroup", R.string.IsTypingGroup, getUserNameForTyping(user)); } else { - text = LocaleController.getString("Typing", R.string.Typing); + text = LocaleController.getString(R.string.Typing); } type = 0; } @@ -11009,9 +11028,7 @@ public void processLoadedMessages(TLRPC.messages_Messages messagesRes, int resCo } Timer.done(t3); - if (loaderLogger != null) { - loaderLogger.finish(); - } + Timer.finish(loaderLogger); }); } @@ -11059,7 +11076,7 @@ public TLRPC.TL_dialogFolder ensureFolderDialogExists(int folderId, boolean[] fo dialogFolder.peer = new TLRPC.TL_peerUser(); dialogFolder.folder = new TLRPC.TL_folder(); dialogFolder.folder.id = folderId; - dialogFolder.folder.title = LocaleController.getString("ArchivedChats", R.string.ArchivedChats); + dialogFolder.folder.title = LocaleController.getString(R.string.ArchivedChats); dialogFolder.pinned = true; int maxPinnedNum = 0; @@ -14797,6 +14814,7 @@ private void processChannelsUpdatesQueue(long channelId, int state) { if (updateState == 0) { processUpdates(updates, true); anyProceed = true; + if (a >= updatesQueue.size()) break; updatesQueue.remove(a); a--; } else if (updateState == 1) { @@ -14818,6 +14836,7 @@ private void processChannelsUpdatesQueue(long channelId, int state) { } return; } else { + if (a >= updatesQueue.size()) break; updatesQueue.remove(a); a--; } @@ -16122,7 +16141,9 @@ public void checkChatInviter(long chatId, boolean createMessage) { messagesArr.add(message); MessageObject obj = new MessageObject(currentAccount, message, usersDict, true, false); pushMessages.add(obj); - getMessagesStorage().getStorageQueue().postRunnable(() -> AndroidUtilities.runOnUIThread(() -> getNotificationsController().processNewMessages(pushMessages, true, false, null))); + if (message.from_id.user_id != getUserConfig().getClientUserId()) { + getMessagesStorage().getStorageQueue().postRunnable(() -> AndroidUtilities.runOnUIThread(() -> getNotificationsController().processNewMessages(pushMessages, true, false, null))); + } getMessagesStorage().putMessages(messagesArr, true, true, false, 0, 0, 0); } else { pushMessages = null; @@ -17855,16 +17876,6 @@ public boolean processUpdateArray(ArrayList updates, ArrayList(); - } - updatesOnMainThread.add(baseUpdate); - } else if (baseUpdate instanceof TLRPC.TL_updateContactsReset) { - if (updatesOnMainThread == null) { - updatesOnMainThread = new ArrayList<>(); - } - updatesOnMainThread.add(baseUpdate); } else if (baseUpdate instanceof TLRPC.TL_updateChannelAvailableMessages) { TLRPC.TL_updateChannelAvailableMessages update = (TLRPC.TL_updateChannelAvailableMessages) baseUpdate; if (clearHistoryMessages == null) { @@ -17875,11 +17886,6 @@ public boolean processUpdateArray(ArrayList updates, ArrayList(); - } - updatesOnMainThread.add(baseUpdate); } else if (baseUpdate instanceof TLRPC.TL_updateMessagePoll) { TLRPC.TL_updateMessagePoll update = (TLRPC.TL_updateMessagePoll) baseUpdate; long time = getSendMessagesHelper().getVoteSendTime(update.poll_id); @@ -17990,7 +17996,10 @@ public boolean processUpdateArray(ArrayList updates, ArrayList(); @@ -18276,7 +18285,7 @@ public boolean processUpdateArray(ArrayList updates, ArrayList updates, ArrayList= Build.VERSION_CODES.O) { + if (Build.VERSION.SDK_INT >= 33) { + intent.putExtra("accept", true); + VoIPPreNotificationService.show(ApplicationLoader.applicationContext, intent, call); + } else if (!notificationsDisabled && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { ApplicationLoader.applicationContext.startForegroundService(intent); } else { ApplicationLoader.applicationContext.startService(intent); @@ -18702,13 +18714,18 @@ public boolean processUpdateArray(ArrayList updates, ArrayList { getNotificationCenter().postNotificationName(NotificationCenter.messagesDeleted, dbMessages, channelId, false); - callback.run(); + if (res.offset > 0) { + deleteMessagesRange(dialogId, channelId, minDate, maxDate, forAll, callback); + } else { + callback.run(); + } }); }); } else { @@ -22178,14 +22207,14 @@ public void openApp(BaseFragment _fragment, TLRPC.User bot, int classGuid, Brows webViewSheet.setDefaultFullsize(true); webViewSheet.setNeedsContext(true); webViewSheet.setParentActivity(fragment.getParentActivity()); - webViewSheet.requestWebView(null, props); + webViewSheet.requestWebView(fragment, props); webViewSheet.show(); } else { BotWebViewAttachedSheet sheet = fragment.createBotViewer(); sheet.setDefaultFullsize(true); sheet.setNeedsContext(false); sheet.setParentActivity(fragment.getParentActivity()); - sheet.requestWebView(null, props); + sheet.requestWebView(fragment, props); sheet.show(); } } else if (botInfo[0] != null && botInfo[0].menu_button instanceof TL_bots.TL_botMenuButton) { @@ -22203,14 +22232,14 @@ public void openApp(BaseFragment _fragment, TLRPC.User bot, int classGuid, Brows webViewSheet.setDefaultFullsize(false); webViewSheet.setNeedsContext(true); webViewSheet.setParentActivity(fragment.getParentActivity()); - webViewSheet.requestWebView(null, props); + webViewSheet.requestWebView(fragment, props); webViewSheet.show(); } else { BotWebViewAttachedSheet sheet = fragment.createBotViewer(); sheet.setDefaultFullsize(false); sheet.setNeedsContext(false); sheet.setParentActivity(fragment.getParentActivity()); - sheet.requestWebView(null, props); + sheet.requestWebView(fragment, props); sheet.show(); } } else { @@ -22320,4 +22349,13 @@ public boolean showSensitiveContent() { return ignoreRestrictionReasons == null || ignoreRestrictionReasons.contains("sensitive"); } + private boolean loadingArePaidReactionsAnonymous; + public Boolean arePaidReactionsAnonymous() { + if (paidReactionsAnonymous == null && !loadingArePaidReactionsAnonymous) { + loadingArePaidReactionsAnonymous = true; + getConnectionsManager().sendRequest(new TLRPC.TL_messages_getPaidReactionPrivacy(), null); + } + return paidReactionsAnonymous; + } + } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java index 35b9f599c6..328929dc6d 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java @@ -106,7 +106,7 @@ public class MessagesStorage extends BaseController { private static SparseArray Instance = new SparseArray(); private static final Object lockObject = new Object(); - public final static int LAST_DB_VERSION = 155; + public final static int LAST_DB_VERSION = 156; private boolean databaseMigrationInProgress; public boolean showClearDatabaseAlert; private LongSparseIntArray dialogIsForum = new LongSparseIntArray(); @@ -725,6 +725,7 @@ public static void createTables(SQLiteDatabase database) throws SQLiteException database.executeFast("CREATE TABLE business_links(data BLOB, order_value INTEGER);").stepThis().dispose(); database.executeFast("CREATE TABLE fact_checks(hash INTEGER PRIMARY KEY, data BLOB, expires INTEGER);").stepThis().dispose(); + database.executeFast("CREATE TABLE popular_bots(uid INTEGER PRIMARY KEY, time INTEGER, offset TEXT);").stepThis().dispose(); database.executeFast("PRAGMA user_version = " + MessagesStorage.LAST_DB_VERSION).stepThis().dispose(); @@ -14842,6 +14843,10 @@ public void putMessages(TLRPC.messages_Messages messages, long dialogId, int loa sameMedia = oldMessage.media.photo.id == message.media.photo.id; } else if (oldMessage.media instanceof TLRPC.TL_messageMediaDocument && message.media instanceof TLRPC.TL_messageMediaDocument && oldMessage.media.document != null && message.media.document != null) { sameMedia = oldMessage.media.document.id == message.media.document.id; + } else if (MessageObject.getPhoto(oldMessage) != null && MessageObject.getPhoto(message) != null) { + sameMedia = MessageObject.getPhoto(oldMessage).id == MessageObject.getPhoto(message).id; + } else if (MessageObject.getDocument(oldMessage) != null && MessageObject.getDocument(message) != null) { + sameMedia = MessageObject.getDocument(oldMessage).id == MessageObject.getDocument(message).id; } if (oldMessage.out && !message.out) { message.out = oldMessage.out; @@ -16640,9 +16645,9 @@ public void localSearch(int dialogsType, String query, ArrayList resultA if (TextUtils.isEmpty(search1)) { return; } - String savedMessages = LocaleController.getString("SavedMessages", R.string.SavedMessages).toLowerCase(); + String savedMessages = LocaleController.getString(R.string.SavedMessages).toLowerCase(); String savedMessages2 = "saved messages"; - String replies = LocaleController.getString("RepliesTitle", R.string.RepliesTitle).toLowerCase(); + String replies = LocaleController.getString(R.string.RepliesTitle).toLowerCase(); String replies2 = "replies"; String search2 = LocaleController.getInstance().getTranslitString(search1); if (search1.equals(search2) || search2.length() == 0) { @@ -16722,7 +16727,7 @@ public void localSearch(int dialogsType, String query, ArrayList resultA if (user != null) { DialogsSearchAdapter.DialogSearchResult dialogSearchResult = new DialogsSearchAdapter.DialogSearchResult(); dialogSearchResult.date = Integer.MAX_VALUE; - dialogSearchResult.name = LocaleController.getString("RepliesTitle", R.string.RepliesTitle); + dialogSearchResult.name = LocaleController.getString(R.string.RepliesTitle); dialogSearchResult.object = user; dialogsResult.put(user.id, dialogSearchResult); resultCount++; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MusicPlayerService.java b/TMessagesProj/src/main/java/org/telegram/messenger/MusicPlayerService.java index f00ad0bde9..95b69c9a8f 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MusicPlayerService.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MusicPlayerService.java @@ -360,9 +360,9 @@ private void createNotification(MessageObject messageObject, boolean forBitmap) fullAlbumArt = albumArt; } if (messageObject.isVoice()) { - contentText = LocaleController.getString("AttachAudio", R.string.AttachAudio); + contentText = LocaleController.getString(R.string.AttachAudio); } else { - contentText = LocaleController.getString("AttachRound", R.string.AttachRound); + contentText = LocaleController.getString(R.string.AttachRound); } } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { @@ -403,15 +403,15 @@ private void createNotification(MessageObject messageObject, boolean forBitmap) bldr.setLargeIcon(albumArtPlaceholder); } - final String nextDescription = LocaleController.getString("Next", R.string.Next); - final String previousDescription = LocaleController.getString("AccDescrPrevious", R.string.AccDescrPrevious); + final String nextDescription = LocaleController.getString(R.string.Next); + final String previousDescription = LocaleController.getString(R.string.AccDescrPrevious); if (MediaController.getInstance().isDownloadingCurrentMessage()) { playbackState.setState(PlaybackState.STATE_BUFFERING, 0, 1).setActions(0); if (messageObject.isMusic()) { bldr.addAction(new Notification.Action.Builder(R.drawable.ic_action_previous, previousDescription, pendingPrev).build()); } - bldr.addAction(new Notification.Action.Builder(R.drawable.loading_animation2, LocaleController.getString("Loading", R.string.Loading), null).build()); + bldr.addAction(new Notification.Action.Builder(R.drawable.loading_animation2, LocaleController.getString(R.string.Loading), null).build()); if (messageObject.isMusic()) { bldr.addAction(new Notification.Action.Builder(R.drawable.ic_action_next, nextDescription, pendingNext).build()); } @@ -424,7 +424,7 @@ private void createNotification(MessageObject messageObject, boolean forBitmap) MediaController.getInstance().getPlayingMessageObject().audioProgressSec * 1000L, getPlaybackSpeed(isPlaying, messageObject)) .setActions(actions); - final String playPauseTitle = isPlaying ? LocaleController.getString("AccActionPause", R.string.AccActionPause) : LocaleController.getString("AccActionPlay", R.string.AccActionPlay); + final String playPauseTitle = isPlaying ? LocaleController.getString(R.string.AccActionPause) : LocaleController.getString(R.string.AccActionPlay); if (messageObject.isMusic()) { bldr.addAction(new Notification.Action.Builder(R.drawable.ic_action_previous, previousDescription, pendingPrev).build()); } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationBadge.java b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationBadge.java index 48df3e34ae..c7ed8cce83 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationBadge.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationBadge.java @@ -479,6 +479,7 @@ public static class VivoHomeBadger implements Badger { @Override public void executeBadge(int badgeCount) { Intent intent = new Intent("launcher.action.CHANGE_APPLICATION_NOTIFICATION_NUM"); + intent.setPackage("com.vivo.launcher"); intent.putExtra("packageName", ApplicationLoader.applicationContext.getPackageName()); intent.putExtra("className", componentName.getClassName()); intent.putExtra("notificationNum", badgeCount); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationCenter.java b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationCenter.java index 88fcd958ac..775715f3da 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationCenter.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationCenter.java @@ -256,6 +256,7 @@ public class NotificationCenter { public static final int availableEffectsUpdate = totalEvents++; public static final int starOptionsLoaded = totalEvents++; public static final int starGiftOptionsLoaded = totalEvents++; + public static final int starGiveawayOptionsLoaded = totalEvents++; public static final int starBalanceUpdated = totalEvents++; public static final int starTransactionsLoaded = totalEvents++; public static final int starSubscriptionsLoaded = totalEvents++; @@ -329,6 +330,7 @@ public class NotificationCenter { public static final int userEmojiStatusUpdated = totalEvents++; public static final int requestPermissions = totalEvents++; public static final int permissionsGranted = totalEvents++; + public static final int activityPermissionsGranted = totalEvents++; public static final int topicsDidLoaded = totalEvents++; public static final int chatSwithcedToForum = totalEvents++; public static final int didUpdateGlobalAutoDeleteTimer = totalEvents++; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationDismissReceiver.java b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationDismissReceiver.java index d3016505f0..ab7c91db9b 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationDismissReceiver.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationDismissReceiver.java @@ -30,8 +30,10 @@ public void onReceive(Context context, Intent intent) { } else if (intent.hasExtra("storyReaction") && intent.getBooleanExtra("storyReaction", false)) { NotificationsController.getInstance(currentAccount).processIgnoreStoryReactions(); } else if (dialogId == 0) { + FileLog.d("set dismissDate of global to " + date); MessagesController.getNotificationsSettings(currentAccount).edit().putInt("dismissDate", date).commit(); } else { + FileLog.d("set dismissDate of " + dialogId + " to " + date); MessagesController.getNotificationsSettings(currentAccount).edit().putInt("dismissDate" + dialogId, date).commit(); } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsController.java b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsController.java index fc1027a79c..a1eda8413a 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsController.java @@ -1019,6 +1019,7 @@ public void processEditedMessages(LongSparseArray> edit } public void processNewMessages(ArrayList messageObjects, boolean isLast, boolean isFcm, CountDownLatch countDownLatch) { + FileLog.d("NotificationsController: processNewMessages msgs.size()=" + (messageObjects == null ? "null" : messageObjects.size()) + " isLast=" + isLast + " isFcm=" + isFcm + ")"); if (messageObjects.isEmpty()) { if (countDownLatch != null) { countDownLatch.countDown(); @@ -1044,6 +1045,7 @@ public void processNewMessages(ArrayList messageObjects, boolean messageObject.messageOwner.action instanceof TLRPC.TL_messageActionSetMessagesTTL || messageObject.messageOwner.silent && (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionContactSignUp || messageObject.messageOwner.action instanceof TLRPC.TL_messageActionUserJoined)) || MessageObject.isTopicActionMessage(messageObject)) { + FileLog.d("skipped message because 1"); continue; } if (NekoConfig.ignoreBlocked.Bool() && getMessagesController().blockePeers.indexOfKey(messageObject.getSenderId()) >= 0) { @@ -1122,9 +1124,11 @@ public void processNewMessages(ArrayList messageObjects, boolean getMessagesStorage().putPushMessage(messageObject); } } + FileLog.d("skipped message because old message with same dialog and message ids exist: did=" + did + ", mid="+mid); continue; } if (edited) { + FileLog.d("skipped message because edited"); continue; } if (isFcm) { @@ -1137,10 +1141,12 @@ public void processNewMessages(ArrayList messageObjects, boolean if (!isFcm) { playInChatSound(); } + FileLog.d("skipped message because chat is already opened (openedDialogId = " + openedDialogId + ")"); continue; } if (messageObject.messageOwner.mentioned) { if (!allowPinned && messageObject.messageOwner.action instanceof TLRPC.TL_messageActionPinMessage) { + FileLog.d("skipped message because message is mention of pinned"); continue; } dialogId = messageObject.getFromChatId(); @@ -1159,6 +1165,7 @@ public void processNewMessages(ArrayList messageObjects, boolean int notifyOverride = getNotifyOverride(preferences, dialogId, topicId); if (notifyOverride == -1) { value = isGlobalNotificationsEnabled(dialogId, isChannel, messageObject.isReactionPush, messageObject.isStoryReactionPush); + FileLog.d("NotificationsController: process new messages, isGlobalNotificationsEnabled("+dialogId+", "+isChannel+", "+messageObject.isReactionPush+", "+messageObject.isStoryReactionPush+") = " + value); /*if (BuildVars.DEBUG_PRIVATE_VERSION && BuildVars.LOGS_ENABLED) { FileLog.d("global notify settings for " + dialog_id + " = " + value); }*/ @@ -1169,6 +1176,7 @@ public void processNewMessages(ArrayList messageObjects, boolean settingsCache.put(dialogId, value); } + FileLog.d("NotificationsController: process new messages, value is " + value + " ("+dialogId+", "+isChannel+", "+messageObject.isReactionPush+", "+messageObject.isStoryReactionPush+")"); if (value) { if (!isFcm) { popup = addToPopupMessages(popupArrayAdd, messageObject, dialogId, isChannel, preferences); @@ -1222,9 +1230,11 @@ public void processNewMessages(ArrayList messageObjects, boolean } if (isFcm || hasScheduled) { if (edited) { + FileLog.d("NotificationsController processNewMessages: edited branch, showOrUpdateNotification " + notifyCheck); delayedPushMessages.clear(); showOrUpdateNotification(notifyCheck); } else if (added) { + FileLog.d("NotificationsController processNewMessages: added branch"); MessageObject messageObject = messageObjects.get(0); long dialog_id = messageObject.getDialogId(); long topicId = MessageObject.getTopicId(currentAccount, messageObject.messageOwner, getMessagesController().isForum(dialog_id)); @@ -1270,6 +1280,7 @@ public void processNewMessages(ArrayList messageObjects, boolean } if (old_unread_count != total_unread_count || storiesUpdated) { delayedPushMessages.clear(); + FileLog.d("NotificationsController processNewMessages: added branch: " + notifyCheck); showOrUpdateNotification(notifyCheck); int pushDialogsCount = pushDialogs.size(); AndroidUtilities.runOnUIThread(() -> { @@ -1645,58 +1656,65 @@ public void processLoadedUnreadMessages(LongSparseArray dialogs, ArrayL private int getTotalAllUnreadCount() { int count = 0; + FileLog.d("getTotalAllUnreadCount: init 0"); for (int a : SharedConfig.activeAccounts) { - if (UserConfig.getInstance(a).isClientActivated()) { - NotificationsController controller = getInstance(a); - if (controller.showBadgeNumber) { - if (controller.showBadgeMessages) { - if (controller.showBadgeMuted) { - try { - final ArrayList dialogs = new ArrayList<>(MessagesController.getInstance(a).allDialogs); - for (int i = 0, N = dialogs.size(); i < N; i++) { - TLRPC.Dialog dialog = dialogs.get(i); - if (dialog != null && DialogObject.isChatDialog(dialog.id)) { - TLRPC.Chat chat = getMessagesController().getChat(-dialog.id); - if (ChatObject.isNotInChat(chat)) { - continue; - } - } - if (dialog != null) { - count += MessagesController.getInstance(a).getDialogUnreadCount(dialog); + if (!UserConfig.getInstance(a).isClientActivated() || !SharedConfig.showNotificationsForAllAccounts && UserConfig.selectedAccount != a) { + continue; + } + NotificationsController controller = getInstance(a); + if (controller.showBadgeNumber) { + if (controller.showBadgeMessages) { + if (controller.showBadgeMuted) { + try { + final ArrayList dialogs = new ArrayList<>(MessagesController.getInstance(a).allDialogs); + for (int i = 0, N = dialogs.size(); i < N; i++) { + TLRPC.Dialog dialog = dialogs.get(i); + if (dialog != null && DialogObject.isChatDialog(dialog.id)) { + TLRPC.Chat chat = getMessagesController().getChat(-dialog.id); + if (ChatObject.isNotInChat(chat)) { + continue; } } - } catch (Exception e) { - FileLog.e(e); + if (dialog != null) { + FileLog.d("getTotalAllUnreadCount: account=" + a + " count += getDialogUnreadCount (" + MessagesController.getInstance(a).getDialogUnreadCount(dialog) + ")"); + count += MessagesController.getInstance(a).getDialogUnreadCount(dialog); + } } - } else { - count += controller.total_unread_count; + } catch (Exception e) { + FileLog.e(e); } } else { - if (controller.showBadgeMuted) { - try { - for (int i = 0, N = MessagesController.getInstance(a).allDialogs.size(); i < N; i++) { - TLRPC.Dialog dialog = MessagesController.getInstance(a).allDialogs.get(i); - if (DialogObject.isChatDialog(dialog.id)) { - TLRPC.Chat chat = getMessagesController().getChat(-dialog.id); - if (ChatObject.isNotInChat(chat)) { - continue; - } - } - if (MessagesController.getInstance(a).getDialogUnreadCount(dialog) != 0) { - count++; + FileLog.d("getTotalAllUnreadCount: account=" + a + " count += total_unread_count (" + controller.total_unread_count + ")"); + count += controller.total_unread_count; + } + } else { + if (controller.showBadgeMuted) { + try { + for (int i = 0, N = MessagesController.getInstance(a).allDialogs.size(); i < N; i++) { + TLRPC.Dialog dialog = MessagesController.getInstance(a).allDialogs.get(i); + if (DialogObject.isChatDialog(dialog.id)) { + TLRPC.Chat chat = getMessagesController().getChat(-dialog.id); + if (ChatObject.isNotInChat(chat)) { + continue; } } - } catch (Exception e) { - //ignore, no thread synchronizations for fast - FileLog.e(e, false); + if (MessagesController.getInstance(a).getDialogUnreadCount(dialog) != 0) { + FileLog.d("getTotalAllUnreadCount: account=" + a + " count++ if getDialogUnreadCount != 0 (" + MessagesController.getInstance(a).getDialogUnreadCount(dialog) + ")"); + count++; + } } - } else { - count += controller.pushDialogs.size(); + } catch (Exception e) { + //ignore, no thread synchronizations for fast + FileLog.e(e, false); } + } else { + FileLog.d("getTotalAllUnreadCount: account=" + a + " count += controller.pushDialogs (" + controller.pushDialogs.size() + ")"); + count += controller.pushDialogs.size(); } } } } + FileLog.d("getTotalAllUnreadCount: total is " + count); return count; } @@ -1708,13 +1726,14 @@ private void setBadge(int count) { if (lastBadgeCount == count) { return; } + FileLog.d("setBadge " + count); lastBadgeCount = count; NotificationBadge.applyCount(count); } private String getShortStringForMessage(MessageObject messageObject, String[] userName, boolean[] preview) { if (AndroidUtilities.needShowPasscode() || SharedConfig.isWaitingForPasscodeEnter) { - return LocaleController.getString("NotificationHiddenMessage", R.string.NotificationHiddenMessage); + return LocaleController.getString(R.string.NotificationHiddenMessage); } long dialogId = messageObject.messageOwner.dialog_id; long chat_id = messageObject.messageOwner.peer_id.chat_id != 0 ? messageObject.messageOwner.peer_id.chat_id : messageObject.messageOwner.peer_id.channel_id; @@ -1733,7 +1752,7 @@ private String getShortStringForMessage(MessageObject messageObject, String[] us if (preview != null) { preview[0] = false; } - return LocaleController.getString("Message", R.string.Message); + return LocaleController.getString(R.string.Message); } } else if (chat_id != 0) { if (messageObject.messageOwner.peer_id.channel_id == 0 || messageObject.isSupergroup()) { @@ -1828,16 +1847,16 @@ private String getShortStringForMessage(MessageObject messageObject, String[] us String msg = null; if (DialogObject.isEncryptedDialog(dialogId)) { userName[0] = null; - return LocaleController.getString("NotificationHiddenMessage", R.string.NotificationHiddenMessage); + return LocaleController.getString(R.string.NotificationHiddenMessage); } else { boolean isChannel = ChatObject.isChannel(chat) && !chat.megagroup; if (dialogPreviewEnabled && (chat_id == 0 && fromId != 0 && preferences.getBoolean("EnablePreviewAll", true) || chat_id != 0 && (!isChannel && preferences.getBoolean("EnablePreviewGroup", true) || isChannel && preferences.getBoolean("EnablePreviewChannel", true)))) { if (messageObject.messageOwner instanceof TLRPC.TL_messageService) { userName[0] = null; if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionSetSameChatWallPaper) { - return LocaleController.getString("WallpaperSameNotification", R.string.WallpaperSameNotification); + return LocaleController.getString(R.string.WallpaperSameNotification); } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionSetChatWallPaper) { - return LocaleController.getString("WallpaperNotification", R.string.WallpaperNotification); + return LocaleController.getString(R.string.WallpaperNotification); } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionGeoProximityReached) { return messageObject.messageText.toString(); } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionUserJoined || messageObject.messageOwner.action instanceof TLRPC.TL_messageActionContactSignUp) { @@ -1851,9 +1870,9 @@ private String getShortStringForMessage(MessageObject messageObject, String[] us return messageObject.messageText.toString(); } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionPhoneCall) { if (messageObject.messageOwner.action.video) { - return LocaleController.getString("CallMessageVideoIncomingMissed", R.string.CallMessageVideoIncomingMissed); + return LocaleController.getString(R.string.CallMessageVideoIncomingMissed); } else { - return LocaleController.getString("CallMessageIncomingMissed", R.string.CallMessageIncomingMissed); + return LocaleController.getString(R.string.CallMessageIncomingMissed); } } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionChatAddUser) { long singleUserId = messageObject.messageOwner.action.user_id; @@ -1930,7 +1949,7 @@ private String getShortStringForMessage(MessageObject messageObject, String[] us return LocaleController.formatString("NotificationGroupInvitedToCall", R.string.NotificationGroupInvitedToCall, name, chat.title, names.toString()); } } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionGiftCode) { - return LocaleController.getString("BoostingReceivedGiftNoName", R.string.BoostingReceivedGiftNoName); + return LocaleController.getString(R.string.BoostingReceivedGiftNoName); } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionChatJoinedByLink) { return LocaleController.formatString("NotificationInvitedToGroupByLink", R.string.NotificationInvitedToGroupByLink, name, chat.title); } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionChatEditTitle) { @@ -1971,6 +1990,10 @@ private String getShortStringForMessage(MessageObject messageObject, String[] us return LocaleController.formatString("ActionMigrateFromGroupNotify", R.string.ActionMigrateFromGroupNotify, messageObject.messageOwner.action.title); } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionScreenshotTaken) { return messageObject.messageText.toString(); + } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionGiveawayLaunch) { + return messageObject.messageText.toString(); + } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionGiveawayResults) { + return messageObject.messageText.toString(); } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionPinMessage) { if (chat != null && (!ChatObject.isChannel(chat) || chat.megagroup)) { if (messageObject.replyMessageObject == null) { @@ -2203,13 +2226,24 @@ private String getShortStringForMessage(MessageObject messageObject, String[] us return msg; } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionChatJoinedByRequest) { return messageObject.messageText.toString(); + } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionPrizeStars) { + final TLRPC.TL_messageActionPrizeStars action = (TLRPC.TL_messageActionPrizeStars) messageObject.messageOwner.action; + final long did = DialogObject.getPeerDialogId(action.boost_peer); + final String peername; + if (did >= 0) { + peername = UserObject.getForcedFirstName(getMessagesController().getUser(did)); + } else { + TLRPC.Chat peerchat = getMessagesController().getChat(-did); + peername = peerchat == null ? "" : peerchat.title; + } + return LocaleController.formatPluralStringComma("BoostingReceivedStars", (int) action.stars, peername); } } else { if (messageObject.isMediaEmpty()) { if (!TextUtils.isEmpty(messageObject.messageOwner.message)) { return replaceSpoilers(messageObject); } else { - return LocaleController.getString("Message", R.string.Message); + return LocaleController.getString(R.string.Message); } } else if (messageObject.type == MessageObject.TYPE_PAID_MEDIA && MessageObject.getMedia(messageObject) instanceof TLRPC.TL_messageMediaPaidMedia) { TLRPC.TL_messageMediaPaidMedia paidMedia = (TLRPC.TL_messageMediaPaidMedia) MessageObject.getMedia(messageObject); @@ -2234,61 +2268,61 @@ private String getShortStringForMessage(MessageObject messageObject, String[] us if (Build.VERSION.SDK_INT >= 19 && !TextUtils.isEmpty(messageObject.messageOwner.message)) { return "\uD83D\uDDBC " + replaceSpoilers(messageObject); } else if (messageObject.messageOwner.media.ttl_seconds != 0) { - return LocaleController.getString("AttachDestructingPhoto", R.string.AttachDestructingPhoto); + return LocaleController.getString(R.string.AttachDestructingPhoto); } else { - return LocaleController.getString("AttachPhoto", R.string.AttachPhoto); + return LocaleController.getString(R.string.AttachPhoto); } } else if (messageObject.isVideo()) { if (Build.VERSION.SDK_INT >= 19 && !TextUtils.isEmpty(messageObject.messageOwner.message)) { return "\uD83D\uDCF9 " + replaceSpoilers(messageObject); } else if (messageObject.messageOwner.media.ttl_seconds != 0) { - return LocaleController.getString("AttachDestructingVideo", R.string.AttachDestructingVideo); + return LocaleController.getString(R.string.AttachDestructingVideo); } else { - return LocaleController.getString("AttachVideo", R.string.AttachVideo); + return LocaleController.getString(R.string.AttachVideo); } } else if (messageObject.isGame()) { - return LocaleController.getString("AttachGame", R.string.AttachGame); + return LocaleController.getString(R.string.AttachGame); } else if (messageObject.isVoice()) { - return LocaleController.getString("AttachAudio", R.string.AttachAudio); + return LocaleController.getString(R.string.AttachAudio); } else if (messageObject.isRoundVideo()) { - return LocaleController.getString("AttachRound", R.string.AttachRound); + return LocaleController.getString(R.string.AttachRound); } else if (messageObject.isMusic()) { - return LocaleController.getString("AttachMusic", R.string.AttachMusic); + return LocaleController.getString(R.string.AttachMusic); } else if (messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaContact) { - return LocaleController.getString("AttachContact", R.string.AttachContact); + return LocaleController.getString(R.string.AttachContact); } else if (messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaPoll) { if (((TLRPC.TL_messageMediaPoll) messageObject.messageOwner.media).poll.quiz) { - return LocaleController.getString("QuizPoll", R.string.QuizPoll); + return LocaleController.getString(R.string.QuizPoll); } else { - return LocaleController.getString("Poll", R.string.Poll); + return LocaleController.getString(R.string.Poll); } } else if (messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaGiveaway) { - return LocaleController.getString("BoostingGiveaway", R.string.BoostingGiveaway); + return LocaleController.getString(R.string.BoostingGiveaway); } else if (messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaGiveawayResults) { - return LocaleController.getString("BoostingGiveawayResults", R.string.BoostingGiveawayResults); + return LocaleController.getString(R.string.BoostingGiveawayResults); } else if (messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaGeo || messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaVenue) { - return LocaleController.getString("AttachLocation", R.string.AttachLocation); + return LocaleController.getString(R.string.AttachLocation); } else if (messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaGeoLive) { - return LocaleController.getString("AttachLiveLocation", R.string.AttachLiveLocation); + return LocaleController.getString(R.string.AttachLiveLocation); } else if (messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaDocument) { if (messageObject.isSticker() || messageObject.isAnimatedSticker()) { String emoji = messageObject.getStickerEmoji(); if (emoji != null) { - return emoji + " " + LocaleController.getString("AttachSticker", R.string.AttachSticker); + return emoji + " " + LocaleController.getString(R.string.AttachSticker); } else { - return LocaleController.getString("AttachSticker", R.string.AttachSticker); + return LocaleController.getString(R.string.AttachSticker); } } else if (messageObject.isGif()) { if (Build.VERSION.SDK_INT >= 19 && !TextUtils.isEmpty(messageObject.messageOwner.message)) { return "\uD83C\uDFAC " + replaceSpoilers(messageObject); } else { - return LocaleController.getString("AttachGif", R.string.AttachGif); + return LocaleController.getString(R.string.AttachGif); } } else { if (Build.VERSION.SDK_INT >= 19 && !TextUtils.isEmpty(messageObject.messageOwner.message)) { return "\uD83D\uDCCE " + replaceSpoilers(messageObject); } else { - return LocaleController.getString("AttachDocument", R.string.AttachDocument); + return LocaleController.getString(R.string.AttachDocument); } } } else if (messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaStory) { @@ -2296,19 +2330,19 @@ private String getShortStringForMessage(MessageObject messageObject, String[] us if (storyMedia.via_mention) { return LocaleController.formatString("StoryNotificationMention", R.string.StoryNotificationMention, userName[0] == null ? "" : userName[0]); } else { - return LocaleController.getString("Story", R.string.Story); + return LocaleController.getString(R.string.Story); } } else if (!TextUtils.isEmpty(messageObject.messageText)) { return replaceSpoilers(messageObject); } else { - return LocaleController.getString("Message", R.string.Message); + return LocaleController.getString(R.string.Message); } } } else { if (preview != null) { preview[0] = false; } - return LocaleController.getString("Message", R.string.Message); + return LocaleController.getString(R.string.Message); } } return null; @@ -2342,7 +2376,7 @@ private String replaceSpoilers(MessageObject messageObject) { private String getStringForMessage(MessageObject messageObject, boolean shortMessage, boolean[] text, boolean[] preview) { if (AndroidUtilities.needShowPasscode() || SharedConfig.isWaitingForPasscodeEnter) { - return LocaleController.getString("YouHaveNewMessage", R.string.YouHaveNewMessage); + return LocaleController.getString(R.string.YouHaveNewMessage); } if (messageObject.isStoryPush || messageObject.isStoryMentionPush) { return "!" + messageObject.messageOwner.message; @@ -2400,9 +2434,9 @@ private String getStringForMessage(MessageObject messageObject, boolean shortMes if (fromId > 0) { if (messageObject.messageOwner.from_scheduled) { if (dialogId == selfUsedId) { - name = LocaleController.getString("MessageScheduledReminderNotification", R.string.MessageScheduledReminderNotification); + name = LocaleController.getString(R.string.MessageScheduledReminderNotification); } else { - name = LocaleController.getString("NotificationMessageScheduledName", R.string.NotificationMessageScheduledName); + name = LocaleController.getString(R.string.NotificationMessageScheduledName); } } else { TLRPC.User user = getMessagesController().getUser(fromId); @@ -2430,15 +2464,15 @@ private String getStringForMessage(MessageObject messageObject, boolean shortMes String msg = null; if (DialogObject.isEncryptedDialog(dialogId)) { - msg = LocaleController.getString("YouHaveNewMessage", R.string.YouHaveNewMessage); + msg = LocaleController.getString(R.string.YouHaveNewMessage); } else { if (chatId == 0 && fromId != 0) { if (dialogPreviewEnabled && preferences.getBoolean("EnablePreviewAll", true)) { if (messageObject.messageOwner instanceof TLRPC.TL_messageService) { if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionSetSameChatWallPaper) { - msg = LocaleController.getString("WallpaperSameNotification", R.string.WallpaperSameNotification); + msg = LocaleController.getString(R.string.WallpaperSameNotification); } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionSetChatWallPaper) { - msg = LocaleController.getString("WallpaperNotification", R.string.WallpaperNotification); + msg = LocaleController.getString(R.string.WallpaperNotification); } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionGeoProximityReached) { msg = messageObject.messageText.toString(); } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionUserJoined || messageObject.messageOwner.action instanceof TLRPC.TL_messageActionContactSignUp) { @@ -2452,9 +2486,9 @@ private String getStringForMessage(MessageObject messageObject, boolean shortMes msg = messageObject.messageText.toString(); } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionPhoneCall) { if (messageObject.messageOwner.action.video) { - msg = LocaleController.getString("CallMessageVideoIncomingMissed", R.string.CallMessageVideoIncomingMissed); + msg = LocaleController.getString(R.string.CallMessageVideoIncomingMissed); } else { - msg = LocaleController.getString("CallMessageIncomingMissed", R.string.CallMessageIncomingMissed); + msg = LocaleController.getString(R.string.CallMessageIncomingMissed); } } else if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionSetChatTheme) { String emoticon = ((TLRPC.TL_messageActionSetChatTheme) messageObject.messageOwner.action).emoticon; @@ -2651,7 +2685,7 @@ private String getStringForMessage(MessageObject messageObject, boolean shortMes TLRPC.Chat fromChat = MessagesController.getInstance(currentAccount).getChat(-DialogObject.getPeerDialogId(giftCode.boost_peer)); String from = fromChat == null ? null : fromChat.title; if (from == null) { - msg = LocaleController.getString("BoostingReceivedGiftNoName", R.string.BoostingReceivedGiftNoName); + msg = LocaleController.getString(R.string.BoostingReceivedGiftNoName); } else { msg = LocaleController.formatString("NotificationMessageGiftCode", R.string.NotificationMessageGiftCode, from, LocaleController.formatPluralString("Months", giftCode.months)); } @@ -3084,6 +3118,7 @@ public void hideNotifications() { } private void dismissNotification() { + FileLog.d("NotificationsController dismissNotification"); try { notificationManager.cancel(notificationId); pushMessages.clear(); @@ -3552,10 +3587,10 @@ protected void ensureGroupsCreated() { ArrayList channelGroups = new ArrayList<>(); if (channelsId != null) { - channelGroups.add(new NotificationChannelGroup(channelsId, LocaleController.getString("NotificationsChannels", R.string.NotificationsChannels) + userName)); + channelGroups.add(new NotificationChannelGroup(channelsId, LocaleController.getString(R.string.NotificationsChannels) + userName)); } if (groupsId != null) { - channelGroups.add(new NotificationChannelGroup(groupsId, LocaleController.getString("NotificationsGroups", R.string.NotificationsGroups) + userName)); + channelGroups.add(new NotificationChannelGroup(groupsId, LocaleController.getString(R.string.NotificationsGroups) + userName)); } if (storiesId != null) { channelGroups.add(new NotificationChannelGroup(storiesId, LocaleController.getString(R.string.NotificationsStories) + userName)); @@ -3564,10 +3599,10 @@ protected void ensureGroupsCreated() { channelGroups.add(new NotificationChannelGroup(reactionsId, LocaleController.getString(R.string.NotificationsReactions) + userName)); } if (privateId != null) { - channelGroups.add(new NotificationChannelGroup(privateId, LocaleController.getString("NotificationsPrivateChats", R.string.NotificationsPrivateChats) + userName)); + channelGroups.add(new NotificationChannelGroup(privateId, LocaleController.getString(R.string.NotificationsPrivateChats) + userName)); } if (otherId != null) { - channelGroups.add(new NotificationChannelGroup(otherId, LocaleController.getString("NotificationsOther", R.string.NotificationsOther) + userName)); + channelGroups.add(new NotificationChannelGroup(otherId, LocaleController.getString(R.string.NotificationsOther) + userName)); } systemNotificationManager.createNotificationChannelGroups(channelGroups); @@ -3589,23 +3624,21 @@ private String validateChannelId(long dialogId, long topicId, String name, long[ if (isSilent) { groupId = "other" + currentAccount; overwriteKey = null; + } else if (type == TYPE_CHANNEL) { + groupId = "channels" + currentAccount; + overwriteKey = "overwrite_channel"; + } else if (type == TYPE_GROUP) { + groupId = "groups" + currentAccount; + overwriteKey = "overwrite_group"; + } else if (type == TYPE_STORIES) { + groupId = "stories" + currentAccount; + overwriteKey = "overwrite_stories"; + } else if (type == TYPE_REACTIONS_MESSAGES || type == TYPE_REACTIONS_STORIES) { + groupId = "reactions" + currentAccount; + overwriteKey = "overwrite_reactions"; } else { - if (type == TYPE_CHANNEL) { - groupId = "channels" + currentAccount; - overwriteKey = "overwrite_channel"; - } else if (type == TYPE_GROUP) { - groupId = "groups" + currentAccount; - overwriteKey = "overwrite_group"; - } else if (type == TYPE_STORIES) { - groupId = "stories" + currentAccount; - overwriteKey = "overwrite_stories"; - } else if (type == TYPE_REACTIONS_MESSAGES || type == TYPE_REACTIONS_STORIES) { - groupId = "reactions" + currentAccount; - overwriteKey = "overwrite_reactions"; - } else { - groupId = "private" + currentAccount; - overwriteKey = "overwrite_private"; - } + groupId = "private" + currentAccount; + overwriteKey = "overwrite_private"; } boolean secretChat = !isDefault && DialogObject.isEncryptedDialog(dialogId); @@ -3617,10 +3650,10 @@ private String validateChannelId(long dialogId, long topicId, String name, long[ soundHash = soundHash.substring(0, 5); } if (isSilent) { - name = LocaleController.getString("NotificationsSilent", R.string.NotificationsSilent); + name = LocaleController.getString(R.string.NotificationsSilent); key = "silent"; } else if (isDefault) { - name = isInApp ? LocaleController.getString("NotificationsInAppDefault", R.string.NotificationsInAppDefault) : LocaleController.getString("NotificationsDefault", R.string.NotificationsDefault); + name = isInApp ? LocaleController.getString(R.string.NotificationsInAppDefault) : LocaleController.getString(R.string.NotificationsDefault); if (type == TYPE_CHANNEL) { key = isInApp ? "channels_ia" : "channels"; } else if (type == TYPE_GROUP) { @@ -3634,7 +3667,7 @@ private String validateChannelId(long dialogId, long topicId, String name, long[ } } else { if (isInApp) { - name = LocaleController.formatString("NotificationsChatInApp", R.string.NotificationsChatInApp, name); + name = LocaleController.formatString(R.string.NotificationsChatInApp, name); } //TODO notifications key = (isInApp ? "org.telegram.keyia" : "org.telegram.key") + dialogId + "_" + topicId; @@ -3679,7 +3712,9 @@ private String validateChannelId(long dialogId, long topicId, String name, long[ } newSettingsHash = Utilities.MD5(newSettings.toString()); newSettings.setLength(0); - if (!newSettingsHash.equals(settings)) { + if (isInApp && importance != channelImportance) { + shouldOverwrite = true; + } else if (!newSettingsHash.equals(settings)) { SharedPreferences.Editor editor = null; if (channelImportance == NotificationManager.IMPORTANCE_NONE) { editor = preferences.edit(); @@ -3846,7 +3881,7 @@ private String validateChannelId(long dialogId, long topicId, String name, long[ } else { channelId = currentAccount + "channel_" + dialogId + "_" + Utilities.random.nextLong(); } - NotificationChannel notificationChannel = new NotificationChannel(channelId, secretChat ? LocaleController.getString("SecretChatName", R.string.SecretChatName) : name, importance); + NotificationChannel notificationChannel = new NotificationChannel(channelId, secretChat ? LocaleController.getString(R.string.SecretChatName) : name, importance); notificationChannel.setGroup(groupId); if (ledColor != 0) { notificationChannel.enableLights(true); @@ -4025,19 +4060,19 @@ private void showOrUpdateNotification(boolean notifyAboutLast) { if (DialogObject.isEncryptedDialog(dialog_id) || allowSummary && pushDialogs.size() > 1 || passcode) { if (passcode) { if (chatId != 0) { - name = LocaleController.getString("NotificationHiddenChatName", R.string.NotificationHiddenChatName); + name = LocaleController.getString(R.string.NotificationHiddenChatName); } else { - name = LocaleController.getString("NotificationHiddenName", R.string.NotificationHiddenName); + name = LocaleController.getString(R.string.NotificationHiddenName); } } else { - name = LocaleController.getString("AppName", R.string.AppName); + name = LocaleController.getString(R.string.AppName); } replace = false; } else { name = chatName; } if (lastMessageObject != null && (lastMessageObject.isReactionPush || lastMessageObject.isStoryReactionPush) && !preferences.getBoolean("EnableReactionsPreview", true)) { - name = LocaleController.getString("NotificationHiddenName", R.string.NotificationHiddenName); + name = LocaleController.getString(R.string.NotificationHiddenName); } String detailText; @@ -4280,10 +4315,10 @@ private void showOrUpdateNotification(boolean notifyAboutLast) { if (!preferences.getBoolean("EnableInAppVibrate", true)) { vibrate = 2; } - if (!preferences.getBoolean("EnableInAppPriority", false)) { + if (preferences.getBoolean("EnableInAppPopup", true)) { + importance = 2; + } else { importance = 0; - } else if (importance == 2) { - importance = 1; } } if (vibrateOnlyIfSilent && vibrate != 2) { @@ -4411,27 +4446,25 @@ private void showOrUpdateNotification(boolean notifyAboutLast) { if (Build.VERSION.SDK_INT >= 26) { configImportance = NotificationManager.IMPORTANCE_LOW; } - } else { - if (importance == 0) { - mBuilder.setPriority(NotificationCompat.PRIORITY_DEFAULT); - if (Build.VERSION.SDK_INT >= 26) { - configImportance = NotificationManager.IMPORTANCE_DEFAULT; - } - } else if (importance == 1 || importance == 2) { - mBuilder.setPriority(NotificationCompat.PRIORITY_HIGH); - if (Build.VERSION.SDK_INT >= 26) { - configImportance = NotificationManager.IMPORTANCE_HIGH; - } - } else if (importance == 4) { - mBuilder.setPriority(NotificationCompat.PRIORITY_MIN); - if (Build.VERSION.SDK_INT >= 26) { - configImportance = NotificationManager.IMPORTANCE_MIN; - } - } else if (importance == 5) { - mBuilder.setPriority(NotificationCompat.PRIORITY_LOW); - if (Build.VERSION.SDK_INT >= 26) { - configImportance = NotificationManager.IMPORTANCE_LOW; - } + } else if (importance == 0) { + mBuilder.setPriority(NotificationCompat.PRIORITY_DEFAULT); + if (Build.VERSION.SDK_INT >= 26) { + configImportance = NotificationManager.IMPORTANCE_DEFAULT; + } + } else if (importance == 1 || importance == 2) { + mBuilder.setPriority(NotificationCompat.PRIORITY_HIGH); + if (Build.VERSION.SDK_INT >= 26) { + configImportance = NotificationManager.IMPORTANCE_HIGH; + } + } else if (importance == 4) { + mBuilder.setPriority(NotificationCompat.PRIORITY_MIN); + if (Build.VERSION.SDK_INT >= 26) { + configImportance = NotificationManager.IMPORTANCE_MIN; + } + } else if (importance == 5) { + mBuilder.setPriority(NotificationCompat.PRIORITY_LOW); + if (Build.VERSION.SDK_INT >= 26) { + configImportance = NotificationManager.IMPORTANCE_LOW; } } @@ -4517,9 +4550,9 @@ private void showOrUpdateNotification(boolean notifyAboutLast) { Intent replyIntent = new Intent(ApplicationLoader.applicationContext, PopupReplyReceiver.class); replyIntent.putExtra("currentAccount", currentAccount); if (Build.VERSION.SDK_INT <= 19) { - mBuilder.addAction(R.drawable.ic_ab_reply2, LocaleController.getString("Reply", R.string.Reply), PendingIntent.getBroadcast(ApplicationLoader.applicationContext, 2, replyIntent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT)); + mBuilder.addAction(R.drawable.ic_ab_reply2, LocaleController.getString(R.string.Reply), PendingIntent.getBroadcast(ApplicationLoader.applicationContext, 2, replyIntent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT)); } else { - mBuilder.addAction(R.drawable.ic_ab_reply, LocaleController.getString("Reply", R.string.Reply), PendingIntent.getBroadcast(ApplicationLoader.applicationContext, 2, replyIntent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE)); + mBuilder.addAction(R.drawable.ic_ab_reply, LocaleController.getString(R.string.Reply), PendingIntent.getBroadcast(ApplicationLoader.applicationContext, 2, replyIntent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT)); } } showExtraNotifications(mBuilder, detailText, dialog_id, topicId, chatName, vibrationPattern, ledColor, sound, configImportance, isDefault, isInApp, notifyDisabled, chatType); @@ -4543,13 +4576,14 @@ private void setNotificationChannel(Notification mainNotification, NotificationC } private void resetNotificationSound(NotificationCompat.Builder notificationBuilder, long dialogId, long topicId, String chatName, long[] vibrationPattern, int ledColor, Uri sound, int importance, boolean isDefault, boolean isInApp, boolean isSilent, int chatType) { + FileLog.d("resetNotificationSound"); Uri defaultSound = Settings.System.DEFAULT_RINGTONE_URI; if (defaultSound != null && sound != null && !TextUtils.equals(defaultSound.toString(), sound.toString())) { SharedPreferences preferences = getAccountInstance().getNotificationsSettings(); SharedPreferences.Editor editor = preferences.edit(); String newSound = defaultSound.toString(); - String ringtoneName = LocaleController.getString("DefaultRingtone", R.string.DefaultRingtone); + String ringtoneName = LocaleController.getString(R.string.DefaultRingtone); if (isDefault) { if (chatType == TYPE_CHANNEL) { editor.putString("ChannelSound", ringtoneName); @@ -4588,6 +4622,7 @@ private void resetNotificationSound(NotificationCompat.Builder notificationBuild @SuppressLint("InlinedApi") private void showExtraNotifications(NotificationCompat.Builder notificationBuilder, String summary, long lastDialogId, long lastTopicId, String chatName, long[] vibrationPattern, int ledColor, Uri sound, int importance, boolean isDefault, boolean isInApp, boolean isSilent, int chatType) { + FileLog.d("showExtraNotifications pushMessages.size()=" + pushMessages.size()); if (Build.VERSION.SDK_INT >= 26) { notificationBuilder.setChannelId(validateChannelId(lastDialogId, lastTopicId, chatName, vibrationPattern, ledColor, sound, importance, isDefault, isInApp, isSilent, chatType)); } @@ -4613,6 +4648,7 @@ private void showExtraNotifications(NotificationCompat.Builder notificationBuild long topicId = MessageObject.getTopicId(currentAccount, messageObject.messageOwner, getMessagesController().isForum(messageObject)); int dismissDate = preferences.getInt("dismissDate" + dialog_id, 0); if (!messageObject.isStoryPush && (messageObject.messageOwner.date <= dismissDate && NaConfig.INSTANCE.getPushServiceType().Int() != 3)) { + FileLog.d("showExtraNotifications: dialog " + dialog_id + " is skipped, message date (" + messageObject.messageOwner.date + " <= " + dismissDate + ")"); continue; } @@ -4620,6 +4656,7 @@ private void showExtraNotifications(NotificationCompat.Builder notificationBuild if (arrayList == null) { arrayList = new ArrayList<>(); messagesByDialogs.put(dialog_id, arrayList); + FileLog.d("showExtraNotifications: sortedDialogs += " + dialog_id); sortedDialogs.add(new DialogKey(dialog_id, topicId, false)); } arrayList.add(messageObject); @@ -4675,11 +4712,13 @@ void call() { long selfUserId = getUserConfig().getClientUserId(); boolean waitingForPasscode = AndroidUtilities.needShowPasscode() || SharedConfig.isWaitingForPasscodeEnter; boolean passcode = SharedConfig.passcodeHash.length() > 0; + FileLog.d("showExtraNotifications: passcode="+passcode+" waitingForPasscode=" + waitingForPasscode + " selfUserId=" + selfUserId + " useSummaryNotification=" + useSummaryNotification); int maxCount = 7; LongSparseArray personCache = new LongSparseArray<>(); for (int b = 0, size = sortedDialogs.size(); b < size; b++) { if (holders.size() >= maxCount) { + FileLog.d("showExtraNotifications: break from holders, count over " + maxCount); break; } DialogKey dialogKey = sortedDialogs.get(b); @@ -4691,6 +4730,7 @@ void call() { if (dialogKey.story) { messageObjects = new ArrayList<>(); if (storyPushMessages.isEmpty()) { + FileLog.d("showExtraNotifications: ["+dialogKey.dialogId+"] continue; story but storyPushMessages is empty"); continue; } dialogId = storyPushMessages.get(0).dialogId; @@ -4767,9 +4807,9 @@ void call() { } } if (UserObject.isReplyUser(dialogId)) { - name = LocaleController.getString("RepliesTitle", R.string.RepliesTitle); + name = LocaleController.getString(R.string.RepliesTitle); } else if (dialogId == selfUserId) { - name = LocaleController.getString("MessageScheduledReminderNotification", R.string.MessageScheduledReminderNotification); + name = LocaleController.getString(R.string.MessageScheduledReminderNotification); } } else { chat = getMessagesController().getChat(-dialogId); @@ -4823,20 +4863,20 @@ void call() { continue; } } - name = LocaleController.getString("SecretChatName", R.string.SecretChatName); + name = LocaleController.getString(R.string.SecretChatName); photoPath = null; } if (lastMessageObject != null && lastMessageObject.isStoryReactionPush && !preferences.getBoolean("EnableReactionsPreview", true)) { canReply = false; - name = LocaleController.getString("NotificationHiddenChatName", R.string.NotificationHiddenChatName); + name = LocaleController.getString(R.string.NotificationHiddenChatName); photoPath = null; } if (waitingForPasscode) { if (DialogObject.isChatDialog(dialogId)) { - name = LocaleController.getString("NotificationHiddenChatName", R.string.NotificationHiddenChatName); + name = LocaleController.getString(R.string.NotificationHiddenChatName); } else { - name = LocaleController.getString("NotificationHiddenName", R.string.NotificationHiddenName); + name = LocaleController.getString(R.string.NotificationHiddenName); } photoPath = null; canReply = false; @@ -4879,8 +4919,8 @@ void call() { replyIntent.putExtra("max_id", maxId); replyIntent.putExtra("topic_id", topicId); replyIntent.putExtra("currentAccount", currentAccount); - PendingIntent replyPendingIntent = PendingIntent.getBroadcast(ApplicationLoader.applicationContext, internalId, replyIntent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE); - RemoteInput remoteInputWear = new RemoteInput.Builder(EXTRA_VOICE_REPLY).setLabel(LocaleController.getString("Reply", R.string.Reply)).build(); + PendingIntent replyPendingIntent = PendingIntent.getBroadcast(ApplicationLoader.applicationContext, internalId, replyIntent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT); + RemoteInput remoteInputWear = new RemoteInput.Builder(EXTRA_VOICE_REPLY).setLabel(LocaleController.getString(R.string.Reply)).build(); String replyToString; if (DialogObject.isChatDialog(dialogId)) { replyToString = LocaleController.formatString("ReplyToGroup", R.string.ReplyToGroup, name); @@ -4920,7 +4960,7 @@ void call() { } try { if (sender != null && sender.photo != null && sender.photo.photo_small != null && sender.photo.photo_small.volume_id != 0 && sender.photo.photo_small.local_id != 0) { - Person.Builder personBuilder = new Person.Builder().setName(LocaleController.getString("FromYou", R.string.FromYou)); + Person.Builder personBuilder = new Person.Builder().setName(LocaleController.getString(R.string.FromYou)); File avatar = getFileLoader().getPathToAttach(sender.photo.photo_small, true); loadRoundAvatar(avatar, personBuilder); selfPerson = personBuilder.build(); @@ -4957,6 +4997,7 @@ void call() { if (hidden) { text.append(LocaleController.formatPluralString("StoryNotificationHidden", storiesCount)); } else if (names.isEmpty()) { + FileLog.d("showExtraNotifications: ["+dialogKey.dialogId+"] continue; story but names is empty"); continue; } else if (names.size() == 1) { if (storiesCount == 1) { @@ -4985,9 +5026,11 @@ void call() { } } else { for (int a = messageObjects.size() - 1; a >= 0; a--) { - MessageObject messageObject = messageObjects.get(a); - long messageTopicId = MessageObject.getTopicId(currentAccount, messageObject.messageOwner, getMessagesController().isForum(messageObject)); + final MessageObject messageObject = messageObjects.get(a); + final boolean isForum = getMessagesController().isForum(messageObject); + final long messageTopicId = MessageObject.getTopicId(currentAccount, messageObject.messageOwner, isForum); if (topicId != messageTopicId) { + FileLog.d("showExtraNotifications: ["+dialogKey.dialogId+"] continue; topic id is not equal: topicId=" + topicId + " messageTopicId=" + messageTopicId + "; selfId=" + getUserConfig().getClientUserId()); continue; } if (NekoConfig.ignoreBlocked.Bool() && getMessagesController().blockePeers.indexOfKey(messageObject.getSenderId()) >= 0) { @@ -4997,7 +5040,7 @@ void call() { if (dialogId == selfUserId) { senderName[0] = name; } else if (DialogObject.isChatDialog(dialogId) && messageObject.messageOwner.from_scheduled) { - senderName[0] = LocaleController.getString("NotificationMessageScheduledName", R.string.NotificationMessageScheduledName); + senderName[0] = LocaleController.getString(R.string.NotificationMessageScheduledName); } if (message == null) { if (BuildVars.LOGS_ENABLED) { @@ -5009,7 +5052,7 @@ void call() { text.append("\n\n"); } if (dialogId != selfUserId && messageObject.messageOwner.from_scheduled && DialogObject.isUserDialog(dialogId)) { - message = String.format("%1$s: %2$s", LocaleController.getString("NotificationMessageScheduledName", R.string.NotificationMessageScheduledName), message); + message = String.format("%1$s: %2$s", LocaleController.getString(R.string.NotificationMessageScheduledName), message); text.append(message); } else { if (senderName[0] != null) { @@ -5036,13 +5079,13 @@ void call() { if (DialogObject.isChatDialog(dialogId)) { if (isChannel) { if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O_MR1) { - personName = LocaleController.getString("NotificationHiddenChatName", R.string.NotificationHiddenChatName); + personName = LocaleController.getString(R.string.NotificationHiddenChatName); } } else { - personName = LocaleController.getString("NotificationHiddenChatUserName", R.string.NotificationHiddenChatUserName); + personName = LocaleController.getString(R.string.NotificationHiddenChatUserName); } } else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O_MR1) { - personName = LocaleController.getString("NotificationHiddenName", R.string.NotificationHiddenName); + personName = LocaleController.getString(R.string.NotificationHiddenName); } } } else { @@ -5234,7 +5277,7 @@ void call() { msgHeardIntent.putExtra("max_id", maxId); msgHeardIntent.putExtra("currentAccount", currentAccount); PendingIntent readPendingIntent = PendingIntent.getBroadcast(ApplicationLoader.applicationContext, internalId, msgHeardIntent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT); - NotificationCompat.Action readAction = new NotificationCompat.Action.Builder(R.drawable.msg_markread, LocaleController.getString("MarkAsRead", R.string.MarkAsRead), readPendingIntent) + NotificationCompat.Action readAction = new NotificationCompat.Action.Builder(R.drawable.msg_markread, LocaleController.getString(R.string.MarkAsRead), readPendingIntent) .setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_READ) .setShowsUserInterface(false) .build(); @@ -5348,6 +5391,7 @@ void call() { if (Build.VERSION.SDK_INT >= 26) { setNotificationChannel(mainNotification, builder, useSummaryNotification); } + FileLog.d("showExtraNotifications: holders.add " + dialogId); holders.add(new NotificationHolder(internalId, dialogId, dialogKey.story, topicId, name, user, chat, builder)); wearNotificationsIds.put(dialogId, internalId); } @@ -5364,6 +5408,9 @@ void call() { } } else { if (openedInBubbleDialogs.isEmpty()) { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("cancel summary with id " + notificationId); + } notificationManager.cancel(notificationId); } } @@ -5381,6 +5428,7 @@ void call() { } ArrayList ids = new ArrayList<>(holders.size()); + FileLog.d("showExtraNotifications: holders.size()=" + holders.size()); for (int a = 0, size = holders.size(); a < size; a++) { NotificationHolder holder = holders.get(a); ids.clear(); @@ -5390,6 +5438,7 @@ void call() { ids.add(shortcutId); } } + FileLog.d("showExtraNotifications: holders["+a+"].call()"); holder.call(); if (!unsupportedNotificationShortcut() && !ids.isEmpty()) { ShortcutManagerCompat.removeDynamicShortcuts(ApplicationLoader.applicationContext, ids); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsService.java b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsService.java index 51fc8aa7a8..23ca4f6c8e 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsService.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsService.java @@ -67,6 +67,7 @@ public void onDestroy() { SharedPreferences preferences = MessagesController.getGlobalNotificationsSettings(); if (preferences.getBoolean("pushService", true)) { Intent intent = new Intent("org.telegram.start"); + intent.setPackage(getPackageName()); try { sendBroadcast(intent); } catch (Exception ex) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/PushListenerController.java b/TMessagesProj/src/main/java/org/telegram/messenger/PushListenerController.java index 04b65880b9..ae4ef086b9 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/PushListenerController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/PushListenerController.java @@ -7,8 +7,14 @@ import android.util.SparseBooleanArray; import androidx.annotation.IntDef; +import androidx.annotation.Keep; import androidx.collection.LongSparseArray; +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.GoogleApiAvailability; +import com.google.firebase.FirebaseApp; +import com.google.firebase.messaging.FirebaseMessaging; + import org.json.JSONArray; import org.json.JSONObject; import org.telegram.tgnet.ConnectionsManager; @@ -24,6 +30,7 @@ import xyz.nextalone.nagram.NaConfig; +@Keep public class PushListenerController { public static final int PUSH_TYPE_FIREBASE = 2, PUSH_TYPE_SIMPLE = 4, @@ -479,17 +486,17 @@ public static void processRemoteMessage(@PushType int pushType, String data, lon } case "MESSAGE_SAME_WALLPAPER": { messageText = LocaleController.formatString("ActionSetSameWallpaperForThisChat", R.string.ActionSetSameWallpaperForThisChat, args[0]); - message1 = LocaleController.getString("WallpaperSameNotification", R.string.WallpaperSameNotification); + message1 = LocaleController.getString(R.string.WallpaperSameNotification); break; } case "MESSAGE_WALLPAPER": { messageText = LocaleController.formatString("ActionSetWallpaperForThisChat", R.string.ActionSetWallpaperForThisChat, args[0]); - message1 = LocaleController.getString("WallpaperNotification", R.string.WallpaperNotification); + message1 = LocaleController.getString(R.string.WallpaperNotification); break; } case "MESSAGE_RECURRING_PAY": { messageText = LocaleController.formatString("NotificationMessageRecurringPay", R.string.NotificationMessageRecurringPay, args[0], args[1]); - message1 = LocaleController.getString("PaymentInvoice", R.string.PaymentInvoice); + message1 = LocaleController.getString(R.string.PaymentInvoice); break; } case "MESSAGE_TEXT": @@ -530,101 +537,101 @@ public static void processRemoteMessage(@PushType int pushType, String data, lon } case "MESSAGE_NOTEXT": { messageText = LocaleController.formatString("NotificationMessageNoText", R.string.NotificationMessageNoText, args[0]); - message1 = LocaleController.getString("Message", R.string.Message); + message1 = LocaleController.getString(R.string.Message); break; } case "MESSAGE_STORY": { messageText = LocaleController.formatString("NotificationStory", R.string.NotificationStory, args[0]); - message1 = LocaleController.getString("Story", R.string.Story); + message1 = LocaleController.getString(R.string.Story); break; } case "MESSAGE_STORY_MENTION": { - messageText = LocaleController.getString("StoryNotificationMention", R.string.StoryNotificationMention); + messageText = LocaleController.getString(R.string.StoryNotificationMention); message1 = null; break; } case "MESSAGE_PHOTO": { messageText = LocaleController.formatString("NotificationMessagePhoto", R.string.NotificationMessagePhoto, args[0]); - message1 = LocaleController.getString("AttachPhoto", R.string.AttachPhoto); + message1 = LocaleController.getString(R.string.AttachPhoto); break; } case "MESSAGE_PHOTO_SECRET": { messageText = LocaleController.formatString("NotificationMessageSDPhoto", R.string.NotificationMessageSDPhoto, args[0]); - message1 = LocaleController.getString("AttachDestructingPhoto", R.string.AttachDestructingPhoto); + message1 = LocaleController.getString(R.string.AttachDestructingPhoto); break; } case "MESSAGE_VIDEO": { messageText = LocaleController.formatString("NotificationMessageVideo", R.string.NotificationMessageVideo, args[0]); - message1 = LocaleController.getString("AttachVideo", R.string.AttachVideo); + message1 = LocaleController.getString(R.string.AttachVideo); break; } case "MESSAGE_VIDEO_SECRET": { messageText = LocaleController.formatString("NotificationMessageSDVideo", R.string.NotificationMessageSDVideo, args[0]); - message1 = LocaleController.getString("AttachDestructingVideo", R.string.AttachDestructingVideo); + message1 = LocaleController.getString(R.string.AttachDestructingVideo); break; } case "MESSAGE_SCREENSHOT": { - messageText = LocaleController.getString("ActionTakeScreenshoot", R.string.ActionTakeScreenshoot).replace("un1", args[0]); + messageText = LocaleController.getString(R.string.ActionTakeScreenshoot).replace("un1", args[0]); break; } case "MESSAGE_ROUND": { messageText = LocaleController.formatString("NotificationMessageRound", R.string.NotificationMessageRound, args[0]); - message1 = LocaleController.getString("AttachRound", R.string.AttachRound); + message1 = LocaleController.getString(R.string.AttachRound); break; } case "MESSAGE_DOC": { messageText = LocaleController.formatString("NotificationMessageDocument", R.string.NotificationMessageDocument, args[0]); - message1 = LocaleController.getString("AttachDocument", R.string.AttachDocument); + message1 = LocaleController.getString(R.string.AttachDocument); break; } case "MESSAGE_STICKER": { if (args.length > 1 && !TextUtils.isEmpty(args[1])) { messageText = LocaleController.formatString("NotificationMessageStickerEmoji", R.string.NotificationMessageStickerEmoji, args[0], args[1]); - message1 = args[1] + " " + LocaleController.getString("AttachSticker", R.string.AttachSticker); + message1 = args[1] + " " + LocaleController.getString(R.string.AttachSticker); } else { messageText = LocaleController.formatString("NotificationMessageSticker", R.string.NotificationMessageSticker, args[0]); - message1 = LocaleController.getString("AttachSticker", R.string.AttachSticker); + message1 = LocaleController.getString(R.string.AttachSticker); } break; } case "MESSAGE_AUDIO": { messageText = LocaleController.formatString("NotificationMessageAudio", R.string.NotificationMessageAudio, args[0]); - message1 = LocaleController.getString("AttachAudio", R.string.AttachAudio); + message1 = LocaleController.getString(R.string.AttachAudio); break; } case "MESSAGE_CONTACT": { messageText = LocaleController.formatString("NotificationMessageContact2", R.string.NotificationMessageContact2, args[0], args[1]); - message1 = LocaleController.getString("AttachContact", R.string.AttachContact); + message1 = LocaleController.getString(R.string.AttachContact); break; } case "MESSAGE_QUIZ": { messageText = LocaleController.formatString("NotificationMessageQuiz2", R.string.NotificationMessageQuiz2, args[0], args[1]); - message1 = LocaleController.getString("QuizPoll", R.string.QuizPoll); + message1 = LocaleController.getString(R.string.QuizPoll); break; } case "MESSAGE_POLL": { messageText = LocaleController.formatString("NotificationMessagePoll2", R.string.NotificationMessagePoll2, args[0], args[1]); - message1 = LocaleController.getString("Poll", R.string.Poll); + message1 = LocaleController.getString(R.string.Poll); break; } case "MESSAGE_GEO": { messageText = LocaleController.formatString("NotificationMessageMap", R.string.NotificationMessageMap, args[0]); - message1 = LocaleController.getString("AttachLocation", R.string.AttachLocation); + message1 = LocaleController.getString(R.string.AttachLocation); break; } case "MESSAGE_GEOLIVE": { messageText = LocaleController.formatString("NotificationMessageLiveLocation", R.string.NotificationMessageLiveLocation, args[0]); - message1 = LocaleController.getString("AttachLiveLocation", R.string.AttachLiveLocation); + message1 = LocaleController.getString(R.string.AttachLiveLocation); break; } case "MESSAGE_GIF": { messageText = LocaleController.formatString("NotificationMessageGif", R.string.NotificationMessageGif, args[0]); - message1 = LocaleController.getString("AttachGif", R.string.AttachGif); + message1 = LocaleController.getString(R.string.AttachGif); break; } case "MESSAGE_GAME": { messageText = LocaleController.formatString("NotificationMessageGame", R.string.NotificationMessageGame, args[0], args[1]); - message1 = LocaleController.getString("AttachGame", R.string.AttachGame); + message1 = LocaleController.getString(R.string.AttachGame); break; } case "MESSAGE_GAME_SCORE": @@ -634,7 +641,7 @@ public static void processRemoteMessage(@PushType int pushType, String data, lon } case "MESSAGE_INVOICE": { messageText = LocaleController.formatString("NotificationMessageInvoice", R.string.NotificationMessageInvoice, args[0], args[1]); - message1 = LocaleController.getString("PaymentInvoice", R.string.PaymentInvoice); + message1 = LocaleController.getString(R.string.PaymentInvoice); break; } case "MESSAGE_FWDS": { @@ -672,6 +679,15 @@ public static void processRemoteMessage(@PushType int pushType, String data, lon localMessage = true; break; } + case "MESSAGE_GIVEAWAY_STARS": { + int winners = 1; + try { + winners = Integer.parseInt(args[1]); + } catch (Exception ignore) {} + messageText = LocaleController.formatString(R.string.NotificationMessageStarsGiveaway2, args[0], LocaleController.formatPluralString("AmongWinners", winners), args[2]); + localMessage = true; + break; + } case "MESSAGES": { messageText = LocaleController.formatString("NotificationMessageAlbum", R.string.NotificationMessageAlbum, args[0]); localMessage = true; @@ -679,87 +695,96 @@ public static void processRemoteMessage(@PushType int pushType, String data, lon } case "CHANNEL_MESSAGE_GIVEAWAY": { messageText = LocaleController.formatString("NotificationMessageChannelGiveaway", R.string.NotificationMessageChannelGiveaway, args[0], args[1], args[2]); - message1 = LocaleController.getString("BoostingGiveaway", R.string.BoostingGiveaway); + message1 = LocaleController.getString(R.string.BoostingGiveaway); + break; + } + case "CHANNEL_MESSAGE_GIVEAWAY_STARS": { + int winners = 1; + try { + winners = Integer.parseInt(args[1]); + } catch (Exception ignore) {} + messageText = LocaleController.formatString(R.string.NotificationMessageChannelStarsGiveaway2, args[0], LocaleController.formatPluralString("AmongWinners", winners), args[2]); + message1 = LocaleController.getString(R.string.BoostingGiveaway); break; } case "CHANNEL_MESSAGE_NOTEXT": { messageText = LocaleController.formatString("ChannelMessageNoText", R.string.ChannelMessageNoText, args[0]); - message1 = LocaleController.getString("Message", R.string.Message); + message1 = LocaleController.getString(R.string.Message); break; } case "CHANNEL_MESSAGE_STORY": { messageText = LocaleController.formatString("NotificationChannelStory", R.string.NotificationChannelStory, args[0]); - message1 = LocaleController.getString("Story", R.string.Story); + message1 = LocaleController.getString(R.string.Story); break; } case "CHANNEL_MESSAGE_PHOTO": { messageText = LocaleController.formatString("ChannelMessagePhoto", R.string.ChannelMessagePhoto, args[0]); - message1 = LocaleController.getString("AttachPhoto", R.string.AttachPhoto); + message1 = LocaleController.getString(R.string.AttachPhoto); break; } case "CHANNEL_MESSAGE_VIDEO": { messageText = LocaleController.formatString("ChannelMessageVideo", R.string.ChannelMessageVideo, args[0]); - message1 = LocaleController.getString("AttachVideo", R.string.AttachVideo); + message1 = LocaleController.getString(R.string.AttachVideo); break; } case "CHANNEL_MESSAGE_ROUND": { messageText = LocaleController.formatString("ChannelMessageRound", R.string.ChannelMessageRound, args[0]); - message1 = LocaleController.getString("AttachRound", R.string.AttachRound); + message1 = LocaleController.getString(R.string.AttachRound); break; } case "CHANNEL_MESSAGE_DOC": { messageText = LocaleController.formatString("ChannelMessageDocument", R.string.ChannelMessageDocument, args[0]); - message1 = LocaleController.getString("AttachDocument", R.string.AttachDocument); + message1 = LocaleController.getString(R.string.AttachDocument); break; } case "CHANNEL_MESSAGE_STICKER": { if (args.length > 1 && !TextUtils.isEmpty(args[1])) { messageText = LocaleController.formatString("ChannelMessageStickerEmoji", R.string.ChannelMessageStickerEmoji, args[0], args[1]); - message1 = args[1] + " " + LocaleController.getString("AttachSticker", R.string.AttachSticker); + message1 = args[1] + " " + LocaleController.getString(R.string.AttachSticker); } else { messageText = LocaleController.formatString("ChannelMessageSticker", R.string.ChannelMessageSticker, args[0]); - message1 = LocaleController.getString("AttachSticker", R.string.AttachSticker); + message1 = LocaleController.getString(R.string.AttachSticker); } break; } case "CHANNEL_MESSAGE_AUDIO": { messageText = LocaleController.formatString("ChannelMessageAudio", R.string.ChannelMessageAudio, args[0]); - message1 = LocaleController.getString("AttachAudio", R.string.AttachAudio); + message1 = LocaleController.getString(R.string.AttachAudio); break; } case "CHANNEL_MESSAGE_CONTACT": { messageText = LocaleController.formatString("ChannelMessageContact2", R.string.ChannelMessageContact2, args[0], args[1]); - message1 = LocaleController.getString("AttachContact", R.string.AttachContact); + message1 = LocaleController.getString(R.string.AttachContact); break; } case "CHANNEL_MESSAGE_QUIZ": { messageText = LocaleController.formatString("ChannelMessageQuiz2", R.string.ChannelMessageQuiz2, args[0], args[1]); - message1 = LocaleController.getString("QuizPoll", R.string.QuizPoll); + message1 = LocaleController.getString(R.string.QuizPoll); break; } case "CHANNEL_MESSAGE_POLL": { messageText = LocaleController.formatString("ChannelMessagePoll2", R.string.ChannelMessagePoll2, args[0], args[1]); - message1 = LocaleController.getString("Poll", R.string.Poll); + message1 = LocaleController.getString(R.string.Poll); break; } case "CHANNEL_MESSAGE_GEO": { messageText = LocaleController.formatString("ChannelMessageMap", R.string.ChannelMessageMap, args[0]); - message1 = LocaleController.getString("AttachLocation", R.string.AttachLocation); + message1 = LocaleController.getString(R.string.AttachLocation); break; } case "CHANNEL_MESSAGE_GEOLIVE": { messageText = LocaleController.formatString("ChannelMessageLiveLocation", R.string.ChannelMessageLiveLocation, args[0]); - message1 = LocaleController.getString("AttachLiveLocation", R.string.AttachLiveLocation); + message1 = LocaleController.getString(R.string.AttachLiveLocation); break; } case "CHANNEL_MESSAGE_GIF": { messageText = LocaleController.formatString("ChannelMessageGIF", R.string.ChannelMessageGIF, args[0]); - message1 = LocaleController.getString("AttachGif", R.string.AttachGif); + message1 = LocaleController.getString(R.string.AttachGif); break; } case "CHANNEL_MESSAGE_GAME": { messageText = LocaleController.formatString("NotificationMessageGame", R.string.NotificationMessageGame, args[0]); - message1 = LocaleController.getString("AttachGame", R.string.AttachGame); + message1 = LocaleController.getString(R.string.AttachGame); break; } case "CHANNEL_MESSAGE_FWDS": { @@ -794,7 +819,16 @@ public static void processRemoteMessage(@PushType int pushType, String data, lon } case "CHAT_MESSAGE_GIVEAWAY": { messageText = LocaleController.formatString("NotificationMessageChatGiveaway", R.string.NotificationMessageChatGiveaway, args[0], args[1], args[2], args[3]); - message1 = LocaleController.getString("BoostingGiveaway", R.string.BoostingGiveaway); + message1 = LocaleController.getString(R.string.BoostingGiveaway); + break; + } + case "CHAT_MESSAGE_GIVEAWAY_STARS": { + int winners = 1; + try { + winners = Integer.parseInt(args[2]); + } catch (Exception ignore) {} + messageText = LocaleController.formatString(R.string.NotificationMessageChatStarsGiveaway2, args[0], args[1], LocaleController.formatPluralString("AmongWinners", winners), args[3]); + message1 = LocaleController.getString(R.string.BoostingGiveaway); break; } case "CHAT_MESSAGE_TEXT": { @@ -804,82 +838,82 @@ public static void processRemoteMessage(@PushType int pushType, String data, lon } case "CHAT_MESSAGE_NOTEXT": { messageText = LocaleController.formatString("NotificationMessageGroupNoText", R.string.NotificationMessageGroupNoText, args[0], args[1]); - message1 = LocaleController.getString("Message", R.string.Message); + message1 = LocaleController.getString(R.string.Message); break; } case "CHAT_MESSAGE_STORY": { messageText = LocaleController.formatString("NotificationChatStory", R.string.NotificationChatStory, args[0]); - message1 = LocaleController.getString("Story", R.string.Story); + message1 = LocaleController.getString(R.string.Story); break; } case "CHAT_MESSAGE_PHOTO": { messageText = LocaleController.formatString("NotificationMessageGroupPhoto", R.string.NotificationMessageGroupPhoto, args[0], args[1]); - message1 = LocaleController.getString("AttachPhoto", R.string.AttachPhoto); + message1 = LocaleController.getString(R.string.AttachPhoto); break; } case "CHAT_MESSAGE_VIDEO": { messageText = LocaleController.formatString("NotificationMessageGroupVideo", R.string.NotificationMessageGroupVideo, args[0], args[1]); - message1 = LocaleController.getString("AttachVideo", R.string.AttachVideo); + message1 = LocaleController.getString(R.string.AttachVideo); break; } case "CHAT_MESSAGE_ROUND": { messageText = LocaleController.formatString("NotificationMessageGroupRound", R.string.NotificationMessageGroupRound, args[0], args[1]); - message1 = LocaleController.getString("AttachRound", R.string.AttachRound); + message1 = LocaleController.getString(R.string.AttachRound); break; } case "CHAT_MESSAGE_DOC": { messageText = LocaleController.formatString("NotificationMessageGroupDocument", R.string.NotificationMessageGroupDocument, args[0], args[1]); - message1 = LocaleController.getString("AttachDocument", R.string.AttachDocument); + message1 = LocaleController.getString(R.string.AttachDocument); break; } case "CHAT_MESSAGE_STICKER": { if (args.length > 2 && !TextUtils.isEmpty(args[2])) { messageText = LocaleController.formatString("NotificationMessageGroupStickerEmoji", R.string.NotificationMessageGroupStickerEmoji, args[0], args[1], args[2]); - message1 = args[2] + " " + LocaleController.getString("AttachSticker", R.string.AttachSticker); + message1 = args[2] + " " + LocaleController.getString(R.string.AttachSticker); } else { messageText = LocaleController.formatString("NotificationMessageGroupSticker", R.string.NotificationMessageGroupSticker, args[0], args[1]); - message1 = args[1] + " " + LocaleController.getString("AttachSticker", R.string.AttachSticker); + message1 = args[1] + " " + LocaleController.getString(R.string.AttachSticker); } break; } case "CHAT_MESSAGE_AUDIO": { messageText = LocaleController.formatString("NotificationMessageGroupAudio", R.string.NotificationMessageGroupAudio, args[0], args[1]); - message1 = LocaleController.getString("AttachAudio", R.string.AttachAudio); + message1 = LocaleController.getString(R.string.AttachAudio); break; } case "CHAT_MESSAGE_CONTACT": { messageText = LocaleController.formatString("NotificationMessageGroupContact2", R.string.NotificationMessageGroupContact2, args[0], args[1], args[2]); - message1 = LocaleController.getString("AttachContact", R.string.AttachContact); + message1 = LocaleController.getString(R.string.AttachContact); break; } case "CHAT_MESSAGE_QUIZ": { messageText = LocaleController.formatString("NotificationMessageGroupQuiz2", R.string.NotificationMessageGroupQuiz2, args[0], args[1], args[2]); - message1 = LocaleController.getString("PollQuiz", R.string.PollQuiz); + message1 = LocaleController.getString(R.string.PollQuiz); break; } case "CHAT_MESSAGE_POLL": { messageText = LocaleController.formatString("NotificationMessageGroupPoll2", R.string.NotificationMessageGroupPoll2, args[0], args[1], args[2]); - message1 = LocaleController.getString("Poll", R.string.Poll); + message1 = LocaleController.getString(R.string.Poll); break; } case "CHAT_MESSAGE_GEO": { messageText = LocaleController.formatString("NotificationMessageGroupMap", R.string.NotificationMessageGroupMap, args[0], args[1]); - message1 = LocaleController.getString("AttachLocation", R.string.AttachLocation); + message1 = LocaleController.getString(R.string.AttachLocation); break; } case "CHAT_MESSAGE_GEOLIVE": { messageText = LocaleController.formatString("NotificationMessageGroupLiveLocation", R.string.NotificationMessageGroupLiveLocation, args[0], args[1]); - message1 = LocaleController.getString("AttachLiveLocation", R.string.AttachLiveLocation); + message1 = LocaleController.getString(R.string.AttachLiveLocation); break; } case "CHAT_MESSAGE_GIF": { messageText = LocaleController.formatString("NotificationMessageGroupGif", R.string.NotificationMessageGroupGif, args[0], args[1]); - message1 = LocaleController.getString("AttachGif", R.string.AttachGif); + message1 = LocaleController.getString(R.string.AttachGif); break; } case "CHAT_MESSAGE_GAME": { messageText = LocaleController.formatString("NotificationMessageGroupGame", R.string.NotificationMessageGroupGame, args[0], args[1], args[2]); - message1 = LocaleController.getString("AttachGame", R.string.AttachGame); + message1 = LocaleController.getString(R.string.AttachGame); break; } case "CHAT_MESSAGE_GAME_SCORE": { @@ -888,7 +922,7 @@ public static void processRemoteMessage(@PushType int pushType, String data, lon } case "CHAT_MESSAGE_INVOICE": { messageText = LocaleController.formatString("NotificationMessageGroupInvoice", R.string.NotificationMessageGroupInvoice, args[0], args[1], args[2]); - message1 = LocaleController.getString("PaymentInvoice", R.string.PaymentInvoice); + message1 = LocaleController.getString(R.string.PaymentInvoice); break; } case "CHAT_CREATED": @@ -1199,8 +1233,8 @@ public static void processRemoteMessage(@PushType int pushType, String data, lon break; } case "ENCRYPTED_MESSAGE": { - messageText = LocaleController.getString("YouHaveNewMessage", R.string.YouHaveNewMessage); - name = LocaleController.getString("SecretChatName", R.string.SecretChatName); + messageText = LocaleController.getString(R.string.YouHaveNewMessage); + name = LocaleController.getString(R.string.SecretChatName); localMessage = true; break; } @@ -1289,6 +1323,7 @@ public static void processRemoteMessage(@PushType int pushType, String data, lon ArrayList arrayList = new ArrayList<>(); arrayList.add(messageObject); canRelease = false; + FileLog.d("PushListenerController push notification to NotificationsController of " + messageOwner.dialog_id); NotificationsController.getInstance(currentAccount).processNewMessages(arrayList, true, true, countDownLatch); } } @@ -1453,6 +1488,7 @@ private static void onDecryptError() { countDownLatch.countDown(); } + @Keep public interface IPushListenerServiceProvider { boolean hasServices(); String getLogTitle(); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/SaveToGallerySettingsHelper.java b/TMessagesProj/src/main/java/org/telegram/messenger/SaveToGallerySettingsHelper.java index aa38edde14..e421d33f92 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/SaveToGallerySettingsHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/SaveToGallerySettingsHelper.java @@ -198,19 +198,19 @@ public CharSequence createDescription(int currentAccount) { StringBuilder builder = new StringBuilder(); if (enabled()) { if (savePhoto) { - builder.append(LocaleController.getString("SaveToGalleryPhotos", R.string.SaveToGalleryPhotos)); + builder.append(LocaleController.getString(R.string.SaveToGalleryPhotos)); } if (saveVideo) { if (builder.length() != 0) { builder.append(", "); } - builder.append(LocaleController.getString("SaveToGalleryVideos", R.string.SaveToGalleryVideos)); + builder.append(LocaleController.getString(R.string.SaveToGalleryVideos)); if (limitVideo > 0 && limitVideo < 4L * 1000 * 1024 * 1024) { builder.append(" (").append(AndroidUtilities.formatFileSize(limitVideo, true, false)).append(")"); } } } else { - builder.append(LocaleController.getString("SaveToGalleryOff", R.string.SaveToGalleryOff)); + builder.append(LocaleController.getString(R.string.SaveToGalleryOff)); } LongSparseArray exceptions = UserConfig.getInstance(currentAccount).getSaveGalleryExceptions(type); if (exceptions.size() != 0) { @@ -236,7 +236,7 @@ public CharSequence createDescription(int currentAccount) { StringBuilder builder = new StringBuilder(); if (enabled()) { if (savePhoto) { - builder.append(LocaleController.getString("SaveToGalleryPhotos", R.string.SaveToGalleryPhotos)); + builder.append(LocaleController.getString(R.string.SaveToGalleryPhotos)); } if (saveVideo) { if (builder.length() != 0) { @@ -250,7 +250,7 @@ public CharSequence createDescription(int currentAccount) { } } } else { - builder.append(LocaleController.getString("SaveToGalleryOff", R.string.SaveToGalleryOff)); + builder.append(LocaleController.getString(R.string.SaveToGalleryOff)); } return builder; } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/SecretChatHelper.java b/TMessagesProj/src/main/java/org/telegram/messenger/SecretChatHelper.java index c4c1ff1691..c9e974d914 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/SecretChatHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/SecretChatHelper.java @@ -2005,6 +2005,21 @@ public void startSecretChat(Context context, TLRPC.User user) { } else { delayedEncryptedChatUpdates.clear(); AlertUtil.showToast(error1); + AndroidUtilities.runOnUIThread(() -> { + if (!((Activity) context).isFinishing()) { + startingSecretChat = false; + try { + progressDialog.dismiss(); + } catch (Exception e) { + FileLog.e(e); + } + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setMessage(LocaleController.getString(R.string.CreateEncryptedChatError)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); + builder.show().setCanceledOnTouchOutside(true); + } + }); } }, ConnectionsManager.RequestFlagFailOnServerErrors); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java b/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java index 8b14a6a5df..44a8851ebd 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java @@ -3286,7 +3286,7 @@ public void sendCallback(final boolean cache, final MessageObject messageObject, } AlertDialog.Builder builder = new AlertDialog.Builder(parentFragment.getParentActivity()); builder.setTitle(name); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); builder.setMessage(res.message); parentFragment.showDialog(builder.create()); } else { @@ -3316,14 +3316,14 @@ public void sendCallback(final boolean cache, final MessageObject messageObject, if ("PASSWORD_HASH_INVALID".equals(error.text)) { if (srp == null) { AlertDialog.Builder builder = new AlertDialog.Builder(parentFragment.getParentActivity()); - builder.setTitle(LocaleController.getString("BotOwnershipTransfer", R.string.BotOwnershipTransfer)); + builder.setTitle(LocaleController.getString(R.string.BotOwnershipTransfer)); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("BotOwnershipTransferReadyAlertText", R.string.BotOwnershipTransferReadyAlertText))); - builder.setPositiveButton(LocaleController.getString("BotOwnershipTransferChangeOwner", R.string.BotOwnershipTransferChangeOwner), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.BotOwnershipTransferChangeOwner), (dialogInterface, i) -> { TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(); fragment.setDelegate(0, password -> sendCallback(cache, messageObject, button, password, fragment, parentFragment)); parentFragment.presentFragment(fragment); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); parentFragment.showDialog(builder.create()); } } else if ("PASSWORD_MISSING".equals(error.text) || error.text.startsWith("PASSWORD_TOO_FRESH_") || error.text.startsWith("SESSION_TOO_FRESH_")) { @@ -3331,7 +3331,7 @@ public void sendCallback(final boolean cache, final MessageObject messageObject, passwordFragment.needHideProgress(); } AlertDialog.Builder builder = new AlertDialog.Builder(parentFragment.getParentActivity()); - builder.setTitle(LocaleController.getString("EditAdminTransferAlertTitle", R.string.EditAdminTransferAlertTitle)); + builder.setTitle(LocaleController.getString(R.string.EditAdminTransferAlertTitle)); LinearLayout linearLayout = new LinearLayout(parentFragment.getParentActivity()); linearLayout.setPadding(AndroidUtilities.dp(24), AndroidUtilities.dp(2), AndroidUtilities.dp(24), 0); @@ -3358,7 +3358,7 @@ public void sendCallback(final boolean cache, final MessageObject messageObject, messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("EditAdminTransferAlertText1", R.string.EditAdminTransferAlertText1))); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.EditAdminTransferAlertText1))); if (LocaleController.isRTL) { linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT)); @@ -3380,7 +3380,7 @@ public void sendCallback(final boolean cache, final MessageObject messageObject, messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("EditAdminTransferAlertText2", R.string.EditAdminTransferAlertText2))); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.EditAdminTransferAlertText2))); if (LocaleController.isRTL) { linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT)); @@ -3390,17 +3390,17 @@ public void sendCallback(final boolean cache, final MessageObject messageObject, } if ("PASSWORD_MISSING".equals(error.text)) { - builder.setPositiveButton(LocaleController.getString("EditAdminTransferSetPassword", R.string.EditAdminTransferSetPassword), (dialogInterface, i) -> parentFragment.presentFragment(new TwoStepVerificationSetupActivity(TwoStepVerificationSetupActivity.TYPE_INTRO, null))); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.EditAdminTransferSetPassword), (dialogInterface, i) -> parentFragment.presentFragment(new TwoStepVerificationSetupActivity(TwoStepVerificationSetupActivity.TYPE_INTRO, null))); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); } else { messageTextView = new TextView(parentFragment.getParentActivity()); messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); - messageTextView.setText(LocaleController.getString("EditAdminTransferAlertText3", R.string.EditAdminTransferAlertText3)); + messageTextView.setText(LocaleController.getString(R.string.EditAdminTransferAlertText3)); linearLayout.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 11, 0, 0)); - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); } parentFragment.showDialog(builder.create()); } else if ("SRP_ID_INVALID".equals(error.text)) { @@ -7109,7 +7109,7 @@ public void prepareImportHistory(long dialogId, Uri uri, ArrayList mediaUri if (size > 32 * 1024 * 1024) { f.delete(); AndroidUtilities.runOnUIThread(() -> { - Toast.makeText(ApplicationLoader.applicationContext, LocaleController.getString("ImportFileTooLarge", R.string.ImportFileTooLarge), Toast.LENGTH_SHORT).show(); + Toast.makeText(ApplicationLoader.applicationContext, LocaleController.getString(R.string.ImportFileTooLarge), Toast.LENGTH_SHORT).show(); onStartImport.run(0); }); return; @@ -7307,6 +7307,7 @@ private static int prepareSendingDocumentInternal(AccountInstance accountInstanc String title = null; boolean isVoice = false; int duration = 0; + Bitmap cover = null; if (extL.equals("mp3") || extL.equals("m4a")) { AudioInfo audioInfo = AudioInfo.getAudioInfo(f); if (audioInfo != null) { @@ -7316,6 +7317,7 @@ private static int prepareSendingDocumentInternal(AccountInstance accountInstanc title = audioInfo.getTitle(); duration = (int) (d / 1000); } + cover = audioInfo.getCover(); } } else if (extL.equals("opus") || extL.equals("ogg") || extL.equals("flac")) { MediaMetadataRetriever mediaMetadataRetriever = null; @@ -7328,6 +7330,10 @@ private static int prepareSendingDocumentInternal(AccountInstance accountInstanc title = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE); permormer = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST); } + byte[] art = mediaMetadataRetriever.getEmbeddedPicture(); + if (art != null) { + cover = BitmapFactory.decodeByteArray(art, 0, art.length); + } if (editingMessageObject == null && extL.equals("opus") && MediaController.isOpusFile(f.getAbsolutePath()) == 1) { isVoice = true; } @@ -7450,14 +7456,23 @@ private static int prepareSendingDocumentInternal(AccountInstance accountInstanc FileLog.e(e); } } + if (cover != null) { + TLRPC.PhotoSize thumb = ImageLoader.scaleAndSaveImage(cover, 132, 132, 55, isEncrypted); + if (thumb != null) { + document.thumbs.add(thumb); + document.flags |= 1; + } + cover.recycle(); + } if (document.mime_type.equals("image/webp") && editingMessageObject == null) { BitmapFactory.Options bmOptions = new BitmapFactory.Options(); try { bmOptions.inJustDecodeBounds = true; - RandomAccessFile file = new RandomAccessFile(path, "r"); - ByteBuffer buffer = file.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, path.length()); - Utilities.loadWebpImage(null, buffer, buffer.limit(), bmOptions, true); - file.close(); +// RandomAccessFile file = new RandomAccessFile(path, "r"); +// ByteBuffer buffer = file.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, path.length()); +// Utilities.loadWebpImage(null, buffer, buffer.limit(), bmOptions, true); + BitmapFactory.decodeFile(path, bmOptions); +// file.close(); } catch (Exception e) { FileLog.e(e); } @@ -7750,7 +7765,7 @@ private static void handleError(int error, AccountInstance accountInstance) { AndroidUtilities.runOnUIThread(() -> { try { if (finalError == ERROR_TYPE_UNSUPPORTED) { - NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.showBulletin, Bulletin.TYPE_ERROR, LocaleController.getString("UnsupportedAttachment", R.string.UnsupportedAttachment)); + NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.showBulletin, Bulletin.TYPE_ERROR, LocaleController.getString(R.string.UnsupportedAttachment)); } else if (finalError == ERROR_TYPE_FILE_TOO_LARGE) { NotificationCenter.getInstance(accountInstance.getCurrentAccount()).postNotificationName(NotificationCenter.currentUserShowLimitReachedDialog, LimitReachedBottomSheet.TYPE_LARGE_FILE); } @@ -8368,10 +8383,11 @@ public static boolean shouldSendWebPAsSticker(String path, Uri uri) { bmOptions.inJustDecodeBounds = true; try { if (path != null) { - RandomAccessFile file = new RandomAccessFile(path, "r"); - ByteBuffer buffer = file.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, path.length()); - Utilities.loadWebpImage(null, buffer, buffer.limit(), bmOptions, true); - file.close(); +// RandomAccessFile file = new RandomAccessFile(path, "r"); +// ByteBuffer buffer = file.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, path.length()); +// Utilities.loadWebpImage(null, buffer, buffer.limit(), bmOptions, true); + BitmapFactory.decodeFile(path, bmOptions); +// file.close(); } else { try (InputStream inputStream = ApplicationLoader.applicationContext.getContentResolver().openInputStream(uri)) { BitmapFactory.decodeStream(inputStream, null, bmOptions); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ShareBroadcastReceiver.java b/TMessagesProj/src/main/java/org/telegram/messenger/ShareBroadcastReceiver.java index e16572c6da..9b8a0af863 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ShareBroadcastReceiver.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ShareBroadcastReceiver.java @@ -21,7 +21,7 @@ public void onReceive(Context context, Intent intent) { Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("text/plain"); shareIntent.putExtra(Intent.EXTRA_TEXT, url); - Intent chooserIntent = Intent.createChooser(shareIntent, LocaleController.getString("ShareLink", R.string.ShareLink)); + Intent chooserIntent = Intent.createChooser(shareIntent, LocaleController.getString(R.string.ShareLink)); chooserIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(chooserIntent); } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java b/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java index e937eaeb93..d39a032a89 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java @@ -125,9 +125,9 @@ public static void checkSdCard(File file) { readOnlyStorageDirAlertShowed = true; AlertDialog.Builder dialog = new AlertDialog.Builder(fragment.getParentActivity()); - dialog.setTitle(LocaleController.getString("SdCardError", R.string.SdCardError)); - dialog.setSubtitle(LocaleController.getString("SdCardErrorDescription", R.string.SdCardErrorDescription)); - dialog.setPositiveButton(LocaleController.getString("DoNotUseSDCard", R.string.DoNotUseSDCard), (dialog1, which) -> { + dialog.setTitle(LocaleController.getString(R.string.SdCardError)); + dialog.setSubtitle(LocaleController.getString(R.string.SdCardErrorDescription)); + dialog.setPositiveButton(LocaleController.getString(R.string.DoNotUseSDCard), (dialog1, which) -> { }); Dialog dialogFinal = dialog.create(); @@ -325,6 +325,7 @@ private static boolean isWhitelisted(MediaCodecInfo codecInfo) { public static boolean customTabs = true; public static boolean inappBrowser = false; public static boolean adaptableColorInBrowser = true; + public static boolean onlyLocalInstantView = false; public static boolean directShare = true; public static boolean inappCamera = true; public static boolean roundCamera16to9 = true; @@ -1462,6 +1463,7 @@ public static void loadConfig() { customTabs = preferences.getBoolean("custom_tabs", true); inappBrowser = preferences.getBoolean("inapp_browser", false); adaptableColorInBrowser = preferences.getBoolean("adaptableBrowser", false); + onlyLocalInstantView = preferences.getBoolean("onlyLocalInstantView", BuildVars.DEBUG_PRIVATE_VERSION); directShare = preferences.getBoolean("direct_share", true); shuffleMusic = preferences.getBoolean("shuffleMusic", false); playOrderReversed = !shuffleMusic && preferences.getBoolean("playOrderReversed", false); @@ -1476,7 +1478,7 @@ public static void loadConfig() { allowBigEmoji = preferences.getBoolean("allowBigEmoji", true); streamMedia = preferences.getBoolean("streamMedia", true); saveStreamMedia = preferences.getBoolean("saveStreamMedia", true); - pauseMusicOnRecord = preferences.getBoolean("pauseMusicOnRecord", false); + pauseMusicOnRecord = preferences.getBoolean("pauseMusicOnRecord", true); pauseMusicOnMedia = preferences.getBoolean("pauseMusicOnMedia", false); forceDisableTabletMode = preferences.getBoolean("forceDisableTabletMode", false); streamAllVideo = preferences.getBoolean("streamAllVideo", BuildVars.DEBUG_VERSION); @@ -2167,6 +2169,14 @@ public static void toggleBrowserAdaptableColors() { editor.apply(); } + public static void toggleLocalInstantView() { + onlyLocalInstantView = !onlyLocalInstantView; + SharedPreferences preferences = MessagesController.getGlobalMainSettings(); + SharedPreferences.Editor editor = preferences.edit(); + editor.putBoolean("onlyLocalInstantView", onlyLocalInstantView); + editor.apply(); + } + public static void toggleDirectShare() { directShare = !directShare; SharedPreferences preferences = MessagesController.getGlobalMainSettings(); @@ -2766,7 +2776,7 @@ public static int measureDevicePerformanceClass() { performanceClass = PERFORMANCE_CLASS_HIGH; } if (BuildVars.LOGS_ENABLED) { - FileLog.d("device performance info selected_class = " + performanceClass + " (cpu_count = " + cpuCount + ", freq = " + maxCpuFreq + ", memoryClass = " + memoryClass + ", android version " + androidVersion + ", manufacture " + Build.MANUFACTURER + ", screenRefreshRate=" + AndroidUtilities.screenRefreshRate + ")"); + FileLog.d("device performance info selected_class = " + performanceClass + " (cpu_count = " + cpuCount + ", freq = " + maxCpuFreq + ", memoryClass = " + memoryClass + ", android version " + androidVersion + ", manufacture " + Build.MANUFACTURER + ", screenRefreshRate=" + AndroidUtilities.screenRefreshRate + ", screenMaxRefreshRate=" + AndroidUtilities.screenMaxRefreshRate + ")"); } return performanceClass; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/SvgHelper.java b/TMessagesProj/src/main/java/org/telegram/messenger/SvgHelper.java index 9b9bf24973..8ab7dcdf55 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/SvgHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/SvgHelper.java @@ -443,7 +443,21 @@ public static Bitmap getBitmap(int res, int width, int height, int color, float SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); SVGHandler handler = new SVGHandler(width, height, color, false, scale); - ///handler.alphaOnly = true; + xr.setContentHandler(handler); + xr.parse(new InputSource(stream)); + return handler.getBitmap(); + } catch (Exception e) { + FileLog.e(e); + return null; + } + } + + public static Bitmap getBitmap(InputStream stream, int width, int height, boolean white) { + try { + SAXParserFactory spf = SAXParserFactory.newInstance(); + SAXParser sp = spf.newSAXParser(); + XMLReader xr = sp.getXMLReader(); + SVGHandler handler = new SVGHandler(width, height, white ? 0xffffffff : null, false, 1f); xr.setContentHandler(handler); xr.parse(new InputSource(stream)); return handler.getBitmap(); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/Timer.java b/TMessagesProj/src/main/java/org/telegram/messenger/Timer.java index fb92829b00..3301592e37 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/Timer.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/Timer.java @@ -23,6 +23,12 @@ public static void log(Timer logger, String log) { } } + public static void finish(Timer logger) { + if (logger != null) { + logger.finish(); + } + } + public static void done(Task task) { if (task != null) { task.done(); @@ -42,17 +48,17 @@ public Timer(String name) { public ArrayList tasks = new ArrayList<>(); - public Task start(String task) { + private Task start(String task) { Task timer = new Task(task); tasks.add(timer); return timer; } - public void log(String log) { + private void log(String log) { tasks.add(new Log(log)); } - public void finish() { + private void finish() { final long totalTime = System.currentTimeMillis() - startTime; StringBuilder s = new StringBuilder(); s.append(name).append(" total=").append(totalTime).append("ms\n"); @@ -79,7 +85,7 @@ public Task(String task) { Timer.this.pad++; } - public void done() { + private void done() { if (this.endTime < 0) this.pad = Timer.this.pad--; this.endTime = System.currentTimeMillis(); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/TopicsController.java b/TMessagesProj/src/main/java/org/telegram/messenger/TopicsController.java index b758567154..f464414eac 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/TopicsController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/TopicsController.java @@ -699,9 +699,9 @@ public void pinTopic(long chatId, int topicId, boolean pin, BaseFragment fragmen AndroidUtilities.runOnUIThread(() -> { fragment.showDialog( new AlertDialog.Builder(fragment.getContext()) - .setTitle(LocaleController.getString("LimitReached", R.string.LimitReached)) + .setTitle(LocaleController.getString(R.string.LimitReached)) .setMessage(LocaleController.formatString("LimitReachedPinnedTopics", R.string.LimitReachedPinnedTopics, MessagesController.getInstance(currentAccount).topicsPinnedLimit)) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), null) + .setPositiveButton(LocaleController.getString(R.string.OK), null) .create() ); }); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/TranslateController.java b/TMessagesProj/src/main/java/org/telegram/messenger/TranslateController.java index 26585c302a..38b121955c 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/TranslateController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/TranslateController.java @@ -795,7 +795,7 @@ private void pushToTranslate( } } else if (err != null && "TO_LANG_INVALID".equals(err.text)) { toggleTranslatingDialog(dialogId, false); - NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.showBulletin, Bulletin.TYPE_ERROR, LocaleController.getString("TranslationFailedAlert2", R.string.TranslationFailedAlert2)); + NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.showBulletin, Bulletin.TYPE_ERROR, LocaleController.getString(R.string.TranslationFailedAlert2)); } else { if (err != null && "QUOTA_EXCEEDED".equals(err.text)) { NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.showBulletin, Bulletin.TYPE_ERROR, LocaleController.getString(R.string.TranslationFailedAlert1)); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/UserNameResolver.java b/TMessagesProj/src/main/java/org/telegram/messenger/UserNameResolver.java index 190ca9f766..ce0a8f6bfb 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/UserNameResolver.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/UserNameResolver.java @@ -72,7 +72,7 @@ public void resolve(String username, Consumer resolveConsumer) { if (error != null && error.text != null && error.text.contains("FLOOD_WAIT")) { BaseFragment fragment = LaunchActivity.getLastFragment(); if (fragment != null) { - BulletinFactory.of(fragment).createErrorBulletin(LocaleController.getString("FloodWait", R.string.FloodWait)).show(); + BulletinFactory.of(fragment).createErrorBulletin(LocaleController.getString(R.string.FloodWait)).show(); } } return; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/UserObject.java b/TMessagesProj/src/main/java/org/telegram/messenger/UserObject.java index e2bc04f65e..0c9fc9397f 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/UserObject.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/UserObject.java @@ -51,7 +51,7 @@ public static boolean isReplyUser(long did) { @NonNull public static String getUserName(TLRPC.User user) { if (user == null || isDeleted(user)) { - return LocaleController.getString("HiddenName", R.string.HiddenName); + return LocaleController.getString(R.string.HiddenName); } String name = ContactsController.formatName(user.first_name, user.last_name); return name.length() != 0 || TextUtils.isEmpty(user.phone) ? name : PhoneFormat.getInstance().format("+" + user.phone); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/Utilities.java b/TMessagesProj/src/main/java/org/telegram/messenger/Utilities.java index 77c7aa00f5..bdee6dc4e8 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/Utilities.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/Utilities.java @@ -69,7 +69,6 @@ public class Utilities { public native static void blurBitmap(Object bitmap, int radius, int unpin, int width, int height, int stride); public native static int needInvert(Object bitmap, int unpin, int width, int height, int stride); public native static void calcCDT(ByteBuffer hsvBuffer, int width, int height, ByteBuffer buffer, ByteBuffer calcBuffer); - public native static boolean loadWebpImage(Bitmap bitmap, ByteBuffer buffer, int len, BitmapFactory.Options options, boolean unpin); public native static int convertVideoFrame(ByteBuffer src, ByteBuffer dest, int destFormat, int width, int height, int padding, int swap); private native static void aesIgeEncryption(ByteBuffer buffer, byte[] key, byte[] iv, boolean encrypt, int offset, int length); private native static void aesIgeEncryptionByteArray(byte[] buffer, byte[] key, byte[] iv, boolean encrypt, int offset, int length); @@ -85,7 +84,7 @@ public class Utilities { private native static int pbkdf2(byte[] password, byte[] salt, byte[] dst, int iterations); public static native void stackBlurBitmap(Bitmap bitmap, int radius); public static native void drawDitheredGradient(Bitmap bitmap, int[] colors, int startX, int startY, int endX, int endY); - public static native int saveProgressiveJpeg(Bitmap bitmap, int width, int height, int stride, int quality, String path); +// public static native int saveProgressiveJpeg(Bitmap bitmap, int width, int height, int stride, int quality, String path); public static native void generateGradient(Bitmap bitmap, boolean unpin, int phase, float progress, int width, int height, int stride, int[] colors); public static native void setupNativeCrashesListener(String path); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/VideoEncodingService.java b/TMessagesProj/src/main/java/org/telegram/messenger/VideoEncodingService.java index 6aca4d1269..28c080baac 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/VideoEncodingService.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/VideoEncodingService.java @@ -133,7 +133,7 @@ public int onStartCommand(Intent intent, int flags, int startId) { builder.setSmallIcon(android.R.drawable.stat_sys_upload); builder.setWhen(System.currentTimeMillis()); builder.setChannelId(NotificationsController.OTHER_NOTIFICATIONS_CHANNEL); - builder.setContentTitle(LocaleController.getString("AppName", R.string.AppName)); + builder.setContentTitle(LocaleController.getString(R.string.AppName)); } setCurrentMessage(videoConvertMessage); try { @@ -152,11 +152,11 @@ private void updateBuilderForMessage(MediaController.VideoConvertMessage videoCo } boolean isGif = videoConvertMessage.messageObject != null && MessageObject.isGifMessage(videoConvertMessage.messageObject.messageOwner); if (isGif) { - builder.setTicker(LocaleController.getString("SendingGif", R.string.SendingGif)); - builder.setContentText(LocaleController.getString("SendingGif", R.string.SendingGif)); + builder.setTicker(LocaleController.getString(R.string.SendingGif)); + builder.setContentText(LocaleController.getString(R.string.SendingGif)); } else { - builder.setTicker(LocaleController.getString("SendingVideo", R.string.SendingVideo)); - builder.setContentText(LocaleController.getString("SendingVideo", R.string.SendingVideo)); + builder.setTicker(LocaleController.getString(R.string.SendingVideo)); + builder.setContentText(LocaleController.getString(R.string.SendingVideo)); } int currentProgress = 0; builder.setProgress(100, currentProgress, true); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/XiaomiUtilities.java b/TMessagesProj/src/main/java/org/telegram/messenger/XiaomiUtilities.java index 846bff4343..36a14afdd0 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/XiaomiUtilities.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/XiaomiUtilities.java @@ -8,8 +8,6 @@ import java.lang.reflect.Method; -// MIUI. Redefining Android. -// (not in the very best way I'd say) public class XiaomiUtilities { // custom permissions @@ -60,14 +58,14 @@ public static int getMIUIMajorVersion() { if (prop != null) { try { return Integer.parseInt(prop.replace("V", "")); - } catch (NumberFormatException ignore) { - } + } catch (NumberFormatException ignore) {} } return -1; } public static Intent getPermissionManagerIntent() { Intent intent = new Intent("miui.intent.action.APP_PERM_EDITOR"); + intent.setPackage("com.miui.securitycenter"); intent.putExtra("extra_package_uid", android.os.Process.myUid()); intent.putExtra("extra_pkgname", ApplicationLoader.applicationContext.getPackageName()); return intent; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/audioinfo/AudioInfo.java b/TMessagesProj/src/main/java/org/telegram/messenger/audioinfo/AudioInfo.java index fc5d2f5f28..a0bcd5fe6e 100755 --- a/TMessagesProj/src/main/java/org/telegram/messenger/audioinfo/AudioInfo.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/audioinfo/AudioInfo.java @@ -16,6 +16,7 @@ package org.telegram.messenger.audioinfo; import android.graphics.Bitmap; +import android.media.MediaMetadataRetriever; import org.telegram.messenger.audioinfo.m4a.M4AInfo; import org.telegram.messenger.audioinfo.mp3.MP3Info; @@ -26,8 +27,6 @@ import java.io.InputStream; import java.io.RandomAccessFile; -import xyz.nextalone.nagram.helper.audio.GenAudioInfo; - public abstract class AudioInfo { protected String brand; // brand, e.g. "M4A", "ID3", ... protected String version; // version, e.g. "0", "2.3.0", ... @@ -146,17 +145,18 @@ public static AudioInfo getAudioInfo(File file) { InputStream input = new BufferedInputStream(new FileInputStream(file)); if (header[4] == 'f' && header[5] == 't' && header[6] == 'y' && header[7] == 'p') { return new M4AInfo(input); - } else if (file.getAbsolutePath().endsWith("mp3")) { - return new MP3Info(input, file.length()); - } else if (file.getAbsolutePath().endsWith("flac")) { - return new GenAudioInfo(file, "FLAC"); - } else if (file.getAbsolutePath().endsWith("ogg")) { - return new GenAudioInfo(file, "OGG"); + } else if (header[0] == 'f' && header[1] == 'L' && header[2] == 'a' && header[3] == 'c') { + OtherAudioInfo info = new OtherAudioInfo(file); + if (info.failed) return null; + return info; + } else if (file.getAbsolutePath().endsWith("mp3")) { + return new MP3Info(input, file.length()); } else { - return null; + OtherAudioInfo info = new OtherAudioInfo(file); + if (info.failed) return null; + return info; } - } catch (Exception e) { - return null; - } + } catch (Exception e) {} + return null; } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/audioinfo/OtherAudioInfo.java b/TMessagesProj/src/main/java/org/telegram/messenger/audioinfo/OtherAudioInfo.java new file mode 100644 index 0000000000..c1557b7dda --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/messenger/audioinfo/OtherAudioInfo.java @@ -0,0 +1,85 @@ +package org.telegram.messenger.audioinfo; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.media.MediaMetadataRetriever; + +import com.google.android.exoplayer2.MetadataRetriever; + +import org.telegram.messenger.FileLog; + +import java.io.File; + +public class OtherAudioInfo extends AudioInfo { + + private final MediaMetadataRetriever r; + public boolean failed; + + public OtherAudioInfo(File file) { + r = new MediaMetadataRetriever(); + try { + r.setDataSource(file.getAbsolutePath()); + + brand = "OTHER"; + version = "0"; + + duration = getLong(MediaMetadataRetriever.METADATA_KEY_DURATION); + title = getString(MediaMetadataRetriever.METADATA_KEY_TITLE); + artist = getString(MediaMetadataRetriever.METADATA_KEY_ARTIST); + albumArtist = getString(MediaMetadataRetriever.METADATA_KEY_ALBUMARTIST); + album = getString(MediaMetadataRetriever.METADATA_KEY_ALBUM); + year = getShort(MediaMetadataRetriever.METADATA_KEY_YEAR); + genre = getString(MediaMetadataRetriever.METADATA_KEY_GENRE); + track = getShort(MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER); + tracks = getShort(MediaMetadataRetriever.METADATA_KEY_NUM_TRACKS); + disc = getShort(MediaMetadataRetriever.METADATA_KEY_DISC_NUMBER); + composer = getString(MediaMetadataRetriever.METADATA_KEY_COMPOSER); + byte[] coverBytes = r.getEmbeddedPicture(); + if (coverBytes != null) { + cover = BitmapFactory.decodeByteArray(coverBytes, 0, coverBytes.length); + } + if (cover != null) { + float scale = Math.max(cover.getWidth(), cover.getHeight()) / 120.0f; + if (scale > 0) { + smallCover = Bitmap.createScaledBitmap(cover, (int) (cover.getWidth() / scale), (int) (cover.getHeight() / scale), true); + } else { + smallCover = cover; + } + } + + } catch (Exception e) { + failed = true; + FileLog.e(e); + } + + try { + if (r != null) { + r.close(); + } + } catch (Exception e) { + FileLog.e(e); + } + } + + private String getString(int key) { + try { + return r.extractMetadata(key); + } catch (Exception ignore) {} + return null; + } + + private short getShort(int key) { + try { + return Short.parseShort(r.extractMetadata(key)); + } catch (Exception ignore) {} + return 0; + } + + private long getLong(int key) { + try { + return Long.parseLong(r.extractMetadata(key)); + } catch (Exception ignore) {} + return 0; + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/browser/Browser.java b/TMessagesProj/src/main/java/org/telegram/messenger/browser/Browser.java index bfaf08ed94..f0032c118c 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/browser/Browser.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/browser/Browser.java @@ -10,6 +10,7 @@ import android.app.Activity; import android.app.PendingIntent; +import android.content.ActivityNotFoundException; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -265,14 +266,14 @@ public void onEnd(Runnable onEndListener) { } public static void openUrl(final Context context, Uri uri, final boolean allowCustom, boolean tryTelegraph) { - openUrl(context, uri, allowCustom, tryTelegraph, false, null, null, false); + openUrl(context, uri, allowCustom, tryTelegraph, false, null, null, false, true); } public static void openUrl(final Context context, Uri uri, final boolean allowCustom, boolean tryTelegraph, Progress inCaseLoading) { - openUrl(context, uri, allowCustom, tryTelegraph, false, inCaseLoading, null, false); + openUrl(context, uri, allowCustom, tryTelegraph, false, inCaseLoading, null, false, true); } - public static void openUrl(final Context context, Uri uri, boolean _allowCustom, boolean tryTelegraph, boolean forceNotInternalForApps, Progress inCaseLoading, String browser, boolean allowIntent) { + public static void openUrl(final Context context, Uri uri, boolean _allowCustom, boolean tryTelegraph, boolean forceNotInternalForApps, Progress inCaseLoading, String browser, boolean allowIntent, boolean allowInAppBrowser) { if (context == null || uri == null) { return; } @@ -394,7 +395,7 @@ public static void openUrl(final Context context, Uri uri, boolean _allowCustom, .build(); builder.setDefaultColorSchemeParams(params); builder.setShowTitle(true); - builder.setActionButton(BitmapFactory.decodeResource(context.getResources(), R.drawable.msg_filled_shareout), LocaleController.getString("ShareFile", R.string.ShareFile), PendingIntent.getBroadcast(ApplicationLoader.applicationContext, 0, share, PendingIntent.FLAG_MUTABLE ), true); + builder.setActionButton(BitmapFactory.decodeResource(context.getResources(), R.drawable.msg_filled_shareout), LocaleController.getString(R.string.ShareFile), PendingIntent.getBroadcast(ApplicationLoader.applicationContext, 0, share, PendingIntent.FLAG_MUTABLE ), true); CustomTabsIntent intent = builder.build(); intent.intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); @@ -407,6 +408,7 @@ public static void openUrl(final Context context, Uri uri, boolean _allowCustom, } try { final boolean inappBrowser = ( + allowInAppBrowser && SharedConfig.inappBrowser && TextUtils.isEmpty(browserPackage) && !RestrictedDomainsList.getInstance().isRestricted(AndroidUtilities.getHostAuthority(uri, true)) && @@ -414,12 +416,19 @@ public static void openUrl(final Context context, Uri uri, boolean _allowCustom, || isTonsite(uri.toString()) ); + final boolean isIntentScheme = uri.getScheme() != null && uri.getScheme().equalsIgnoreCase("intent"); if (internalUri && LaunchActivity.instance != null) { - LaunchActivity.dismissAllWeb(); openAsInternalIntent(LaunchActivity.instance, uri.toString(), forceNotInternalForApps, inCaseLoading); } else { if (inappBrowser) { if (!openInExternalApp(context, uri.toString(), allowIntent)) { + if (uri != null && uri.getScheme() != null && uri.getScheme().equalsIgnoreCase("intent")) { + final Intent intent = Intent.parseUri(uri.toString(), Intent.URI_INTENT_SCHEME); + final String fallbackUrl = intent.getStringExtra("browser_fallback_url"); + if (!TextUtils.isEmpty(fallbackUrl)) { + uri = Uri.parse(fallbackUrl); + } + } openInTelegramBrowser(context, uri.toString(), inCaseLoading); } } else { @@ -538,25 +547,27 @@ public static boolean openInExternalApp(Context context, String url, boolean all url = Browser.replace( uri, uri.getScheme() == null ? "https" : uri.getScheme(), - uri.getHost() != null ? uri.getHost().toLowerCase() : uri.getHost(), + null, uri.getHost() != null ? uri.getHost().toLowerCase() : uri.getHost(), TextUtils.isEmpty(uri.getPath()) ? "/" : uri.getPath() ); uri = Uri.parse(url); - final boolean isIntentScheme = uri.getScheme() != null && uri.getScheme().equalsIgnoreCase("intent"); + final boolean isIntentScheme = url.startsWith("intent://") || uri.getScheme() != null && uri.getScheme().equalsIgnoreCase("intent"); if (isIntentScheme && !allowIntent) return false; final Intent intent = isIntentScheme ? Intent.parseUri(uri.toString(), Intent.URI_INTENT_SCHEME) : new Intent(Intent.ACTION_VIEW, uri); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + if (!isIntentScheme && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_REQUIRE_NON_BROWSER); - } else if (!hasAppToOpen(context, url)) { + } else if (!isIntentScheme && !hasAppToOpen(context, url)) { return false; } context.startActivity(intent); return true; + } catch (ActivityNotFoundException e) { + FileLog.e(e, false); } catch (Exception e) { FileLog.e(e); } @@ -807,17 +818,21 @@ public static String IDN_toUnicode(String host) { } public static String replaceHostname(Uri originalUri, String newHostname, String newScheme) { - return replace(originalUri, newScheme, newHostname, null); + return replace(originalUri, newScheme, null, newHostname, null); } - public static String replace(Uri originalUri, String newScheme, String newHostname, String newPath) { + public static String replace(Uri originalUri, String newScheme, String newUserInfo, String newHostname, String newPath) { final StringBuilder modifiedUriBuilder = new StringBuilder(); final String scheme = newScheme == null ? originalUri.getScheme() : newScheme; if (scheme != null) { modifiedUriBuilder.append(scheme).append("://"); } - if (originalUri.getUserInfo() != null) { - modifiedUriBuilder.append(originalUri.getUserInfo()).append("@"); + if (newUserInfo == null) { + if (originalUri.getUserInfo() != null) { + modifiedUriBuilder.append(originalUri.getUserInfo()).append("@"); + } + } else if (!TextUtils.isEmpty(newUserInfo)) { + modifiedUriBuilder.append(newUserInfo).append("@"); } if (newHostname == null) { if (originalUri.getHost() != null) { 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 7f0f17ef77..36e777445c 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/camera/CameraView.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/camera/CameraView.java @@ -72,7 +72,6 @@ import org.telegram.ui.Components.CubicBezierInterpolator; import org.telegram.ui.Components.InstantCameraView; import org.telegram.ui.Components.LayoutHelper; -import org.telegram.ui.Components.RLottieDrawable; import java.io.File; import java.io.IOException; @@ -1222,8 +1221,8 @@ private boolean initGL() { android.opengl.Matrix.setIdentityM(mSTMatrix[0], 0); - int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, RLottieDrawable.readRes(null, R.raw.camera_vert)); - int fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, RLottieDrawable.readRes(null, R.raw.camera_frag)); + int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, AndroidUtilities.readRes(R.raw.camera_vert)); + int fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, AndroidUtilities.readRes(R.raw.camera_frag)); if (vertexShader != 0 && fragmentShader != 0) { drawProgram = GLES20.glCreateProgram(); GLES20.glAttachShader(drawProgram, vertexShader); @@ -2820,8 +2819,8 @@ private void prepareEncoder() { textureBuffer = ByteBuffer.allocateDirect(texData.length * 4).order(ByteOrder.nativeOrder()).asFloatBuffer(); textureBuffer.put(texData).position(0); - int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, RLottieDrawable.readRes(null, R.raw.camera_vert)); - int fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, RLottieDrawable.readRes(null, R.raw.camera_frag)); + int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, AndroidUtilities.readRes(R.raw.camera_vert)); + int fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, AndroidUtilities.readRes(R.raw.camera_frag)); if (vertexShader != 0 && fragmentShader != 0) { drawProgram = GLES20.glCreateProgram(); GLES20.glAttachShader(drawProgram, vertexShader); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/utils/PhotoUtilities.java b/TMessagesProj/src/main/java/org/telegram/messenger/utils/PhotoUtilities.java index 72c7075f83..a293bb4c1d 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/utils/PhotoUtilities.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/utils/PhotoUtilities.java @@ -97,8 +97,8 @@ public static void setImageAsAvatar(MediaController.PhotoEntry entry, BaseFragme if (onDone != null) { onDone.run(); } - CharSequence title = AndroidUtilities.replaceTags(LocaleController.getString("ApplyAvatarHintTitle", R.string.ApplyAvatarHintTitle)); - CharSequence subtitle = AndroidUtilities.replaceSingleTag(LocaleController.getString("ApplyAvatarHint", R.string.ApplyAvatarHint), () -> { + CharSequence title = AndroidUtilities.replaceTags(LocaleController.getString(R.string.ApplyAvatarHintTitle)); + CharSequence subtitle = AndroidUtilities.replaceSingleTag(LocaleController.getString(R.string.ApplyAvatarHint), () -> { Bundle args = new Bundle(); args.putLong("user_id", UserConfig.getInstance(currentAccount).clientUserId); layout.getLastFragment().presentFragment(new ProfileActivity(args)); @@ -218,8 +218,8 @@ public static void showAvatartConstructorForUpdateUserPhoto(ChatActivity chatAct TLRPC.UserFull userFull = chatActivity.getMessagesController().getUserFull(userId); userFull.profile_photo = photos_photo.photo; chatActivity.getMessagesStorage().updateUserInfo(userFull, false); - CharSequence title = AndroidUtilities.replaceTags(LocaleController.getString("ApplyAvatarHintTitle", R.string.ApplyAvatarHintTitle)); - CharSequence subtitle = AndroidUtilities.replaceSingleTag(LocaleController.getString("ApplyAvatarHint", R.string.ApplyAvatarHint), () -> { + CharSequence title = AndroidUtilities.replaceTags(LocaleController.getString(R.string.ApplyAvatarHintTitle)); + CharSequence subtitle = AndroidUtilities.replaceSingleTag(LocaleController.getString(R.string.ApplyAvatarHint), () -> { Bundle args = new Bundle(); args.putLong("user_id", userId); chatActivity.presentFragment(new ProfileActivity(args)); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioBufferConverter.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioBufferConverter.java index 8b21d037b6..e01a8afc10 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioBufferConverter.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioBufferConverter.java @@ -1,5 +1,7 @@ package org.telegram.messenger.video; +import android.util.Log; + import androidx.annotation.NonNull; import org.telegram.messenger.video.remix.AudioRemixer; @@ -61,14 +63,15 @@ public ShortBuffer convert(@NonNull ShortBuffer inputBuffer, int inputSampleRate resampleSize += 10; ShortBuffer outputBuffer = createBuffer(resampleSize); - mResampler.resample(remixedBuffer, inputSampleRate, outputBuffer, outputSampleRate, inputChannelCount); + mResampler.resample(remixedBuffer, inputSampleRate, outputBuffer, outputSampleRate, outputChannelCount); outputBuffer.limit(outputBuffer.position()); outputBuffer.rewind(); + return outputBuffer; } private void checkChannels(int inputChannelCount, int outputChannelCount){ - if (inputChannelCount == 6 && outputChannelCount == 2) { + if (inputChannelCount == 6 && (outputChannelCount == 1 || outputChannelCount == 2)) { return; } if (inputChannelCount != 1 && inputChannelCount != 2) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioDecoder.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioDecoder.java index 6247c6fea8..29205e0031 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioDecoder.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioDecoder.java @@ -54,7 +54,12 @@ private void init() throws IOException { decoder.configure(inputFormat, null, null, 0); startTimeUs = 0; - endTimeUs = getDurationUs(); + try { + endTimeUs = extractor.getTrackFormat(trackIndex).getLong(MediaFormat.KEY_DURATION); + } catch (Exception e) { + FileLog.e(e); + endTimeUs = -1; + } } private void selectTrack() { @@ -77,6 +82,16 @@ private void selectTrack() { } public MediaFormat getMediaFormat() { + try { + if (getOutputMediaFormat() != null) return getOutputMediaFormat(); + return getInputMediaFormat(); + } catch (Exception e) { + FileLog.e(e); + } + return null; + } + + public MediaFormat getInputMediaFormat() { try { return extractor.getTrackFormat(trackIndex); } catch (Exception e) { @@ -85,9 +100,23 @@ public MediaFormat getMediaFormat() { return null; } + public MediaFormat getOutputMediaFormat() { + try { + return decoder.getOutputFormat(); + } catch (Exception e) { + FileLog.e(e); + } + return null; + } + public long getDurationUs() { try { - return getMediaFormat().getLong(MediaFormat.KEY_DURATION); + return getOutputMediaFormat().getLong(MediaFormat.KEY_DURATION); + } catch (Exception e) { + FileLog.e(e); + } + try { + return getInputMediaFormat().getLong(MediaFormat.KEY_DURATION); } catch (Exception e) { FileLog.e(e); } @@ -96,7 +125,12 @@ public long getDurationUs() { public int getSampleRate() { try { - return getMediaFormat().getInteger(MediaFormat.KEY_SAMPLE_RATE); + return getOutputMediaFormat().getInteger(MediaFormat.KEY_SAMPLE_RATE); + } catch (Exception e) { + FileLog.e(e); + } + try { + return getInputMediaFormat().getInteger(MediaFormat.KEY_SAMPLE_RATE); } catch (Exception e) { FileLog.e(e); } @@ -105,15 +139,22 @@ public int getSampleRate() { public int getBitrateRate() { try { - return getMediaFormat().getInteger(MediaFormat.KEY_BIT_RATE); - } catch (Exception e) { - } + return getOutputMediaFormat().getInteger(MediaFormat.KEY_BIT_RATE); + } catch (Exception e) {} + try { + return getInputMediaFormat().getInteger(MediaFormat.KEY_BIT_RATE); + } catch (Exception e) {} return -1; } public int getChannelCount() { try { - return getMediaFormat().getInteger(MediaFormat.KEY_CHANNEL_COUNT); + return getOutputMediaFormat().getInteger(MediaFormat.KEY_CHANNEL_COUNT); + } catch (Exception e) { + FileLog.e(e); + } + try { + return getInputMediaFormat().getInteger(MediaFormat.KEY_CHANNEL_COUNT); } catch (Exception e) { FileLog.e(e); } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioRecoder.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioRecoder.java index 9cf7e6ab24..a4a62b8ff6 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioRecoder.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/AudioRecoder.java @@ -3,6 +3,7 @@ import android.media.MediaCodec; import android.media.MediaFormat; import android.os.Build; +import android.util.Log; import org.telegram.messenger.FileLog; import org.telegram.messenger.MediaController; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/MediaCodecVideoConvertor.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/MediaCodecVideoConvertor.java index 9708476cda..a453e9f82e 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/MediaCodecVideoConvertor.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/MediaCodecVideoConvertor.java @@ -3,7 +3,6 @@ import android.annotation.TargetApi; import android.media.MediaCodec; import android.media.MediaCodecInfo; -import android.media.MediaCodecList; import android.media.MediaExtractor; import android.media.MediaFormat; import android.media.MediaMuxer; @@ -22,11 +21,9 @@ import org.telegram.messenger.video.audio_input.AudioInput; import org.telegram.messenger.video.audio_input.BlankAudioInput; import org.telegram.messenger.video.audio_input.GeneralAudioInput; -import org.telegram.ui.Components.RLottieDrawable; import org.telegram.ui.Stories.recorder.StoryEntry; import java.io.File; -import java.io.FileDescriptor; import java.io.IOException; import java.nio.ByteBuffer; import java.util.ArrayList; @@ -975,6 +972,7 @@ private boolean convertVideoInternal(ConvertVideoParams convertVideoParams, } private static void applyAudioInputs(ArrayList soundInfos, ArrayList audioInputs) throws IOException { + if (soundInfos == null) return; for (int i = 0; i < soundInfos.size(); i++) { MixedSoundInfo soundInfo = soundInfos.get(i); GeneralAudioInput secondAudio = new GeneralAudioInput(soundInfo.audioFile); @@ -1299,9 +1297,9 @@ private static String hdrFragmentShader( if (external) { String shaderCode; if (hdrInfo.getHDRType() == 1) { - shaderCode = RLottieDrawable.readRes(null, R.raw.hdr2sdr_hlg); + shaderCode = AndroidUtilities.readRes(R.raw.hdr2sdr_hlg); } else { - shaderCode = RLottieDrawable.readRes(null, R.raw.hdr2sdr_pq); + shaderCode = AndroidUtilities.readRes(R.raw.hdr2sdr_pq); } shaderCode = shaderCode.replace("$dstWidth", dstWidth + ".0"); shaderCode = shaderCode.replace("$dstHeight", dstHeight + ".0"); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/TextureRenderer.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/TextureRenderer.java index c0176b1514..0a54b54871 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/TextureRenderer.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/TextureRenderer.java @@ -1399,7 +1399,11 @@ private void initLinkEntity(VideoEditedInfo.MediaEntity entity) { LinkPreview marker = new LinkPreview(ApplicationLoader.applicationContext, entity.density); marker.setVideoTexture(); marker.set(UserConfig.selectedAccount, entity.linkSettings); - marker.setType(entity.subType, entity.color); + if (marker.withPreview()) { + marker.setPreviewType(entity.subType); + } else { + marker.setType(entity.subType, entity.color); + } marker.setMaxWidth(entity.viewWidth + marker.padx + marker.padx); marker.measure(View.MeasureSpec.makeMeasureSpec(entity.viewWidth, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(entity.viewHeight, View.MeasureSpec.EXACTLY)); marker.layout(0, 0, entity.viewWidth, entity.viewHeight); @@ -1447,30 +1451,11 @@ private void initStickerEntity(VideoEditedInfo.MediaEntity entity) { if (!TextUtils.isEmpty(entity.segmentedPath) && (entity.subType & 16) != 0) { path = entity.segmentedPath; } - if (Build.VERSION.SDK_INT >= 19) { - BitmapFactory.Options opts = new BitmapFactory.Options(); - if (entity.type == VideoEditedInfo.MediaEntity.TYPE_PHOTO) { - opts.inMutable = true; - } - entity.bitmap = BitmapFactory.decodeFile(path, opts); - } else { - try { - File filePath = new File(path); - RandomAccessFile file = new RandomAccessFile(filePath, "r"); - ByteBuffer buffer = file.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, filePath.length()); - BitmapFactory.Options bmOptions = new BitmapFactory.Options(); - bmOptions.inJustDecodeBounds = true; - Utilities.loadWebpImage(null, buffer, buffer.limit(), bmOptions, true); - if (entity.type == VideoEditedInfo.MediaEntity.TYPE_PHOTO) { - bmOptions.inMutable = true; - } - entity.bitmap = Bitmaps.createBitmap(bmOptions.outWidth, bmOptions.outHeight, Bitmap.Config.ARGB_8888); - Utilities.loadWebpImage(entity.bitmap, buffer, buffer.limit(), null, true); - file.close(); - } catch (Throwable e) { - FileLog.e(e); - } + BitmapFactory.Options opts = new BitmapFactory.Options(); + if (entity.type == VideoEditedInfo.MediaEntity.TYPE_PHOTO) { + opts.inMutable = true; } + entity.bitmap = BitmapFactory.decodeFile(path, opts); if (entity.type == VideoEditedInfo.MediaEntity.TYPE_PHOTO && entity.bitmap != null) { entity.roundRadius = AndroidUtilities.dp(12) / (float) Math.min(entity.viewWidth, entity.viewHeight); Pair orientation = AndroidUtilities.getImageOrientation(entity.text); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/WebmEncoder.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/WebmEncoder.java index 7ff253b8f1..1602fc0cd3 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/WebmEncoder.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/WebmEncoder.java @@ -403,30 +403,11 @@ private void initStickerEntity(VideoEditedInfo.MediaEntity entity) { if (!TextUtils.isEmpty(entity.segmentedPath) && (entity.subType & 16) != 0) { path = entity.segmentedPath; } - if (Build.VERSION.SDK_INT >= 19) { - BitmapFactory.Options opts = new BitmapFactory.Options(); - if (entity.type == VideoEditedInfo.MediaEntity.TYPE_PHOTO) { - opts.inMutable = true; - } - entity.bitmap = BitmapFactory.decodeFile(path, opts); - } else { - try { - File filePath = new File(path); - RandomAccessFile file = new RandomAccessFile(filePath, "r"); - ByteBuffer buffer = file.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, filePath.length()); - BitmapFactory.Options bmOptions = new BitmapFactory.Options(); - bmOptions.inJustDecodeBounds = true; - Utilities.loadWebpImage(null, buffer, buffer.limit(), bmOptions, true); - if (entity.type == VideoEditedInfo.MediaEntity.TYPE_PHOTO) { - bmOptions.inMutable = true; - } - entity.bitmap = Bitmaps.createBitmap(bmOptions.outWidth, bmOptions.outHeight, Bitmap.Config.ARGB_8888); - Utilities.loadWebpImage(entity.bitmap, buffer, buffer.limit(), null, true); - file.close(); - } catch (Throwable e) { - FileLog.e(e); - } + BitmapFactory.Options opts = new BitmapFactory.Options(); + if (entity.type == VideoEditedInfo.MediaEntity.TYPE_PHOTO) { + opts.inMutable = true; } + entity.bitmap = BitmapFactory.decodeFile(path, opts); if (entity.type == VideoEditedInfo.MediaEntity.TYPE_PHOTO && entity.bitmap != null) { entity.roundRadius = AndroidUtilities.dp(12) / (float) Math.min(entity.viewWidth, entity.viewHeight); Pair orientation = AndroidUtilities.getImageOrientation(entity.text); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/audio_input/GeneralAudioInput.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/audio_input/GeneralAudioInput.java index 7f4e51e5b4..f9350570e7 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/audio_input/GeneralAudioInput.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/audio_input/GeneralAudioInput.java @@ -1,5 +1,7 @@ package org.telegram.messenger.video.audio_input; +import android.util.Log; + import org.telegram.messenger.video.AudioBufferConverter; import org.telegram.messenger.video.AudioConversions; import org.telegram.messenger.video.AudioDecoder; @@ -134,9 +136,12 @@ private void decode() { if (buffer == null || buffer.remaining() <= 0) { AudioDecoder.DecodedBufferData audioData = decoder.decode(); if (audioData.index >= 0) { - buffer = audioBufferConverter.convert(audioData.byteBuffer.asShortBuffer(), - decoder.getSampleRate(), decoder.getChannelCount(), - outputSampleRate, outputChannelCount); + final ShortBuffer inputBuffer = audioData.byteBuffer.asShortBuffer(); + buffer = audioBufferConverter.convert( + inputBuffer, + decoder.getSampleRate(), decoder.getChannelCount(), + outputSampleRate, outputChannelCount + ); decoder.releaseOutputBuffer(audioData.index); } else { buffer = null; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/AudioRemixer.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/AudioRemixer.java index 3200e7f5c4..12c663c02d 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/AudioRemixer.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/AudioRemixer.java @@ -36,4 +36,6 @@ void remix(@NonNull final ShortBuffer inputBuffer, int inputChannelCount, AudioRemixer UPMIX = new UpMixAudioRemixer(); AudioRemixer PASSTHROUGH = new PassThroughAudioRemixer(); + + AudioRemixer SURROUND = new SurroundAudioRemixer(); } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/DefaultAudioRemixer.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/DefaultAudioRemixer.java index 036d36f17a..bceaeac11d 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/DefaultAudioRemixer.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/DefaultAudioRemixer.java @@ -9,10 +9,10 @@ public class DefaultAudioRemixer implements AudioRemixer { @Override public void remix(@NonNull ShortBuffer inputBuffer, int inputChannelCount, @NonNull ShortBuffer outputBuffer, int outputChannelCount) { AudioRemixer remixer; - if (inputChannelCount == 6 && outputChannelCount == 2) { - remixer = AudioRemixer.PASSTHROUGH; + if (inputChannelCount == 6) { + remixer = AudioRemixer.SURROUND; } else if (inputChannelCount > outputChannelCount) { - remixer = DOWNMIX; + remixer = AudioRemixer.DOWNMIX; } else if (inputChannelCount < outputChannelCount) { remixer = AudioRemixer.UPMIX; } else { @@ -24,10 +24,10 @@ public void remix(@NonNull ShortBuffer inputBuffer, int inputChannelCount, @NonN @Override public int getRemixedSize(int inputSize, int inputChannelCount, int outputChannelCount) { AudioRemixer remixer; - if (inputChannelCount == 6 && outputChannelCount == 2) { - remixer = AudioRemixer.PASSTHROUGH; + if (inputChannelCount == 6) { + remixer = AudioRemixer.SURROUND; } else if (inputChannelCount > outputChannelCount) { - remixer = DOWNMIX; + remixer = AudioRemixer.DOWNMIX; } else if (inputChannelCount < outputChannelCount) { remixer = AudioRemixer.UPMIX; } else { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/DownMixAudioRemixer.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/DownMixAudioRemixer.java index 30f07771da..579cd49efa 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/DownMixAudioRemixer.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/DownMixAudioRemixer.java @@ -28,7 +28,7 @@ public int getRemixedSize(int inputSize, int inputChannelCount, int outputChanne return inputSize / 2; } - private short mix(short input1, short input2) { + public static short mix(short input1, short input2) { // Down-mix stereo to mono // Viktor Toth's algorithm - // See: http://www.vttoth.com/CMS/index.php/technical-notes/68 diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/SurroundAudioRemixer.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/SurroundAudioRemixer.java new file mode 100644 index 0000000000..a735447523 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/remix/SurroundAudioRemixer.java @@ -0,0 +1,46 @@ +package org.telegram.messenger.video.remix; + +import androidx.annotation.NonNull; + +import java.nio.ShortBuffer; + +/** + * A {@link AudioRemixer} that takes only first channels from 6-channel input + */ +public class SurroundAudioRemixer implements AudioRemixer { + + @Override + public void remix(@NonNull ShortBuffer inputBuffer, int inputChannelCount, @NonNull ShortBuffer outputBuffer, int outputChannelCount) { + if (outputChannelCount != 1 && outputChannelCount != 2) { + throw new IllegalArgumentException("Output must be 2 or 1 channels"); + } + + // Calculate the number of frames to process + final int inFramesRemaining = inputBuffer.remaining() / inputChannelCount; + final int outFramesSpace = outputBuffer.remaining() / outputChannelCount; + final int framesToProcess = Math.min(inFramesRemaining, outFramesSpace); + + // Process each frame, extracting the first two channels (Front Left and Front Right) + for (int i = 0; i < framesToProcess; ++i) { + // Read the first two samples of each 6-channel frame + short frontLeft = inputBuffer.get(); // First channel (Front Left) + short frontRight = inputBuffer.get(); // Second channel (Front Right) + + // Skip the remaining 4 channels (Center, LFE, Rear Left, Rear Right) + inputBuffer.position(inputBuffer.position() + 4); + + // Write the two extracted channels to the output buffer + if (outputChannelCount == 2) { + outputBuffer.put(frontLeft); + outputBuffer.put(frontRight); + } else if (outputChannelCount == 1) { + outputBuffer.put(DownMixAudioRemixer.mix(frontLeft, frontRight)); + } + } + } + + @Override + public int getRemixedSize(int inputSize, int inputChannelCount, int outputChannelCount) { + return inputSize / inputChannelCount * outputChannelCount; + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/resample/DefaultAudioResampler.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/resample/DefaultAudioResampler.java index 2014e36aca..fbb8f1cad7 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/resample/DefaultAudioResampler.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/resample/DefaultAudioResampler.java @@ -12,9 +12,7 @@ public class DefaultAudioResampler implements AudioResampler { @Override public void resample(@NonNull ShortBuffer inputBuffer, int inputSampleRate, @NonNull ShortBuffer outputBuffer, int outputSampleRate, int channels) { - if (inputSampleRate == 6 && outputSampleRate == 2) { - PASSTHROUGH.resample(inputBuffer, inputSampleRate, outputBuffer, outputSampleRate, channels); - } else if (inputSampleRate < outputSampleRate) { + if (inputSampleRate < outputSampleRate) { UPSAMPLE.resample(inputBuffer, inputSampleRate, outputBuffer, outputSampleRate, channels); } else if (inputSampleRate > outputSampleRate) { DOWNSAMPLE.resample(inputBuffer, inputSampleRate, outputBuffer, outputSampleRate, channels); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/video/resample/UpsampleAudioResampler.java b/TMessagesProj/src/main/java/org/telegram/messenger/video/resample/UpsampleAudioResampler.java index c3eb185f56..64d945abbb 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/video/resample/UpsampleAudioResampler.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/video/resample/UpsampleAudioResampler.java @@ -21,8 +21,10 @@ public void resample(@NonNull ShortBuffer inputBuffer, int inputSampleRate, @Non if (channels != 1 && channels != 2) { throw new IllegalArgumentException("Illegal use of UpsampleAudioResampler. Channels:" + channels); } + final int inputSamples = inputBuffer.remaining() / channels; final int outputSamples = (int) Math.ceil(inputSamples * ((double) outputSampleRate / inputSampleRate)); + final int fakeSamples = outputSamples - inputSamples; int remainingInputSamples = inputSamples; int remainingFakeSamples = fakeSamples; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPActionsReceiver.java b/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPActionsReceiver.java index cb5fcf2640..8e4044600d 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPActionsReceiver.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPActionsReceiver.java @@ -13,6 +13,17 @@ public class VoIPActionsReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { if (VoIPService.getSharedInstance() != null) { VoIPService.getSharedInstance().handleNotificationAction(intent); + } else { + final String packageName = context.getPackageName(); + if ((packageName + ".END_CALL").equals(intent.getAction())) { + VoIPPreNotificationService.decline(context, VoIPService.DISCARD_REASON_HANGUP); + } else if ((packageName + ".DECLINE_CALL").equals(intent.getAction())) { + VoIPPreNotificationService.decline(context, VoIPService.DISCARD_REASON_LINE_BUSY); + } else if ((packageName + ".ANSWER_CALL").equals(intent.getAction())) { + VoIPPreNotificationService.answer(context); + } else if ((packageName + ".HIDE_CALL").equals(intent.getAction())) { + VoIPPreNotificationService.dismiss(context); + } } } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPPreNotificationService.java b/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPPreNotificationService.java new file mode 100644 index 0000000000..5b9548ed10 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPPreNotificationService.java @@ -0,0 +1,602 @@ +package org.telegram.messenger.voip; + +import android.Manifest; +import android.app.KeyguardManager; +import android.app.Notification; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.app.Person; +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.content.pm.ServiceInfo; +import android.graphics.Bitmap; +import android.graphics.drawable.Icon; +import android.media.AudioAttributes; +import android.media.AudioManager; +import android.media.MediaPlayer; +import android.media.RingtoneManager; +import android.net.Uri; +import android.os.Build; +import android.os.IBinder; +import android.os.Vibrator; +import android.provider.Settings; +import android.text.SpannableString; +import android.text.TextUtils; +import android.text.style.ForegroundColorSpan; + +import androidx.annotation.Nullable; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.ApplicationLoader; +import org.telegram.messenger.BuildVars; +import org.telegram.messenger.ContactsController; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.R; +import org.telegram.messenger.UserConfig; +import org.telegram.messenger.XiaomiUtilities; +import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.Components.PermissionRequest; +import org.telegram.ui.LaunchActivity; +import org.telegram.ui.VoIPFragment; +import org.telegram.ui.VoIPPermissionActivity; + +public class VoIPPreNotificationService { // } extends Service implements AudioManager.OnAudioFocusChangeListener { + + public static final class State implements VoIPServiceState { + + private final int currentAccount; + private final long userId; + private final TLRPC.PhoneCall call; + private boolean destroyed; + + public State(int currentAccount, long userId, TLRPC.PhoneCall phoneCall) { + this.currentAccount = currentAccount; + this.userId = userId; + this.call = phoneCall; + } + + @Override + public TLRPC.User getUser() { + return MessagesController.getInstance(currentAccount).getUser(userId); + } + + @Override + public boolean isOutgoing() { + return false; + } + + @Override + public int getCallState() { + return destroyed ? VoIPService.STATE_ENDED : VoIPService.STATE_WAITING_INCOMING; + } + + @Override + public TLRPC.PhoneCall getPrivateCall() { + return call; + } + + @Override + public void acceptIncomingCall() { + answer(ApplicationLoader.applicationContext); + } + + @Override + public void declineIncomingCall() { + decline(ApplicationLoader.applicationContext, VoIPService.DISCARD_REASON_HANGUP); + } + + @Override + public void stopRinging() { + VoIPPreNotificationService.stopRinging(); + } + + public void destroy() { + if (destroyed) return; + destroyed = true; + if (VoIPFragment.getInstance() != null) { + VoIPFragment.getInstance().onStateChanged(getCallState()); + } + } + } + + public static State getState() { + return currentState; + } + +// public static VoIPPreNotificationService instance; + + private static Notification makeNotification(Context context, int account, long user_id, long call_id, boolean video) { + if (Build.VERSION.SDK_INT < 33) return null; + + final TLRPC.User user = MessagesController.getInstance(account).getUser(user_id); + + final NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + + final Intent intent = new Intent(context, LaunchActivity.class).setAction("voip"); + final Notification.Builder builder = new Notification.Builder(context) + .setContentTitle(LocaleController.getString(video ? R.string.VoipInVideoCallBranding : R.string.VoipInCallBranding)) + .setSmallIcon(R.drawable.ic_call) + .setContentIntent( + PendingIntent.getActivity( + context, 0, + intent, + PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_CANCEL_CURRENT + ) + ); + + SharedPreferences nprefs = MessagesController.getGlobalNotificationsSettings(); + int chanIndex = nprefs.getInt("calls_notification_channel", 0); + NotificationChannel oldChannel = nm.getNotificationChannel("incoming_calls2" + chanIndex); + if (oldChannel != null) { + nm.deleteNotificationChannel(oldChannel.getId()); + } + oldChannel = nm.getNotificationChannel("incoming_calls3" + chanIndex); + if (oldChannel != null) { + nm.deleteNotificationChannel(oldChannel.getId()); + } + NotificationChannel existingChannel = nm.getNotificationChannel("incoming_calls4" + chanIndex); + boolean needCreate = true; + if (existingChannel != null) { + if (existingChannel.getImportance() < NotificationManager.IMPORTANCE_HIGH || existingChannel.getSound() != null) { + if (BuildVars.LOGS_ENABLED) { + FileLog.d("User messed up the notification channel; deleting it and creating a proper one"); + } + nm.deleteNotificationChannel("incoming_calls4" + chanIndex); + chanIndex++; + nprefs.edit().putInt("calls_notification_channel", chanIndex).commit(); + } else { + needCreate = false; + } + } + if (needCreate) { + AudioAttributes attrs = new AudioAttributes.Builder() + .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) + .setLegacyStreamType(AudioManager.STREAM_RING) + .setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION) + .build(); + NotificationChannel chan = new NotificationChannel("incoming_calls4" + chanIndex, LocaleController.getString(R.string.IncomingCallsSystemSetting), NotificationManager.IMPORTANCE_HIGH); + try { + chan.setSound(null, attrs); + } catch (Exception e) { + FileLog.e(e); + } + chan.setDescription(LocaleController.getString(R.string.IncomingCallsSystemSettingDescription)); + chan.enableVibration(false); + chan.enableLights(false); + chan.setBypassDnd(true); + try { + nm.createNotificationChannel(chan); + } catch (Exception e) { + FileLog.e(e); + return null; + } + } + builder.setChannelId("incoming_calls4" + chanIndex); + + final Intent endIntent = new Intent(context, VoIPActionsReceiver.class); + endIntent.setAction(context.getPackageName() + ".DECLINE_CALL"); + endIntent.putExtra("call_id", call_id); + CharSequence endTitle = LocaleController.getString(R.string.VoipDeclineCall); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { + endTitle = new SpannableString(endTitle); + ((SpannableString) endTitle).setSpan(new ForegroundColorSpan(0xFFF44336), 0, endTitle.length(), 0); + } + final PendingIntent endPendingIntent = + PendingIntent.getBroadcast( + context, + 0, + endIntent, + PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_CANCEL_CURRENT + ); + + final Intent answerIntent = new Intent(context, VoIPActionsReceiver.class); + answerIntent.setAction(context.getPackageName() + ".ANSWER_CALL"); + answerIntent.putExtra("call_id", call_id); + CharSequence answerTitle = LocaleController.getString(R.string.VoipAnswerCall); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { + answerTitle = new SpannableString(answerTitle); + ((SpannableString) answerTitle).setSpan(new ForegroundColorSpan(0xFF00AA00), 0, answerTitle.length(), 0); + } + final PendingIntent answerPendingIntent = + PendingIntent.getActivity( + context, + 0, + new Intent(context, LaunchActivity.class).setAction("voip_answer"), + PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_CANCEL_CURRENT + ); + + builder.setPriority(Notification.PRIORITY_MAX); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + builder.setShowWhen(false); + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + builder.setColor(0xff2ca5e0); + builder.setVibrate(new long[0]); + builder.setCategory(Notification.CATEGORY_CALL); + builder.setFullScreenIntent(PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_MUTABLE), true); + if (user != null && !TextUtils.isEmpty(user.phone)) { + builder.addPerson("tel:" + user.phone); + } + } + + final Intent hideIntent = new Intent(ApplicationLoader.applicationContext, VoIPActionsReceiver.class); + hideIntent.setAction(context.getPackageName() + ".HIDE_CALL"); + final PendingIntent hidePendingIntent = + PendingIntent.getBroadcast( + ApplicationLoader.applicationContext, + 0, + hideIntent, + PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT + ); + builder.setDeleteIntent(hidePendingIntent); + + Bitmap avatar = VoIPService.getRoundAvatarBitmap(context, account, user); + String personName = ContactsController.formatName(user); + if (TextUtils.isEmpty(personName)) { + //java.lang.IllegalArgumentException: person must have a non-empty a name + personName = "___"; + } + Person person = new Person.Builder() + .setName(personName) + .setIcon(Icon.createWithAdaptiveBitmap(avatar)).build(); + Notification.CallStyle notificationStyle = Notification.CallStyle.forIncomingCall(person, endPendingIntent, answerPendingIntent); + + builder.setStyle(notificationStyle); + return builder.build(); + } + +// @Override +// public int onStartCommand(Intent intent, int flags, int startId) { +// instance = this; +// startRinging(); +// return START_NOT_STICKY; +// } + +// @Override +// public void onCreate() { +// if (pendingVoIP != null) { +// account = pendingVoIP.getIntExtra("account", UserConfig.selectedAccount); +// user_id = pendingVoIP.getLongExtra("user_id", 0); +// call_id = pendingVoIP.getLongExtra("call_id", 0); +// video = pendingVoIP.getBooleanExtra("video", false); +// } +// if (Build.VERSION.SDK_INT >= 33) { +// startForeground(VoIPService.ID_INCOMING_CALL_PRENOTIFICATION, getNotification(), ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC); +// } else { +// startForeground(VoIPService.ID_INCOMING_CALL_PRENOTIFICATION, getNotification()); +// } +// } +// +// @Nullable +// @Override +// public IBinder onBind(Intent intent) { +// return null; +// } +// +// @Override +// public void onDestroy() { +// stopForeground(true); +// stopRinging(); +// super.onDestroy(); +// } + + private static final Object sync = new Object(); + private static MediaPlayer ringtonePlayer; + private static Vibrator vibrator; + + private static void startRinging(Context context, int account, long user_id) { + SharedPreferences prefs = MessagesController.getNotificationsSettings(account); + AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); + boolean needRing = am.getRingerMode() != AudioManager.RINGER_MODE_SILENT; + final boolean isHeadsetPlugged = am.isWiredHeadsetOn(); + if (needRing) { + if (ringtonePlayer != null) { + return; + } + synchronized (sync) { + if (ringtonePlayer != null) { + return; + } + ringtonePlayer = new MediaPlayer(); + ringtonePlayer.setOnPreparedListener(mediaPlayer -> { + try { + ringtonePlayer.start(); + } catch (Throwable e) { + FileLog.e(e); + } + }); + ringtonePlayer.setLooping(true); + if (isHeadsetPlugged) { + ringtonePlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL); + } else { + ringtonePlayer.setAudioStreamType(AudioManager.STREAM_RING); + } + try { + String notificationUri; + if (prefs.getBoolean("custom_" + user_id, false)) { + notificationUri = prefs.getString("ringtone_path_" + user_id, null); + } else { + notificationUri = prefs.getString("CallsRingtonePath", null); + } + Uri ringtoneUri; + boolean isDafaultUri = false; + if (notificationUri == null) { + ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); + isDafaultUri = true; + } else { + Uri defaultUri = Settings.System.DEFAULT_RINGTONE_URI; + if (defaultUri != null && notificationUri.equalsIgnoreCase(defaultUri.getPath())) { + ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); + isDafaultUri = true; + } else { + ringtoneUri = Uri.parse(notificationUri); + } + } + FileLog.d("start ringtone with " + isDafaultUri + " " + ringtoneUri); + ringtonePlayer.setDataSource(context, ringtoneUri); + ringtonePlayer.prepareAsync(); + } catch (Exception e) { + FileLog.e(e); + if (ringtonePlayer != null) { + ringtonePlayer.release(); + ringtonePlayer = null; + } + } + int vibrate; + if (prefs.getBoolean("custom_" + user_id, false)) { + vibrate = prefs.getInt("calls_vibrate_" + user_id, 0); + } else { + vibrate = prefs.getInt("vibrate_calls", 0); + } + if ((vibrate != 2 && vibrate != 4 && (am.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE || am.getRingerMode() == AudioManager.RINGER_MODE_NORMAL)) || (vibrate == 4 && am.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE)) { + vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); + long duration = 700; + if (vibrate == 1) { + duration /= 2; + } else if (vibrate == 3) { + duration *= 2; + } + vibrator.vibrate(new long[]{0, duration, 500}, 0); + } + } + } + } + + private static void stopRinging() { + synchronized (sync) { + if (ringtonePlayer != null) { + ringtonePlayer.stop(); + ringtonePlayer.release(); + ringtonePlayer = null; + } + } + if (vibrator != null) { + vibrator.cancel(); + vibrator = null; + } + } + +// public void onAudioFocusChange(int focusChange) { +// if (focusChange == AudioManager.AUDIOFOCUS_GAIN) { +// hasAudioFocus = true; +// } else { +// hasAudioFocus = false; +// } +// } + + public static TLRPC.PhoneCall pendingCall; + public static Intent pendingVoIP; + public static State currentState; +// public static Intent pendingNotificationService; + + public static void show(Context context, Intent intent, TLRPC.PhoneCall call) { + FileLog.d("VoIPPreNotification.show()"); + + if (call == null || intent == null) { + dismiss(context); + FileLog.d("VoIPPreNotification.show(): call or intent is null"); + return; + } + + if (pendingCall != null && pendingCall.id == call.id) { + return; + } + + dismiss(context); + + pendingVoIP = intent; + pendingCall = call; + + final int account = intent.getIntExtra("account", UserConfig.selectedAccount); + final long user_id = intent.getLongExtra("user_id", 0); + final boolean video = call != null && call.video; + + currentState = new State(account, user_id, call); + + acknowledge(context, account, call, () -> { + pendingVoIP = intent; + pendingCall = call; + + final NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + nm.notify(VoIPService.ID_INCOMING_CALL_PRENOTIFICATION, makeNotification(context, account, user_id, call.id, video)); + startRinging(context, account, user_id); + }); + } + + private static void acknowledge(Context context, int currentAccount, TLRPC.PhoneCall call, Runnable whenAcknowledged) { + if (call instanceof TLRPC.TL_phoneCallDiscarded) { + if (BuildVars.LOGS_ENABLED) { + FileLog.w("Call " + call.id + " was discarded before the voip pre notification started, stopping"); + } + pendingVoIP = null; + pendingCall = null; + if (currentState != null) { + currentState.destroy(); + } + return; + } + if (Build.VERSION.SDK_INT >= 19 && XiaomiUtilities.isMIUI() && !XiaomiUtilities.isCustomPermissionGranted(XiaomiUtilities.OP_SHOW_WHEN_LOCKED)) { + if (((KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE)).inKeyguardRestrictedInputMode()) { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("MIUI: no permission to show when locked but the screen is locked. ¯\\_(ツ)_/¯"); + } + pendingVoIP = null; + pendingCall = null; + if (currentState != null) { + currentState.destroy(); + } + return; + } + } + TLRPC.TL_phone_receivedCall req = new TLRPC.TL_phone_receivedCall(); + req.peer = new TLRPC.TL_inputPhoneCall(); + req.peer.id = call.id; + req.peer.access_hash = call.access_hash; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (BuildVars.LOGS_ENABLED) { + FileLog.w("(VoIPPreNotification) receivedCall response = " + response); + } + if (error != null) { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("error on receivedCall: " + error); + } + pendingVoIP = null; + pendingCall = null; + if (currentState != null) { + currentState.destroy(); + } + dismiss(context); + } else if (whenAcknowledged != null) { + whenAcknowledged.run(); + } + }), ConnectionsManager.RequestFlagFailOnServerErrors); + } + + public static boolean open(Context context) { + if (VoIPService.getSharedInstance() != null) { + return true; + } + if (pendingVoIP == null || pendingCall == null) return false; + final int account = pendingVoIP.getIntExtra("account", UserConfig.selectedAccount); + pendingVoIP.putExtra("openFragment", true); + pendingVoIP.putExtra("accept", false); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + context.startForegroundService(pendingVoIP); + } else { + context.startService(pendingVoIP); + } + pendingVoIP = null; + dismiss(context); + return true; + } + + public static boolean isVideo() { + return pendingVoIP != null && pendingVoIP.getBooleanExtra("video", false); + } + + public static void answer(Context context) { + FileLog.d("VoIPPreNotification.answer()"); + if (pendingVoIP == null) { + FileLog.d("VoIPPreNotification.answer(): pending intent is not found"); + return; + } + currentState = null; + final int account = pendingVoIP.getIntExtra("account", UserConfig.selectedAccount); + if (VoIPService.getSharedInstance() != null) { + VoIPService.getSharedInstance().acceptIncomingCall(); + } else { + pendingVoIP.putExtra("openFragment", true); + if ( + !PermissionRequest.hasPermission(Manifest.permission.RECORD_AUDIO) || + isVideo() && !PermissionRequest.hasPermission(Manifest.permission.CAMERA) + ) { + try { + PendingIntent.getActivity(context, 0, new Intent(context, VoIPPermissionActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK), PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_ONE_SHOT).send(); + } catch (Exception x) { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("Error starting permission activity", x); + } + } + return; + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + context.startForegroundService(pendingVoIP); + } else { + context.startService(pendingVoIP); + } + pendingVoIP = null; + } + dismiss(context); + } + + public static void decline(Context context, int reason) { + FileLog.d("VoIPPreNotification.decline("+reason+")"); + if (pendingVoIP == null || pendingCall == null) { + FileLog.d("VoIPPreNotification.decline("+reason+"): pending intent or call is not found"); + return; + } + final int account = pendingVoIP.getIntExtra("account", UserConfig.selectedAccount); + final TLRPC.TL_phone_discardCall req = new TLRPC.TL_phone_discardCall(); + req.peer = new TLRPC.TL_inputPhoneCall(); + req.peer.access_hash = pendingCall.access_hash; + req.peer.id = pendingCall.id; + req.duration = 0; + req.connection_id = 0; + switch (reason) { + case VoIPService.DISCARD_REASON_DISCONNECT: + req.reason = new TLRPC.TL_phoneCallDiscardReasonDisconnect(); + break; + case VoIPService.DISCARD_REASON_MISSED: + req.reason = new TLRPC.TL_phoneCallDiscardReasonMissed(); + break; + case VoIPService.DISCARD_REASON_LINE_BUSY: + req.reason = new TLRPC.TL_phoneCallDiscardReasonBusy(); + break; + case VoIPService.DISCARD_REASON_HANGUP: + default: + req.reason = new TLRPC.TL_phoneCallDiscardReasonHangup(); + break; + } + FileLog.e("discardCall " + req.reason); + ConnectionsManager.getInstance(account).sendRequest(req, (response, error) -> { + if (error != null) { + if (BuildVars.LOGS_ENABLED) { + FileLog.e("(VoIPPreNotification) error on phone.discardCall: " + error); + } + } else { + if (response instanceof TLRPC.TL_updates) { + TLRPC.TL_updates updates = (TLRPC.TL_updates) response; + MessagesController.getInstance(account).processUpdates(updates, false); + } + if (BuildVars.LOGS_ENABLED) { + FileLog.d("(VoIPPreNotification) phone.discardCall " + response); + } + } + }, ConnectionsManager.RequestFlagFailOnServerErrors); + dismiss(context); + } + + public static void dismiss(Context context) { + FileLog.d("VoIPPreNotification.dismiss()"); + pendingVoIP = null; + pendingCall = null; + if (currentState != null) { + currentState.destroy(); + } + final NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + nm.cancel(VoIPService.ID_INCOMING_CALL_PRENOTIFICATION); + stopRinging(); +// if (pendingNotificationService != null) { +// context.stopService(pendingNotificationService); +// } +// pendingNotificationService = null; + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPService.java b/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPService.java index d5924a461e..bfacc644b6 100755 --- a/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPService.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPService.java @@ -26,10 +26,12 @@ import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; +import android.content.ContextWrapper; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.PackageManager; +import android.content.pm.ServiceInfo; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; @@ -77,6 +79,7 @@ import android.text.SpannableString; import android.text.TextUtils; import android.text.style.ForegroundColorSpan; +import android.util.Log; import android.util.LruCache; import android.view.HapticFeedbackConstants; import android.view.KeyEvent; @@ -118,6 +121,7 @@ import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Components.AvatarDrawable; import org.telegram.ui.Components.JoinCallAlert; +import org.telegram.ui.Components.PermissionRequest; import org.telegram.ui.Components.voip.VoIPHelper; import org.telegram.ui.LaunchActivity; import org.telegram.ui.VoIPFeedbackActivity; @@ -153,7 +157,7 @@ import tw.nekomimi.nekogram.utils.VibrateUtil; @SuppressLint("NewApi") -public class VoIPService extends Service implements SensorEventListener, AudioManager.OnAudioFocusChangeListener, VoIPController.ConnectionStateListener, NotificationCenter.NotificationCenterDelegate { +public class VoIPService extends Service implements SensorEventListener, AudioManager.OnAudioFocusChangeListener, VoIPController.ConnectionStateListener, NotificationCenter.NotificationCenterDelegate, VoIPServiceState { public static final int CALL_MIN_LAYER = 65; @@ -176,6 +180,7 @@ public class VoIPService extends Service implements SensorEventListener, AudioMa private static final int ID_ONGOING_CALL_NOTIFICATION = 201; private static final int ID_INCOMING_CALL_NOTIFICATION = 202; + public static final int ID_INCOMING_CALL_PRENOTIFICATION = 203; public static final int QUALITY_SMALL = 0; public static final int QUALITY_MEDIUM = 1; @@ -193,7 +198,7 @@ public class VoIPService extends Service implements SensorEventListener, AudioMa public static final int AUDIO_ROUTE_SPEAKER = 1; public static final int AUDIO_ROUTE_BLUETOOTH = 2; - private static final boolean USE_CONNECTION_SERVICE = isDeviceCompatibleWithConnectionServiceAPI(); + public static final boolean USE_CONNECTION_SERVICE = isDeviceCompatibleWithConnectionServiceAPI(); private int currentAccount = -1; private static final int PROXIMITY_SCREEN_OFF_WAKE_LOCK = 32; @@ -210,6 +215,7 @@ public class VoIPService extends Service implements SensorEventListener, AudioMa private boolean isVideoAvailable; private boolean notificationsDisabled; + private boolean instantAccept; private boolean switchingCamera; private boolean isFrontFaceCamera = true; private boolean isPrivateScreencast; @@ -256,6 +262,10 @@ public class VoIPService extends Service implements SensorEventListener, AudioMa public TLRPC.PhoneCall privateCall; public ChatObject.Call groupCall; + public TLRPC.PhoneCall getPrivateCall() { + return privateCall; + } + public boolean currentGroupModeStreaming; private boolean createGroupCall; @@ -440,7 +450,7 @@ public void onReceive(Context context, Intent intent) { FileLog.e("Bluetooth SCO state updated: " + state); } if (state == AudioManager.SCO_AUDIO_STATE_DISCONNECTED && isBtHeadsetConnected) { - if (!btAdapter.isEnabled() || btAdapter.getProfileConnectionState(BluetoothProfile.HEADSET) != BluetoothProfile.STATE_CONNECTED) { + if (!btAdapter.isEnabled() || !PermissionRequest.hasPermission(Manifest.permission.BLUETOOTH_CONNECT) || btAdapter.getProfileConnectionState(BluetoothProfile.HEADSET) != BluetoothProfile.STATE_CONNECTED) { updateBluetoothHeadsetState(false); return; } @@ -508,7 +518,7 @@ public void setMicMute(boolean mute, boolean hold, boolean send) { return; } updateNotificationRunnable = null; - showNotification(chat.title, getRoundAvatarBitmap(chat)); + showNotification(chat.title, getRoundAvatarBitmap(this, currentAccount, chat)); }); } } @@ -734,6 +744,8 @@ public int onStartCommand(Intent intent, int flags, int startId) { videoCall = intent.getBooleanExtra("video_call", false); isVideoAvailable = intent.getBooleanExtra("can_video_call", false); notificationsDisabled = intent.getBooleanExtra("notifications_disabled", false); + instantAccept = intent.getBooleanExtra("accept", false); + final boolean openFragment = intent.getBooleanExtra("openFragment", false); if (userID != 0) { user = MessagesController.getInstance(currentAccount).getUser(userID); } @@ -840,12 +852,24 @@ public int onStartCommand(Intent intent, int flags, int startId) { } callIShouldHavePutIntoIntent = null; FileLog.e("(3) set VoIPService.callIShouldHavePutIntoIntent = null"); - if (USE_CONNECTION_SERVICE) { + if (instantAccept) { + instantAccept = false; + acceptIncomingCall(); + } else if (USE_CONNECTION_SERVICE) { acknowledgeCall(false); showNotification(); } else { acknowledgeCall(true); } + + if (openFragment) { + Activity activity = AndroidUtilities.findActivity(this); + if (activity == null) activity = LaunchActivity.instance; + if (activity == null) activity = AndroidUtilities.findActivity(ApplicationLoader.applicationContext); + if (activity != null) { + VoIPFragment.show(activity, currentAccount); + } + } } initializeAccountRelatedThings(); AndroidUtilities.runOnUIThread(() -> NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.voipServiceCreated)); @@ -856,6 +880,16 @@ public static boolean hasRtmpStream() { return getSharedInstance() != null && getSharedInstance().groupCall != null && getSharedInstance().groupCall.call.rtmp_stream; } + public static VoIPServiceState getSharedState() { + if (sharedInstance != null) { + return sharedInstance; + } + if (Build.VERSION.SDK_INT >= 33) { + return VoIPPreNotificationService.getState(); + } + return null; + } + public static VoIPService getSharedInstance() { return sharedInstance; } @@ -1138,6 +1172,11 @@ public boolean isSwitchingCamera() { } public void createCaptureDevice(boolean screencast) { + if (screencast) { + gotMediaProjection = true; + updateCurrentForegroundType(); + } + int index = screencast ? CAPTURE_DEVICE_SCREEN : CAPTURE_DEVICE_CAMERA; int deviceType; if (screencast) { @@ -2759,13 +2798,13 @@ public void switchToSpeaker() { public void toggleSpeakerphoneOrShowRouteSheet(Context context, boolean fromOverlayWindow, Integer selectedPos) { if (isBluetoothHeadsetConnected() && hasEarpiece()) { BottomSheet.Builder builder = new BottomSheet.Builder(context) - .setTitle(LocaleController.getString("VoipOutputDevices", R.string.VoipOutputDevices), true) + .setTitle(LocaleController.getString(R.string.VoipOutputDevices), true) .selectedPos(selectedPos) .setCellType(selectedPos != null ? BottomSheet.Builder.CELL_TYPE_CALL : 0) .setItems(new CharSequence[]{ - LocaleController.getString("VoipAudioRoutingSpeaker", R.string.VoipAudioRoutingSpeaker), - isHeadsetPlugged ? LocaleController.getString("VoipAudioRoutingHeadset", R.string.VoipAudioRoutingHeadset) : LocaleController.getString("VoipAudioRoutingEarpiece", R.string.VoipAudioRoutingEarpiece), - currentBluetoothDeviceName != null ? currentBluetoothDeviceName : LocaleController.getString("VoipAudioRoutingBluetooth", R.string.VoipAudioRoutingBluetooth)}, + LocaleController.getString(R.string.VoipAudioRoutingSpeaker), + isHeadsetPlugged ? LocaleController.getString(R.string.VoipAudioRoutingHeadset) : LocaleController.getString(R.string.VoipAudioRoutingEarpiece), + currentBluetoothDeviceName != null ? currentBluetoothDeviceName : LocaleController.getString(R.string.VoipAudioRoutingBluetooth)}, new int[]{R.drawable.msg_call_speaker, isHeadsetPlugged ? R.drawable.calls_menu_headset : R.drawable.msg_call_earpiece, R.drawable.msg_call_bluetooth}, (dialog, which) -> { @@ -2978,19 +3017,25 @@ private void showNotification(String name, Bitmap photo) { .setContentText(name) .setContentIntent(PendingIntent.getActivity(this, 50, intent, PendingIntent.FLAG_MUTABLE)); if (groupCall != null) { - builder.setContentTitle(ChatObject.isChannelOrGiga(chat) ? LocaleController.getString("VoipLiveStream", R.string.VoipLiveStream) : LocaleController.getString("VoipVoiceChat", R.string.VoipVoiceChat)); + builder.setContentTitle(ChatObject.isChannelOrGiga(chat) ? LocaleController.getString(R.string.VoipLiveStream) : LocaleController.getString(R.string.VoipVoiceChat)); builder.setSmallIcon(isMicMute() ? R.drawable.voicechat_muted : R.drawable.voicechat_active); } else { - builder.setContentTitle(LocaleController.getString("VoipOutgoingCall", R.string.VoipOutgoingCall)); + builder.setContentTitle(LocaleController.getString(R.string.VoipOutgoingCall)); builder.setSmallIcon(R.drawable.ic_call); builder.setOngoing(true); } - Intent endIntent = new Intent(this, VoIPActionsReceiver.class); - endIntent.setAction(getPackageName() + ".END_CALL"); - if (groupCall != null) { - builder.addAction(R.drawable.ic_call_end_white_24dp, ChatObject.isChannelOrGiga(chat) ? LocaleController.getString("VoipChannelLeaveAlertTitle", R.string.VoipChannelLeaveAlertTitle) : LocaleController.getString("VoipGroupLeaveAlertTitle", R.string.VoipGroupLeaveAlertTitle), PendingIntent.getBroadcast(this, 0, endIntent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT)); - } else { - builder.addAction(R.drawable.ic_call_end_white_24dp, LocaleController.getString("VoipEndCall", R.string.VoipEndCall), PendingIntent.getBroadcast(this, 0, endIntent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT)); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + Intent endIntent = new Intent(this, VoIPActionsReceiver.class); + endIntent.setAction(getPackageName() + ".END_CALL"); + if (groupCall != null) { + builder.addAction(R.drawable.ic_call_end_white_24dp, ChatObject.isChannelOrGiga(chat) ? LocaleController.getString(R.string.VoipChannelLeaveAlertTitle) : LocaleController.getString(R.string.VoipGroupLeaveAlertTitle), PendingIntent.getBroadcast(this, 0, endIntent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT)); + } else { + builder.addAction(R.drawable.ic_call_end_white_24dp, LocaleController.getString(R.string.VoipEndCall), PendingIntent.getBroadcast(this, 0, endIntent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT)); + } + builder.setPriority(Notification.PRIORITY_MAX); + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + builder.setShowWhen(false); } builder.setPriority(Notification.PRIORITY_MAX); builder.setShowWhen(false); @@ -3008,7 +3053,19 @@ private void showNotification(String name, Bitmap photo) { builder.setLargeIcon(photo); } try { - startForeground(ID_ONGOING_CALL_NOTIFICATION, builder.getNotification()); + if (foregroundStarted) { + try { + stopForeground(true); + } catch (Exception e) { + FileLog.e(e); + } + } + foregroundStarted = true; + if (Build.VERSION.SDK_INT >= 33) { + startForeground(foregroundId = ID_ONGOING_CALL_NOTIFICATION, foregroundNotification = builder.getNotification(), lastForegroundType = getCurrentForegroundType()); + } else { + startForeground(foregroundId = ID_ONGOING_CALL_NOTIFICATION, foregroundNotification = builder.getNotification()); + } } catch (Exception e) { if (photo != null && e instanceof IllegalArgumentException) { showNotification(name, null); @@ -3260,6 +3317,7 @@ public void hangUp(Runnable onDone) { } public void acceptIncomingCall() { + updateCurrentForegroundType(); MessagesController.getInstance(currentAccount).ignoreSetOnline = false; stopRinging(); showNotification(); @@ -3500,9 +3558,9 @@ private void updateServerConfig() { private void showNotification() { if (user != null) { - showNotification(ContactsController.formatName(user.first_name, user.last_name), getRoundAvatarBitmap(user)); + showNotification(ContactsController.formatName(user.first_name, user.last_name), getRoundAvatarBitmap(this, currentAccount, user)); } else { - showNotification(chat.title, getRoundAvatarBitmap(chat)); + showNotification(chat.title, getRoundAvatarBitmap(this, currentAccount, chat)); } } @@ -3649,17 +3707,36 @@ public void onAudioDevicesRemoved(AudioDeviceInfo[] removedDevices) { } callFailed(); } - if (callIShouldHavePutIntoIntent != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - NotificationsController.checkOtherNotificationsChannel(); - Notification.Builder bldr = new Notification.Builder(this, NotificationsController.OTHER_NOTIFICATIONS_CHANNEL) - .setContentTitle(LocaleController.getString("VoipOutgoingCall", R.string.VoipOutgoingCall)) - .setShowWhen(false); - if (groupCall != null) { - bldr.setSmallIcon(isMicMute() ? R.drawable.voicechat_muted : R.drawable.voicechat_active); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if (callIShouldHavePutIntoIntent != null) { + NotificationsController.checkOtherNotificationsChannel(); + Notification.Builder bldr = new Notification.Builder(this, NotificationsController.OTHER_NOTIFICATIONS_CHANNEL) + .setContentTitle(LocaleController.getString(R.string.VoipOutgoingCall)) + .setShowWhen(false); + if (groupCall != null) { + bldr.setSmallIcon(isMicMute() ? R.drawable.voicechat_muted : R.drawable.voicechat_active); + } else { + bldr.setSmallIcon(R.drawable.ic_call); + } + foregroundStarted = true; + if (Build.VERSION.SDK_INT >= 33) { + startForeground(foregroundId = ID_ONGOING_CALL_NOTIFICATION, foregroundNotification = bldr.build(), lastForegroundType = getCurrentForegroundType()); + } else { + startForeground(foregroundId = ID_ONGOING_CALL_NOTIFICATION, foregroundNotification = bldr.build()); + } } else { + NotificationsController.checkOtherNotificationsChannel(); + Notification.Builder bldr = new Notification.Builder(this, NotificationsController.OTHER_NOTIFICATIONS_CHANNEL) + .setContentTitle(LocaleController.getString(R.string.VoipCallEnded)) + .setShowWhen(false); bldr.setSmallIcon(R.drawable.ic_call); + foregroundStarted = true; + if (Build.VERSION.SDK_INT >= 33) { + startForeground(foregroundId = ID_ONGOING_CALL_NOTIFICATION, foregroundNotification = bldr.build(), lastForegroundType = getCurrentForegroundType()); + } else { + startForeground(foregroundId = ID_ONGOING_CALL_NOTIFICATION, foregroundNotification = bldr.build()); + } } - startForeground(ID_ONGOING_CALL_NOTIFICATION, bldr.build()); } } @@ -3676,7 +3753,7 @@ private void checkUpdateBluetoothHeadset() { } } else { MediaRouter.RouteInfo ri = mr.getSelectedRoute(MediaRouter.ROUTE_TYPE_LIVE_AUDIO); - if (ri.getDeviceType() == MediaRouter.RouteInfo.DEVICE_TYPE_BLUETOOTH) { + if (PermissionRequest.hasPermission(Manifest.permission.BLUETOOTH_CONNECT) && ri.getDeviceType() == MediaRouter.RouteInfo.DEVICE_TYPE_BLUETOOTH) { int headsetState = btAdapter.getProfileConnectionState(BluetoothProfile.HEADSET); updateBluetoothHeadsetState(headsetState == BluetoothProfile.STATE_CONNECTED); for (StateListener l : stateListeners) { @@ -4047,7 +4124,7 @@ private void callFailed() { callFailed(tgVoip[CAPTURE_DEVICE_CAMERA] != null ? tgVoip[CAPTURE_DEVICE_CAMERA].getLastError() : Instance.ERROR_UNKNOWN); } - private Bitmap getRoundAvatarBitmap(TLObject userOrChat) { + public static Bitmap getRoundAvatarBitmap(Context context, int currentAccount, TLObject userOrChat) { Bitmap bitmap = null; try { if (userOrChat instanceof TLRPC.User) { @@ -4087,7 +4164,7 @@ private Bitmap getRoundAvatarBitmap(TLObject userOrChat) { FileLog.e(e); } if (bitmap == null) { - Theme.createDialogsResources(this); + Theme.createDialogsResources(context); AvatarDrawable placeholder; if (userOrChat instanceof TLRPC.User) { placeholder = new AvatarDrawable((TLRPC.User) userOrChat); @@ -4114,7 +4191,7 @@ private void showIncomingNotification(String name, TLObject userOrChat, boolean intent.setAction("voip"); Notification.Builder builder = new Notification.Builder(this) - .setContentTitle(video ? LocaleController.getString("VoipInVideoCallBranding", R.string.VoipInVideoCallBranding) : LocaleController.getString("VoipInCallBranding", R.string.VoipInCallBranding)) + .setContentTitle(video ? LocaleController.getString(R.string.VoipInVideoCallBranding) : LocaleController.getString(R.string.VoipInCallBranding)) .setSmallIcon(R.drawable.ic_call) .setContentIntent(PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_MUTABLE)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { @@ -4149,13 +4226,13 @@ private void showIncomingNotification(String name, TLObject userOrChat, boolean .setLegacyStreamType(AudioManager.STREAM_RING) .setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION) .build(); - NotificationChannel chan = new NotificationChannel("incoming_calls4" + chanIndex, LocaleController.getString("IncomingCallsSystemSetting", R.string.IncomingCallsSystemSetting), NotificationManager.IMPORTANCE_HIGH); + NotificationChannel chan = new NotificationChannel("incoming_calls4" + chanIndex, LocaleController.getString(R.string.IncomingCallsSystemSetting), NotificationManager.IMPORTANCE_HIGH); try { chan.setSound(null, attrs); } catch (Exception e) { FileLog.e(e); } - chan.setDescription(LocaleController.getString("IncomingCallsSystemSettingDescription", R.string.IncomingCallsSystemSettingDescription)); + chan.setDescription(LocaleController.getString(R.string.IncomingCallsSystemSettingDescription)); chan.enableVibration(false); chan.enableLights(false); chan.setBypassDnd(true); @@ -4174,7 +4251,7 @@ private void showIncomingNotification(String name, TLObject userOrChat, boolean Intent endIntent = new Intent(this, VoIPActionsReceiver.class); endIntent.setAction(getPackageName() + ".DECLINE_CALL"); endIntent.putExtra("call_id", getCallID()); - CharSequence endTitle = LocaleController.getString("VoipDeclineCall", R.string.VoipDeclineCall); + CharSequence endTitle = LocaleController.getString(R.string.VoipDeclineCall); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { endTitle = new SpannableString(endTitle); ((SpannableString) endTitle).setSpan(new ForegroundColorSpan(0xFFF44336), 0, endTitle.length(), 0); @@ -4183,7 +4260,7 @@ private void showIncomingNotification(String name, TLObject userOrChat, boolean Intent answerIntent = new Intent(this, VoIPActionsReceiver.class); answerIntent.setAction(getPackageName() + ".ANSWER_CALL"); answerIntent.putExtra("call_id", getCallID()); - CharSequence answerTitle = LocaleController.getString("VoipAnswerCall", R.string.VoipAnswerCall); + CharSequence answerTitle = LocaleController.getString(R.string.VoipAnswerCall); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { answerTitle = new SpannableString(answerTitle); ((SpannableString) answerTitle).setSpan(new ForegroundColorSpan(0xFF00AA00), 0, answerTitle.length(), 0); @@ -4205,7 +4282,7 @@ private void showIncomingNotification(String name, TLObject userOrChat, boolean } Notification incomingNotification; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - Bitmap avatar = getRoundAvatarBitmap(userOrChat); + Bitmap avatar = getRoundAvatarBitmap(this, currentAccount, userOrChat); String personName = ContactsController.formatName(userOrChat); if (TextUtils.isEmpty(personName)) { //java.lang.IllegalArgumentException: person must have a non-empty a name @@ -4230,11 +4307,11 @@ private void showIncomingNotification(String name, TLObject userOrChat, boolean TLRPC.User self = UserConfig.getInstance(currentAccount).getCurrentUser(); customView.setTextViewText(R.id.title, video ? LocaleController.formatString("VoipInVideoCallBrandingWithName", R.string.VoipInVideoCallBrandingWithName, ContactsController.formatName(self.first_name, self.last_name)) : LocaleController.formatString("VoipInCallBrandingWithName", R.string.VoipInCallBrandingWithName, ContactsController.formatName(self.first_name, self.last_name))); } else { - customView.setTextViewText(R.id.title, video ? LocaleController.getString("VoipInVideoCallBranding", R.string.VoipInVideoCallBranding) : LocaleController.getString("VoipInCallBranding", R.string.VoipInCallBranding)); + customView.setTextViewText(R.id.title, video ? LocaleController.getString(R.string.VoipInVideoCallBranding) : LocaleController.getString(R.string.VoipInCallBranding)); } - Bitmap avatar = getRoundAvatarBitmap(userOrChat); - customView.setTextViewText(R.id.answer_text, LocaleController.getString("VoipAnswerCall", R.string.VoipAnswerCall)); - customView.setTextViewText(R.id.decline_text, LocaleController.getString("VoipDeclineCall", R.string.VoipDeclineCall)); + Bitmap avatar = getRoundAvatarBitmap(this, currentAccount, userOrChat); + customView.setTextViewText(R.id.answer_text, LocaleController.getString(R.string.VoipAnswerCall)); + customView.setTextViewText(R.id.decline_text, LocaleController.getString(R.string.VoipDeclineCall)); customView.setImageViewBitmap(R.id.photo, avatar); customView.setOnClickPendingIntent(R.id.answer_btn, answerPendingIntent); customView.setOnClickPendingIntent(R.id.decline_btn, endPendingIntent); @@ -4248,10 +4325,58 @@ private void showIncomingNotification(String name, TLObject userOrChat, boolean builder.addAction(R.drawable.ic_call, answerTitle, answerPendingIntent); incomingNotification = builder.getNotification(); } - startForeground(ID_INCOMING_CALL_NOTIFICATION, incomingNotification); + foregroundStarted = true; + if (Build.VERSION.SDK_INT >= 33) { + startForeground(foregroundId = ID_INCOMING_CALL_NOTIFICATION, foregroundNotification = incomingNotification, lastForegroundType = getCurrentForegroundType()); + } else { + startForeground(foregroundId = ID_INCOMING_CALL_NOTIFICATION, foregroundNotification = incomingNotification); + } startRingtoneAndVibration(); } + private boolean foregroundStarted; + private int foregroundId; + private Notification foregroundNotification; + private int lastForegroundType; + private boolean gotMediaProjection; + + private int getCurrentForegroundType() { + return getCurrentForegroundType(this, gotMediaProjection); + } + private static int getCurrentForegroundType(ContextWrapper context, boolean gotMediaProjection) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) { + return ( + ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA | + ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE | + ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION | + ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK + ); + } + int type = 0; + if (context.checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) { + type |= ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA; + } + if (context.checkSelfPermission(Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED) { + type |= ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE; + } + if (gotMediaProjection) { + type |= ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION; + } + type |= ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK; + return type; + } + + public void updateCurrentForegroundType() { + if (lastForegroundType != getCurrentForegroundType() && foregroundStarted) { + stopForeground(true); + if (Build.VERSION.SDK_INT >= 33) { + startForeground(foregroundId, foregroundNotification, lastForegroundType = getCurrentForegroundType()); + } else { + startForeground(foregroundId, foregroundNotification); + } + } + } + private void callFailed(String error) { if (privateCall != null) { if (BuildVars.LOGS_ENABLED) { @@ -4487,7 +4612,7 @@ public void handleNotificationAction(Intent intent) { private void acceptIncomingCallFromNotification() { showNotification(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && Build.VERSION.SDK_INT < Build.VERSION_CODES.R && (checkSelfPermission(Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED || privateCall.video && checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && (checkSelfPermission(Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED || privateCall.video && checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)) { try { //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); PendingIntent.getActivity(VoIPService.this, 0, new Intent(VoIPService.this, VoIPPermissionActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK), PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_ONE_SHOT).send(); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPServiceState.java b/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPServiceState.java new file mode 100644 index 0000000000..1a8f5ab409 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPServiceState.java @@ -0,0 +1,20 @@ +package org.telegram.messenger.voip; + +import org.telegram.tgnet.TLRPC; + +public interface VoIPServiceState { + + public TLRPC.User getUser(); + public boolean isOutgoing(); + public int getCallState(); + public TLRPC.PhoneCall getPrivateCall(); + + public default long getCallDuration() { + return 0; + } + + public void acceptIncomingCall(); + public void declineIncomingCall(); + public void stopRinging(); + +} diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java b/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java index e0069bec02..670f23f214 100644 --- a/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java @@ -1240,25 +1240,28 @@ public static void onPremiumFloodWait(final int currentAccount, final int reques if (UserConfig.selectedAccount != currentAccount) { return; } - - boolean updated = false; - if (isUpload) { - FileUploadOperation operation = FileLoader.getInstance(currentAccount).findUploadOperationByRequestToken(requestToken); - if (operation != null) { - updated = !operation.caughtPremiumFloodWait; - operation.caughtPremiumFloodWait = true; - } - } else { - FileLoadOperation operation = FileLoader.getInstance(currentAccount).findLoadOperationByRequestToken(requestToken); - if (operation != null) { - updated = !operation.caughtPremiumFloodWait; - operation.caughtPremiumFloodWait = true; + FileLoader.getInstance(currentAccount).getFileLoaderQueue().postRunnable(() -> { + boolean updated = false; + if (isUpload) { + FileUploadOperation operation = FileLoader.getInstance(currentAccount).findUploadOperationByRequestToken(requestToken); + if (operation != null) { + updated = !operation.caughtPremiumFloodWait; + operation.caughtPremiumFloodWait = true; + } + } else { + FileLoadOperation operation = FileLoader.getInstance(currentAccount).findLoadOperationByRequestToken(requestToken); + if (operation != null) { + updated = !operation.caughtPremiumFloodWait; + operation.caughtPremiumFloodWait = true; + } } - } - - if (updated) { - NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.premiumFloodWaitReceived); - } + final boolean finalUpdated = updated; + AndroidUtilities.runOnUIThread(() -> { + if (finalUpdated) { + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.premiumFloodWaitReceived); + } + }); + }); }); } diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/NativeByteBuffer.java b/TMessagesProj/src/main/java/org/telegram/tgnet/NativeByteBuffer.java index bc885e7b9d..c840874fd3 100644 --- a/TMessagesProj/src/main/java/org/telegram/tgnet/NativeByteBuffer.java +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/NativeByteBuffer.java @@ -2,6 +2,7 @@ import org.telegram.messenger.BuildVars; import org.telegram.messenger.FileLog; +import org.telegram.messenger.Utilities; import java.nio.ByteBuffer; import java.nio.ByteOrder; @@ -506,6 +507,16 @@ public void readBytes(byte[] b, int offset, int count, boolean exception) { } } + public String hex() { + try { + byte[] bytes = readData(Math.min(limit(), 1024), true); + return Utilities.bytesToHex(bytes); + } catch (Exception e) { + FileLog.e(e); + return ""; + } + } + public byte[] readData(int count, boolean exception) { byte[] arr = new byte[count]; readBytes(arr, exception); diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java b/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java index df3cbfc051..1c01724d0d 100644 --- a/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java @@ -16,6 +16,7 @@ import android.text.TextUtils; import org.osmdroid.util.TileSystemWebMercator; +import androidx.annotation.Keep; import androidx.annotation.Nullable; import org.telegram.messenger.ApplicationLoader; @@ -85,7 +86,7 @@ public class TLRPC { public static final int MESSAGE_FLAG_HAS_BOT_ID = 0x00000800; public static final int MESSAGE_FLAG_EDITED = 0x00008000; - public static final int LAYER = 186; + public static final int LAYER = 187; public static abstract class EmailVerifyPurpose extends TLObject { @@ -2137,7 +2138,6 @@ public void serializeToStream(AbstractSerializedData stream) { public static class TL_textPhone extends RichText { public static final int constructor = 0x1ccb966a; - public RichText text; public String phone; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -2155,8 +2155,6 @@ public void serializeToStream(AbstractSerializedData stream) { public static class TL_textSuperscript extends RichText { public static final int constructor = 0xc7fb5e01; - public RichText text; - public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -2171,6 +2169,7 @@ public static class TL_textImage extends RichText { public static final int constructor = 0x81ccf4f; public long document_id; + public long photo_id; //custom public int w; public int h; @@ -2200,8 +2199,6 @@ public void serializeToStream(AbstractSerializedData stream) { public static class TL_textUrl extends RichText { public static final int constructor = 0x3c2884c1; - public RichText text; - public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); url = stream.readString(exception); @@ -2218,8 +2215,6 @@ public void serializeToStream(AbstractSerializedData stream) { public static class TL_textAnchor extends RichText { public static final int constructor = 0x35553762; - - public RichText text; public String name; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -2237,8 +2232,6 @@ public void serializeToStream(AbstractSerializedData stream) { public static class TL_textStrike extends RichText { public static final int constructor = 0x9bf8bb95; - public RichText text; - public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -2252,8 +2245,6 @@ public void serializeToStream(AbstractSerializedData stream) { public static class TL_textMarked extends RichText { public static final int constructor = 0x34b8621; - public RichText text; - public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -2267,8 +2258,6 @@ public void serializeToStream(AbstractSerializedData stream) { public static class TL_textFixed extends RichText { public static final int constructor = 0x6c3f19b9; - public RichText text; - public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -2282,8 +2271,6 @@ public void serializeToStream(AbstractSerializedData stream) { public static class TL_textEmail extends RichText { public static final int constructor = 0xde5a0dd6; - public RichText text; - public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); email = stream.readString(exception); @@ -2347,8 +2334,6 @@ public void serializeToStream(AbstractSerializedData stream) { public static class TL_textBold extends RichText { public static final int constructor = 0x6724abc4; - public RichText text; - public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -2362,8 +2347,6 @@ public void serializeToStream(AbstractSerializedData stream) { public static class TL_textItalic extends RichText { public static final int constructor = 0xd912a59c; - public RichText text; - public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -2377,8 +2360,6 @@ public void serializeToStream(AbstractSerializedData stream) { public static class TL_textUnderline extends RichText { public static final int constructor = 0xc12622c4; - public RichText text; - public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -2392,8 +2373,6 @@ public void serializeToStream(AbstractSerializedData stream) { public static class TL_textSubscript extends RichText { public static final int constructor = 0xed6a8504; - public RichText text; - public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } @@ -6475,6 +6454,7 @@ public static help_AppUpdate TLdeserialize(AbstractSerializedData stream, int co } } + @Keep public static class TL_help_appUpdate extends help_AppUpdate { public static final int constructor = 0xccbbce30; @@ -20318,6 +20298,7 @@ public static abstract class Page extends TLObject { public ArrayList documents = new ArrayList<>(); public boolean v2; public int views; + public boolean web; //custom public static Page TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { Page result = null; @@ -22369,6 +22350,7 @@ public static abstract class WebPage extends TLObject { public int date; public ArrayList attributes = new ArrayList<>(); public String displayedText;//custom + public String archivePath;//custom public static WebPage TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { WebPage result = null; @@ -27987,12 +27969,18 @@ public static MessageAction TLdeserialize(AbstractSerializedData stream, int con case 0xe1037f92: result = new TL_messageActionChatMigrateTo(); break; - case 0x332ba9ed: + case TL_messageActionGiveawayLaunch.constructor: result = new TL_messageActionGiveawayLaunch(); break; - case 0x2a9fadc5: + case TL_messageActionGiveawayLaunch_layer186.constructor: + result = new TL_messageActionGiveawayLaunch_layer186(); + break; + case TL_messageActionGiveawayResults.constructor: result = new TL_messageActionGiveawayResults(); break; + case TL_messageActionGiveawayResults_layer186.constructor: + result = new TL_messageActionGiveawayResults_layer186(); + break; case 0xea3948e9: result = new TL_messageActionChannelMigrateFrom(); break; @@ -28158,6 +28146,9 @@ public static MessageAction TLdeserialize(AbstractSerializedData stream, int con case TL_messageActionGiftStars.constructor: result = new TL_messageActionGiftStars(); break; + case TL_messageActionPrizeStars.constructor: + result = new TL_messageActionPrizeStars(); + break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in MessageAction", constructor)); @@ -34260,6 +34251,9 @@ public static InputMedia TLdeserialize(AbstractSerializedData stream, int constr case 0xc21b8849: result = new TL_inputMediaWebPage(); break; + case TL_inputMediaPaidMedia_layer186.constructor: + result = new TL_inputMediaPaidMedia_layer186(); + break; case TL_inputMediaPaidMedia.constructor: result = new TL_inputMediaPaidMedia(); break; @@ -34718,6 +34712,53 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_inputMediaPaidMedia extends InputMedia { + public static final int constructor = 0xc4103386; + + public int flags; + public long stars_amount; + public ArrayList extended_media = new ArrayList<>(); + public String payload; + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + stars_amount = stream.readInt64(exception); + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + InputMedia object = InputMedia.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + extended_media.add(object); + } + if ((flags & 1) != 0) { + payload = stream.readString(exception); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + stream.writeInt64(stars_amount); + stream.writeInt32(0x1cb5c415); + int count = extended_media.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + extended_media.get(a).serializeToStream(stream); + } + if ((flags & 1) != 0) { + stream.writeString(payload); + } + } + } + + public static class TL_inputMediaPaidMedia_layer186 extends TL_inputMediaPaidMedia { public static final int constructor = 0xaa661fc3; public long stars_amount; @@ -35305,6 +35346,9 @@ public static class TL_channelAdminLogEventsFilter extends TLObject { public boolean delete; public boolean group_call; public boolean invites; + public boolean send; + public boolean forums; + public boolean sub_extend; public static TL_channelAdminLogEventsFilter TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_channelAdminLogEventsFilter.constructor != constructor) { @@ -35337,6 +35381,9 @@ public void readParams(AbstractSerializedData stream, boolean exception) { delete = (flags & 8192) != 0; group_call = (flags & 16384) != 0; invites = (flags & 32768) != 0; + send = (flags & 65536) != 0; + forums = (flags & 131072) != 0; + sub_extend = (flags & 262144) != 0; } public void serializeToStream(AbstractSerializedData stream) { @@ -35357,6 +35404,9 @@ public void serializeToStream(AbstractSerializedData stream) { flags = delete ? (flags | 8192) : (flags &~ 8192); flags = group_call ? (flags | 16384) : (flags &~ 16384); flags = invites ? (flags | 32768) : (flags &~ 32768); + flags = send ? (flags | 65536) : (flags &~ 65536); + flags = forums ? (flags | 131072) : (flags &~ 131072); + flags = sub_extend ? (flags | 262144) : (flags &~ 262144); stream.writeInt32(flags); } } @@ -35947,6 +35997,7 @@ public void serializeToStream(AbstractSerializedData stream) { } } + @Keep public static abstract class Update extends TLObject { public static Update TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { @@ -36309,6 +36360,12 @@ public static Update TLdeserialize(AbstractSerializedData stream, int constructo case TL_updateStarsRevenueStatus.constructor: result = new TL_updateStarsRevenueStatus(); break; + case TL_updateBotPurchasedPaidMedia.constructor: + result = new TL_updateBotPurchasedPaidMedia(); + break; + case TL_updatePaidReactionPrivacy.constructor: + result = new TL_updatePaidReactionPrivacy(); + break; } if (result == null && ApplicationLoader.applicationLoaderInstance != null) { result = ApplicationLoader.applicationLoaderInstance.parseTLUpdate(constructor); @@ -43343,7 +43400,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_sponsoredMessageReportOption extends TLObject { - public static int constructor = 0x430d3150; + public static final int constructor = 0x430d3150; public String text; public byte[] option; @@ -47099,6 +47156,9 @@ public static ChannelAdminLogEventAction TLdeserialize(AbstractSerializedData st case TL_channelAdminLogEventActionToggleSignatureProfiles.constructor: result = new TL_channelAdminLogEventActionToggleSignatureProfiles(); break; + case TL_channelAdminLogEventActionParticipantSubExtend.constructor: + result = new TL_channelAdminLogEventActionParticipantSubExtend(); + break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in ChannelAdminLogEventAction", constructor)); @@ -47761,6 +47821,24 @@ public void serializeToStream(AbstractSerializedData stream) { } } + public static class TL_channelAdminLogEventActionParticipantSubExtend extends ChannelAdminLogEventAction { + public static final int constructor = 0x64642db3; + + public ChannelParticipant prev_participant; + public ChannelParticipant new_participant; + + public void readParams(AbstractSerializedData stream, boolean exception) { + prev_participant = ChannelParticipant.TLdeserialize(stream, stream.readInt32(exception), exception); + new_participant = ChannelParticipant.TLdeserialize(stream, stream.readInt32(exception), exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + prev_participant.serializeToStream(stream); + new_participant.serializeToStream(stream); + } + } + public static class TL_channelAdminLogEventActionPinTopic extends ChannelAdminLogEventAction { public static final int constructor = 0x5d8d353b; @@ -59859,29 +59937,6 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_contacts_getLocated extends TLObject { - public static final int constructor = 0xd348bc44; - - public int flags; - public boolean background; - public InputGeoPoint geo_point; - public int self_expires; - - public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { - return Updates.TLdeserialize(stream, constructor, exception); - } - - public void serializeToStream(AbstractSerializedData stream) { - stream.writeInt32(constructor); - flags = background ? (flags | 2) : (flags &~ 2); - stream.writeInt32(flags); - geo_point.serializeToStream(stream); - if ((flags & 1) != 0) { - stream.writeInt32(self_expires); - } - } - } - public static class TL_contacts_blockFromReplies extends TLObject { public static final int constructor = 0x29a8962c; @@ -64242,10 +64297,10 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_messages_sendPaidReaction extends TLObject { - public static final int constructor = 0x25c8fe3e; + public static final int constructor = 0x9dd6a67b; public int flags; - public boolean isPrivate; + public Boolean isPrivate; public InputPeer peer; public int msg_id; public int count; @@ -64257,12 +64312,27 @@ public TLObject deserializeResponse(AbstractSerializedData stream, int construct public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); - flags = isPrivate ? (flags | 1) : (flags &~ 1); + flags = isPrivate != null ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); peer.serializeToStream(stream); stream.writeInt32(msg_id); stream.writeInt32(count); stream.writeInt64(random_id); + if ((flags & 1) != 0) { + stream.writeBool(isPrivate); + } + } + } + + public static class TL_messages_getPaidReactionPrivacy extends TLObject { + public static final int constructor = 0x472455aa; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + return Updates.TLdeserialize(stream, constructor, exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); } } @@ -65393,7 +65463,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_messages_searchEmojiStickerSets extends TLObject { - public static int constructor = 0x92b4494c; + public static final int constructor = 0x92b4494c; public int flags; public boolean exclude_featured; @@ -66314,7 +66384,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_stickers_removeStickerFromSet extends TLObject { - public static int constructor = 0xf7760f51; + public static final int constructor = 0xf7760f51; public InputDocument sticker; @@ -66329,7 +66399,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_stickers_changeStickerPosition extends TLObject { - public static int constructor = 0xffb6d4ca; + public static final int constructor = 0xffb6d4ca; public InputDocument sticker; public int position; @@ -66346,7 +66416,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_stickers_addStickerToSet extends TLObject { - public static int constructor = 0x8653febe; + public static final int constructor = 0x8653febe; public InputStickerSet stickerset; public TL_inputStickerSetItem sticker; @@ -67504,6 +67574,9 @@ public static InputStorePaymentPurpose TLdeserialize(AbstractSerializedData stre case TL_inputStorePaymentStarsTopup.constructor: result = new TL_inputStorePaymentStarsTopup(); break; + case TL_inputStorePaymentStarsGiveaway.constructor: + result = new TL_inputStorePaymentStarsGiveaway(); + break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputStorePaymentPurpose", constructor)); @@ -67768,6 +67841,7 @@ public static abstract class RichText extends TLObject { public String url; public long webpage_id; public String email; + public RichText text; public ArrayList texts = new ArrayList<>(); public RichText parentRichText; @@ -68123,9 +68197,15 @@ public static MessageMedia TLdeserialize(AbstractSerializedData stream, int cons case TL_messageMediaGiveawayResults.constructor: result = new TL_messageMediaGiveawayResults(); break; + case TL_messageMediaGiveawayResults_layer186.constructor: + result = new TL_messageMediaGiveawayResults_layer186(); + break; case TL_messageMediaGiveaway.constructor: result = new TL_messageMediaGiveaway(); break; + case TL_messageMediaGiveaway_layer186.constructor: + result = new TL_messageMediaGiveaway_layer186(); + break; case TL_messageMediaGiveaway_layer167.constructor: result = new TL_messageMediaGiveaway_layer167(); break; @@ -77446,11 +77526,11 @@ public static class TL_updateBroadcastRevenueTransactions extends Update { public static final int constructor = 0xdfd961f5; public Peer peer; - public TL_broadcastRevenueBalances balances; + public BroadcastRevenueBalances balances; public void readParams(AbstractSerializedData stream, boolean exception) { peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); - balances = TL_broadcastRevenueBalances.TLdeserialize(stream, stream.readInt32(exception), exception); + balances = BroadcastRevenueBalances.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { @@ -77493,6 +77573,42 @@ public void serializeToStream(AbstractSerializedData stream) { } } + public static class TL_updateBotPurchasedPaidMedia extends Update { + public static final int constructor = 0x283bd312; + + public long user_id; + public String payload; + public int qts; + + public void readParams(AbstractSerializedData stream, boolean exception) { + user_id = stream.readInt64(exception); + payload = stream.readString(exception); + qts = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt64(user_id); + stream.writeString(payload); + stream.writeInt32(qts); + } + } + + public static class TL_updatePaidReactionPrivacy extends Update { + public static final int constructor = 0x51ca7aec; + + public boolean isPrivate; + + public void readParams(AbstractSerializedData stream, boolean exception) { + isPrivate = stream.readBool(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeBool(isPrivate); + } + } + public static class TL_updateSavedDialogPinned extends Update { public static final int constructor = 0xaeaf9e74; @@ -78187,6 +78303,103 @@ public void serializeToStream(AbstractSerializedData stream) { } } + public static class TL_inputStorePaymentStarsGiveaway extends InputStorePaymentPurpose { + public static final int constructor = 0x751f08fa; + + public int flags; + public boolean only_new_subscribers; + public boolean winners_are_visible; + public long stars; + public InputPeer boost_peer; + public ArrayList additional_peers = new ArrayList<>(); + public ArrayList countries_iso2 = new ArrayList<>(); + public String prize_description; + public long random_id; + public int until_date; + public String currency; + public long amount; + public int users; + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + only_new_subscribers = (flags & 1) != 0; + winners_are_visible = (flags & 8) != 0; + stars = stream.readInt64(exception); + boost_peer = InputPeer.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 2) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + InputPeer object = InputPeer.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + additional_peers.add(object); + } + } + if ((flags & 4) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + countries_iso2.add(stream.readString(exception)); + } + } + if ((flags & 16) != 0) { + prize_description = stream.readString(exception); + } + random_id = stream.readInt64(exception); + until_date = stream.readInt32(exception); + currency = stream.readString(exception); + amount = stream.readInt64(exception); + users = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = only_new_subscribers ? (flags | 1) : (flags &~ 1); + flags = winners_are_visible ? (flags | 8) : (flags &~ 8); + stream.writeInt32(flags); + stream.writeInt64(stars); + boost_peer.serializeToStream(stream); + if ((flags & 2) != 0) { + stream.writeInt32(0x1cb5c415); + int count = additional_peers.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + additional_peers.get(a).serializeToStream(stream); + } + } + if ((flags & 4) != 0) { + stream.writeInt32(0x1cb5c415); + int count = countries_iso2.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + stream.writeString(countries_iso2.get(a)); + } + } + if ((flags & 16) != 0) { + stream.writeString(prize_description); + } + stream.writeInt64(random_id); + stream.writeInt32(until_date); + stream.writeString(currency); + stream.writeInt64(amount); + stream.writeInt32(users); + } + } + public static class TL_inputStorePaymentStarsGift extends InputStorePaymentPurpose { public static final int constructor = 0x1d741ef7; @@ -78212,7 +78425,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_inputInvoicePremiumGiftCode extends InputInvoice { - public static int constructor = 0x98986c0d; + public static final int constructor = 0x98986c0d; public InputStorePaymentPurpose purpose; public TL_premiumGiftCodeOption option; @@ -78260,7 +78473,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_messageMediaGiveawayResults extends MessageMedia { - public static final int constructor = 0xc6991068; + public static final int constructor = 0xceaa3ea1; public boolean only_new_subscribers; public boolean refunded; @@ -78271,9 +78484,78 @@ public static class TL_messageMediaGiveawayResults extends MessageMedia { public int unclaimed_count; public ArrayList winners = new ArrayList<>(); public int months; + public long stars; public String prize_description; public int until_date; + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + only_new_subscribers = (flags & 1) != 0; + refunded = (flags & 4) != 0; + channel_id = stream.readInt64(exception); + if ((flags & 8) != 0) { + additional_peers_count = stream.readInt32(exception); + } + launch_msg_id = stream.readInt32(exception); + winners_count = stream.readInt32(exception); + unclaimed_count = stream.readInt32(exception); + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + winners.add(stream.readInt64(exception)); + } + if ((flags & 16) != 0) { + months = stream.readInt32(exception); + } + if ((flags & 32) != 0) { + stars = stream.readInt64(exception); + } + if ((flags & 2) != 0) { + prize_description = stream.readString(exception); + } + until_date = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = only_new_subscribers ? (flags | 1) : (flags &~ 1); + flags = refunded ? (flags | 4) : (flags &~ 4); + stream.writeInt32(flags); + stream.writeInt64(channel_id); + if ((flags & 8) != 0) { + stream.writeInt32(additional_peers_count); + } + stream.writeInt32(launch_msg_id); + stream.writeInt32(winners_count); + stream.writeInt32(unclaimed_count); + stream.writeInt32(0x1cb5c415); + int count = winners.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + stream.writeInt64(winners.get(a)); + } + if ((flags & 16) != 0) { + stream.writeInt32(months); + } + if ((flags & 32) != 0) { + stream.writeInt64(stars); + } + if ((flags & 2) != 0) { + stream.writeString(prize_description); + } + stream.writeInt32(until_date); + } + } + + public static class TL_messageMediaGiveawayResults_layer186 extends TL_messageMediaGiveawayResults { + public static final int constructor = 0xc6991068; + public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); only_new_subscribers = (flags & 1) != 0; @@ -78330,7 +78612,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_messageMediaGiveaway extends MessageMedia { - public static final int constructor = 0xdaad85b0; + public static final int constructor = 0xaa073beb; public boolean only_new_subscribers; public boolean winners_are_visible; @@ -78339,8 +78621,86 @@ public static class TL_messageMediaGiveaway extends MessageMedia { public String prize_description; public int quantity; public int months; + public long stars; public int until_date; + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + only_new_subscribers = (flags & 1) != 0; + winners_are_visible = (flags & 4) != 0; + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + channels.add(stream.readInt64(exception)); + } + if ((flags & 2) != 0) { + magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + countries_iso2.add(stream.readString(exception)); + } + } + if ((flags & 8) != 0) { + prize_description = stream.readString(exception); + } + quantity = stream.readInt32(exception); + if ((flags & 16) != 0) { + months = stream.readInt32(exception); + } + if ((flags & 32) != 0) { + stars = stream.readInt64(exception); + } + until_date = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = only_new_subscribers ? (flags | 1) : (flags &~ 1); + flags = winners_are_visible ? (flags | 4) : (flags &~ 4); + stream.writeInt32(flags); + stream.writeInt32(0x1cb5c415); + int count = channels.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + stream.writeInt64(channels.get(a)); + } + if ((flags & 2) != 0) { + stream.writeInt32(0x1cb5c415); + count = countries_iso2.size(); + stream.writeInt32(count); + for (int a = 0; a < count; a++) { + stream.writeString(countries_iso2.get(a)); + } + } + if ((flags & 8) != 0) { + stream.writeString(prize_description); + } + stream.writeInt32(quantity); + if ((flags & 16) != 0) { + stream.writeInt32(months); + } + if ((flags & 32) != 0) { + stream.writeInt64(stars); + } + stream.writeInt32(until_date); + } + } + + public static class TL_messageMediaGiveaway_layer186 extends TL_messageMediaGiveaway { + public static final int constructor = 0xdaad85b0; + public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); only_new_subscribers = (flags & 1) != 0; @@ -78497,7 +78857,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_premiumGiftCodeOption extends TLObject { - public static int constructor = 0x257e962b; + public static final int constructor = 0x257e962b; public int flags; public int users; @@ -78551,7 +78911,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_payments_getPremiumGiftCodeOptions extends TLObject { - public static int constructor = 0x2757ba54; + public static final int constructor = 0x2757ba54; public int flags; public InputPeer boost_peer; @@ -78579,7 +78939,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_payments_checkGiftCode extends TLObject { - public static int constructor = 0x8e51b4c1; + public static final int constructor = 0x8e51b4c1; public String slug; @@ -78594,7 +78954,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_payments_applyGiftCode extends TLObject { - public static int constructor = 0xf6e26854; + public static final int constructor = 0xf6e26854; public String slug; @@ -78609,17 +78969,59 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_payments_giveawayInfoResults extends payments_GiveawayInfo { - public static final int constructor = 0xcd5570; + public static final int constructor = 0xe175e66f; public int flags; public boolean winner; public boolean refunded; public int start_date; public String gift_code_slug; + public long stars_prize; public int finish_date; public int winners_count; public int activated_count; + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + winner = (flags & 1) != 0; + refunded = (flags & 2) != 0; + start_date = stream.readInt32(exception); + if ((flags & 8) != 0) { + gift_code_slug = stream.readString(exception); + } + if ((flags & 16) != 0) { + stars_prize = stream.readInt64(exception); + } + finish_date = stream.readInt32(exception); + winners_count = stream.readInt32(exception); + if ((flags & 4) != 0) { + activated_count = stream.readInt32(exception); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = winner ? (flags | 1) : (flags &~ 1); + flags = refunded ? (flags | 2) : (flags &~ 2); + stream.writeInt32(flags); + stream.writeInt32(start_date); + if ((flags & 1) != 0) { + stream.writeString(gift_code_slug); + } + if ((flags & 1) != 0) { + stream.writeInt64(stars_prize); + } + stream.writeInt32(finish_date); + stream.writeInt32(winners_count); + if ((flags & 4) != 0) { + stream.writeInt32(activated_count); + } + } + } + + public static class TL_payments_giveawayInfoResults_layer186 extends TL_payments_giveawayInfoResults { + public static final int constructor = 0xcd5570; + public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); winner = (flags & 1) != 0; @@ -78701,6 +79103,9 @@ public static payments_GiveawayInfo TLdeserialize(AbstractSerializedData stream, case TL_payments_giveawayInfoResults.constructor: result = new TL_payments_giveawayInfoResults(); break; + case TL_payments_giveawayInfoResults_layer186.constructor: + result = new TL_payments_giveawayInfoResults_layer186(); + break; case TL_payments_giveawayInfo.constructor: result = new TL_payments_giveawayInfo(); break; @@ -78716,7 +79121,7 @@ public static payments_GiveawayInfo TLdeserialize(AbstractSerializedData stream, } public static class TL_payments_getGiveawayInfo extends TLObject { - public static int constructor = 0xf4239425; + public static final int constructor = 0xf4239425; public InputPeer peer; public int msg_id; @@ -78744,7 +79149,7 @@ public static class TL_payments_checkedGiftCode extends TLObject { public int date; public int months; public int used_date; - public TL_stories.TL_boost boost; //custom + public TL_stories.Boost boost; //custom public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); @@ -78844,7 +79249,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_payments_launchPrepaidGiveaway extends TLObject { - public static int constructor = 0x5ff58f20; + public static final int constructor = 0x5ff58f20; public InputPeer peer; public long giveaway_id; @@ -78863,7 +79268,30 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_messageActionGiveawayLaunch extends MessageAction { - public static int constructor = 0x332ba9ed; + public static final int constructor = 0xa80f51e4; + + public int flags; + public long stars; + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + if ((flags & 1) != 0) { + stars = stream.readInt64(exception); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + if ((flags & 1) != 0) { + stream.writeInt64(stars); + } + } + } + + public static class TL_messageActionGiveawayLaunch_layer186 extends TL_messageActionGiveawayLaunch { + public static final int constructor = 0x332ba9ed; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); @@ -78871,26 +79299,80 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_messageActionGiveawayResults extends MessageAction { - public static int constructor = 0x2a9fadc5; + public static final int constructor = 0x87e2f155; + public int flags; + public boolean stars; public int winners_count; public int unclaimed_count; @Override public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + stars = (flags & 1) != 0; winners_count = stream.readInt32(exception); unclaimed_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); + flags = stars ? (flags | 1) : (flags &~ 1); + stream.writeInt32(flags); stream.writeInt32(winners_count); stream.writeInt32(unclaimed_count); } } + public static class TL_messageActionGiveawayResults_layer186 extends TL_messageActionGiveawayResults { + public static final int constructor = 0x2a9fadc5; + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + winners_count = stream.readInt32(exception); + unclaimed_count = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(winners_count); + stream.writeInt32(unclaimed_count); + } + } + + public static class TL_messageActionPrizeStars extends MessageAction { + public static final int constructor = 0xb00c47a2; + + public int flags; + public boolean via_giveaway; + public boolean unclaimed; + public long stars; + public String transaction_id; + public Peer boost_peer; + public int giveaway_msg_id; + + @Override + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + unclaimed = (flags & 1) != 0; + stars = stream.readInt64(exception); + transaction_id = stream.readString(exception); + boost_peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); + giveaway_msg_id = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt32(flags); + flags = unclaimed ? (flags | 1) : (flags &~ 1); + stream.writeInt64(stars); + stream.writeString(transaction_id); + boost_peer.serializeToStream(stream); + stream.writeInt32(giveaway_msg_id); + } + } + public static class TL_channels_updateEmojiStatus extends TLObject { - public static int constructor = 0xf0d3e6a8; + public static final int constructor = 0xf0d3e6a8; public InputChannel channel; public EmojiStatus emoji_status; @@ -78909,7 +79391,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_channels_getChannelRecommendations extends TLObject { - public static int constructor = 0x25a71742; + public static final int constructor = 0x25a71742; public int flags; public InputChannel channel; @@ -78929,7 +79411,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_channels_toggleViewForumAsMessages extends TLObject { - public static int constructor = 0x9738bb15; + public static final int constructor = 0x9738bb15; public InputChannel channel_id; public boolean enabled; @@ -80936,7 +81418,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_connectedBot extends TLObject { - public static int constructor = 0xbd068601; + public static final int constructor = 0xbd068601; public int flags; public boolean can_reply; @@ -80974,7 +81456,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_account_connectedBots extends TLObject { - public static int constructor = 0x17d7f87b; + public static final int constructor = 0x17d7f87b; public ArrayList connected_bots = new ArrayList<>(); public ArrayList users = new ArrayList<>(); @@ -81036,7 +81518,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_account_updateConnectedBot extends TLObject { - public static int constructor = 0x43d8521d; + public static final int constructor = 0x43d8521d; public int flags; public boolean can_reply; @@ -81061,7 +81543,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_account_getConnectedBots extends TLObject { - public static int constructor = 0x4ea4c80f; + public static final int constructor = 0x4ea4c80f; @Override public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { @@ -81133,7 +81615,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_businessIntro extends TLObject { - public static int constructor = 0x5a0a066d; + public static final int constructor = 0x5a0a066d; public int flags; public String title; @@ -81175,7 +81657,7 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_inputBusinessIntro extends TLObject { - public static int constructor = 0x9c469cd; + public static final int constructor = 0x9c469cd; public int flags; public String title; @@ -82117,30 +82599,63 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_broadcastRevenueBalances extends TLObject { - public static final int constructor = 0x8438f1c6; + public static class BroadcastRevenueBalances extends TLObject { + public int flags; + public boolean withdrawal_enabled; public long current_balance; public long available_balance; public long overall_revenue; - public static TL_broadcastRevenueBalances TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_broadcastRevenueBalances.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_broadcastRevenueBalances", constructor)); - } else { - return null; - } + public static BroadcastRevenueBalances TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + BroadcastRevenueBalances result = null; + switch (constructor) { + case TL_broadcastRevenueBalances.constructor: + result = new TL_broadcastRevenueBalances(); + break; + case TL_broadcastRevenueBalances_layer186.constructor: + result = new TL_broadcastRevenueBalances_layer186(); + break; + } + if (result == null && exception) { + throw new RuntimeException(String.format("can't parse magic %x in BroadcastRevenueBalances", constructor)); + } + if (result != null) { + result.readParams(stream, exception); } - TL_broadcastRevenueBalances result = new TL_broadcastRevenueBalances(); - result.readParams(stream, exception); return result; } + } + + public static class TL_broadcastRevenueBalances extends BroadcastRevenueBalances { + public static final int constructor = 0xc3ff71e7; + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + withdrawal_enabled = (flags & 1) != 0; + current_balance = stream.readInt64(exception); + available_balance = stream.readInt64(exception); + overall_revenue = stream.readInt64(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = withdrawal_enabled ? (flags | 1) : (flags &~ 1); + stream.writeInt32(flags); + stream.writeInt64(current_balance); + stream.writeInt64(available_balance); + stream.writeInt64(overall_revenue); + } + } + + public static class TL_broadcastRevenueBalances_layer186 extends TL_broadcastRevenueBalances { + public static final int constructor = 0x8438f1c6; public void readParams(AbstractSerializedData stream, boolean exception) { current_balance = stream.readInt64(exception); available_balance = stream.readInt64(exception); overall_revenue = stream.readInt64(exception); + withdrawal_enabled = true; } public void serializeToStream(AbstractSerializedData stream) { @@ -82453,6 +82968,121 @@ public void serializeToStream(AbstractSerializedData stream) { } } + public static class TL_starsGiveawayWinnersOption extends TLObject { + public static final int constructor = 0x54236209; + + public int flags; + public boolean isDefault; + public int users; + public long per_user_stars; + + public static TL_starsGiveawayWinnersOption TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_starsGiveawayWinnersOption.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_starsGiveawayWinnersOption", constructor)); + } else { + return null; + } + } + TL_starsGiveawayWinnersOption result = new TL_starsGiveawayWinnersOption(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + isDefault = (flags & 1) != 0; + users = stream.readInt32(exception); + per_user_stars = stream.readInt64(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = isDefault ? (flags | 1) : (flags &~ 1); + stream.writeInt32(flags); + stream.writeInt32(users); + stream.writeInt64(per_user_stars); + } + } + + public static class TL_starsGiveawayOption extends TLObject { + public static final int constructor = 0x94ce852a; + + public int flags; + public boolean extended; + public boolean isDefault; + public long stars; + public int yearly_boosts; + public String store_product; + public String currency; + public long amount; + public ArrayList winners = new ArrayList<>(); + + public boolean loadingStorePrice; //custom + public boolean missingStorePrice; //custom + + public static TL_starsGiveawayOption TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + if (TL_starsGiveawayOption.constructor != constructor) { + if (exception) { + throw new RuntimeException(String.format("can't parse magic %x in TL_starsGiveawayOption", constructor)); + } else { + return null; + } + } + TL_starsGiveawayOption result = new TL_starsGiveawayOption(); + result.readParams(stream, exception); + return result; + } + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + extended = (flags & 1) != 0; + isDefault = (flags & 2) != 0; + stars = stream.readInt64(exception); + yearly_boosts = stream.readInt32(exception); + if ((flags & 4) != 0) { + store_product = stream.readString(exception); + } + currency = stream.readString(exception); + amount = stream.readInt64(exception); + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + TL_starsGiveawayWinnersOption object = TL_starsGiveawayWinnersOption.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + winners.add(object); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = extended ? (flags | 1) : (flags &~ 1); + flags = isDefault ? (flags | 2) : (flags &~ 2); + stream.writeInt32(flags); + stream.writeInt64(stars); + stream.writeInt32(yearly_boosts); + if ((flags & 4) != 0) { + stream.writeString(store_product); + } + stream.writeString(currency); + stream.writeInt64(amount); + stream.writeInt32(0x1cb5c415); + int count = winners.size(); + stream.writeInt32(count); + for (int i = 0; i < count; ++i) { + winners.get(i).serializeToStream(stream); + } + } + } + public static class StarsTransactionPeer extends TLObject { public Peer peer; @@ -82587,6 +83217,7 @@ public static class StarsTransaction extends TLObject { public int msg_id; public ArrayList extended_media = new ArrayList<>(); public int subscription_period; + public int giveaway_post_id; public Peer sent_by; //custom public Peer received_by; //custom @@ -82603,6 +83234,9 @@ public static StarsTransaction TLdeserialize(AbstractSerializedData stream, int case TL_starsTransaction_layer185.constructor: result = new TL_starsTransaction_layer185(); break; + case TL_starsTransaction_layer186.constructor: + result = new TL_starsTransaction_layer186(); + break; case TL_starsTransaction.constructor: result = new TL_starsTransaction(); break; @@ -82711,6 +83345,113 @@ public void serializeToStream(AbstractSerializedData stream) { } public static class TL_starsTransaction extends StarsTransaction { + public static final int constructor = 0xee7522d5; + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + refund = (flags & 8) != 0; + pending = (flags & 16) != 0; + failed = (flags & 64) != 0; + gift = (flags & 1024) != 0; + reaction = (flags & 2048) != 0; + subscription = (flags & 4096) != 0; + id = stream.readString(exception); + stars = stream.readInt64(exception); + date = stream.readInt32(exception); + peer = StarsTransactionPeer.TLdeserialize(stream, stream.readInt32(exception), exception); + if ((flags & 1) != 0) { + title = stream.readString(exception); + } + if ((flags & 2) != 0) { + description = stream.readString(exception); + } + if ((flags & 4) != 0) { + photo = WebDocument.TLdeserialize(stream, stream.readInt32(exception), exception); + } + if ((flags & 32) != 0) { + transaction_date = stream.readInt32(exception); + transaction_url = stream.readString(exception); + } + if ((flags & 128) != 0) { + bot_payload = stream.readByteArray(exception); + } + if ((flags & 256) != 0) { + msg_id = stream.readInt32(exception); + } + if ((flags & 512) != 0) { + int magic = stream.readInt32(exception); + if (magic != 0x1cb5c415) { + if (exception) { + throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); + } + return; + } + int count = stream.readInt32(exception); + for (int a = 0; a < count; a++) { + MessageMedia object = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return; + } + extended_media.add(object); + } + } + if ((flags & 4096) != 0) { + subscription_period = stream.readInt32(exception); + } + if ((flags & 8192) != 0) { + giveaway_post_id = stream.readInt32(exception); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = refund ? flags | 8 : flags &~ 8; + flags = pending ? flags | 16 : flags &~ 16; + flags = failed ? flags | 64 : flags &~ 64; + flags = gift ? flags | 1024 : flags &~ 1024; + flags = reaction ? flags | 2048 : flags &~ 2048; + flags = subscription ? flags | 4096 : flags &~ 4096; + stream.writeInt32(flags); + stream.writeInt64(stars); + stream.writeInt32(date); + peer.serializeToStream(stream); + if ((flags & 1) != 0) { + stream.writeString(title); + } + if ((flags & 2) != 0) { + stream.writeString(description); + } + if ((flags & 4) != 0) { + photo.serializeToStream(stream); + } + if ((flags & 32) != 0) { + stream.writeInt32(transaction_date); + stream.writeString(transaction_url); + } + if ((flags & 128) != 0) { + stream.writeByteArray(bot_payload); + } + if ((flags & 256) != 0) { + stream.writeInt32(msg_id); + } + if ((flags & 512) != 0) { + stream.writeInt32(0x1cb5c415); + int count = extended_media.size(); + stream.writeInt32(count); + for (int i = 0; i < count; ++i) { + extended_media.get(i).serializeToStream(stream); + } + } + if ((flags & 4096) != 0) { + stream.writeInt32(subscription_period); + } + if ((flags & 8192) != 0) { + stream.writeInt32(giveaway_post_id); + } + } + } + + public static class TL_starsTransaction_layer186 extends TL_starsTransaction { public static final int constructor = 0x433aeb2b; public void readParams(AbstractSerializedData stream, boolean exception) { @@ -83097,6 +83838,27 @@ public void serializeToStream(AbstractSerializedData stream) { } } + public static class TL_payments_getStarsGiveawayOptions extends TLObject { + public static final int constructor = 0xbd1efd3e; + + public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { + Vector vector = new Vector(); + int size = stream.readInt32(exception); + for (int a = 0; a < size; a++) { + TL_starsGiveawayOption object = TL_starsGiveawayOption.TLdeserialize(stream, stream.readInt32(exception), exception); + if (object == null) { + return vector; + } + vector.objects.add(object); + } + return vector; + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + } + } + public static class TL_payments_getStarsStatus extends TLObject { public static final int constructor = 0x104fcfa7; diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stats.java b/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stats.java index 88bd2fecb3..c612680b1c 100644 --- a/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stats.java +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stats.java @@ -784,7 +784,7 @@ public static class TL_broadcastRevenueStats extends TLObject { public StatsGraph top_hours_graph; public StatsGraph revenue_graph; - public TLRPC.TL_broadcastRevenueBalances balances; + public TLRPC.BroadcastRevenueBalances balances; public double usd_rate; public static TL_broadcastRevenueStats TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { @@ -805,7 +805,7 @@ public static TL_broadcastRevenueStats TLdeserialize(AbstractSerializedData stre public void readParams(AbstractSerializedData stream, boolean exception) { top_hours_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); revenue_graph = StatsGraph.TLdeserialize(stream, stream.readInt32(exception), exception); - balances = TLRPC.TL_broadcastRevenueBalances.TLdeserialize(stream, stream.readInt32(exception), exception); + balances = TLRPC.BroadcastRevenueBalances.TLdeserialize(stream, stream.readInt32(exception), exception); usd_rate = stream.readDouble(exception); } diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stories.java b/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stories.java index d794439076..d5a11d54bd 100644 --- a/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stories.java +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/tl/TL_stories.java @@ -1809,7 +1809,7 @@ public static class TL_premium_boostsStatus extends TLObject { public int next_level_boosts; public TL_statsPercentValue premium_audience; public String boost_url; - public ArrayList prepaid_giveaways = new ArrayList<>(); + public ArrayList prepaid_giveaways = new ArrayList<>(); public ArrayList my_boost_slots = new ArrayList<>(); public static TL_premium_boostsStatus TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { @@ -1851,7 +1851,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { - TL_prepaidGiveaway object = TL_prepaidGiveaway.TLdeserialize(stream, stream.readInt32(exception), exception); + PrepaidGiveaway object = PrepaidGiveaway.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } @@ -1950,7 +1950,7 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_boost extends TLObject { + public static class Boost extends TLObject { public static int constructor = 0x2a1c8c71; public static final long NO_USER_ID = -1L; //custom @@ -1965,19 +1965,85 @@ public static class TL_boost extends TLObject { public int expires; public String used_gift_slug; public int multiplier; + public long stars; - public static TL_boost TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_boost.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_boost", constructor)); - } else { - return null; - } + public static Boost TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + Boost result = null; + switch (constructor) { + case TL_boost.constructor: + result = new TL_boost(); + break; + case TL_boost_layer186.constructor: + result = new TL_boost_layer186(); + break; + } + if (result == null && exception) { + throw new RuntimeException(String.format("can't parse magic %x in Boost", constructor)); + } + if (result != null) { + result.readParams(stream, exception); } - TL_boost result = new TL_boost(); - result.readParams(stream, exception); return result; } + } + + public static class TL_boost extends Boost { + public static final int constructor = 0x4b3e14d6; + + public void readParams(AbstractSerializedData stream, boolean exception) { + flags = stream.readInt32(exception); + gift = (flags & 2) != 0; + giveaway = (flags & 4) != 0; + unclaimed = (flags & 8) != 0; + id = stream.readString(exception); + if ((flags & 1) != 0) { + user_id = stream.readInt64(exception); + } + if ((flags & 4) != 0) { + giveaway_msg_id = stream.readInt32(exception); + } + date = stream.readInt32(exception); + expires = stream.readInt32(exception); + if ((flags & 16) != 0) { + used_gift_slug = stream.readString(exception); + } + if ((flags & 32) != 0) { + multiplier = stream.readInt32(exception); + } + if ((flags & 64) != 0) { + stars = stream.readInt64(exception); + } + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + flags = gift ? (flags | 2) : (flags &~ 2); + flags = giveaway ? (flags | 4) : (flags &~ 4); + flags = unclaimed ? (flags | 8) : (flags &~ 8); + stream.writeInt32(flags); + stream.writeString(id); + if ((flags & 1) != 0) { + stream.writeInt64(user_id); + } + if ((flags & 4) != 0) { + stream.writeInt32(giveaway_msg_id); + } + stream.writeInt32(date); + stream.writeInt32(expires); + if ((flags & 16) != 0) { + stream.writeString(used_gift_slug); + } + if ((flags & 32) != 0) { + stream.writeInt32(multiplier); + } + if ((flags & 64) != 0) { + stream.writeInt64(stars); + } + } + } + + public static class TL_boost_layer186 extends TL_boost { + public static final int constructor = 0x2a1c8c71; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); @@ -2030,7 +2096,7 @@ public static class TL_premium_boostsList extends TLObject { public int flags; public int count; - public ArrayList boosts = new ArrayList<>(); + public ArrayList boosts = new ArrayList<>(); public String next_offset; public ArrayList users = new ArrayList<>(); @@ -2059,7 +2125,7 @@ public void readParams(AbstractSerializedData stream, boolean exception) { } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { - TL_boost object = TL_boost.TLdeserialize(stream, stream.readInt32(exception), exception); + Boost object = Boost.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } @@ -3467,26 +3533,60 @@ public void serializeToStream(AbstractSerializedData stream) { } } - public static class TL_prepaidGiveaway extends TLObject { - public static int constructor = 0xb2539d54; + public static class PrepaidGiveaway extends TLObject { public long id; - public int months; public int quantity; public int date; + public int boosts; - public static TL_prepaidGiveaway TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { - if (TL_prepaidGiveaway.constructor != constructor) { - if (exception) { - throw new RuntimeException(String.format("can't parse magic %x in TL_prepaidGiveaway", constructor)); - } else { - return null; - } + public static PrepaidGiveaway TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { + PrepaidGiveaway result = null; + switch (constructor) { + case TL_prepaidGiveaway.constructor: + result = new TL_prepaidGiveaway(); + break; + case TL_prepaidStarsGiveaway.constructor: + result = new TL_prepaidStarsGiveaway(); + break; + } + if (result == null && exception) { + throw new RuntimeException(String.format("can't parse magic %x in PrepaidGiveaway", constructor)); + } + if (result != null) { + result.readParams(stream, exception); } - TL_prepaidGiveaway result = new TL_prepaidGiveaway(); - result.readParams(stream, exception); return result; } + } + + public static class TL_prepaidStarsGiveaway extends PrepaidGiveaway { + public static final int constructor = 0x9a9d77e0; + + public long stars; + + public void readParams(AbstractSerializedData stream, boolean exception) { + id = stream.readInt64(exception); + stars = stream.readInt64(exception); + quantity = stream.readInt32(exception); + boosts = stream.readInt32(exception); + date = stream.readInt32(exception); + } + + public void serializeToStream(AbstractSerializedData stream) { + stream.writeInt32(constructor); + stream.writeInt64(id); + stream.writeInt64(stars); + stream.writeInt32(quantity); + stream.writeInt32(boosts); + stream.writeInt32(date); + } + } + + public static class TL_prepaidGiveaway extends PrepaidGiveaway { + public static final int constructor = 0xb2539d54; + + public int months; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); 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 584d5d609b..bceda0f41c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBar.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBar.java @@ -206,7 +206,7 @@ private void createBackButtonImage() { actionBarMenuOnItemClick.onItemClick(-1); } }); - backButtonImageView.setContentDescription(LocaleController.getString("AccDescrGoBack", R.string.AccDescrGoBack)); + backButtonImageView.setContentDescription(LocaleController.getString(R.string.AccDescrGoBack)); } public Drawable getBackButtonDrawable() { 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 a0119ae246..a94e83b52e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java @@ -1540,6 +1540,9 @@ public boolean presentFragment(NavigationParams params) { FileLog.d("present fragment " + fragment.getClass().getSimpleName() + " args=" + fragment.getArguments()); } StoryViewer.closeGlobalInstances(); + if (bottomSheetTabs != null && !bottomSheetTabs.doNotDismiss) { + LaunchActivity.dismissAllWeb(); + } if (inPreviewMode && transitionAnimationPreviewMode) { if (delayedOpenAnimationRunnable != null) { AndroidUtilities.cancelRunOnUIThread(delayedOpenAnimationRunnable); @@ -2982,8 +2985,8 @@ public void setNavigationBarColor(int color) { } private ValueAnimator bottomTabsAnimator; - private float bottomTabsProgress; - private int bottomTabsHeight; + public float bottomTabsProgress; + public int bottomTabsHeight; public void updateBottomTabsVisibility(boolean animated) { if (bottomSheetTabs == null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuItem.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuItem.java index b1fd5e182e..0011f7f9cd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuItem.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuItem.java @@ -1590,7 +1590,7 @@ public int getCurrentColor() { searchField.requestFocus(); AndroidUtilities.showKeyboard(searchField); }); - clearButton.setContentDescription(LocaleController.getString("ClearButton", R.string.ClearButton)); + clearButton.setContentDescription(LocaleController.getString(R.string.ClearButton)); if (wrapSearchInScrollView) { wrappedSearchFrameLayout.addView(clearButton, LayoutHelper.createFrame(48, LayoutHelper.MATCH_PARENT, Gravity.CENTER_VERTICAL | Gravity.RIGHT)); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuSlider.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuSlider.java index 6e33b1745a..3585e19d9f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuSlider.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarMenuSlider.java @@ -492,7 +492,7 @@ protected float getDelta() { @Override public CharSequence getContentDescription(View host) { - return SpeedIconDrawable.formatNumber(getSpeed()) + "x " + LocaleController.getString("AccDescrSpeedSlider", R.string.AccDescrSpeedSlider); + return SpeedIconDrawable.formatNumber(getSpeed()) + "x " + LocaleController.getString(R.string.AccDescrSpeedSlider); } }); } 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 c85185fd0c..5b7bfbf3b0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/AlertDialog.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/AlertDialog.java @@ -50,6 +50,7 @@ import android.widget.ScrollView; import android.widget.TextView; +import androidx.annotation.Keep; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.graphics.ColorUtils; @@ -1224,10 +1225,10 @@ private void showCancelAlert() { return; } Builder builder = new Builder(getContext(), resourcesProvider); - builder.setTitle(LocaleController.getString("StopLoadingTitle", R.string.StopLoadingTitle)); - builder.setMessage(LocaleController.getString("StopLoading", R.string.StopLoading)); - builder.setPositiveButton(LocaleController.getString("WaitMore", R.string.WaitMore), null); - builder.setNegativeButton(LocaleController.getString("Stop", R.string.Stop), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.StopLoadingTitle)); + builder.setMessage(LocaleController.getString(R.string.StopLoading)); + builder.setPositiveButton(LocaleController.getString(R.string.WaitMore), null); + builder.setNegativeButton(LocaleController.getString(R.string.Stop), (dialogInterface, i) -> { if (onCancelListener != null) { onCancelListener.onCancel(AlertDialog.this); } @@ -1617,6 +1618,7 @@ public Builder setSubtitle(CharSequence subtitle) { return this; } + @Keep public Builder setTopImage(int resId, int backgroundColor) { alertDialog.topResId = resId; alertDialog.topBackgroundColor = backgroundColor; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BottomSheetTabs.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BottomSheetTabs.java index c8d06bbfb0..d1212bf7d2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BottomSheetTabs.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BottomSheetTabs.java @@ -45,6 +45,7 @@ import org.telegram.ui.Components.CubicBezierInterpolator; import org.telegram.ui.Components.Text; import org.telegram.ui.LaunchActivity; +import org.telegram.ui.bots.BotButtons; import org.telegram.ui.bots.BotWebViewAttachedSheet; import org.telegram.ui.web.BotWebViewContainer; import org.telegram.ui.bots.BotWebViewSheet; @@ -57,6 +58,7 @@ public class BottomSheetTabs extends FrameLayout { private final Paint backgroundPaint = new Paint(Paint.ANTI_ALIAS_FLAG); public boolean drawTabs = true; + public boolean doNotDismiss = false; private final ActionBarLayout actionBarLayout; @@ -140,9 +142,11 @@ public void openTab(WebTabData tab) { }; open.run(lastFragment); if (tab.needsContext && (!(lastFragment instanceof ChatActivity) || ((ChatActivity) lastFragment).getDialogId() != tab.props.botId)) { + doNotDismiss = true; BaseFragment chatActivity = ChatActivity.of(tab.props.botId); AndroidUtilities.runOnUIThread(() -> { lastFragment.presentFragment(chatActivity); + doNotDismiss = false; }, 220); } } @@ -557,6 +561,10 @@ protected void dispatchDraw(Canvas canvas) { final ArrayList tabs = getTabs(); final ArrayList tabDrawables = getTabDrawables(); + if (actionBarLayout != null && actionBarLayout.bottomTabsProgress <= 0) { + return; + } + backgroundPaint.setColor(backgroundColorAnimated.set(backgroundColor)); canvas.drawRect(0, 0, getWidth(), getHeight(), backgroundPaint); super.dispatchDraw(canvas); @@ -835,10 +843,13 @@ public static class WebTabData { public int actionBarColor; public int backgroundColor; + public int navigationBarColor; + public boolean ready; public boolean backButton; public boolean settings; public BotWebViewAttachedSheet.MainButtonSettings main; + public BotButtons.ButtonsState buttons; public String lastUrl; public boolean confirmDismiss; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/FloatingToolbar.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/FloatingToolbar.java index fbb4fe3d12..2a30792a5c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/FloatingToolbar.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/FloatingToolbar.java @@ -784,7 +784,7 @@ private void setPanelsStatesAtRestingPosition() { mOverflowPanel.setAlpha(1); mOverflowPanel.setVisibility(View.VISIBLE); mOverflowButtonIcon.setImageDrawable(mArrow); - mOverflowButton.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + mOverflowButton.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); if (isInRTLMode()) { mContentContainer.setX(mMarginHorizontal); @@ -816,7 +816,7 @@ private void setPanelsStatesAtRestingPosition() { mOverflowPanel.setAlpha(0); mOverflowPanel.setVisibility(View.INVISIBLE); mOverflowButtonIcon.setImageDrawable(mOverflow); - mOverflowButton.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + mOverflowButton.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); if (hasOverflow()) { if (isInRTLMode()) { mContentContainer.setX(mMarginHorizontal); 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 0af594fd5d..aca7ede069 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java @@ -10,6 +10,7 @@ import static org.telegram.messenger.AndroidUtilities.dp; import static org.telegram.messenger.AndroidUtilities.dpf2; +import static org.telegram.messenger.LocaleController.getString; import android.annotation.SuppressLint; import android.annotation.TargetApi; @@ -2376,15 +2377,15 @@ public void setOverrideWallpaper(OverrideWallpaperInfo info) { public String getName() { if ("Blue".equals(name)) { - return LocaleController.getString("ThemeClassic", R.string.ThemeClassic); + return getString(R.string.ThemeClassic); } else if ("Dark Blue".equals(name)) { - return LocaleController.getString("ThemeDark", R.string.ThemeDark); + return getString(R.string.ThemeDark); } else if ("Arctic Blue".equals(name)) { - return LocaleController.getString("ThemeArcticBlue", R.string.ThemeArcticBlue); + return getString(R.string.ThemeArcticBlue); } else if ("Day".equals(name)) { - return LocaleController.getString("ThemeDay", R.string.ThemeDay); + return getString(R.string.ThemeDay); } else if ("Night".equals(name)) { - return LocaleController.getString("ThemeNight", R.string.ThemeNight); + return getString(R.string.ThemeNight); } return info != null ? info.title : name; } @@ -3118,7 +3119,7 @@ public void run() { public static Paint avatar_backgroundPaint; public static Drawable listSelector; - public static Drawable[] avatarDrawables = new Drawable[22]; + public static Drawable[] avatarDrawables = new Drawable[24]; public static Drawable moveUpDrawable; @@ -4139,6 +4140,7 @@ public void run() { public static final int key_chat_inReactionButtonText = colorsCount++; public static final int key_chat_inReactionButtonTextSelected = colorsCount++; public static final int key_chat_outReactionButtonTextSelected = colorsCount++; + public static final int key_reactionStarSelector = colorsCount++; public static final int key_premiumGradient0 = colorsCount++; public static final int key_premiumGradient1 = colorsCount++; @@ -8350,6 +8352,8 @@ public static void createCommonResources(Context context) { avatarDrawables[19] = resources.getDrawable(R.drawable.large_notes); avatarDrawables[20] = resources.getDrawable(R.drawable.filled_folder_new); avatarDrawables[21] = resources.getDrawable(R.drawable.filled_folder_existing); + avatarDrawables[22] = resources.getDrawable(R.drawable.filled_giveaway_premium); + avatarDrawables[23] = resources.getDrawable(R.drawable.filled_giveaway_stars); if (dialogs_archiveAvatarDrawable != null) { dialogs_archiveAvatarDrawable.setCallback(null); @@ -10669,9 +10673,9 @@ public static void turnOffAutoNight(@NonNull BaseFragment fragment) { BulletinFactory.of(fragment).createSimpleBulletin( R.raw.auto_night_off, selectedAutoNightType == AUTO_NIGHT_TYPE_SYSTEM ? - LocaleController.getString("AutoNightSystemModeOff", R.string.AutoNightSystemModeOff) : - LocaleController.getString("AutoNightModeOff", R.string.AutoNightModeOff), - LocaleController.getString("Settings", R.string.Settings), + getString("AutoNightSystemModeOff", R.string.AutoNightSystemModeOff) : + getString("AutoNightModeOff", R.string.AutoNightModeOff), + getString("Settings", R.string.Settings), Bulletin.DURATION_PROLONG, () -> fragment.presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_NIGHT)) ).show(); @@ -10692,9 +10696,9 @@ public static void turnOffAutoNight(FrameLayout container, Runnable openSettings BulletinFactory.of(container, null).createSimpleBulletin( R.raw.auto_night_off, selectedAutoNightType == AUTO_NIGHT_TYPE_SYSTEM ? - LocaleController.getString("AutoNightSystemModeOff", R.string.AutoNightSystemModeOff) : - LocaleController.getString("AutoNightModeOff", R.string.AutoNightModeOff), - LocaleController.getString("Settings", R.string.Settings), + getString("AutoNightSystemModeOff", R.string.AutoNightSystemModeOff) : + getString("AutoNightModeOff", R.string.AutoNightModeOff), + getString("Settings", R.string.Settings), Bulletin.DURATION_PROLONG, openSettings ).show(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ThemeColors.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ThemeColors.java index e09a2ccfce..8d406d60c4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ThemeColors.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ThemeColors.java @@ -799,6 +799,8 @@ public static int[] createDefaultColors() { defaultColors[key_iv_ab_progress] = 0xff50a8eb; defaultColors[key_iv_navigationBackground] = 0xfff0f0f0; + defaultColors[key_reactionStarSelector] = 0x40F0AB1F; + return defaultColors; } @@ -1555,6 +1557,7 @@ public static SparseArray createColorKeysMap() { colorKeysMap.put(key_iv_backgroundGray, "iv_backgroundGray"); colorKeysMap.put(key_iv_navigationBackground, "iv_navigationBackground"); colorKeysMap.put(key_iv_ab_progress, "iv_ab_progress"); + colorKeysMap.put(key_reactionStarSelector, "reactionStarSelector"); return colorKeysMap; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionIntroActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionIntroActivity.java index 678a7f685f..36c18b8290 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionIntroActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionIntroActivity.java @@ -92,20 +92,14 @@ public class ActionIntroActivity extends BaseFragment implements LocationControl private ActionIntroQRLoginDelegate qrLoginDelegate; public static final int ACTION_TYPE_CHANNEL_CREATE = 0; - public static final int ACTION_TYPE_NEARBY_LOCATION_ACCESS = 1; - public static final int ACTION_TYPE_NEARBY_GROUP_CREATE = 2; public static final int ACTION_TYPE_CHANGE_PHONE_NUMBER = 3; - public static final int ACTION_TYPE_NEARBY_LOCATION_ENABLED = 4; public static final int ACTION_TYPE_QR_LOGIN = 5; public static final int ACTION_TYPE_SET_PASSCODE = 6; @Retention(RetentionPolicy.SOURCE) @IntDef({ ACTION_TYPE_CHANNEL_CREATE, - ACTION_TYPE_NEARBY_LOCATION_ACCESS, - ACTION_TYPE_NEARBY_GROUP_CREATE, ACTION_TYPE_CHANGE_PHONE_NUMBER, - ACTION_TYPE_NEARBY_LOCATION_ENABLED, ACTION_TYPE_QR_LOGIN, ACTION_TYPE_SET_PASSCODE }) @@ -187,9 +181,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } break; } - case ACTION_TYPE_SET_PASSCODE: - case ACTION_TYPE_NEARBY_LOCATION_ACCESS: - case ACTION_TYPE_NEARBY_LOCATION_ENABLED: { + case ACTION_TYPE_SET_PASSCODE: { if (currentType == ACTION_TYPE_SET_PASSCODE) { imageView.measure(MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(140), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(140), MeasureSpec.EXACTLY)); } else { @@ -210,24 +202,6 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } break; } - case ACTION_TYPE_NEARBY_GROUP_CREATE: { - if (width > height) { - imageView.measure(MeasureSpec.makeMeasureSpec((int) (width * 0.45f), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec((int) (height * 0.78f), MeasureSpec.AT_MOST)); - subtitleTextView.measure(MeasureSpec.makeMeasureSpec((int) (width * 0.45f), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); - titleTextView.measure(MeasureSpec.makeMeasureSpec((int) (width * 0.6f), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); - descriptionText.measure(MeasureSpec.makeMeasureSpec((int) (width * 0.6f), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); - descriptionText2.measure(MeasureSpec.makeMeasureSpec((int) (width * 0.6f), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); - buttonTextView.measure(MeasureSpec.makeMeasureSpec((int) (width * 0.6f), MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(42), MeasureSpec.EXACTLY)); - } else { - imageView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec((int) (height * 0.44f), MeasureSpec.AT_MOST)); - titleTextView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); - subtitleTextView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); - descriptionText.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); - descriptionText2.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.UNSPECIFIED)); - buttonTextView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(42), MeasureSpec.EXACTLY)); - } - break; - } case ACTION_TYPE_CHANGE_PHONE_NUMBER: { imageView.measure(MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(150), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(150), MeasureSpec.EXACTLY)); @@ -363,70 +337,6 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { } break; } - case ACTION_TYPE_NEARBY_LOCATION_ACCESS: - case ACTION_TYPE_NEARBY_LOCATION_ENABLED: { - if (r > b) { - int y = (height - imageView.getMeasuredHeight()) / 2; - int x = (int) (width * 0.5f - imageView.getMeasuredWidth()) / 2; - imageView.layout(x, y, x + imageView.getMeasuredWidth(), y + imageView.getMeasuredHeight()); - x = (int) (width * 0.4f); - y = (int) (height * 0.14f); - titleTextView.layout(x, y, x + titleTextView.getMeasuredWidth(), y + titleTextView.getMeasuredHeight()); - x = (int) (width * 0.4f); - y = (int) (height * 0.31f); - descriptionText.layout(x, y, x + descriptionText.getMeasuredWidth(), y + descriptionText.getMeasuredHeight()); - x = (int) (width * 0.4f + (width * 0.6f - buttonTextView.getMeasuredWidth()) / 2); - y = (int) (height * 0.78f); - buttonTextView.layout(x, y, x + buttonTextView.getMeasuredWidth(), y + buttonTextView.getMeasuredHeight()); - } else { - int y = (int) (height * 0.214f); - int x = (width - imageView.getMeasuredWidth()) / 2; - imageView.layout(x, y, x + imageView.getMeasuredWidth(), y + imageView.getMeasuredHeight()); - y = (int) (height * 0.414f); - titleTextView.layout(0, y, titleTextView.getMeasuredWidth(), y + titleTextView.getMeasuredHeight()); - y = (int) (height * 0.493f); - descriptionText.layout(0, y, descriptionText.getMeasuredWidth(), y + descriptionText.getMeasuredHeight()); - x = (width - buttonTextView.getMeasuredWidth()) / 2; - y = (int) (height * 0.853f); - buttonTextView.layout(x, y, x + buttonTextView.getMeasuredWidth(), y + buttonTextView.getMeasuredHeight()); - } - break; - } - case ACTION_TYPE_NEARBY_GROUP_CREATE: { - if (r > b) { - int y = (int) (height * 0.9f - imageView.getMeasuredHeight()) / 2; - imageView.layout(0, y, imageView.getMeasuredWidth(), y + imageView.getMeasuredHeight()); - y += imageView.getMeasuredHeight() + AndroidUtilities.dp(10); - subtitleTextView.layout(0, y, subtitleTextView.getMeasuredWidth(), y + subtitleTextView.getMeasuredHeight()); - int x = (int) (width * 0.4f); - y = (int) (height * 0.12f); - titleTextView.layout(x, y, x + titleTextView.getMeasuredWidth(), y + titleTextView.getMeasuredHeight()); - x = (int) (width * 0.4f); - y = (int) (height * 0.26f); - descriptionText.layout(x, y, x + descriptionText.getMeasuredWidth(), y + descriptionText.getMeasuredHeight()); - x = (int) (width * 0.4f + (width * 0.6f - buttonTextView.getMeasuredWidth()) / 2); - y = (int) (height * 0.6f); - buttonTextView.layout(x, y, x + buttonTextView.getMeasuredWidth(), y + buttonTextView.getMeasuredHeight()); - x = (int) (width * 0.4f); - y = getMeasuredHeight() - descriptionText2.getMeasuredHeight() - AndroidUtilities.dp(20); - descriptionText2.layout(x, y, x + descriptionText2.getMeasuredWidth(), y + descriptionText2.getMeasuredHeight()); - } else { - int y = (int) (height * 0.197f); - imageView.layout(0, y, imageView.getMeasuredWidth(), y + imageView.getMeasuredHeight()); - y = (int) (height * 0.421f); - titleTextView.layout(0, y, titleTextView.getMeasuredWidth(), y + titleTextView.getMeasuredHeight()); - y = (int) (height * 0.477f); - subtitleTextView.layout(0, y, subtitleTextView.getMeasuredWidth(), y + subtitleTextView.getMeasuredHeight()); - y = (int) (height * 0.537f); - descriptionText.layout(0, y, descriptionText.getMeasuredWidth(), y + descriptionText.getMeasuredHeight()); - int x = (width - buttonTextView.getMeasuredWidth()) / 2; - y = (int) (height * 0.71f); - buttonTextView.layout(x, y, x + buttonTextView.getMeasuredWidth(), y + buttonTextView.getMeasuredHeight()); - y = getMeasuredHeight() - descriptionText2.getMeasuredHeight() - AndroidUtilities.dp(20); - descriptionText2.layout(0, y, descriptionText2.getMeasuredWidth(), y + descriptionText2.getMeasuredHeight()); - } - break; - } case ACTION_TYPE_CHANGE_PHONE_NUMBER: { if (r > b) { int y = (int) (height * 0.95f - imageView.getMeasuredHeight()) / 2; @@ -490,11 +400,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { subtitleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); subtitleTextView.setSingleLine(true); subtitleTextView.setEllipsize(TextUtils.TruncateAt.END); - if (currentType == ACTION_TYPE_NEARBY_GROUP_CREATE) { - subtitleTextView.setPadding(AndroidUtilities.dp(24), 0, AndroidUtilities.dp(24), 0); - } else { - subtitleTextView.setPadding(AndroidUtilities.dp(32), 0, AndroidUtilities.dp(32), 0); - } + subtitleTextView.setPadding(AndroidUtilities.dp(32), 0, AndroidUtilities.dp(32), 0); subtitleTextView.setVisibility(View.GONE); viewGroup.addView(subtitleTextView); @@ -505,8 +411,6 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { descriptionText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); if (currentType == ACTION_TYPE_SET_PASSCODE || currentType == ACTION_TYPE_CHANGE_PHONE_NUMBER) { descriptionText.setPadding(AndroidUtilities.dp(48), 0, AndroidUtilities.dp(48), 0); - } else if (currentType == ACTION_TYPE_NEARBY_GROUP_CREATE) { - descriptionText.setPadding(AndroidUtilities.dp(24), 0, AndroidUtilities.dp(24), 0); } else { descriptionText.setPadding(AndroidUtilities.dp(32), 0, AndroidUtilities.dp(32), 0); } @@ -538,7 +442,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { if (a == 0) { descriptionLines[a * 2 + 1].setLinkTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteLinkText)); descriptionLines[a * 2 + 1].setHighlightColor(Theme.getColor(Theme.key_windowBackgroundWhiteLinkSelection)); - String text = LocaleController.getString("AuthAnotherClientInfo1", R.string.AuthAnotherClientInfo1); + String text = LocaleController.getString(R.string.AuthAnotherClientInfo1); SpannableStringBuilder spanned = new SpannableStringBuilder(text); int index1 = text.indexOf('*'); int index2 = text.lastIndexOf('*'); @@ -546,13 +450,13 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { descriptionLines[a * 2 + 1].setMovementMethod(new AndroidUtilities.LinkMovementMethodMy()); spanned.replace(index2, index2 + 1, ""); spanned.replace(index1, index1 + 1, ""); - spanned.setSpan(new URLSpanNoUnderline(LocaleController.getString("AuthAnotherClientDownloadClientUrl", R.string.AuthAnotherClientDownloadClientUrl)), index1, index2 - 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + spanned.setSpan(new URLSpanNoUnderline(LocaleController.getString(R.string.AuthAnotherClientDownloadClientUrl)), index1, index2 - 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } descriptionLines[a * 2 + 1].setText(spanned); } else if (a == 1) { - descriptionLines[a * 2 + 1].setText(LocaleController.getString("AuthAnotherClientInfo2", R.string.AuthAnotherClientInfo2)); + descriptionLines[a * 2 + 1].setText(LocaleController.getString(R.string.AuthAnotherClientInfo2)); } else { - descriptionLines[a * 2 + 1].setText(LocaleController.getString("AuthAnotherClientInfo3", R.string.AuthAnotherClientInfo3)); + descriptionLines[a * 2 + 1].setText(LocaleController.getString(R.string.AuthAnotherClientInfo3)); } if (LocaleController.isRTL) { linearLayout.setGravity(Gravity.RIGHT); @@ -573,11 +477,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { descriptionText2.setLineSpacing(AndroidUtilities.dp(2), 1); descriptionText2.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); descriptionText2.setVisibility(View.GONE); - if (currentType == ACTION_TYPE_NEARBY_GROUP_CREATE) { - descriptionText2.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); - } else { - descriptionText2.setPadding(AndroidUtilities.dp(32), 0, AndroidUtilities.dp(32), 0); - } + descriptionText2.setPadding(AndroidUtilities.dp(32), 0, AndroidUtilities.dp(32), 0); viewGroup.addView(descriptionText2); buttonTextView = new TextView(context) { @@ -634,39 +534,12 @@ protected void onDraw(Canvas canvas) { presentFragment(new PasscodeActivity(PasscodeActivity.TYPE_SETUP_CODE), true); break; } - case ACTION_TYPE_NEARBY_LOCATION_ACCESS: { - getParentActivity().requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}, BasePermissionsActivity.REQUEST_CODE_GEOLOCATION); - break; - } - case ACTION_TYPE_NEARBY_LOCATION_ENABLED: { - try { - getParentActivity().startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)); - } catch (Exception e) { - FileLog.e(e); - } - break; - } - case ACTION_TYPE_NEARBY_GROUP_CREATE: { - if (currentGroupCreateAddress == null || currentGroupCreateLocation == null) { - return; - } - Bundle args = new Bundle(); - long[] array = new long[]{getUserConfig().getClientUserId()}; - args.putLongArray("result", array); - args.putInt("chatType", ChatObject.CHAT_TYPE_MEGAGROUP); - args.putString("address", currentGroupCreateAddress); - args.putParcelable("location", currentGroupCreateLocation); - presentFragment(new GroupCreateFinalActivity(args), true); - break; - } case ACTION_TYPE_CHANGE_PHONE_NUMBER: { - BottomBuilder builder = new BottomBuilder(getParentActivity()); - builder.addTitle(LocaleController.getString("PhoneNumberAlert", R.string.PhoneNumberAlert)); - builder.addItem(LocaleController.getString("Change", R.string.Change),R.drawable.msg_check, i -> { - presentFragment(new LoginActivity().changePhoneNumber(), true); - return Unit.INSTANCE; - }); - builder.addCancelItem(); + AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); + builder.setTitle(LocaleController.getString(R.string.PhoneNumberChangeTitle)); + builder.setMessage(LocaleController.getString(R.string.PhoneNumberAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.Change), (dialogInterface, i) -> presentFragment(new LoginActivity().changePhoneNumber(), true)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); break; } @@ -677,9 +550,9 @@ protected void onDraw(Canvas canvas) { case ACTION_TYPE_CHANNEL_CREATE: { imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); imageView.setAnimation(R.raw.channel_create, 200, 200); - titleTextView.setText(LocaleController.getString("ChannelAlertTitle", R.string.ChannelAlertTitle)); - descriptionText.setText(LocaleController.getString("ChannelAlertText", R.string.ChannelAlertText)); - buttonTextView.setText(LocaleController.getString("ChannelAlertCreate2", R.string.ChannelAlertCreate2)); + titleTextView.setText(LocaleController.getString(R.string.ChannelAlertTitle)); + descriptionText.setText(LocaleController.getString(R.string.ChannelAlertText)); + buttonTextView.setText(LocaleController.getString(R.string.ChannelAlertCreate2)); imageView.playAnimation(); flickerButton = true; break; @@ -694,54 +567,23 @@ protected void onDraw(Canvas canvas) { imageView.playAnimation(); } }); - titleTextView.setText(LocaleController.getString("Passcode", R.string.Passcode)); - descriptionText.setText(LocaleController.getString("ChangePasscodeInfoShort", R.string.ChangePasscodeInfoShort)); - buttonTextView.setText(LocaleController.getString("EnablePasscode", R.string.EnablePasscode)); + titleTextView.setText(LocaleController.getString(R.string.Passcode)); + descriptionText.setText(LocaleController.getString(R.string.ChangePasscodeInfoShort)); + buttonTextView.setText(LocaleController.getString(R.string.EnablePasscode)); imageView.playAnimation(); flickerButton = true; break; } - case ACTION_TYPE_NEARBY_LOCATION_ACCESS: { - imageView.setBackgroundDrawable(Theme.createCircleDrawable(AndroidUtilities.dp(100), Theme.getColor(Theme.key_chats_archiveBackground))); - imageView.setImageDrawable(new ShareLocationDrawable(context, 3)); - imageView.setScaleType(ImageView.ScaleType.CENTER); - titleTextView.setText(LocaleController.getString("PeopleNearby", R.string.PeopleNearby)); - descriptionText.setText(LocaleController.getString("PeopleNearbyAccessInfo", R.string.PeopleNearbyAccessInfo)); - buttonTextView.setText(LocaleController.getString("PeopleNearbyAllowAccess", R.string.PeopleNearbyAllowAccess)); - flickerButton = true; - break; - } - case ACTION_TYPE_NEARBY_LOCATION_ENABLED: { - imageView.setBackgroundDrawable(Theme.createCircleDrawable(AndroidUtilities.dp(100), Theme.getColor(Theme.key_chats_archiveBackground))); - imageView.setImageDrawable(new ShareLocationDrawable(context, 3)); - imageView.setScaleType(ImageView.ScaleType.CENTER); - titleTextView.setText(LocaleController.getString("PeopleNearby", R.string.PeopleNearby)); - descriptionText.setText(LocaleController.getString("PeopleNearbyGpsInfo", R.string.PeopleNearbyGpsInfo)); - buttonTextView.setText(LocaleController.getString("PeopleNearbyGps", R.string.PeopleNearbyGps)); - break; - } case ACTION_TYPE_QR_LOGIN: { colors = new int[8]; updateColors(); imageView.setAnimation(R.raw.qr_login, 334, 334, colors); imageView.setScaleType(ImageView.ScaleType.CENTER); - titleTextView.setText(LocaleController.getString("AuthAnotherClient", R.string.AuthAnotherClient)); - buttonTextView.setText(LocaleController.getString("AuthAnotherClientScan", R.string.AuthAnotherClientScan)); + titleTextView.setText(LocaleController.getString(R.string.AuthAnotherClient)); + buttonTextView.setText(LocaleController.getString(R.string.AuthAnotherClientScan)); imageView.playAnimation(); break; } - case ACTION_TYPE_NEARBY_GROUP_CREATE: { - subtitleTextView.setVisibility(View.VISIBLE); - descriptionText2.setVisibility(View.VISIBLE); - imageView.setImageResource(Theme.getCurrentTheme().isDark() ? R.drawable.groupsintro2 : R.drawable.groupsintro); - imageView.setScaleType(ImageView.ScaleType.CENTER); - subtitleTextView.setText(currentGroupCreateDisplayAddress != null ? currentGroupCreateDisplayAddress : ""); - titleTextView.setText(LocaleController.getString("NearbyCreateGroup", R.string.NearbyCreateGroup)); - descriptionText.setText(LocaleController.getString("NearbyCreateGroupInfo", R.string.NearbyCreateGroupInfo)); - descriptionText2.setText(LocaleController.getString("NearbyCreateGroupInfo2", R.string.NearbyCreateGroupInfo2)); - buttonTextView.setText(LocaleController.getString("NearbyStartGroup", R.string.NearbyStartGroup)); - break; - } case ACTION_TYPE_CHANGE_PHONE_NUMBER: { subtitleTextView.setVisibility(View.VISIBLE); imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); @@ -762,9 +604,9 @@ protected void onDraw(Canvas canvas) { subtitleTextView.setText(LocaleController.formatString("PhoneNumberKeepButton", R.string.PhoneNumberKeepButton, PhoneFormat.getInstance().format("+" + user.phone))); } subtitleTextView.setOnClickListener(v -> getParentLayout().closeLastFragment(true)); - titleTextView.setText(LocaleController.getString("PhoneNumberChange2", R.string.PhoneNumberChange2)); - descriptionText.setText(AndroidUtilities.replaceTags(LocaleController.getString("PhoneNumberHelp", R.string.PhoneNumberHelp))); - buttonTextView.setText(LocaleController.getString("PhoneNumberChange2", R.string.PhoneNumberChange2)); + titleTextView.setText(LocaleController.getString(R.string.PhoneNumberChange2)); + descriptionText.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PhoneNumberHelp))); + buttonTextView.setText(LocaleController.getString(R.string.PhoneNumberChange2)); imageView.playAnimation(); flickerButton = true; break; @@ -793,23 +635,6 @@ public void onLocationAddressAvailable(String address, String displayAddress, T @Override public void onResume() { super.onResume(); - if (currentType == ACTION_TYPE_NEARBY_LOCATION_ENABLED) { - boolean enabled = true; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - LocationManager lm = (LocationManager) ApplicationLoader.applicationContext.getSystemService(Context.LOCATION_SERVICE); - enabled = lm.isLocationEnabled(); - } else if (Build.VERSION.SDK_INT >= 19) { - try { - int mode = Settings.Secure.getInt(ApplicationLoader.applicationContext.getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF); - enabled = (mode != Settings.Secure.LOCATION_MODE_OFF); - } catch (Throwable e) { - FileLog.e(e); - } - } - if (enabled) { - presentFragment(new PeopleNearbyActivity(), true); - } - } } private void updateColors() { @@ -844,22 +669,14 @@ public void onRequestPermissionsResultFragment(int requestCode, String[] permiss if (getParentActivity() == null) { return; } - if (requestCode == BasePermissionsActivity.REQUEST_CODE_GEOLOCATION) { - if (grantResults != null && grantResults.length != 0) { - if (grantResults[0] != PackageManager.PERMISSION_GRANTED) { - showDialog(AlertsCreator.createLocationRequiredDialog(getParentActivity(), false)); - } else { - AndroidUtilities.runOnUIThread(() -> presentFragment(new PeopleNearbyActivity(), true)); - } - } - } else if (requestCode == CAMERA_PERMISSION_REQUEST_CODE) { + if (requestCode == CAMERA_PERMISSION_REQUEST_CODE) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { processOpenQrReader(); } else { new AlertDialog.Builder(getParentActivity()) - .setTitle(LocaleController.getString("NekoX", R.string.NekoX)) - .setMessage(AndroidUtilities.replaceTags(LocaleController.getString("QRCodePermissionNoCameraWithHint", R.string.QRCodePermissionNoCameraWithHint))) - .setPositiveButton(LocaleController.getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialogInterface, i) -> { + .setTitle(LocaleController.getString(R.string.NekoX)) + .setMessage(AndroidUtilities.replaceTags(LocaleController.getString(R.string.QRCodePermissionNoCameraWithHint))) + .setPositiveButton(LocaleController.getString(R.string.PermissionOpenSettings), (dialogInterface, i) -> { try { Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); @@ -868,7 +685,7 @@ public void onRequestPermissionsResultFragment(int requestCode, String[] permiss FileLog.e(e); } }) - .setNegativeButton(LocaleController.getString("ContactsPermissionAlertNotNow", R.string.ContactsPermissionAlertNotNow), null) + .setNegativeButton(LocaleController.getString(R.string.ContactsPermissionAlertNotNow), null) .setTopAnimation(R.raw.permission_request_camera, 72, false, Theme.getColor(Theme.key_dialogTopBackground)) .show(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/BaseLocationAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/BaseLocationAdapter.java index f0fa60c911..f6b8a242e9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/BaseLocationAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/BaseLocationAdapter.java @@ -337,7 +337,7 @@ public void searchPlacesWithQuery(final String query, final Location coordinate, streetLocation.query_id = -1; streetLocation.title = streetBuilder.toString(); streetLocation.icon = "pin"; - streetLocation.address = onlyCity ? LocaleController.getString("PassportCity", R.string.PassportCity) : LocaleController.getString("PassportStreet1", R.string.PassportStreet1); + streetLocation.address = onlyCity ? LocaleController.getString(R.string.PassportCity) : LocaleController.getString(R.string.PassportStreet1); boolean isUnnamed = false; if (engAddress != null) { streetLocation.geoAddress = new TL_stories.TL_geoPointAddress(); @@ -418,7 +418,7 @@ public void searchPlacesWithQuery(final String query, final Location coordinate, cityLocation.icon = "https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png"; cityLocation.emoji = LocationController.countryCodeToEmoji(address.getCountryCode()); cities.add(cityLocation.title); - cityLocation.address = LocaleController.getString("PassportCity", R.string.PassportCity); + cityLocation.address = LocaleController.getString(R.string.PassportCity); if (engAddress != null) { cityLocation.geoAddress = new TL_stories.TL_geoPointAddress(); cityLocation.geoAddress.country_iso2 = engAddress.getCountryCode(); @@ -460,7 +460,7 @@ public void searchPlacesWithQuery(final String query, final Location coordinate, countryLocation.icon = "https://ss3.4sqi.net/img/categories_v2/building/government_capitolbuilding_64.png"; countryLocation.emoji = LocationController.countryCodeToEmoji(address.getCountryCode()); countries.add(countryLocation.title); - countryLocation.address = LocaleController.getString("Country", R.string.Country); + countryLocation.address = LocaleController.getString(R.string.Country); if (engAddress != null) { countryLocation.geoAddress = new TL_stories.TL_geoPointAddress(); countryLocation.geoAddress.country_iso2 = engAddress.getCountryCode(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/ContactsAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/ContactsAdapter.java index 87c660e037..0546a6f163 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/ContactsAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/ContactsAdapter.java @@ -68,7 +68,6 @@ public class ContactsAdapter extends RecyclerListView.SectionsAdapter { private int sortType; private boolean isChannel; private boolean disableSections; - private boolean hasGps; private boolean isEmpty; public boolean hasStories; public ArrayList userStories = new ArrayList<>(); @@ -84,7 +83,6 @@ public ContactsAdapter(Context context, BaseFragment fragment, int onlyUsersType this.selectedContacts = selectedContacts; isAdmin = flags != 0; isChannel = flags == 2; - hasGps = gps; this.fragment = fragment; } @@ -280,7 +278,7 @@ public boolean isEnabled(RecyclerView.ViewHolder holder, int section, int row) { if (isAdmin) { return row != 1; } else if (needPhonebook) { - return hasGps && row != 2 || !hasGps && row != 1; + return row != 1; } else { return row != 3; } @@ -364,7 +362,7 @@ private int getCountForSectionInternal(int section) { if (isAdmin) { return 2; } else if (needPhonebook) { - return hasGps ? 3 : 2; + return 2; } else { return 4; } @@ -462,9 +460,6 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } int cellHeight = AndroidUtilities.dp(50); int totalHeight = onlyUsers != 0 ? 0 : cellHeight + AndroidUtilities.dp(30); - if (hasGps) { - totalHeight += cellHeight; - } if (!isAdmin && !needPhonebook) { totalHeight += cellHeight; } @@ -531,11 +526,11 @@ public void onBindViewHolder(int section, int position, RecyclerView.ViewHolder case 2: GraySectionCell sectionCell = (GraySectionCell) holder.itemView; if (sortType == SORT_TYPE_NONE) { - sectionCell.setText(LocaleController.getString("Contacts", R.string.Contacts)); + sectionCell.setText(LocaleController.getString(R.string.Contacts)); } else if (sortType == SORT_TYPE_BY_NAME) { - sectionCell.setText(LocaleController.getString("SortedByName", R.string.SortedByName)); + sectionCell.setText(LocaleController.getString(R.string.SortedByName)); } else { - sectionCell.setText(LocaleController.getString("SortedByLastSeen", R.string.SortedByLastSeen)); + sectionCell.setText(LocaleController.getString(R.string.SortedByLastSeen)); } break; } @@ -572,23 +567,21 @@ public void onBindViewHolder(int section, int position, RecyclerView.ViewHolder if (section == 0) { if (needPhonebook) { if (position == 0) { - textCell.setTextAndIcon(LocaleController.getString("InviteFriends", R.string.InviteFriends), R.drawable.menu_invite, false); - } else if (position == 1) { - textCell.setTextAndIcon(LocaleController.getString("AddPeopleNearby", R.string.AddPeopleNearby), R.drawable.menu_location, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.InviteFriends), R.drawable.msg_invite, false); } } else if (isAdmin) { if (isChannel) { - textCell.setTextAndIcon(LocaleController.getString("ChannelInviteViaLink", R.string.ChannelInviteViaLink), R.drawable.msg_link2, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.ChannelInviteViaLink), R.drawable.msg_link2, false); } else { - textCell.setTextAndIcon(LocaleController.getString("InviteToGroupByLink", R.string.InviteToGroupByLink), R.drawable.msg_link2, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.InviteToGroupByLink), R.drawable.msg_link2, false); } } else { if (position == 0) { - textCell.setTextAndIcon(LocaleController.getString("NewGroup", R.string.NewGroup), R.drawable.menu_groups, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.NewGroup), R.drawable.msg_groups, false); } else if (position == 1) { - textCell.setTextAndIcon(LocaleController.getString("NewSecretChat", R.string.NewSecretChat), R.drawable.menu_secret, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.NewContact), R.drawable.msg_addcontact, false); } else if (position == 2) { - textCell.setTextAndIcon(LocaleController.getString("NewChannel", R.string.NewChannel), R.drawable.menu_broadcast, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.NewChannel), R.drawable.msg_channel, false); } } } else { @@ -605,13 +598,13 @@ public void onBindViewHolder(int section, int position, RecyclerView.ViewHolder case 2: GraySectionCell sectionCell = (GraySectionCell) holder.itemView; if (hasStories) { - sectionCell.setText(LocaleController.getString("HiddenStories", R.string.HiddenStories)); + sectionCell.setText(LocaleController.getString(R.string.HiddenStories)); } else if (sortType == SORT_TYPE_NONE) { - sectionCell.setText(LocaleController.getString("Contacts", R.string.Contacts)); + sectionCell.setText(LocaleController.getString(R.string.Contacts)); } else if (sortType == SORT_TYPE_BY_NAME) { - sectionCell.setText(LocaleController.getString("SortedByName", R.string.SortedByName)); + sectionCell.setText(LocaleController.getString(R.string.SortedByName)); } else { - sectionCell.setText(LocaleController.getString("SortedByLastSeen", R.string.SortedByLastSeen)); + sectionCell.setText(LocaleController.getString(R.string.SortedByLastSeen)); } break; } @@ -643,7 +636,7 @@ public int getItemViewType(int section, int position) { return 2; } } else if (needPhonebook) { - if (hasGps && position == 2 || !hasGps && position == 1) { + if (position == 1) { return isEmpty ? 5 : 2; } } else if (position == 3) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/DialogsAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/DialogsAdapter.java index b596377697..371a6c4875 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/DialogsAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/DialogsAdapter.java @@ -599,13 +599,13 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewT break; case VIEW_TYPE_RECENTLY_VIEWED: { HeaderCell headerCell = new HeaderCell(mContext); - headerCell.setText(LocaleController.getString("RecentlyViewed", R.string.RecentlyViewed)); + headerCell.setText(LocaleController.getString(R.string.RecentlyViewed)); TextView textView = new TextView(mContext); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); textView.setTypeface(AndroidUtilities.bold()); textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueHeader)); - textView.setText(LocaleController.getString("RecentlyViewedHide", R.string.RecentlyViewedHide)); + textView.setText(LocaleController.getString(R.string.RecentlyViewedHide)); textView.setGravity((LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER_VERTICAL); headerCell.addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.TOP, 17, 15, 17, 0)); textView.setOnClickListener(view1 -> { @@ -816,9 +816,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int i) { subtitle = LocaleController.formatPluralStringComma("Subscribers", chat.participants_count); } else { if (!ChatObject.isPublic(chat)) { - subtitle = LocaleController.getString("ChannelPrivate", R.string.ChannelPrivate).toLowerCase(); + subtitle = LocaleController.getString(R.string.ChannelPrivate).toLowerCase(); } else { - subtitle = LocaleController.getString("ChannelPublic", R.string.ChannelPublic).toLowerCase(); + subtitle = LocaleController.getString(R.string.ChannelPublic).toLowerCase(); } } } else { @@ -826,11 +826,11 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int i) { subtitle = LocaleController.formatPluralStringComma("Members", chat.participants_count); } else { if (chat.has_geo) { - subtitle = LocaleController.getString("MegaLocation", R.string.MegaLocation); + subtitle = LocaleController.getString(R.string.MegaLocation); } else if (!ChatObject.isPublic(chat)) { - subtitle = LocaleController.getString("MegaPrivate", R.string.MegaPrivate).toLowerCase(); + subtitle = LocaleController.getString(R.string.MegaPrivate).toLowerCase(); } else { - subtitle = LocaleController.getString("MegaPublic", R.string.MegaPublic).toLowerCase(); + subtitle = LocaleController.getString(R.string.MegaPublic).toLowerCase(); } } } @@ -842,7 +842,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int i) { title = UserObject.getUserName(user); if (!UserObject.isReplyUser(user)) { if (user.bot) { - subtitle = LocaleController.getString("Bot", R.string.Bot); + subtitle = LocaleController.getString(R.string.Bot); } else { subtitle = LocaleController.formatUserStatus(currentAccount, user); } @@ -922,9 +922,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int i) { dialogsType == DialogsActivity.DIALOGS_TYPE_IMPORT_HISTORY ) { if (i == 0) { - cell.setText(LocaleController.getString("ImportHeader", R.string.ImportHeader)); + cell.setText(LocaleController.getString(R.string.ImportHeader)); } else { - cell.setText(LocaleController.getString("ImportHeaderContacts", R.string.ImportHeaderContacts)); + cell.setText(LocaleController.getString(R.string.ImportHeaderContacts)); } } else { cell.setText(LocaleController.getString(dialogsCount == 0 && forceUpdatingContacts ? R.string.ConnectingYourContacts : R.string.YourContacts)); @@ -938,20 +938,20 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int i) { cell.setBackgroundColor(Theme.getColor(Theme.key_graySection)); switch (((DialogsActivity.DialogsHeader) getItem(i)).headerType) { case DialogsActivity.DialogsHeader.HEADER_TYPE_MY_CHANNELS: - cell.setText(LocaleController.getString("MyChannels", R.string.MyChannels)); + cell.setText(LocaleController.getString(R.string.MyChannels)); break; case DialogsActivity.DialogsHeader.HEADER_TYPE_MY_GROUPS: - cell.setText(LocaleController.getString("MyGroups", R.string.MyGroups)); + cell.setText(LocaleController.getString(R.string.MyGroups)); break; case DialogsActivity.DialogsHeader.HEADER_TYPE_GROUPS: - cell.setText(LocaleController.getString("FilterGroups", R.string.FilterGroups)); + cell.setText(LocaleController.getString(R.string.FilterGroups)); break; } break; } case VIEW_TYPE_NEW_CHAT_HINT: { TextInfoPrivacyCell cell = (TextInfoPrivacyCell) holder.itemView; - cell.setText(LocaleController.getString("TapOnThePencil", R.string.TapOnThePencil)); + cell.setText(LocaleController.getString(R.string.TapOnThePencil)); if (arrowDrawable == null) { arrowDrawable = mContext.getResources().getDrawable(R.drawable.arrow_newchat); arrowDrawable.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText4), PorterDuff.Mode.MULTIPLY)); @@ -970,12 +970,12 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int i) { cell.setColors(Theme.key_windowBackgroundWhiteBlueText4, Theme.key_windowBackgroundWhiteBlueText4); if (requestPeerType != null) { if (requestPeerType instanceof TLRPC.TL_requestPeerTypeBroadcast) { - cell.setTextAndIcon(LocaleController.getString("CreateChannelForThis", R.string.CreateChannelForThis), R.drawable.msg_channel_create, true); + cell.setTextAndIcon(LocaleController.getString(R.string.CreateChannelForThis), R.drawable.msg_channel_create, true); } else { - cell.setTextAndIcon(LocaleController.getString("CreateGroupForThis", R.string.CreateGroupForThis), R.drawable.msg_groups_create, true); + cell.setTextAndIcon(LocaleController.getString(R.string.CreateGroupForThis), R.drawable.msg_groups_create, true); } } else { - cell.setTextAndIcon(LocaleController.getString("CreateGroupForImport", R.string.CreateGroupForImport), R.drawable.msg_groups_create, dialogsCount != 0); + cell.setTextAndIcon(LocaleController.getString(R.string.CreateGroupForImport), R.drawable.msg_groups_create, dialogsCount != 0); } cell.setIsInDialogs(); cell.setOffsetFromImage(75); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/DialogsSearchAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/DialogsSearchAdapter.java index f53ce9a03d..44907bf959 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/DialogsSearchAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/DialogsSearchAdapter.java @@ -888,7 +888,7 @@ private void searchDialogsInternal(final String query, final int searchId) { updateSearchResults(resultArray, resultArrayNames, encUsers, contacts, searchId); FiltersView.fillTipDates(q, localTipDates); localTipArchive = false; - if (q.length() >= 3 && (LocaleController.getString("ArchiveSearchFilter", R.string.ArchiveSearchFilter).toLowerCase().startsWith(q) || "archive".startsWith(query))) { + if (q.length() >= 3 && (LocaleController.getString(R.string.ArchiveSearchFilter).toLowerCase().startsWith(q) || "archive".startsWith(query))) { localTipArchive = true; } AndroidUtilities.runOnUIThread(() -> { @@ -1611,16 +1611,16 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { cell.setChecked(false, false); boolean savedMessages = false; if (user != null && user.id == selfUserId) { - name = LocaleController.getString("SavedMessages", R.string.SavedMessages); + name = LocaleController.getString(R.string.SavedMessages); username = null; savedMessages = true; } if (chat != null && chat.participants_count != 0) { String membersString; if (ChatObject.isChannel(chat) && !chat.megagroup) { - membersString = LocaleController.formatPluralStringComma("Subscribers", chat.participants_count, ' '); + membersString = LocaleController.formatPluralStringSpaced("Subscribers", chat.participants_count); } else { - membersString = LocaleController.formatPluralStringComma("Members", chat.participants_count, ' '); + membersString = LocaleController.formatPluralStringSpaced("Members", chat.participants_count); } if (username instanceof SpannableStringBuilder) { ((SpannableStringBuilder) username).append(", ").append(membersString); @@ -1637,7 +1637,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case VIEW_TYPE_GRAY_SECTION: { final GraySectionCell cell = (GraySectionCell) holder.itemView; if (!searchResultHashtags.isEmpty()) { - cell.setText(LocaleController.getString("Hashtags", R.string.Hashtags), LocaleController.getString("ClearButton", R.string.ClearButton), v -> { + cell.setText(LocaleController.getString(R.string.Hashtags), LocaleController.getString(R.string.ClearButton), v -> { if (delegate != null) { delegate.needClearList(); } @@ -1647,17 +1647,17 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (isRecentSearchDisplayed() || !searchTopics.isEmpty() || !searchContacts.isEmpty()) { int offset = hasHints() ? 1 : 0; if (position < offset) { - cell.setText(LocaleController.getString("ChatHints", R.string.ChatHints)); + cell.setText(LocaleController.getString(R.string.ChatHints)); return; } else if (position == offset && isRecentSearchDisplayed()) { if (!searchWas) { - cell.setText(LocaleController.getString("Recent", R.string.Recent), LocaleController.getString("ClearButton", R.string.ClearButton), v -> { + cell.setText(LocaleController.getString(R.string.Recent), LocaleController.getString(R.string.ClearButton), v -> { if (delegate != null) { delegate.needClearList(); } }); } else { - cell.setText(LocaleController.getString("Recent", R.string.Recent), LocaleController.getString("Clear", R.string.Clear), v -> { + cell.setText(LocaleController.getString(R.string.Recent), LocaleController.getString(R.string.Clear), v -> { if (delegate != null) { delegate.needClearList(); } @@ -1665,7 +1665,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } return; } else if (position == getRecentItemsCount() + (searchTopics.isEmpty() ? 0 : searchTopics.size() + 1) + (searchContacts.isEmpty() ? 0 : searchContacts.size() + 1)) { - cell.setText(LocaleController.getString("SearchAllChatsShort", R.string.SearchAllChatsShort)); + cell.setText(LocaleController.getString(R.string.SearchAllChatsShort)); return; } else { position -= getRecentItemsCount(); @@ -1689,32 +1689,32 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { Runnable onClick = null; if (!searchTopics.isEmpty()) { if (position == 0) { - title = LocaleController.getString("Topics", R.string.Topics); + title = LocaleController.getString(R.string.Topics); } position -= 1 + searchTopics.size(); } if (!searchContacts.isEmpty()) { if (position == 0) { - title = LocaleController.getString("InviteToTelegramShort", R.string.InviteToTelegramShort); + title = LocaleController.getString(R.string.InviteToTelegramShort); } position -= 1 + searchContacts.size(); } if (title == null) { position -= localCount + localServerCount; if (position >= 0 && position < phoneCount) { - title = LocaleController.getString("PhoneNumberSearch", R.string.PhoneNumberSearch); + title = LocaleController.getString(R.string.PhoneNumberSearch); if (searchAdapterHelper.getPhoneSearch().size() > 3) { showMore = phoneCollapsed; onClick = () -> { phoneCollapsed = !phoneCollapsed; - cell.setRightText(phoneCollapsed ? LocaleController.getString("ShowMore", R.string.ShowMore) : LocaleController.getString("ShowLess", R.string.ShowLess)); + cell.setRightText(phoneCollapsed ? LocaleController.getString(R.string.ShowMore) : LocaleController.getString(R.string.ShowLess)); notifyDataSetChanged(); }; } } else { position -= phoneCount; if (position >= 0 && position < globalCount) { - title = LocaleController.getString("GlobalSearch", R.string.GlobalSearch); + title = LocaleController.getString(R.string.GlobalSearch); if (searchAdapterHelper.getGlobalSearch().size() > 3) { showMore = globalSearchCollapsed; onClick = () -> { @@ -1732,7 +1732,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { itemAnimator.setRemoveDelay(disableRemoveAnimation ? 270 : 0); } globalSearchCollapsed = !globalSearchCollapsed; - cell.setRightText(globalSearchCollapsed ? LocaleController.getString("ShowMore", R.string.ShowMore) : LocaleController.getString("ShowLess", R.string.ShowLess), globalSearchCollapsed); + cell.setRightText(globalSearchCollapsed ? LocaleController.getString(R.string.ShowMore) : LocaleController.getString(R.string.ShowLess), globalSearchCollapsed); showMoreHeader = null; View parent = (View) cell.getParent(); if (parent instanceof RecyclerView) { @@ -1779,7 +1779,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-delegate.getSearchForumDialogId()); title = LocaleController.formatString("SearchMessagesIn", R.string.SearchMessagesIn, (chat == null ? "null" : chat.title)); } else { - title = LocaleController.getString("SearchMessages", R.string.SearchMessages); + title = LocaleController.getString(R.string.SearchMessages); } } } @@ -1788,7 +1788,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { cell.setText(title); } else { final Runnable finalOnClick = onClick; - cell.setText(title, showMore ? LocaleController.getString("ShowMore", R.string.ShowMore) : LocaleController.getString("ShowLess", R.string.ShowLess), e -> finalOnClick.run()); + cell.setText(title, showMore ? LocaleController.getString(R.string.ShowMore) : LocaleController.getString(R.string.ShowLess), e -> finalOnClick.run()); } } break; 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 688f563292..93d60161d9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/DrawerLayoutAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/DrawerLayoutAdapter.java @@ -16,6 +16,7 @@ import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; +import androidx.annotation.Keep; import androidx.recyclerview.widget.RecyclerView; import org.telegram.messenger.AndroidUtilities; @@ -62,7 +63,6 @@ public class DrawerLayoutAdapter extends RecyclerListView.SelectionAdapter imple private boolean accountsShown; public DrawerProfileCell profileCell; private SideMenultItemAnimator itemAnimator; - private boolean hasGps; public static int nkbtnNewStory = 1000; @@ -73,11 +73,6 @@ public DrawerLayoutAdapter(Context context, SideMenultItemAnimator animator, Dra accountsShown = MessagesController.getGlobalMainSettings().getBoolean("accountsShown", true); Theme.createCommonDialogResources(context); resetItems(); - try { - hasGps = ApplicationLoader.applicationContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS); - } catch (Throwable e) { - hasGps = false; - } } private int getAccountRowsCount() { @@ -301,7 +296,6 @@ private void resetItems() { int settingsIcon; int inviteIcon; int helpIcon; - int peopleNearbyIcon; if (NaConfig.INSTANCE.getIconDecoration().Int() == 4) { eventType = -1; } @@ -315,7 +309,6 @@ private void resetItems() { settingsIcon = R.drawable.msg_settings_ny; inviteIcon = R.drawable.msg_invite_ny; helpIcon = R.drawable.msg_help_ny; - peopleNearbyIcon = R.drawable.msg_nearby_ny; } else if (eventType == 1 || NaConfig.INSTANCE.getIconDecoration().Int() == 2) { newGroupIcon = R.drawable.msg_groups_14; //newSecretIcon = R.drawable.msg_secret_14; @@ -326,7 +319,6 @@ private void resetItems() { settingsIcon = R.drawable.msg_settings_14; inviteIcon = R.drawable.msg_secret_ny; helpIcon = R.drawable.msg_help; - peopleNearbyIcon = R.drawable.msg_secret_14; } else if (eventType == 2 || NaConfig.INSTANCE.getIconDecoration().Int() == 3) { newGroupIcon = R.drawable.msg_groups_hw; //newSecretIcon = R.drawable.msg_secret_hw; @@ -337,7 +329,6 @@ private void resetItems() { settingsIcon = R.drawable.msg_settings_hw; inviteIcon = R.drawable.msg_invite_hw; helpIcon = R.drawable.msg_help_hw; - peopleNearbyIcon = R.drawable.msg_secret_hw; } else { newGroupIcon = R.drawable.msg_groups; //newSecretIcon = R.drawable.msg_secret; @@ -348,16 +339,15 @@ private void resetItems() { settingsIcon = R.drawable.msg_settings_old; inviteIcon = R.drawable.msg_invite; helpIcon = R.drawable.msg_help; - peopleNearbyIcon = R.drawable.msg_nearby; } UserConfig me = UserConfig.getInstance(UserConfig.selectedAccount); boolean showDivider = false; items.add(new Item(16, LocaleController.getString(R.string.MyProfile), R.drawable.left_status_profile)); if (me != null && me.isPremium()) { if (me.getEmojiStatus() != null) { - items.add(new Item(15, LocaleController.getString("ChangeEmojiStatus", R.string.ChangeEmojiStatus), R.drawable.msg_status_edit)); + items.add(new Item(15, LocaleController.getString(R.string.ChangeEmojiStatus), R.drawable.msg_status_edit)); } else { - items.add(new Item(15, LocaleController.getString("SetEmojiStatus", R.string.SetEmojiStatus), R.drawable.msg_status_set)); + items.add(new Item(15, LocaleController.getString(R.string.SetEmojiStatus), R.drawable.msg_status_set)); } showDivider = true; } @@ -394,13 +384,16 @@ private void resetItems() { // int settingsIcon = R.drawable.baseline_settings_24; // int callsIcon = R.drawable.baseline_call_24; - items.add(new Item(2, LocaleController.getString("NewGroup", R.string.NewGroup), newGroupIcon)); -// items.add(new Item(3, LocaleController.getString("NewSecretChat", R.string.NewSecretChat), newSecretIcon)); -// items.add(new Item(4, LocaleController.getString("NewChannel", R.string.NewChannel), newChannelIcon)); - items.add(new Item(6, LocaleController.getString("Contacts", R.string.Contacts), contactsIcon)); - 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(new Item(10, LocaleController.getString("Calls", R.string.Calls), callsIcon)); + items.add(new Item(2, LocaleController.getString(R.string.NewGroup), newGroupIcon)); + //items.add(new Item(3, LocaleController.getString(R.string.NewSecretChat), newSecretIcon)); + //items.add(new Item(4, LocaleController.getString(R.string.NewChannel), newChannelIcon)); + items.add(new Item(6, LocaleController.getString(R.string.Contacts), contactsIcon)); + items.add(new Item(10, LocaleController.getString(R.string.Calls), callsIcon)); + items.add(new Item(11, LocaleController.getString(R.string.SavedMessages), savedIcon)); + items.add(new Item(8, LocaleController.getString(R.string.Settings), settingsIcon)); +// items.add(null); // divider +// items.add(new Item(7, LocaleController.getString(R.string.InviteFriends), inviteIcon)); +// items.add(new Item(13, LocaleController.getString(R.string.TelegramFeatures), helpIcon)); if (NekoConfig.useProxyItem.Bool() && (!NekoConfig.hideProxyByDefault.Bool() || SharedConfig.isProxyEnabled())) { items.add(new CheckItem(13, LocaleController.getString("Proxy", R.string.Proxy), R.drawable.msg_policy, SharedConfig::isProxyEnabled, () -> { SharedConfig.setProxyEnable(!SharedConfig.isProxyEnabled()); @@ -515,11 +508,13 @@ public void bind(DrawerActionCell actionCell) { actionCell.setError(error); } + @Keep public Item onClick(View.OnClickListener listener) { this.listener = listener; return this; } + @Keep public Item withError() { this.error = true; return this; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/FiltersView.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/FiltersView.java index 9ef069a005..a11f95f413 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/FiltersView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/FiltersView.java @@ -232,7 +232,7 @@ public void setUsersAndDates(ArrayList localUsers, ArrayList d TLRPC.User user = (TLRPC.User) object; String title; if (UserConfig.getInstance(UserConfig.selectedAccount).getCurrentUser().id == user.id) { - title = LocaleController.getString("SavedMessages", R.string.SavedMessages); + title = LocaleController.getString(R.string.SavedMessages); } else { title = ContactsController.formatName(user.first_name, user.last_name, 10); } @@ -292,7 +292,7 @@ public static void fillTipDates(String query, ArrayList dates) { if (q.length() < 3) { return; } - if (LocaleController.getString("SearchTipToday", R.string.SearchTipToday).toLowerCase().startsWith(q) || "today".startsWith(q)) { + if (LocaleController.getString(R.string.SearchTipToday).toLowerCase().startsWith(q) || "today".startsWith(q)) { Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH); @@ -301,11 +301,11 @@ public static void fillTipDates(String query, ArrayList dates) { long minDate = calendar.getTimeInMillis(); calendar.set(year, month, day + 1, 0, 0, 0); long maxDate = calendar.getTimeInMillis() - 1; - dates.add(new DateData(LocaleController.getString("SearchTipToday", R.string.SearchTipToday), minDate, maxDate)); + dates.add(new DateData(LocaleController.getString(R.string.SearchTipToday), minDate, maxDate)); return; } - if (LocaleController.getString("SearchTipYesterday", R.string.SearchTipYesterday).toLowerCase().startsWith(q) || "yesterday".startsWith(q)) { + if (LocaleController.getString(R.string.SearchTipYesterday).toLowerCase().startsWith(q) || "yesterday".startsWith(q)) { Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH); @@ -314,7 +314,7 @@ public static void fillTipDates(String query, ArrayList dates) { long minDate = calendar.getTimeInMillis() - 86400000L; calendar.set(year, month, day + 1, 0, 0, 0); long maxDate = calendar.getTimeInMillis() - 86400001L; - dates.add(new DateData(LocaleController.getString("SearchTipYesterday", R.string.SearchTipYesterday), minDate, maxDate)); + dates.add(new DateData(LocaleController.getString(R.string.SearchTipYesterday), minDate, maxDate)); return; } Matcher matcher; @@ -539,18 +539,18 @@ public static int getDayOfWeek(String q) { public static int getMonth(String q) { String[] months = new String[]{ - LocaleController.getString("January", R.string.January).toLowerCase(), - LocaleController.getString("February", R.string.February).toLowerCase(), - LocaleController.getString("March", R.string.March).toLowerCase(), - LocaleController.getString("April", R.string.April).toLowerCase(), - LocaleController.getString("May", R.string.May).toLowerCase(), - LocaleController.getString("June", R.string.June).toLowerCase(), - LocaleController.getString("July", R.string.July).toLowerCase(), - LocaleController.getString("August", R.string.August).toLowerCase(), - LocaleController.getString("September", R.string.September).toLowerCase(), - LocaleController.getString("October", R.string.October).toLowerCase(), - LocaleController.getString("November", R.string.November).toLowerCase(), - LocaleController.getString("December", R.string.December).toLowerCase() + LocaleController.getString(R.string.January).toLowerCase(), + LocaleController.getString(R.string.February).toLowerCase(), + LocaleController.getString(R.string.March).toLowerCase(), + LocaleController.getString(R.string.April).toLowerCase(), + LocaleController.getString(R.string.May).toLowerCase(), + LocaleController.getString(R.string.June).toLowerCase(), + LocaleController.getString(R.string.July).toLowerCase(), + LocaleController.getString(R.string.August).toLowerCase(), + LocaleController.getString(R.string.September).toLowerCase(), + LocaleController.getString(R.string.October).toLowerCase(), + LocaleController.getString(R.string.November).toLowerCase(), + LocaleController.getString(R.string.December).toLowerCase() }; String[] monthsEng = new String[12]; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/LocationActivityAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/LocationActivityAdapter.java index 056579256d..3cdf01967e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/LocationActivityAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/LocationActivityAdapter.java @@ -202,7 +202,7 @@ private void updateCell() { } else if (!TextUtils.isEmpty(addressName)) { address = addressName; } else if (fetchingLocation) { - address = LocaleController.getString("Loading", R.string.Loading); + address = LocaleController.getString(R.string.Loading); } else { address = LocaleController.getString(R.string.UnknownLocation); } @@ -215,18 +215,18 @@ private void updateCell() { } else if (!TextUtils.isEmpty(addressName)) { address = addressName; } else if (customLocation == null && gpsLocation == null || fetchingLocation) { - address = LocaleController.getString("Loading", R.string.Loading); + address = LocaleController.getString(R.string.Loading); } else if (customLocation != null) { address = String.format(Locale.US, "(%f,%f)", customLocation.getLatitude(), customLocation.getLongitude()); } else if (gpsLocation != null) { address = String.format(Locale.US, "(%f,%f)", gpsLocation.getLatitude(), gpsLocation.getLongitude()); } else if (!myLocationDenied) { - address = LocaleController.getString("Loading", R.string.Loading); + address = LocaleController.getString(R.string.Loading); } if (locationType == LocationActivity.LOCATION_TYPE_GROUP) { - sendLocationCell.setText(LocaleController.getString("ChatSetThisLocation", R.string.ChatSetThisLocation), address); + sendLocationCell.setText(LocaleController.getString(R.string.ChatSetThisLocation), address); } else { - sendLocationCell.setText(LocaleController.getString("SendSelectedLocation", R.string.SendSelectedLocation), address); + sendLocationCell.setText(LocaleController.getString(R.string.SendSelectedLocation), address); } sendLocationCell.setHasLocation(true); } else { @@ -234,7 +234,7 @@ private void updateCell() { sendLocationCell.setText(LocaleController.getString(R.string.SendLocation), LocaleController.formatString(R.string.AccurateTo, LocaleController.formatPluralString("Meters", (int) gpsLocation.getAccuracy()))); sendLocationCell.setHasLocation(true); } else { - sendLocationCell.setText(LocaleController.getString("SendLocation", R.string.SendLocation), myLocationDenied ? "" : LocaleController.getString("Loading", R.string.Loading)); + sendLocationCell.setText(LocaleController.getString(R.string.SendLocation), myLocationDenied ? "" : LocaleController.getString(R.string.Loading)); sendLocationCell.setHasLocation(!myLocationDenied); } } @@ -489,9 +489,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case VIEW_TYPE_HEADER: { HeaderCell cell = (HeaderCell) holder.itemView; if (currentMessageObject != null) { - cell.setText(LocaleController.getString("LiveLocations", R.string.LiveLocations)); + cell.setText(LocaleController.getString(R.string.LiveLocations)); } else { - cell.setText(LocaleController.getString("NearbyVenue", R.string.NearbyVenue)); + cell.setText(LocaleController.getString(R.string.NearbyVenue)); } break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/LocationActivitySearchAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/LocationActivitySearchAdapter.java index 2ca06cdb60..5cd14c9dda 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/LocationActivitySearchAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/LocationActivitySearchAdapter.java @@ -109,9 +109,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { locationCell.setLocation(place, p, oposition != getItemCount() - 1 && (searchingLocations || locations.isEmpty() || oposition != (locations.size()))); } else if (holder.getItemViewType() == VIEW_TYPE_SECTION) { if (position == 0 && !locations.isEmpty()) { - ((GraySectionCell) holder.itemView).setText(LocaleController.getString("LocationOnMap", R.string.LocationOnMap)); + ((GraySectionCell) holder.itemView).setText(LocaleController.getString(R.string.LocationOnMap)); } else { - ((GraySectionCell) holder.itemView).setText(LocaleController.getString("NearbyVenue", R.string.NearbyVenue)); + ((GraySectionCell) holder.itemView).setText(LocaleController.getString(R.string.NearbyVenue)); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MentionsAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MentionsAdapter.java index ee73278d20..c67b2cb278 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MentionsAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MentionsAdapter.java @@ -105,6 +105,7 @@ public interface MentionsAdapterDelegate { private String[] lastSearchKeyboardLanguage; private ArrayList searchResultCommandsUsers; private ArrayList searchResultBotContext; + private long searchResultBotContextSwitchUserId; private TLRPC.TL_inlineBotSwitchPM searchResultBotContextSwitch; private TLRPC.TL_inlineBotWebView searchResultBotWebViewSwitch; private MentionsAdapterDelegate delegate; @@ -455,6 +456,7 @@ public void onDestroy() { contextQueryReqid = 0; } foundContextBot = null; + searchResultBotContextSwitch = null; inlineMediaEnabled = true; searchingContextUsername = null; searchingContextQuery = null; @@ -517,6 +519,9 @@ public void clearRecentHashtags() { } public TLRPC.TL_inlineBotSwitchPM getBotContextSwitch() { + if (foundContextBot != null && foundContextBot.id != searchResultBotContextSwitchUserId) { + return null; + } return searchResultBotContextSwitch; } @@ -541,6 +546,10 @@ private void processFoundUser(TLRPC.User user) { locationProvider.stop(); if (user != null && user.bot && user.bot_inline_placeholder != null) { foundContextBot = user; + if (user != null && user.id != searchResultBotContextSwitchUserId) { + searchResultBotContextSwitch = null; + searchResultBotContextSwitchUserId = user.id; + } if (parentFragment != null) { TLRPC.Chat chat = parentFragment.getCurrentChat(); if (chat != null) { @@ -558,10 +567,10 @@ private void processFoundUser(TLRPC.User user) { if (!allowGeo && parentFragment != null && parentFragment.getParentActivity() != null) { final TLRPC.User foundContextBotFinal = foundContextBot; AlertDialog.Builder builder = new AlertDialog.Builder(parentFragment.getParentActivity()); - builder.setTitle(LocaleController.getString("ShareYouLocationTitle", R.string.ShareYouLocationTitle)); - builder.setMessage(LocaleController.getString("ShareYouLocationInline", R.string.ShareYouLocationInline)); + builder.setTitle(LocaleController.getString(R.string.ShareYouLocationTitle)); + builder.setMessage(LocaleController.getString(R.string.ShareYouLocationInline)); final boolean[] buttonClicked = new boolean[1]; - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> { buttonClicked[0] = true; if (foundContextBotFinal != null) { SharedPreferences preferences1 = MessagesController.getNotificationsSettings(currentAccount); @@ -569,7 +578,7 @@ private void processFoundUser(TLRPC.User user) { checkLocationPermissionsOrStart(); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> { buttonClicked[0] = true; onLocationUnavailable(); }); @@ -584,10 +593,12 @@ private void processFoundUser(TLRPC.User user) { } } else { foundContextBot = null; + searchResultBotContextSwitch = null; inlineMediaEnabled = true; } if (foundContextBot == null) { noUserName = true; + searchResultBotContextSwitch = null; } else { if (delegate != null) { delegate.onContextSearch(true); @@ -620,6 +631,7 @@ private void searchForContextBot(final String username, final String query) { contextQueryReqid = 0; } foundContextBot = null; + searchResultBotContextSwitch = null; inlineMediaEnabled = true; searchingContextUsername = null; searchingContextQuery = null; @@ -727,7 +739,7 @@ public String getBotCaption() { if (foundContextBot != null) { return foundContextBot.bot_inline_placeholder; } else if (searchingContextUsername != null && searchingContextUsername.equals("gif")) { - return LocaleController.getString("SearchGifsTitle", R.string.SearchGifsTitle); + return LocaleController.getString(R.string.SearchGifsTitle); } return null; } @@ -822,6 +834,11 @@ private void searchForContextBotResults(final boolean cache, final TLRPC.User us } }); + if (user != null && user.id != searchResultBotContextSwitchUserId) { + searchResultBotContextSwitch = null; + searchResultBotContextSwitchUserId = user.id; + } + if (cache) { messagesStorage.getBotCache(key, requestDelegate); } else { @@ -1773,9 +1790,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TLRPC.Chat chat = parentFragment.getCurrentChat(); if (chat != null) { if (!ChatObject.hasAdminRights(chat) && chat.default_banned_rights != null && chat.default_banned_rights.send_inline) { - textView.setText(LocaleController.getString("GlobalAttachInlineRestricted", R.string.GlobalAttachInlineRestricted)); + textView.setText(LocaleController.getString(R.string.GlobalAttachInlineRestricted)); } else if (AndroidUtilities.isBannedForever(chat.banned_rights)) { - textView.setText(LocaleController.getString("AttachInlineRestrictedForever", R.string.AttachInlineRestrictedForever)); + textView.setText(LocaleController.getString(R.string.AttachInlineRestrictedForever)); } else { textView.setText(LocaleController.formatString("AttachInlineRestricted", R.string.AttachInlineRestricted, LocaleController.formatDateForBan(chat.banned_rights.until_date))); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MessagesSearchAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MessagesSearchAdapter.java index f6411fd611..00b70eb06f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MessagesSearchAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MessagesSearchAdapter.java @@ -8,9 +8,7 @@ package org.telegram.ui.Adapters; -import static org.telegram.messenger.AndroidUtilities.checkAndroidTheme; import static org.telegram.messenger.AndroidUtilities.dp; -import static org.telegram.messenger.AndroidUtilities.statusBarHeight; import android.content.Context; import android.graphics.Canvas; @@ -317,7 +315,7 @@ public void set(StoriesController.SearchStoriesList list) { avatarsDrawable.setCount(actualCount); avatarsDrawable.commitTransition(false); - titleTextView.setText(LocaleController.formatPluralString("HashtagStoriesFound", list.getCount())); + titleTextView.setText(LocaleController.formatPluralStringSpaced("HashtagStoriesFound", list.getCount())); subtitleTextView.setText(LocaleController.formatString(R.string.HashtagStoriesFoundSubtitle, list.query)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/SearchAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/SearchAdapter.java index af2b0934ff..0e3c8a1e23 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/SearchAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/SearchAdapter.java @@ -177,9 +177,9 @@ private void processSearch(final String query) { names[1] = null; } if (UserObject.isReplyUser(user)) { - names[2] = LocaleController.getString("RepliesTitle", R.string.RepliesTitle).toLowerCase(); + names[2] = LocaleController.getString(R.string.RepliesTitle).toLowerCase(); } else if (user.self) { - names[2] = LocaleController.getString("SavedMessages", R.string.SavedMessages).toLowerCase(); + names[2] = LocaleController.getString(R.string.SavedMessages).toLowerCase(); } int found = 0; @@ -423,7 +423,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { ProfileSearchCell profileSearchCell = (ProfileSearchCell) holder.itemView; if (self) { - name = LocaleController.getString("SavedMessages", R.string.SavedMessages); + name = LocaleController.getString(R.string.SavedMessages); } profileSearchCell.setData(object, null, name, username, false, self); profileSearchCell.useSeparator = (position != getItemCount() - 1 && position != searchResult.size() - 1); @@ -442,11 +442,11 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 1: { GraySectionCell cell = (GraySectionCell) holder.itemView; if (position == unregistredContactsHeaderRow) { - cell.setText(LocaleController.getString("InviteToTelegramShort", R.string.InviteToTelegramShort)); + cell.setText(LocaleController.getString(R.string.InviteToTelegramShort)); } else if (getItem(position) == null) { - cell.setText(LocaleController.getString("GlobalSearch", R.string.GlobalSearch)); + cell.setText(LocaleController.getString(R.string.GlobalSearch)); } else { - cell.setText(LocaleController.getString("PhoneNumberSearch", R.string.PhoneNumberSearch)); + cell.setText(LocaleController.getString(R.string.PhoneNumberSearch)); } break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/StickersSearchAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/StickersSearchAdapter.java index b5ad8075ca..926d62b0a4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/StickersSearchAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/StickersSearchAdapter.java @@ -385,7 +385,7 @@ public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { layout.addView(new Space(context), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 15)); emptyTextView = new TextView(context); - emptyTextView.setText(LocaleController.getString("NoStickersFound", R.string.NoStickersFound)); + emptyTextView.setText(LocaleController.getString(R.string.NoStickersFound)); emptyTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); emptyTextView.setTextColor(getThemedColor(Theme.key_chat_emojiPanelEmptyText)); layout.addView(emptyTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ArchivedStickersActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ArchivedStickersActivity.java index 76f0a8e5c5..ad50ceeb38 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ArchivedStickersActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ArchivedStickersActivity.java @@ -95,11 +95,11 @@ public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); if (currentType == MediaDataController.TYPE_IMAGE) { - actionBar.setTitle(LocaleController.getString("ArchivedStickers", R.string.ArchivedStickers)); + actionBar.setTitle(LocaleController.getString(R.string.ArchivedStickers)); } else if (currentType == MediaDataController.TYPE_EMOJIPACKS) { - actionBar.setTitle(LocaleController.getString("ArchivedEmojiPacks", R.string.ArchivedEmojiPacks)); + actionBar.setTitle(LocaleController.getString(R.string.ArchivedEmojiPacks)); } else { - actionBar.setTitle(LocaleController.getString("ArchivedMasks", R.string.ArchivedMasks)); + actionBar.setTitle(LocaleController.getString(R.string.ArchivedMasks)); } actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -118,9 +118,9 @@ public void onItemClick(int id) { emptyView = new EmptyTextProgressView(context); if (currentType == MediaDataController.TYPE_IMAGE) { - emptyView.setText(LocaleController.getString("ArchivedStickersEmpty", R.string.ArchivedStickersEmpty)); + emptyView.setText(LocaleController.getString(R.string.ArchivedStickersEmpty)); } else { - emptyView.setText(LocaleController.getString("ArchivedMasksEmpty", R.string.ArchivedMasksEmpty)); + emptyView.setText(LocaleController.getString(R.string.ArchivedMasksEmpty)); } frameLayout.addView(emptyView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); if (loadingStickers) { @@ -353,7 +353,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (position == archiveInfoRow) { cell.setTopPadding(17); cell.setBottomPadding(10); - cell.setText(currentType == MediaDataController.TYPE_EMOJIPACKS ? LocaleController.getString("ArchivedEmojiInfo", R.string.ArchivedEmojiInfo) : LocaleController.getString("ArchivedStickersInfo", R.string.ArchivedStickersInfo)); + cell.setText(currentType == MediaDataController.TYPE_EMOJIPACKS ? LocaleController.getString(R.string.ArchivedEmojiInfo) : LocaleController.getString(R.string.ArchivedStickersInfo)); } else { cell.setTopPadding(10); cell.setBottomPadding(17); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java index e62e439285..ebd390e2bf 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java @@ -45,7 +45,6 @@ import android.graphics.Typeface; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; -import android.location.LocationListener; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -202,6 +201,7 @@ import org.telegram.ui.Components.WebPlayerView; import org.telegram.ui.Stories.DarkThemeResourceProvider; import org.telegram.ui.Stories.recorder.ButtonWithCounterView; +import org.telegram.ui.Stories.recorder.HintView2; import org.telegram.ui.Stories.recorder.KeyboardNotifier; import org.telegram.ui.web.AddressBarList; import org.telegram.ui.web.BookmarksFragment; @@ -213,9 +213,9 @@ import org.telegram.ui.web.SearchEngine; import org.telegram.ui.web.WebActionBar; import org.telegram.ui.web.WebBrowserSettings; +import org.telegram.ui.web.WebInstantView; import java.io.File; -import java.net.IDN; import java.net.URLDecoder; import java.util.ArrayList; import java.util.Collections; @@ -1129,6 +1129,9 @@ public void onAnimationEnd(Animator animator) { if (removed instanceof CachedWeb) { ((CachedWeb) removed).destroy(); } + if (removed instanceof TLRPC.WebPage) { + WebInstantView.recycle((TLRPC.WebPage) removed); + } } else { if (!backAnimation) { if (sheet != null) { @@ -1373,7 +1376,7 @@ private void showCopyPopup(String urlFinal) { } builder.setTitle(formattedUrl); builder.setTitleMultipleLines(true); - builder.setItems(new CharSequence[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy)}, (dialog, which) -> { + builder.setItems(new CharSequence[]{LocaleController.getString(R.string.Open), LocaleController.getString(R.string.Copy)}, (dialog, which) -> { if (parentActivity == null || pages[0].adapter.currentPage == null) { return; } @@ -1405,6 +1408,7 @@ private void showCopyPopup(String urlFinal) { Browser.openUrl(parentActivity, urlFinal); } else if (which == 1) { String url = urlFinal; + if (url == null) return; if (url.startsWith("mailto:")) { url = url.substring(7); } else if (url.startsWith("tel:")) { @@ -1454,12 +1458,12 @@ private void showPopup(View parent, int gravity, int x, int y) { deleteView.setPadding(dp(20), 0, dp(20), 0); deleteView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); deleteView.setTypeface(AndroidUtilities.bold()); - deleteView.setText(LocaleController.getString("Copy", R.string.Copy).toUpperCase()); + deleteView.setText(LocaleController.getString(R.string.Copy).toUpperCase()); deleteView.setOnClickListener(v -> { if (pressedLinkOwnerLayout != null) { AndroidUtilities.addToClipboard(pressedLinkOwnerLayout.getText()); if (AndroidUtilities.shouldShowClipboardToast()) { - Toast.makeText(parentActivity, LocaleController.getString("TextCopied", R.string.TextCopied), Toast.LENGTH_SHORT).show(); + Toast.makeText(parentActivity, LocaleController.getString(R.string.TextCopied), Toast.LENGTH_SHORT).show(); } } if (popupWindow != null && popupWindow.isShowing()) { @@ -1916,6 +1920,9 @@ public void onAnimationEnd(Animator animator) { if (removed instanceof CachedWeb) { ((CachedWeb) removed).destroy(); } + if (removed instanceof TLRPC.WebPage) { + WebInstantView.recycle((TLRPC.WebPage) removed); + } } else { if (!backAnimation) { if (sheet != null) { @@ -1937,6 +1944,8 @@ public void onAnimationEnd(Animator animator) { return; } windowView.openingPage = true; + windowView.movingPage = true; + windowView.startMovingHeaderHeight = currentHeaderHeight; pages[1].setVisibility(View.VISIBLE); pages[1].setAlpha(1.0f); pages[1].setTranslationX(0.0f); @@ -1993,6 +2002,9 @@ public void onAnimationEnd(Animator animator) { if (removed instanceof CachedWeb) { ((CachedWeb) removed).destroy(); } + if (removed instanceof TLRPC.WebPage) { + WebInstantView.recycle((TLRPC.WebPage) removed); + } } else { if (!backAnimation) { saveCurrentPagePosition(); @@ -2065,6 +2077,9 @@ public void onAnimationEnd(Animator animator) { if (removed instanceof CachedWeb) { ((CachedWeb) removed).destroy(); } + if (removed instanceof TLRPC.WebPage) { + WebInstantView.recycle((TLRPC.WebPage) removed); + } } else { if (!backAnimation) { if (sheet != null) { @@ -2146,6 +2161,9 @@ public void onAnimationEnd(Animator animator) { if (obj instanceof CachedWeb) { ((CachedWeb) obj).destroy(); } + if (obj instanceof TLRPC.WebPage) { + WebInstantView.recycle((TLRPC.WebPage) obj); + } } } else { if (!backAnimation) { @@ -2175,11 +2193,17 @@ private boolean scrollToAnchor(String anchor, boolean animated) { TLRPC.TL_textAnchor textAnchor = pages[0].adapter.anchorsParent.get(anchor); if (textAnchor != null) { TLRPC.TL_pageBlockParagraph paragraph = new TLRPC.TL_pageBlockParagraph(); - paragraph.text = textAnchor.text; + String webPageUrl; + if (!TextUtils.isEmpty(pages[0].adapter.currentPage.cached_page.url)) { + webPageUrl = pages[0].adapter.currentPage.cached_page.url.toLowerCase(); + } else { + webPageUrl = pages[0].adapter.currentPage.url.toLowerCase(); + } + paragraph.text = WebInstantView.filterRecursiveAnchorLinks(textAnchor.text, webPageUrl, anchor); int type = pages[0].adapter.getTypeForBlock(paragraph); RecyclerView.ViewHolder holder = pages[0].adapter.onCreateViewHolder(null, type); - pages[0].adapter.bindBlockToHolder(type, holder, paragraph, 0, 0); + pages[0].adapter.bindBlockToHolder(type, holder, paragraph, 0, 0, false); BottomSheet.Builder builder = new BottomSheet.Builder(parentActivity); builder.setApplyTopPadding(false); @@ -2206,7 +2230,7 @@ protected void onDraw(Canvas canvas) { }; textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); textView.setTypeface(AndroidUtilities.bold()); - textView.setText(LocaleController.getString("InstantViewReference", R.string.InstantViewReference)); + textView.setText(LocaleController.getString(R.string.InstantViewReference)); textView.setGravity((pages[0].adapter.isRtl ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL); textView.setTextColor(getTextColor()); textView.setPadding(dp(18), 0, dp(18), 0); @@ -2290,7 +2314,7 @@ public boolean canDismiss() { if (offset == -1) { int type = pages[0].adapter.getTypeForBlock(originalBlock); RecyclerView.ViewHolder holder = pages[0].adapter.onCreateViewHolder(null, type); - pages[0].adapter.bindBlockToHolder(type, holder, originalBlock, 0, 0); + pages[0].adapter.bindBlockToHolder(type, holder, originalBlock, 0, 0, false); holder.itemView.measure(View.MeasureSpec.makeMeasureSpec(pages[0].listView.getMeasuredWidth(), View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); offset = pages[0].adapter.anchorsOffset.get(anchor); if (offset == -1) { @@ -2322,6 +2346,9 @@ private boolean removeLastPageFromStack() { if (removed instanceof CachedWeb) { ((CachedWeb) removed).destroy(); } + if (removed instanceof TLRPC.WebPage) { + WebInstantView.recycle((TLRPC.WebPage) removed); + } updateInterfaceForCurrentPage(pagesStack.get(pagesStack.size() - 1), false, -1); return true; } @@ -2606,6 +2633,7 @@ public CharSequence getText(TLRPC.WebPage page, View parentView, TLRPC.RichText } else if (richText instanceof TLRPC.TL_textImage) { TLRPC.TL_textImage textImage = (TLRPC.TL_textImage) richText; TLRPC.Document document = WebPageUtils.getDocumentWithId(page, textImage.document_id); + TLRPC.Photo photo = WebPageUtils.getPhotoWithId(page, textImage.photo_id); if (document != null) { SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder("*"); int w = dp(textImage.w); @@ -2622,6 +2650,22 @@ public CharSequence getText(TLRPC.WebPage page, View parentView, TLRPC.RichText spannableStringBuilder.setSpan(new TextPaintImageReceiverSpan(parentView, document, page, w, h, false, lightness <= 0.705f), 0, spannableStringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } return spannableStringBuilder; + } else if (photo instanceof WebInstantView.WebPhoto) { + WebInstantView.WebPhoto webPhoto = (WebInstantView.WebPhoto) photo; + SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder("*"); + int w = dp(textImage.w); + int h = dp(textImage.h); + maxWidth = Math.abs(maxWidth); + if (w > maxWidth) { + float scale = maxWidth / (float) w; + w = maxWidth; + h *= scale; + } + if (parentView != null) { + int color = getThemedColor(Theme.key_windowBackgroundWhite); + spannableStringBuilder.setSpan(new TextPaintImageReceiverSpan(parentView, webPhoto, page, w, h, false, false), 0, spannableStringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + return spannableStringBuilder; } else { return ""; } @@ -2916,7 +2960,7 @@ private TextPaint getTextPaint(TLRPC.RichText parentRichText, TLRPC.RichText ric if ((flags & TEXT_FLAG_MEDIUM) != 0 && (flags & TEXT_FLAG_ITALIC) != 0) { paint.setTypeface(AndroidUtilities.getTypeface("fonts/rmediumitalic.ttf")); } else if ((flags & TEXT_FLAG_MEDIUM) != 0) { - paint.setTypeface(AndroidUtilities.bold()); + paint.setTypeface(AndroidUtilities.getTypeface(AndroidUtilities.TYPEFACE_ROBOTO_MEDIUM)); } else if ((flags & TEXT_FLAG_ITALIC) != 0) { paint.setTypeface(AndroidUtilities.getTypeface("fonts/ritalic.ttf")); } @@ -3237,7 +3281,7 @@ private boolean checkLayoutForLinks(WebpageAdapter adapter, MotionEvent event, V } catch (Exception ignore) { anchor = ""; } - if (url.toLowerCase().contains(webPageUrl)) { + if (index == 0 || url.toLowerCase().contains(webPageUrl)) { if (TextUtils.isEmpty(anchor)) { pages[0].layoutManager.scrollToPositionWithOffset(0, 0); checkScrollAnimated(); @@ -3365,7 +3409,7 @@ private void openWebpageUrl(String url, String anchor, Browser.Progress progress sheet.dismiss(true); } } - Browser.openUrl(parentActivity, Uri.parse(url), true, true, false, progress, null, true); + Browser.openUrl(parentActivity, Uri.parse(url), true, true, false, progress, null, true, true); return true; }; @@ -3391,12 +3435,20 @@ private void openWebpageUrl(String url, String anchor, Browser.Progress progress if (res.webpage != null && res.webpage.cached_page instanceof TLRPC.TL_page) { addPageToStack(res.webpage, anchor, 1); } else if (!checkInternal.run()) { - addPageToStack(req.url, 1); + if (SharedConfig.inappBrowser) { + addPageToStack(req.url, 1); + } else { + Browser.openUrl(parentActivity, req.url); + } } } else if (response instanceof TLRPC.TL_webPage && ((TLRPC.TL_webPage) response).cached_page instanceof TLRPC.TL_page) { addPageToStack((TLRPC.TL_webPage) response, anchor, 1); } else if (!checkInternal.run()) { - addPageToStack(req.url, 1); + if (SharedConfig.inappBrowser) { + addPageToStack(req.url, 1); + } else { + Browser.openUrl(parentActivity, req.url); + } } } })); @@ -3738,7 +3790,7 @@ public void invalidate() { for (int i = 0; i < pages.length; i++) { PageLayout page = pages[i] = new PageLayout(activity, getResourcesProvider()); page.setVisibility(i == 0 ? View.VISIBLE : View.GONE); - containerView.addView(page, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.FILL, 0, !BOTTOM_ACTION_BAR && sheet != null && !sheet.halfSize() ? 56 : 0, 0, BOTTOM_ACTION_BAR && sheet != null && !sheet.halfSize() ? 24 : 0)); + containerView.addView(page, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.FILL, 0, 0, 0, 0)); page.listView.setOnItemLongClickListener((view, position) -> { if (view instanceof BlockRelatedArticlesCell) { BlockRelatedArticlesCell cell = (BlockRelatedArticlesCell) view; @@ -3762,7 +3814,7 @@ public void invalidate() { final WebpageAdapter adapter = page.getAdapter(); if (view instanceof ReportCell && adapter.currentPage != null) { ReportCell cell = (ReportCell) view; - if (previewsReqId != 0 || cell.hasViews && x < view.getMeasuredWidth() / 2) { + if (previewsReqId != 0 || cell.hasViews && x < view.getMeasuredWidth() / 2 || cell.web) { return; } TLObject object = MessagesController.getInstance(currentAccount).getUserOrChat("previews"); @@ -3898,6 +3950,11 @@ public void showAddress(boolean show, boolean animated) { addressBarList.setOpened(show); } } + + @Override + protected WebInstantView.Loader getInstantViewLoader() { + return pages[0].loadInstant(); + } }; actionBar.occupyStatusBar(sheet != null && !BOTTOM_ACTION_BAR); containerView.addView(actionBar, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, BOTTOM_ACTION_BAR ? Gravity.BOTTOM : Gravity.TOP)); @@ -3935,7 +3992,7 @@ public void showAddress(boolean show, boolean animated) { Uri uri = Utilities.uriParseSafe(query); if (spans.length > 0 && start == 0 && end > 0 || uri != null && uri.getScheme() != null) { if (uri != null && uri.getScheme() == null && uri.getHost() == null && uri.getPath() != null) { - query = Browser.replace(uri, "https", uri.getPath(), "/"); + query = Browser.replace(uri, "https", null, uri.getPath(), "/"); } page.getWebView().loadUrl(query); } else { @@ -3973,7 +4030,7 @@ public void showAddress(boolean show, boolean animated) { Uri uri = Utilities.uriParseSafe(url); if (spans.length > 0 && start == 0 && end > 0 || uri != null && uri.getScheme() != null) { if (uri.getScheme() == null && uri.getHost() == null && uri.getPath() != null) { - url = Browser.replace(uri, "https", uri.getPath(), "/"); + url = Browser.replace(uri, "https", null, uri.getPath(), "/"); } page.getWebView().loadUrl(url); } else { @@ -4445,14 +4502,14 @@ public int getOpacity() { settingsContainer.addView(sizeCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 3, 0, 3, 0)); headerCell = new HeaderCell(parentActivity, getResourcesProvider()); - headerCell.setText(LocaleController.getString("FontType", R.string.FontType)); + headerCell.setText(LocaleController.getString(R.string.FontType)); settingsContainer.addView(headerCell, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 3, 4, 3, 2)); for (int a = 0; a < 2; a++) { fontCells[a] = new FontCell(parentActivity); switch (a) { case 0: - fontCells[a].setTextAndTypeface(LocaleController.getString("Default", R.string.Default), Typeface.DEFAULT); + fontCells[a].setTextAndTypeface(LocaleController.getString(R.string.Default), Typeface.DEFAULT); break; case 1: fontCells[a].setTextAndTypeface("Serif", Typeface.SERIF); @@ -4481,6 +4538,11 @@ public int getOpacity() { if (pages[0].isWeb() && pages[0].getWebView() != null) { pages[0].getWebView().reload(); } + } else if (id == WebActionBar.instant_item) { + WebInstantView.Loader loader = pages[0].currentInstantLoader; + if (loader != null && loader.getWebPage() != null) { + addPageToStack(loader.getWebPage(), null, 1); + } } if (id == WebActionBar.trans_item) { @@ -4544,7 +4606,7 @@ public void onDraw(Canvas canvas) { scrollToSearchIndex(currentSearchIndex - 1); } }); - searchUpButton.setContentDescription(LocaleController.getString("AccDescrSearchNext", R.string.AccDescrSearchNext)); + searchUpButton.setContentDescription(LocaleController.getString(R.string.AccDescrSearchNext)); searchDownButton = new ImageView(parentActivity); searchDownButton.setScaleType(ImageView.ScaleType.CENTER); @@ -4561,7 +4623,7 @@ public void onDraw(Canvas canvas) { scrollToSearchIndex(currentSearchIndex + 1); } }); - searchDownButton.setContentDescription(LocaleController.getString("AccDescrSearchPrev", R.string.AccDescrSearchPrev)); + searchDownButton.setContentDescription(LocaleController.getString(R.string.AccDescrSearchPrev)); searchCountText = new AnimatedTextView(parentActivity, true, true, true); searchCountText.setScaleProperty(.6f); @@ -4620,7 +4682,7 @@ public void onStateChanged(boolean isSelected) { @Override public void onTextCopied() { if (AndroidUtilities.shouldShowClipboardToast()) { - BulletinFactory.of(containerView, null).createCopyBulletin(LocaleController.getString("TextCopied", R.string.TextCopied)).show(); + BulletinFactory.of(containerView, null).createCopyBulletin(LocaleController.getString(R.string.TextCopied)).show(); } } }); @@ -4781,9 +4843,9 @@ private void updateSearchButtons() { if (count < 0) { searchCountText.setText(""); } else if (count == 0) { - searchCountText.setText(LocaleController.getString("NoResult", R.string.NoResult)); + searchCountText.setText(LocaleController.getString(R.string.NoResult)); } else if (count == 1) { - searchCountText.setText(LocaleController.getString("OneResult", R.string.OneResult)); + searchCountText.setText(LocaleController.getString(R.string.OneResult)); } else { searchCountText.setText(String.format(LocaleController.getPluralString("CountOfResults", count), index + 1, count)); } @@ -4961,7 +5023,7 @@ private void scrollToSearchIndex(int index) { if (offset == null) { int type = pages[0].adapter.getTypeForBlock(result.block); RecyclerView.ViewHolder holder = pages[0].adapter.onCreateViewHolder(null, type); - pages[0].adapter.bindBlockToHolder(type, holder, result.block, 0, 0); + pages[0].adapter.bindBlockToHolder(type, holder, result.block, 0, 0, false); holder.itemView.measure(View.MeasureSpec.makeMeasureSpec(pages[0].listView.getMeasuredWidth(), View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); offset = pages[0].adapter.searchTextOffset.get(key); if (offset == null) { @@ -6491,7 +6553,11 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { break; } case 90: { - view = new ReportCell(context); + view = new ReportCell(context, false); + break; + } + case 91: { + view = new ReportCell(context, true); break; } case 100: @@ -6525,19 +6591,19 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } if (position >= 0 && position < localBlocks.size()) { TLRPC.PageBlock block = localBlocks.get(position); - bindBlockToHolder(holder.getItemViewType(), holder, block, position, localBlocks.size()); + bindBlockToHolder(holder.getItemViewType(), holder, block, position, localBlocks.size(), false); } } @Override public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { - if (holder.getItemViewType() == 90) { + if (holder.getItemViewType() == 90 || holder.getItemViewType() == 91) { ReportCell cell = (ReportCell) holder.itemView; cell.setViews(currentPage.cached_page != null ? currentPage.cached_page.views : 0); } } - private void bindBlockToHolder(int type, RecyclerView.ViewHolder holder, TLRPC.PageBlock block, int position, int total) { + private void bindBlockToHolder(int type, RecyclerView.ViewHolder holder, TLRPC.PageBlock block, int position, int total, boolean calcHeight) { TLRPC.PageBlock originalBlock = block; if (block instanceof TLRPC.TL_pageBlockCover) { block = ((TLRPC.TL_pageBlockCover) block).cover; @@ -6573,7 +6639,7 @@ private void bindBlockToHolder(int type, RecyclerView.ViewHolder holder, TLRPC.P case 5: { BlockVideoCell cell = (BlockVideoCell) holder.itemView; TLRPC.TL_pageBlockVideo blockVideo = (TLRPC.TL_pageBlockVideo) block; - cell.setBlock(blockVideo, videoStates.get(blockVideo.video_id), position == 0, position == total - 1); + cell.setBlock(blockVideo, videoStates.get(blockVideo.video_id), calcHeight, position == 0, position == total - 1); cell.setParentBlock(channelBlock, originalBlock); break; } @@ -6594,7 +6660,7 @@ private void bindBlockToHolder(int type, RecyclerView.ViewHolder holder, TLRPC.P } case 9: { BlockPhotoCell cell = (BlockPhotoCell) holder.itemView; - cell.setBlock((TLRPC.TL_pageBlockPhoto) block, position == 0, position == total - 1); + cell.setBlock((TLRPC.TL_pageBlockPhoto) block, calcHeight, position == 0, position == total - 1); cell.setParentBlock(originalBlock); break; } @@ -6773,7 +6839,7 @@ public int getItemViewType(int position) { position--; } if (position == localBlocks.size()) { - return 90; + return currentPage != null && currentPage.cached_page != null && currentPage.cached_page.web ? 91 : 90; } return getTypeForBlock(localBlocks.get(position)); } @@ -6869,7 +6935,7 @@ public void calculateContentHeight() { itemHeights[i] = page.cachedHeight; } else { RecyclerView.ViewHolder viewHolder = createViewHolder(listView, getTypeForBlock(page)); - bindBlockToHolder(viewHolder.getItemViewType(), viewHolder, page, position, blocks.size()); + bindBlockToHolder(viewHolder.getItemViewType(), viewHolder, page, position, blocks.size(), true); viewHolder.itemView.measure(widthSpec, heightSpec); itemHeights[i] = viewHolder.itemView.getMeasuredHeight(); if (page != null) { @@ -7049,6 +7115,7 @@ private class BlockVideoCell extends FrameLayout implements DownloadController.F private TLRPC.PageBlock parentBlock; private TLRPC.Document currentDocument; private boolean isGif; + private boolean calcHeight; private boolean autoDownload; @@ -7094,13 +7161,14 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { return super.drawChild(canvas, child, drawingTime); } - public void setBlock(TLRPC.TL_pageBlockVideo block, BlockVideoCellState state, boolean first, boolean last) { + public void setBlock(TLRPC.TL_pageBlockVideo block, BlockVideoCellState state, boolean calcHeight, boolean first, boolean last) { if (currentBlock != null && videoPlayer != null && currentPlayer == this) { videoStates.put(currentBlock.video_id, videoState = BlockVideoCellState.fromPlayer(videoPlayer, this)); } currentBlock = block; videoState = state; parentBlock = null; + this.calcHeight = calcHeight; currentDocument = parentAdapter.getDocumentWithId(currentBlock.video_id); isGif = MessageObject.isVideoDocument(currentDocument) || MessageObject.isGifDocument(currentDocument)/* && currentBlock.autoplay*/; isFirst = first; @@ -7234,7 +7302,9 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { imageView.setQualityThumbDocument(currentDocument); int photoY = (isFirst || currentType == 1 || currentType == 2 || currentBlock.level > 0) ? 0 : dp(8); imageView.setImageCoords(photoX, photoY, photoWidth, photoHeight); - if (isGif) { + if (calcHeight) { + + } else if (isGif) { if (videoState != null && videoState.lastFrameBitmap != null) { imageView.setStrippedLocation(null); imageView.setImageBitmap(videoState.lastFrameBitmap); @@ -7536,7 +7606,7 @@ public int getObserverTag() { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); info.setEnabled(true); - StringBuilder sb = new StringBuilder(LocaleController.getString("AttachVideo", R.string.AttachVideo)); + StringBuilder sb = new StringBuilder(LocaleController.getString(R.string.AttachVideo)); if (captionLayout != null) { sb.append(", "); sb.append(captionLayout.getText()); @@ -8452,7 +8522,6 @@ public void onLoadResource(WebView view, String url) { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); - //progressBar.setVisibility(INVISIBLE); } @Override @@ -9443,7 +9512,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 0: { BlockPhotoCell cell = (BlockPhotoCell) holder.itemView; cell.groupPosition = group.positions.get(pageBlock); - cell.setBlock((TLRPC.TL_pageBlockPhoto) pageBlock, true, true); + cell.setBlock((TLRPC.TL_pageBlockPhoto) pageBlock, false, true, true); break; } case 1: @@ -9451,7 +9520,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { BlockVideoCell cell = (BlockVideoCell) holder.itemView; cell.groupPosition = group.positions.get(pageBlock); TLRPC.TL_pageBlockVideo blockVideo = (TLRPC.TL_pageBlockVideo) pageBlock; - cell.setBlock(blockVideo, videoStates.get(blockVideo.video_id), true, true); + cell.setBlock(blockVideo, videoStates.get(blockVideo.video_id), false, true, true); break; } } @@ -9687,11 +9756,11 @@ public Object instantiateItem(ViewGroup container, int position) { TLRPC.PageBlock block = currentBlock.items.get(position); if (block instanceof TLRPC.TL_pageBlockPhoto) { view = new BlockPhotoCell(getContext(), parentAdapter, 1); - ((BlockPhotoCell) view).setBlock((TLRPC.TL_pageBlockPhoto) block, true, true); + ((BlockPhotoCell) view).setBlock((TLRPC.TL_pageBlockPhoto) block, false, true, true); } else { view = new BlockVideoCell(getContext(), parentAdapter, 1); TLRPC.TL_pageBlockVideo videoBlock = (TLRPC.TL_pageBlockVideo) block; - ((BlockVideoCell) view).setBlock(videoBlock, videoStates.get(videoBlock.video_id), true, true); + ((BlockVideoCell) view).setBlock(videoBlock, videoStates.get(videoBlock.video_id), false, true, true); } container.addView(view); ObjectContainer objectContainer = new ObjectContainer(); @@ -9882,7 +9951,7 @@ public void setBlock(TL_pageBlockListItem block) { } } if (currentBlock.blockItem != null) { - parentAdapter.bindBlockToHolder(currentBlockType, blockLayout, currentBlock.blockItem, 0, 0); + parentAdapter.bindBlockToHolder(currentBlockType, blockLayout, currentBlock.blockItem, 0, 0, false); } requestLayout(); } @@ -10123,7 +10192,7 @@ public void setBlock(TL_pageBlockOrderedListItem block) { } } if (currentBlock.blockItem != null) { - parentAdapter.bindBlockToHolder(currentBlockType, blockLayout, currentBlock.blockItem, 0, 0); + parentAdapter.bindBlockToHolder(currentBlockType, blockLayout, currentBlock.blockItem, 0, 0, false); } requestLayout(); } @@ -10730,7 +10799,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { info.setEnabled(true); if (textLayout == null) return; - info.setText(textLayout.getText() + ", " + LocaleController.getString("AccDescrIVHeading", R.string.AccDescrIVHeading)); + info.setText(textLayout.getText() + ", " + LocaleController.getString(R.string.AccDescrIVHeading)); } @Override @@ -10828,7 +10897,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { if (textLayout == null) { return; } - info.setText(textLayout.getText() + ", " + LocaleController.getString("AccDescrIVHeading", R.string.AccDescrIVHeading)); + info.setText(textLayout.getText() + ", " + LocaleController.getString(R.string.AccDescrIVHeading)); } @Override @@ -11077,6 +11146,7 @@ private class BlockPhotoCell extends FrameLayout implements DownloadController.F private TLRPC.TL_pageBlockPhoto currentBlock; private TLRPC.PageBlock parentBlock; + private boolean calcHeight; private MessageObject.GroupedMessagePosition groupPosition; private Drawable linkDrawable; @@ -11100,9 +11170,10 @@ public BlockPhotoCell(Context context, WebpageAdapter adapter, int type) { currentType = type; } - public void setBlock(TLRPC.TL_pageBlockPhoto block, boolean first, boolean last) { + public void setBlock(TLRPC.TL_pageBlockPhoto block, boolean calcHeight, boolean first, boolean last) { parentBlock = null; currentBlock = block; + calcHeight = calcHeight; isFirst = first; channelCell.setVisibility(INVISIBLE); if (!TextUtils.isEmpty(currentBlock.url)) { @@ -11199,23 +11270,32 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { textX = dp(18); textWidth = width - dp(36); } - if (currentPhoto != null && currentPhotoObject != null) { + if (currentPhoto != null && (currentPhotoObject != null || currentPhoto instanceof WebInstantView.WebPhoto)) { currentPhotoObjectThumb = FileLoader.getClosestPhotoSizeWithSize(currentPhoto.sizes, 40, true); if (currentPhotoObject == currentPhotoObjectThumb) { currentPhotoObjectThumb = null; } + int w, h; + if (currentPhoto instanceof WebInstantView.WebPhoto) { + WebInstantView.WebPhoto webphoto = (WebInstantView.WebPhoto) currentPhoto; + w = webphoto.w; + h = webphoto.h; + } else { + w = currentPhotoObject.w; + h = currentPhotoObject.h; + } if (currentType == 0) { float scale; - scale = photoWidth / (float) currentPhotoObject.w; - height = (int) (scale * currentPhotoObject.h); + scale = photoWidth / (float) w; + height = (int) (scale * h); if (parentBlock instanceof TLRPC.TL_pageBlockCover) { height = Math.min(height, photoWidth); } else { int maxHeight = (int) ((Math.max(AndroidUtilities.displaySize.x, AndroidUtilities.displaySize.y) - dp(56)) * 0.9f); if (height > maxHeight) { height = maxHeight; - scale = height / (float) currentPhotoObject.h; - photoWidth = (int) (scale * currentPhotoObject.w); + scale = height / (float) h; + photoWidth = (int) (scale * w); photoX += (width - photoX - photoWidth) / 2; } } @@ -11242,13 +11322,23 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { currentThumbFilter = "80_80_b"; autoDownload = (DownloadController.getInstance(currentAccount).getCurrentDownloadMask() & DownloadController.AUTODOWNLOAD_TYPE_PHOTO) != 0; - File path = FileLoader.getInstance(currentAccount).getPathToAttach(currentPhotoObject, true); - if (autoDownload || path.exists()) { + if (calcHeight) { + + } else if (currentPhoto instanceof WebInstantView.WebPhoto) { + autoDownload = true; imageView.setStrippedLocation(null); - imageView.setImage(ImageLocation.getForPhoto(currentPhotoObject, currentPhoto), currentFilter, ImageLocation.getForPhoto(currentPhotoObjectThumb, currentPhoto), currentThumbFilter, currentPhotoObject.size, null, parentAdapter.currentPage, 1); + WebInstantView.loadPhoto((WebInstantView.WebPhoto) currentPhoto, imageView, () -> { + requestLayout(); + }); } else { - imageView.setStrippedLocation(ImageLocation.getForPhoto(currentPhotoObject, currentPhoto)); - imageView.setImage(null, currentFilter, ImageLocation.getForPhoto(currentPhotoObjectThumb, currentPhoto), currentThumbFilter, currentPhotoObject.size, null, parentAdapter.currentPage, 1); + File path = FileLoader.getInstance(currentAccount).getPathToAttach(currentPhotoObject, true); + if (autoDownload || path.exists()) { + imageView.setStrippedLocation(null); + imageView.setImage(ImageLocation.getForPhoto(currentPhotoObject, currentPhoto), currentFilter, ImageLocation.getForPhoto(currentPhotoObjectThumb, currentPhoto), currentThumbFilter, currentPhotoObject.size, null, parentAdapter.currentPage, 1); + } else { + imageView.setStrippedLocation(ImageLocation.getForPhoto(currentPhotoObject, currentPhoto)); + imageView.setImage(null, currentFilter, ImageLocation.getForPhoto(currentPhotoObjectThumb, currentPhoto), currentThumbFilter, currentPhotoObject.size, null, parentAdapter.currentPage, 1); + } } buttonX = (int) (imageView.getImageX() + (imageView.getImageWidth() - size) / 2.0f); buttonY = (int) (imageView.getImageY() + (imageView.getImageHeight() - size) / 2.0f); @@ -11306,7 +11396,7 @@ protected void onDraw(Canvas canvas) { radialProgress.draw(canvas); } } - if (!TextUtils.isEmpty(currentBlock.url)) { + if (!TextUtils.isEmpty(currentBlock.url) && !(currentPhoto instanceof WebInstantView.WebPhoto)) { int x = getMeasuredWidth() - dp(11 + 24); int y = (int) (imageView.getImageY() + dp(11)); linkDrawable.setBounds(x, y, x + dp(24), y + dp(24)); @@ -11342,6 +11432,7 @@ private int getIconForCurrentState() { } private void didPressedButton(boolean animated) { + if (currentPhotoObject == null) return; if (buttonState == 0) { radialProgress.setProgress(0, animated); imageView.setImage(ImageLocation.getForPhoto(currentPhotoObject, currentPhoto), currentFilter, ImageLocation.getForPhoto(currentPhotoObjectThumb, currentPhoto), currentThumbFilter, currentPhotoObject.size, null, parentAdapter.currentPage, 1); @@ -11359,7 +11450,8 @@ private void didPressedButton(boolean animated) { public void updateButtonState(boolean animated) { String fileName = FileLoader.getAttachFileName(currentPhotoObject); File path = FileLoader.getInstance(currentAccount).getPathToAttach(currentPhotoObject, true); - boolean fileExists = path.exists(); + File path2 = FileLoader.getInstance(currentAccount).getPathToAttach(currentPhotoObject, false); + boolean fileExists = path.exists() || path2 != null && path2.exists(); if (TextUtils.isEmpty(fileName)) { radialProgress.setIcon(MediaActionDrawable.ICON_NONE, false, false); return; @@ -11432,7 +11524,7 @@ public int getObserverTag() { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); info.setEnabled(true); - StringBuilder sb = new StringBuilder(LocaleController.getString("AttachPhoto", R.string.AttachPhoto)); + StringBuilder sb = new StringBuilder(LocaleController.getString(R.string.AttachPhoto)); if (captionLayout != null) { sb.append(", "); sb.append(captionLayout.getText()); @@ -11640,7 +11732,7 @@ protected void onDraw(Canvas canvas) { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); info.setEnabled(true); - StringBuilder sb = new StringBuilder(LocaleController.getString("Map", R.string.Map)); + StringBuilder sb = new StringBuilder(LocaleController.getString(R.string.Map)); if (captionLayout != null) { sb.append(", "); sb.append(captionLayout.getText()); @@ -11689,7 +11781,7 @@ public BlockChannelCell(Context context, WebpageAdapter adapter, int type) { textView = new TextView(context); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); textView.setTypeface(AndroidUtilities.bold()); - textView.setText(LocaleController.getString("ChannelJoin", R.string.ChannelJoin)); + textView.setText(LocaleController.getString(R.string.ChannelJoin)); textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 39, Gravity.RIGHT | Gravity.TOP)); textView.setOnClickListener(v -> { @@ -12033,7 +12125,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { info.setEnabled(true); if (textLayout == null) return; - info.setText(textLayout.getText() + ", " + LocaleController.getString("AccDescrIVTitle", R.string.AccDescrIVTitle)); + info.setText(textLayout.getText() + ", " + LocaleController.getString(R.string.AccDescrIVTitle)); } @Override @@ -12388,7 +12480,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { if (textLayout == null) { return; } - info.setText(textLayout.getText() + ", " + LocaleController.getString("AccDescrIVHeading", R.string.AccDescrIVHeading)); + info.setText(textLayout.getText() + ", " + LocaleController.getString(R.string.AccDescrIVHeading)); } @Override @@ -12404,13 +12496,15 @@ private class ReportCell extends FrameLayout { private TextView textView; private TextView viewsTextView; private boolean hasViews; + public final boolean web; - public ReportCell(Context context) { + public ReportCell(Context context, boolean web) { super(context); + this.web = web; setTag(90); textView = new TextView(context); - textView.setText(LocaleController.getString("PreviewFeedback2", R.string.PreviewFeedback2)); + textView.setText(LocaleController.getString(web ? R.string.PreviewFeedbackAuto : R.string.PreviewFeedback2)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12); textView.setGravity(Gravity.CENTER); textView.setPadding(dp(18), 0, dp(18), 0); @@ -12820,6 +12914,7 @@ public void updatePages() { actionBar.setBackButtonCached(false); // backButton > .5f); } actionBar.setHasForward(pages[0].hasForwardButton()); + actionBar.setIsLoaded(pages[0].getWebView() != null && pages[0].getWebView().isPageLoaded()); } actionBar.setBackgroundColor(0, page0Background.set(pages[0].getActionBarColor(), windowView.movingPage || windowView.openingPage)); @@ -12879,6 +12974,8 @@ public class PageLayout extends FrameLayout { public int webActionBarColor = getThemedColor(Theme.key_iv_background); public int webBackgroundColor = getThemedColor(Theme.key_iv_background); + public WebInstantView.Loader currentInstantLoader; + public boolean paused = false; public void pause() { if (paused) return; @@ -12895,6 +12992,11 @@ public void resume() { paused = false; } + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + public PageLayout(Context context, Theme.ResourcesProvider resourcesProvider) { super(context); @@ -12961,6 +13063,14 @@ public void requestLayout() { swipeContainer.setAllowFullSizeSwipe(true); // swipeContainer.stickToEdges = false; webViewContainer = new BotWebViewContainer(getContext(), resourcesProvider, getThemedColor(Theme.key_windowBackgroundWhite), false) { + @Override + public void setPageLoaded(String url, boolean animated) { + if (actionBar != null && PageLayout.this == pages[0] && currentInstantLoader != null && currentInstantLoader.getWebPage() == null) { + currentInstantLoader.retryLocal(getWebView()); + } + super.setPageLoaded(url, animated); + } + @Override public void onWebViewCreated() { super.onWebViewCreated(); @@ -13089,7 +13199,12 @@ public void onWebAppOpenInvoice(TLRPC.InputInvoice inputInvoice, String slug, TL } @Override - public void onSetupMainButton(boolean isVisible, boolean isActive, String text, int color, int textColor, boolean isProgressVisible) { + public void onSetupMainButton(boolean isVisible, boolean isActive, String text, int color, int textColor, boolean isProgressVisible, boolean hasShineEffect) { + + } + + @Override + public void onSetupSecondaryButton(boolean isVisible, boolean isActive, String text, int color, int textColor, boolean isProgressVisible, boolean hasShineEffect, String position) { } @@ -13193,6 +13308,9 @@ public String getTitle() { if (adapter.currentPage != null && adapter.currentPage.site_name != null) { return adapter.currentPage.site_name; } + if (adapter.currentPage != null && adapter.currentPage.title != null) { + return adapter.currentPage.title; + } } if (isWeb()) { BotWebViewContainer.MyWebView webView = webViewContainer.getWebView(); @@ -13238,7 +13356,12 @@ public String getSubtitle() { try { try { Uri uri2 = Uri.parse(url); - url = Browser.replaceHostname(uri2, Browser.IDN_toUnicode(uri2.getHost()), null); + String hostname = Browser.IDN_toUnicode(uri2.getHost()); + String[] levels = hostname.split("\\."); + if (levels.length > 2 && actionBar != null && HintView2.measureCorrectly(hostname, actionBar.titlePaint) > AndroidUtilities.displaySize.x - dp(3 * 54)) { + hostname = levels[levels.length - 2] + '.' + levels[levels.length - 1]; + } + url = Browser.replace(uri2, null, "", hostname, null); } catch (Exception e) { FileLog.e(e, false); } @@ -13474,9 +13597,52 @@ public void setWeb(CachedWeb web) { if (this.web != null) { this.web.attach(this); } + + if (currentInstantLoader != null) { + currentInstantLoader.cancel(); + currentInstantLoader.recycle(); + currentInstantLoader = null; + } } } + public WebInstantView.Loader loadInstant() { + if (!isWeb()) { + if (currentInstantLoader != null) { + currentInstantLoader.cancel(); + currentInstantLoader.recycle(); + currentInstantLoader = null; + } + return null; + } + if (getWebView() == null) { + if (currentInstantLoader != null) { + currentInstantLoader.cancel(); + currentInstantLoader.recycle(); + currentInstantLoader = null; + } + return null; + } + if (currentInstantLoader != null && ( + currentInstantLoader.currentIsLoaded != getWebView().isPageLoaded() || + currentInstantLoader.currentProgress != getWebView().getProgress() + )) { + currentInstantLoader.retryLocal(getWebView()); + return currentInstantLoader; + } + if (currentInstantLoader != null && TextUtils.equals(getWebView().getUrl(), currentInstantLoader.currentUrl)) { + return currentInstantLoader; + } + if (currentInstantLoader != null) { + currentInstantLoader.cancel(); + currentInstantLoader.recycle(); + currentInstantLoader = null; + } + currentInstantLoader = new WebInstantView.Loader(currentAccount); + currentInstantLoader.start(getWebView()); + return currentInstantLoader; + } + public void updateWeb() { if (this.web != null) { this.web.enrich(this); @@ -13727,7 +13893,7 @@ public boolean restoreState(BaseFragment fragment, BottomSheetTabs.WebTabData ta @Override public boolean isShown() { - return !dismissing; + return !dismissing && openProgress > 0.5f && windowView != null && windowView.isAttachedToWindow() && windowView.isVisible() && backProgress < 1f; } public void attachInternal(BaseFragment fragment) { @@ -14066,7 +14232,7 @@ private boolean imageAtTop() { } private int getListPaddingTop() { - return dp(imageAtTop() ? 0 : 20); + return dp(20); } public int getEmptyPadding() { @@ -14107,6 +14273,12 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { private final RectF rect = new RectF(); private final RectF rect2 = new RectF(); + public boolean isVisible() { + final int top = getListTop() - getListPaddingTop(); + final int drawnTop = lerp(top, 0, Utilities.clamp01(this.attachedActionBar.get())); + return drawnTop < getHeight(); + } + @Override protected void dispatchDraw(Canvas canvas) { if (drawingFromOverlay) { @@ -14130,7 +14302,7 @@ protected void dispatchDraw(Canvas canvas) { Sheet.this.fullyAttachedToActionBar = (attachedActionBar >= .999f); checkFullyVisible(); } - final int drawnTop = lerp(top, 0, Utilities.clamp(attachedActionBar, 1, 0)); + final int drawnTop = lerp(top, 0, Utilities.clamp01(attachedActionBar)); final float y = getEmptyPadding() * Math.max(1f - openProgress, dismissProgress); canvas.save(); @@ -14457,6 +14629,8 @@ public void destroy() { ((CachedWeb) obj).detach(pages[1]); } ((CachedWeb) obj).destroy(); + } else if (obj instanceof TLRPC.WebPage) { + WebInstantView.recycle((TLRPC.WebPage) obj); } } pagesStack.clear(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/AutoDeleteMessagesActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/AutoDeleteMessagesActivity.java index 5885046092..8f86b41b5f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/AutoDeleteMessagesActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/AutoDeleteMessagesActivity.java @@ -71,7 +71,7 @@ public void onFragmentDestroy() { public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("AutoDeleteMessages", R.string.AutoDeleteMessages)); + actionBar.setTitle(LocaleController.getString(R.string.AutoDeleteMessages)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { @@ -105,31 +105,31 @@ public void onItemClick(int id) { mainContainer.addView(checkBoxContainer, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); HeaderCell headerCell = new HeaderCell(getContext()); - headerCell.setText(LocaleController.getString("MessageLifetime", R.string.MessageLifetime)); + headerCell.setText(LocaleController.getString(R.string.MessageLifetime)); checkBoxContainer.addView(headerCell); offCell = new RadioCellInternal(getContext()); - offCell.setText(LocaleController.getString("ShortMessageLifetimeForever", R.string.ShortMessageLifetimeForever), false, true); + offCell.setText(LocaleController.getString(R.string.ShortMessageLifetimeForever), false, true); offCell.time = 0; checkBoxContainer.addView(offCell); afterOneDay = new RadioCellInternal(getContext()); - afterOneDay.setText(LocaleController.getString("AutoDeleteAfter1Day", R.string.AutoDeleteAfter1Day), false, true); + afterOneDay.setText(LocaleController.getString(R.string.AutoDeleteAfter1Day), false, true); afterOneDay.time = ONE_DAY; checkBoxContainer.addView(afterOneDay); afterOneWeek = new RadioCellInternal(getContext()); - afterOneWeek.setText(LocaleController.getString("AutoDeleteAfter1Week", R.string.AutoDeleteAfter1Week), false, true); + afterOneWeek.setText(LocaleController.getString(R.string.AutoDeleteAfter1Week), false, true); afterOneWeek.time = ONE_WEEK; checkBoxContainer.addView(afterOneWeek); afterOneMonth = new RadioCellInternal(getContext()); - afterOneMonth.setText(LocaleController.getString("AutoDeleteAfter1Month", R.string.AutoDeleteAfter1Month), false, true); + afterOneMonth.setText(LocaleController.getString(R.string.AutoDeleteAfter1Month), false, true); afterOneMonth.time = ONE_MONTH; checkBoxContainer.addView(afterOneMonth); customTimeButton = new RadioCellInternal(getContext()); - customTimeButton.setText(LocaleController.getString("SetCustomTime", R.string.SetCustomTime), false, false); + customTimeButton.setText(LocaleController.getString(R.string.SetCustomTime), false, false); customTimeButton.hideRadioButton(); checkBoxContainer.addView(customTimeButton); @@ -142,7 +142,7 @@ public void onItemClick(int id) { updateItems(); TextInfoPrivacyCell textInfoPrivacyCell = new TextInfoPrivacyCell(context); - CharSequence infoText = AndroidUtilities.replaceSingleTag(LocaleController.getString("GlobalAutoDeleteInfo", R.string.GlobalAutoDeleteInfo), new Runnable() { + CharSequence infoText = AndroidUtilities.replaceSingleTag(LocaleController.getString(R.string.GlobalAutoDeleteInfo), new Runnable() { @Override public void run() { UsersSelectActivity usersSelectActivity = new UsersSelectActivity(UsersSelectActivity.TYPE_AUTO_DELETE_EXISTING_CHATS); @@ -197,12 +197,12 @@ public void didSelectDate(boolean notify, int scheduleDate) { int selctedTime = getSelectedTime(); if (selctedTime == 0 && time > 0) { AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); - builder.setTitle(LocaleController.getString("MessageLifetime", R.string.MessageLifetime)); + builder.setTitle(LocaleController.getString(R.string.MessageLifetime)); builder.setMessage(LocaleController.formatString("AutoDeleteConfirmMessage", R.string.AutoDeleteConfirmMessage, LocaleController.formatTTLString(time * 60))); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> { dialog.dismiss(); }); - builder.setPositiveButton(LocaleController.getString("Enable", R.string.Enable), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Enable), (dialog, which) -> { dialog.dismiss(); selectRadioButton(v, true); }); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/AvatarPreviewer.java b/TMessagesProj/src/main/java/org/telegram/ui/AvatarPreviewer.java index 3f32b91423..59e0569ac8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/AvatarPreviewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/AvatarPreviewer.java @@ -129,6 +129,7 @@ protected void onHideFinish() { WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; } + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, layout, layoutParams); windowManager.addView(layout, layoutParams); parentContainer.requestDisallowInterceptTouchEvent(true); visible = true; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/BasePermissionsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/BasePermissionsActivity.java index eac438a92b..ea48a1b9f3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/BasePermissionsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/BasePermissionsActivity.java @@ -53,18 +53,18 @@ protected boolean checkPermissionsResult(int requestCode, String[] permissions, GroupCallActivity.groupCallInstance.enableCamera(); } } else { - showPermissionErrorAlert(R.raw.permission_request_camera, LocaleController.getString("VoipNeedCameraPermission", R.string.VoipNeedCameraPermission)); + showPermissionErrorAlert(R.raw.permission_request_camera, LocaleController.getString(R.string.VoipNeedCameraPermission)); } } else if (requestCode == REQUEST_CODE_EXTERNAL_STORAGE || requestCode == REQUEST_CODE_EXTERNAL_STORAGE_FOR_AVATAR) { if (!granted) { - showPermissionErrorAlert(R.raw.permission_request_folder, requestCode == REQUEST_CODE_EXTERNAL_STORAGE_FOR_AVATAR ? LocaleController.getString("PermissionNoStorageAvatar", R.string.PermissionNoStorageAvatar) : - LocaleController.getString("PermissionStorageWithHint", R.string.PermissionStorageWithHint)); + showPermissionErrorAlert(R.raw.permission_request_folder, requestCode == REQUEST_CODE_EXTERNAL_STORAGE_FOR_AVATAR ? LocaleController.getString(R.string.PermissionNoStorageAvatar) : + LocaleController.getString(R.string.PermissionStorageWithHint)); } else { ImageLoader.getInstance().checkMediaPaths(); } } else if (requestCode == REQUEST_CODE_ATTACH_CONTACT) { if (!granted) { - showPermissionErrorAlert(R.raw.permission_request_contacts, LocaleController.getString("PermissionNoContactsSharing", R.string.PermissionNoContactsSharing)); + showPermissionErrorAlert(R.raw.permission_request_contacts, LocaleController.getString(R.string.PermissionNoContactsSharing)); return false; } else { ContactsController.getInstance(currentAccount).forceImportContacts(); @@ -80,11 +80,11 @@ protected boolean checkPermissionsResult(int requestCode, String[] permissions, } } if (requestCode == REQUEST_CODE_VIDEO_MESSAGE && (!audioGranted || !cameraGranted)) { - showPermissionErrorAlert(R.raw.permission_request_camera, LocaleController.getString("PermissionNoCameraMicVideo", R.string.PermissionNoCameraMicVideo)); + showPermissionErrorAlert(R.raw.permission_request_camera, LocaleController.getString(R.string.PermissionNoCameraMicVideo)); } else if (!audioGranted) { - showPermissionErrorAlert(R.raw.permission_request_microphone, LocaleController.getString("PermissionNoAudioWithHint", R.string.PermissionNoAudioWithHint)); + showPermissionErrorAlert(R.raw.permission_request_microphone, LocaleController.getString(R.string.PermissionNoAudioWithHint)); } else if (!cameraGranted) { - showPermissionErrorAlert(R.raw.permission_request_camera, LocaleController.getString("PermissionNoCameraWithHint", R.string.PermissionNoCameraWithHint)); + showPermissionErrorAlert(R.raw.permission_request_camera, LocaleController.getString(R.string.PermissionNoCameraWithHint)); } else { if (SharedConfig.inappCamera) { CameraController.getInstance().initCamera(null); @@ -93,7 +93,7 @@ protected boolean checkPermissionsResult(int requestCode, String[] permissions, } } else if (requestCode == 18 || requestCode == 19 || requestCode == REQUEST_CODE_OPEN_CAMERA || requestCode == 22) { if (!granted) { - showPermissionErrorAlert(R.raw.permission_request_camera, LocaleController.getString("PermissionNoCameraWithHint", R.string.PermissionNoCameraWithHint)); + showPermissionErrorAlert(R.raw.permission_request_camera, LocaleController.getString(R.string.PermissionNoCameraWithHint)); } } else if (requestCode == REQUEST_CODE_GEOLOCATION) { NotificationCenter.getGlobalInstance().postNotificationName(granted ? NotificationCenter.locationPermissionGranted : NotificationCenter.locationPermissionDenied); @@ -107,7 +107,7 @@ protected AlertDialog createPermissionErrorAlert(@RawRes int animationId, String return new AlertDialog.Builder(this) .setTopAnimation(animationId, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)) .setMessage(AndroidUtilities.replaceTags(message)) - .setPositiveButton(LocaleController.getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialogInterface, i) -> { + .setPositiveButton(LocaleController.getString(R.string.PermissionOpenSettings), (dialogInterface, i) -> { try { Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); @@ -116,7 +116,7 @@ protected AlertDialog createPermissionErrorAlert(@RawRes int animationId, String FileLog.e(e); } }) - .setNegativeButton(LocaleController.getString("ContactsPermissionAlertNotNow", R.string.ContactsPermissionAlertNotNow), null) + .setNegativeButton(LocaleController.getString(R.string.ContactsPermissionAlertNotNow), null) .create(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/BoostsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/BoostsActivity.java index 65cf85310f..453af92a0b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/BoostsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/BoostsActivity.java @@ -66,6 +66,7 @@ import org.telegram.ui.Components.Premium.boosts.cells.statistics.GiveawayCell; import org.telegram.ui.Components.RecyclerListView; import org.telegram.ui.Components.ScrollSlidingTextTabStrip; +import org.telegram.ui.Stars.StarsIntroActivity; import java.util.ArrayList; import java.util.List; @@ -103,8 +104,8 @@ public class BoostsActivity extends GradientHeaderActivity implements Notificati private ChannelBoostsController.CanApplyBoost canApplyBoost; private ScrollSlidingTextTabStrip boostsTabs; - private final ArrayList boosters = new ArrayList<>(); - private final ArrayList gifts = new ArrayList<>(); + private final ArrayList boosters = new ArrayList<>(); + private final ArrayList gifts = new ArrayList<>(); private boolean hasBoostsNext; private int nextBoostRemaining; private boolean hasGiftsNext; @@ -267,18 +268,18 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } } else if (holder.getItemViewType() == OVERVIEW_TYPE) { StatisticActivity.OverviewCell overviewCell = (StatisticActivity.OverviewCell) holder.itemView; - overviewCell.setData(0, Integer.toString(boostsStatus.level), null, LocaleController.getString("BoostsLevel2", R.string.BoostsLevel2)); + overviewCell.setData(0, Integer.toString(boostsStatus.level), null, LocaleController.getString(R.string.BoostsLevel2)); if (boostsStatus.premium_audience != null && boostsStatus.premium_audience.total != 0) { float percent = (((float) boostsStatus.premium_audience.part / (float) boostsStatus.premium_audience.total) * 100f); overviewCell.setData(1, "≈" + (int) boostsStatus.premium_audience.part, String.format(Locale.US, "%.1f", percent) + "%", LocaleController.getString(isChannel() ? R.string.PremiumSubscribers : R.string.PremiumMembers)); } else { overviewCell.setData(1, "~0", "0%", LocaleController.getString(isChannel() ? R.string.PremiumSubscribers : R.string.PremiumMembers)); } - overviewCell.setData(2, String.valueOf(boostsStatus.boosts), null, LocaleController.getString("BoostsExisting", R.string.BoostsExisting)); - overviewCell.setData(3, String.valueOf(Math.max(0, boostsStatus.next_level_boosts - boostsStatus.boosts)), null, LocaleController.getString("BoostsToLevel", R.string.BoostsToLevel)); + overviewCell.setData(2, String.valueOf(boostsStatus.boosts), null, LocaleController.getString(R.string.BoostsExisting)); + overviewCell.setData(3, String.valueOf(Math.max(0, boostsStatus.next_level_boosts - boostsStatus.boosts)), null, LocaleController.getString(R.string.BoostsToLevel)); overviewCell.setPadding(dp(23), overviewCell.getPaddingTop(), dp(23), overviewCell.getPaddingBottom()); } else if (holder.getItemViewType() == USER_VIEW_TYPE) { - TL_stories.TL_boost booster = items.get(position).booster; + TL_stories.Boost booster = items.get(position).booster; TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(booster.user_id); GiftedUserCell userCell = (GiftedUserCell) holder.itemView; String str = booster.multiplier > 1 @@ -308,11 +309,18 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi linkActionView.setLink(items.get(position).title); } else if (holder.getItemViewType() == SHOW_PREPARED_GIVE_AWAY) { ItemInternal item = items.get(position); - TL_stories.TL_prepaidGiveaway prepaidGiveaway = item.prepaidGiveaway; + TL_stories.PrepaidGiveaway prepaidGiveaway = item.prepaidGiveaway; GiveawayCell giveawayCell = (GiveawayCell) holder.itemView; - String name = LocaleController.formatPluralString("BoostingTelegramPremiumCountPlural", prepaidGiveaway.quantity); - String info = LocaleController.formatPluralString("BoostingSubscriptionsCountPlural", prepaidGiveaway.quantity, LocaleController.formatPluralString("PrepaidGiveawayMonths", prepaidGiveaway.months)); - giveawayCell.setData(prepaidGiveaway, name, info, 0, !item.isLast); + if (prepaidGiveaway instanceof TL_stories.TL_prepaidGiveaway) { + String name = LocaleController.formatPluralString("BoostingTelegramPremiumCountPlural", prepaidGiveaway.quantity); + String info = LocaleController.formatPluralString("BoostingSubscriptionsCountPlural", prepaidGiveaway.quantity, LocaleController.formatPluralString("PrepaidGiveawayMonths", ((TL_stories.TL_prepaidGiveaway) prepaidGiveaway).months)); + giveawayCell.setData(prepaidGiveaway, name, info, 0, !item.isLast); + } else if (prepaidGiveaway instanceof TL_stories.TL_prepaidStarsGiveaway) { + TL_stories.TL_prepaidStarsGiveaway starsGiveaway = (TL_stories.TL_prepaidStarsGiveaway) prepaidGiveaway; + String name = LocaleController.formatPluralStringComma("BoostingStarsCountPlural", (int) starsGiveaway.stars); + String info = LocaleController.formatPluralString("AmongWinners", starsGiveaway.quantity); + giveawayCell.setData(prepaidGiveaway, name, info, 0, !item.isLast); + } giveawayCell.setImage(prepaidGiveaway); giveawayCell.setAvatarPadding(5); } else if (holder.getItemViewType() == HEADER_VIEW_TYPE_TABS) { @@ -354,20 +362,20 @@ public void updateRows(boolean animated) { items.clear(); items.add(new ItemInternal(HEADER_PADDING, false)); if (boostsStatus != null) { - items.add(new ItemInternal(HEADER_VIEW_TYPE_OVERVIEW, LocaleController.getString("StatisticOverview", R.string.StatisticOverview))); + items.add(new ItemInternal(HEADER_VIEW_TYPE_OVERVIEW, LocaleController.getString(R.string.StatisticOverview))); items.add(new ItemInternal(OVERVIEW_TYPE, false)); items.add(new ItemInternal(DIVIDER_VIEW_TYPE, false)); if (boostsStatus.prepaid_giveaways.size() > 0) { - items.add(new ItemInternal(HEADER_VIEW_TYPE_SMALL, LocaleController.getString("BoostingPreparedGiveaways", R.string.BoostingPreparedGiveaways))); + items.add(new ItemInternal(HEADER_VIEW_TYPE_SMALL, LocaleController.getString(R.string.BoostingPreparedGiveaways))); for (int i = 0; i < boostsStatus.prepaid_giveaways.size(); i++) { - TL_stories.TL_prepaidGiveaway prepaidGiveaway = boostsStatus.prepaid_giveaways.get(i); + TL_stories.PrepaidGiveaway prepaidGiveaway = boostsStatus.prepaid_giveaways.get(i); items.add(new ItemInternal(SHOW_PREPARED_GIVE_AWAY, prepaidGiveaway, i == boostsStatus.prepaid_giveaways.size() - 1)); } - items.add(new ItemInternal(DIVIDER_TEXT_VIEW_TYPE, LocaleController.getString("BoostingSelectPaidGiveaway", R.string.BoostingSelectPaidGiveaway))); + items.add(new ItemInternal(DIVIDER_TEXT_VIEW_TYPE, LocaleController.getString(R.string.BoostingSelectPaidGiveaway))); } - items.add(new ItemInternal(HEADER_VIEW_TYPE_TABS, LocaleController.getString("Boosters", R.string.Boosters))); + items.add(new ItemInternal(HEADER_VIEW_TYPE_TABS, LocaleController.getString(R.string.Boosters))); if (selectedTab == TAB_BOOSTS) { if (boosters.isEmpty()) { items.add(new ItemInternal(NO_USERS_HINT, false)); @@ -400,12 +408,12 @@ public void updateRows(boolean animated) { } } - items.add(new ItemInternal(HEADER_VIEW_TYPE, LocaleController.getString("LinkForBoosting", R.string.LinkForBoosting))); + items.add(new ItemInternal(HEADER_VIEW_TYPE, LocaleController.getString(R.string.LinkForBoosting))); items.add(new ItemInternal(LINK_VIEW_TYPE, boostsStatus.boost_url)); if (MessagesController.getInstance(currentAccount).giveawayGiftsPurchaseAvailable && ChatObject.hasAdminRights(currentChat)) { items.add(new ItemInternal(DIVIDER_TEXT_VIEW_TYPE, LocaleController.getString(isChannel() ? R.string.BoostingShareThisLink : R.string.BoostingShareThisLinkGroup))); items.add(new ItemInternal(SHOW_BOOST_BY_GIFTS, true)); - items.add(new ItemInternal(DIVIDER_TEXT_VIEW_TYPE, LocaleController.getString(isChannel() ? R.string.BoostingGetMoreBoosts : R.string.BoostingGetMoreBoostsGroup))); + items.add(new ItemInternal(DIVIDER_TEXT_VIEW_TYPE, LocaleController.getString(isChannel() ? R.string.BoostingGetMoreBoosts2 : R.string.BoostingGetMoreBoostsGroup))); } else { items.add(new ItemInternal(DIVIDER_TEXT_VIEW_TYPE, "")); } @@ -510,7 +518,7 @@ private void loadOnlyBoosts(CountDownLatch latch, Runnable after) { lastBoostsOffset = list.next_offset; boosters.addAll(list.boosts); int shownBoosts = 0; - for (TL_stories.TL_boost booster : boosters) { + for (TL_stories.Boost booster : boosters) { shownBoosts += booster.multiplier > 0 ? booster.multiplier : 1; } nextBoostRemaining = Math.max(0, list.count - shownBoosts); @@ -541,7 +549,7 @@ private void loadOnlyGifts(CountDownLatch latch, Runnable after) { lastGiftsOffset = list.next_offset; gifts.addAll(list.boosts); int shownGifts = 0; - for (TL_stories.TL_boost booster : gifts) { + for (TL_stories.Boost booster : gifts) { shownGifts += booster.multiplier > 0 ? booster.multiplier : 1; } nextGiftsRemaining = Math.max(0, list.count - shownGifts); @@ -609,8 +617,8 @@ public void onFragmentDestroy() { private class ItemInternal extends AdapterWithDiffUtils.Item { String title; - TL_stories.TL_boost booster; - TL_stories.TL_prepaidGiveaway prepaidGiveaway; + TL_stories.Boost booster; + TL_stories.PrepaidGiveaway prepaidGiveaway; boolean isLast; int tab; @@ -619,14 +627,14 @@ public ItemInternal(int viewType, String title) { this.title = title; } - public ItemInternal(int viewType, TL_stories.TL_boost booster, boolean isLast, int tab) { + public ItemInternal(int viewType, TL_stories.Boost booster, boolean isLast, int tab) { super(viewType, true); this.booster = booster; this.isLast = isLast; this.tab = tab; } - public ItemInternal(int viewType, TL_stories.TL_prepaidGiveaway prepaidGiveaway, boolean isLast) { + public ItemInternal(int viewType, TL_stories.PrepaidGiveaway prepaidGiveaway, boolean isLast) { super(viewType, true); this.prepaidGiveaway = prepaidGiveaway; this.isLast = isLast; @@ -804,8 +812,10 @@ public View createView(Context context) { listView.setOnItemClickListener((view, position) -> { if (view instanceof GiftedUserCell) { GiftedUserCell cell = (GiftedUserCell) view; - TL_stories.TL_boost boost = cell.getBoost(); - if (((boost.gift || boost.giveaway) && boost.user_id >= 0) || boost.unclaimed) { + TL_stories.Boost boost = cell.getBoost(); + if (boost.giveaway && boost.stars > 0) { + StarsIntroActivity.showBoostsSheet(context, currentAccount, dialogId, boost, getResourceProvider()); + } else if (((boost.gift || boost.giveaway) && boost.user_id >= 0) || boost.unclaimed) { TLRPC.TL_payments_checkedGiftCode giftCode = new TLRPC.TL_payments_checkedGiftCode(); giftCode.giveaway_msg_id = boost.giveaway_msg_id; giftCode.to_id = boost.user_id; @@ -823,7 +833,7 @@ public View createView(Context context) { } else if (boost.giveaway && boost.user_id == NO_USER_ID) { final Bulletin.LottieLayout layout = new Bulletin.LottieLayout(getParentActivity(), getResourceProvider()); layout.setAnimation(R.raw.chats_infotip, 36, 36); - layout.textView.setText(LocaleController.getString("BoostingRecipientWillBeSelected", R.string.BoostingRecipientWillBeSelected)); + layout.textView.setText(LocaleController.getString(R.string.BoostingRecipientWillBeSelected)); layout.textView.setSingleLine(false); layout.textView.setMaxLines(2); Bulletin.make(this, layout, Bulletin.DURATION_LONG).show(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/BubbleActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/BubbleActivity.java index dcb48aca7f..5536874137 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/BubbleActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/BubbleActivity.java @@ -324,6 +324,7 @@ private void onPasscodeResume() { @Override public void onConfigurationChanged(android.content.res.Configuration newConfig) { AndroidUtilities.checkDisplaySize(this, newConfig); + AndroidUtilities.setPreferredMaxRefreshRate(getWindow()); super.onConfigurationChanged(newConfig); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/AwayMessagesActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/AwayMessagesActivity.java index 8f9aa2f7bc..9affeed8ea 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/AwayMessagesActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/AwayMessagesActivity.java @@ -66,7 +66,7 @@ public void onItemClick(int id) { Drawable checkmark = context.getResources().getDrawable(R.drawable.ic_ab_done).mutate(); checkmark.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultIcon), PorterDuff.Mode.MULTIPLY)); doneButtonDrawable = new CrossfadeDrawable(checkmark, new CircularProgressDrawable(Theme.getColor(Theme.key_actionBarDefaultIcon))); - doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); checkDone(false); FrameLayout contentView = new FrameLayout(context); @@ -250,8 +250,8 @@ public boolean onBackPressed() { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); builder.setTitle(LocaleController.getString(R.string.UnsavedChanges)); builder.setMessage(LocaleController.getString(R.string.BusinessAwayUnsavedChanges)); - builder.setPositiveButton(LocaleController.getString("ApplyTheme", R.string.ApplyTheme), (dialogInterface, i) -> processDone()); - builder.setNegativeButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialog, which) -> finishFragment()); + builder.setPositiveButton(LocaleController.getString(R.string.ApplyTheme), (dialogInterface, i) -> processDone()); + builder.setNegativeButton(LocaleController.getString(R.string.PassportDiscard), (dialog, which) -> finishFragment()); showDialog(builder.create()); return false; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessIntroActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessIntroActivity.java index c895b06c45..4924c9fde2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessIntroActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessIntroActivity.java @@ -108,7 +108,7 @@ protected CharSequence getTitle() { public View createView(Context context) { AndroidUtilities.requestAdjustResize(getParentActivity(), classGuid); - greetingsView = new ChatGreetingsView(context, getUserConfig().getCurrentUser(), 1, currentAccount, sticker, getResourceProvider()) { + greetingsView = new ChatGreetingsView(context, getUserConfig().getCurrentUser(), currentAccount, sticker, getResourceProvider()) { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); @@ -231,7 +231,7 @@ public void onItemClick(int id) { Drawable checkmark = context.getResources().getDrawable(R.drawable.ic_ab_done).mutate(); checkmark.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultIcon), PorterDuff.Mode.MULTIPLY)); doneButtonDrawable = new CrossfadeDrawable(checkmark, new CircularProgressDrawable(Theme.getColor(Theme.key_actionBarDefaultIcon))); - doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); checkDone(false, true); listView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { @@ -488,8 +488,8 @@ public boolean onBackPressed() { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); builder.setTitle(LocaleController.getString(R.string.UnsavedChanges)); builder.setMessage(LocaleController.getString(R.string.BusinessIntroUnsavedChanges)); - builder.setPositiveButton(LocaleController.getString("ApplyTheme", R.string.ApplyTheme), (dialogInterface, i) -> processDone()); - builder.setNegativeButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialog, which) -> finishFragment()); + builder.setPositiveButton(LocaleController.getString(R.string.ApplyTheme), (dialogInterface, i) -> processDone()); + builder.setNegativeButton(LocaleController.getString(R.string.PassportDiscard), (dialog, which) -> finishFragment()); showDialog(builder.create()); return false; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessLinksActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessLinksActivity.java index 11626edf13..34bec4b989 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessLinksActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/BusinessLinksActivity.java @@ -195,7 +195,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { BusinessLinksController.getInstance(currentAccount).editLinkTitle(link.link, text); dialogInterface.dismiss(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialogInterface, i) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialogInterface, i) -> { dialogInterface.dismiss(); }); if (adaptive) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatAttachAlertQuickRepliesLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatAttachAlertQuickRepliesLayout.java index 3c4d0bccc2..dace795aae 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatAttachAlertQuickRepliesLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatAttachAlertQuickRepliesLayout.java @@ -173,7 +173,7 @@ public void setStatus(CharSequence status) { statusTextView.setText(currentStatus); } else if (currentUser != null) { if (TextUtils.isEmpty(currentUser.phone)) { - statusTextView.setText(LocaleController.getString("NumberUnknown", R.string.NumberUnknown)); + statusTextView.setText(LocaleController.getString(R.string.NumberUnknown)); } else { if (formattedPhoneNumberUser != currentUser && formattedPhoneNumber != null) { statusTextView.setText(formattedPhoneNumber); @@ -300,7 +300,7 @@ public ChatAttachAlertQuickRepliesLayout(ChatAttachAlert alert, Context context, public void onTextChange(String text) { if (text.length() != 0) { if (emptyView != null) { - emptyView.setText(LocaleController.getString("NoResult", R.string.NoResult)); + emptyView.setText(LocaleController.getString(R.string.NoResult)); } } else { if (listView.getAdapter() != listAdapter) { @@ -442,7 +442,7 @@ public int getSelectedItemsCount() { } private void showErrorBox(String error) { - new AlertDialog.Builder(getContext(), resourcesProvider).setTitle(LocaleController.getString("AppName", R.string.AppName)).setMessage(error).setPositiveButton(LocaleController.getString("OK", R.string.OK), null).show(); + new AlertDialog.Builder(getContext(), resourcesProvider).setTitle(LocaleController.getString(R.string.AppName)).setMessage(error).setPositiveButton(LocaleController.getString(R.string.OK), null).show(); } @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatbotsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatbotsActivity.java index b7bb7881db..7ebb06f1f6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatbotsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/ChatbotsActivity.java @@ -104,7 +104,7 @@ public void onItemClick(int id) { Drawable checkmark = context.getResources().getDrawable(R.drawable.ic_ab_done).mutate(); checkmark.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultIcon), PorterDuff.Mode.MULTIPLY)); doneButtonDrawable = new CrossfadeDrawable(checkmark, new CircularProgressDrawable(Theme.getColor(Theme.key_actionBarDefaultIcon))); - doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); checkDone(false); FrameLayout contentView = new FrameLayout(context); @@ -482,8 +482,8 @@ public boolean onBackPressed() { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); builder.setTitle(LocaleController.getString(R.string.UnsavedChanges)); builder.setMessage(LocaleController.getString(R.string.BusinessBotUnsavedChanges)); - builder.setPositiveButton(LocaleController.getString("ApplyTheme", R.string.ApplyTheme), (dialogInterface, i) -> processDone()); - builder.setNegativeButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialog, which) -> finishFragment()); + builder.setPositiveButton(LocaleController.getString(R.string.ApplyTheme), (dialogInterface, i) -> processDone()); + builder.setNegativeButton(LocaleController.getString(R.string.PassportDiscard), (dialog, which) -> finishFragment()); showDialog(builder.create()); return false; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/GreetMessagesActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/GreetMessagesActivity.java index 2002463aa2..2a067de949 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/GreetMessagesActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/GreetMessagesActivity.java @@ -77,7 +77,7 @@ public void onItemClick(int id) { Drawable checkmark = context.getResources().getDrawable(R.drawable.ic_ab_done).mutate(); checkmark.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultIcon), PorterDuff.Mode.MULTIPLY)); doneButtonDrawable = new CrossfadeDrawable(checkmark, new CircularProgressDrawable(Theme.getColor(Theme.key_actionBarDefaultIcon))); - doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); checkDone(false); FrameLayout contentView = new FrameLayout(context); @@ -222,8 +222,8 @@ public boolean onBackPressed() { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); builder.setTitle(LocaleController.getString(R.string.UnsavedChanges)); builder.setMessage(LocaleController.getString(R.string.BusinessGreetUnsavedChanges)); - builder.setPositiveButton(LocaleController.getString("ApplyTheme", R.string.ApplyTheme), (dialogInterface, i) -> processDone()); - builder.setNegativeButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialog, which) -> finishFragment()); + builder.setPositiveButton(LocaleController.getString(R.string.ApplyTheme), (dialogInterface, i) -> processDone()); + builder.setNegativeButton(LocaleController.getString(R.string.PassportDiscard), (dialog, which) -> finishFragment()); showDialog(builder.create()); return false; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/LocationActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/LocationActivity.java index f4781a2aa8..aeb57f5f8a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/LocationActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/LocationActivity.java @@ -112,7 +112,7 @@ public void onItemClick(int id) { Drawable checkmark = context.getResources().getDrawable(R.drawable.ic_ab_done).mutate(); checkmark.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultIcon), PorterDuff.Mode.MULTIPLY)); doneButtonDrawable = new CrossfadeDrawable(checkmark, new CircularProgressDrawable(Theme.getColor(Theme.key_actionBarDefaultIcon))); - doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); checkDone(false); FrameLayout contentView = new FrameLayout(context); @@ -448,8 +448,8 @@ public boolean onBackPressed() { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); builder.setTitle(LocaleController.getString(R.string.UnsavedChanges)); builder.setMessage(LocaleController.getString(R.string.BusinessLocationUnsavedChanges)); - builder.setPositiveButton(LocaleController.getString("ApplyTheme", R.string.ApplyTheme), (dialogInterface, i) -> processDone()); - builder.setNegativeButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialog, which) -> finishFragment()); + builder.setPositiveButton(LocaleController.getString(R.string.ApplyTheme), (dialogInterface, i) -> processDone()); + builder.setNegativeButton(LocaleController.getString(R.string.PassportDiscard), (dialog, which) -> finishFragment()); showDialog(builder.create()); return false; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/OpeningHoursActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/OpeningHoursActivity.java index 1a2245e935..86101089f5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/OpeningHoursActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/OpeningHoursActivity.java @@ -85,7 +85,7 @@ public void onItemClick(int id) { Drawable checkmark = context.getResources().getDrawable(R.drawable.ic_ab_done).mutate(); checkmark.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultIcon), PorterDuff.Mode.MULTIPLY)); doneButtonDrawable = new CrossfadeDrawable(checkmark, new CircularProgressDrawable(Theme.getColor(Theme.key_actionBarDefaultIcon))); - doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); checkDone(false); FrameLayout contentView = new FrameLayout(context); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesActivity.java index 56fcb35138..3185abe4d7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Business/QuickRepliesActivity.java @@ -465,7 +465,7 @@ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { } dialogInterface.dismiss(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialogInterface, i) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialogInterface, i) -> { dialogInterface.dismiss(); }); if (adaptive) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/CacheChatsExceptionsFragment.java b/TMessagesProj/src/main/java/org/telegram/ui/CacheChatsExceptionsFragment.java index f5d2b745a7..5c523f986a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/CacheChatsExceptionsFragment.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/CacheChatsExceptionsFragment.java @@ -89,7 +89,7 @@ public void onItemClick(int id) { } args.putBoolean("allowGlobalSearch", false); DialogsActivity activity = new DialogsActivity(args); - activity.setDelegate((fragment, dids, message, param, topicsFragment) -> { + activity.setDelegate((fragment, dids, message, param, notify, scheduleDate, topicsFragment) -> { activity.finishFragment(); CacheByChatsController.KeepMediaException newException = null; for (int i = 0; i < dids.size(); i++) { @@ -146,9 +146,9 @@ public void onItemClick(int id) { }); } else if (items.get(position).viewType == VIEW_TYPE_DELETE_ALL) { AlertDialog alertDialog = AlertsCreator.createSimpleAlert(getContext(), - LocaleController.getString("NotificationsDeleteAllExceptionTitle", R.string.NotificationsDeleteAllExceptionTitle), - LocaleController.getString("NotificationsDeleteAllExceptionAlert", R.string.NotificationsDeleteAllExceptionAlert), - LocaleController.getString("Delete", R.string.Delete), + LocaleController.getString(R.string.NotificationsDeleteAllExceptionTitle), + LocaleController.getString(R.string.NotificationsDeleteAllExceptionAlert), + LocaleController.getString(R.string.Delete), () -> { exceptionsDialogs.clear(); getMessagesController().getCacheByChatsController().saveKeepMediaExceptions(currentType, exceptionsDialogs); @@ -244,7 +244,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int break; case VIEW_TYPE_ADD_EXCEPTION: TextCell textCell = new TextCell(parent.getContext()); - textCell.setTextAndIcon(LocaleController.getString("NotificationsAddAnException", R.string.NotificationsAddAnException), R.drawable.msg_contact_add, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.NotificationsAddAnException), R.drawable.msg_contact_add, true); textCell.setColors(Theme.key_windowBackgroundWhiteBlueIcon, Theme.key_windowBackgroundWhiteBlueButton); view = textCell; view.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); @@ -254,7 +254,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int break; case VIEW_TYPE_DELETE_ALL: textCell = new TextCell(parent.getContext()); - textCell.setText(LocaleController.getString("NotificationsDeleteAllException", R.string.NotificationsDeleteAllException), false); + textCell.setText(LocaleController.getString(R.string.NotificationsDeleteAllException), false); textCell.setColors(-1, Theme.key_text_RedRegular); view = textCell; view.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); @@ -274,7 +274,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi if (object instanceof TLRPC.User) { TLRPC.User user = (TLRPC.User) object; if (user.self) { - title = LocaleController.getString("SavedMessages", R.string.SavedMessages); + title = LocaleController.getString(R.string.SavedMessages); } else { title = ContactsController.formatName(user.first_name, user.last_name); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/CacheControlActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/CacheControlActivity.java index 072a311c61..45b786e72b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/CacheControlActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/CacheControlActivity.java @@ -245,12 +245,20 @@ public class CacheControlActivity extends BaseFragment implements NotificationCe private boolean loadingDialogs; private NestedSizeNotifierLayout nestedSizeNotifierLayout; + private long targetDialogId = -1L; + + public CacheControlActivity() {} + + public CacheControlActivity(Bundle args) { + targetDialogId = args.getLong("dialog_id", -1L); + } + private ActionBarMenuSubItem clearDatabaseItem; private ActionBarMenuSubItem resetDatabaseItem; private void updateDatabaseItemSize() { if (clearDatabaseItem != null) { SpannableStringBuilder string = new SpannableStringBuilder(); - string.append(LocaleController.getString("ClearLocalDatabase", R.string.ClearLocalDatabase)); + string.append(LocaleController.getString(R.string.ClearLocalDatabase)); // string.append("\t"); // SpannableString databaseSizeString = new SpannableString(AndroidUtilities.formatFileSize(databaseSize)); // databaseSizeString.setSpan(new ForegroundColorSpan(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText)), 0, databaseSizeString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); @@ -533,6 +541,14 @@ private void loadDialogEntities() { fillDialogsEntitiesRecursive(FileLoader.checkDirectory(FileLoader.MEDIA_DIR_DOCUMENT), TYPE_DOCUMENTS, dilogsFilesEntities, cacheModel); fillDialogsEntitiesRecursive(FileLoader.checkDirectory(FileLoader.MEDIA_DIR_FILES), TYPE_DOCUMENTS, dilogsFilesEntities, cacheModel); + // ----- Nagram Hook start ----- + if (targetDialogId != -1) { + DialogFileEntities entities = dilogsFilesEntities.get(targetDialogId, null); + if (entities != null) AndroidUtilities.runOnUIThread(() -> showClearCacheDialog(entities), 100); + targetDialogId = -1; + } + // ----- Nagram Hook end ----- + ArrayList entities = new ArrayList<>(); ArrayList unknownUsers = new ArrayList<>(); ArrayList unknownChats = new ArrayList<>(); @@ -821,22 +837,22 @@ private void updateRows(boolean animated) { if (hasCache) { sectionsEndRow = itemInners.size(); itemInners.add(new ItemInner(VIEW_TYPE_CLEAR_CACHE_BUTTON, null, null)); - itemInners.add(ItemInner.asInfo(LocaleController.getString("StorageUsageInfo", R.string.StorageUsageInfo))); + itemInners.add(ItemInner.asInfo(LocaleController.getString(R.string.StorageUsageInfo))); } else { sectionsEndRow = -1; } - itemInners.add(new ItemInner(VIEW_TYPE_HEADER, LocaleController.getString("AutoDeleteCachedMedia", R.string.AutoDeleteCachedMedia), null)); + itemInners.add(new ItemInner(VIEW_TYPE_HEADER, LocaleController.getString(R.string.AutoDeleteCachedMedia), null)); itemInners.add(new ItemInner(VIEW_TYPE_KEEP_MEDIA_CELL, KEEP_MEDIA_TYPE_USER)); itemInners.add(new ItemInner(VIEW_TYPE_KEEP_MEDIA_CELL, KEEP_MEDIA_TYPE_GROUP)); itemInners.add(new ItemInner(VIEW_TYPE_KEEP_MEDIA_CELL, KEEP_MEDIA_TYPE_CHANNEL)); itemInners.add(new ItemInner(VIEW_TYPE_KEEP_MEDIA_CELL, KEEP_MEDIA_TYPE_STORIES)); - itemInners.add(ItemInner.asInfo(LocaleController.getString("KeepMediaInfoPart", R.string.KeepMediaInfoPart))); + itemInners.add(ItemInner.asInfo(LocaleController.getString(R.string.KeepMediaInfoPart))); if (totalDeviceSize > 0) { - itemInners.add(new ItemInner(VIEW_TYPE_HEADER, LocaleController.getString("MaxCacheSize", R.string.MaxCacheSize), null)); + itemInners.add(new ItemInner(VIEW_TYPE_HEADER, LocaleController.getString(R.string.MaxCacheSize), null)); itemInners.add(new ItemInner(VIEW_TYPE_MAX_CACHE_SIZE)); - itemInners.add(ItemInner.asInfo(LocaleController.getString("MaxCacheSizeInfo", R.string.MaxCacheSizeInfo))); + itemInners.add(ItemInner.asInfo(LocaleController.getString(R.string.MaxCacheSizeInfo))); } if (hasCache && cacheModel != null && !cacheModel.isEmpty()) { @@ -1282,7 +1298,7 @@ public View createView(Context context) { actionBar.setItemsBackgroundColor(Theme.getColor(Theme.key_listSelector), false); actionBar.setBackButtonDrawable(new BackDrawable(false)); actionBar.setAllowOverlayTitle(false); - actionBar.setTitle(LocaleController.getString("StorageUsage", R.string.StorageUsage)); + actionBar.setTitle(LocaleController.getString(R.string.StorageUsage)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { @@ -1332,7 +1348,7 @@ public void onItemClick(int id) { actionModeClearButton.setBackground(Theme.AdaptiveRipple.filledRectByKey(Theme.key_featuredStickers_addButton, 6)); actionModeClearButton.setTypeface(AndroidUtilities.bold()); actionModeClearButton.setGravity(Gravity.CENTER); - actionModeClearButton.setText(LocaleController.getString("CacheClear", R.string.CacheClear)); + actionModeClearButton.setText(LocaleController.getString(R.string.CacheClear)); actionModeClearButton.setOnClickListener(e -> clearSelectedFiles()); if (LocaleController.isRTL) { actionModeLayout.addView(actionModeClearButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 28, Gravity.LEFT | Gravity.CENTER_VERTICAL, 0, 0, 0, 0)); @@ -1341,7 +1357,7 @@ public void onItemClick(int id) { } ActionBarMenuItem otherItem = actionBar.createMenu().addItem(other_id, R.drawable.ic_ab_other); - clearDatabaseItem = otherItem.addSubItem(clear_database_id, R.drawable.msg_delete, LocaleController.getString("ClearLocalDatabase", R.string.ClearLocalDatabase)); + clearDatabaseItem = otherItem.addSubItem(clear_database_id, R.drawable.msg_delete, LocaleController.getString(R.string.ClearLocalDatabase)); clearDatabaseItem.setIconColor(Theme.getColor(Theme.key_text_RedRegular)); clearDatabaseItem.setTextColor(Theme.getColor(Theme.key_text_RedBold)); clearDatabaseItem.setSelectorColor(Theme.multAlpha(Theme.getColor(Theme.key_text_RedRegular), .12f)); @@ -1472,9 +1488,9 @@ private void clearSelectedFiles() { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); - builder.setTitle(LocaleController.getString("ClearCache", R.string.ClearCache)); - builder.setMessage(LocaleController.getString("ClearCacheForChats", R.string.ClearCacheForChats)); - builder.setPositiveButton(LocaleController.getString("Clear", R.string.Clear), (di, which) -> { + builder.setTitle(LocaleController.getString(R.string.ClearCache)); + builder.setMessage(LocaleController.getString(R.string.ClearCacheForChats)); + builder.setPositiveButton(LocaleController.getString(R.string.Clear), (di, which) -> { DialogFileEntities mergedEntities = cacheModel.removeSelectedFiles(); if (mergedEntities.totalSize > 0) { cleanupDialogFiles(mergedEntities, null, null); @@ -1487,7 +1503,7 @@ private void clearSelectedFiles() { updateRows(); updateChart(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -1677,14 +1693,14 @@ private boolean pathContains(String path, int mediaDirType) { private void clearDatabase(boolean fullReset) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("LocalDatabaseClearTextTitle", R.string.LocalDatabaseClearTextTitle)); + builder.setTitle(LocaleController.getString(R.string.LocalDatabaseClearTextTitle)); SpannableStringBuilder message = new SpannableStringBuilder(); - message.append(LocaleController.getString("LocalDatabaseClearText", R.string.LocalDatabaseClearText)); + message.append(LocaleController.getString(R.string.LocalDatabaseClearText)); message.append("\n\n"); message.append(AndroidUtilities.replaceTags(LocaleController.formatString("LocalDatabaseClearText2", R.string.LocalDatabaseClearText2, AndroidUtilities.formatFileSize(databaseSize)))); builder.setMessage(message); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("CacheClear", R.string.CacheClear), (dialogInterface, i) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.CacheClear), (dialogInterface, i) -> { if (getParentActivity() == null) { return; } @@ -1762,7 +1778,7 @@ public CacheChartHeader(Context context) { title.setAnimationProperties(.35f, 0, 350, CubicBezierInterpolator.EASE_OUT_QUINT); title.setTypeface(AndroidUtilities.bold()); title.setTextSize(AndroidUtilities.dp(20)); - title.setText(LocaleController.getString("StorageUsage", R.string.StorageUsage)); + title.setText(LocaleController.getString(R.string.StorageUsage)); title.setGravity(Gravity.CENTER); title.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); addView(title, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 26, Gravity.TOP | Gravity.CENTER_HORIZONTAL)); @@ -1773,13 +1789,13 @@ public CacheChartHeader(Context context) { subtitle[i].setGravity(Gravity.CENTER); subtitle[i].setPadding(AndroidUtilities.dp(24), 0, AndroidUtilities.dp(24), 0); if (i == 0) { - subtitle[i].setText(LocaleController.getString("StorageUsageCalculating", R.string.StorageUsageCalculating)); + subtitle[i].setText(LocaleController.getString(R.string.StorageUsageCalculating)); } else if (i == 1) { subtitle[i].setAlpha(0); - subtitle[i].setText(LocaleController.getString("StorageUsageTelegram", R.string.StorageUsageTelegram)); + subtitle[i].setText(LocaleController.getString(R.string.StorageUsageTelegram)); subtitle[i].setVisibility(View.INVISIBLE); } else if (i == 2) { - subtitle[i].setText(LocaleController.getString("StorageCleared2", R.string.StorageCleared2)); + subtitle[i].setText(LocaleController.getString(R.string.StorageCleared2)); subtitle[i].setAlpha(0); subtitle[i].setVisibility(View.INVISIBLE); } @@ -1814,8 +1830,8 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { public void setData(boolean hasCache, float percent, float usedPercent) { title.setText( hasCache ? - LocaleController.getString("StorageUsage", R.string.StorageUsage) : - LocaleController.getString("StorageCleared", R.string.StorageCleared) + LocaleController.getString(R.string.StorageUsage) : + LocaleController.getString(R.string.StorageCleared) ); if (hasCache) { if (percent < 0.01f) { @@ -1995,14 +2011,14 @@ public ClearingCacheView(Context context) { title.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); title.setTypeface(AndroidUtilities.bold()); - title.setText(LocaleController.getString("ClearingCache", R.string.ClearingCache)); + title.setText(LocaleController.getString(R.string.ClearingCache)); addView(title, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 0, 16 + 150 + 16 + 28 + 16 + 5 + 30, 0, 0)); subtitle = new TextView(context); subtitle.setGravity(Gravity.CENTER_HORIZONTAL); subtitle.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); subtitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - subtitle.setText(LocaleController.getString("ClearingCacheDescription", R.string.ClearingCacheDescription)); + subtitle.setText(LocaleController.getString(R.string.ClearingCacheDescription)); addView(subtitle, LayoutHelper.createFrame(240, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 0, 16 + 150 + 16 + 28 + 16 + 5 + 30 + 18 + 10, 0, 0)); setProgress(0); @@ -2061,10 +2077,10 @@ public ClearCacheButtonInternal(Context context) { ((MarginLayoutParams) button.getLayoutParams()).topMargin = AndroidUtilities.dp(5); button.setOnClickListener(e -> { AlertDialog dialog = new AlertDialog.Builder(getContext()) - .setTitle(LocaleController.getString("ClearCache", R.string.ClearCache) + (TextUtils.isEmpty(valueTextView.getText()) ? "" : " (" + valueTextView.getText() + ")")) - .setMessage(LocaleController.getString("StorageUsageInfo", R.string.StorageUsageInfo)) + .setTitle(LocaleController.getString(R.string.ClearCache) + (TextUtils.isEmpty(valueTextView.getText()) ? "" : " (" + valueTextView.getText() + ")")) + .setMessage(LocaleController.getString(R.string.StorageUsageInfo)) .setPositiveButton(textView.getText(), (di, v) -> doClearCache()) - .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null) + .setNegativeButton(LocaleController.getString(R.string.Cancel), null) .create(); showDialog(dialog); View clearButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE); @@ -2211,7 +2227,7 @@ public boolean onInterceptTouchEvent(MotionEvent ev) { if (LocaleController.isRTL) { rtlTextView = new TextView(context); - rtlTextView.setText(LocaleController.getString("ClearCache", R.string.ClearCache)); + rtlTextView.setText(LocaleController.getString(R.string.ClearCache)); rtlTextView.setGravity(Gravity.CENTER); rtlTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); rtlTextView.setTypeface(AndroidUtilities.bold()); @@ -2223,7 +2239,7 @@ public boolean onInterceptTouchEvent(MotionEvent ev) { textView.setAnimationProperties(.25f, 0, 300, CubicBezierInterpolator.EASE_OUT_QUINT); textView.setCallback(button); textView.setTextSize(AndroidUtilities.dp(14)); - textView.setText(LocaleController.getString("ClearCache", R.string.ClearCache)); + textView.setText(LocaleController.getString(R.string.ClearCache)); textView.setGravity(Gravity.RIGHT); textView.setTypeface(AndroidUtilities.bold()); textView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); @@ -2253,8 +2269,8 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { public void setSize(boolean allSelected, long size) { textView.setText(( allSelected ? - LocaleController.getString("ClearCache", R.string.ClearCache) : - LocaleController.getString("ClearSelectedCache", R.string.ClearSelectedCache) + LocaleController.getString(R.string.ClearCache) : + LocaleController.getString(R.string.ClearSelectedCache) )); valueTextView.setText(size <= 0 ? "" : AndroidUtilities.formatFileSize(size)); setDisabled(size <= 0); @@ -2447,7 +2463,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType } else { index = keepMedia + 1; } - slideChooseView.setOptions(index, LocaleController.formatPluralString("Days", 3), LocaleController.formatPluralString("Weeks", 1), LocaleController.formatPluralString("Months", 1), LocaleController.getString("KeepMediaForever", R.string.KeepMediaForever)); + slideChooseView.setOptions(index, LocaleController.formatPluralString("Days", 3), LocaleController.formatPluralString("Weeks", 1), LocaleController.formatPluralString("Months", 1), LocaleController.getString(R.string.KeepMediaForever)); break; case VIEW_TYPE_CHAT: UserCell userCell = new UserCell(getContext(), getResourceProvider()); @@ -2625,7 +2641,7 @@ public void clearSelection() { if (options.get(i) == 1) { values[i] = String.format("300 MB"); } else if (options.get(i) == Integer.MAX_VALUE) { - values[i] = LocaleController.getString("NoLimit", R.string.NoLimit); + values[i] = LocaleController.getString(R.string.NoLimit); } else { values[i] = String.format("%d GB", options.get(i)); } @@ -2693,33 +2709,33 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } String value = CacheByChatsController.getKeepMediaString(cacheByChatsController.getKeepMedia(keepMediaType)); if (itemInners.get(position).keepMediaType == KEEP_MEDIA_TYPE_USER) { - textCell2.setTextAndValueAndColorfulIcon(LocaleController.getString("PrivateChats", R.string.PrivateChats), value, true, R.drawable.msg_filled_menu_users, getThemedColor(Theme.key_statisticChartLine_lightblue), true); + textCell2.setTextAndValueAndColorfulIcon(LocaleController.getString(R.string.PrivateChats), value, true, R.drawable.msg_filled_menu_users, getThemedColor(Theme.key_statisticChartLine_lightblue), true); } else if (itemInners.get(position).keepMediaType == KEEP_MEDIA_TYPE_GROUP) { - textCell2.setTextAndValueAndColorfulIcon(LocaleController.getString("GroupChats", R.string.GroupChats), value, true, R.drawable.msg_filled_menu_groups, getThemedColor(Theme.key_statisticChartLine_green), true); + textCell2.setTextAndValueAndColorfulIcon(LocaleController.getString(R.string.GroupChats), value, true, R.drawable.msg_filled_menu_groups, getThemedColor(Theme.key_statisticChartLine_green), true); } else if (itemInners.get(position).keepMediaType == KEEP_MEDIA_TYPE_CHANNEL) { - textCell2.setTextAndValueAndColorfulIcon(LocaleController.getString("CacheChannels", R.string.CacheChannels), value, true, R.drawable.msg_filled_menu_channels, getThemedColor(Theme.key_statisticChartLine_golden), true); + textCell2.setTextAndValueAndColorfulIcon(LocaleController.getString(R.string.CacheChannels), value, true, R.drawable.msg_filled_menu_channels, getThemedColor(Theme.key_statisticChartLine_golden), true); } else if (itemInners.get(position).keepMediaType == KEEP_MEDIA_TYPE_STORIES) { - textCell2.setTextAndValueAndColorfulIcon(LocaleController.getString("CacheStories", R.string.CacheStories), value, false, R.drawable.msg_filled_stories, getThemedColor(Theme.key_statisticChartLine_red), false); + textCell2.setTextAndValueAndColorfulIcon(LocaleController.getString(R.string.CacheStories), value, false, R.drawable.msg_filled_stories, getThemedColor(Theme.key_statisticChartLine_red), false); } textCell2.setSubtitle(subtitle); break; case VIEW_TYPE_TEXT_SETTINGS: TextSettingsCell textCell = (TextSettingsCell) holder.itemView; // if (position == databaseRow) { -// textCell.setTextAndValue(LocaleController.getString("ClearLocalDatabase", R.string.ClearLocalDatabase), AndroidUtilities.formatFileSize(databaseSize), updateDatabaseSize, false); +// textCell.setTextAndValue(LocaleController.getString(R.string.ClearLocalDatabase), AndroidUtilities.formatFileSize(databaseSize), updateDatabaseSize, false); // updateDatabaseSize = false; // } else if (position == migrateOldFolderRow) { - textCell.setTextAndValue(LocaleController.getString("MigrateOldFolder", R.string.MigrateOldFolder), null, false); + textCell.setTextAndValue(LocaleController.getString(R.string.MigrateOldFolder), null, false); } break; case VIEW_TYPE_INFO: TextInfoPrivacyCell privacyCell = (TextInfoPrivacyCell) holder.itemView; // if (position == databaseInfoRow) { -// privacyCell.setText(LocaleController.getString("LocalDatabaseInfo", R.string.LocalDatabaseInfo)); +// privacyCell.setText(LocaleController.getString(R.string.LocalDatabaseInfo)); // privacyCell.setBackgroundDrawable(Theme.getThemedDrawable(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); // } else if (position == keepMediaInfoRow) { -// privacyCell.setText(AndroidUtilities.replaceTags(LocaleController.getString("KeepMediaInfo", R.string.KeepMediaInfo))); +// privacyCell.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.KeepMediaInfo))); // privacyCell.setBackgroundDrawable(Theme.getThemedDrawable(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); // } else { privacyCell.setText(AndroidUtilities.replaceTags(item.text)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/CachedMediaLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/CachedMediaLayout.java index 61ff78d3e1..2935158b27 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/CachedMediaLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/CachedMediaLayout.java @@ -102,12 +102,12 @@ public CachedMediaLayout(@NonNull Context context, BaseFragment parentFragment) this.parentFragment = parentFragment; int CacheTabChats; - allPages[PAGE_TYPE_CHATS] = new Page(LocaleController.getString("FilterChats", R.string.FilterChats), PAGE_TYPE_CHATS, new DialogsAdapter()); - //allPages[PAGE_TYPE_STORIES] = new Page(LocaleController.getString("FilterStories", R.string.FilterStories), PAGE_TYPE_STORIES, new MediaAdapter(true)); - allPages[PAGE_TYPE_MEDIA] = new Page(LocaleController.getString("MediaTab", R.string.MediaTab), PAGE_TYPE_MEDIA, new MediaAdapter(false)); - allPages[PAGE_TYPE_DOCUMENTS] = new Page(LocaleController.getString("SharedFilesTab2", R.string.SharedFilesTab2), PAGE_TYPE_DOCUMENTS, new DocumentsAdapter()); - allPages[PAGE_TYPE_MUSIC] = new Page(LocaleController.getString("Music", R.string.Music), PAGE_TYPE_MUSIC, new MusicAdapter()); - // allPages[PAGE_TYPE_VOICE] = new Page(LocaleController.getString("Voice", R.string.Voice), PAGE_TYPE_VOICE, new VoiceAdapter()); + allPages[PAGE_TYPE_CHATS] = new Page(LocaleController.getString(R.string.FilterChats), PAGE_TYPE_CHATS, new DialogsAdapter()); + //allPages[PAGE_TYPE_STORIES] = new Page(LocaleController.getString(R.string.FilterStories), PAGE_TYPE_STORIES, new MediaAdapter(true)); + allPages[PAGE_TYPE_MEDIA] = new Page(LocaleController.getString(R.string.MediaTab), PAGE_TYPE_MEDIA, new MediaAdapter(false)); + allPages[PAGE_TYPE_DOCUMENTS] = new Page(LocaleController.getString(R.string.SharedFilesTab2), PAGE_TYPE_DOCUMENTS, new DocumentsAdapter()); + allPages[PAGE_TYPE_MUSIC] = new Page(LocaleController.getString(R.string.Music), PAGE_TYPE_MUSIC, new MusicAdapter()); + // allPages[PAGE_TYPE_VOICE] = new Page(LocaleController.getString(R.string.Voice), PAGE_TYPE_VOICE, new VoiceAdapter()); for (int i = 0; i < allPages.length; i++) { if (allPages[i] == null) { @@ -185,21 +185,21 @@ public void onItemClick(View view, int position) { if (view instanceof CacheCell || view instanceof SharedPhotoVideoCell2) { ActionBarPopupWindow.ActionBarPopupWindowLayout popupWindowLayout = new ActionBarPopupWindow.ActionBarPopupWindowLayout(getContext()); if (view instanceof SharedPhotoVideoCell2) { - ActionBarMenuItem.addItem(popupWindowLayout, R.drawable.msg_view_file, LocaleController.getString("CacheOpenFile", R.string.CacheOpenFile), false, null).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupWindowLayout, R.drawable.msg_view_file, LocaleController.getString(R.string.CacheOpenFile), false, null).setOnClickListener(v -> { openPhoto(itemInner, (MediaAdapter) adapter, recyclerListView, (SharedPhotoVideoCell2) view); if (popupWindow != null) { popupWindow.dismiss(); } }); } else if (((CacheCell) view).container.getChildAt(0) instanceof SharedAudioCell) { - ActionBarMenuItem.addItem(popupWindowLayout, R.drawable.msg_played, LocaleController.getString("PlayFile", R.string.PlayFile), false, null).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupWindowLayout, R.drawable.msg_played, LocaleController.getString(R.string.PlayFile), false, null).setOnClickListener(v -> { openItem(itemInner.file, (CacheCell) view); if (popupWindow != null) { popupWindow.dismiss(); } }); } else { - ActionBarMenuItem.addItem(popupWindowLayout, R.drawable.msg_view_file, LocaleController.getString("CacheOpenFile", R.string.CacheOpenFile), false, null).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupWindowLayout, R.drawable.msg_view_file, LocaleController.getString(R.string.CacheOpenFile), false, null).setOnClickListener(v -> { openItem(itemInner.file, (CacheCell) view); if (popupWindow != null) { popupWindow.dismiss(); @@ -207,7 +207,7 @@ public void onItemClick(View view, int position) { }); } if (itemInner.file.dialogId != 0 && itemInner.file.messageId != 0) { - ActionBarMenuItem.addItem(popupWindowLayout, R.drawable.msg_viewintopic, LocaleController.getString("ViewInChat", R.string.ViewInChat), false, null).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupWindowLayout, R.drawable.msg_viewintopic, LocaleController.getString(R.string.ViewInChat), false, null).setOnClickListener(v -> { Bundle args = new Bundle(); if (itemInner.file.dialogId > 0) { args.putLong("user_id", itemInner.file.dialogId); @@ -223,7 +223,7 @@ public void onItemClick(View view, int position) { }); } ActionBarMenuItem.addItem(popupWindowLayout, R.drawable.msg_select, - !cacheModel.selectedFiles.contains(itemInner.file) ? LocaleController.getString("Select", R.string.Select) : LocaleController.getString("Deselect", R.string.Deselect), + !cacheModel.selectedFiles.contains(itemInner.file) ? LocaleController.getString(R.string.Select) : LocaleController.getString(R.string.Deselect), false, null).setOnClickListener(v -> { if (delegate != null) { delegate.onItemSelected(itemInner.entities, itemInner.file, true); @@ -276,7 +276,7 @@ public boolean hasStableId() { closeButton.setImageDrawable(backDrawable = new BackDrawable(true)); backDrawable.setColor(Theme.getColor(Theme.key_actionBarActionModeDefaultIcon)); closeButton.setBackground(Theme.createSelectorDrawable(Theme.getColor(Theme.key_actionBarActionModeDefaultSelector), 1)); - closeButton.setContentDescription(LocaleController.getString("Close", R.string.Close)); + closeButton.setContentDescription(LocaleController.getString(R.string.Close)); actionModeLayout.addView(closeButton, new LinearLayout.LayoutParams(AndroidUtilities.dp(54), ViewGroup.LayoutParams.MATCH_PARENT)); actionModeViews.add(closeButton); closeButton.setOnClickListener(v -> { @@ -292,7 +292,7 @@ public boolean hasStableId() { clearItem = new ActionBarMenuItem(context, null, Theme.getColor(Theme.key_actionBarActionModeDefaultSelector), Theme.getColor(Theme.key_actionBarActionModeDefaultIcon), false); clearItem.setIcon(R.drawable.msg_clear); - clearItem.setContentDescription(LocaleController.getString("Delete", R.string.Delete)); + clearItem.setContentDescription(LocaleController.getString(R.string.Delete)); clearItem.setDuplicateParentStateEnabled(false); actionModeLayout.addView(clearItem, new LinearLayout.LayoutParams(AndroidUtilities.dp(54), ViewGroup.LayoutParams.MATCH_PARENT)); actionModeViews.add(clearItem); @@ -559,7 +559,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi String title; boolean animated = userCell.dialogFileEntities != null && userCell.dialogFileEntities.dialogId == dialogFileEntities.dialogId; if (dialogFileEntities.dialogId == UNKNOWN_CHATS_DIALOG_ID) { - title = LocaleController.getString("CacheOtherChats", R.string.CacheOtherChats); + title = LocaleController.getString(R.string.CacheOtherChats); userCell.getImageView().getAvatarDrawable().setAvatarType(AvatarDrawable.AVATAR_TYPE_OTHER_CHATS); userCell.getImageView().setForUserOrChat(null, userCell.getImageView().getAvatarDrawable()); } else { @@ -780,7 +780,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi holder.itemView.setTag(file); long date = file.file.lastModified(); - cell.setTextAndValueAndTypeAndThumb(file.messageType == MessageObject.TYPE_ROUND_VIDEO ? LocaleController.getString("AttachRound", R.string.AttachRound) : file.file.getName(), LocaleController.formatDateAudio(date / 1000, true), Utilities.getExtension(file.file.getName()), null, 0, divider); + cell.setTextAndValueAndTypeAndThumb(file.messageType == MessageObject.TYPE_ROUND_VIDEO ? LocaleController.getString(R.string.AttachRound) : file.file.getName(), LocaleController.formatDateAudio(date / 1000, true), Utilities.getExtension(file.file.getName()), null, 0, divider); if (!animated) { cell.setPhoto(file.file.getPath()); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/CalendarActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/CalendarActivity.java index c1517fdfe7..18bd025fa7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/CalendarActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/CalendarActivity.java @@ -108,6 +108,7 @@ public class CalendarActivity extends BaseFragment implements NotificationCenter CalendarAdapter adapter; Callback callback; + ChatActivity chatActivity; HintView selectDaysHint; @@ -287,7 +288,7 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto }; createActionBar(context); contentView.addView(actionBar); - actionBar.setTitle(LocaleController.getString("Calendar", R.string.Calendar)); + actionBar.setTitle(LocaleController.getString(R.string.Calendar)); actionBar.setCastShadows(false); listView = new RecyclerListView(context) { @@ -312,13 +313,13 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { contentView.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, 0, 0, 36, 0, showBottomPanel ? 48 : 0)); final String[] daysOfWeek = new String[]{ - LocaleController.getString("CalendarWeekNameShortMonday", R.string.CalendarWeekNameShortMonday), - LocaleController.getString("CalendarWeekNameShortTuesday", R.string.CalendarWeekNameShortTuesday), - LocaleController.getString("CalendarWeekNameShortWednesday", R.string.CalendarWeekNameShortWednesday), - LocaleController.getString("CalendarWeekNameShortThursday", R.string.CalendarWeekNameShortThursday), - LocaleController.getString("CalendarWeekNameShortFriday", R.string.CalendarWeekNameShortFriday), - LocaleController.getString("CalendarWeekNameShortSaturday", R.string.CalendarWeekNameShortSaturday), - LocaleController.getString("CalendarWeekNameShortSunday", R.string.CalendarWeekNameShortSunday), + LocaleController.getString(R.string.CalendarWeekNameShortMonday), + LocaleController.getString(R.string.CalendarWeekNameShortTuesday), + LocaleController.getString(R.string.CalendarWeekNameShortWednesday), + LocaleController.getString(R.string.CalendarWeekNameShortThursday), + LocaleController.getString(R.string.CalendarWeekNameShortFriday), + LocaleController.getString(R.string.CalendarWeekNameShortSaturday), + LocaleController.getString(R.string.CalendarWeekNameShortSunday), }; @@ -398,7 +399,7 @@ public void onDraw(Canvas canvas) { inSelectionMode = true; updateTitle(); }); - selectDaysButton.setText(LocaleController.getString("SelectDays", R.string.SelectDays)); + selectDaysButton.setText(LocaleController.getString(R.string.SelectDays)); selectDaysButton.setAllCaps(true); bottomBar.addView(selectDaysButton, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, 0, 0, 0f, 0, 0)); @@ -412,7 +413,7 @@ public void onDraw(Canvas canvas) { selectDaysHint = new HintView(contentView.getContext(), 8); selectDaysHint.setExtraTranslationY(AndroidUtilities.dp(24)); contentView.addView(selectDaysHint, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 19, 0, 19, 0)); - selectDaysHint.setText(LocaleController.getString("SelectDaysTooltip", R.string.SelectDaysTooltip)); + selectDaysHint.setText(LocaleController.getString(R.string.SelectDaysTooltip)); } selectDaysHint.showForView(bottomBar, true); return; @@ -426,6 +427,8 @@ public void run(boolean forAll) { if (fragment instanceof ChatActivity) { ((ChatActivity) fragment).deleteHistory(dateSelectedStart, dateSelectedEnd + 86400, forAll); } + } else if (chatActivity != null) { + chatActivity.deleteHistory(dateSelectedStart, dateSelectedEnd + 86400, forAll); } } }, null); @@ -519,12 +522,15 @@ private void loadNext() { int maxDate = (int) (System.currentTimeMillis() / 1000L); minDate = res.min_date; - for (int date = res.min_date; date < maxDate; date += 86400) { + for (int date = res.min_date; true; date += 86400) { calendar.setTimeInMillis(date * 1000L); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); + if (calendar.getTimeInMillis() / 1000L > maxDate) { + break; + } int month = calendar.get(Calendar.YEAR) * 100 + calendar.get(Calendar.MONTH); SparseArray messagesByDays = messagesByYearMounth.get(month); @@ -855,6 +861,9 @@ public boolean onSingleTapUp(MotionEvent e) { finishFragment(); ((ChatActivity) fragment).jumpToDate(day.date); } + } else if (day != null && chatActivity != null) { + finishFragment(); + chatActivity.jumpToDate(day.date); } } } @@ -894,7 +903,7 @@ private PeriodDay getDayAtCoord(float pressedX, float pressedY) { @Override public void onLongPress(MotionEvent e) { super.onLongPress(e); - if (calendarType != TYPE_CHAT_ACTIVITY) { + if (calendarType != TYPE_CHAT_ACTIVITY || AndroidUtilities.isTablet()) { return; } PeriodDay periodDay = getDayAtCoord(e.getX(), e.getY()); @@ -917,7 +926,7 @@ public void onLongPress(MotionEvent e) { previewMenu.setBackgroundColor(getThemedColor(Theme.key_actionBarDefaultSubmenuBackground)); ActionBarMenuSubItem cellJump = new ActionBarMenuSubItem(getParentActivity(), true, false); - cellJump.setTextAndIcon(LocaleController.getString("JumpToDate", R.string.JumpToDate), R.drawable.msg_message); + cellJump.setTextAndIcon(LocaleController.getString(R.string.JumpToDate), R.drawable.msg_message); cellJump.setMinimumWidth(160); cellJump.setOnClickListener(view -> { if (parentLayout != null && parentLayout.getFragmentStack().size() >= 3) { @@ -935,7 +944,7 @@ public void onLongPress(MotionEvent e) { if (canClearHistory) { ActionBarMenuSubItem cellSelect = new ActionBarMenuSubItem(getParentActivity(), false, false); - cellSelect.setTextAndIcon(LocaleController.getString("SelectThisDay", R.string.SelectThisDay), R.drawable.msg_select); + cellSelect.setTextAndIcon(LocaleController.getString(R.string.SelectThisDay), R.drawable.msg_select); cellSelect.setMinimumWidth(160); cellSelect.setOnClickListener(view -> { dateSelectedStart = dateSelectedEnd = periodDay.date; @@ -947,7 +956,7 @@ public void onLongPress(MotionEvent e) { previewMenu.addView(cellSelect); ActionBarMenuSubItem cellDelete = new ActionBarMenuSubItem(getParentActivity(), false, true); - cellDelete.setTextAndIcon(LocaleController.getString("ClearHistory", R.string.ClearHistory), R.drawable.msg_delete); + cellDelete.setTextAndIcon(LocaleController.getString(R.string.ClearHistory), R.drawable.msg_delete); cellDelete.setMinimumWidth(160); cellDelete.setOnClickListener(view -> { if (parentLayout.getFragmentStack().size() >= 3) { @@ -1374,7 +1383,7 @@ protected void onDetachedFromWindow() { private void updateTitle() { if (!canClearHistory) { - actionBar.setTitle(LocaleController.getString("Calendar", R.string.Calendar)); + actionBar.setTitle(LocaleController.getString(R.string.Calendar)); backDrawable.setRotation(0f, true); return; } @@ -1394,10 +1403,10 @@ private void updateTitle() { title = LocaleController.formatPluralString("Days", daysSelected); backDrawable.setRotation(1f, true); } else if (inSelectionMode) { - title = LocaleController.getString("SelectDays", R.string.SelectDays); + title = LocaleController.getString(R.string.SelectDays); backDrawable.setRotation(1f, true); } else { - title = LocaleController.getString("Calendar", R.string.Calendar); + title = LocaleController.getString(R.string.Calendar); backDrawable.setRotation(0f, true); } if (daysSelected > 1) { @@ -1443,6 +1452,9 @@ private void updateTitle() { public void setCallback(Callback callback) { this.callback = callback; } + public void setChatActivity(ChatActivity chatActivity) { + this.chatActivity = chatActivity; + } public interface Callback { void onDateSelected(int messageId, int startOffset); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/CallLogActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/CallLogActivity.java index 52b23f23a1..a68ff8595a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/CallLogActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/CallLogActivity.java @@ -150,14 +150,14 @@ public EmptyTextProgressView(Context context, View progressView) { emptyTextView1 = new TextView(context); emptyTextView1.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); - emptyTextView1.setText(LocaleController.getString("NoRecentCalls", R.string.NoRecentCalls)); + emptyTextView1.setText(LocaleController.getString(R.string.NoRecentCalls)); emptyTextView1.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); emptyTextView1.setTypeface(AndroidUtilities.bold()); emptyTextView1.setGravity(Gravity.CENTER); addView(emptyTextView1, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 17, 40, 17, 0)); emptyTextView2 = new TextView(context); - String help = LocaleController.getString("NoRecentCallsInfo", R.string.NoRecentCallsInfo); + String help = LocaleController.getString(R.string.NoRecentCallsInfo); if (AndroidUtilities.isTablet() && !AndroidUtilities.isSmallTablet()) { help = help.replace('\n', ' '); } @@ -321,8 +321,8 @@ public CallCell(Context context) { TLRPC.UserFull userFull = getMessagesController().getUserFull(row.user.id); VoIPHelper.startCall(lastCallUser = row.user, row.video, row.video || userFull != null && userFull.video_calls_available, getParentActivity(), null, getAccountInstance()); }); - imageView.setContentDescription(LocaleController.getString("Call", R.string.Call)); - addView(imageView, LayoutHelper.createFrame(48, 48, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER_VERTICAL, 8, 0, 8, 0)); + imageView.setContentDescription(LocaleController.getString(R.string.Call)); + addView(imageView, LayoutHelper.createFrame(48, 48, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER_VERTICAL, 8, 0, 8, 0)); checkBox = new CheckBox2(context, 21); checkBox.setColor(-1, Theme.key_windowBackgroundWhite, Theme.key_checkboxCheck); @@ -350,7 +350,7 @@ public GroupCallCell(Context context) { setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); - String text = LocaleController.getString("VoipChatJoin", R.string.VoipChatJoin); + String text = LocaleController.getString(R.string.VoipChatJoin); button = new ProgressButton(context); int width = (int) Math.ceil(button.getPaint().measureText(text)); @@ -426,12 +426,12 @@ public View createView(Context context) { iconMissed = new ImageSpan(redDrawable, ImageSpan.ALIGN_BOTTOM); actionBar.setBackButtonDrawable(new BackDrawable(false)); - actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("Calls", R.string.Calls)); - actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { - @Override - public void onItemClick(int id) { - if (id == -1) { + actionBar.setAllowOverlayTitle(true); + actionBar.setTitle(LocaleController.getString(R.string.Calls)); + actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { + @Override + public void onItemClick(int id) { + if (id == -1) { if (actionBar.isActionModeShowed()) { hideActionMode(true); } else { @@ -447,8 +447,8 @@ public void onItemClick(int id) { ActionBarMenu menu = actionBar.createMenu(); otherItem = menu.addItem(10, R.drawable.ic_ab_other); - otherItem.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); - otherItem.addSubItem(delete_all_calls, R.drawable.msg_delete, LocaleController.getString("DeleteAllCalls", R.string.DeleteAllCalls)); + otherItem.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); + otherItem.addSubItem(delete_all_calls, R.drawable.msg_delete, LocaleController.getString(R.string.DeleteAllCalls)); fragmentView = new FrameLayout(context); fragmentView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray)); @@ -543,40 +543,40 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { floatingButton.setVisibility(View.VISIBLE); floatingButton.setScaleType(ImageView.ScaleType.CENTER); - Drawable drawable = Theme.createSimpleSelectorCircleDrawable(AndroidUtilities.dp(56), Theme.getColor(Theme.key_chats_actionBackground), Theme.getColor(Theme.key_chats_actionPressedBackground)); - if (Build.VERSION.SDK_INT < 21) { - Drawable shadowDrawable = context.getResources().getDrawable(R.drawable.floating_shadow).mutate(); - shadowDrawable.setColorFilter(new PorterDuffColorFilter(0xff000000, PorterDuff.Mode.SRC_IN)); - CombinedDrawable combinedDrawable = new CombinedDrawable(shadowDrawable, drawable, 0, 0); - combinedDrawable.setIconSize(AndroidUtilities.dp(56), AndroidUtilities.dp(56)); - drawable = combinedDrawable; - } - floatingButton.setBackgroundDrawable(drawable); - floatingButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chats_actionIcon), PorterDuff.Mode.SRC_IN)); - floatingButton.setImageResource(R.drawable.ic_call); - floatingButton.setContentDescription(LocaleController.getString("Call", R.string.Call)); - if (Build.VERSION.SDK_INT >= 21) { - StateListAnimator animator = new StateListAnimator(); - animator.addState(new int[]{android.R.attr.state_pressed}, ObjectAnimator.ofFloat(floatingButton, "translationZ", AndroidUtilities.dp(2), AndroidUtilities.dp(4)).setDuration(200)); - animator.addState(new int[]{}, ObjectAnimator.ofFloat(floatingButton, "translationZ", AndroidUtilities.dp(4), AndroidUtilities.dp(2)).setDuration(200)); - floatingButton.setStateListAnimator(animator); - floatingButton.setOutlineProvider(new ViewOutlineProvider() { - @SuppressLint("NewApi") - @Override - public void getOutline(View view, Outline outline) { - outline.setOval(0, 0, AndroidUtilities.dp(56), AndroidUtilities.dp(56)); - } - }); - } - frameLayout.addView(floatingButton, LayoutHelper.createFrame(Build.VERSION.SDK_INT >= 21 ? 56 : 60, Build.VERSION.SDK_INT >= 21 ? 56 : 60, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.BOTTOM, LocaleController.isRTL ? 14 : 0, 0, LocaleController.isRTL ? 0 : 14, 14)); - floatingButton.setOnClickListener(v -> { - Bundle args = new Bundle(); - args.putBoolean("destroyAfterSelect", true); - args.putBoolean("returnAsResult", true); - args.putBoolean("onlyUsers", true); - args.putBoolean("allowSelf", false); - ContactsActivity contactsFragment = new ContactsActivity(args); - contactsFragment.setDelegate((user, param, activity) -> { + Drawable drawable = Theme.createSimpleSelectorCircleDrawable(AndroidUtilities.dp(56), Theme.getColor(Theme.key_chats_actionBackground), Theme.getColor(Theme.key_chats_actionPressedBackground)); + if (Build.VERSION.SDK_INT < 21) { + Drawable shadowDrawable = context.getResources().getDrawable(R.drawable.floating_shadow).mutate(); + shadowDrawable.setColorFilter(new PorterDuffColorFilter(0xff000000, PorterDuff.Mode.MULTIPLY)); + CombinedDrawable combinedDrawable = new CombinedDrawable(shadowDrawable, drawable, 0, 0); + combinedDrawable.setIconSize(AndroidUtilities.dp(56), AndroidUtilities.dp(56)); + drawable = combinedDrawable; + } + floatingButton.setBackgroundDrawable(drawable); + floatingButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chats_actionIcon), PorterDuff.Mode.MULTIPLY)); + floatingButton.setImageResource(R.drawable.ic_call); + floatingButton.setContentDescription(LocaleController.getString(R.string.Call)); + if (Build.VERSION.SDK_INT >= 21) { + StateListAnimator animator = new StateListAnimator(); + animator.addState(new int[]{android.R.attr.state_pressed}, ObjectAnimator.ofFloat(floatingButton, "translationZ", AndroidUtilities.dp(2), AndroidUtilities.dp(4)).setDuration(200)); + animator.addState(new int[]{}, ObjectAnimator.ofFloat(floatingButton, "translationZ", AndroidUtilities.dp(4), AndroidUtilities.dp(2)).setDuration(200)); + floatingButton.setStateListAnimator(animator); + floatingButton.setOutlineProvider(new ViewOutlineProvider() { + @SuppressLint("NewApi") + @Override + public void getOutline(View view, Outline outline) { + outline.setOval(0, 0, AndroidUtilities.dp(56), AndroidUtilities.dp(56)); + } + }); + } + frameLayout.addView(floatingButton, LayoutHelper.createFrame(Build.VERSION.SDK_INT >= 21 ? 56 : 60, Build.VERSION.SDK_INT >= 21 ? 56 : 60, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.BOTTOM, LocaleController.isRTL ? 14 : 0, 0, LocaleController.isRTL ? 0 : 14, 14)); + floatingButton.setOnClickListener(v -> { + Bundle args = new Bundle(); + args.putBoolean("destroyAfterSelect", true); + args.putBoolean("returnAsResult", true); + args.putBoolean("onlyUsers", true); + args.putBoolean("allowSelf", false); + ContactsActivity contactsFragment = new ContactsActivity(args); + contactsFragment.setDelegate((user, param, activity) -> { TLRPC.UserFull userFull = getMessagesController().getUserFull(user.id); VoIPHelper.startCall(lastCallUser = user, false, userFull != null && userFull.video_calls_available, getParentActivity(), null, getAccountInstance()); }); @@ -590,17 +590,17 @@ private void showDeleteAlert(boolean all) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); if (all) { - builder.setTitle(LocaleController.getString("DeleteAllCalls", R.string.DeleteAllCalls)); - builder.setMessage(LocaleController.getString("DeleteAllCallsText", R.string.DeleteAllCallsText)); + builder.setTitle(LocaleController.getString(R.string.DeleteAllCalls)); + builder.setMessage(LocaleController.getString(R.string.DeleteAllCallsText)); } else { - builder.setTitle(LocaleController.getString("DeleteCalls", R.string.DeleteCalls)); - builder.setMessage(LocaleController.getString("DeleteSelectedCallsText", R.string.DeleteSelectedCallsText)); + builder.setTitle(LocaleController.getString(R.string.DeleteCalls)); + builder.setMessage(LocaleController.getString(R.string.DeleteSelectedCallsText)); } final boolean[] checks = new boolean[]{false}; FrameLayout frameLayout = new FrameLayout(getParentActivity()); CheckBoxCell cell = new CheckBoxCell(getParentActivity(), 1); cell.setBackgroundDrawable(Theme.getSelectorDrawable(false)); - cell.setText(LocaleController.getString("DeleteCallsForEveryone", R.string.DeleteCallsForEveryone), "", false, false); + cell.setText(LocaleController.getString(R.string.DeleteCallsForEveryone), "", false, false); cell.setPadding(LocaleController.isRTL ? AndroidUtilities.dp(8) : 0, 0, LocaleController.isRTL ? 0 : AndroidUtilities.dp(8), 0); frameLayout.addView(cell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.TOP | Gravity.LEFT, 8, 0, 8, 0)); cell.setOnClickListener(v -> { @@ -609,7 +609,7 @@ private void showDeleteAlert(boolean all) { cell1.setChecked(checks[0], true); }); builder.setView(frameLayout); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialogInterface, i) -> { if (all) { deleteAllMessages(checks[0]); calls.clear(); @@ -622,7 +622,7 @@ private void showDeleteAlert(boolean all) { } hideActionMode(false); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -684,7 +684,7 @@ private void createActionMode() { actionMode.addView(selectedDialogsCountTextView, LayoutHelper.createLinear(0, LayoutHelper.MATCH_PARENT, 1.0f, 72, 0, 0, 0)); selectedDialogsCountTextView.setOnTouchListener((v, event) -> true); - actionModeViews.add(actionMode.addItemWithWidth(delete, R.drawable.msg_delete, AndroidUtilities.dp(54), LocaleController.getString("Delete", R.string.Delete))); + actionModeViews.add(actionMode.addItemWithWidth(delete, R.drawable.msg_delete, AndroidUtilities.dp(54), LocaleController.getString(R.string.Delete))); } private boolean addOrRemoveSelectedDialog(ArrayList messages, CallCell cell) { @@ -1023,28 +1023,28 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { CallLogRow row = calls.get(position);CallCell cell = (CallCell) holder.itemView; cell.imageView.setImageResource(row.video ? R.drawable.profile_video : R.drawable.profile_phone); - TLRPC.Message last = row.calls.get(0); - SpannableString subtitle; - String ldir = LocaleController.isRTL ? "\u202b" : ""; - if (row.calls.size() == 1) { - subtitle = new SpannableString(ldir + " " + LocaleController.formatDateCallLog(last.date)); - } else { - subtitle = new SpannableString(String.format(ldir + " (%d) %s", row.calls.size(), LocaleController.formatDateCallLog(last.date))); - } - switch (row.type) { - case TYPE_OUT: - subtitle.setSpan(iconOut, ldir.length(), ldir.length() + 1, 0); - //cell.setContentDescription(LocaleController.getString("CallMessageOutgoing", R.string.CallMessageOutgoing)); - break; - case TYPE_IN: - subtitle.setSpan(iconIn, ldir.length(), ldir.length() + 1, 0); - //cell.setContentDescription(LocaleController.getString("CallMessageIncoming", R.string.CallMessageIncoming)); - break; - case TYPE_MISSED: - subtitle.setSpan(iconMissed, ldir.length(), ldir.length() + 1, 0); - //cell.setContentDescription(LocaleController.getString("CallMessageIncomingMissed", R.string.CallMessageIncomingMissed)); - break; - } + TLRPC.Message last = row.calls.get(0); + SpannableString subtitle; + String ldir = LocaleController.isRTL ? "\u202b" : ""; + if (row.calls.size() == 1) { + subtitle = new SpannableString(ldir + " " + LocaleController.formatDateCallLog(last.date)); + } else { + subtitle = new SpannableString(String.format(ldir + " (%d) %s", row.calls.size(), LocaleController.formatDateCallLog(last.date))); + } + switch (row.type) { + case TYPE_OUT: + subtitle.setSpan(iconOut, ldir.length(), ldir.length() + 1, 0); + //cell.setContentDescription(LocaleController.getString(R.string.CallMessageOutgoing)); + break; + case TYPE_IN: + subtitle.setSpan(iconIn, ldir.length(), ldir.length() + 1, 0); + //cell.setContentDescription(LocaleController.getString(R.string.CallMessageIncoming)); + break; + case TYPE_MISSED: + subtitle.setSpan(iconMissed, ldir.length(), ldir.length() + 1, 0); + //cell.setContentDescription(LocaleController.getString(R.string.CallMessageIncomingMissed)); + break; + } cell.profileSearchCell.setData(row.user, null, null, subtitle, false, false); cell.profileSearchCell.useSeparator = position != calls.size() - 1 || !endReached; cell.imageView.setTag(row); @@ -1053,9 +1053,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 3: { HeaderCell cell = (HeaderCell) holder.itemView; if (position == activeHeaderRow) { - cell.setText(LocaleController.getString("VoipChatActiveChats", R.string.VoipChatActiveChats)); + cell.setText(LocaleController.getString(R.string.VoipChatActiveChats)); } else if (position == callsHeaderRow) { - cell.setText(LocaleController.getString("VoipChatRecentCalls", R.string.VoipChatRecentCalls)); + cell.setText(LocaleController.getString(R.string.VoipChatRecentCalls)); } break; } @@ -1069,17 +1069,17 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { String text; if (ChatObject.isChannel(chat) && !chat.megagroup) { if (!ChatObject.isPublic(chat)) { - text = LocaleController.getString("ChannelPrivate", R.string.ChannelPrivate).toLowerCase(); + text = LocaleController.getString(R.string.ChannelPrivate).toLowerCase(); } else { - text = LocaleController.getString("ChannelPublic", R.string.ChannelPublic).toLowerCase(); + text = LocaleController.getString(R.string.ChannelPublic).toLowerCase(); } } else { if (chat.has_geo) { - text = LocaleController.getString("MegaLocation", R.string.MegaLocation); + text = LocaleController.getString(R.string.MegaLocation); } else if (!ChatObject.isPublic(chat)) { - text = LocaleController.getString("MegaPrivate", R.string.MegaPrivate).toLowerCase(); + text = LocaleController.getString(R.string.MegaPrivate).toLowerCase(); } else { - text = LocaleController.getString("MegaPublic", R.string.MegaPublic).toLowerCase(); + text = LocaleController.getString(R.string.MegaPublic).toLowerCase(); } } cell.profileSearchCell.useSeparator = position != activeGroupCalls.size() - 1 && !endReached; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java index 6a862de576..57f5dba677 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java @@ -575,7 +575,7 @@ private RectF aroundPoint(int x, int y, int r) { } if (currentType == TYPE_QR_LOGIN || currentType == TYPE_QR_WEB_BOT) { - actionBar.setTitle(LocaleController.getString("AuthAnotherClientScan", R.string.AuthAnotherClientScan)); + actionBar.setTitle(LocaleController.getString(R.string.AuthAnotherClientScan)); } Paint selectionPaint = new Paint(Paint.ANTI_ALIAS_FLAG); @@ -678,23 +678,23 @@ protected void onDraw(Canvas canvas) { recognizedMrzView.setAlpha(0); if (currentType == TYPE_MRZ) { - titleTextView.setText(LocaleController.getString("PassportScanPassport", R.string.PassportScanPassport)); - descriptionText.setText(LocaleController.getString("PassportScanPassportInfo", R.string.PassportScanPassportInfo)); + titleTextView.setText(LocaleController.getString(R.string.PassportScanPassport)); + descriptionText.setText(LocaleController.getString(R.string.PassportScanPassportInfo)); titleTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); recognizedMrzView.setTypeface(Typeface.MONOSPACE); } else { if (needGalleryButton) { - //titleTextView.setText(LocaleController.getString("WalletScanCode", R.string.WalletScanCode)); + //titleTextView.setText(LocaleController.getString(R.string.WalletScanCode)); } else { if (currentType == TYPE_QR || currentType == TYPE_QR_WEB_BOT) { - titleTextView.setText(LocaleController.getString("AuthAnotherClientScan", R.string.AuthAnotherClientScan)); + titleTextView.setText(LocaleController.getString(R.string.AuthAnotherClientScan)); } else { - String text = LocaleController.getString("AuthAnotherClientInfo5", R.string.AuthAnotherClientInfo5); + String text = LocaleController.getString(R.string.AuthAnotherClientInfo5); SpannableStringBuilder spanned = new SpannableStringBuilder(text); String[] links = new String[] { - LocaleController.getString("AuthAnotherClientDownloadClientUrl", R.string.AuthAnotherClientDownloadClientUrl), - LocaleController.getString("AuthAnotherWebClientUrl", R.string.AuthAnotherWebClientUrl) + LocaleController.getString(R.string.AuthAnotherClientDownloadClientUrl), + LocaleController.getString(R.string.AuthAnotherWebClientUrl) }; for (int i = 0; i < links.length; ++i) { text = spanned.toString(); @@ -729,9 +729,9 @@ protected void onDraw(Canvas canvas) { recognizedMrzView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); recognizedMrzView.setPadding(dp(10), 0, dp(10), dp(10)); if (needGalleryButton) { - //recognizedMrzView.setText(LocaleController.getString("WalletScanCodeNotFound", R.string.WalletScanCodeNotFound)); + //recognizedMrzView.setText(LocaleController.getString(R.string.WalletScanCodeNotFound)); } else { - recognizedMrzView.setText(LocaleController.getString("AuthAnotherClientNotFound", R.string.AuthAnotherClientNotFound)); + recognizedMrzView.setText(LocaleController.getString(R.string.AuthAnotherClientNotFound)); } viewGroup.addView(recognizedMrzView); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/AboutLinkCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/AboutLinkCell.java index 62d057a526..b0681e3324 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/AboutLinkCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/AboutLinkCell.java @@ -171,7 +171,7 @@ protected void onDraw(Canvas canvas) { showMoreTextView.setLines(1); showMoreTextView.setMaxLines(1); showMoreTextView.setSingleLine(true); - showMoreTextView.setText(LocaleController.getString("DescriptionMore", R.string.DescriptionMore)); + showMoreTextView.setText(LocaleController.getString(R.string.DescriptionMore)); showMoreTextView.setOnClickListener(e -> { updateCollapse(true, true); }); @@ -414,7 +414,7 @@ public void run() { ClickableSpan pressedLinkFinal = (ClickableSpan) pressedLink.getSpan(); BottomBuilder builder = new BottomBuilder(parentFragment.getParentActivity()); builder.addTitle(url); - builder.addItems(new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy)}, + builder.addItems(new String[]{LocaleController.getString(R.string.Open), LocaleController.getString(R.string.Copy)}, new int[]{R.drawable.msg_openin, R.drawable.msg_copy}, (which, __, ___) -> { if (which == 0) { @@ -424,13 +424,13 @@ public void run() { if (AndroidUtilities.shouldShowClipboardToast()) { if (url.startsWith("@")) { BulletinFactory.of(parentFragment).createSimpleBulletin(R.raw.copy, - LocaleController.getString("UsernameCopied", R.string.UsernameCopied)).show(); + LocaleController.getString(R.string.UsernameCopied)).show(); } else if (url.startsWith("#") || url.startsWith("$")) { BulletinFactory.of(parentFragment).createSimpleBulletin(R.raw.copy, - LocaleController.getString("HashtagCopied", R.string.HashtagCopied)).show(); + LocaleController.getString(R.string.HashtagCopied)).show(); } else { BulletinFactory.of(parentFragment).createSimpleBulletin(R.raw.copy, - LocaleController.getString("LinkCopied", R.string.LinkCopied)).show(); + LocaleController.getString(R.string.LinkCopied)).show(); } } } @@ -535,7 +535,7 @@ public void end(boolean replacing) { } : null; if (pressedLink instanceof URLSpanNoUnderline) { String url = ((URLSpanNoUnderline) pressedLink).getURL(); - if (url.startsWith("@") || url.startsWith("#") || url.startsWith("/")) { + if (url.startsWith("@") || url.startsWith("#") || url.startsWith("$") || url.startsWith("/")) { didPressUrl(url, currentProgress); } } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/AccountSelectCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/AccountSelectCell.java index 5fc93f478a..0a01521ea9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/AccountSelectCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/AccountSelectCell.java @@ -63,7 +63,7 @@ public AccountSelectCell(Context context, boolean hasInfo) { if (hasInfo) { addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 61, 7, 8, 0)); textView.setTextColor(Theme.getColor(Theme.key_voipgroup_nameText)); - textView.setText(LocaleController.getString("VoipGroupDisplayAs", R.string.VoipGroupDisplayAs)); + textView.setText(LocaleController.getString(R.string.VoipGroupDisplayAs)); infoTextView = new EmojiTextView(context); infoTextView.setTextColor(Theme.getColor(Theme.key_voipgroup_lastSeenText)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ArchiveHintInnerCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ArchiveHintInnerCell.java index 1659a5f059..113f807724 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ArchiveHintInnerCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ArchiveHintInnerCell.java @@ -51,23 +51,23 @@ public ArchiveHintInnerCell(Context context, int num) { imageView2.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chats_unreadCounter), PorterDuff.Mode.SRC_IN)); addView(imageView2, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 20, 8, 0)); - headerTextView.setText(LocaleController.getString("ArchiveHintHeader1", R.string.ArchiveHintHeader1)); - messageTextView.setText(LocaleController.getString("ArchiveHintText1", R.string.ArchiveHintText1)); + headerTextView.setText(LocaleController.getString(R.string.ArchiveHintHeader1)); + messageTextView.setText(LocaleController.getString(R.string.ArchiveHintText1)); imageView.setImageResource(R.drawable.chats_archive_box); break; } case 1: addView(imageView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 18, 0, 0)); - headerTextView.setText(LocaleController.getString("ArchiveHintHeader2", R.string.ArchiveHintHeader2)); - messageTextView.setText(LocaleController.getString("ArchiveHintText2", R.string.ArchiveHintText2)); + headerTextView.setText(LocaleController.getString(R.string.ArchiveHintHeader2)); + messageTextView.setText(LocaleController.getString(R.string.ArchiveHintText2)); imageView.setImageResource(R.drawable.chats_archive_muted); break; case 2: addView(imageView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 18, 0, 0)); - headerTextView.setText(LocaleController.getString("ArchiveHintHeader3", R.string.ArchiveHintHeader3)); - messageTextView.setText(LocaleController.getString("ArchiveHintText3", R.string.ArchiveHintText3)); + headerTextView.setText(LocaleController.getString(R.string.ArchiveHintHeader3)); + messageTextView.setText(LocaleController.getString(R.string.ArchiveHintText3)); imageView.setImageResource(R.drawable.chats_archive_pin); break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ArchivedStickerSetCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ArchivedStickerSetCell.java index 37e1ea5006..311412341f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ArchivedStickerSetCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ArchivedStickerSetCell.java @@ -67,7 +67,7 @@ public ArchivedStickerSetCell(Context context, boolean checkable) { if (this.checkable = checkable) { currentButton = addButton = new ProgressButton(context); - addButton.setText(LocaleController.getString("Add", R.string.Add)); + addButton.setText(LocaleController.getString(R.string.Add)); addButton.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); addButton.setProgressColor(Theme.getColor(Theme.key_featuredStickers_buttonProgress)); addButton.setBackgroundRoundRect(Theme.getColor(Theme.key_featuredStickers_addButton), Theme.getColor(Theme.key_featuredStickers_addButtonPressed)); @@ -80,7 +80,7 @@ public ArchivedStickerSetCell(Context context, boolean checkable) { deleteButton.setMinimumWidth(minWidth); deleteButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); deleteButton.setTextColor(Theme.getColor(Theme.key_featuredStickers_removeButtonText)); - deleteButton.setText(LocaleController.getString("StickersRemove", R.string.StickersRemove)); + deleteButton.setText(LocaleController.getString(R.string.StickersRemove)); deleteButton.setBackground(Theme.getRoundRectSelectorDrawable(Theme.getColor(Theme.key_featuredStickers_removeButtonText))); deleteButton.setTypeface(AndroidUtilities.bold()); ViewHelper.setPadding(deleteButton, 8, 0, 8, 0); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/BotHelpCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/BotHelpCell.java index cc636f15e7..6be21edde6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/BotHelpCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/BotHelpCell.java @@ -260,7 +260,7 @@ public boolean onTouchEvent(MotionEvent event) { ClickableSpan span = pressedLink.getSpan(); if (span instanceof URLSpanNoUnderline) { String url = ((URLSpanNoUnderline) span).getURL(); - if (url.startsWith("@") || url.startsWith("#") || url.startsWith("/")) { + if (url.startsWith("@") || url.startsWith("#") || url.startsWith("/") || url.startsWith("$")) { if (delegate != null) { delegate.didPressUrl(url); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatActionCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatActionCell.java index 601354b4f9..95da08fde5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatActionCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatActionCell.java @@ -607,7 +607,12 @@ public void setMessageObject(MessageObject messageObject, boolean force) { int months = messageObject.messageOwner.action.months; String monthsEmoticon; if (messageObject.type == MessageObject.TYPE_GIFT_STARS) { - final long stars = ((TLRPC.TL_messageActionGiftStars) messageObject.messageOwner.action).stars; + final long stars; + if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionGiftStars) { + stars = ((TLRPC.TL_messageActionGiftStars) messageObject.messageOwner.action).stars; + } else { + stars = ((TLRPC.TL_messageActionPrizeStars) messageObject.messageOwner.action).stars; + } String emoji; if (stars <= 1000) { emoji = "2⃣"; @@ -1030,8 +1035,11 @@ private void openPremiumGiftPreview() { private void openStarsGiftTransaction() { if (currentMessageObject == null || currentMessageObject.messageOwner == null) return; - if (!(currentMessageObject.messageOwner.action instanceof TLRPC.TL_messageActionGiftStars)) return; - StarsIntroActivity.showTransactionSheet(getContext(), currentAccount, currentMessageObject.messageOwner.date, currentMessageObject.messageOwner.from_id, currentMessageObject.messageOwner.peer_id, (TLRPC.TL_messageActionGiftStars) currentMessageObject.messageOwner.action, avatarStoryParams.resourcesProvider); + if (currentMessageObject.messageOwner.action instanceof TLRPC.TL_messageActionGiftStars) { + StarsIntroActivity.showTransactionSheet(getContext(), currentAccount, currentMessageObject.messageOwner.date, currentMessageObject.messageOwner.from_id, currentMessageObject.messageOwner.peer_id, (TLRPC.TL_messageActionGiftStars) currentMessageObject.messageOwner.action, avatarStoryParams.resourcesProvider); + } else if (currentMessageObject.messageOwner.action instanceof TLRPC.TL_messageActionPrizeStars) { + StarsIntroActivity.showTransactionSheet(getContext(), currentAccount, currentMessageObject.messageOwner.date, currentMessageObject.messageOwner.from_id, currentMessageObject.messageOwner.peer_id, (TLRPC.TL_messageActionPrizeStars) currentMessageObject.messageOwner.action, avatarStoryParams.resourcesProvider); + } } private void openLink(CharacterStyle link) { @@ -1312,15 +1320,30 @@ private void buildLayout() { } else if (messageObject.type == MessageObject.TYPE_GIFT_PREMIUM_CHANNEL) { createGiftPremiumChannelLayouts(); } else if (messageObject.type == MessageObject.TYPE_GIFT_STARS) { - final TLRPC.TL_messageActionGiftStars action = (TLRPC.TL_messageActionGiftStars) messageObject.messageOwner.action; final TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(currentMessageObject.getDialogId()); - createGiftPremiumLayouts( - formatPluralStringComma("ActionGiftStarsTitle", (int) action.stars), - AndroidUtilities.replaceTags(currentMessageObject.isOutOwner() ? formatString(R.string.ActionGiftStarsSubtitle, UserObject.getForcedFirstName(user)) : getString(R.string.ActionGiftStarsSubtitleYou)), - getString(R.string.ActionGiftStarsView), - giftRectSize, - true - ); + final long stars; + if (messageObject.messageOwner.action instanceof TLRPC.TL_messageActionGiftStars) { + stars = ((TLRPC.TL_messageActionGiftStars) messageObject.messageOwner.action).stars; + createGiftPremiumLayouts( + formatPluralStringComma("ActionGiftStarsTitle", (int) stars), + AndroidUtilities.replaceTags(currentMessageObject.isOutOwner() ? formatString(R.string.ActionGiftStarsSubtitle, UserObject.getForcedFirstName(user)) : getString(R.string.ActionGiftStarsSubtitleYou)), + getString(R.string.ActionGiftStarsView), + giftRectSize, + true + ); + } else { + stars = ((TLRPC.TL_messageActionPrizeStars) messageObject.messageOwner.action).stars; + createGiftPremiumLayouts( + getString(R.string.ActionStarGiveawayPrizeTitle), + currentMessageObject.messageText, + getString(R.string.ActionGiftStarsView), + giftRectSize, + true + ); + textLayout = null; + textHeight = 0; + textY = 0; + } } else if (messageObject.type == MessageObject.TYPE_GIFT_PREMIUM) { String actionName = getString(isGiftCode() && !isSelfGiftCode() ? R.string.GiftPremiumUseGiftBtn : R.string.ActionGiftPremiumView); createGiftPremiumLayouts(getString(R.string.ActionGiftPremiumTitle), formatString(R.string.ActionGiftPremiumSubtitle, LocaleController.formatPluralString("Months", messageObject.messageOwner.action.months)), actionName, giftRectSize, true); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatListCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatListCell.java index b597329e1e..d54cd24ec0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatListCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatListCell.java @@ -34,7 +34,7 @@ public ListView(Context context, boolean threeLines) { setWillNotDraw(false); isThreeLines = threeLines; - setContentDescription(threeLines ? LocaleController.getString("ChatListExpanded", R.string.ChatListExpanded) : LocaleController.getString("ChatListDefault", R.string.ChatListDefault)); + setContentDescription(threeLines ? LocaleController.getString(R.string.ChatListExpanded) : LocaleController.getString(R.string.ChatListDefault)); textPaint.setTextSize(AndroidUtilities.dp(13)); @@ -67,7 +67,7 @@ protected void onDraw(Canvas canvas) { Theme.dialogs_onlineCirclePaint.setColor(Color.argb((int) (31 * (1.0f - button.getProgress())), r, g, b)); canvas.drawRoundRect(rect, AndroidUtilities.dp(6), AndroidUtilities.dp(6), Theme.dialogs_onlineCirclePaint); - String text = isThreeLines ? LocaleController.getString("ChatListExpanded", R.string.ChatListExpanded) : LocaleController.getString("ChatListDefault", R.string.ChatListDefault); + String text = isThreeLines ? LocaleController.getString(R.string.ChatListExpanded) : LocaleController.getString(R.string.ChatListDefault); int width = (int) Math.ceil(textPaint.measureText(text)); textPaint.setColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); @@ -97,7 +97,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { info.setClassName(RadioButton.class.getName()); info.setChecked(button.isChecked()); info.setCheckable(true); - info.setContentDescription(isThreeLines ? LocaleController.getString("ChatListExpanded", R.string.ChatListExpanded) : LocaleController.getString("ChatListDefault", R.string.ChatListDefault)); + info.setContentDescription(isThreeLines ? LocaleController.getString(R.string.ChatListExpanded) : LocaleController.getString(R.string.ChatListDefault)); } } 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 d817e0068b..e362af2621 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java @@ -161,6 +161,7 @@ import org.telegram.ui.Components.Premium.boosts.cells.msg.GiveawayMessageCell; import org.telegram.ui.Components.Premium.boosts.cells.msg.GiveawayResultsMessageCell; import org.telegram.ui.Components.QuoteHighlight; +import org.telegram.ui.Components.QuoteSpan; import org.telegram.ui.Components.RLottieDrawable; import org.telegram.ui.Components.RadialProgress2; import org.telegram.ui.Components.Reactions.ReactionsLayoutInBubble; @@ -307,7 +308,7 @@ public void setAvatar(MessageObject messageObject) { } else { currentPhoto = null; } - if (currentChat.signature_profiles) { + if (currentChat.signature_profiles && messageObject.getDialogId() != UserObject.REPLY_BOT) { long did = DialogObject.getPeerDialogId(messageObject.messageOwner.from_id); if (did >= 0) { TLRPC.User user = MessagesController.getInstance(messageObject.currentAccount).getUser(did); @@ -2999,7 +3000,7 @@ private boolean checkPollButtonMotionEvent(MotionEvent event) { selectorDrawable[0].setState(StateSet.NOTHING); } if (currentMessageObject.scheduled) { - Toast.makeText(getContext(), getString("MessageScheduledVote", R.string.MessageScheduledVote), Toast.LENGTH_LONG).show(); + Toast.makeText(getContext(), getString(R.string.MessageScheduledVote), Toast.LENGTH_LONG).show(); } else { PollButton button = pollButtons.get(pressedVoteButton); TLRPC.PollAnswer answer = button.answer; @@ -3068,7 +3069,7 @@ private boolean checkInstantButtonMotionEvent(MotionEvent event) { if (delegate != null) { if (lastPoll != null) { if (currentMessageObject.scheduled) { - Toast.makeText(getContext(), getString("MessageScheduledVoteResults", R.string.MessageScheduledVoteResults), Toast.LENGTH_LONG).show(); + Toast.makeText(getContext(), getString(R.string.MessageScheduledVoteResults), Toast.LENGTH_LONG).show(); } else { if (pollVoted || pollClosed) { delegate.didPressInstantButton(this, drawInstantViewType); @@ -3234,21 +3235,22 @@ private boolean checkCommentButtonMotionEvent(MotionEvent event) { } int x = (int) event.getX(); int y = (int) event.getY(); - if (currentPosition != null && (currentPosition.flags & MessageObject.POSITION_FLAG_LEFT) == 0 && commentButtonRect.contains(x, y)) { + if (currentPosition != null && ((currentPosition.flags & MessageObject.POSITION_FLAG_LEFT) == 0 || (currentPosition.flags & MessageObject.POSITION_FLAG_BOTTOM) == 0)) { ViewGroup parent = (ViewGroup) getParent(); + boolean r = false; for (int a = 0, N = parent.getChildCount(); a < N; a++) { View view = parent.getChildAt(a); if (view != this && view instanceof ChatMessageCell) { ChatMessageCell cell = (ChatMessageCell) view; - if (cell.drawCommentButton && cell.currentMessagesGroup == currentMessagesGroup && (cell.currentPosition.flags & MessageObject.POSITION_FLAG_LEFT) != 0) { + if (cell.drawCommentButton && cell.currentMessagesGroup == currentMessagesGroup && (cell.currentPosition.flags & MessageObject.POSITION_FLAG_LEFT) != 0 && (cell.currentPosition.flags & MessageObject.POSITION_FLAG_BOTTOM) != 0) { MotionEvent childEvent = MotionEvent.obtain(0, 0, event.getActionMasked(), event.getX() + getLeft() - cell.getLeft(), event.getY() + getTop() - cell.getTop(), 0); - cell.checkCommentButtonMotionEvent(childEvent); + r = cell.checkCommentButtonMotionEvent(childEvent); childEvent.recycle(); break; } } } - return true; + return r; } if (event.getAction() == MotionEvent.ACTION_DOWN) { if (commentButtonRect.contains(x, y)) { @@ -3906,7 +3908,7 @@ private boolean checkBotButtonMotionEvent(MotionEvent event) { } button.setPressed(false); if (currentMessageObject.scheduled) { - Toast.makeText(getContext(), getString("MessageScheduledBotAction", R.string.MessageScheduledBotAction), Toast.LENGTH_LONG).show(); + Toast.makeText(getContext(), getString(R.string.MessageScheduledBotAction), Toast.LENGTH_LONG).show(); } else { if (button.button != null) { delegate.didPressBotButton(this, button.button); @@ -5466,7 +5468,7 @@ private void fileAttach(boolean checkUI, final MessageObject messageObject) { checkVideoPlayback(true, null); } if (messageObject != null && !messageObject.mediaExists) { - int canDownload = DownloadController.getInstance(currentAccount).canDownloadMedia(messageObject.messageOwner); + int canDownload = DownloadController.getInstance(currentAccount).canDownloadMediaType(messageObject); TLRPC.Document document = messageObject.getDocument(); boolean loadDocumentFromImageReceiver = MessageObject.isStickerDocument(document) || MessageObject.isAnimatedStickerDocument(document, true) || MessageObject.isGifDocument(document) || MessageObject.isRoundVideoDocument(document); if (!loadDocumentFromImageReceiver && !isSmallImage) { @@ -5594,7 +5596,7 @@ private void setMessageContent(MessageObject messageObject, MessageObject.Groupe } } if (chosenAnswer != null) { - sendAccessibilityEventForVirtualView(MessageAccessibilityNodeProvider.POLL_BUTTONS_START + a, AccessibilityEvent.TYPE_VIEW_SELECTED, chosenAnswer.correct ? getString("AccDescrQuizCorrectAnswer", R.string.AccDescrQuizCorrectAnswer) : getString("AccDescrQuizIncorrectAnswer", R.string.AccDescrQuizIncorrectAnswer)); + sendAccessibilityEventForVirtualView(MessageAccessibilityNodeProvider.POLL_BUTTONS_START + a, AccessibilityEvent.TYPE_VIEW_SELECTED, getString(chosenAnswer.correct ? R.string.AccDescrQuizCorrectAnswer : R.string.AccDescrQuizIncorrectAnswer)); } } } @@ -9591,7 +9593,7 @@ private void setMessageContent(MessageObject messageObject, MessageObject.Groupe botButtonsByPosition.clear(); botButtonsLayout = null; } - if (!messageObject.isRestrictedMessage && !messageObject.isRepostPreview && currentPosition == null && (messageObject.messageOwner.reply_markup instanceof TLRPC.TL_replyInlineMarkup) && !messageObject.hasExtendedMedia()) { + if (!messageObject.isRestrictedMessage && !messageObject.isRepostPreview && (currentPosition == null || currentMessagesGroup != null && currentMessagesGroup.isDocuments && currentPosition.last) && (messageObject.messageOwner.reply_markup instanceof TLRPC.TL_replyInlineMarkup) && !messageObject.hasExtendedMedia()) { int rows; if (messageObject.messageOwner.reply_markup instanceof TLRPC.TL_replyInlineMarkup) { @@ -9750,8 +9752,9 @@ private void setMessageContent(MessageObject messageObject, MessageObject.Groupe } if (documentAttachType == DOCUMENT_ATTACH_TYPE_MUSIC) { if (MessageObject.isDocumentHasThumb(documentAttach)) { - TLRPC.PhotoSize thumb = FileLoader.getClosestPhotoSizeWithSize(documentAttach.thumbs, 90); - radialProgress.setImageOverlay(thumb, documentAttach, messageObject); + TLRPC.PhotoSize thumb = FileLoader.getClosestPhotoSizeWithSize(documentAttach.thumbs, dp(22), true, null, false); + TLRPC.PhotoSize image = FileLoader.getClosestPhotoSizeWithSize(documentAttach.thumbs, dp(44), true, thumb, true); + radialProgress.setImageOverlay(image, thumb, documentAttach, messageObject); } else { String artworkUrl = messageObject.getArtworkUrl(true); if (!TextUtils.isEmpty(artworkUrl)) { @@ -9955,7 +9958,7 @@ private void updateFlagSecure() { Activity activity = AndroidUtilities.findActivity(getContext()); Window window = activity == null ? null : activity.getWindow(); if (window != null) { - flagSecure = new FlagSecureReason(window, () -> currentMessageObject != null && !NekoXConfig.disableFlagSecure && currentMessageObject.messageOwner != null && (currentMessageObject.type == MessageObject.TYPE_PAID_MEDIA || currentMessageObject.messageOwner.noforwards || currentMessageObject.isVoiceOnce() || currentMessageObject.hasRevealedExtendedMedia())); + flagSecure = new FlagSecureReason(window, () -> currentMessageObject != null && !NekoXConfig.disableFlagSecure && currentMessageObject.messageOwner != null && (currentMessageObject.type == MessageObject.TYPE_PAID_MEDIA && (groupMedia == null || groupMedia.hidden) || currentMessageObject.messageOwner.noforwards || currentMessageObject.isVoiceOnce() || currentMessageObject.hasRevealedExtendedMedia())); if (attachedToWindow) { flagSecure.attach(); } @@ -10121,7 +10124,7 @@ public void invalidate() { return true; } else if (pressedLink.getSpan() instanceof URLSpanNoUnderline) { URLSpanNoUnderline url = (URLSpanNoUnderline) pressedLink.getSpan(); - if (ChatActivity.isClickableLink(url.getURL()) || url.getURL().startsWith("/")) { + if (ChatActivity.isClickableLink(url.getURL()) || url.getURL().startsWith("/") || url.getURL().startsWith("tel:")) { hadLongPress = true; delegate.didPressUrl(this, pressedLink.getSpan(), true); return true; @@ -10590,7 +10593,9 @@ private int createDocumentLayout(int maxWidth, MessageObject messageObject) { if (messageObject.sponsoredMedia != null) { documentAttach = messageObject.sponsoredMedia.document; } else if (messageObject.type == MessageObject.TYPE_TEXT) { - documentAttach = MessageObject.getMedia(messageObject.messageOwner).webpage.document; + TLRPC.MessageMedia media = MessageObject.getMedia(messageObject.messageOwner); + TLRPC.WebPage webpage = media == null ? null : media.webpage; + documentAttach = webpage == null ? null : webpage.document; } else { documentAttach = messageObject.getDocument(); } @@ -12553,6 +12558,7 @@ protected void onOpen() { updateReactionLayoutPosition(); if (shouldDrawCaptionLayout() && !currentMessageObject.preview) { drawCaptionLayout(canvas, false, 1f); + drawCommentLayout(canvas, 1f); drawReactionsLayout(canvas, 1f, null); } @@ -12896,7 +12902,7 @@ private void updateReactionLayoutPosition() { } } reactionsLayoutInBubble.y = getBackgroundDrawableBottom() - AndroidUtilities.dp(10) - reactionsLayoutInBubble.height; - reactionsLayoutInBubble.y -= (drawCommentButton ? AndroidUtilities.dp(43) : 0); + reactionsLayoutInBubble.y -= (drawCommentButton ? AndroidUtilities.dp(currentMessageObject.type == MessageObject.TYPE_PAID_MEDIA && hasCaptionLayout() ? 28 : 43) : 0); if (hasNewLineForTime && !(drawForwardedName && hasLinkPreview && documentAttachType == DOCUMENT_ATTACH_TYPE_AUDIO)) { reactionsLayoutInBubble.y -= AndroidUtilities.dp(16); } @@ -16784,9 +16790,6 @@ protected void onClick() { } if (hasReplyQuote || messageObject.messageOwner.reply_to != null && messageObject.messageOwner.reply_to.quote_text != null && messageObject.messageOwner.reply_to.reply_from != null) { String mess = messageObject.messageOwner.reply_to.quote_text; - if (mess.length() > 150) { - mess = mess.substring(0, 150); - } mess = mess.replace('\n', ' '); stringFinalText = new SpannableStringBuilder(mess); stringFinalText = Emoji.replaceEmoji(stringFinalText, textPaint.getFontMetricsInt(), AndroidUtilities.dp(14), false); @@ -16827,6 +16830,8 @@ protected void onClick() { if (!(mess instanceof SpannableStringBuilder)) { mess = new SpannableStringBuilder(mess); } + mess = AndroidUtilities.removeSpans(mess, QuoteSpan.class); + mess = AndroidUtilities.removeSpans(mess, QuoteSpan.QuoteStyleSpan.class); mess = AndroidUtilities.replaceNewLines(mess); stringFinalText = Emoji.replaceEmoji(mess, textPaint.getFontMetricsInt(), AndroidUtilities.dp(14), true); if (messageObject.replyMessageObject.messageOwner != null) { @@ -17056,7 +17061,7 @@ private String getAuthorName() { if (currentUser != null) { return UserObject.getUserName(currentUser); } else if (currentChat != null) { - if (currentMessageObject != null && currentChat.signature_profiles) { + if (currentMessageObject != null && (currentMessageObject.getDialogId() != UserObject.REPLY_BOT) && currentChat.signature_profiles) { long did = DialogObject.getPeerDialogId(currentMessageObject.messageOwner.from_id); if (did >= 0) { TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(did); @@ -18115,6 +18120,7 @@ public boolean hasOutboundsContent() { return false; } return ( + reactionsLayoutInBubble.hasOverlay() || (!transitionParams.transitionBotButtons.isEmpty() && transitionParams.animateBotButtonsChanged) || !botButtons.isEmpty() || drawSideButton != 0 || @@ -18153,6 +18159,11 @@ public void drawOutboundsContent(Canvas canvas) { drawAnimatedEmojis(canvas, 1f); } + if (reactionsLayoutInBubble.hasOverlay() && currentMessageObject != null && currentMessageObject.shouldDrawReactions() && (currentPosition == null || ((currentPosition.flags & MessageObject.POSITION_FLAG_BOTTOM) != 0 && (currentPosition.flags & MessageObject.POSITION_FLAG_LEFT) != 0)) && !reactionsLayoutInBubble.isSmall) { + drawReactionsLayoutOverlay(canvas, 1f); + invalidateOutbounds(); + } + if (currentNameStatusDrawable != null && drawNameLayout && nameLayout != null && (currentPosition == null || currentPosition.minX == 0 && currentPosition.minY == 0) && !(currentMessageObject.deleted && !drawingToBitmap && currentMessagesGroup != null && currentMessagesGroup.messages.size() >= 1)) { int color; float nameX, nameY; @@ -19756,33 +19767,7 @@ public void drawCaptionLayout(Canvas canvas, boolean selectionOnly, float alpha) } } - public void drawReactionsLayout(Canvas canvas, float alpha, Integer only) { - if (isRoundVideo) { - reactionsLayoutInBubble.drawServiceShaderBackground = 1f - getVideoTranscriptionProgress(); - } - if (currentMessageObject != null && currentMessageObject.shouldDrawReactions() && (currentPosition == null || ((currentPosition.flags & MessageObject.POSITION_FLAG_BOTTOM) != 0 && (currentPosition.flags & MessageObject.POSITION_FLAG_LEFT) != 0)) && !reactionsLayoutInBubble.isSmall) { - if (reactionsLayoutInBubble.drawServiceShaderBackground > 0) { - applyServiceShaderMatrix(); - } - if (getAlpha() != 1f) { - AndroidUtilities.rectTmp.set(0, 0, getWidth(), getHeight()); - canvas.saveLayerAlpha(AndroidUtilities.rectTmp, (int) (0xFF * getAlpha()), Canvas.ALL_SAVE_FLAG); - } - if (reactionsLayoutInBubble.drawServiceShaderBackground > 0 || !transitionParams.animateBackgroundBoundsInner || currentPosition != null || isRoundVideo) { - reactionsLayoutInBubble.draw(canvas, transitionParams.animateChange ? transitionParams.animateChangeProgress : 1f, only); - } else { - canvas.save(); - canvas.clipRect(0, 0, getMeasuredWidth(), getBackgroundDrawableBottom() + transitionParams.deltaBottom); - reactionsLayoutInBubble.draw(canvas, transitionParams.animateChange ? transitionParams.animateChangeProgress : 1f, only); - canvas.restore(); - } - if (getAlpha() != 1f) { - canvas.restore(); - } - } - } - - private void drawCaptionLayout(Canvas canvas, MessageObject.TextLayoutBlocks captionLayout, boolean origin, boolean selectionOnly, float alpha) { + public void drawCommentLayout(Canvas canvas, float alpha) { int x; if (mediaBackground) { x = backgroundDrawableLeft + AndroidUtilities.dp(12) + getExtraTextX(); @@ -19806,6 +19791,9 @@ private void drawCaptionLayout(Canvas canvas, MessageObject.TextLayoutBlocks cap } endX += firstLineWidth - AndroidUtilities.dp(9); } + if (currentChat != null && currentChat.signature_profiles) { + endX -= dp(48); + } } else { endX += backgroundWidth - (mediaBackground ? 0 : AndroidUtilities.dp(9)); } @@ -19839,10 +19827,10 @@ private void drawCaptionLayout(Canvas canvas, MessageObject.TextLayoutBlocks cap buttonX -= AndroidUtilities.dp(10); } commentButtonRect.set( - buttonX - AndroidUtilities.dp((currentMessageObject == null || !currentMessageObject.isOutOwner()) && !drawPinnedBottom && currentPosition == null && (currentMessageObject == null || currentMessageObject.type != MessageObject.TYPE_POLL || pollInstantViewTouchesBottom) ? 6 : 0), - (int) buttonY, - endX - AndroidUtilities.dp(14), - layoutHeight - AndroidUtilities.dp(h) + 1 + buttonX - AndroidUtilities.dp((currentMessageObject == null || !currentMessageObject.isOutOwner()) && !drawPinnedBottom && currentPosition == null && (currentMessageObject == null || currentMessageObject.type != MessageObject.TYPE_POLL || pollInstantViewTouchesBottom) ? 6 : 0), + (int) buttonY, + endX - AndroidUtilities.dp(14), + layoutHeight - AndroidUtilities.dp(h) + 1 ); if (selectorDrawable[1] != null && selectorDrawableMaskType[1] == 2) { int count = canvas.getSaveCount(); @@ -20063,6 +20051,95 @@ private void drawCaptionLayout(Canvas canvas, MessageObject.TextLayoutBlocks cap } } } + } + + public void drawReactionsLayout(Canvas canvas, float alpha, Integer only) { + if (isRoundVideo) { + reactionsLayoutInBubble.drawServiceShaderBackground = 1f - getVideoTranscriptionProgress(); + } + if (currentMessageObject != null && currentMessageObject.shouldDrawReactions() && (currentPosition == null || ((currentPosition.flags & MessageObject.POSITION_FLAG_BOTTOM) != 0 && (currentPosition.flags & MessageObject.POSITION_FLAG_LEFT) != 0)) && !reactionsLayoutInBubble.isSmall) { + if (reactionsLayoutInBubble.drawServiceShaderBackground > 0) { + applyServiceShaderMatrix(); + } + boolean restore = false; + if (getAlpha() != 1f) { + AndroidUtilities.rectTmp.set(0, 0, getWidth(), getHeight()); + canvas.saveLayerAlpha(AndroidUtilities.rectTmp, (int) (0xFF * getAlpha()), Canvas.ALL_SAVE_FLAG); + restore = true; + } + if (reactionsLayoutInBubble.drawServiceShaderBackground > 0 || !transitionParams.animateBackgroundBoundsInner || currentPosition != null || isRoundVideo) { + reactionsLayoutInBubble.draw(canvas, transitionParams.animateChange ? transitionParams.animateChangeProgress : 1f, only); + } else { + canvas.save(); + canvas.clipRect(0, 0, getMeasuredWidth(), getBackgroundDrawableBottom() + transitionParams.deltaBottom); + reactionsLayoutInBubble.draw(canvas, transitionParams.animateChange ? transitionParams.animateChangeProgress : 1f, only); + canvas.restore(); + } + if (restore) { + canvas.restore(); + } + } + } + + public void drawReactionsLayoutOverlay(Canvas canvas, float alpha) { + if (isRoundVideo) { + reactionsLayoutInBubble.drawServiceShaderBackground = 1f - getVideoTranscriptionProgress(); + } + if (currentMessageObject != null && currentMessageObject.shouldDrawReactions() && (currentPosition == null || ((currentPosition.flags & MessageObject.POSITION_FLAG_BOTTOM) != 0 && (currentPosition.flags & MessageObject.POSITION_FLAG_LEFT) != 0)) && !reactionsLayoutInBubble.isSmall) { + if (reactionsLayoutInBubble.drawServiceShaderBackground > 0) { + applyServiceShaderMatrix(); + } + boolean restore = false; + if (getAlpha() != 1f) { + AndroidUtilities.rectTmp.set(0, 0, getWidth(), getHeight()); + canvas.saveLayerAlpha(AndroidUtilities.rectTmp, (int) (0xFF * getAlpha()), Canvas.ALL_SAVE_FLAG); + restore = true; + } + if (reactionsLayoutInBubble.drawServiceShaderBackground > 0 || !transitionParams.animateBackgroundBoundsInner || currentPosition != null || isRoundVideo) { + reactionsLayoutInBubble.drawOverlay(canvas, transitionParams.animateChange ? transitionParams.animateChangeProgress : 1f); + } else { + canvas.save(); + canvas.clipRect(0, 0, getMeasuredWidth(), getBackgroundDrawableBottom() + transitionParams.deltaBottom); + reactionsLayoutInBubble.drawOverlay(canvas, transitionParams.animateChange ? transitionParams.animateChangeProgress : 1f); + canvas.restore(); + } + if (restore) { + canvas.restore(); + } + } + } + + private void drawCaptionLayout(Canvas canvas, MessageObject.TextLayoutBlocks captionLayout, boolean origin, boolean selectionOnly, float alpha) { + int x; + if (mediaBackground) { + x = backgroundDrawableLeft + AndroidUtilities.dp(12) + getExtraTextX(); + } else { + x = backgroundDrawableLeft + AndroidUtilities.dp(drawPinnedBottom ? 12 : 18) + getExtraTextX(); + } + int endX = x - getExtraTextX(); + if (currentMessagesGroup != null && !currentMessageObject.isMusic() && !currentMessageObject.isDocument()) { + int dWidth = getGroupPhotosWidth(); + if ((currentPosition.flags & MessageObject.POSITION_FLAG_LEFT) == 0) { + endX += Math.ceil(currentPosition.pw / 1000.0f * dWidth); + } else { + int firstLineWidth = 0; + for (int a = 0; a < currentMessagesGroup.posArray.size(); a++) { + MessageObject.GroupedMessagePosition position = currentMessagesGroup.posArray.get(a); + if (position.minY == 0) { + firstLineWidth += Math.ceil((position.pw + position.leftSpanOffset) / 1000.0f * dWidth); + } else { + break; + } + } + endX += firstLineWidth - AndroidUtilities.dp(9); + } + } else { + endX += backgroundWidth - (mediaBackground ? 0 : AndroidUtilities.dp(9)); + } + if (currentPosition != null && (currentPosition.flags & MessageObject.POSITION_FLAG_LEFT) == 0 && !currentMessagesGroup.hasSibling) { + endX += AndroidUtilities.dp(14); + } + drawCommentLayout(canvas, alpha); if (captionLayout == null || selectionOnly && links.isEmpty() || (currentMessageObject.deleted && !drawingToBitmap && currentPosition != null) || alpha == 0) { return; @@ -20147,6 +20224,7 @@ private void drawCaptionLayout(Canvas canvas, MessageObject.TextLayoutBlocks cap } invalidate(); } + canvas.restore(); if (currentMessageObject.type == MessageObject.TYPE_ROUND_VIDEO) { Theme.chat_timePaint.setColor( ColorUtils.blendARGB( @@ -20159,7 +20237,6 @@ private void drawCaptionLayout(Canvas canvas, MessageObject.TextLayoutBlocks cap ) ); } - canvas.restore(); if (!selectionOnly) { if (transitionParams.animateMediaAbove && transitionParams.animateChangeProgress != 1f) { final float captionYTop, captionYBottom; @@ -22180,7 +22257,7 @@ public void drawOverlays(Canvas canvas) { invalidate(); updateSecretTimeText(currentMessageObject); } - if ((drawVideoImageButton || animatingDrawVideoImageButton != 0) && !currentMessageObject.isRepostPreview && !currentMessageObject.sendPreview && photoImage.getVisible() && !isSmallImage) { + if ((drawVideoImageButton || animatingDrawVideoImageButton != 0) && !currentMessageObject.isRepostPreview && !currentMessageObject.sendPreview && photoImage.getVisible() && !isSmallImage && !currentMessageObject.isHiddenSensitive()) { float alpha = controlsAlpha; if (drawPhotoImage && currentMessageObject != null && currentMessageObject.hasMediaSpoilers() && currentMessageObject.isSensitive() && (!currentMessageObject.isMediaSpoilersRevealed || mediaSpoilerRevealProgress != 0 && mediaSpoilerRevealProgress < 1)) { alpha *= mediaSpoilerRevealProgress; @@ -22684,6 +22761,47 @@ public StaticLayout getDescriptionlayout() { return descriptionLayout; } + public float getDescriptionLayoutX() { + float startY, linkX; + if (hasGamePreview) { + startY = AndroidUtilities.dp(14) + namesOffset; + linkX = unmovedTextX - AndroidUtilities.dp(10); + } else if (hasInvoicePreview) { + startY = AndroidUtilities.dp(14) + namesOffset; + linkX = unmovedTextX + AndroidUtilities.dp(1); + } else if (currentMessageObject.isSponsored()) { + startY = this.linkPreviewY - AndroidUtilities.dp(2); + linkX = unmovedTextX + AndroidUtilities.dp(1); + } else { + if (currentMessageObject.isOutOwner()) { + linkX = backgroundDrawableLeft + AndroidUtilities.dp(12) + getExtraTextX(); + if (currentMessageObject.type == MessageObject.TYPE_EMOJIS) { + linkX -= Math.max(0, linkX + Math.max(replyNameWidth, replyTextWidth) + AndroidUtilities.dp(14) - AndroidUtilities.displaySize.x); + } + } else { + if (mediaBackground) { + linkX = backgroundDrawableLeft + AndroidUtilities.dp(12) + getExtraTextX(); + } else { + linkX = backgroundDrawableLeft + AndroidUtilities.dp(drawPinnedBottom ? 12 : 18) + getExtraTextX(); + } + } + linkX += transitionParams.deltaLeft; + linkX -= AndroidUtilities.dp(1.33f); + + startY = this.linkPreviewY; + if (transitionParams.animateLinkPreviewY) { + startY = AndroidUtilities.lerp(transitionParams.animateFromLinkPreviewY, startY, transitionParams.animateChangeProgress); + } + } + final float right = getBackgroundDrawableRight() + (transitionParams != null ? transitionParams.deltaRight : 0) - AndroidUtilities.dp(10 + (currentMessageObject.isOutOwner() && !mediaBackground && !drawPinnedBottom ? 6 : 0)) - getExtraTextX(); + final int width = (int) (right - linkX); + return linkX + AndroidUtilities.dp(10) + (Math.abs(descriptionLayoutLeft) > 1 ? width - AndroidUtilities.dp(20) - descriptionLayoutWidth - descriptionLayoutLeft : 0); + } + + public float getDescriptionLayoutY() { + return descriptionY + (!transitionParams.animateLinkPreviewY ? -transitionParams.deltaTop + transitionParams.deltaBottom : 0); + } + public StaticLayout getFactCheckLayout() { return factCheckTextLayout; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ContextLinkCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ContextLinkCell.java index 140959617c..ecf5102516 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ContextLinkCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ContextLinkCell.java @@ -1040,28 +1040,28 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { StringBuilder sbuf = new StringBuilder(); switch (documentAttachType) { case DOCUMENT_ATTACH_TYPE_DOCUMENT: - sbuf.append(LocaleController.getString("AttachDocument", R.string.AttachDocument)); + sbuf.append(LocaleController.getString(R.string.AttachDocument)); break; case DOCUMENT_ATTACH_TYPE_GIF: - sbuf.append(LocaleController.getString("AttachGif", R.string.AttachGif)); + sbuf.append(LocaleController.getString(R.string.AttachGif)); break; case DOCUMENT_ATTACH_TYPE_AUDIO: - sbuf.append(LocaleController.getString("AttachAudio", R.string.AttachAudio)); + sbuf.append(LocaleController.getString(R.string.AttachAudio)); break; case DOCUMENT_ATTACH_TYPE_VIDEO: - sbuf.append(LocaleController.getString("AttachVideo", R.string.AttachVideo)); + sbuf.append(LocaleController.getString(R.string.AttachVideo)); break; case DOCUMENT_ATTACH_TYPE_MUSIC: - sbuf.append(LocaleController.getString("AttachMusic", R.string.AttachMusic)); + sbuf.append(LocaleController.getString(R.string.AttachMusic)); break; case DOCUMENT_ATTACH_TYPE_STICKER: - sbuf.append(LocaleController.getString("AttachSticker", R.string.AttachSticker)); + sbuf.append(LocaleController.getString(R.string.AttachSticker)); break; case DOCUMENT_ATTACH_TYPE_PHOTO: - sbuf.append(LocaleController.getString("AttachPhoto", R.string.AttachPhoto)); + sbuf.append(LocaleController.getString(R.string.AttachPhoto)); break; case DOCUMENT_ATTACH_TYPE_GEO: - sbuf.append(LocaleController.getString("AttachLocation", R.string.AttachLocation)); + sbuf.append(LocaleController.getString(R.string.AttachLocation)); break; } final boolean hasTitle = titleLayout != null && !TextUtils.isEmpty(titleLayout.getText()); 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 f0f11818e3..7c9d6c2434 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java @@ -945,7 +945,7 @@ private CharSequence formatArchivedDialogNames() { title = xyz.nextalone.nagram.helper.MessageHelper.INSTANCE.zalgoFilter(currentChat.title.replace('\n', ' ')); } else if (currentUser != null) { if (UserObject.isDeleted(currentUser)) { - title = LocaleController.getString("HiddenName", R.string.HiddenName); + title = LocaleController.getString(R.string.HiddenName); } else { title = AndroidUtilities.removeDiacritics(ContactsController.formatName(currentUser.first_name, currentUser.last_name).replace('\n', ' ')); } @@ -1133,7 +1133,7 @@ public void buildLayout() { } if (customDialog.type == 1) { - messageNameString = LocaleController.getString("FromYou", R.string.FromYou); + messageNameString = LocaleController.getString(R.string.FromYou); checkMessage = false; SpannableStringBuilder stringBuilder; if (customDialog.isMedia) { @@ -1339,7 +1339,7 @@ public void buildLayout() { } if (draftVoice || draftMessage != null) { checkMessage = false; - messageNameString = LocaleController.getString("Draft", R.string.Draft); + messageNameString = LocaleController.getString(R.string.Draft); if (draftMessage != null && TextUtils.isEmpty(draftMessage.message)) { if ((useForceThreeLines || SharedConfig.useThreeLinesLayout) && !hasTags()) { messageString = ""; @@ -1379,23 +1379,23 @@ public void buildLayout() { } else { if (clearingDialog) { currentMessagePaint = Theme.dialogs_messagePrintingPaint[paintIndex]; - messageString = LocaleController.getString("HistoryCleared", R.string.HistoryCleared); + messageString = LocaleController.getString(R.string.HistoryCleared); } else if (message == null) { if (currentDialogFolderId != 0) { messageString = formatArchivedDialogNames(); } else if (encryptedChat != null) { currentMessagePaint = Theme.dialogs_messagePrintingPaint[paintIndex]; if (encryptedChat instanceof TLRPC.TL_encryptedChatRequested) { - messageString = LocaleController.getString("EncryptionProcessing", R.string.EncryptionProcessing); + messageString = LocaleController.getString(R.string.EncryptionProcessing); } else if (encryptedChat instanceof TLRPC.TL_encryptedChatWaiting) { - messageString = LocaleController.formatString("AwaitingEncryption", R.string.AwaitingEncryption, UserObject.getFirstName(user)); + messageString = LocaleController.formatString(R.string.AwaitingEncryption, UserObject.getFirstName(user)); } else if (encryptedChat instanceof TLRPC.TL_encryptedChatDiscarded) { - messageString = LocaleController.getString("EncryptionRejected", R.string.EncryptionRejected); + messageString = LocaleController.getString(R.string.EncryptionRejected); } else if (encryptedChat instanceof TLRPC.TL_encryptedChat) { if (encryptedChat.admin_id == UserConfig.getInstance(currentAccount).getClientUserId()) { - messageString = LocaleController.formatString("EncryptedChatStartedOutgoing", R.string.EncryptedChatStartedOutgoing, UserObject.getFirstName(user)); + messageString = LocaleController.formatString(R.string.EncryptedChatStartedOutgoing, UserObject.getFirstName(user)); } else { - messageString = LocaleController.getString("EncryptedChatStartedIncoming", R.string.EncryptedChatStartedIncoming); + messageString = LocaleController.getString(R.string.EncryptedChatStartedIncoming); } } } else { @@ -1448,9 +1448,9 @@ public void buildLayout() { messageString = LocaleController.formatPluralStringComma("Subscribers", chat.participants_count); } else { if (!ChatObject.isPublic(chat)) { - messageString = LocaleController.getString("ChannelPrivate", R.string.ChannelPrivate).toLowerCase(); + messageString = LocaleController.getString(R.string.ChannelPrivate).toLowerCase(); } else { - messageString = LocaleController.getString("ChannelPublic", R.string.ChannelPublic).toLowerCase(); + messageString = LocaleController.getString(R.string.ChannelPublic).toLowerCase(); } } } else { @@ -1458,11 +1458,11 @@ public void buildLayout() { messageString = LocaleController.formatPluralStringComma("Members", chat.participants_count); } else { if (chat.has_geo) { - messageString = LocaleController.getString("MegaLocation", R.string.MegaLocation); + messageString = LocaleController.getString(R.string.MegaLocation); } else if (!ChatObject.isPublic(chat)) { - messageString = LocaleController.getString("MegaPrivate", R.string.MegaPrivate).toLowerCase(); + messageString = LocaleController.getString(R.string.MegaPrivate).toLowerCase(); } else { - messageString = LocaleController.getString("MegaPublic", R.string.MegaPublic).toLowerCase(); + messageString = LocaleController.getString(R.string.MegaPublic).toLowerCase(); } } } @@ -1498,8 +1498,8 @@ public void buildLayout() { if (!isSavedDialog && user != null && user.self && !message.isOutOwner()) { triedMessageName = AndroidUtilities.removeDiacritics(getMessageNameString()); } - if (isSavedDialog && user != null && !user.self && message != null && message.isOutOwner() || triedMessageName != null || chat != null && chat.id > 0 && fromChat == null && (!ChatObject.isChannel(chat) || ChatObject.isMegagroup(chat)) && !ForumUtilities.isTopicCreateMessage(message)) { - messageNameString = AndroidUtilities.removeDiacritics(triedMessageName != null ? triedMessageName : getMessageNameString()); + if (isSavedDialog && user != null && !user.self && message != null && message.isOutOwner() || triedMessageName != null || chat != null && chat.id > 0 && (fromChat == null || fromChat.id != chat.id) && (!ChatObject.isChannel(chat) || ChatObject.isMegagroup(chat)) && !ForumUtilities.isTopicCreateMessage(message)) { + messageNameString = AndroidUtilities.removeDiacritics(triedMessageName != null ? triedMessageName : getMessageNameString()); if (chat != null && chat.forum && !isTopic && !useFromUserAsAvatar) { CharSequence topicName = MessagesController.getInstance(currentAccount).getTopicsController().getTopicIconName(chat, message, currentMessagePaint); if (!TextUtils.isEmpty(topicName)) { @@ -1561,7 +1561,7 @@ public void buildLayout() { } } } else if (message.messageOwner.media instanceof TLRPC.TL_messageMediaPhoto && message.messageOwner.media.photo instanceof TLRPC.TL_photoEmpty && message.messageOwner.media.ttl_seconds != 0) { - messageString = LocaleController.getString("AttachPhotoExpired", R.string.AttachPhotoExpired); + messageString = LocaleController.getString(R.string.AttachPhotoExpired); } else if (message.messageOwner.media instanceof TLRPC.TL_messageMediaDocument && (message.messageOwner.media.document instanceof TLRPC.TL_documentEmpty || message.messageOwner.media.document == null) && message.messageOwner.media.ttl_seconds != 0) { if (message.messageOwner.media.voice) { messageString = LocaleController.getString(R.string.AttachVoiceExpired); @@ -1638,7 +1638,7 @@ public void buildLayout() { } messageString = LocaleController.getString(isChannel ? R.string.BoostingGiveawayChannelStarted : R.string.BoostingGiveawayGroupStarted); } else if (message.messageOwner.media instanceof TLRPC.TL_messageMediaGiveawayResults) { - messageString = LocaleController.getString("BoostingGiveawayResults", R.string.BoostingGiveawayResults); + messageString = LocaleController.getString(R.string.BoostingGiveawayResults); } else if (message.messageOwner.media instanceof TLRPC.TL_messageMediaPoll) { TLRPC.TL_messageMediaPoll mediaPoll = (TLRPC.TL_messageMediaPoll) message.messageOwner.media; if (mediaPoll.poll.question != null && mediaPoll.poll.question.entities != null) { @@ -1667,9 +1667,9 @@ public void buildLayout() { username = username.substring(0, index); } } - messageString = LocaleController.formatString("StoryYouMentionInDialog", R.string.StoryYouMentionInDialog, username); + messageString = LocaleController.formatString(R.string.StoryYouMentionInDialog, username); } else { - messageString = LocaleController.getString("StoryMentionInDialog", R.string.StoryMentionInDialog); + messageString = LocaleController.getString(R.string.StoryMentionInDialog); } } else { if (message.hasHighlightedWords() && !TextUtils.isEmpty(message.messageOwner.message)){ @@ -1848,11 +1848,11 @@ public void buildLayout() { drawPinBackground = true; promoDialog = true; if (messagesController.promoDialogType == MessagesController.PROMO_TYPE_PROXY) { - timeString = LocaleController.getString("UseProxySponsor", R.string.UseProxySponsor); + timeString = LocaleController.getString(R.string.UseProxySponsor); } else if (messagesController.promoDialogType == MessagesController.PROMO_TYPE_PSA) { timeString = LocaleController.getString("PsaType_" + messagesController.promoPsaType); if (TextUtils.isEmpty(timeString)) { - timeString = LocaleController.getString("PsaTypeDefault", R.string.PsaTypeDefault); + timeString = LocaleController.getString(R.string.PsaTypeDefault); } if (!TextUtils.isEmpty(messagesController.promoPsaMessage)) { messageString = messagesController.promoPsaMessage; @@ -1862,7 +1862,7 @@ public void buildLayout() { } if (currentDialogFolderId != 0) { - nameString = LocaleController.getString("ArchivedChats", R.string.ArchivedChats); + nameString = LocaleController.getString(R.string.ArchivedChats); } else { if (chat != null) { if (useFromUserAsAvatar) { @@ -1885,26 +1885,26 @@ public void buildLayout() { } } else if (user != null) { if (UserObject.isReplyUser(user)) { - nameString = LocaleController.getString("RepliesTitle", R.string.RepliesTitle); + nameString = LocaleController.getString(R.string.RepliesTitle); } else if (UserObject.isAnonymous(user)) { nameString = LocaleController.getString(R.string.AnonymousForward); } else if (UserObject.isUserSelf(user)) { if (isSavedDialog) { nameString = LocaleController.getString(R.string.MyNotes); } else if (useMeForMyMessages) { - nameString = LocaleController.getString("FromYou", R.string.FromYou); + nameString = LocaleController.getString(R.string.FromYou); } else { if (dialogsType == DialogsActivity.DIALOGS_TYPE_FORWARD) { drawPinBackground = true; } - nameString = LocaleController.getString("SavedMessages", R.string.SavedMessages); + nameString = LocaleController.getString(R.string.SavedMessages); } } else { nameString = AndroidUtilities.removeDiacritics(UserObject.getUserName(user)); } } if (nameString != null && nameString.length() == 0) { - nameString = LocaleController.getString("HiddenName", R.string.HiddenName); + nameString = LocaleController.getString(R.string.HiddenName); } } } @@ -4798,7 +4798,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { info.addAction(AccessibilityNodeInfo.ACTION_CLICK); info.addAction(AccessibilityNodeInfo.ACTION_LONG_CLICK); if (!isFolderCell() && parentFragment != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(R.id.acc_action_chat_preview, LocaleController.getString("AccActionChatPreview", R.string.AccActionChatPreview))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(R.id.acc_action_chat_preview, LocaleController.getString(R.string.AccActionChatPreview))); } } if (checkBox != null && checkBox.isChecked()) { @@ -4813,30 +4813,30 @@ public void onPopulateAccessibilityEvent(AccessibilityEvent event) { super.onPopulateAccessibilityEvent(event); StringBuilder sb = new StringBuilder(); if (currentDialogFolderId == 1) { - sb.append(LocaleController.getString("ArchivedChats", R.string.ArchivedChats)); + sb.append(LocaleController.getString(R.string.ArchivedChats)); sb.append(". "); } else { if (encryptedChat != null) { - sb.append(LocaleController.getString("AccDescrSecretChat", R.string.AccDescrSecretChat)); + sb.append(LocaleController.getString(R.string.AccDescrSecretChat)); sb.append(". "); } if (isTopic && forumTopic != null) { - sb.append(LocaleController.getString("AccDescrTopic", R.string.AccDescrTopic)); + sb.append(LocaleController.getString(R.string.AccDescrTopic)); sb.append(". "); sb.append(forumTopic.title); sb.append(". "); } else if (user != null) { if (UserObject.isReplyUser(user)) { - sb.append(LocaleController.getString("RepliesTitle", R.string.RepliesTitle)); + sb.append(LocaleController.getString(R.string.RepliesTitle)); } else if (UserObject.isAnonymous(user)) { sb.append(LocaleController.getString(R.string.AnonymousForward)); } else { if (user.bot) { - sb.append(LocaleController.getString("Bot", R.string.Bot)); + sb.append(LocaleController.getString(R.string.Bot)); sb.append(". "); } if (user.self) { - sb.append(LocaleController.getString("SavedMessages", R.string.SavedMessages)); + sb.append(LocaleController.getString(R.string.SavedMessages)); } else { sb.append(ContactsController.formatName(user.first_name, user.last_name)); } @@ -4844,9 +4844,9 @@ public void onPopulateAccessibilityEvent(AccessibilityEvent event) { sb.append(". "); } else if (chat != null) { if (chat.broadcast) { - sb.append(LocaleController.getString("AccDescrChannel", R.string.AccDescrChannel)); + sb.append(LocaleController.getString(R.string.AccDescrChannel)); } else { - sb.append(LocaleController.getString("AccDescrGroup", R.string.AccDescrGroup)); + sb.append(LocaleController.getString(R.string.AccDescrGroup)); } sb.append(". "); sb.append(chat.title); @@ -4854,15 +4854,15 @@ public void onPopulateAccessibilityEvent(AccessibilityEvent event) { } } if (drawVerified) { - sb.append(LocaleController.getString("AccDescrVerified", R.string.AccDescrVerified)); + sb.append(LocaleController.getString(R.string.AccDescrVerified)); sb.append(". "); } if (dialogMuted) { - sb.append(LocaleController.getString("AccDescrNotificationsMuted", R.string.AccDescrNotificationsMuted)); + sb.append(LocaleController.getString(R.string.AccDescrNotificationsMuted)); sb.append(". "); } if (isOnline()) { - sb.append(LocaleController.getString("AccDescrUserOnline", R.string.AccDescrUserOnline)); + sb.append(LocaleController.getString(R.string.AccDescrUserOnline)); sb.append(". "); } if (unreadCount > 0) { @@ -4874,7 +4874,7 @@ public void onPopulateAccessibilityEvent(AccessibilityEvent event) { sb.append(". "); } if (reactionMentionCount > 0) { - sb.append(LocaleController.getString("AccDescrMentionReaction", R.string.AccDescrMentionReaction)); + sb.append(LocaleController.getString(R.string.AccDescrMentionReaction)); sb.append(". "); } if (message == null || currentDialogFolderId != 0) { @@ -5143,8 +5143,8 @@ public String getMessageNameString() { return AndroidUtilities.removeDiacritics(fromChat.title.replace("\n", "")); } return null; - } else if (message.isOutOwner()) { - return LocaleController.getString("FromYou", R.string.FromYou); + } else if (message.isOutOwner() && fromUser != null) { + return LocaleController.getString(R.string.FromYou); } else if (!isSavedDialog && message != null && message.messageOwner != null && message.messageOwner.from_id instanceof TLRPC.TL_peerUser && (user = MessagesController.getInstance(currentAccount).getUser(message.messageOwner.from_id.user_id)) != null) { return AndroidUtilities.removeDiacritics(UserObject.getFirstName(user).replace("\n", "")); // } else if (message != null && message.messageOwner != null && message.messageOwner.fwd_from != null && message.messageOwner.fwd_from.from_name != null) { @@ -5152,7 +5152,7 @@ public String getMessageNameString() { } else if (fromUser != null) { if (useForceThreeLines || SharedConfig.useThreeLinesLayout) { if (UserObject.isDeleted(fromUser)) { - return LocaleController.getString("HiddenName", R.string.HiddenName); + return LocaleController.getString(R.string.HiddenName); } else { return AndroidUtilities.removeDiacritics(ContactsController.formatName(fromUser.first_name, fromUser.last_name).replace("\n", "")); } @@ -5680,7 +5680,7 @@ private void formatTopicsNames(int currentAccount, MessageObject message, TLRPC. if (!MessagesController.getInstance(currentAccount).getTopicsController().endIsReached(chat.id)) { MessagesController.getInstance(currentAccount).getTopicsController().preloadTopics(chat.id); - formattedNames = LocaleController.getString("Loading", R.string.Loading); + formattedNames = LocaleController.getString(R.string.Loading); isLoadingState = true; } else { formattedNames = "no created topics"; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogMeUrlCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogMeUrlCell.java index 6f06588655..e43e06d6cc 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogMeUrlCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogMeUrlCell.java @@ -186,7 +186,7 @@ public void buildLayout() { messageString = MessagesController.getInstance(currentAccount).linkPrefix + "/" + recentMeUrl.url; if (TextUtils.isEmpty(nameString)) { - nameString = LocaleController.getString("HiddenName", R.string.HiddenName); + nameString = LocaleController.getString(R.string.HiddenName); } int nameWidth; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogsEmptyCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogsEmptyCell.java index 00651bdc80..b684ecc4d5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogsEmptyCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogsEmptyCell.java @@ -136,26 +136,26 @@ public void setType(@EmptyType int value, boolean forward) { case TYPE_WELCOME_WITH_CONTACTS: case TYPE_WELCOME_NO_CONTACTS: icon = R.raw.utyan_newborn; - help = LocaleController.getString("NoChatsHelp", R.string.NoChatsHelp); - titleView.setText(LocaleController.getString("NoChats", R.string.NoChats)); + help = LocaleController.getString(R.string.NoChatsHelp); + titleView.setText(LocaleController.getString(R.string.NoChats)); break; case TYPE_FILTER_NO_CHATS_TO_DISPLAY: imageView.setAutoRepeat(false); icon = R.raw.filter_no_chats; if (forward) { - titleView.setText(LocaleController.getString("FilterNoChatsToForward", R.string.FilterNoChatsToForward)); - help = LocaleController.getString("FilterNoChatsToForwardInfo", R.string.FilterNoChatsToForwardInfo); + titleView.setText(LocaleController.getString(R.string.FilterNoChatsToForward)); + help = LocaleController.getString(R.string.FilterNoChatsToForwardInfo); } else { - titleView.setText(LocaleController.getString("FilterNoChatsToDisplay", R.string.FilterNoChatsToDisplay)); - help = LocaleController.getString("FilterNoChatsToDisplayInfo", R.string.FilterNoChatsToDisplayInfo); + titleView.setText(LocaleController.getString(R.string.FilterNoChatsToDisplay)); + help = LocaleController.getString(R.string.FilterNoChatsToDisplayInfo); } break; default: case TYPE_FILTER_ADDING_CHATS: imageView.setAutoRepeat(true); icon = R.raw.filter_new; - help = LocaleController.getString("FilterAddingChatsInfo", R.string.FilterAddingChatsInfo); - titleView.setText(LocaleController.getString("FilterAddingChats", R.string.FilterAddingChats)); + help = LocaleController.getString(R.string.FilterAddingChatsInfo); + titleView.setText(LocaleController.getString(R.string.FilterAddingChats)); break; } if (icon != 0) { @@ -163,7 +163,7 @@ public void setType(@EmptyType int value, boolean forward) { if (currentType == TYPE_WELCOME_WITH_CONTACTS) { if (isUtyanAnimationTriggered()) { utyanCollapseProgress = 1f; - String noChatsContactsHelp = LocaleController.getString("NoChatsContactsHelp", R.string.NoChatsContactsHelp); + String noChatsContactsHelp = LocaleController.getString(R.string.NoChatsContactsHelp); if (AndroidUtilities.isTablet() && !AndroidUtilities.isSmallTablet()) { noChatsContactsHelp = noChatsContactsHelp.replace('\n', ' '); } @@ -225,7 +225,7 @@ public void startUtyanCollapseAnimation(boolean changeContactsHelp) { } utyanAnimationTriggered = true; if (changeContactsHelp) { - String noChatsContactsHelp = LocaleController.getString("NoChatsContactsHelp", R.string.NoChatsContactsHelp); + String noChatsContactsHelp = LocaleController.getString(R.string.NoChatsContactsHelp); if (AndroidUtilities.isTablet() && !AndroidUtilities.isSmallTablet()) { noChatsContactsHelp = noChatsContactsHelp.replace('\n', ' '); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogsRequestedEmptyCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogsRequestedEmptyCell.java index de3e58ae5f..0f6378995b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogsRequestedEmptyCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogsRequestedEmptyCell.java @@ -109,18 +109,18 @@ protected void onButtonClick() { public void set(TLRPC.RequestPeerType requestPeerType) { if (requestPeerType instanceof TLRPC.TL_requestPeerTypeBroadcast) { - titleView.setText(LocaleController.getString("NoSuchChannels", R.string.NoSuchChannels)); - subtitleView.setText(LocaleController.getString("NoSuchChannelsInfo", R.string.NoSuchChannelsInfo)); + titleView.setText(LocaleController.getString(R.string.NoSuchChannels)); + subtitleView.setText(LocaleController.getString(R.string.NoSuchChannelsInfo)); buttonView.setVisibility(View.VISIBLE); - buttonView.setText(LocaleController.getString("CreateChannelForThis", R.string.CreateChannelForThis)); + buttonView.setText(LocaleController.getString(R.string.CreateChannelForThis)); } else if (requestPeerType instanceof TLRPC.TL_requestPeerTypeChat) { - titleView.setText(LocaleController.getString("NoSuchGroups", R.string.NoSuchGroups)); - subtitleView.setText(LocaleController.getString("NoSuchGroupsInfo", R.string.NoSuchGroupsInfo)); + titleView.setText(LocaleController.getString(R.string.NoSuchGroups)); + subtitleView.setText(LocaleController.getString(R.string.NoSuchGroupsInfo)); buttonView.setVisibility(View.VISIBLE); - buttonView.setText(LocaleController.getString("CreateGroupForThis", R.string.CreateGroupForThis)); + buttonView.setText(LocaleController.getString(R.string.CreateGroupForThis)); } else { - titleView.setText(LocaleController.getString("NoSuchUsers", R.string.NoSuchUsers)); - subtitleView.setText(LocaleController.getString("NoSuchUsersInfo", R.string.NoSuchUsersInfo)); + titleView.setText(LocaleController.getString(R.string.NoSuchUsers)); + subtitleView.setText(LocaleController.getString(R.string.NoSuchUsersInfo)); buttonView.setVisibility(View.GONE); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DrawerAddCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DrawerAddCell.java index 94d907e72f..9a1c5a15b5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DrawerAddCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DrawerAddCell.java @@ -51,7 +51,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { protected void onAttachedToWindow() { super.onAttachedToWindow(); textView.setTextColor(Theme.getColor(Theme.key_chats_menuItemText)); - textView.setText(LocaleController.getString("AddAccount", R.string.AddAccount)); + textView.setText(LocaleController.getString(R.string.AddAccount)); Drawable drawable = getResources().getDrawable(R.drawable.msg_add); if (drawable != null) { drawable.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chats_menuItemIcon), PorterDuff.Mode.SRC_IN)); 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 eebc29329d..d714c17b92 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DrawerProfileCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DrawerProfileCell.java @@ -277,9 +277,9 @@ protected TextView createTextView() { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); if (Theme.isCurrentThemeDark()) { - info.setText(LocaleController.getString("AccDescrSwitchToDayTheme", R.string.AccDescrSwitchToDayTheme)); + info.setText(LocaleController.getString(R.string.AccDescrSwitchToDayTheme)); } else { - info.setText(LocaleController.getString("AccDescrSwitchToNightTheme", R.string.AccDescrSwitchToNightTheme)); + info.setText(LocaleController.getString(R.string.AccDescrSwitchToNightTheme)); } } }; @@ -881,7 +881,7 @@ private void setArrowState(boolean animated) { arrowView.animate().cancel(); arrowView.setRotation(rotation); } - arrowView.setContentDescription(accountsShown ? LocaleController.getString("AccDescrHideAccounts", R.string.AccDescrHideAccounts) : LocaleController.getString("AccDescrShowAccounts", R.string.AccDescrShowAccounts)); + arrowView.setContentDescription(accountsShown ? LocaleController.getString(R.string.AccDescrHideAccounts) : LocaleController.getString(R.string.AccDescrShowAccounts)); } @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ExpiredStoryView.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ExpiredStoryView.java index bb81562939..c63a760e8d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ExpiredStoryView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ExpiredStoryView.java @@ -53,14 +53,14 @@ public void measure(ChatMessageCell parent) { } else { forwardedNameWidth = (int) (parent.getParentWidth() * 0.4f); } - String from = LocaleController.getString("From", R.string.From); + String from = LocaleController.getString(R.string.From); int fromWidth = (int) Math.ceil(Theme.chat_forwardNamePaint.measureText(from + " ")); if (fromName == null) { fromName = ""; } fromName = (String) TextUtils.ellipsize(fromName.replace('\n', ' '), Theme.chat_replyNamePaint, forwardedNameWidth - fromWidth, TextUtils.TruncateAt.END); - String fromString = LocaleController.getString("FromFormatted", R.string.FromFormatted); + String fromString = LocaleController.getString(R.string.FromFormatted); int idx = fromString.indexOf("%1$s"); CharSequence subtitle = String.format(fromString, fromName); if (idx >= 0) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell.java index ea33ac1dd2..af673f732f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell.java @@ -89,7 +89,7 @@ public FeaturedStickerSetCell(Context context) { addView(imageView, LayoutHelper.createFrame(48, 48, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, LocaleController.isRTL ? 0 : 12, 8, LocaleController.isRTL ? 12 : 0, 0)); addButton = new ProgressButton(context); - addButton.setText(LocaleController.getString("Add", R.string.Add)); + addButton.setText(LocaleController.getString(R.string.Add)); addButton.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); addButton.setProgressColor(Theme.getColor(Theme.key_featuredStickers_buttonProgress)); addButton.setBackgroundRoundRect(Theme.getColor(Theme.key_featuredStickers_addButton), Theme.getColor(Theme.key_featuredStickers_addButtonPressed)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell2.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell2.java index bf4a43f10b..238c460e6b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell2.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetCell2.java @@ -103,7 +103,7 @@ public FeaturedStickerSetCell2(Context context, Theme.ResourcesProvider resource addView(imageView, LayoutHelper.createFrame(48, 48, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, LocaleController.isRTL ? 0 : 12, 8, LocaleController.isRTL ? 12 : 0, 0)); addButton = new ProgressButton(context); - addButton.setText(LocaleController.getString("Add", R.string.Add)); + addButton.setText(LocaleController.getString(R.string.Add)); addButton.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); addView(addButton, LayoutHelper.createFrameRelatively(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.END, 0, 18, 14, 0)); @@ -112,12 +112,12 @@ public FeaturedStickerSetCell2(Context context, Theme.ResourcesProvider resource delButton.setTextColor(Theme.getColor(Theme.key_featuredStickers_removeButtonText)); delButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); delButton.setTypeface(AndroidUtilities.bold()); - delButton.setText(LocaleController.getString("StickersRemove", R.string.StickersRemove)); + delButton.setText(LocaleController.getString(R.string.StickersRemove)); addView(delButton, LayoutHelper.createFrameRelatively(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.END, 0, 16, 14, 0)); unlockButton = new PremiumButtonView(context, AndroidUtilities.dp(4), false, resourcesProvider); unlockButton.setIcon(R.raw.unlock_icon); - unlockButton.setButton(LocaleController.getString("Unlock", R.string.Unlock), e -> onPremiumButtonClick()); + unlockButton.setButton(LocaleController.getString(R.string.Unlock), e -> onPremiumButtonClick()); unlockButton.setVisibility(View.GONE); try { MarginLayoutParams iconLayout = (MarginLayoutParams) unlockButton.getIconView().getLayoutParams(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetInfoCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetInfoCell.java index bffbca5d53..202dc3ffe8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetInfoCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/FeaturedStickerSetInfoCell.java @@ -105,7 +105,7 @@ public FeaturedStickerSetInfoCell(Context context, int left, boolean supportRtl, if (canAddRemove) { addButton = new ProgressButton(context); addButton.setTextColor(getThemedColor(Theme.key_featuredStickers_buttonText)); - addButton.setText(LocaleController.getString("Add", R.string.Add)); + addButton.setText(LocaleController.getString(R.string.Add)); if (supportRtl) { lp = LayoutHelper.createFrameRelatively(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.END, 0, 16, 14, 0); } else { @@ -118,7 +118,7 @@ public FeaturedStickerSetInfoCell(Context context, int left, boolean supportRtl, delButton.setTextColor(getThemedColor(Theme.key_featuredStickers_removeButtonText)); delButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); delButton.setTypeface(AndroidUtilities.bold()); - delButton.setText(LocaleController.getString("StickersRemove", R.string.StickersRemove)); + delButton.setText(LocaleController.getString(R.string.StickersRemove)); if (supportRtl) { lp = LayoutHelper.createFrameRelatively(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.END, 0, 16, 14, 0); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCallInvitedCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCallInvitedCell.java index 20c29a3213..a18a61dad9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCallInvitedCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCallInvitedCell.java @@ -62,7 +62,7 @@ public GroupCallInvitedCell(Context context) { statusTextView.setTextSize(15); statusTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); statusTextView.setTextColor(Theme.getColor(grayIconColor)); - statusTextView.setText(LocaleController.getString("Invited", R.string.Invited)); + statusTextView.setText(LocaleController.getString(R.string.Invited)); addView(statusTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 20, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, LocaleController.isRTL ? 54 : 67, 32, LocaleController.isRTL ? 67 : 54, 0)); muteButton = new ImageView(context); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCallUserCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCallUserCell.java index 9972f8db06..549fca57dd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCallUserCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCallUserCell.java @@ -355,17 +355,17 @@ public void setFullAlpha(float value) { } else { if (a == 0) { statusTextView[a].setTextColor(Theme.getColor(Theme.key_voipgroup_listeningText)); - statusTextView[a].setText(LocaleController.getString("Listening", R.string.Listening)); + statusTextView[a].setText(LocaleController.getString(R.string.Listening)); } else if (a == 1) { statusTextView[a].setTextColor(Theme.getColor(Theme.key_voipgroup_speakingText)); - statusTextView[a].setText(LocaleController.getString("Speaking", R.string.Speaking)); + statusTextView[a].setText(LocaleController.getString(R.string.Speaking)); statusTextView[a].setDrawablePadding(AndroidUtilities.dp(2)); } else if (a == 2) { statusTextView[a].setTextColor(Theme.getColor(Theme.key_voipgroup_mutedByAdminIcon)); - statusTextView[a].setText(LocaleController.getString("VoipGroupMutedForMe", R.string.VoipGroupMutedForMe)); + statusTextView[a].setText(LocaleController.getString(R.string.VoipGroupMutedForMe)); } else if (a == 3) { statusTextView[a].setTextColor(Theme.getColor(Theme.key_voipgroup_listeningText)); - statusTextView[a].setText(LocaleController.getString("WantsToSpeak", R.string.WantsToSpeak)); + statusTextView[a].setText(LocaleController.getString(R.string.WantsToSpeak)); } addView(statusTextView[a], LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 20, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, LocaleController.isRTL ? 54 : 67, 32, LocaleController.isRTL ? 67 : 54, 0)); } @@ -714,23 +714,23 @@ private void applyParticipantChanges(boolean animated, boolean internal) { if (isSelfUser()) { if (!hasAbout && !hasAvatar) { if (currentUser != null) { - statusTextView[4].setText(LocaleController.getString("TapToAddPhotoOrBio", R.string.TapToAddPhotoOrBio)); + statusTextView[4].setText(LocaleController.getString(R.string.TapToAddPhotoOrBio)); } else { - statusTextView[4].setText(LocaleController.getString("TapToAddPhotoOrDescription", R.string.TapToAddPhotoOrDescription)); + statusTextView[4].setText(LocaleController.getString(R.string.TapToAddPhotoOrDescription)); } statusTextView[4].setTextColor(Theme.getColor(grayIconColor)); } else if (!hasAbout ){ if (currentUser != null) { - statusTextView[4].setText(LocaleController.getString("TapToAddBio", R.string.TapToAddBio)); + statusTextView[4].setText(LocaleController.getString(R.string.TapToAddBio)); } else { - statusTextView[4].setText(LocaleController.getString("TapToAddDescription", R.string.TapToAddDescription)); + statusTextView[4].setText(LocaleController.getString(R.string.TapToAddDescription)); } statusTextView[4].setTextColor(Theme.getColor(grayIconColor)); } else if (!hasAvatar) { - statusTextView[4].setText(LocaleController.getString("TapToAddPhoto", R.string.TapToAddPhoto)); + statusTextView[4].setText(LocaleController.getString(R.string.TapToAddPhoto)); statusTextView[4].setTextColor(Theme.getColor(grayIconColor)); } else { - statusTextView[4].setText(LocaleController.getString("ThisIsYou", R.string.ThisIsYou)); + statusTextView[4].setText(LocaleController.getString(R.string.ThisIsYou)); statusTextView[4].setTextColor(Theme.getColor(Theme.key_voipgroup_listeningText)); } if (hasAbout) { @@ -785,7 +785,7 @@ private void applyParticipantChanges(boolean animated, boolean internal) { statusTextView[1].setText(LocaleController.formatString("SpeakingWithVolume", R.string.SpeakingWithVolume, vol < 100 ? 1 : volume)); } else { statusTextView[1].setLeftDrawable(null); - statusTextView[1].setText(LocaleController.getString("Speaking", R.string.Speaking)); + statusTextView[1].setText(LocaleController.getString(R.string.Speaking)); } } if (isSelfUser()) { @@ -1085,7 +1085,7 @@ public BackupImageView getAvatarImageView() { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); if (info.isEnabled() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, participant.muted && !participant.can_self_unmute ? LocaleController.getString("VoipUnmute", R.string.VoipUnmute) : LocaleController.getString("VoipMute", R.string.VoipMute))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, participant.muted && !participant.can_self_unmute ? LocaleController.getString(R.string.VoipUnmute) : LocaleController.getString(R.string.VoipMute))); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCreateUserCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCreateUserCell.java index 0e74d7c0f2..279d585310 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCreateUserCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupCreateUserCell.java @@ -384,7 +384,7 @@ public void update(int mask) { if (currentObject instanceof TLRPC.User) { TLRPC.User currentUser = (TLRPC.User) currentObject; if (showSelfAsSaved && UserObject.isUserSelf(currentUser)) { - nameTextView.setText(LocaleController.getString("SavedMessages", R.string.SavedMessages), true); + nameTextView.setText(LocaleController.getString(R.string.SavedMessages), true); statusTextView.setText(null); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_SAVED); avatarImageView.setImage(null, "50_50", avatarDrawable, currentUser); @@ -435,12 +435,12 @@ public void update(int mask) { if (currentUser.bot) { statusTextView.setTag(Theme.key_windowBackgroundWhiteGrayText); statusTextView.setTextColor(Theme.getColor(forceDarkTheme ? Theme.key_voipgroup_lastSeenText : Theme.key_windowBackgroundWhiteGrayText, resourcesProvider)); - statusTextView.setText(LocaleController.getString("Bot", R.string.Bot)); + statusTextView.setText(LocaleController.getString(R.string.Bot)); } else { if (currentUser.id == UserConfig.getInstance(currentAccount).getClientUserId() || currentUser.status != null && currentUser.status.expires > ConnectionsManager.getInstance(currentAccount).getCurrentTime() || MessagesController.getInstance(currentAccount).onlinePrivacy.containsKey(currentUser.id)) { statusTextView.setTag(Theme.key_windowBackgroundWhiteBlueText); statusTextView.setTextColor(Theme.getColor(forceDarkTheme ? Theme.key_voipgroup_listeningText : Theme.key_windowBackgroundWhiteBlueText, resourcesProvider)); - statusTextView.setText(LocaleController.getString("Online", R.string.Online)); + statusTextView.setText(LocaleController.getString(R.string.Online)); } else { statusTextView.setTag(Theme.key_windowBackgroundWhiteGrayText); statusTextView.setTextColor(Theme.getColor(forceDarkTheme ? Theme.key_voipgroup_lastSeenText : Theme.key_windowBackgroundWhiteGrayText, resourcesProvider)); @@ -493,18 +493,18 @@ public void update(int mask) { statusTextView.setText(LocaleController.formatPluralString("Members", currentChat.participants_count)); } } else if (currentChat.has_geo) { - statusTextView.setText(LocaleController.getString("MegaLocation", R.string.MegaLocation)); + statusTextView.setText(LocaleController.getString(R.string.MegaLocation)); } else if (!ChatObject.isPublic(currentChat)) { if (ChatObject.isChannel(currentChat) && !currentChat.megagroup) { - statusTextView.setText(LocaleController.getString("ChannelPrivate", R.string.ChannelPrivate)); + statusTextView.setText(LocaleController.getString(R.string.ChannelPrivate)); } else { - statusTextView.setText(LocaleController.getString("MegaPrivate", R.string.MegaPrivate)); + statusTextView.setText(LocaleController.getString(R.string.MegaPrivate)); } } else { if (ChatObject.isChannel(currentChat) && !currentChat.megagroup) { - statusTextView.setText(LocaleController.getString("ChannelPublic", R.string.ChannelPublic)); + statusTextView.setText(LocaleController.getString(R.string.ChannelPublic)); } else { - statusTextView.setText(LocaleController.getString("MegaPublic", R.string.MegaPublic)); + statusTextView.setText(LocaleController.getString(R.string.MegaPublic)); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupMedia.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupMedia.java index ff94abcbd1..32e75ee267 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupMedia.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/GroupMedia.java @@ -445,7 +445,7 @@ public void draw(Canvas canvas) { canvas.save(); canvas.clipPath(clipPath); drawBlurred(canvas, hiddenAlpha); - canvas.drawColor(Theme.multAlpha(0x30000000, hiddenAlpha)); + canvas.drawColor(Theme.multAlpha(0x50000000, hiddenAlpha)); buttonText.draw(canvas, x + width / 2f - buttonWidth / 2f + dp(14), y + height / 2f, 0xFFFFFFFF, hiddenAlpha); canvas.restore(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/LocationDirectionCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/LocationDirectionCell.java index a87eb1697f..f4adbf49cd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/LocationDirectionCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/LocationDirectionCell.java @@ -32,7 +32,7 @@ public LocationDirectionCell(Context context, Theme.ResourcesProvider resourcesP buttonTextView.setDrawablePadding(AndroidUtilities.dp(8)); buttonTextView.setTextColor(getThemedColor(Theme.key_featuredStickers_buttonText)); buttonTextView.setTextSize(14); - buttonTextView.setText(LocaleController.getString("Directions", R.string.Directions)); + buttonTextView.setText(LocaleController.getString(R.string.Directions)); buttonTextView.setLeftDrawable(R.drawable.filled_directions); buttonTextView.setTypeface(AndroidUtilities.bold()); frameLayout.addView(buttonTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/LocationLoadingCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/LocationLoadingCell.java index 2b06cda97d..0a8c29848b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/LocationLoadingCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/LocationLoadingCell.java @@ -48,7 +48,7 @@ public LocationLoadingCell(Context context, Theme.ResourcesProvider resourcesPro textView.setGravity(Gravity.CENTER); textView.setTypeface(AndroidUtilities.bold()); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 17); - textView.setText(LocaleController.getString("NoPlacesFound", R.string.NoPlacesFound)); + textView.setText(LocaleController.getString(R.string.NoPlacesFound)); addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 34, 0, 0)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ManageChatUserCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ManageChatUserCell.java index f1121ce57c..ba495993b6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ManageChatUserCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ManageChatUserCell.java @@ -123,7 +123,7 @@ protected void onDraw(Canvas canvas) { optionsButton.setScaleType(ImageView.ScaleType.CENTER); addView(optionsButton, LayoutHelper.createFrame(60, 64, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.TOP)); optionsButton.setOnClickListener(v -> delegate.onOptionsButtonCheck(ManageChatUserCell.this, true)); - optionsButton.setContentDescription(LocaleController.getString("AccDescrUserOptions", R.string.AccDescrUserOptions)); + optionsButton.setContentDescription(LocaleController.getString(R.string.AccDescrUserOptions)); } } @@ -281,14 +281,14 @@ public void update(int mask) { if (currentUser.bot) { statusTextView.setTextColor(statusColor); if (currentUser.bot_chat_history || isAdmin) { - statusTextView.setText(LocaleController.getString("BotStatusRead", R.string.BotStatusRead)); + statusTextView.setText(LocaleController.getString(R.string.BotStatusRead)); } else { - statusTextView.setText(LocaleController.getString("BotStatusCantRead", R.string.BotStatusCantRead)); + statusTextView.setText(LocaleController.getString(R.string.BotStatusCantRead)); } } else { if (currentUser.id == UserConfig.getInstance(currentAccount).getClientUserId() || currentUser.status != null && currentUser.status.expires > ConnectionsManager.getInstance(currentAccount).getCurrentTime() || MessagesController.getInstance(currentAccount).onlinePrivacy.containsKey(currentUser.id)) { statusTextView.setTextColor(statusOnlineColor); - statusTextView.setText(LocaleController.getString("Online", R.string.Online)); + statusTextView.setText(LocaleController.getString(R.string.Online)); } else { statusTextView.setTextColor(statusColor); statusTextView.setText(LocaleController.formatUserStatus(currentAccount, currentUser)); @@ -345,11 +345,11 @@ public void update(int mask) { statusTextView.setText(LocaleController.formatPluralString("Members", currentChat.participants_count)); } } else if (currentChat.has_geo) { - statusTextView.setText(LocaleController.getString("MegaLocation", R.string.MegaLocation)); + statusTextView.setText(LocaleController.getString(R.string.MegaLocation)); } else if (!ChatObject.isPublic(currentChat)) { - statusTextView.setText(LocaleController.getString("MegaPrivate", R.string.MegaPrivate)); + statusTextView.setText(LocaleController.getString(R.string.MegaPrivate)); } else { - statusTextView.setText(LocaleController.getString("MegaPublic", R.string.MegaPublic)); + statusTextView.setText(LocaleController.getString(R.string.MegaPublic)); } } lastAvatar = photo; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/MemberRequestCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/MemberRequestCell.java index ba1f398044..3c5f2ed835 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/MemberRequestCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/MemberRequestCell.java @@ -57,7 +57,7 @@ public MemberRequestCell(@NonNull Context context, OnClickListener clickListener addButton.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL); addButton.setMaxLines(1); addButton.setPadding(btnPadding, 0, btnPadding, 0); - addButton.setText(isChannel ? LocaleController.getString("AddToChannel", R.string.AddToChannel) : LocaleController.getString("AddToGroup", R.string.AddToGroup)); + addButton.setText(isChannel ? LocaleController.getString(R.string.AddToChannel) : LocaleController.getString(R.string.AddToGroup)); addButton.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); addButton.setTextSize(14); addButton.setTypeface(AndroidUtilities.bold()); @@ -74,7 +74,7 @@ public MemberRequestCell(@NonNull Context context, OnClickListener clickListener dismissButton.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL); dismissButton.setMaxLines(1); dismissButton.setPadding(btnPadding, 0, btnPadding, 0); - dismissButton.setText(LocaleController.getString("Dismiss", R.string.Dismiss)); + dismissButton.setText(LocaleController.getString(R.string.Dismiss)); dismissButton.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText)); dismissButton.setTextSize(14); dismissButton.setTypeface(AndroidUtilities.bold()); @@ -122,7 +122,7 @@ public void setData(LongSparseArray users, TLRPC.TL_chatInviteImport nameTextView.setText(UserObject.getUserName(user)); String dateText = LocaleController.formatDateAudio(importer.date, false); if (importer.via_chatlist) { - statusTextView.setText(LocaleController.getString("JoinedViaFolder", R.string.JoinedViaFolder)); + statusTextView.setText(LocaleController.getString(R.string.JoinedViaFolder)); } else if (importer.approved_by == 0) { statusTextView.setText(LocaleController.formatString("RequestedToJoinAt", R.string.RequestedToJoinAt, dateText)); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoAttachPermissionCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoAttachPermissionCell.java index dd49a22d60..9418b25086 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoAttachPermissionCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoAttachPermissionCell.java @@ -64,14 +64,14 @@ public void setType(int type) { if (type == 0) { imageView.setImageResource(R.drawable.permissions_camera1); imageView2.setImageResource(R.drawable.permissions_camera2); - textView.setText(LocaleController.getString("CameraPermissionText", R.string.CameraPermissionText)); + textView.setText(LocaleController.getString(R.string.CameraPermissionText)); imageView.setLayoutParams(LayoutHelper.createFrame(44, 44, Gravity.CENTER, 5, 0, 0, 27)); imageView2.setLayoutParams(LayoutHelper.createFrame(44, 44, Gravity.CENTER, 5, 0, 0, 27)); } else if (type == 1) { imageView.setImageResource(R.drawable.permissions_gallery1); imageView2.setImageResource(R.drawable.permissions_gallery2); - textView.setText(LocaleController.getString("GalleryPermissionText", R.string.GalleryPermissionText)); + textView.setText(LocaleController.getString(R.string.GalleryPermissionText)); imageView.setLayoutParams(LayoutHelper.createFrame(44, 44, Gravity.CENTER, 0, 0, 2, 27)); imageView2.setLayoutParams(LayoutHelper.createFrame(44, 44, Gravity.CENTER, 0, 0, 2, 27)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoAttachPhotoCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoAttachPhotoCell.java index 7bc80f65e8..a299c43206 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoAttachPhotoCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoAttachPhotoCell.java @@ -663,9 +663,9 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { info.setEnabled(true); StringBuilder sb = new StringBuilder(); if (photoEntry != null && photoEntry.isVideo) { - sb.append(LocaleController.getString("AttachVideo", R.string.AttachVideo) + ", " + LocaleController.formatDuration(photoEntry.duration)); + sb.append(LocaleController.getString(R.string.AttachVideo) + ", " + LocaleController.formatDuration(photoEntry.duration)); } else { - sb.append(LocaleController.getString("AttachPhoto", R.string.AttachPhoto)); + sb.append(LocaleController.getString(R.string.AttachPhoto)); } if (photoEntry != null) { sb.append(". "); @@ -676,7 +676,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { info.setSelected(true); } if (Build.VERSION.SDK_INT >= 21) { - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(R.id.acc_action_open_photo, LocaleController.getString("Open", R.string.Open))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(R.id.acc_action_open_photo, LocaleController.getString(R.string.Open))); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoPickerPhotoCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoPickerPhotoCell.java index 653d76adc6..c1a5cb9407 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoPickerPhotoCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/PhotoPickerPhotoCell.java @@ -140,11 +140,11 @@ public void setImage(MediaController.PhotoEntry photoEntry) { if (photoEntry.isVideo) { videoInfoContainer.setVisibility(View.VISIBLE); videoTextView.setText(AndroidUtilities.formatShortDuration(photoEntry.duration)); - setContentDescription(LocaleController.getString("AttachVideo", R.string.AttachVideo) + ", " + LocaleController.formatDuration(photoEntry.duration)); + setContentDescription(LocaleController.getString(R.string.AttachVideo) + ", " + LocaleController.formatDuration(photoEntry.duration)); imageView.setImage("vthumb://" + photoEntry.imageId + ":" + photoEntry.path, null, thumb); } else { videoInfoContainer.setVisibility(View.INVISIBLE); - setContentDescription(LocaleController.getString("AttachPhoto", R.string.AttachPhoto)); + setContentDescription(LocaleController.getString(R.string.AttachPhoto)); imageView.setImage("thumb://" + photoEntry.imageId + ":" + photoEntry.path, null, thumb); } } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/PollEditTextCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/PollEditTextCell.java index 652cb45258..22ad4c531e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/PollEditTextCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/PollEditTextCell.java @@ -160,8 +160,8 @@ public ActionMode startActionMode(ActionMode.Callback callback) { deleteImageView.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.getColor(Theme.key_stickers_menuSelector))); deleteImageView.setImageResource(R.drawable.poll_remove); deleteImageView.setOnClickListener(onDelete); - deleteImageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayIcon), PorterDuff.Mode.SRC_IN)); - deleteImageView.setContentDescription(LocaleController.getString("Delete", R.string.Delete)); + deleteImageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayIcon), PorterDuff.Mode.MULTIPLY)); + deleteImageView.setContentDescription(LocaleController.getString(R.string.Delete)); addView(deleteImageView, LayoutHelper.createFrame(48, 50, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.TOP, LocaleController.isRTL ? 3 : 0, 0, LocaleController.isRTL ? 0 : 3, 0)); textView2 = new SimpleTextView(context); @@ -171,7 +171,7 @@ public ActionMode startActionMode(ActionMode.Callback callback) { checkBox = new CheckBox2(context, 21); checkBox.setColor(-1, Theme.key_windowBackgroundWhiteGrayIcon, Theme.key_checkboxCheck); - checkBox.setContentDescription(LocaleController.getString("AccDescrQuizCorrectAnswer", R.string.AccDescrQuizCorrectAnswer)); + checkBox.setContentDescription(LocaleController.getString(R.string.AccDescrQuizCorrectAnswer)); checkBox.setDrawUnchecked(true); checkBox.setChecked(true, false); checkBox.setAlpha(0.0f); @@ -214,7 +214,7 @@ public ActionMode startActionMode(ActionMode.Callback callback) { emojiButton.setOnClickListener(view -> { onEmojiButtonClicked(this); }); - emojiButton.setContentDescription(LocaleController.getString("Emoji", R.string.Emoji)); + emojiButton.setContentDescription(LocaleController.getString(R.string.Emoji)); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ProfileSearchCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ProfileSearchCell.java index ab486bb6b8..21f1d3047a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ProfileSearchCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ProfileSearchCell.java @@ -197,9 +197,9 @@ public void setException(NotificationsSettingsActivity.NotificationException exc delta -= ConnectionsManager.getInstance(currentAccount).getCurrentTime(); if (delta <= 0) { if (custom) { - text = LocaleController.getString("NotificationsCustom", R.string.NotificationsCustom); + text = LocaleController.getString(R.string.NotificationsCustom); } else { - text = LocaleController.getString("NotificationsUnmuted", R.string.NotificationsUnmuted); + text = LocaleController.getString(R.string.NotificationsUnmuted); } } else if (delta < 60 * 60) { text = LocaleController.formatString("WillUnmuteIn", R.string.WillUnmuteIn, LocaleController.formatPluralString("Minutes", delta / 60)); @@ -221,13 +221,13 @@ public void setException(NotificationsSettingsActivity.NotificationException exc enabled = false; } if (enabled && custom) { - text = LocaleController.getString("NotificationsCustom", R.string.NotificationsCustom); + text = LocaleController.getString(R.string.NotificationsCustom); } else { - text = enabled ? LocaleController.getString("NotificationsUnmuted", R.string.NotificationsUnmuted) : LocaleController.getString("NotificationsMuted", R.string.NotificationsMuted); + text = enabled ? LocaleController.getString(R.string.NotificationsUnmuted) : LocaleController.getString(R.string.NotificationsMuted); } } if (text == null) { - text = LocaleController.getString("NotificationsOff", R.string.NotificationsOff); + text = LocaleController.getString(R.string.NotificationsOff); } if (DialogObject.isEncryptedDialog(exception.did)) { @@ -402,7 +402,7 @@ public void buildLayout() { if (user != null && user.phone != null && user.phone.length() != 0) { nameString = PhoneFormat.getInstance().format("+" + user.phone); } else { - nameString = LocaleController.getString("HiddenName", R.string.HiddenName); + nameString = LocaleController.getString(R.string.HiddenName); } } if (customPaints) { @@ -492,13 +492,13 @@ public void buildLayout() { statusString = subLabel; } else if (user != null) { if (MessagesController.isSupportUser(user)) { - statusString = LocaleController.getString("SupportStatus", R.string.SupportStatus); + statusString = LocaleController.getString(R.string.SupportStatus); } else if (user.bot && user.bot_active_users != 0) { - statusString = LocaleController.formatPluralStringComma("BotUsers", user.bot_active_users, ' '); + statusString = LocaleController.formatPluralStringSpaced("BotUsers", user.bot_active_users); } else if (user.bot) { - statusString = LocaleController.getString("Bot", R.string.Bot); + statusString = LocaleController.getString(R.string.Bot); } else if (UserObject.isService(user.id)) { - statusString = LocaleController.getString("ServiceNotifications", R.string.ServiceNotifications); + statusString = LocaleController.getString(R.string.ServiceNotifications); } else { if (isOnline == null) { isOnline = new boolean[1]; @@ -510,7 +510,7 @@ public void buildLayout() { } if (user != null && (user.id == UserConfig.getInstance(currentAccount).getClientUserId() || user.status != null && user.status.expires > ConnectionsManager.getInstance(currentAccount).getCurrentTime())) { currentStatusPaint = Theme.dialogs_onlinePaint; - statusString = LocaleController.getString("Online", R.string.Online); + statusString = LocaleController.getString(R.string.Online); } } } @@ -524,9 +524,9 @@ public void buildLayout() { statusString = LocaleController.formatPluralStringComma("Subscribers", chat.participants_count); } else { if (!ChatObject.isPublic(chat)) { - statusString = LocaleController.getString("ChannelPrivate", R.string.ChannelPrivate).toLowerCase(); + statusString = LocaleController.getString(R.string.ChannelPrivate).toLowerCase(); } else { - statusString = LocaleController.getString("ChannelPublic", R.string.ChannelPublic).toLowerCase(); + statusString = LocaleController.getString(R.string.ChannelPublic).toLowerCase(); } } } else { @@ -534,11 +534,11 @@ public void buildLayout() { statusString = LocaleController.formatPluralStringComma("Members", chat.participants_count); } else { if (chat.has_geo) { - statusString = LocaleController.getString("MegaLocation", R.string.MegaLocation); + statusString = LocaleController.getString(R.string.MegaLocation); } else if (!ChatObject.isPublic(chat)) { - statusString = LocaleController.getString("MegaPrivate", R.string.MegaPrivate).toLowerCase(); + statusString = LocaleController.getString(R.string.MegaPrivate).toLowerCase(); } else { - statusString = LocaleController.getString("MegaPublic", R.string.MegaPublic).toLowerCase(); + statusString = LocaleController.getString(R.string.MegaPublic).toLowerCase(); } } } @@ -877,7 +877,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { builder.append(nameLayout.getText()); } if (drawCheck) { - builder.append(", ").append(LocaleController.getString("AccDescrVerified", R.string.AccDescrVerified)).append("\n"); + builder.append(", ").append(LocaleController.getString(R.string.AccDescrVerified)).append("\n"); } if (statusLayout != null) { if (builder.length() > 0) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/RequestPeerRequirementsCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/RequestPeerRequirementsCell.java index fa99fb01e2..f713e6f4ff 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/RequestPeerRequirementsCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/RequestPeerRequirementsCell.java @@ -79,7 +79,7 @@ public void set(TLRPC.RequestPeerType requestPeerType) { if (!requirements.isEmpty()) { HeaderCell headerCell = new HeaderCell(getContext(), 20); - headerCell.setText(LocaleController.getString("PeerRequirements", R.string.PeerRequirements)); + headerCell.setText(LocaleController.getString(R.string.PeerRequirements)); headerCell.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); addView(headerCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -135,39 +135,39 @@ public static CharSequence rightsToString(TLRPC.TL_chatAdminRights rights, boole array.add(Requirement.make( 1, isChannel ? - LocaleController.getString("EditAdminChangeChannelInfo", R.string.EditAdminChangeChannelInfo) : - LocaleController.getString("EditAdminChangeGroupInfo", R.string.EditAdminChangeGroupInfo) + LocaleController.getString(R.string.EditAdminChangeChannelInfo) : + LocaleController.getString(R.string.EditAdminChangeGroupInfo) )); } if (rights.post_messages && isChannel) { - array.add(Requirement.make(1, LocaleController.getString("EditAdminPostMessages", R.string.EditAdminPostMessages))); + array.add(Requirement.make(1, LocaleController.getString(R.string.EditAdminPostMessages))); } if (rights.edit_messages && isChannel) { - array.add(Requirement.make(1, LocaleController.getString("EditAdminEditMessages", R.string.EditAdminEditMessages))); + array.add(Requirement.make(1, LocaleController.getString(R.string.EditAdminEditMessages))); } if (rights.delete_messages) { - array.add(Requirement.make(1, isChannel ? LocaleController.getString("EditAdminDeleteMessages", R.string.EditAdminDeleteMessages) : LocaleController.getString("EditAdminGroupDeleteMessages", R.string.EditAdminGroupDeleteMessages))); + array.add(Requirement.make(1, isChannel ? LocaleController.getString(R.string.EditAdminDeleteMessages) : LocaleController.getString(R.string.EditAdminGroupDeleteMessages))); } if (rights.ban_users && !isChannel) { - array.add(Requirement.make(1, LocaleController.getString("EditAdminBanUsers", R.string.EditAdminBanUsers))); + array.add(Requirement.make(1, LocaleController.getString(R.string.EditAdminBanUsers))); } if (rights.invite_users) { - array.add(Requirement.make(1, LocaleController.getString("EditAdminAddUsers", R.string.EditAdminAddUsers))); + array.add(Requirement.make(1, LocaleController.getString(R.string.EditAdminAddUsers))); } if (rights.pin_messages && !isChannel) { - array.add(Requirement.make(1, LocaleController.getString("EditAdminPinMessages", R.string.EditAdminPinMessages))); + array.add(Requirement.make(1, LocaleController.getString(R.string.EditAdminPinMessages))); } if (rights.add_admins) { - array.add(Requirement.make(1, LocaleController.getString("EditAdminAddAdmins", R.string.EditAdminAddAdmins))); + array.add(Requirement.make(1, LocaleController.getString(R.string.EditAdminAddAdmins))); } if (rights.anonymous && !isChannel) { - array.add(Requirement.make(1, LocaleController.getString("EditAdminSendAnonymously", R.string.EditAdminSendAnonymously))); + array.add(Requirement.make(1, LocaleController.getString(R.string.EditAdminSendAnonymously))); } if (rights.manage_call) { - array.add(Requirement.make(1, LocaleController.getString("StartVoipChatPermission", R.string.StartVoipChatPermission))); + array.add(Requirement.make(1, LocaleController.getString(R.string.StartVoipChatPermission))); } if (rights.manage_topics && !isChannel) { - array.add(Requirement.make(1, LocaleController.getString("ManageTopicsPermission", R.string.ManageTopicsPermission))); + array.add(Requirement.make(1, LocaleController.getString(R.string.ManageTopicsPermission))); } if (array.size() == 1) { @@ -195,39 +195,39 @@ private void checkAdminRights(TLRPC.TL_chatAdminRights value, boolean isChannel, rights.add(Requirement.make( 1, isChannel ? - LocaleController.getString("EditAdminChangeChannelInfo", R.string.EditAdminChangeChannelInfo) : - LocaleController.getString("EditAdminChangeGroupInfo", R.string.EditAdminChangeGroupInfo) + LocaleController.getString(R.string.EditAdminChangeChannelInfo) : + LocaleController.getString(R.string.EditAdminChangeGroupInfo) )); } if (value.post_messages && isChannel) { - rights.add(Requirement.make(1, LocaleController.getString("EditAdminPostMessages", R.string.EditAdminPostMessages))); + rights.add(Requirement.make(1, LocaleController.getString(R.string.EditAdminPostMessages))); } if (value.edit_messages && isChannel) { - rights.add(Requirement.make(1, LocaleController.getString("EditAdminEditMessages", R.string.EditAdminEditMessages))); + rights.add(Requirement.make(1, LocaleController.getString(R.string.EditAdminEditMessages))); } if (value.delete_messages) { - rights.add(Requirement.make(1, isChannel ? LocaleController.getString("EditAdminDeleteMessages", R.string.EditAdminDeleteMessages) : LocaleController.getString("EditAdminGroupDeleteMessages", R.string.EditAdminGroupDeleteMessages))); + rights.add(Requirement.make(1, isChannel ? LocaleController.getString(R.string.EditAdminDeleteMessages) : LocaleController.getString(R.string.EditAdminGroupDeleteMessages))); } if (value.ban_users && !isChannel) { - rights.add(Requirement.make(1, LocaleController.getString("EditAdminBanUsers", R.string.EditAdminBanUsers))); + rights.add(Requirement.make(1, LocaleController.getString(R.string.EditAdminBanUsers))); } if (value.invite_users) { - rights.add(Requirement.make(1, LocaleController.getString("EditAdminAddUsers", R.string.EditAdminAddUsers))); + rights.add(Requirement.make(1, LocaleController.getString(R.string.EditAdminAddUsers))); } if (value.pin_messages && !isChannel) { - rights.add(Requirement.make(1, LocaleController.getString("EditAdminPinMessages", R.string.EditAdminPinMessages))); + rights.add(Requirement.make(1, LocaleController.getString(R.string.EditAdminPinMessages))); } if (value.add_admins) { - rights.add(Requirement.make(1, LocaleController.getString("EditAdminAddAdmins", R.string.EditAdminAddAdmins))); + rights.add(Requirement.make(1, LocaleController.getString(R.string.EditAdminAddAdmins))); } if (value.anonymous && !isChannel) { - rights.add(Requirement.make(1, LocaleController.getString("EditAdminSendAnonymously", R.string.EditAdminSendAnonymously))); + rights.add(Requirement.make(1, LocaleController.getString(R.string.EditAdminSendAnonymously))); } if (value.manage_call) { - rights.add(Requirement.make(1, LocaleController.getString("StartVoipChatPermission", R.string.StartVoipChatPermission))); + rights.add(Requirement.make(1, LocaleController.getString(R.string.StartVoipChatPermission))); } if (value.manage_topics && !isChannel) { - rights.add(Requirement.make(1, LocaleController.getString("ManageTopicsPermission", R.string.ManageTopicsPermission))); + rights.add(Requirement.make(1, LocaleController.getString(R.string.ManageTopicsPermission))); } if (rights.size() == 1) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SendLocationCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SendLocationCell.java index d7d4260ac0..df161a5747 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SendLocationCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SendLocationCell.java @@ -171,7 +171,7 @@ private void checkText() { setText(LocaleController.getString(R.string.SharingLiveLocation), LocaleController.getString(R.string.SharingLiveLocationAdd)); } } else { - setText(LocaleController.getString("SendLiveLocation", R.string.SendLiveLocation), LocaleController.getString("SendLiveLocationInfo", R.string.SendLiveLocationInfo)); + setText(LocaleController.getString(R.string.SendLiveLocation), LocaleController.getString(R.string.SendLiveLocationInfo)); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SessionCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SessionCell.java index 59148627aa..2639c069c8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SessionCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SessionCell.java @@ -208,7 +208,7 @@ public void setSession(TLObject object, boolean divider) { String timeText; if ((session.flags & 1) != 0) { setTag(Theme.key_windowBackgroundWhiteValueText); - timeText = LocaleController.getString("Online", R.string.Online); + timeText = LocaleController.getString(R.string.Online); } else { setTag(Theme.key_windowBackgroundWhiteGrayText3); timeText = LocaleController.stringForMessageListDate(session.date_active); @@ -218,7 +218,7 @@ public void setSession(TLObject object, boolean divider) { if (stringBuilder.length() != 0) { stringBuilder.append(", "); } - stringBuilder.append(LocaleController.getString("UnofficialApp", R.string.UnofficialApp)); + stringBuilder.append(LocaleController.getString(R.string.UnofficialApp)); stringBuilder.append(" (ID: "); stringBuilder.append(session.api_id); stringBuilder.append(")"); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SettingsSuggestionCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SettingsSuggestionCell.java index 3d48c86c7e..6eda5fce7c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SettingsSuggestionCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SettingsSuggestionCell.java @@ -94,7 +94,7 @@ public void setType(int type) { if (type == TYPE_PHONE) { final TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(UserConfig.getInstance(currentAccount).clientUserId); textView.setText(LocaleController.formatString("CheckPhoneNumber", R.string.CheckPhoneNumber, PhoneFormat.getInstance().format("+" + user.phone))); - String text = LocaleController.getString("CheckPhoneNumberInfo", R.string.CheckPhoneNumberInfo); + String text = LocaleController.getString(R.string.CheckPhoneNumberInfo); SpannableStringBuilder builder = new SpannableStringBuilder(text); int index1 = text.indexOf("**"); int index2 = text.lastIndexOf("**"); @@ -102,21 +102,21 @@ public void setType(int type) { builder.replace(index2, index2 + 2, ""); builder.replace(index1, index1 + 2, ""); try { - builder.setSpan(new URLSpanNoUnderline(LocaleController.getString("CheckPhoneNumberLearnMoreUrl", R.string.CheckPhoneNumberLearnMoreUrl)), index1, index2 - 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + builder.setSpan(new URLSpanNoUnderline(LocaleController.getString(R.string.CheckPhoneNumberLearnMoreUrl)), index1, index2 - 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } catch (Exception e) { FileLog.e(e); } } detailTextView.setText(builder); - yesButton.setText(LocaleController.getString("CheckPhoneNumberYes", R.string.CheckPhoneNumberYes)); + yesButton.setText(LocaleController.getString(R.string.CheckPhoneNumberYes)); noButton.setVisibility(View.VISIBLE); - noButton.setText(LocaleController.getString("CheckPhoneNumberNo", R.string.CheckPhoneNumberNo)); + noButton.setText(LocaleController.getString(R.string.CheckPhoneNumberNo)); } else if (type == TYPE_PASSWORD) { - textView.setText(LocaleController.getString("YourPasswordHeader", R.string.YourPasswordHeader)); - detailTextView.setText(LocaleController.getString("YourPasswordRemember", R.string.YourPasswordRemember)); - yesButton.setText(LocaleController.getString("YourPasswordRememberYes", R.string.YourPasswordRememberYes)); + textView.setText(LocaleController.getString(R.string.YourPasswordHeader)); + detailTextView.setText(LocaleController.getString(R.string.YourPasswordRemember)); + yesButton.setText(LocaleController.getString(R.string.YourPasswordRememberYes)); noButton.setVisibility(View.VISIBLE); - noButton.setText(LocaleController.getString("YourPasswordRememberNo", R.string.YourPasswordRememberNo)); + noButton.setText(LocaleController.getString(R.string.YourPasswordRememberNo)); } else if (type == TYPE_GRACE) { textView.setText(LocaleController.getString(R.string.GraceSuggestionTitle)); detailTextView.setText(LocaleController.getString(R.string.GraceSuggestionMessage)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ShareDialogCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ShareDialogCell.java index 7e5f933a8d..1a83f3604d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ShareDialogCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ShareDialogCell.java @@ -207,11 +207,11 @@ public void setDialog(long uid, boolean checked, CharSequence name) { invalidate(); avatarDrawable.setInfo(currentAccount, user); if (currentType != TYPE_CREATE && UserObject.isReplyUser(user)) { - nameTextView.setText(LocaleController.getString("RepliesTitle", R.string.RepliesTitle)); + nameTextView.setText(LocaleController.getString(R.string.RepliesTitle)); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_REPLIES); imageView.setImage(null, null, avatarDrawable, user); } else if (currentType != TYPE_CREATE && UserObject.isUserSelf(user)) { - nameTextView.setText(LocaleController.getString("SavedMessages", R.string.SavedMessages)); + nameTextView.setText(LocaleController.getString(R.string.SavedMessages)); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_SAVED); imageView.setImage(null, null, avatarDrawable, user); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedDocumentCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedDocumentCell.java index 364ebd6419..503b4c88df 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedDocumentCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedDocumentCell.java @@ -414,20 +414,20 @@ public void setDocument(MessageObject messageObject, boolean divider) { if (TextUtils.isEmpty(fileName) && document.mime_type != null) { if (document.mime_type.startsWith("video")) { if (MessageObject.isGifDocument(document)) { - fileName = LocaleController.getString("AttachGif", R.string.AttachGif); + fileName = LocaleController.getString(R.string.AttachGif); } else { - fileName = LocaleController.getString("AttachVideo", R.string.AttachVideo); + fileName = LocaleController.getString(R.string.AttachVideo); } } else if (document.mime_type.startsWith("image")) { if (MessageObject.isGifDocument(document)) { - fileName = LocaleController.getString("AttachGif", R.string.AttachGif); + fileName = LocaleController.getString(R.string.AttachGif); } else { - fileName = LocaleController.getString("AttachPhoto", R.string.AttachPhoto); + fileName = LocaleController.getString(R.string.AttachPhoto); } } else if (document.mime_type.startsWith("audio")) { - fileName = LocaleController.getString("AttachAudio", R.string.AttachAudio); + fileName = LocaleController.getString(R.string.AttachAudio); } else { - fileName = LocaleController.getString("AttachDocument", R.string.AttachDocument); + fileName = LocaleController.getString(R.string.AttachDocument); } } if (name == null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedPhotoVideoCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedPhotoVideoCell.java index 4180f36fda..dc10bf0636 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedPhotoVideoCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedPhotoVideoCell.java @@ -252,9 +252,9 @@ protected void onDraw(Canvas canvas) { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); if (currentMessageObject.isVideo()) { - info.setText(LocaleController.getString("AttachVideo", R.string.AttachVideo) + ", " + LocaleController.formatDuration((int) currentMessageObject.getDuration())); + info.setText(LocaleController.getString(R.string.AttachVideo) + ", " + LocaleController.formatDuration((int) currentMessageObject.getDuration())); } else { - info.setText(LocaleController.getString("AttachPhoto", R.string.AttachPhoto)); + info.setText(LocaleController.getString(R.string.AttachPhoto)); } if (checkBox.isChecked()) { info.setCheckable(true); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharingLiveLocationCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharingLiveLocationCell.java index 6a23cd610a..88c1db7cb9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharingLiveLocationCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharingLiveLocationCell.java @@ -327,7 +327,7 @@ public void setDialog(MessageObject messageObject, Location userLocation, boolea if (address != null) { distanceTextView.setText(address); } else if (!userLocationDenied) { - distanceTextView.setText(LocaleController.getString("Loading", R.string.Loading)); + distanceTextView.setText(LocaleController.getString(R.string.Loading)); } else { distanceTextView.setText(""); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StatisticPostInfoCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StatisticPostInfoCell.java index b07209417f..cbdf689b84 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StatisticPostInfoCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StatisticPostInfoCell.java @@ -222,7 +222,7 @@ public void setData(StatisticActivity.RecentPostInfo postInfo, boolean isLast) { if (messageObject.isMusic()) { text = String.format("%s, %s", messageObject.getMusicTitle().trim(), messageObject.getMusicAuthor().trim()); } else if (messageObject.isStory()) { - text = LocaleController.getString("Story", R.string.Story); + text = LocaleController.getString(R.string.Story); } else { text = messageObject.caption != null ? messageObject.caption : messageObject.messageText; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerCell.java index c46f9a040b..65fc7a72b2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerCell.java @@ -202,9 +202,9 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info){ } } if (emoji != null) - info.setText(emoji + " " + LocaleController.getString("AttachSticker", R.string.AttachSticker)); + info.setText(emoji + " " + LocaleController.getString(R.string.AttachSticker)); else - info.setText(LocaleController.getString("AttachSticker", R.string.AttachSticker)); + info.setText(LocaleController.getString(R.string.AttachSticker)); info.setEnabled(true); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerEmojiCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerEmojiCell.java index bbde0142bb..be55e1631c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerEmojiCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerEmojiCell.java @@ -364,7 +364,7 @@ public void invalidate() { @Override public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); - String descr = LocaleController.getString("AttachSticker", R.string.AttachSticker); + String descr = LocaleController.getString(R.string.AttachSticker); if (sticker != null) { for (int a = 0; a < sticker.attributes.size(); a++) { TLRPC.DocumentAttribute attribute = sticker.attributes.get(a); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetCell.java index 9f1df3edb3..b53c0492fc 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetCell.java @@ -115,7 +115,7 @@ public StickerSetCell(Context context, Theme.ResourcesProvider resourcesProvider if (option == 1) { optionsButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_stickers_menu), PorterDuff.Mode.SRC_IN)); optionsButton.setImageResource(R.drawable.msg_actions); - optionsButton.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + optionsButton.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); addView(optionsButton, LayoutHelper.createFrame(40, 40, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER_VERTICAL)); // NekoX: Pinned Sticker Mark @@ -149,7 +149,7 @@ public StickerSetCell(Context context, Theme.ResourcesProvider resourcesProvider addButtonView = new TextView(context); addButtonView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); addButtonView.setTypeface(AndroidUtilities.bold()); - addButtonView.setText(LocaleController.getString("Add", R.string.Add)); + addButtonView.setText(LocaleController.getString(R.string.Add)); addButtonView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText, resourcesProvider)); addButtonView.setBackground(Theme.AdaptiveRipple.createRect(Theme.getColor(Theme.key_featuredStickers_addButton, resourcesProvider), Theme.getColor(Theme.key_featuredStickers_addButtonPressed, resourcesProvider), 4)); addButtonView.setPadding(AndroidUtilities.dp(14), 0, AndroidUtilities.dp(14), 0); @@ -160,7 +160,7 @@ public StickerSetCell(Context context, Theme.ResourcesProvider resourcesProvider removeButtonView = new TextView(context); removeButtonView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); removeButtonView.setTypeface(AndroidUtilities.bold()); - removeButtonView.setText(LocaleController.getString("StickersRemove", R.string.StickersRemove)); + removeButtonView.setText(LocaleController.getString(R.string.StickersRemove)); removeButtonView.setTextColor(Theme.getColor(Theme.key_featuredStickers_removeButtonText, resourcesProvider)); removeButtonView.setBackground(Theme.AdaptiveRipple.createRect(0, Theme.getColor(Theme.key_featuredStickers_addButton, resourcesProvider) & 0x1affffff, 4)); removeButtonView.setPadding(AndroidUtilities.dp(12), 0, AndroidUtilities.dp(12), 0); @@ -170,7 +170,7 @@ public StickerSetCell(Context context, Theme.ResourcesProvider resourcesProvider premiumButtonView = new PremiumButtonView(context, AndroidUtilities.dp(4), false, resourcesProvider); premiumButtonView.setIcon(R.raw.unlock_icon); - premiumButtonView.setButton(LocaleController.getString("Unlock", R.string.Unlock), e -> onPremiumButtonClick()); + premiumButtonView.setButton(LocaleController.getString(R.string.Unlock), e -> onPremiumButtonClick()); try { MarginLayoutParams iconLayout = (MarginLayoutParams) premiumButtonView.getIconView().getLayoutParams(); iconLayout.leftMargin = AndroidUtilities.dp(1); @@ -648,9 +648,9 @@ public void updateButtonState(int state, boolean animated) { stateAnimator = null; } if (state == BUTTON_STATE_LOCKED) { - premiumButtonView.setButton(LocaleController.getString("Unlock", R.string.Unlock), e -> onPremiumButtonClick()); + premiumButtonView.setButton(LocaleController.getString(R.string.Unlock), e -> onPremiumButtonClick()); } else if (state == BUTTON_STATE_LOCKED_RESTORE) { - premiumButtonView.setButton(LocaleController.getString("Restore", R.string.Restore), e -> onPremiumButtonClick()); + premiumButtonView.setButton(LocaleController.getString(R.string.Restore), e -> onPremiumButtonClick()); } premiumButtonView.setEnabled(state == BUTTON_STATE_LOCKED || state == BUTTON_STATE_LOCKED_RESTORE); addButtonView.setEnabled(state == BUTTON_STATE_ADD); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetGroupInfoCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetGroupInfoCell.java index 399051786e..0ee86cde78 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetGroupInfoCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerSetGroupInfoCell.java @@ -33,7 +33,7 @@ public StickerSetGroupInfoCell(Context context) { TextView infoTextView = new TextView(context); infoTextView.setTextColor(Theme.getColor(Theme.key_chat_emojiPanelTrendingDescription)); infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - infoTextView.setText(LocaleController.getString("GroupStickersInfo", R.string.GroupStickersInfo)); + infoTextView.setText(LocaleController.getString(R.string.GroupStickersInfo)); addView(infoTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT, 17, 4, 17, 0)); addButton = new TextView(context); @@ -43,7 +43,7 @@ public StickerSetGroupInfoCell(Context context) { addButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); addButton.setTypeface(AndroidUtilities.bold()); addButton.setBackground(Theme.AdaptiveRipple.filledRectByKey(Theme.key_featuredStickers_addButton, 4)); - addButton.setText(LocaleController.getString("ChooseStickerSet", R.string.ChooseStickerSet).toUpperCase()); + addButton.setText(LocaleController.getString(R.string.ChooseStickerSet).toUpperCase()); addView(addButton, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | Gravity.LEFT, 17, 10, 14, 8)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextCell.java index 63a145ca1e..7114b0ebaf 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextCell.java @@ -46,6 +46,7 @@ import org.telegram.ui.Components.Switch; import org.telegram.ui.FilterCreateActivity; import org.telegram.ui.PeerColorActivity; +import org.telegram.ui.Stories.recorder.HintView2; public class TextCell extends FrameLayout { @@ -539,11 +540,16 @@ public void setTextAndValueAndIcon(CharSequence text, CharSequence value, boolea offsetFromImage = getOffsetFromImage(false); textView.setText(text); textView.setRightDrawable(null); - valueTextView.setText(value == null ? "" : TextUtils.ellipsize(valueText = value, valueTextView.getPaint(), AndroidUtilities.displaySize.x / 2.5f, TextUtils.TruncateAt.END), animated); + imageView.setVisibility(VISIBLE); + if (value != null) { + int availableWidth = (int) Math.max(1, AndroidUtilities.displaySize.x - (dp(offsetFromImage) + HintView2.measureCorrectly(text, textView.getTextPaint()) + dp(16))); + valueTextView.setText(value == null ? "" : TextUtils.ellipsize(valueText = value, valueTextView.getPaint(), availableWidth, TextUtils.TruncateAt.END), animated); + } else { + valueTextView.setText("", animated); + } valueTextView.setVisibility(VISIBLE); valueSpoilersTextView.setVisibility(GONE); valueImageView.setVisibility(GONE); - imageView.setVisibility(VISIBLE); imageView.setTranslationX(0); imageView.setTranslationY(0); imageView.setPadding(0, dp(7), 0, 0); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextRadioCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextRadioCell.java index b38b18beaa..4e7f4bb73f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextRadioCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextRadioCell.java @@ -293,7 +293,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); info.setCheckable(true); info.setChecked(radioButton.isChecked()); - info.setContentDescription(radioButton.isChecked() ? LocaleController.getString("NotificationsOn", R.string.NotificationsOn) : LocaleController.getString("NotificationsOff", R.string.NotificationsOff)); + info.setContentDescription(radioButton.isChecked() ? LocaleController.getString(R.string.NotificationsOn) : LocaleController.getString(R.string.NotificationsOff)); StringBuilder sb = new StringBuilder(); sb.append(textView.getText()); if (!TextUtils.isEmpty(valueTextView.getText())) { 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 519aa29efb..8ba06423c5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextSelectionHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextSelectionHelper.java @@ -1421,7 +1421,7 @@ public boolean onCreateActionMode(ActionMode mode, Menu menu) { menu.add(Menu.NONE, android.R.id.copy, 0, android.R.string.copy); menu.add(Menu.NONE, R.id.menu_quote, 1, LocaleController.getString(R.string.Quote)); menu.add(Menu.NONE, android.R.id.selectAll, 2, android.R.string.selectAll); - menu.add(Menu.NONE, TRANSLATE, 3, LocaleController.getString("TranslateMessage", R.string.TranslateMessage)); + menu.add(Menu.NONE, TRANSLATE, 3, LocaleController.getString(R.string.TranslateMessage)); return true; } @@ -1454,7 +1454,6 @@ public boolean onPrepareActionMode(ActionMode mode, Menu menu) { // onTranslateListener != null && ( // ( // translateFromLanguage != null && -// (!translateFromLanguage.equals(translateToLanguage) || translateFromLanguage.equals("und")) && // !RestrictedLanguagesSelectActivity.getRestrictedLanguages().contains(translateFromLanguage) // ) || !LanguageDetector.hasSupport() // ) diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ThemeCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ThemeCell.java index 6fe59887ab..977e3b3ee1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ThemeCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ThemeCell.java @@ -80,7 +80,7 @@ public ThemeCell(Context context, boolean nightTheme) { optionsButton.setImageResource(R.drawable.ic_ab_other); optionsButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_stickers_menu), PorterDuff.Mode.SRC_IN)); optionsButton.setScaleType(ImageView.ScaleType.CENTER); - optionsButton.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + optionsButton.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); addView(optionsButton, LayoutHelper.createFrame(48, 48, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.TOP)); } else { addView(checkImage, LayoutHelper.createFrame(19, 14, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER_VERTICAL, 21, 0, 21, 0)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ThemePreviewMessagesCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ThemePreviewMessagesCell.java index d974068068..879d628cd8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ThemePreviewMessagesCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ThemePreviewMessagesCell.java @@ -161,7 +161,7 @@ public ThemePreviewMessagesCell(Context context, INavigationLayout layout, int t message1.eventId = 1; } else if (type == TYPE_REACTIONS_DOUBLE_TAP) { TLRPC.Message message = new TLRPC.TL_message(); - message.message = LocaleController.getString("DoubleTapPreviewMessage", R.string.DoubleTapPreviewMessage); + message.message = LocaleController.getString(R.string.DoubleTapPreviewMessage); message.date = date + 60; message.dialog_id = 1; message.flags = 259; @@ -176,16 +176,16 @@ public ThemePreviewMessagesCell(Context context, INavigationLayout layout, int t message1 = new MessageObject(UserConfig.selectedAccount, message, true, false); message1.resetLayout(); message1.eventId = 1; - message1.customName = LocaleController.getString("DoubleTapPreviewSenderName", R.string.DoubleTapPreviewSenderName); + message1.customName = LocaleController.getString(R.string.DoubleTapPreviewSenderName); message1.customAvatarDrawable = ContextCompat.getDrawable(context, R.drawable.dino_pic); message1.overrideLinkColor = 5; message1.overrideLinkEmoji = 0; } else { TLRPC.Message message = new TLRPC.TL_message(); if (type == 0) { - message.message = LocaleController.getString("FontSizePreviewReply", R.string.FontSizePreviewReply); + message.message = LocaleController.getString(R.string.FontSizePreviewReply); } else { - message.message = LocaleController.getString("NewThemePreviewReply", R.string.NewThemePreviewReply); + message.message = LocaleController.getString(R.string.NewThemePreviewReply); } String greeting = "\uD83D\uDC4B"; int index = message.message.indexOf(greeting); @@ -210,9 +210,9 @@ public ThemePreviewMessagesCell(Context context, INavigationLayout layout, int t message = new TLRPC.TL_message(); if (type == 0) { - message.message = LocaleController.getString("FontSizePreviewLine2", R.string.FontSizePreviewLine2); + message.message = LocaleController.getString(R.string.FontSizePreviewLine2); } else { - String text = LocaleController.getString("NewThemePreviewLine3", R.string.NewThemePreviewLine3); + String text = LocaleController.getString(R.string.NewThemePreviewLine3); StringBuilder builder = new StringBuilder(text); int index1 = text.indexOf('*'); int index2 = text.lastIndexOf('*'); @@ -254,9 +254,9 @@ public ThemePreviewMessagesCell(Context context, INavigationLayout layout, int t message = new TLRPC.TL_message(); if (type == 0) { - message.message = LocaleController.getString("FontSizePreviewLine1", R.string.FontSizePreviewLine1); + message.message = LocaleController.getString(R.string.FontSizePreviewLine1); } else { - message.message = LocaleController.getString("NewThemePreviewLine1", R.string.NewThemePreviewLine1); + message.message = LocaleController.getString(R.string.NewThemePreviewLine1); } message.date = date + 60; message.dialog_id = 1; @@ -272,9 +272,9 @@ public ThemePreviewMessagesCell(Context context, INavigationLayout layout, int t message.peer_id.user_id = UserConfig.getInstance(UserConfig.selectedAccount).getClientUserId(); message2 = new MessageObject(UserConfig.selectedAccount, message, true, false); if (type == 0) { -// message2.customReplyName = LocaleController.getString("FontSizePreviewName", R.string.FontSizePreviewName); +// message2.customReplyName = LocaleController.getString(R.string.FontSizePreviewName); } else { - message2.customReplyName = LocaleController.getString("NewThemePreviewName", R.string.NewThemePreviewName); + message2.customReplyName = LocaleController.getString(R.string.NewThemePreviewName); } message2.eventId = 1; message2.resetLayout(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ThemesHorizontalListCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ThemesHorizontalListCell.java index 5977e5ce4b..7107740311 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ThemesHorizontalListCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ThemesHorizontalListCell.java @@ -681,7 +681,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { info.setEnabled(true); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_CLICK); - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_LONG_CLICK, LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_LONG_CLICK, LocaleController.getString(R.string.AccDescrMoreOptions))); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TooManyCommunitiesHintCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TooManyCommunitiesHintCell.java index 0526b63d8d..56f6dbbd0b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TooManyCommunitiesHintCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TooManyCommunitiesHintCell.java @@ -76,7 +76,7 @@ protected void onDraw(Canvas canvas) { imageLayout.setWillNotDraw(false); imageLayout.addView(imageView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL)); addView(imageLayout, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 12, 0, 6)); - headerTextView.setText(LocaleController.getString("TooManyCommunities", R.string.TooManyCommunities)); + headerTextView.setText(LocaleController.getString(R.string.TooManyCommunities)); imageView.setImageResource(R.drawable.groups_limit1); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/UserCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/UserCell.java index 0c10985139..1347bf0d4c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/UserCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/UserCell.java @@ -9,6 +9,7 @@ package org.telegram.ui.Cells; import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.getString; import android.content.Context; import android.graphics.Canvas; @@ -142,7 +143,7 @@ public UserCell(Context context, int padding, int checkbox, boolean admin, boole addButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); addButton.setTypeface(AndroidUtilities.bold()); addButton.setBackgroundDrawable(Theme.AdaptiveRipple.filledRectByKey(Theme.key_featuredStickers_addButton, 4)); - addButton.setText(LocaleController.getString("Add", R.string.Add)); + addButton.setText(getString(R.string.Add)); addButton.setPadding(dp(17), 0, dp(17), 0); addView(addButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 28, Gravity.TOP | (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT), LocaleController.isRTL ? 14 : 0, 15, LocaleController.isRTL ? 0 : 14, 0)); additionalPadding = (int) Math.ceil((addButton.getPaint().measureText(addButton.getText().toString()) + dp(34 + 14)) / AndroidUtilities.density); @@ -336,11 +337,11 @@ public void setException(NotificationsSettingsActivity.NotificationException exc String text; if (exception.story) { if (exception.notify <= 0 && exception.auto) { - text = LocaleController.getString("NotificationEnabledAutomatically"); + text = getString(R.string.NotificationEnabledAutomatically); } else if (exception.notify <= 0) { - text = LocaleController.getString("NotificationEnabled"); + text = getString(R.string.NotificationEnabled); } else { - text = LocaleController.getString("NotificationDisabled"); + text = getString(R.string.NotificationDisabled); } } else { boolean enabled; @@ -351,9 +352,9 @@ public void setException(NotificationsSettingsActivity.NotificationException exc delta -= ConnectionsManager.getInstance(currentAccount).getCurrentTime(); if (delta <= 0) { if (custom) { - text = LocaleController.getString("NotificationsCustom", R.string.NotificationsCustom); + text = getString(R.string.NotificationsCustom); } else { - text = LocaleController.getString("NotificationsUnmuted", R.string.NotificationsUnmuted); + text = getString(R.string.NotificationsUnmuted); } } else if (delta < 60 * 60) { text = LocaleController.formatString("WillUnmuteIn", R.string.WillUnmuteIn, LocaleController.formatPluralString("Minutes", delta / 60)); @@ -375,13 +376,13 @@ public void setException(NotificationsSettingsActivity.NotificationException exc enabled = false; } if (enabled && custom) { - text = LocaleController.getString("NotificationsCustom", R.string.NotificationsCustom); + text = getString(R.string.NotificationsCustom); } else { - text = enabled ? LocaleController.getString("NotificationsUnmuted", R.string.NotificationsUnmuted) : LocaleController.getString("NotificationsMuted", R.string.NotificationsMuted); + text = getString(enabled ? R.string.NotificationsUnmuted : R.string.NotificationsMuted); } } if (text == null) { - text = LocaleController.getString("NotificationsOff", R.string.NotificationsOff); + text = getString(R.string.NotificationsOff); } if (exception.auto) { text += ", Auto"; @@ -549,7 +550,7 @@ public void update(int mask) { ((LayoutParams) nameTextView.getLayoutParams()).topMargin = dp(10); if (currentUser != null) { if (selfAsSavedMessages && UserObject.isUserSelf(currentUser)) { - nameTextView.setText(LocaleController.getString("SavedMessages", R.string.SavedMessages), true); + nameTextView.setText(getString(R.string.SavedMessages), true); statusTextView.setText(null); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_SAVED); avatarImageView.setImage(null, "50_50", avatarDrawable, currentUser); @@ -627,14 +628,14 @@ public void draw(@NonNull Canvas canvas) { if (currentUser.bot) { statusTextView.setTextColor(statusColor); if (currentUser.bot_chat_history || adminTextView != null && adminTextView.getVisibility() == VISIBLE) { - statusTextView.setText(LocaleController.getString("BotStatusRead", R.string.BotStatusRead)); + statusTextView.setText(getString(R.string.BotStatusRead)); } else { - statusTextView.setText(LocaleController.getString("BotStatusCantRead", R.string.BotStatusCantRead)); + statusTextView.setText(getString(R.string.BotStatusCantRead)); } } else { if (currentUser.id == UserConfig.getInstance(currentAccount).getClientUserId() || currentUser.status != null && currentUser.status.expires > ConnectionsManager.getInstance(currentAccount).getCurrentTime() || MessagesController.getInstance(currentAccount).onlinePrivacy.containsKey(currentUser.id)) { statusTextView.setTextColor(statusOnlineColor); - statusTextView.setText(LocaleController.getString("Online", R.string.Online)); + statusTextView.setText(getString(R.string.Online)); } else { statusTextView.setTextColor(statusColor); statusTextView.setText(LocaleController.formatUserStatus(currentAccount, currentUser)); @@ -735,11 +736,11 @@ public void setFromUItem(int currentAccount, UItem item, boolean divider) { if (user != null) { String status; if (user.bot) { - status = LocaleController.getString("Bot", R.string.Bot); + status = getString(R.string.Bot); } else if (user.contact) { - status = LocaleController.getString("FilterContact", R.string.FilterContact); + status = getString(R.string.FilterContact); } else { - status = LocaleController.getString("FilterNonContact", R.string.FilterNonContact); + status = getString(R.string.FilterNonContact); } setData(user, null, status, 0, divider); } @@ -755,15 +756,15 @@ public void setFromUItem(int currentAccount, UItem item, boolean divider) { } } else if (!ChatObject.isPublic(chat)) { if (ChatObject.isChannel(chat) && !chat.megagroup) { - status = LocaleController.getString("ChannelPrivate", R.string.ChannelPrivate); + status = getString(R.string.ChannelPrivate); } else { - status = LocaleController.getString("MegaPrivate", R.string.MegaPrivate); + status = getString(R.string.MegaPrivate); } } else { if (ChatObject.isChannel(chat) && !chat.megagroup) { - status = LocaleController.getString("ChannelPublic", R.string.ChannelPublic); + status = getString(R.string.ChannelPublic); } else { - status = LocaleController.getString("MegaPublic", R.string.MegaPublic); + status = getString(R.string.MegaPublic); } } setData(chat, null, status, 0, divider); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/UserCell2.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/UserCell2.java index f20b89bf65..a5e0dcce27 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/UserCell2.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/UserCell2.java @@ -265,14 +265,14 @@ public void update(int mask) { if (currentUser.bot) { statusTextView.setTextColor(statusColor); if (currentUser.bot_chat_history) { - statusTextView.setText(LocaleController.getString("BotStatusRead", R.string.BotStatusRead)); + statusTextView.setText(LocaleController.getString(R.string.BotStatusRead)); } else { - statusTextView.setText(LocaleController.getString("BotStatusCantRead", R.string.BotStatusCantRead)); + statusTextView.setText(LocaleController.getString(R.string.BotStatusCantRead)); } } else { if (currentUser.id == UserConfig.getInstance(currentAccount).getClientUserId() || currentUser.status != null && currentUser.status.expires > ConnectionsManager.getInstance(currentAccount).getCurrentTime() || MessagesController.getInstance(currentAccount).onlinePrivacy.containsKey(currentUser.id)) { statusTextView.setTextColor(statusOnlineColor); - statusTextView.setText(LocaleController.getString("Online", R.string.Online)); + statusTextView.setText(LocaleController.getString(R.string.Online)); } else { statusTextView.setTextColor(statusColor); statusTextView.setText(LocaleController.formatUserStatus(currentAccount, currentUser)); @@ -286,19 +286,19 @@ public void update(int mask) { if (currentChat.participants_count != 0) { statusTextView.setText(LocaleController.formatPluralString("Subscribers", currentChat.participants_count)); } else if (!ChatObject.isPublic(currentChat)) { - statusTextView.setText(LocaleController.getString("ChannelPrivate", R.string.ChannelPrivate)); + statusTextView.setText(LocaleController.getString(R.string.ChannelPrivate)); } else { - statusTextView.setText(LocaleController.getString("ChannelPublic", R.string.ChannelPublic)); + statusTextView.setText(LocaleController.getString(R.string.ChannelPublic)); } } else { if (currentChat.participants_count != 0) { statusTextView.setText(LocaleController.formatPluralString("Members", currentChat.participants_count)); } else if (currentChat.has_geo) { - statusTextView.setText(LocaleController.getString("MegaLocation", R.string.MegaLocation)); + statusTextView.setText(LocaleController.getString(R.string.MegaLocation)); } else if (!ChatObject.isPublic(currentChat)) { - statusTextView.setText(LocaleController.getString("MegaPrivate", R.string.MegaPrivate)); + statusTextView.setText(LocaleController.getString(R.string.MegaPrivate)); } else { - statusTextView.setText(LocaleController.getString("MegaPublic", R.string.MegaPublic)); + statusTextView.setText(LocaleController.getString(R.string.MegaPublic)); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChangeBioActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChangeBioActivity.java index b40727c6d6..f05a67645a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChangeBioActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChangeBioActivity.java @@ -63,7 +63,7 @@ public class ChangeBioActivity extends BaseFragment { public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("UserBio", R.string.UserBio)); + actionBar.setTitle(LocaleController.getString(R.string.UserBio)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { @@ -77,7 +77,7 @@ public void onItemClick(int id) { ActionBarMenu menu = actionBar.createMenu(); doneButton = menu.addItemWithWidth(done_button, R.drawable.ic_ab_done, AndroidUtilities.dp(56)); - doneButton.setContentDescription(LocaleController.getString("Done", R.string.Done)); + doneButton.setContentDescription(LocaleController.getString(R.string.Done)); fragmentView = new LinearLayout(context); LinearLayout linearLayout = (LinearLayout) fragmentView; @@ -125,7 +125,7 @@ public CharSequence filter(CharSequence source, int start, int end, Spanned dest }; firstNameField.setFilters(inputFilters); firstNameField.setMinHeight(AndroidUtilities.dp(36)); - firstNameField.setHint(LocaleController.getString("UserBio", R.string.UserBio)); + firstNameField.setHint(LocaleController.getString(R.string.UserBio)); firstNameField.setCursorColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); firstNameField.setCursorSize(AndroidUtilities.dp(20)); firstNameField.setCursorWidth(1.5f); @@ -168,7 +168,7 @@ public void afterTextChanged(Editable s) { helpTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); helpTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText8)); helpTextView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); - helpTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("UserBioInfo", R.string.UserBioInfo))); + helpTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.UserBioInfo))); linearLayout.addView(helpTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT, 24, 10, 24, 0)); TLRPC.UserFull userFull = MessagesController.getInstance(currentAccount).getUserFull(UserConfig.getInstance(currentAccount).getClientUserId()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChangeNameActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChangeNameActivity.java index b549485c43..0042aaed16 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChangeNameActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChangeNameActivity.java @@ -57,7 +57,7 @@ public View createView(Context context) { actionBar.setItemsColor(Theme.getColor(Theme.key_actionBarDefaultIcon, resourcesProvider), false); actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("EditName", R.string.EditName)); + actionBar.setTitle(LocaleController.getString(R.string.EditName)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { @@ -73,7 +73,7 @@ public void onItemClick(int id) { }); ActionBarMenu menu = actionBar.createMenu(); - doneButton = menu.addItemWithWidth(done_button, R.drawable.ic_ab_done, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + doneButton = menu.addItemWithWidth(done_button, R.drawable.ic_ab_done, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(UserConfig.getInstance(currentAccount).getClientUserId()); if (user == null) { @@ -103,7 +103,7 @@ protected Theme.ResourcesProvider getResourcesProvider() { firstNameField.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); firstNameField.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); firstNameField.setImeOptions(EditorInfo.IME_ACTION_NEXT); - firstNameField.setHint(LocaleController.getString("FirstName", R.string.FirstName)); + firstNameField.setHint(LocaleController.getString(R.string.FirstName)); firstNameField.setCursorColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); firstNameField.setCursorSize(AndroidUtilities.dp(20)); firstNameField.setCursorWidth(1.5f); @@ -134,7 +134,7 @@ protected Theme.ResourcesProvider getResourcesProvider() { lastNameField.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); lastNameField.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); lastNameField.setImeOptions(EditorInfo.IME_ACTION_DONE); - lastNameField.setHint(LocaleController.getString("LastName", R.string.LastName)); + lastNameField.setHint(LocaleController.getString(R.string.LastName)); lastNameField.setCursorColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); lastNameField.setCursorSize(AndroidUtilities.dp(20)); lastNameField.setCursorWidth(1.5f); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChangeUsernameActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChangeUsernameActivity.java index 8fc17e959c..91479cd1a0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChangeUsernameActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChangeUsernameActivity.java @@ -190,7 +190,7 @@ private TLRPC.User getUser() { public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("Username", R.string.Username)); + actionBar.setTitle(LocaleController.getString(R.string.Username)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { @@ -204,7 +204,7 @@ public void onItemClick(int id) { }); ActionBarMenu menu = actionBar.createMenu(); - doneButton = menu.addItemWithWidth(done_button, R.drawable.ic_ab_done, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + doneButton = menu.addItemWithWidth(done_button, R.drawable.ic_ab_done, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(getUserId()); if (user == null) { @@ -307,9 +307,9 @@ public void onItemClick(View view, int position) { return; } new AlertDialog.Builder(getContext(), getResourceProvider()) - .setTitle(username.active ? LocaleController.getString("UsernameDeactivateLink", R.string.UsernameDeactivateLink) : LocaleController.getString("UsernameActivateLink", R.string.UsernameActivateLink)) - .setMessage(username.active ? LocaleController.getString("UsernameDeactivateLinkProfileMessage", R.string.UsernameDeactivateLinkProfileMessage) : LocaleController.getString("UsernameActivateLinkProfileMessage", R.string.UsernameActivateLinkProfileMessage)) - .setPositiveButton(username.active ? LocaleController.getString("Hide", R.string.Hide) : LocaleController.getString("Show", R.string.Show), (di, e) -> { + .setTitle(username.active ? LocaleController.getString(R.string.UsernameDeactivateLink) : LocaleController.getString(R.string.UsernameActivateLink)) + .setMessage(username.active ? LocaleController.getString(R.string.UsernameDeactivateLinkProfileMessage) : LocaleController.getString(R.string.UsernameActivateLinkProfileMessage)) + .setPositiveButton(username.active ? LocaleController.getString(R.string.Hide) : LocaleController.getString(R.string.Show), (di, e) -> { boolean wasActive = username.active; String reqUsername = username.username; boolean reqActive = !username.active; @@ -336,9 +336,9 @@ public void onItemClick(View view, int position) { username.active = reqActive; toggleUsername(position, username.active); new AlertDialog.Builder(getContext(), getResourceProvider()) - .setTitle(LocaleController.getString("UsernameActivateErrorTitle", R.string.UsernameActivateErrorTitle)) - .setMessage(LocaleController.getString("UsernameActivateErrorMessage", R.string.UsernameActivateErrorMessage)) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), (d, v) -> toggleUsername(username, wasActive, true)) + .setTitle(LocaleController.getString(R.string.UsernameActivateErrorTitle)) + .setMessage(LocaleController.getString(R.string.UsernameActivateErrorMessage)) + .setPositiveButton(LocaleController.getString(R.string.OK), (d, v) -> toggleUsername(username, wasActive, true)) .show(); } else { toggleUsername(username, wasActive, true); @@ -352,7 +352,7 @@ public void onItemClick(View view, int position) { ((UsernameCell) view).setLoading(true); // updateUser(); }) - .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (di, e) -> { + .setNegativeButton(LocaleController.getString(R.string.Cancel), (di, e) -> { di.dismiss(); }) .show(); @@ -505,7 +505,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi ignoreCheck = false; break; case VIEW_TYPE_HEADER: - ((HeaderCell) holder.itemView).setText(position == 0 ? LocaleController.getString(botId != 0 ? R.string.BotSetPublicLinkHeader : R.string.SetUsernameHeader) : LocaleController.getString("UsernamesProfileHeader", R.string.UsernamesProfileHeader)); + ((HeaderCell) holder.itemView).setText(position == 0 ? LocaleController.getString(botId != 0 ? R.string.BotSetPublicLinkHeader : R.string.SetUsernameHeader) : LocaleController.getString(R.string.UsernamesProfileHeader)); break; case VIEW_TYPE_USERNAME: TLRPC.TL_username username = usernames.get(position - 4); @@ -784,7 +784,7 @@ public InputCell(Context context) { field.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); field.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); field.setImeOptions(EditorInfo.IME_ACTION_DONE); - field.setHint(LocaleController.getString("UsernameLinkPlaceholder", R.string.UsernameLinkPlaceholder)); + field.setHint(LocaleController.getString(R.string.UsernameLinkPlaceholder)); field.setCursorColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); field.setCursorSize(AndroidUtilities.dp(19)); field.setCursorWidth(1.5f); @@ -986,9 +986,9 @@ public void set(TLRPC.TL_username username, boolean useDivider, boolean animated editable = botId == 0 && username.editable; updateUsername(username.username); if (isProfile) { - activeView.setText(editable ? LocaleController.getString("UsernameProfileLinkEditable", R.string.UsernameProfileLinkEditable) : (active ? LocaleController.getString("UsernameProfileLinkActive", R.string.UsernameProfileLinkActive) : LocaleController.getString("UsernameProfileLinkInactive", R.string.UsernameProfileLinkInactive)), animated, !active); + activeView.setText(editable ? LocaleController.getString(R.string.UsernameProfileLinkEditable) : (active ? LocaleController.getString(R.string.UsernameProfileLinkActive) : LocaleController.getString(R.string.UsernameProfileLinkInactive)), animated, !active); } else { - activeView.setText(editable ? LocaleController.getString("UsernameLinkEditable", R.string.UsernameLinkEditable) : (active ? LocaleController.getString("UsernameLinkActive", R.string.UsernameLinkActive) : LocaleController.getString("UsernameLinkInactive", R.string.UsernameLinkInactive)), animated, !active); + activeView.setText(editable ? LocaleController.getString(R.string.UsernameLinkEditable) : (active ? LocaleController.getString(R.string.UsernameLinkActive) : LocaleController.getString(R.string.UsernameLinkInactive)), animated, !active); } animateValueTextColor(active || editable, animated); } @@ -1001,7 +1001,7 @@ public void updateUsername(String username) { String usernameString = editable ? getUsernameEditable() : username; if (TextUtils.isEmpty(usernameString)) { SpannableStringBuilder ssb = new SpannableStringBuilder("@"); - SpannableString sb = new SpannableString(LocaleController.getString("UsernameLinkPlaceholder", R.string.UsernameLinkPlaceholder)); + SpannableString sb = new SpannableString(LocaleController.getString(R.string.UsernameLinkPlaceholder)); sb.setSpan(new ForegroundColorSpan(Theme.getColor(Theme.key_windowBackgroundWhiteHintText, resourcesProvider)), 0, sb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); ssb.append(sb); usernameView.setText(ssb); @@ -1197,7 +1197,7 @@ private boolean checkUserName(String name, boolean alert) { if (name != null) { if (name.startsWith("_") || name.endsWith("_")) { if (statusTextView != null) { - statusTextView.setText(LocaleController.getString("UsernameInvalid", R.string.UsernameInvalid)); + statusTextView.setText(LocaleController.getString(R.string.UsernameInvalid)); statusTextView.setTag(Theme.key_text_RedRegular); statusTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); if (helpCell != null) { @@ -1210,10 +1210,10 @@ private boolean checkUserName(String name, boolean alert) { char ch = name.charAt(a); if (a == 0 && ch >= '0' && ch <= '9') { if (alert) { - AlertsCreator.showSimpleAlert(this, LocaleController.getString("UsernameInvalidStartNumber", R.string.UsernameInvalidStartNumber)); + AlertsCreator.showSimpleAlert(this, LocaleController.getString(R.string.UsernameInvalidStartNumber)); } else { if (statusTextView != null) { - statusTextView.setText(LocaleController.getString("UsernameInvalidStartNumber", R.string.UsernameInvalidStartNumber)); + statusTextView.setText(LocaleController.getString(R.string.UsernameInvalidStartNumber)); statusTextView.setTag(Theme.key_text_RedRegular); statusTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); if (helpCell != null) { @@ -1225,10 +1225,10 @@ private boolean checkUserName(String name, boolean alert) { } if (!(ch >= '0' && ch <= '9' || ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z' || ch == '_')) { if (alert) { - AlertsCreator.showSimpleAlert(this, LocaleController.getString("UsernameInvalid", R.string.UsernameInvalid)); + AlertsCreator.showSimpleAlert(this, LocaleController.getString(R.string.UsernameInvalid)); } else { if (statusTextView != null) { - statusTextView.setText(LocaleController.getString("UsernameInvalid", R.string.UsernameInvalid)); + statusTextView.setText(LocaleController.getString(R.string.UsernameInvalid)); statusTextView.setTag(Theme.key_text_RedRegular); statusTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); if (helpCell != null) { @@ -1242,10 +1242,10 @@ private boolean checkUserName(String name, boolean alert) { } if (name == null || name.length() < 4) { if (alert) { - AlertsCreator.showSimpleAlert(this, LocaleController.getString("UsernameInvalidShort", R.string.UsernameInvalidShort)); + AlertsCreator.showSimpleAlert(this, LocaleController.getString(R.string.UsernameInvalidShort)); } else { if (statusTextView != null) { - statusTextView.setText(LocaleController.getString("UsernameInvalidShort", R.string.UsernameInvalidShort)); + statusTextView.setText(LocaleController.getString(R.string.UsernameInvalidShort)); statusTextView.setTag(Theme.key_text_RedRegular); statusTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); if (helpCell != null) { @@ -1257,10 +1257,10 @@ private boolean checkUserName(String name, boolean alert) { } if (name.length() > 32) { if (alert) { - AlertsCreator.showSimpleAlert(this, LocaleController.getString("UsernameInvalidLong", R.string.UsernameInvalidLong)); + AlertsCreator.showSimpleAlert(this, LocaleController.getString(R.string.UsernameInvalidLong)); } else { if (statusTextView != null) { - statusTextView.setText(LocaleController.getString("UsernameInvalidLong", R.string.UsernameInvalidLong)); + statusTextView.setText(LocaleController.getString(R.string.UsernameInvalidLong)); statusTextView.setTag(Theme.key_text_RedRegular); statusTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); if (helpCell != null) { @@ -1289,7 +1289,7 @@ private boolean checkUserName(String name, boolean alert) { } if (statusTextView != null) { - statusTextView.setText(LocaleController.getString("UsernameChecking", R.string.UsernameChecking)); + statusTextView.setText(LocaleController.getString(R.string.UsernameChecking)); statusTextView.setTag(Theme.key_windowBackgroundWhiteGrayText8); statusTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText8)); if (helpCell != null) { @@ -1317,19 +1317,19 @@ private boolean checkUserName(String name, boolean alert) { } else { if (statusTextView != null) { if (error != null && "USERNAME_INVALID".equals(error.text) && req.username.length() == 4) { - statusTextView.setText(LocaleController.getString("UsernameInvalidShort", R.string.UsernameInvalidShort)); + statusTextView.setText(LocaleController.getString(R.string.UsernameInvalidShort)); statusTextView.setTag(Theme.key_text_RedRegular); statusTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); } else if (error != null && "USERNAME_PURCHASE_AVAILABLE".equals(error.text)) { if (req.username.length() == 4) { - statusTextView.setText(LocaleController.getString("UsernameInvalidShortPurchase", R.string.UsernameInvalidShortPurchase)); + statusTextView.setText(LocaleController.getString(R.string.UsernameInvalidShortPurchase)); } else { - statusTextView.setText(LocaleController.getString("UsernameInUsePurchase", R.string.UsernameInUsePurchase)); + statusTextView.setText(LocaleController.getString(R.string.UsernameInUsePurchase)); } statusTextView.setTag(Theme.key_windowBackgroundWhiteGrayText8); statusTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText8)); } else { - statusTextView.setText(LocaleController.getString("UsernameInUse", R.string.UsernameInUse)); + statusTextView.setText(LocaleController.getString(R.string.UsernameInUse)); statusTextView.setTag(Theme.key_text_RedRegular); statusTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChannelBoostLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/ChannelBoostLayout.java index 8ae5ba4b1a..96bfed5bfd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChannelBoostLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChannelBoostLayout.java @@ -56,6 +56,8 @@ import org.telegram.ui.Components.RLottieImageView; import org.telegram.ui.Components.RecyclerListView; import org.telegram.ui.Components.ScrollSlidingTextTabStrip; +import org.telegram.ui.Stars.StarsController; +import org.telegram.ui.Stars.StarsIntroActivity; import java.util.ArrayList; import java.util.Locale; @@ -91,8 +93,8 @@ public class ChannelBoostLayout extends FrameLayout { private final Theme.ResourcesProvider resourcesProvider; private ScrollSlidingTextTabStrip boostsTabs; - private final ArrayList boosters = new ArrayList<>(); - private final ArrayList gifts = new ArrayList<>(); + private final ArrayList boosters = new ArrayList<>(); + private final ArrayList gifts = new ArrayList<>(); private boolean hasBoostsNext; private int nextBoostRemaining; private boolean hasGiftsNext; @@ -227,7 +229,7 @@ protected int getFullHeight() { } }; actionCell.setColors(Theme.key_windowBackgroundWhiteBlueIcon, Theme.key_windowBackgroundWhiteBlueButton); - // actionCell.setText(LocaleController.getString("ShowMore", R.string.ShowMore), null, R.drawable.arrow_more, false); + // actionCell.setText(LocaleController.getString(R.string.ShowMore), null, R.drawable.arrow_more, false); view = actionCell; break; default: @@ -251,17 +253,17 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } else if (holder.getItemViewType() == OVERVIEW_TYPE) { StatisticActivity.OverviewCell overviewCell = (StatisticActivity.OverviewCell) holder.itemView; - overviewCell.setData(0, Integer.toString(boostsStatus.level), null, LocaleController.getString("BoostsLevel2", R.string.BoostsLevel2)); + overviewCell.setData(0, Integer.toString(boostsStatus.level), null, LocaleController.getString(R.string.BoostsLevel2)); if (boostsStatus.premium_audience != null && boostsStatus.premium_audience.total != 0) { float percent = (((float) boostsStatus.premium_audience.part / (float) boostsStatus.premium_audience.total) * 100f); overviewCell.setData(1, "≈" + (int) boostsStatus.premium_audience.part, String.format(Locale.US, "%.1f", percent) + "%", LocaleController.getString(isChannel() ? R.string.PremiumSubscribers : R.string.PremiumMembers)); } else { overviewCell.setData(1, "≈0", "0%", LocaleController.getString(isChannel() ? R.string.PremiumSubscribers : R.string.PremiumMembers)); } - overviewCell.setData(2, String.valueOf(boostsStatus.boosts), null, LocaleController.getString("BoostsExisting", R.string.BoostsExisting)); - overviewCell.setData(3, String.valueOf(Math.max(0, boostsStatus.next_level_boosts - boostsStatus.boosts)), null, LocaleController.getString("BoostsToLevel", R.string.BoostsToLevel)); + overviewCell.setData(2, String.valueOf(boostsStatus.boosts), null, LocaleController.getString(R.string.BoostsExisting)); + overviewCell.setData(3, String.valueOf(Math.max(0, boostsStatus.next_level_boosts - boostsStatus.boosts)), null, LocaleController.getString(R.string.BoostsToLevel)); } else if (holder.getItemViewType() == USER_VIEW_TYPE) { - TL_stories.TL_boost booster = items.get(position).booster; + TL_stories.Boost booster = items.get(position).booster; TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(booster.user_id); GiftedUserCell userCell = (GiftedUserCell) holder.itemView; String str = booster.multiplier > 1 @@ -285,11 +287,18 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi linkActionView.setLink(items.get(position).title); } else if (holder.getItemViewType() == SHOW_PREPARED_GIVE_AWAY) { ItemInternal item = items.get(position); - TL_stories.TL_prepaidGiveaway prepaidGiveaway = item.prepaidGiveaway; + TL_stories.PrepaidGiveaway prepaidGiveaway = item.prepaidGiveaway; GiveawayCell giveawayCell = (GiveawayCell) holder.itemView; - String name = LocaleController.formatPluralString("BoostingTelegramPremiumCountPlural", prepaidGiveaway.quantity); - String info = LocaleController.formatPluralString("BoostingSubscriptionsCountPlural", prepaidGiveaway.quantity, LocaleController.formatPluralString("PrepaidGiveawayMonths", prepaidGiveaway.months)); - giveawayCell.setData(prepaidGiveaway, name, info, 0, !item.isLast); + if (prepaidGiveaway instanceof TL_stories.TL_prepaidGiveaway) { + String name = LocaleController.formatPluralString("BoostingTelegramPremiumCountPlural", prepaidGiveaway.quantity); + String info = LocaleController.formatPluralString("BoostingSubscriptionsCountPlural", prepaidGiveaway.quantity, LocaleController.formatPluralString("PrepaidGiveawayMonths", ((TL_stories.TL_prepaidGiveaway) prepaidGiveaway).months)); + giveawayCell.setData(prepaidGiveaway, name, info, 0, !item.isLast); + } else if (prepaidGiveaway instanceof TL_stories.TL_prepaidStarsGiveaway) { + TL_stories.TL_prepaidStarsGiveaway starsGiveaway = (TL_stories.TL_prepaidStarsGiveaway) prepaidGiveaway; + String name = LocaleController.formatPluralStringComma("BoostingStarsCountPlural", (int) starsGiveaway.stars); + String info = LocaleController.formatPluralString("AmongWinners", starsGiveaway.quantity); + giveawayCell.setData(prepaidGiveaway, name, info, 0, !item.isLast); + } giveawayCell.setImage(prepaidGiveaway); giveawayCell.setAvatarPadding(5); } else if (holder.getItemViewType() == HEADER_VIEW_TYPE_TABS) { @@ -339,8 +348,10 @@ public ChannelBoostLayout(BaseFragment fragment, long dialogId, Theme.ResourcesP listView.setOnItemClickListener((view, position) -> { if (view instanceof GiftedUserCell) { GiftedUserCell cell = (GiftedUserCell) view; - TL_stories.TL_boost boost = cell.getBoost(); - if (((boost.gift || boost.giveaway) && boost.user_id >= 0) || boost.unclaimed) { + TL_stories.Boost boost = cell.getBoost(); + if (boost.giveaway && boost.stars > 0) { + StarsIntroActivity.showBoostsSheet(context, currentAccount, dialogId, boost, resourcesProvider); + } else if (((boost.gift || boost.giveaway) && boost.user_id >= 0) || boost.unclaimed) { TLRPC.TL_payments_checkedGiftCode giftCode = new TLRPC.TL_payments_checkedGiftCode(); giftCode.giveaway_msg_id = boost.giveaway_msg_id; giftCode.to_id = boost.user_id; @@ -358,7 +369,7 @@ public ChannelBoostLayout(BaseFragment fragment, long dialogId, Theme.ResourcesP } else if (boost.giveaway && boost.user_id == NO_USER_ID) { final Bulletin.LottieLayout layout = new Bulletin.LottieLayout(fragment.getParentActivity(), fragment.getResourceProvider()); layout.setAnimation(R.raw.chats_infotip, 36, 36); - layout.textView.setText(LocaleController.getString("BoostingRecipientWillBeSelected", R.string.BoostingRecipientWillBeSelected)); + layout.textView.setText(LocaleController.getString(R.string.BoostingRecipientWillBeSelected)); layout.textView.setSingleLine(false); layout.textView.setMaxLines(2); Bulletin.make(fragment, layout, Bulletin.DURATION_LONG).show(); @@ -384,6 +395,8 @@ public ChannelBoostLayout(BaseFragment fragment, long dialogId, Theme.ResourcesP createEmptyView(getContext()); progressLayout.setAlpha(0); progressLayout.animate().alpha(1f).setDuration(200).setStartDelay(500).start(); + + StarsController.getInstance(currentAccount).getGiveawayOptions(); } private boolean isChannel() { @@ -395,20 +408,20 @@ public void updateRows(boolean animated) { items.clear(); if (boostsStatus != null) { items.add(new ItemInternal(BOOST_VIEW, false)); - items.add(new ItemInternal(HEADER_VIEW_TYPE, LocaleController.getString("StatisticOverview", R.string.StatisticOverview))); + items.add(new ItemInternal(HEADER_VIEW_TYPE, LocaleController.getString(R.string.StatisticOverview))); items.add(new ItemInternal(OVERVIEW_TYPE, false)); items.add(new ItemInternal(DIVIDER_VIEW_TYPE, false)); if (boostsStatus.prepaid_giveaways.size() > 0) { - items.add(new ItemInternal(HEADER_VIEW_TYPE_SMALL, LocaleController.getString("BoostingPreparedGiveaways", R.string.BoostingPreparedGiveaways))); + items.add(new ItemInternal(HEADER_VIEW_TYPE_SMALL, LocaleController.getString(R.string.BoostingPreparedGiveaways))); for (int i = 0; i < boostsStatus.prepaid_giveaways.size(); i++) { - TL_stories.TL_prepaidGiveaway prepaidGiveaway = boostsStatus.prepaid_giveaways.get(i); + TL_stories.PrepaidGiveaway prepaidGiveaway = boostsStatus.prepaid_giveaways.get(i); items.add(new ItemInternal(SHOW_PREPARED_GIVE_AWAY, prepaidGiveaway, i == boostsStatus.prepaid_giveaways.size() - 1)); } - items.add(new ItemInternal(DIVIDER_TEXT_VIEW_TYPE, LocaleController.getString("BoostingSelectPaidGiveaway", R.string.BoostingSelectPaidGiveaway))); + items.add(new ItemInternal(DIVIDER_TEXT_VIEW_TYPE, LocaleController.getString(R.string.BoostingSelectPaidGiveaway))); } - items.add(new ItemInternal(HEADER_VIEW_TYPE_TABS, LocaleController.getString("Boosters", R.string.Boosters))); + items.add(new ItemInternal(HEADER_VIEW_TYPE_TABS, LocaleController.getString(R.string.Boosters))); if (selectedTab == TAB_BOOSTS) { if (boosters.isEmpty()) { items.add(new ItemInternal(NO_USERS_HINT, false)); @@ -441,12 +454,12 @@ public void updateRows(boolean animated) { } } - items.add(new ItemInternal(HEADER_VIEW_TYPE, LocaleController.getString("LinkForBoosting", R.string.LinkForBoosting))); + items.add(new ItemInternal(HEADER_VIEW_TYPE, LocaleController.getString(R.string.LinkForBoosting))); items.add(new ItemInternal(LINK_VIEW_TYPE, boostsStatus.boost_url)); if (MessagesController.getInstance(currentAccount).giveawayGiftsPurchaseAvailable && ChatObject.hasAdminRights(currentChat)) { items.add(new ItemInternal(DIVIDER_TEXT_VIEW_TYPE, LocaleController.getString(isChannel() ? R.string.BoostingShareThisLink : R.string.BoostingShareThisLinkGroup))); items.add(new ItemInternal(SHOW_BOOST_BY_GIFTS, true)); - items.add(new ItemInternal(DIVIDER_TEXT_VIEW_TYPE, LocaleController.getString(isChannel() ? R.string.BoostingGetMoreBoosts : R.string.BoostingGetMoreBoostsGroup))); + items.add(new ItemInternal(DIVIDER_TEXT_VIEW_TYPE, LocaleController.getString(isChannel() ? R.string.BoostingGetMoreBoosts2 : R.string.BoostingGetMoreBoostsGroup))); } } if (animated) { @@ -528,7 +541,7 @@ private void loadOnlyBoosts(CountDownLatch latch, Runnable after) { lastBoostsOffset = list.next_offset; boosters.addAll(list.boosts); int shownBoosts = 0; - for (TL_stories.TL_boost booster : boosters) { + for (TL_stories.Boost booster : boosters) { shownBoosts += booster.multiplier > 0 ? booster.multiplier : 1; } nextBoostRemaining = Math.max(0, list.count - shownBoosts); @@ -559,7 +572,7 @@ private void loadOnlyGifts(CountDownLatch latch, Runnable after) { lastGiftsOffset = list.next_offset; gifts.addAll(list.boosts); int shownGifts = 0; - for (TL_stories.TL_boost booster : gifts) { + for (TL_stories.Boost booster : gifts) { shownGifts += booster.multiplier > 0 ? booster.multiplier : 1; } nextGiftsRemaining = Math.max(0, list.count - shownGifts); @@ -575,8 +588,8 @@ private void loadOnlyGifts(CountDownLatch latch, Runnable after) { private class ItemInternal extends AdapterWithDiffUtils.Item { String title; - TL_stories.TL_boost booster; - TL_stories.TL_prepaidGiveaway prepaidGiveaway; + TL_stories.Boost booster; + TL_stories.PrepaidGiveaway prepaidGiveaway; boolean isLast; int tab; @@ -585,14 +598,14 @@ public ItemInternal(int viewType, String title) { this.title = title; } - public ItemInternal(int viewType, TL_stories.TL_boost booster, boolean isLast, int tab) { + public ItemInternal(int viewType, TL_stories.Boost booster, boolean isLast, int tab) { super(viewType, true); this.booster = booster; this.isLast = isLast; this.tab = tab; } - public ItemInternal(int viewType, TL_stories.TL_prepaidGiveaway prepaidGiveaway, boolean isLast) { + public ItemInternal(int viewType, TL_stories.PrepaidGiveaway prepaidGiveaway, boolean isLast) { super(viewType, true); this.prepaidGiveaway = prepaidGiveaway; this.isLast = isLast; @@ -637,14 +650,14 @@ public void createEmptyView(Context context) { loadingTitle.setTypeface(AndroidUtilities.bold()); loadingTitle.setTextColor(Theme.getColor(Theme.key_player_actionBarTitle)); loadingTitle.setTag(Theme.key_player_actionBarTitle); - loadingTitle.setText(LocaleController.getString("LoadingStats", R.string.LoadingStats)); + loadingTitle.setText(LocaleController.getString(R.string.LoadingStats)); loadingTitle.setGravity(Gravity.CENTER_HORIZONTAL); TextView loadingSubtitle = new TextView(context); loadingSubtitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); loadingSubtitle.setTextColor(Theme.getColor(Theme.key_player_actionBarSubtitle)); loadingSubtitle.setTag(Theme.key_player_actionBarSubtitle); - loadingSubtitle.setText(LocaleController.getString("LoadingStatsDescription", R.string.LoadingStatsDescription)); + loadingSubtitle.setText(LocaleController.getString(R.string.LoadingStatsDescription)); loadingSubtitle.setGravity(Gravity.CENTER_HORIZONTAL); progressLayout.addView(imageView, LayoutHelper.createLinear(120, 120, Gravity.CENTER_HORIZONTAL, 0, 0, 0, 20)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChannelCreateActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChannelCreateActivity.java index 9f65db8e56..dac954abdd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChannelCreateActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChannelCreateActivity.java @@ -284,10 +284,10 @@ private void showDoneCancelDialog() { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("StopLoadingTitle", R.string.StopLoadingTitle)); - builder.setMessage(LocaleController.getString("StopLoading", R.string.StopLoading)); - builder.setPositiveButton(LocaleController.getString("WaitMore", R.string.WaitMore), null); - builder.setNegativeButton(LocaleController.getString("Stop", R.string.Stop), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.StopLoadingTitle)); + builder.setMessage(LocaleController.getString(R.string.StopLoading)); + builder.setPositiveButton(LocaleController.getString(R.string.WaitMore), null); + builder.setNegativeButton(LocaleController.getString(R.string.Stop), (dialogInterface, i) -> { donePressed = false; createAfterUpload = false; if (doneRequestId != null) { @@ -364,9 +364,9 @@ public void onItemClick(int id) { if (!isPrivate) { if (descriptionTextView.length() == 0) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("ChannelPublicEmptyUsernameTitle", R.string.ChannelPublicEmptyUsernameTitle)); - builder.setMessage(LocaleController.getString("ChannelPublicEmptyUsername", R.string.ChannelPublicEmptyUsername)); - builder.setPositiveButton(LocaleController.getString("Close", R.string.Close), null); + builder.setTitle(LocaleController.getString(R.string.ChannelPublicEmptyUsernameTitle)); + builder.setMessage(LocaleController.getString(R.string.ChannelPublicEmptyUsername)); + builder.setPositiveButton(LocaleController.getString(R.string.Close), null); showDialog(builder.create()); return; } else { @@ -408,10 +408,10 @@ public void onItemClick(int id) { Drawable checkmark = context.getResources().getDrawable(R.drawable.ic_ab_done).mutate(); checkmark.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultIcon), PorterDuff.Mode.MULTIPLY)); doneButtonDrawable = new CrossfadeDrawable(checkmark, new CircularProgressDrawable(Theme.getColor(Theme.key_actionBarDefaultIcon))); - doneButton = menu.addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + doneButton = menu.addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); if (currentStep == 0) { - actionBar.setTitle(LocaleController.getString("NewChannel", R.string.NewChannel)); + actionBar.setTitle(LocaleController.getString(R.string.NewChannel)); SizeNotifierFrameLayout sizeNotifierFrameLayout = new SizeNotifierFrameLayout(context) { @@ -578,7 +578,7 @@ protected void onDraw(Canvas canvas) { } } }; - avatarOverlay.setContentDescription(LocaleController.getString("ChatSetPhotoOrVideo", R.string.ChatSetPhotoOrVideo)); + avatarOverlay.setContentDescription(LocaleController.getString(R.string.ChatSetPhotoOrVideo)); frameLayout.addView(avatarOverlay, LayoutHelper.createFrame(64, 64, Gravity.TOP | (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT), LocaleController.isRTL ? 0 : 16, 12, LocaleController.isRTL ? 16 : 0, 12)); avatarOverlay.setOnClickListener(view -> { imageUpdater.openMenu(avatar != null, () -> { @@ -643,7 +643,7 @@ public void setAlpha(float alpha) { showAvatarProgress(false, false); nameTextView = new EditTextEmoji(context, sizeNotifierFrameLayout, this, EditTextEmoji.STYLE_FRAGMENT, false); - nameTextView.setHint(LocaleController.getString("EnterChannelName", R.string.EnterChannelName)); + nameTextView.setHint(LocaleController.getString(R.string.EnterChannelName)); if (nameToSet != null) { nameTextView.setText(nameToSet); nameToSet = null; @@ -675,7 +675,7 @@ public void setAlpha(float alpha) { inputFilters = new InputFilter[1]; inputFilters[0] = new InputFilter.LengthFilter(120); descriptionTextView.setFilters(inputFilters); - descriptionTextView.setHint(LocaleController.getString("DescriptionPlaceholder", R.string.DescriptionPlaceholder)); + descriptionTextView.setHint(LocaleController.getString(R.string.DescriptionPlaceholder)); descriptionTextView.setCursorColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); descriptionTextView.setCursorSize(AndroidUtilities.dp(20)); descriptionTextView.setCursorWidth(1.5f); @@ -708,7 +708,7 @@ public void afterTextChanged(Editable editable) { helpTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); helpTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText8)); helpTextView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); - helpTextView.setText(LocaleController.getString("DescriptionInfo", R.string.DescriptionInfo)); + helpTextView.setText(LocaleController.getString(R.string.DescriptionInfo)); linearLayout.addView(helpTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT, 24, 10, 24, 20)); } else if (currentStep == 1) { fragmentView = new ScrollView(context); @@ -720,14 +720,14 @@ public void afterTextChanged(Editable editable) { TLRPC.Chat chat = getMessagesController().getChat(chatId); isGroup = chat != null && (!ChatObject.isChannel(chat) || ChatObject.isMegagroup(chat)); - actionBar.setTitle(isGroup ? LocaleController.getString("GroupSettingsTitle", R.string.GroupSettingsTitle) : LocaleController.getString("ChannelSettingsTitle", R.string.ChannelSettingsTitle)); + actionBar.setTitle(isGroup ? LocaleController.getString(R.string.GroupSettingsTitle) : LocaleController.getString(R.string.ChannelSettingsTitle)); fragmentView.setTag(Theme.key_windowBackgroundGray); fragmentView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray)); headerCell2 = new HeaderCell(context, 23); headerCell2.setHeight(46); headerCell2.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); - headerCell2.setText(isGroup ? LocaleController.getString("GroupTypeHeader", R.string.GroupTypeHeader) : LocaleController.getString("ChannelTypeHeader", R.string.ChannelTypeHeader)); + headerCell2.setText(isGroup ? LocaleController.getString(R.string.GroupTypeHeader) : LocaleController.getString(R.string.ChannelTypeHeader)); linearLayout.addView(headerCell2); linearLayout2 = new LinearLayout(context); @@ -741,9 +741,9 @@ public void afterTextChanged(Editable editable) { isPrivate = true; } if (isGroup) { - radioButtonCell1.setTextAndValueAndCheck(LocaleController.getString("MegaPublic", R.string.MegaPublic), LocaleController.getString("MegaPublicInfo", R.string.MegaPublicInfo), false, !isPrivate); + radioButtonCell1.setTextAndValueAndCheck(LocaleController.getString(R.string.MegaPublic), LocaleController.getString(R.string.MegaPublicInfo), false, !isPrivate); } else { - radioButtonCell1.setTextAndValueAndCheck(LocaleController.getString("ChannelPublic", R.string.ChannelPublic), LocaleController.getString("ChannelPublicInfo", R.string.ChannelPublicInfo), false, !isPrivate); + radioButtonCell1.setTextAndValueAndCheck(LocaleController.getString(R.string.ChannelPublic), LocaleController.getString(R.string.ChannelPublicInfo), false, !isPrivate); } radioButtonCell1.setOnClickListener(v -> { if (!canCreatePublic) { @@ -766,9 +766,9 @@ public void afterTextChanged(Editable editable) { isPrivate = false; } if (isGroup) { - radioButtonCell2.setTextAndValueAndCheck(LocaleController.getString("MegaPrivate", R.string.MegaPrivate), LocaleController.getString("MegaPrivateInfo", R.string.MegaPrivateInfo), false, isPrivate); + radioButtonCell2.setTextAndValueAndCheck(LocaleController.getString(R.string.MegaPrivate), LocaleController.getString(R.string.MegaPrivateInfo), false, isPrivate); } else { - radioButtonCell2.setTextAndValueAndCheck(LocaleController.getString("ChannelPrivate", R.string.ChannelPrivate), LocaleController.getString("ChannelPrivateInfo", R.string.ChannelPrivateInfo), false, isPrivate); + radioButtonCell2.setTextAndValueAndCheck(LocaleController.getString(R.string.ChannelPrivate), LocaleController.getString(R.string.ChannelPrivateInfo), false, isPrivate); } radioButtonCell2.setOnClickListener(v -> { if (isPrivate) { @@ -822,7 +822,7 @@ public void afterTextChanged(Editable editable) { descriptionTextView.setSingleLine(true); descriptionTextView.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); descriptionTextView.setImeOptions(EditorInfo.IME_ACTION_DONE); - descriptionTextView.setHint(LocaleController.getString("ChannelUsernamePlaceholder", R.string.ChannelUsernamePlaceholder)); + descriptionTextView.setHint(LocaleController.getString(R.string.ChannelUsernamePlaceholder)); descriptionTextView.setCursorColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); descriptionTextView.setCursorSize(AndroidUtilities.dp(20)); descriptionTextView.setCursorWidth(1.5f); @@ -953,7 +953,7 @@ private void updatePrivatePublic() { return; } if (!isPrivate && !canCreatePublic) { - typeInfoCell.setText(LocaleController.getString("ChangePublicLimitReached", R.string.ChangePublicLimitReached)); + typeInfoCell.setText(LocaleController.getString(R.string.ChangePublicLimitReached)); typeInfoCell.setTag(Theme.key_text_RedRegular); typeInfoCell.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); linkContainer.setVisibility(View.GONE); @@ -979,11 +979,11 @@ private void updatePrivatePublic() { linkContainer.setVisibility(View.VISIBLE); loadingAdminedCell.setVisibility(View.GONE); if (isGroup) { - typeInfoCell.setText(isPrivate ? LocaleController.getString("MegaPrivateLinkHelp", R.string.MegaPrivateLinkHelp) : LocaleController.getString("MegaUsernameHelp", R.string.MegaUsernameHelp)); - headerCell.setText(isPrivate ? LocaleController.getString("ChannelInviteLinkTitle", R.string.ChannelInviteLinkTitle) : LocaleController.getString("ChannelLinkTitle", R.string.ChannelLinkTitle)); + typeInfoCell.setText(isPrivate ? LocaleController.getString(R.string.MegaPrivateLinkHelp) : LocaleController.getString(R.string.MegaUsernameHelp)); + headerCell.setText(isPrivate ? LocaleController.getString(R.string.ChannelInviteLinkTitle) : LocaleController.getString(R.string.ChannelLinkTitle)); } else { - typeInfoCell.setText(isPrivate ? LocaleController.getString("ChannelPrivateLinkHelp", R.string.ChannelPrivateLinkHelp) : LocaleController.getString("ChannelUsernameHelp", R.string.ChannelUsernameHelp)); - headerCell.setText(isPrivate ? LocaleController.getString("ChannelInviteLinkTitle", R.string.ChannelInviteLinkTitle) : LocaleController.getString("ChannelLinkTitle", R.string.ChannelLinkTitle)); + typeInfoCell.setText(isPrivate ? LocaleController.getString(R.string.ChannelPrivateLinkHelp) : LocaleController.getString(R.string.ChannelUsernameHelp)); + headerCell.setText(isPrivate ? LocaleController.getString(R.string.ChannelInviteLinkTitle) : LocaleController.getString(R.string.ChannelLinkTitle)); } publicContainer.setVisibility(isPrivate ? View.GONE : View.VISIBLE); privateContainer.setVisibility(isPrivate ? View.VISIBLE : View.GONE); @@ -1223,11 +1223,11 @@ private void loadAdminedChannels() { final TLRPC.Chat channel = cell.getCurrentChannel(); BottomBuilder builder = new BottomBuilder(getParentActivity()); if (channel.megagroup) { - builder.addTitle(AndroidUtilities.replaceTags(LocaleController.formatString("RevokeLinkAlert", R.string.RevokeLinkAlert, MessagesController.getInstance(currentAccount).linkPrefix + "/" + ChatObject.getPublicUsername(channel), channel.title))); + builder.addTitle(AndroidUtilities.replaceTags(LocaleController.formatString(R.string.RevokeLinkAlert, MessagesController.getInstance(currentAccount).linkPrefix + "/" + ChatObject.getPublicUsername(channel), channel.title))); } else { - builder.addTitle(AndroidUtilities.replaceTags(LocaleController.formatString("RevokeLinkAlertChannel", R.string.RevokeLinkAlertChannel, MessagesController.getInstance(currentAccount).linkPrefix + "/" + ChatObject.getPublicUsername(channel), channel.title))); + builder.addTitle(AndroidUtilities.replaceTags(LocaleController.formatString(R.string.RevokeLinkAlertChannel, MessagesController.getInstance(currentAccount).linkPrefix + "/" + ChatObject.getPublicUsername(channel), channel.title))); } - builder.addItem(LocaleController.getString("RevokeButton", R.string.RevokeButton), R.drawable.msg_delete_filled, (i) -> { + builder.addItem(LocaleController.getString(R.string.RevokeButton), R.drawable.msg_delete_filled, (i) -> { TLRPC.TL_channels_updateUsername req1 = new TLRPC.TL_channels_updateUsername(); req1.channel = MessagesController.getInputChannel(channel); req1.username = ""; @@ -1273,7 +1273,7 @@ private boolean checkUserName(final String name) { lastNameAvailable = false; if (name != null) { if (name.startsWith("_") || name.endsWith("_")) { - checkTextView.setText(LocaleController.getString("LinkInvalid", R.string.LinkInvalid)); + checkTextView.setText(LocaleController.getString(R.string.LinkInvalid)); checkTextView.setTag(Theme.key_text_RedRegular); checkTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); return false; @@ -1281,13 +1281,13 @@ private boolean checkUserName(final String name) { for (int a = 0; a < name.length(); a++) { char ch = name.charAt(a); if (a == 0 && ch >= '0' && ch <= '9') { - checkTextView.setText(LocaleController.getString("LinkInvalidStartNumber", R.string.LinkInvalidStartNumber)); + checkTextView.setText(LocaleController.getString(R.string.LinkInvalidStartNumber)); checkTextView.setTag(Theme.key_text_RedRegular); checkTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); return false; } if (!(ch >= '0' && ch <= '9' || ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z' || ch == '_')) { - checkTextView.setText(LocaleController.getString("LinkInvalid", R.string.LinkInvalid)); + checkTextView.setText(LocaleController.getString(R.string.LinkInvalid)); checkTextView.setTag(Theme.key_text_RedRegular); checkTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); return false; @@ -1295,19 +1295,19 @@ private boolean checkUserName(final String name) { } } if (name == null || name.length() < 4) { - checkTextView.setText(LocaleController.getString("LinkInvalidShort", R.string.LinkInvalidShort)); + checkTextView.setText(LocaleController.getString(R.string.LinkInvalidShort)); checkTextView.setTag(Theme.key_text_RedRegular); checkTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); return false; } if (name.length() > 32) { - checkTextView.setText(LocaleController.getString("LinkInvalidLong", R.string.LinkInvalidLong)); + checkTextView.setText(LocaleController.getString(R.string.LinkInvalidLong)); checkTextView.setTag(Theme.key_text_RedRegular); checkTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); return false; } - checkTextView.setText(LocaleController.getString("LinkChecking", R.string.LinkChecking)); + checkTextView.setText(LocaleController.getString(R.string.LinkChecking)); checkTextView.setTag(Theme.key_windowBackgroundWhiteGrayText8); checkTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText8)); lastCheckName = name; @@ -1325,13 +1325,13 @@ private boolean checkUserName(final String name) { lastNameAvailable = true; } else { if (error != null && "USERNAME_INVALID".equals(error.text) && req.username.length() == 4) { - checkTextView.setText(LocaleController.getString("UsernameInvalidShort", R.string.UsernameInvalidShort)); + checkTextView.setText(LocaleController.getString(R.string.UsernameInvalidShort)); checkTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); } else if (error != null && "USERNAME_PURCHASE_AVAILABLE".equals(error.text)) { if (req.username.length() == 4) { - checkTextView.setText(LocaleController.getString("UsernameInvalidShortPurchase", R.string.UsernameInvalidShortPurchase)); + checkTextView.setText(LocaleController.getString(R.string.UsernameInvalidShortPurchase)); } else { - checkTextView.setText(LocaleController.getString("UsernameInUsePurchase", R.string.UsernameInUsePurchase)); + checkTextView.setText(LocaleController.getString(R.string.UsernameInUsePurchase)); } checkTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText8)); } else if (error != null && "CHANNELS_ADMIN_PUBLIC_TOO_MUCH".equals(error.text)) { @@ -1340,7 +1340,7 @@ private boolean checkUserName(final String name) { showPremiumIncreaseLimitDialog(); } else { checkTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); - checkTextView.setText(LocaleController.getString("LinkInUse", R.string.LinkInUse)); + checkTextView.setText(LocaleController.getString(R.string.LinkInUse)); } lastNameAvailable = false; } @@ -1356,19 +1356,19 @@ private void showErrorAlert(String error) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); + builder.setTitle(LocaleController.getString(R.string.AppName)); switch (error) { case "USERNAME_INVALID": - builder.setMessage(LocaleController.getString("LinkInvalid", R.string.LinkInvalid)); + builder.setMessage(LocaleController.getString(R.string.LinkInvalid)); break; case "USERNAME_OCCUPIED": - builder.setMessage(LocaleController.getString("LinkInUse", R.string.LinkInUse)); + builder.setMessage(LocaleController.getString(R.string.LinkInUse)); break; default: - builder.setMessage(LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred)); + builder.setMessage(LocaleController.getString(R.string.ErrorOccurred)); break; } - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); showDialog(builder.create()); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChannelMonetizationLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/ChannelMonetizationLayout.java index 5bceee41b5..64e75b6b39 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChannelMonetizationLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChannelMonetizationLayout.java @@ -26,7 +26,6 @@ import android.text.TextWatcher; import android.text.style.RelativeSizeSpan; import android.util.Base64; -import android.util.Log; import android.util.TypedValue; import android.view.Gravity; import android.view.MotionEvent; @@ -52,7 +51,6 @@ import org.telegram.messenger.FileLog; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MessagesController; -import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.R; import org.telegram.messenger.UserConfig; import org.telegram.messenger.UserObject; @@ -90,7 +88,6 @@ import org.telegram.ui.Components.ViewPagerFixed; import org.telegram.ui.Stars.BotStarsActivity; import org.telegram.ui.Stars.BotStarsController; -import org.telegram.ui.Stars.StarsController; import org.telegram.ui.Stars.StarsIntroActivity; import org.telegram.ui.Stories.recorder.ButtonWithCounterView; @@ -132,6 +129,7 @@ public class ChannelMonetizationLayout extends SizeNotifierFrameLayout implement private final AnimatedTextView starsBalanceSubtitle; private final ButtonWithCounterView starsBalanceButton; private ColoredImageSpan[] starRef = new ColoredImageSpan[1]; + private final LinearLayout starsBalanceButtonsLayout; private final ButtonWithCounterView starsAdsButton; private OutlineTextContainerView starsBalanceEditTextContainer; private boolean starsBalanceEditTextIgnore = false; @@ -354,7 +352,7 @@ public void afterTextChanged(Editable s) { starsBalanceEditTextContainer.addView(balanceEditTextLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP)); starsBalanceLayout.addView(starsBalanceEditTextContainer, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 18, 14, 18, 2)); - LinearLayout starsBalanceButtonsLayout = new LinearLayout(context); + starsBalanceButtonsLayout = new LinearLayout(context); starsBalanceButtonsLayout.setOrientation(LinearLayout.HORIZONTAL); starsBalanceButton = new ButtonWithCounterView(context, resourcesProvider) { @@ -470,7 +468,7 @@ protected boolean subTextSplitToWords() { AndroidUtilities.runOnUIThread(this.setStarsBalanceButtonText, 1000); } else { starsBalanceButton.setSubText(null, true); - starsBalanceButton.setText(StarsIntroActivity.replaceStars(starsBalanceEditTextAll ? getString(R.string.MonetizationStarsWithdrawAll) : LocaleController.formatPluralStringComma("MonetizationStarsWithdraw", (int) starsBalanceEditTextValue, ' '), starRef), true); + starsBalanceButton.setText(StarsIntroActivity.replaceStars(starsBalanceEditTextAll ? getString(R.string.MonetizationStarsWithdrawAll) : LocaleController.formatPluralStringSpaced("MonetizationStarsWithdraw", (int) starsBalanceEditTextValue), starRef), true); } }; @@ -537,7 +535,7 @@ private void initWithdraw(boolean stars, TLRPC.InputCheckPasswordSRP password, T passwordFragment.needHideProgress(); } AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity); - builder.setTitle(LocaleController.getString("EditAdminTransferAlertTitle", R.string.EditAdminTransferAlertTitle)); + builder.setTitle(LocaleController.getString(R.string.EditAdminTransferAlertTitle)); LinearLayout linearLayout = new LinearLayout(parentActivity); linearLayout.setPadding(AndroidUtilities.dp(24), AndroidUtilities.dp(2), AndroidUtilities.dp(24), 0); @@ -564,7 +562,7 @@ private void initWithdraw(boolean stars, TLRPC.InputCheckPasswordSRP password, T messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("EditAdminTransferAlertText1", R.string.EditAdminTransferAlertText1))); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.EditAdminTransferAlertText1))); if (LocaleController.isRTL) { linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT)); @@ -586,7 +584,7 @@ private void initWithdraw(boolean stars, TLRPC.InputCheckPasswordSRP password, T messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("EditAdminTransferAlertText2", R.string.EditAdminTransferAlertText2))); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.EditAdminTransferAlertText2))); if (LocaleController.isRTL) { linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT)); @@ -596,17 +594,17 @@ private void initWithdraw(boolean stars, TLRPC.InputCheckPasswordSRP password, T } if ("PASSWORD_MISSING".equals(error.text)) { - builder.setPositiveButton(LocaleController.getString("EditAdminTransferSetPassword", R.string.EditAdminTransferSetPassword), (dialogInterface, i) -> fragment.presentFragment(new TwoStepVerificationSetupActivity(TwoStepVerificationSetupActivity.TYPE_INTRO, null))); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.EditAdminTransferSetPassword), (dialogInterface, i) -> fragment.presentFragment(new TwoStepVerificationSetupActivity(TwoStepVerificationSetupActivity.TYPE_INTRO, null))); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); } else { messageTextView = new TextView(parentActivity); messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); - messageTextView.setText(LocaleController.getString("EditAdminTransferAlertText3", R.string.EditAdminTransferAlertText3)); + messageTextView.setText(LocaleController.getString(R.string.EditAdminTransferAlertText3)); linearLayout.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 11, 0, 0)); - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); } if (passwordFragment != null) { passwordFragment.showDialog(builder.create()); @@ -800,7 +798,7 @@ private void initLevel() { } } - public void setupBalances(TLRPC.TL_broadcastRevenueBalances balances) { + public void setupBalances(TLRPC.BroadcastRevenueBalances balances) { if (ton_rate == 0) { return; } @@ -818,7 +816,7 @@ public void setupBalances(TLRPC.TL_broadcastRevenueBalances balances) { lifetimeValue.amount = (long) (lifetimeValue.crypto_amount / 1_000_000_000.0 * ton_rate * 100.0); lifetimeValue.currency = "USD"; proceedsAvailable = true; - balanceButton.setVisibility(balances.available_balance > 0 || BuildVars.DEBUG_PRIVATE_VERSION ? View.VISIBLE : View.GONE); + balanceButton.setVisibility(balances.available_balance > 0 && balances.withdrawal_enabled ? View.VISIBLE : View.GONE); if (listView != null && listView.adapter != null) { listView.adapter.update(true); @@ -842,6 +840,9 @@ public void setupBalances(TLRPC.TL_starsRevenueStatus balances) { lifetimeValue.amount2 = (long) (lifetimeValue.crypto_amount2 * stars_rate * 100.0); lifetimeValue.currency = "USD"; proceedsAvailable = true; + if (starsBalanceButtonsLayout != null) { + starsBalanceButtonsLayout.setVisibility(balances.withdrawal_enabled ? View.VISIBLE : View.GONE); + } if (starsBalanceButton != null) { starsBalanceButton.setVisibility(balances.available_balance > 0 || BuildVars.DEBUG_PRIVATE_VERSION ? View.VISIBLE : View.GONE); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/ChartHeaderView.java b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/ChartHeaderView.java index 1c384355b7..6c64ab4a4c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/ChartHeaderView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Charts/view_data/ChartHeaderView.java @@ -77,7 +77,7 @@ public ChartHeaderView(Context context, Theme.ResourcesProvider resourcesProvide back.setVisibility(View.GONE); - back.setText(LocaleController.getString("ZoomOut", R.string.ZoomOut)); + back.setText(LocaleController.getString(R.string.ZoomOut)); zoomIcon = ContextCompat.getDrawable(getContext(), R.drawable.msg_zoomout_stats); back.setCompoundDrawablesWithIntrinsicBounds(zoomIcon, null, null, null); back.setCompoundDrawablePadding(AndroidUtilities.dp(4)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java index b0aca26b22..c688c6c426 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java @@ -276,7 +276,6 @@ import java.io.FileWriter; import java.io.InputStream; import java.io.InputStreamReader; -import java.net.IDN; import java.net.URLDecoder; import java.util.ArrayList; import java.util.Arrays; @@ -927,6 +926,7 @@ public int getColor(int key) { public int highlightMessageId = Integer.MAX_VALUE; public boolean showNoQuoteAlert; public boolean highlightMessageQuoteFirst; + private long highlightMessageQuoteFirstTime; public String highlightMessageQuote; public int highlightMessageQuoteOffset = -1; private int scrollToMessagePosition = -10000; @@ -1049,8 +1049,6 @@ public void run() { private ValueAnimator changeBoundAnimator; private Animator messageEditTextAnimator; - private int distanceToPeer; - private boolean openImport; public float chatListViewPaddingTop; @@ -1740,6 +1738,7 @@ public void onItemClick(View view, int position, float x, float y) { bundle.putLong("topic_id", getTopicId()); bundle.putInt("type", CalendarActivity.TYPE_CHAT_ACTIVITY); CalendarActivity calendarActivity = new CalendarActivity(bundle, SharedMediaLayout.FILTER_PHOTOS_AND_VIDEOS, date); + calendarActivity.setChatActivity(ChatActivity.this); presentFragment(calendarActivity); return; } @@ -2511,7 +2510,7 @@ public ReplyQuote getReplyQuote() { scheduledOrNoSoundHint.createCloseButton(); scheduledOrNoSoundHint.setAlpha(0); scheduledOrNoSoundHint.setVisibility(View.INVISIBLE); - scheduledOrNoSoundHint.setText(LocaleController.getString("ScheduledOrNoSoundHint", R.string.ScheduledOrNoSoundHint)); + scheduledOrNoSoundHint.setText(getString(R.string.ScheduledOrNoSoundHint)); contentView.addView(scheduledOrNoSoundHint, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 10, 0, 10, 0)); } scheduledOrNoSoundHint.showForView(anchor, true); @@ -2532,7 +2531,7 @@ public ReplyQuote getReplyQuote() { scheduledHint.createCloseButton(); scheduledHint.setAlpha(0); scheduledHint.setVisibility(View.INVISIBLE); - scheduledHint.setText(LocaleController.getString("ScheduledHint", R.string.ScheduledHint)); + scheduledHint.setText(LocaleController.getString(R.string.ScheduledHint)); contentView.addView(scheduledHint, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 10, 0, 10, 0)); } scheduledHint.showForView(anchor, true); @@ -2922,6 +2921,7 @@ public boolean onFragmentCreate() { } loadInfo = chatInfo == null; checkGroupCallJoin(false); + gotChatInfo(); } else if (currentUser != null) { if (chatMode != MODE_PINNED) { getMessagesController().loadUserInfo(currentUser, true, classGuid, startLoadFromMessageId); @@ -2995,18 +2995,18 @@ public boolean onFragmentCreate() { } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); if (ChatObject.isChannel(currentChat) && !currentChat.megagroup) { - builder.setMessage(LocaleController.getString("JoinByPeekChannelText", R.string.JoinByPeekChannelText)); - builder.setTitle(LocaleController.getString("JoinByPeekChannelTitle", R.string.JoinByPeekChannelTitle)); + builder.setMessage(getString(R.string.JoinByPeekChannelText)); + builder.setTitle(getString(R.string.JoinByPeekChannelTitle)); } else { - builder.setMessage(LocaleController.getString("JoinByPeekGroupText", R.string.JoinByPeekGroupText)); - builder.setTitle(LocaleController.getString("JoinByPeekGroupTitle", R.string.JoinByPeekGroupTitle)); + builder.setMessage(getString(R.string.JoinByPeekGroupText)); + builder.setTitle(getString(R.string.JoinByPeekGroupTitle)); } - builder.setPositiveButton(LocaleController.getString("JoinByPeekJoin", R.string.JoinByPeekJoin), (dialogInterface, i) -> { + builder.setPositiveButton(getString(R.string.JoinByPeekJoin), (dialogInterface, i) -> { if (bottomOverlayChatText != null) { bottomOverlayChatText.callOnClick(); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialogInterface, i) -> finishFragment()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialogInterface, i) -> finishFragment()); showDialog(builder.create()); }, timeout * 1000L); } @@ -4040,26 +4040,26 @@ protected void openSearch() { } if (reportType >= 0) { if (reportType == AlertsCreator.REPORT_TYPE_SPAM) { - actionBar.setTitle(LocaleController.getString("ReportChatSpam", R.string.ReportChatSpam)); + actionBar.setTitle(getString(R.string.ReportChatSpam)); } else if (reportType == AlertsCreator.REPORT_TYPE_VIOLENCE) { - actionBar.setTitle(LocaleController.getString("ReportChatViolence", R.string.ReportChatViolence)); + actionBar.setTitle(getString(R.string.ReportChatViolence)); } else if (reportType == AlertsCreator.REPORT_TYPE_CHILD_ABUSE) { - actionBar.setTitle(LocaleController.getString("ReportChatChild", R.string.ReportChatChild)); + actionBar.setTitle(getString(R.string.ReportChatChild)); } else if (reportType == AlertsCreator.REPORT_TYPE_PORNOGRAPHY) { - actionBar.setTitle(LocaleController.getString("ReportChatPornography", R.string.ReportChatPornography)); + actionBar.setTitle(getString(R.string.ReportChatPornography)); } else if (reportType == AlertsCreator.REPORT_TYPE_ILLEGAL_DRUGS) { - actionBar.setTitle(LocaleController.getString("ReportChatIllegalDrugs", R.string.ReportChatIllegalDrugs)); + actionBar.setTitle(getString(R.string.ReportChatIllegalDrugs)); } else if (reportType == AlertsCreator.REPORT_TYPE_PERSONAL_DETAILS) { - actionBar.setTitle(LocaleController.getString("ReportChatPersonalDetails", R.string.ReportChatPersonalDetails)); + actionBar.setTitle(getString(R.string.ReportChatPersonalDetails)); } - actionBar.setSubtitle(LocaleController.getString("ReportSelectMessages", R.string.ReportSelectMessages)); + actionBar.setSubtitle(getString(R.string.ReportSelectMessages)); } else if (startLoadFromDate != 0) { final int date = startLoadFromDate; actionBar.setOnClickListener((v) -> { jumpToDate(date); }); actionBar.setTitle(LocaleController.formatDateChat(startLoadFromDate, false)); - actionBar.setSubtitle(LocaleController.getString("Loading", R.string.Loading)); + actionBar.setSubtitle(getString(R.string.Loading)); TLRPC.TL_messages_getHistory gh1 = new TLRPC.TL_messages_getHistory(); gh1.peer = getMessagesController().getInputPeer(dialog_id); @@ -4091,13 +4091,13 @@ protected void openSearch() { if (finalCount != 0) { AndroidUtilities.runOnUIThread(() -> actionBar.setSubtitle(LocaleController.formatPluralString("messages", finalCount))); } else { - actionBar.setSubtitle(LocaleController.getString("NoMessagesForThisDay", R.string.NoMessagesForThisDay)); + actionBar.setSubtitle(getString(R.string.NoMessagesForThisDay)); } }); } }); } else { - actionBar.setSubtitle(LocaleController.getString("NoMessagesForThisDay", R.string.NoMessagesForThisDay)); + actionBar.setSubtitle(getString(R.string.NoMessagesForThisDay)); } } }); @@ -4117,11 +4117,11 @@ protected void openSearch() { if (currentEncryptedChat == null && (chatMode == 0 || chatMode == MODE_SAVED) && reportType < 0) { searchIconItem = menu.addItem(search, isSupportedTags() ? R.drawable.navbar_search_tag : R.drawable.ic_ab_search); - searchIconItem.setContentDescription(LocaleController.getString("Search", R.string.Search)); - searchItem = menu.addItem(chat_menu_search, R.drawable.ic_ab_search); + searchIconItem.setContentDescription(LocaleController.getString(R.string.Search)); + searchItem = menu.addItem(chat_menu_search, R.drawable.ic_ab_search, themeDelegate); searchItem.setIsSearchField(true); searchItem.setActionBarMenuItemSearchListener(getSearchItemListener()); - searchItem.setSearchFieldHint(isSupportedTags() ? LocaleController.getString(R.string.SavedTagSearchHint) : LocaleController.getString("Search", R.string.Search)); + searchItem.setSearchFieldHint(isSupportedTags() ? LocaleController.getString(R.string.SavedTagSearchHint) : LocaleController.getString(R.string.Search)); if (chatMode == MODE_SAVED || threadMessageId == 0 && !UserObject.isReplyUser(currentUser) || threadMessageObject != null && threadMessageObject.getRepliesCount() < 10) { searchItem.setVisibility(View.GONE); } else { @@ -4133,17 +4133,16 @@ protected void openSearch() { if (chatMode == 0 && (threadMessageId == 0 || isTopic) && !UserObject.isReplyUser(currentUser) && reportType < 0) { TLRPC.UserFull userFull = null; if (currentUser != null) { -// audioCallIconItem = menu.lazilyAddItem(call, R.drawable.ic_call, themeDelegate); -// audioCallIconItem.setContentDescription(LocaleController.getString("Call", R.string.Call)); -// userFull = getMessagesController().getUserFull(currentUser.id); -// if (userFull != null && userFull.phone_calls_available) { -// showAudioCallAsIcon = !inPreviewMode; -// audioCallIconItem.setVisibility(View.VISIBLE); -// } else { -// showAudioCallAsIcon = false; -// audioCallIconItem.setVisibility(View.GONE); -// } - showAudioCallAsIcon = false; + audioCallIconItem = menu.lazilyAddItem(call, R.drawable.ic_call, themeDelegate); + audioCallIconItem.setContentDescription(LocaleController.getString(R.string.Call)); + userFull = getMessagesController().getUserFull(currentUser.id); + if (userFull != null && userFull.phone_calls_available) { + showAudioCallAsIcon = !inPreviewMode; + audioCallIconItem.setVisibility(View.VISIBLE); + } else { + showAudioCallAsIcon = false; + audioCallIconItem.setVisibility(View.GONE); + } if (avatarContainer != null) { avatarContainer.setTitleExpand(showAudioCallAsIcon); } @@ -4151,7 +4150,7 @@ protected void openSearch() { } editTextItem = menu.lazilyAddItem(chat_menu_edit_text_options, R.drawable.ic_ab_other, themeDelegate); - editTextItem.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + editTextItem.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); editTextItem.setTag(null); editTextItem.setVisibility(View.GONE); @@ -4161,7 +4160,7 @@ protected void openSearch() { userFull = getMessagesController().getUserFull(currentUser.id); } headerItem = menu.addItem(chat_menu_options, R.drawable.ic_ab_other, themeDelegate); - headerItem.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + headerItem.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); if (currentUser != null && currentUser.self && chatMode != MODE_SAVED) { savedChatsItem = headerItem.lazilyAddSubItem(view_as_topics, R.drawable.msg_topics, LocaleController.getString(R.string.SavedViewAsChats)); @@ -4243,9 +4242,9 @@ public void toggleMute() { muteItemGap = headerItem.lazilyAddColoredGap(); } if (currentUser != null && chatMode != MODE_SAVED) { - headerItem.lazilyAddSubItem(call, R.drawable.msg_callback, LocaleController.getString("Call", R.string.Call)); + headerItem.lazilyAddSubItem(call, R.drawable.msg_callback, LocaleController.getString(R.string.Call)); if (Build.VERSION.SDK_INT >= 18) { - headerItem.lazilyAddSubItem(video_call, R.drawable.msg_videocall, LocaleController.getString("VideoCall", R.string.VideoCall)); + headerItem.lazilyAddSubItem(video_call, R.drawable.msg_videocall, LocaleController.getString(R.string.VideoCall)); } if (userFull != null && userFull.phone_calls_available) { headerItem.showSubItem(call); @@ -4278,12 +4277,12 @@ public void toggleMute() { } if (ChatObject.isBoostSupported(currentChat) && (getUserConfig().isPremium() || ChatObject.isBoosted(chatInfo) || ChatObject.hasAdminRights(currentChat))) { RLottieDrawable drawable = new RLottieDrawable(R.raw.boosts, "" + R.raw.boosts, dp(24), dp(24)); - headerItem.lazilyAddSubItem(boost_group, drawable, TextCell.applyNewSpan(LocaleController.getString(ChatObject.isChannelAndNotMegaGroup(currentChat) ? R.string.BoostingBoostChannelMenu : R.string.BoostingBoostGroupMenu))); + headerItem.lazilyAddSubItem(boost_group, drawable, LocaleController.getString(ChatObject.isChannelAndNotMegaGroup(currentChat) ? R.string.BoostingBoostChannelMenu : R.string.BoostingBoostGroupMenu)); } - translateItem = headerItem.lazilyAddSubItem(translate, R.drawable.msg_translate, LocaleController.getString("TranslateMessage", R.string.TranslateMessage)); + translateItem = headerItem.lazilyAddSubItem(translate, R.drawable.msg_translate, LocaleController.getString(R.string.TranslateMessage)); updateTranslateItemVisibility(); if (currentChat != null && !currentChat.creator && !ChatObject.hasAdminRights(currentChat)) { - headerItem.lazilyAddSubItem(report, R.drawable.msg_report, LocaleController.getString("ReportChat", R.string.ReportChat)); + headerItem.lazilyAddSubItem(report, R.drawable.msg_report, LocaleController.getString(R.string.ReportChat)); } if (currentChat != null && (currentChat.has_link || (chatInfo != null && chatInfo.linked_chat_id != 0))) { @@ -4300,22 +4299,25 @@ public void toggleMute() { } if (currentUser != null) { - addContactItem = headerItem.lazilyAddSubItem(share_contact, R.drawable.msg_addcontact, LocaleController.getString("AddToContacts", R.string.AddToContacts)); + addContactItem = headerItem.lazilyAddSubItem(share_contact, R.drawable.msg_addcontact, LocaleController.getString(R.string.AddToContacts)); } shareKeyItem = headerItem.lazilyAddSubItem(nkheaderbtn_share_key, R.drawable.baseline_vpn_key_24, LocaleController.getString("ShareMyKey", R.string.ShareMyKey)); if (currentEncryptedChat != null) { - timeItem2 = headerItem.lazilyAddSubItem(chat_enc_timer, R.drawable.msg_autodelete, LocaleController.getString("SetTimer", R.string.SetTimer)); + timeItem2 = headerItem.lazilyAddSubItem(chat_enc_timer, R.drawable.msg_autodelete, LocaleController.getString(R.string.SetTimer)); } if (currentChat != null && !isTopic) { viewAsTopics = headerItem.lazilyAddSubItem(view_as_topics, R.drawable.msg_topics, LocaleController.getString("TopicViewAsTopics", R.string.TopicViewAsTopics)); } if (themeDelegate.isThemeChangeAvailable(true)) { - headerItem.lazilyAddSubItem(change_colors, R.drawable.msg_colors, LocaleController.getString("SetWallpapers", R.string.SetWallpapers)); + headerItem.lazilyAddSubItem(change_colors, R.drawable.msg_background, LocaleController.getString(R.string.SetWallpapers)); } +// if (currentUser != null && currentUser.self) { +// headerItem.lazilyAddSubItem(add_shortcut, R.drawable.msg_home, LocaleController.getString(R.string.AddShortcut)); +// } if (!isTopic) { - clearHistoryItem = headerItem.lazilyAddSubItem(clear_history, R.drawable.msg_clear, LocaleController.getString("ClearHistory", R.string.ClearHistory)); + clearHistoryItem = headerItem.lazilyAddSubItem(clear_history, R.drawable.msg_clear, LocaleController.getString(R.string.ClearHistory)); } boolean addedSettings = false; if (!isTopic) { @@ -4332,28 +4334,29 @@ public void toggleMute() { if (ChatObject.isChannel(currentChat) && !currentChat.creator) { if (!ChatObject.isNotInChat(currentChat)) { if (currentChat.megagroup) { - headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_leave, LocaleController.getString("LeaveMegaMenu", R.string.LeaveMegaMenu)); + headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_leave, LocaleController.getString(R.string.LeaveMegaMenu)); } else { - headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_leave, LocaleController.getString("LeaveChannelMenu", R.string.LeaveChannelMenu)); + headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_leave, LocaleController.getString(R.string.LeaveChannelMenu)); } } } else if (!ChatObject.isChannel(currentChat)) { if (currentChat != null) { - headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_leave, LocaleController.getString("DeleteAndExit", R.string.DeleteAndExit)); + headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_leave, LocaleController.getString(R.string.DeleteAndExit)); } else if (currentUser != null && currentUser.bot) { - headerItem.lazilyAddSubItem(bot_settings, R.drawable.msg_settings_old, LocaleController.getString("BotSettings", R.string.BotSettings)); + headerItem.lazilyAddSubItem(bot_settings, R.drawable.msg_settings_old, LocaleController.getString(R.string.BotSettings)); addedSettings = true; - headerItem.lazilyAddSubItem(bot_help, R.drawable.msg_help, LocaleController.getString("BotHelp", R.string.BotHelp)); + headerItem.lazilyAddSubItem(bot_help, R.drawable.msg_help, LocaleController.getString(R.string.BotHelp)); + headerItem.lazilyAddSubItem(report, R.drawable.msg_report, LocaleController.getString(R.string.ReportBot)).setColors(getThemedColor(Theme.key_text_RedRegular), getThemedColor(Theme.key_text_RedRegular)); headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_block2, LocaleController.getString(R.string.DeleteAndBlock)).setColors(getThemedColor(Theme.key_text_RedRegular), getThemedColor(Theme.key_text_RedRegular)); updateBotButtons(); } else { - headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_delete, LocaleController.getString("DeleteChatUser", R.string.DeleteChatUser)); + headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_delete, LocaleController.getString(R.string.DeleteChatUser)); } } } } else if (chatMode == MODE_EDIT_BUSINESS_LINK) { headerItem = menu.addItem(chat_menu_options, R.drawable.ic_ab_other, themeDelegate); - headerItem.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + headerItem.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); headerItem.lazilyAddSubItem(copy_business_link, R.drawable.msg_copy, getString(R.string.Copy)); headerItem.lazilyAddSubItem(share_business_link, R.drawable.msg_share, getString(R.string.LinkActionShare)); @@ -4371,11 +4374,11 @@ public void toggleMute() { } if (!hasMyForum) { - openForumItem = headerItem.lazilyAddSubItem(open_forum, R.drawable.msg_discussion, LocaleController.getString("OpenAllTopics", R.string.OpenAllTopics)); + openForumItem = headerItem.lazilyAddSubItem(open_forum, R.drawable.msg_discussion, LocaleController.getString(R.string.OpenAllTopics)); } } if (currentChat != null && forumTopic != null && chatMode == 0) { - closeTopicItem = headerItem.lazilyAddSubItem(topic_close, R.drawable.msg_topic_close, LocaleController.getString("CloseTopic", R.string.CloseTopic)); + closeTopicItem = headerItem.lazilyAddSubItem(topic_close, R.drawable.msg_topic_close, LocaleController.getString(R.string.CloseTopic)); closeTopicItem.setVisibility(currentChat != null && ChatObject.canManageTopic(currentAccount, currentChat, forumTopic) && forumTopic != null && !forumTopic.closed ? View.VISIBLE : View.GONE); } menu.setVisibility(inMenuMode ? View.GONE : View.VISIBLE); @@ -4389,7 +4392,7 @@ public void toggleMute() { attachItem = menu.lazilyAddItem(chat_menu_attach, R.drawable.ic_ab_other, themeDelegate); attachItem.setOverrideMenuClick(true); attachItem.setAllowCloseAnimation(false); - attachItem.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + attachItem.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); attachItem.setVisibility(View.GONE); } @@ -5427,6 +5430,7 @@ private void drawChatForegroundElements(Canvas canvas) { canvas.translate(canvasOffsetX, canvasOffsetY); cell.setInvalidatesParent(true); cell.drawReactionsLayout(canvas, alpha, null); + cell.drawCommentLayout(canvas, alpha); cell.setInvalidatesParent(false); } canvas.restore(); @@ -7028,9 +7032,9 @@ protected void onOpen() { SharedPreferences preferences = MessagesController.getGlobalMainSettings(); if (!preferences.getBoolean("secretbot", false)) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setMessage(LocaleController.getString("SecretChatContextBotAlert", R.string.SecretChatContextBotAlert)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setMessage(LocaleController.getString(R.string.SecretChatContextBotAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); showDialog(builder.create()); preferences.edit().putBoolean("secretbot", true).commit(); } @@ -7233,13 +7237,13 @@ public long getDialogId() { } if (error != 0) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); - builder.setTitle(LocaleController.getString("SendMessageTitle", R.string.SendMessageTitle)); + builder.setTitle(LocaleController.getString(R.string.SendMessageTitle)); if (error == 1) { - builder.setMessage(LocaleController.getString("GameCantSendSecretChat", R.string.GameCantSendSecretChat)); + builder.setMessage(LocaleController.getString(R.string.GameCantSendSecretChat)); } else { - builder.setMessage(LocaleController.getString("InvoiceCantSendSecretChat", R.string.InvoiceCantSendSecretChat)); + builder.setMessage(LocaleController.getString(R.string.InvoiceCantSendSecretChat)); } - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); showDialog(builder.create()); return; } @@ -7313,10 +7317,10 @@ public long getDialogId() { return false; } else { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); - builder.setMessage(LocaleController.getString("ClearSearch", R.string.ClearSearch)); - builder.setPositiveButton(LocaleController.getString("ClearButton", R.string.ClearButton), (dialogInterface, i) -> mentionContainer.getAdapter().clearRecentHashtags()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.NekoX)); + builder.setMessage(LocaleController.getString(R.string.ClearSearch)); + builder.setPositiveButton(LocaleController.getString(R.string.ClearButton), (dialogInterface, i) -> mentionContainer.getAdapter().clearRecentHashtags()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); return true; } @@ -7354,7 +7358,7 @@ public void getOutline(View view, Outline outline) { pagedownButtonImage.setBackground(drawable); pagedownButton.addView(pagedownButtonImage, LayoutHelper.createFrame(46, 46, Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM)); - pagedownButton.setContentDescription(LocaleController.getString("AccDescrPageDown", R.string.AccDescrPageDown)); + pagedownButton.setContentDescription(LocaleController.getString(R.string.AccDescrPageDown)); pagedownButtonArrow = new ImageView(context); pagedownButtonArrow.setImageResource(R.drawable.pagedown); @@ -7420,7 +7424,7 @@ public void getOutline(View view, Outline outline) { mentiondownButtonCounter.setMinWidth(AndroidUtilities.dp(23)); mentiondownButtonCounter.setPadding(AndroidUtilities.dp(8), AndroidUtilities.dp(1), AndroidUtilities.dp(8), 0); mentiondownButton.addView(mentiondownButtonCounter, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 23, Gravity.TOP | Gravity.CENTER_HORIZONTAL)); - mentiondownButton.setContentDescription(LocaleController.getString("AccDescrMentionDown", R.string.AccDescrMentionDown)); + mentiondownButton.setContentDescription(LocaleController.getString(R.string.AccDescrMentionDown)); reactionsMentiondownButton.setOnClickListener(view -> { wasManualScroll = true; @@ -7487,7 +7491,7 @@ public void getOutline(View view, Outline outline) { reactionsMentiondownButton.addView(reactionsMentiondownButtonImage, LayoutHelper.createFrame(46, 46, Gravity.LEFT | Gravity.BOTTOM)); reactionsMentiondownButtonCounter = new CounterView(context, themeDelegate); reactionsMentiondownButton.addView(reactionsMentiondownButtonCounter, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 28, Gravity.TOP | Gravity.LEFT)); - reactionsMentiondownButton.setContentDescription(LocaleController.getString("AccDescrReactionMentionDown", R.string.AccDescrReactionMentionDown)); + reactionsMentiondownButton.setContentDescription(LocaleController.getString(R.string.AccDescrReactionMentionDown)); if (!isInsideContainer) { fragmentLocationContextView = new FragmentContextView(context, this, true, themeDelegate); @@ -7548,6 +7552,7 @@ protected void onDetachedFromWindow() { Bundle args = new Bundle(); args.putInt("type", MediaActivity.TYPE_STORIES_SEARCH); args.putString("hashtag", messagesSearchAdapter.storiesList.query); + args.putInt("storiesCount", messagesSearchAdapter.storiesList.getCount()); presentFragment(new MediaActivity(args, null)); } else if (obj instanceof MessageObject) { openMessageInOriginalDialog((MessageObject) obj); @@ -7601,7 +7606,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { hashtagSearchEmptyView = new StickerEmptyView(getContext(), hashtagLoadingView, StickerEmptyView.STICKER_TYPE_SEARCH); hashtagSearchEmptyView.setClickable(true); - hashtagSearchEmptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); + hashtagSearchEmptyView.title.setText(LocaleController.getString(R.string.NoResult)); hashtagSearchEmptyView.setVisibility(View.GONE); hashtagSearchEmptyView.addView(hashtagLoadingView, 0); hashtagSearchEmptyView.showProgress(true, false); @@ -8177,7 +8182,7 @@ public void setVisibility(int visibility) { replyObjectHintTextView = new SimpleTextView(context); replyObjectHintTextView.setTextSize(14); replyObjectHintTextView.setTextColor(getThemedColor(Theme.key_windowBackgroundWhiteGrayText)); - replyObjectHintTextView.setText(LocaleController.getString("TapForForwardingOptions", R.string.TapForForwardingOptions)); + replyObjectHintTextView.setText(LocaleController.getString(R.string.TapForForwardingOptions)); replyObjectHintTextView.setAlpha(0f); replyLayout.addView(replyObjectHintTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 18, Gravity.TOP | Gravity.LEFT, 52, 24, 0, 0)); @@ -8463,10 +8468,10 @@ protected void onSend(int type, String message) { }); } else { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); - builder.setMessage(LocaleController.getString("AreYouSureUnblockContact", R.string.AreYouSureUnblockContact)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> getMessagesController().unblockPeer(currentUser.id)); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setMessage(LocaleController.getString(R.string.AreYouSureUnblockContact)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> getMessagesController().unblockPeer(currentUser.id)); + builder.setTitle(LocaleController.getString(R.string.NekoX)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); } } else if (UserObject.isReplyUser(currentUser)) { @@ -8553,10 +8558,10 @@ protected void onSend(int type, String message) { bottomOverlayImage.setBackgroundDrawable(Theme.createSelectorDrawable(Color.argb(24, Color.red(color), Color.green(color), Color.blue(color)), 1)); } bottomOverlayChat.addView(bottomOverlayImage, LayoutHelper.createFrame(48, 48, Gravity.RIGHT | Gravity.TOP, 3, 1.5f, 0, 0)); - bottomOverlayImage.setContentDescription(LocaleController.getString("SettingsHelp", R.string.SettingsHelp)); + bottomOverlayImage.setContentDescription(LocaleController.getString(R.string.SettingsHelp)); bottomOverlayImage.setOnClickListener(v -> { createUndoView(); - undoView.showWithAction(dialog_id, UndoView.ACTION_TEXT_INFO, LocaleController.getString("BroadcastGroupInfo", R.string.BroadcastGroupInfo)); + undoView.showWithAction(dialog_id, UndoView.ACTION_TEXT_INFO, LocaleController.getString(R.string.BroadcastGroupInfo)); }); contentView.addView(messageEnterTransitionContainer = new MessageEnterTransitionContainer(contentView, currentAccount)); @@ -8894,9 +8899,7 @@ protected void onShownUpdate(boolean finish) { updateSearchListEmptyView(); } - if (t != null) { - t.finish(); - } + Timer.finish(t); return fragmentView; } @@ -9291,7 +9294,6 @@ private void updateFilteredMessages(boolean notify) { msg.stableId = lastStableId++; } msg.isOutOwnerCached = null; - Log.i("lolkek", "msg " + msg.getId() + " isOutOwnerCached is reset (2)"); if (msg.messageOwner != null) { msg.messageOwner.out = true; } @@ -9360,7 +9362,6 @@ private void updateFilteredMessages(boolean notify) { if (filteredMessagesDict.containsKey(msg.getId())) { continue; } - Log.i("lolkek", "msg " + msg.getId() + " isOutOwnerCached is reset (3)"); msg.isOutOwnerCached = null; if (msg.messageOwner != null) { msg.messageOwner.out = true; @@ -9436,7 +9437,7 @@ private void createBottomMessagesActionButtons() { if (!isInsideContainer) { replyButton = new TextView(getContext()); - replyButton.setText(LocaleController.getString("Reply", R.string.Reply)); + replyButton.setText(LocaleController.getString(R.string.Reply)); replyButton.setGravity(Gravity.CENTER_VERTICAL); replyButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); replyButton.setPadding(AndroidUtilities.dp(14), 0, AndroidUtilities.dp(21), 0); @@ -9469,7 +9470,7 @@ private void createBottomMessagesActionButtons() { } forwardButton = new TextView(getContext()); - forwardButton.setText(LocaleController.getString("Forward", R.string.Forward)); + forwardButton.setText(LocaleController.getString(R.string.Forward)); forwardButton.setGravity(Gravity.CENTER_VERTICAL); forwardButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); forwardButton.setPadding(AndroidUtilities.dp(21), 0, AndroidUtilities.dp(21), 0); @@ -9716,7 +9717,7 @@ protected void dispatchDraw(Canvas canvas) { restartTopicButton.setMaxLines(1); restartTopicButton.setPadding(AndroidUtilities.dp(4), 0, AndroidUtilities.dp(4), 0); restartTopicButton.setGravity(Gravity.CENTER); - restartTopicButton.setText(LocaleController.getString("RestartTopic", R.string.RestartTopic).toUpperCase()); + restartTopicButton.setText(LocaleController.getString(R.string.RestartTopic).toUpperCase()); if (Build.VERSION.SDK_INT >= 21) { restartTopicButton.setBackground(Theme.createSelectorDrawable(getThemedColor(Theme.key_chat_addContact) & 0x19ffffff, 3)); } @@ -9730,7 +9731,7 @@ protected void dispatchDraw(Canvas canvas) { closeReportSpam = new ImageView(getContext()); closeReportSpam.setImageResource(R.drawable.miniplayer_close); - closeReportSpam.setContentDescription(LocaleController.getString("Close", R.string.Close)); + closeReportSpam.setContentDescription(LocaleController.getString(R.string.Close)); if (Build.VERSION.SDK_INT >= 21) { closeReportSpam.setBackground(Theme.AdaptiveRipple.circle(getThemedColor(Theme.key_chat_topPanelClose))); } @@ -10190,12 +10191,12 @@ public void setVisibility(int visibility) { searchingForUser = true; searchingUserMessages = null; searchingChatMessages = null; - searchItem.setSearchFieldHint(LocaleController.getString("SearchMembers", R.string.SearchMembers)); - searchItem.setSearchFieldCaption(LocaleController.getString("SearchFrom", R.string.SearchFrom)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.SearchMembers)); + searchItem.setSearchFieldCaption(LocaleController.getString(R.string.SearchFrom)); AndroidUtilities.showKeyboard(searchItem.getSearchField()); searchItem.clearSearchText(); }); - searchUserButton.setContentDescription(LocaleController.getString("AccDescrSearchByUser", R.string.AccDescrSearchByUser)); + searchUserButton.setContentDescription(LocaleController.getString(R.string.AccDescrSearchByUser)); } if (chatMode != MODE_SEARCH) { @@ -10219,7 +10220,8 @@ public void run(int param) { } }, themeDelegate).create()); }); - searchCalendarButton.setContentDescription(LocaleController.getString("JumpToDate", R.string.JumpToDate)); + + searchCalendarButton.setContentDescription(LocaleController.getString(R.string.JumpToDate)); searchFilterButton = new ImageView(getContext()); searchFilterButton.setScaleType(ImageView.ScaleType.CENTER); @@ -10253,7 +10255,7 @@ public void run(int param) { } filterPopup.show(); }); - searchFilterButton.setContentDescription(LocaleController.getString("JumpToDate", R.string.JumpToDate)); + searchFilterButton.setContentDescription(LocaleController.getString(R.string.JumpToDate)); } } @@ -10472,36 +10474,36 @@ private void checkEditTextItemMenu() { } ActionBarMenuItem item = editTextItem.createView(); - item.addSubItem(text_spoiler, LocaleController.getString("Spoiler", R.string.Spoiler)); + item.addSubItem(text_spoiler, LocaleController.getString(R.string.Spoiler)); if (chatMode == 0) { - item.addSubItem(text_quote, LocaleController.getString("Quote", R.string.Quote)); + item.addSubItem(text_quote, LocaleController.getString(R.string.Quote)); } - SpannableStringBuilder stringBuilder = new SpannableStringBuilder(LocaleController.getString("Bold", R.string.Bold)); + SpannableStringBuilder stringBuilder = new SpannableStringBuilder(LocaleController.getString(R.string.Bold)); stringBuilder.setSpan(new TypefaceSpan(AndroidUtilities.bold()), 0, stringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); item.addSubItem(text_bold, stringBuilder); - stringBuilder = new SpannableStringBuilder(LocaleController.getString("Italic", R.string.Italic)); + stringBuilder = new SpannableStringBuilder(LocaleController.getString(R.string.Italic)); stringBuilder.setSpan(new TypefaceSpan(AndroidUtilities.getTypeface("fonts/ritalic.ttf")), 0, stringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); item.addSubItem(text_italic, stringBuilder); - stringBuilder = new SpannableStringBuilder(LocaleController.getString("Mono", R.string.Mono)); + stringBuilder = new SpannableStringBuilder(LocaleController.getString(R.string.Mono)); stringBuilder.setSpan(new TypefaceSpan(Typeface.MONOSPACE), 0, stringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); item.addSubItem(text_mono, stringBuilder); if (currentEncryptedChat == null || AndroidUtilities.getPeerLayerVersion(currentEncryptedChat.layer) >= 101) { - stringBuilder = new SpannableStringBuilder(LocaleController.getString("Strike", R.string.Strike)); + stringBuilder = new SpannableStringBuilder(LocaleController.getString(R.string.Strike)); TextStyleSpan.TextStyleRun run = new TextStyleSpan.TextStyleRun(); run.flags |= TextStyleSpan.FLAG_STYLE_STRIKE; stringBuilder.setSpan(new TextStyleSpan(run), 0, stringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); item.addSubItem(text_strike, stringBuilder); - stringBuilder = new SpannableStringBuilder(LocaleController.getString("Underline", R.string.Underline)); + stringBuilder = new SpannableStringBuilder(LocaleController.getString(R.string.Underline)); run = new TextStyleSpan.TextStyleRun(); run.flags |= TextStyleSpan.FLAG_STYLE_UNDERLINE; stringBuilder.setSpan(new TextStyleSpan(run), 0, stringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); item.addSubItem(text_underline, stringBuilder); } - item.addSubItem(text_link, LocaleController.getString("CreateLink", R.string.CreateLink)); + item.addSubItem(text_link, LocaleController.getString(R.string.CreateLink)); // NekoX - item.addSubItem(text_mention, LocaleController.getString("CreateMention", R.string.CreateMention)); - item.addSubItem(text_regular, LocaleController.getString("Regular", R.string.Regular)); + item.addSubItem(text_mention, LocaleController.getString(R.string.CreateMention)); + item.addSubItem(text_regular, LocaleController.getString(R.string.Regular)); filledEditTextItemMenu = true; } @@ -10918,7 +10920,7 @@ private void searchUserMessages(TLRPC.User user, TLRPC.Chat chat) { name = name.substring(0, 10); } searchingForUser = false; - String from = LocaleController.getString("SearchFrom", R.string.SearchFrom); + String from = LocaleController.getString(R.string.SearchFrom); Spannable spannable = new SpannableString(from + " " + name); spannable.setSpan(new ForegroundColorSpan(getThemedColor(Theme.key_actionBarDefaultSubtitle)), from.length() + 1, spannable.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); searchItem.setSearchFieldCaption(spannable); @@ -10942,21 +10944,17 @@ private void updateInfoTopView(boolean animated) { return; } SharedPreferences preferences = MessagesController.getNotificationsSettings(currentAccount); - distanceToPeer = preferences.getInt("dialog_bar_distance" + dialog_id, -1); CharSequence text = null; View.OnClickListener onClickListener = null; - if (distanceToPeer >= 0 && currentUser != null) { - text = LocaleController.formatString("ChatDistanceToPeer", R.string.ChatDistanceToPeer, currentUser.first_name, LocaleController.formatDistance(distanceToPeer, 0)); - onClickListener = v -> presentFragment(new PeopleNearbyActivity()); - } else if (currentChat != null && chatInviterId != 0) { + if (currentChat != null && chatInviterId != 0) { boolean show = preferences.getInt("dialog_bar_vis3" + dialog_id, 0) == 2; boolean showReport = preferences.getBoolean("dialog_bar_report" + dialog_id, false); boolean showBlock = preferences.getBoolean("dialog_bar_block" + dialog_id, false); if (show && (showReport || showBlock)) { TLRPC.User user = getMessagesController().getUser(chatInviterId); if (user != null) { - text = ChatObject.isChannel(currentChat) && !currentChat.megagroup ? LocaleController.getString("ActionUserInvitedToChannel", R.string.ActionUserInvitedToChannel) : LocaleController.getString("ActionUserInvitedToGroup", R.string.ActionUserInvitedToGroup); + text = ChatObject.isChannel(currentChat) && !currentChat.megagroup ? LocaleController.getString(R.string.ActionUserInvitedToChannel) : LocaleController.getString(R.string.ActionUserInvitedToGroup); text = MessageObject.replaceWithLink(text, "un1", user); onClickListener = (v) -> { Bundle args = new Bundle(); @@ -11228,7 +11226,7 @@ protected void onDraw(Canvas canvas) { pinnedListButton.setImageResource(R.drawable.msg_pinnedlist); pinnedListButton.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_chat_topPanelClose), PorterDuff.Mode.SRC_IN)); pinnedListButton.setScaleType(ImageView.ScaleType.CENTER); - pinnedListButton.setContentDescription(LocaleController.getString("AccPinnedMessagesList", R.string.AccPinnedMessagesList)); + pinnedListButton.setContentDescription(LocaleController.getString(R.string.AccPinnedMessagesList)); pinnedListButton.setVisibility(View.INVISIBLE); pinnedListButton.setAlpha(0.0f); pinnedListButton.setScaleX(0.4f); @@ -11244,7 +11242,7 @@ protected void onDraw(Canvas canvas) { closePinned.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_chat_topPanelClose), PorterDuff.Mode.MULTIPLY)); closePinned.setScaleType(ImageView.ScaleType.CENTER); closePinned.setVisibility(View.GONE); - closePinned.setContentDescription(LocaleController.getString("Close", R.string.Close)); + closePinned.setContentDescription(LocaleController.getString(R.string.Close)); pinnedProgress = new RadialProgressView(getContext(), themeDelegate); pinnedProgress.setVisibility(View.GONE); @@ -11275,7 +11273,7 @@ protected void onDraw(Canvas canvas) { } BottomBuilder builder = new BottomBuilder(getParentActivity()); if (allowPin) { - builder.addItem(LocaleController.getString("UnpinMessageX", R.string.UnpinMessageX), R.drawable.msg_unpin, true, c -> { + builder.addItem(LocaleController.getString(R.string.UnpinMessageX), R.drawable.msg_unpin, true, c -> { MessageObject messageObject = pinnedMessageObjects.get(currentPinnedMessageId); if (messageObject == null) { messageObject = messagesDict[0].get(currentPinnedMessageId); @@ -11283,6 +11281,10 @@ protected void onDraw(Canvas canvas) { unpinMessage(messageObject); return Unit.INSTANCE; }); + } else if (!pinnedMessageIds.isEmpty()) { + SharedPreferences preferences = MessagesController.getNotificationsSettings(currentAccount); + preferences.edit().putInt("pin_" + dialog_id, pinnedMessageIds.get(0)).commit(); + updatePinnedMessageView(true); } builder.addItem(LocaleController.getString("DismissForYourself", R.string.DismissForYourself), R.drawable.msg_cancel, c -> { SharedPreferences preferences = MessagesController.getNotificationsSettings(currentAccount); @@ -11375,7 +11377,7 @@ private void openAnotherForward() { } builder.setMessage(AndroidUtilities.replaceTags(message)); builder.setTitle(LocaleController.formatPluralString("messages", messagePreviewParams.forwardMessages.messages.size())); - builder.setPositiveButton(LocaleController.getString("CancelForwarding", R.string.CancelForwarding), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.CancelForwarding), (dialogInterface, i) -> { forbidForwardingWithDismiss = false; if (messagePreviewParams != null) { messagePreviewParams.updateForward(null, dialog_id); @@ -11383,7 +11385,7 @@ private void openAnotherForward() { fallbackFieldPanel(); }); - builder.setNegativeButton(LocaleController.getString("ShowForwardingOptions", R.string.ShowForwardingOptions), (dialogInterface, i) -> { + builder.setNegativeButton(LocaleController.getString(R.string.ShowForwardingOptions), (dialogInterface, i) -> { openForwardingPreview(MessagePreviewView.TAB_FORWARD); }); AlertDialog dialog = builder.create(); @@ -11624,12 +11626,6 @@ public void onAnimationEnd(Animator animation) { } private void hideInfoView() { - if (distanceToPeer >= 0) { - distanceToPeer = -1; - SharedPreferences preferences = MessagesController.getNotificationsSettings(currentAccount); - preferences.edit().putInt("dialog_bar_distance" + dialog_id, -2).commit(); - } - if (infoTopViewAnimator != null) { infoTopViewAnimator.cancel(); } @@ -12065,7 +12061,7 @@ private void share() { } else { intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); } - getParentActivity().startActivityForResult(Intent.createChooser(intent, LocaleController.getString("ShareFile", R.string.ShareFile)), 500); + getParentActivity().startActivityForResult(Intent.createChooser(intent, LocaleController.getString(R.string.ShareFile)), 500); } } hideActionMode(); @@ -12080,12 +12076,12 @@ private void openForward(boolean fromActionBar) { String str; if (getMessagesController().isChatNoForwards(currentChat)) { if (ChatObject.isChannel(currentChat) && !currentChat.megagroup) { - str = LocaleController.getString("ForwardsRestrictedInfoChannel", R.string.ForwardsRestrictedInfoChannel); + str = LocaleController.getString(R.string.ForwardsRestrictedInfoChannel); } else { - str = LocaleController.getString("ForwardsRestrictedInfoGroup", R.string.ForwardsRestrictedInfoGroup); + str = LocaleController.getString(R.string.ForwardsRestrictedInfoGroup); } } else { - str = LocaleController.getString("ForwardsRestrictedInfoBot", R.string.ForwardsRestrictedInfoBot); + str = LocaleController.getString(R.string.ForwardsRestrictedInfoBot); } if (fromActionBar) { if (fwdRestrictedTopHint == null) { @@ -12329,14 +12325,14 @@ public void processInlineBotWebView(TLRPC.TL_inlineBotWebView object) { webViewSheet.setDefaultFullsize(false); webViewSheet.setNeedsContext(true); webViewSheet.setParentActivity(getParentActivity()); - webViewSheet.requestWebView(null, props); + webViewSheet.requestWebView(ChatActivity.this, props); webViewSheet.show(); } else { BotWebViewAttachedSheet webViewSheet = createBotViewer(); webViewSheet.setDefaultFullsize(false); webViewSheet.setNeedsContext(true); webViewSheet.setParentActivity(getParentActivity()); - webViewSheet.requestWebView(null, props); + webViewSheet.requestWebView(ChatActivity.this, props); webViewSheet.show(); } @@ -12771,17 +12767,17 @@ public void openHashtagSearch(String text) { public void shareMyContact(int type, MessageObject messageObject) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); - builder.setTitle(LocaleController.getString("ShareYouPhoneNumberTitle", R.string.ShareYouPhoneNumberTitle)); + builder.setTitle(LocaleController.getString(R.string.ShareYouPhoneNumberTitle)); if (currentUser != null) { if (currentUser.bot) { - builder.setMessage(LocaleController.getString("AreYouSureShareMyContactInfoBot", R.string.AreYouSureShareMyContactInfoBot)); + builder.setMessage(LocaleController.getString(R.string.AreYouSureShareMyContactInfoBot)); } else { builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("AreYouSureShareMyContactInfoUser", R.string.AreYouSureShareMyContactInfoUser, PhoneFormat.getInstance().format("+" + getUserConfig().getCurrentUser().phone), ContactsController.formatName(currentUser.first_name, currentUser.last_name)))); } } else { - builder.setMessage(LocaleController.getString("AreYouSureShareMyContactInfo", R.string.AreYouSureShareMyContactInfo)); + builder.setMessage(LocaleController.getString(R.string.AreYouSureShareMyContactInfo)); } - builder.setPositiveButton(LocaleController.getString("ShareContact", R.string.ShareContact), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.ShareContact), (dialogInterface, i) -> { if (type == 1) { TLRPC.TL_contacts_acceptContact req = new TLRPC.TL_contacts_acceptContact(); req.id = getMessagesController().getInputUser(currentUser); @@ -12802,7 +12798,7 @@ public void shareMyContact(int type, MessageObject messageObject) { hideFieldPanel(false); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); } @@ -12911,9 +12907,9 @@ private void showVoiceHint(boolean hide, boolean video) { } if (chatActivityEnterView.hasRecordVideo()) { - voiceHintTextView.setText(video ? LocaleController.getString("HoldToVideo", R.string.HoldToVideo) : LocaleController.getString("HoldToAudio", R.string.HoldToAudio)); + voiceHintTextView.setText(video ? LocaleController.getString(R.string.HoldToVideo) : LocaleController.getString(R.string.HoldToAudio)); } else { - voiceHintTextView.setText(LocaleController.getString("HoldToAudioOnly", R.string.HoldToAudioOnly)); + voiceHintTextView.setText(LocaleController.getString(R.string.HoldToAudioOnly)); } voiceHintTextView.showForView(chatActivityEnterView.getAudioVideoButtonContainer(), true); @@ -12932,9 +12928,9 @@ public boolean checkSlowModeAlert() { CharSequence time = chatActivityEnterView.getSlowModeTimer(); if (time != null) { new AlertDialog.Builder(getContext()) - .setTitle(LocaleController.getString("Slowmode", R.string.Slowmode)) + .setTitle(LocaleController.getString(R.string.Slowmode)) .setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("SlowModeHint", R.string.SlowModeHint, time))) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), null) + .setPositiveButton(LocaleController.getString(R.string.OK), null) .show(); return false; } @@ -13076,17 +13072,17 @@ private void showMediaBannedHint() { mediaBanTooltip.setText(ChatObject.getRestrictedErrorText(currentChat, ChatObject.ACTION_SEND_VOICE)); } } else if (ChatObject.isActionBannedByDefault(currentChat, ChatObject.ACTION_SEND_VOICE)) { - mediaBanTooltip.setText(LocaleController.getString("GlobalAttachVoiceRestricted", R.string.GlobalAttachVoiceRestricted)); + mediaBanTooltip.setText(LocaleController.getString(R.string.GlobalAttachVoiceRestricted)); } else if (ChatObject.isActionBannedByDefault(currentChat, ChatObject.ACTION_SEND_ROUND)) { - mediaBanTooltip.setText(LocaleController.getString("GlobalAttachRoundRestricted", R.string.GlobalAttachRoundRestricted)); + mediaBanTooltip.setText(LocaleController.getString(R.string.GlobalAttachRoundRestricted)); } else if (ChatObject.isActionBannedByDefault(currentChat, ChatObject.ACTION_SEND_MEDIA)) { - mediaBanTooltip.setText(LocaleController.getString("GlobalAttachMediaRestricted", R.string.GlobalAttachMediaRestricted)); + mediaBanTooltip.setText(LocaleController.getString(R.string.GlobalAttachMediaRestricted)); } else { if (currentChat.banned_rights == null) { return; } if (AndroidUtilities.isBannedForever(currentChat.banned_rights)) { - mediaBanTooltip.setText(LocaleController.getString("AttachMediaRestrictedForever", R.string.AttachMediaRestrictedForever)); + mediaBanTooltip.setText(LocaleController.getString(R.string.AttachMediaRestrictedForever)); } else { mediaBanTooltip.setText(LocaleController.formatString("AttachMediaRestricted", R.string.AttachMediaRestricted, LocaleController.formatDateForBan(currentChat.banned_rights.until_date))); } @@ -13370,7 +13366,7 @@ private boolean showGifHint() { frameLayout.addView(emojiButtonRed, index + 1, LayoutHelper.createFrame(10, 10, Gravity.BOTTOM | Gravity.LEFT, 30, 0, 0, 27)); gifHintTextView = new HintView(getParentActivity(), 9, themeDelegate); - gifHintTextView.setText(LocaleController.getString("TapHereGifs", R.string.TapHereGifs)); + gifHintTextView.setText(LocaleController.getString(R.string.TapHereGifs)); frameLayout.addView(gifHintTextView, index + 1, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.BOTTOM, 5, 0, 5, 3)); AnimatorSet AnimatorSet = new AnimatorSet(); @@ -14001,15 +13997,15 @@ public void searchLinks(final CharSequence charSequence, final boolean force) { if (currentEncryptedChat != null && messagesController.secretWebpagePreview == 2) { AndroidUtilities.runOnUIThread(() -> { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialog, which) -> { + builder.setTitle(LocaleController.getString(R.string.NekoX)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialog, which) -> { messagesController.secretWebpagePreview = 1; MessagesController.getGlobalMainSettings().edit().putInt("secretWebpage2", getMessagesController().secretWebpagePreview).apply(); foundUrls = null; searchLinks(charSequence, force); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setMessage(LocaleController.getString("SecretLinkPreviewAlert", R.string.SecretLinkPreviewAlert)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setMessage(LocaleController.getString(R.string.SecretLinkPreviewAlert)); showDialog(builder.create()); messagesController.secretWebpagePreview = 0; @@ -14480,22 +14476,22 @@ public void showFieldPanel(boolean show, MessageObject messageObjectToReply, Mes chatActivityEnterView.setEditingMessageObject(messageObjectToEdit, getValidGroupedMessage(messageObjectToEdit), !mediaEmpty); chatActivityEnterView.setForceShowSendButton(false, false); final boolean canEditMedia = messageObjectToEdit.canEditMedia(); - replyCloseImageView.setContentDescription(LocaleController.getString("AccDescrCancelEdit", R.string.AccDescrCancelEdit)); + replyCloseImageView.setContentDescription(LocaleController.getString(R.string.AccDescrCancelEdit)); if (!mediaEmpty && canEditMedia) { String editButtonText = null; String replaceButtonText; if (messageObjectToEdit.isPhoto()) { - editButtonText = LocaleController.getString("EditMessageEditPhoto", R.string.EditMessageEditPhoto); - replaceButtonText = LocaleController.getString("EditMessageReplacePhoto", R.string.EditMessageReplacePhoto); + editButtonText = LocaleController.getString(R.string.EditMessageEditPhoto); + replaceButtonText = LocaleController.getString(R.string.EditMessageReplacePhoto); } else if (messageObjectToEdit.isVideo()) { - editButtonText = LocaleController.getString("EditMessageEditVideo", R.string.EditMessageEditVideo); - replaceButtonText = LocaleController.getString("EditMessageReplaceVideo", R.string.EditMessageReplaceVideo); + editButtonText = LocaleController.getString(R.string.EditMessageEditVideo); + replaceButtonText = LocaleController.getString(R.string.EditMessageReplaceVideo); } else if (messageObjectToEdit.isGif()) { - replaceButtonText = LocaleController.getString("EditMessageReplaceGif", R.string.EditMessageReplaceGif); + replaceButtonText = LocaleController.getString(R.string.EditMessageReplaceGif); } else if (messageObjectToEdit.isMusic()) { - replaceButtonText = LocaleController.getString("EditMessageReplaceAudio", R.string.EditMessageReplaceAudio); + replaceButtonText = LocaleController.getString(R.string.EditMessageReplaceAudio); } else { - replaceButtonText = LocaleController.getString("EditMessageReplaceFile", R.string.EditMessageReplaceFile); + replaceButtonText = LocaleController.getString(R.string.EditMessageReplaceFile); } final ChatActivityEnterTopView.EditViewButton[] buttons = chatActivityEnterTopView.getEditView().getButtons(); buttons[0].setEditButton(editButtonText != null); @@ -14508,14 +14504,14 @@ public void showFieldPanel(boolean show, MessageObject messageObjectToReply, Mes chatActivityEnterTopView.setEditMode(true); } else { replyIconImageView.setImageResource(R.drawable.group_edit); - replyIconImageView.setContentDescription(LocaleController.getString("AccDescrEditing", R.string.AccDescrEditing)); + replyIconImageView.setContentDescription(LocaleController.getString(R.string.AccDescrEditing)); if (mediaEmpty) { - replyNameTextView.setText(LocaleController.getString("EditMessage", R.string.EditMessage)); + replyNameTextView.setText(LocaleController.getString(R.string.EditMessage)); } else { - replyNameTextView.setText(LocaleController.getString("EditCaption", R.string.EditCaption)); + replyNameTextView.setText(LocaleController.getString(R.string.EditCaption)); } if (canEditMedia) { - replyObjectTextView.setText(LocaleController.getString("EditMessageMedia", R.string.EditMessageMedia)); + replyObjectTextView.setText(LocaleController.getString(R.string.EditMessageMedia)); } else if (messageObjectToEdit.messageText != null || messageObjectToEdit.caption != null) { CharSequence mess = messageObjectToEdit.caption != null ? messageObjectToEdit.caption : messageObjectToEdit.messageText; if (mess.length() > 150) { @@ -14611,16 +14607,26 @@ public void showFieldPanel(boolean show, MessageObject messageObjectToReply, Mes name = UserObject.getUserName(user); } } else if (name == null) { - TLRPC.Chat chat; + TLRPC.Chat chat = null; + TLRPC.User user = null; if (ChatObject.isChannel(currentChat) && currentChat.megagroup && messageObjectToReply.isForwardedChannelPost()) { chat = getMessagesController().getChat(messageObjectToReply.messageOwner.fwd_from.from_id.channel_id); } else { - chat = getMessagesController().getChat(-messageObjectToReply.getSenderId()); + final long did = messageObjectToReply.getSenderId(); + if (did < 0) { + chat = getMessagesController().getChat(-did); + } else { + user = getMessagesController().getUser(did); + } } - if (chat == null) { + if (chat == null && user == null) { return; } - name = new SpannableStringBuilder(ChatObject.isChannelAndNotMegaGroup(chat) ? MessageObject.channelSpan() : MessageObject.groupSpan()).append(" ").append(chat.title); + if (chat != null) { + name = new SpannableStringBuilder(ChatObject.isChannelAndNotMegaGroup(chat) ? MessageObject.channelSpan() : MessageObject.groupSpan()).append(" ").append(chat.title); + } else { + name = UserObject.getUserName(user); + } } CharSequence nameText; if (quote != null) { @@ -14637,8 +14643,8 @@ public void showFieldPanel(boolean show, MessageObject messageObjectToReply, Mes nameText = MessageHelper.INSTANCE.zalgoFilter(nameText); nameText = Emoji.replaceEmoji(nameText, replyNameTextView.getPaint().getFontMetricsInt(), false); replyNameTextView.setText(nameText); - replyIconImageView.setContentDescription(LocaleController.getString("AccDescrReplying", R.string.AccDescrReplying)); - replyCloseImageView.setContentDescription(LocaleController.getString("AccDescrCancelReply", R.string.AccDescrCancelReply)); + replyIconImageView.setContentDescription(LocaleController.getString(R.string.AccDescrReplying)); + replyCloseImageView.setContentDescription(LocaleController.getString(R.string.AccDescrCancelReply)); replyObjectHintTextView.setText(LocaleController.getString(R.string.TapForReplyOptions)); if (!SharedConfig.replyingOptionsHintShown) { @@ -14716,8 +14722,8 @@ public void showFieldPanel(boolean show, MessageObject messageObjectToReply, Mes chatActivityEnterView.setForceShowSendButton(true, false); ArrayList uids = new ArrayList<>(); replyIconImageView.setImageResource(R.drawable.filled_forward); - replyIconImageView.setContentDescription(LocaleController.getString("AccDescrForwarding", R.string.AccDescrForwarding)); - replyCloseImageView.setContentDescription(LocaleController.getString("AccDescrCancelForward", R.string.AccDescrCancelForward)); + replyIconImageView.setContentDescription(LocaleController.getString(R.string.AccDescrForwarding)); + replyCloseImageView.setContentDescription(LocaleController.getString(R.string.AccDescrCancelForward)); MessageObject object = messageObjectsToForward.get(0); if (object.isFromUser()) { uids.add(object.messageOwner.from_id.user_id); @@ -14805,9 +14811,9 @@ public void showFieldPanel(boolean show, MessageObject messageObjectToReply, Mes messageObjectToReply = messageObjectsToForward.get(0); } } else if (type == MessageObject.TYPE_GIVEAWAY) { - text = LocaleController.getString("BoostingGiveaway", R.string.BoostingGiveaway); + text = LocaleController.getString(R.string.BoostingGiveaway); } else if (type == MessageObject.TYPE_GIVEAWAY_RESULTS) { - text = LocaleController.getString("BoostingGiveawayResults", R.string.BoostingGiveawayResults); + text = LocaleController.getString(R.string.BoostingGiveawayResults); } else if (type == MessageObject.TYPE_GEO) { text = LocaleController.formatPluralString("PreviewForwardLocation", messageObjectsToForward.size()); } else if (type == MessageObject.TYPE_VIDEO) { @@ -14832,7 +14838,7 @@ public void showFieldPanel(boolean show, MessageObject messageObjectToReply, Mes messageObjectToReply = messageObjectsToForward.get(0); } if (messageObjectsToForward.size() == 1 && type == MessageObject.TYPE_GIF) { - text = LocaleController.getString("AttachGif", R.string.AttachGif); + text = LocaleController.getString(R.string.AttachGif); } else { text = LocaleController.formatPluralString("PreviewForwardFile", messageObjectsToForward.size()); } @@ -14846,7 +14852,7 @@ public void showFieldPanel(boolean show, MessageObject messageObjectToReply, Mes replyNameTextView.setText(text); if (messagePreviewParams != null && messagePreviewParams.hideForwardSendersName) { - replyObjectTextView.setText(LocaleController.getString("HiddenSendersNameDescription", R.string.HiddenSendersNameDescription)); + replyObjectTextView.setText(LocaleController.getString(R.string.HiddenSendersNameDescription)); } else { if ((type == -1 || type == MessageObject.TYPE_TEXT || type == MessageObject.TYPE_DATE || type == MessageObject.TYPE_ACTION_PHOTO || type == MessageObject.TYPE_EMOJIS) && (messageObjectsToForward.size() == 1 && messageObjectsToForward.get(0).messageText != null)) { MessageObject messageObject = messageObjectsToForward.get(0); @@ -14885,7 +14891,7 @@ public void showFieldPanel(boolean show, MessageObject messageObjectToReply, Mes messagePreviewParams = null; } if (webPage instanceof TLRPC.TL_webPagePending) { - replyNameTextView.setText(LocaleController.getString("GettingLinkInfo", R.string.GettingLinkInfo)); + replyNameTextView.setText(LocaleController.getString(R.string.GettingLinkInfo)); replyObjectTextView.setText(pendingLinkSearchString); } else { if (webPage.site_name != null) { @@ -14893,7 +14899,7 @@ public void showFieldPanel(boolean show, MessageObject messageObjectToReply, Mes } else if (webPage.title != null) { replyNameTextView.setText(webPage.title); } else { - replyNameTextView.setText(LocaleController.getString("LinkPreview", R.string.LinkPreview)); + replyNameTextView.setText(LocaleController.getString(R.string.LinkPreview)); } if (webPage.title != null) { replyObjectTextView.setText(webPage.title); @@ -15549,13 +15555,27 @@ public void updateMessagesVisiblePart(boolean inLayout) { !isThreadChat() && visibleToBeRead && (!messageObject.isOut() && messageObject.isUnread() || messageObject.messageOwner.from_scheduled && id > currentReadMaxId) || isThreadChat() && id > 0 && id > currentReadMaxId && id > replyMaxReadId ) { - if (id > 0) { - maxPositiveUnreadId = Math.max(maxPositiveUnreadId, messageObject.getId()); - } - if (id < 0 && !isThreadChat()) { - maxNegativeUnreadId = Math.min(maxNegativeUnreadId, messageObject.getId()); + MessageObject.GroupedMessages group = getValidGroupedMessage(messageObject); + if (group != null) { + for (MessageObject msg : group.messages) { + final int msg_id = msg.getId(); + if (msg_id > 0) { + maxPositiveUnreadId = Math.max(maxPositiveUnreadId, msg_id); + } + if (msg_id < 0 && !isThreadChat()) { + maxNegativeUnreadId = Math.min(maxNegativeUnreadId, msg_id); + } + maxUnreadDate = Math.max(maxUnreadDate, msg.messageOwner.date); + } + } else { + if (id > 0) { + maxPositiveUnreadId = Math.max(maxPositiveUnreadId, messageObject.getId()); + } + if (id < 0 && !isThreadChat()) { + maxNegativeUnreadId = Math.min(maxNegativeUnreadId, messageObject.getId()); + } + maxUnreadDate = Math.max(maxUnreadDate, messageObject.messageOwner.date); } - maxUnreadDate = Math.max(maxUnreadDate, messageObject.messageOwner.date); } if (messageObject.type == MessageObject.TYPE_POLL && messageObject.getId() > 0) { pollsToCheck.add(messageObject); @@ -15979,6 +15999,7 @@ private void startMessageUnselect() { unselectRunnable = () -> { highlightMessageId = Integer.MAX_VALUE; highlightMessageQuoteFirst = false; + highlightMessageQuoteFirstTime = 0; highlightMessageQuote = null; highlightMessageQuoteOffset = -1; showNoQuoteAlert = false; @@ -15998,6 +16019,7 @@ private void removeSelectedMessageHighlight() { } highlightMessageId = Integer.MAX_VALUE; highlightMessageQuoteFirst = false; + highlightMessageQuoteFirstTime = 0; highlightMessageQuote = null; } @@ -16761,6 +16783,7 @@ protected void onDetachedFromWindow() { private float x, y; private long pressTime; + private boolean pressActionBar; @Override public boolean dispatchTouchEvent(MotionEvent ev) { @@ -16820,7 +16843,7 @@ public boolean dispatchTouchEvent(MotionEvent ev) { if (isInPreviewMode() && allowExpandPreviewByClick) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { - boolean pressedOnPageDownButtons = false, pressedOnAvatar = false; + boolean pressedOnPageDownButtons = false, pressedOnAction = false; int[] off = new int[2]; getLocationInWindow(off); int[] pos = new int[2]; @@ -16831,12 +16854,11 @@ public boolean dispatchTouchEvent(MotionEvent ev) { pressedOnPageDownButtons = true; } } - if (avatarContainer != null && avatarContainer.getAvatarImageView() != null) { - BackupImageView avatar = avatarContainer.getAvatarImageView(); - avatar.getLocationInWindow(pos); - AndroidUtilities.rectTmp2.set(pos[0] - off[0], pos[1] - off[1], pos[0] - off[0] + avatar.getMeasuredWidth(), pos[1] - off[1] + avatar.getMeasuredHeight()); + if (avatarContainer != null) { + avatarContainer.getLocationInWindow(pos); + AndroidUtilities.rectTmp2.set(pos[0] - off[0], pos[1] - off[1], pos[0] - off[0] + avatarContainer.getMeasuredWidth(), pos[1] - off[1] + avatarContainer.getMeasuredHeight()); if (AndroidUtilities.rectTmp2.contains((int) ev.getX(), (int) ev.getY())) { - pressedOnAvatar = true; + pressedOnAction = true; } } if (!pressedOnPageDownButtons && mentiondownButton != null) { @@ -16846,17 +16868,30 @@ public boolean dispatchTouchEvent(MotionEvent ev) { pressedOnPageDownButtons = true; } } - if (!pressedOnPageDownButtons && !pressedOnAvatar) { + if (!pressedOnPageDownButtons) { x = ev.getX(); y = ev.getY(); pressTime = SystemClock.elapsedRealtime(); + pressActionBar = pressedOnAction; + if (avatarContainer != null) { + avatarContainer.bounce.setPressed(pressActionBar); + } r = true; } else { pressTime = -1; } } else if (ev.getAction() == MotionEvent.ACTION_UP) { - if (MathUtils.distance(x, y, ev.getX(), ev.getY()) < AndroidUtilities.dp(6) && SystemClock.elapsedRealtime() - pressTime <= ViewConfiguration.getTapTimeout()) { - parentLayout.expandPreviewFragment(); + if (avatarContainer != null) { + avatarContainer.bounce.setPressed(false); + } + if (pressActionBar || MathUtils.distance(x, y, ev.getX(), ev.getY()) < AndroidUtilities.dp(6) && SystemClock.elapsedRealtime() - pressTime <= ViewConfiguration.getTapTimeout()) { + if (pressActionBar) { + final INavigationLayout layout = parentLayout; + removeSelfFromStack(false); + layout.presentFragment(ProfileActivity.of(dialog_id)); + } else { + parentLayout.expandPreviewFragment(); + } ev.setAction(MotionEvent.ACTION_CANCEL); } pressTime = -1; @@ -17001,6 +17036,7 @@ private void drawChildElement(Canvas canvas, float listTop, ChatMessageCell cell cell.drawCaptionLayout(canvas, cell.getCurrentPosition() != null && (cell.getCurrentPosition().flags & MessageObject.POSITION_FLAG_LEFT) == 0, alpha); } else if (type == 3) { final boolean selectionOnly = cell.getCurrentPosition() != null && (cell.getCurrentPosition().flags & MessageObject.POSITION_FLAG_LEFT) == 0; + cell.drawCommentLayout(canvas, alpha); if (!selectionOnly) { cell.drawReactionsLayout(canvas, alpha, null); } @@ -18044,10 +18080,10 @@ private void updateSecretStatus() { bottomOverlayText.setText(builder); bottomOverlayText.setOnClickListener(v -> LimitReachedBottomSheet.openBoostsForRemoveRestrictions(this, boostsStatus, canApplyBoosts, dialog_id, false)); } else { - bottomOverlayText.setText(LocaleController.getString("GlobalSendMessageRestricted", R.string.GlobalSendMessageRestricted)); + bottomOverlayText.setText(LocaleController.getString(R.string.GlobalSendMessageRestricted)); } } else if (AndroidUtilities.isBannedForever(currentChat.banned_rights)) { - bottomOverlayText.setText(LocaleController.getString("SendMessageRestrictedForever", R.string.SendMessageRestrictedForever)); + bottomOverlayText.setText(LocaleController.getString(R.string.SendMessageRestrictedForever)); } else { bottomOverlayText.setText(LocaleController.formatString("SendMessageRestricted", R.string.SendMessageRestricted, LocaleController.formatDateForBan(currentChat.banned_rights.until_date))); } @@ -18073,7 +18109,7 @@ private void updateSecretStatus() { return; } if (currentEncryptedChat instanceof TLRPC.TL_encryptedChatRequested) { - bottomOverlayText.setText(LocaleController.getString("EncryptionProcessing", R.string.EncryptionProcessing)); + bottomOverlayText.setText(LocaleController.getString(R.string.EncryptionProcessing)); bottomOverlay.setVisibility(View.VISIBLE); chatActivityEnterView.setVisibility(View.INVISIBLE); hideKeyboard = true; @@ -18083,7 +18119,7 @@ private void updateSecretStatus() { chatActivityEnterView.setVisibility(View.INVISIBLE); hideKeyboard = true; } else if (currentEncryptedChat instanceof TLRPC.TL_encryptedChatDiscarded) { - bottomOverlayText.setText(LocaleController.getString("EncryptionRejected", R.string.EncryptionRejected)); + bottomOverlayText.setText(LocaleController.getString(R.string.EncryptionRejected)); bottomOverlay.setVisibility(View.VISIBLE); chatActivityEnterView.setVisibility(View.INVISIBLE); chatActivityEnterView.setFieldText(""); @@ -18135,9 +18171,9 @@ public void onRequestPermissionsResultFragment(int requestCode, String[] permiss } if (grantResults != null && grantResults.length != 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); - builder.setMessage(LocaleController.getString("PermissionNoAudioVideoWithHint", R.string.PermissionNoAudioVideoWithHint)); - builder.setNegativeButton(LocaleController.getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialog, which) -> { + builder.setTitle(LocaleController.getString(R.string.NekoX)); + builder.setMessage(LocaleController.getString(R.string.PermissionNoAudioVideoWithHint)); + builder.setNegativeButton(LocaleController.getString(R.string.PermissionOpenSettings), (dialog, which) -> { try { Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); @@ -18146,7 +18182,7 @@ public void onRequestPermissionsResultFragment(int requestCode, String[] permiss FileLog.e(e); } }); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); builder.show(); } } else if (requestCode == 19 && grantResults != null && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { @@ -18579,7 +18615,7 @@ public void onAnimationEnd(Animator animation) { } if (saveToDownloadsItem != null) { saveToDownloadsItem.setVisibility(((canSaveMusicCount > 0 && canSaveDocumentsCount == 0) || (canSaveMusicCount == 0 && canSaveDocumentsCount > 0)) && cantSaveMessagesCount == 0 ? View.VISIBLE : View.GONE); - saveToDownloadsItem.setText(canSaveMusicCount > 0 ? LocaleController.getString("SaveToMusic", R.string.SaveToMusic) : LocaleController.getString("SaveToDownloads", R.string.SaveToDownloads)); + saveToDownloadsItem.setText(canSaveMusicCount > 0 ? LocaleController.getString(R.string.SaveToMusic) : LocaleController.getString(R.string.SaveToDownloads)); } int copyVisible = View.GONE, starVisible = View.GONE, newCopyVisible = View.GONE, newStarVisible = View.GONE; @@ -18918,7 +18954,7 @@ private void processRowSelect(View view, boolean outside, float touchX, float to if (message != null && message.isAnyGift()) { return; } - if (type < 2 || type == 20 || type == MessageObject.TYPE_SUGGEST_PHOTO || message != null && message.type == MessageObject.TYPE_JOINED_CHANNEL || message != null && message.type == MessageObject.TYPE_GIFT_STARS || (message != null && message.isWallpaperAction())) { + if (type < 2 || type == 20 || type == MessageObject.TYPE_SUGGEST_PHOTO || message != null && (message.type == MessageObject.TYPE_JOINED_CHANNEL || message.type == MessageObject.TYPE_GIFT_STARS) || (message != null && message.isWallpaperAction())) { return; } addToSelectedMessages(message, outside); @@ -18937,7 +18973,7 @@ private void updateActionModeTitle() { } else { int size = selectedMessagesIds[0].size() + selectedMessagesIds[1].size(); if (size == 0) { - bottomOverlayChatText.setText(LocaleController.getString("ReportMessages", R.string.ReportMessages)); + bottomOverlayChatText.setText(LocaleController.getString(R.string.ReportMessages)); bottomOverlayChatText.setAlpha(0.5f); bottomOverlayChatText.setEnabled(false); } else { @@ -18976,7 +19012,7 @@ public void updateTitle(boolean animated) { chat = getMessagesController().getChat(-dialogId); } if (UserObject.isReplyUser(user)) { - avatarContainer.setTitle(LocaleController.getString("RepliesTitle", R.string.RepliesTitle)); + avatarContainer.setTitle(LocaleController.getString(R.string.RepliesTitle)); } else if (UserObject.isAnonymous(user)) { avatarContainer.setTitle(LocaleController.getString(R.string.AnonymousForward)); } else if (UserObject.isUserSelf(user)) { @@ -18995,20 +19031,20 @@ public void updateTitle(boolean animated) { if (threadMessageObject.hasReplies()) { avatarContainer.setTitle(LocaleController.formatPluralString("Comments", threadMessageObject.getRepliesCount())); } else { - avatarContainer.setTitle(LocaleController.getString("CommentsTitle", R.string.CommentsTitle)); + avatarContainer.setTitle(LocaleController.getString(R.string.CommentsTitle)); } } else { avatarContainer.setTitle(LocaleController.formatPluralString("Replies", threadMessageObject.getRepliesCount())); } } else if (UserObject.isReplyUser(currentUser)) { - avatarContainer.setTitle(LocaleController.getString("RepliesTitle", R.string.RepliesTitle)); + avatarContainer.setTitle(LocaleController.getString(R.string.RepliesTitle)); } else if (UserObject.isAnonymous(currentUser)) { avatarContainer.setTitle(LocaleController.getString(R.string.AnonymousForward)); } else if (chatMode == MODE_SCHEDULED) { if (UserObject.isUserSelf(currentUser)) { - avatarContainer.setTitle(LocaleController.getString("Reminders", R.string.Reminders)); + avatarContainer.setTitle(LocaleController.getString(R.string.Reminders)); } else { - avatarContainer.setTitle(LocaleController.getString("ScheduledMessages", R.string.ScheduledMessages)); + avatarContainer.setTitle(LocaleController.getString(R.string.ScheduledMessages)); } } else if (chatMode == MODE_PINNED) { avatarContainer.setTitle(LocaleController.formatPluralString("PinnedMessagesCount", getPinnedMessagesCount())); @@ -19016,7 +19052,7 @@ public void updateTitle(boolean animated) { avatarContainer.setTitle(AndroidUtilities.removeDiacritics(currentChat.title), currentChat.scam, currentChat.fake, currentChat.verified, false, currentChat.emoji_status, animated); } else if (currentUser != null) { if (currentUser.self) { - avatarContainer.setTitle(LocaleController.getString("SavedMessages", R.string.SavedMessages)); + avatarContainer.setTitle(LocaleController.getString(R.string.SavedMessages)); } else if (!MessagesController.isSupportUser(currentUser) && getContactsController().contactsDict.get(currentUser.id) == null && (getContactsController().contactsDict.size() != 0 || !getContactsController().isLoadingContacts())) { if (!TextUtils.isEmpty(currentUser.phone)) { avatarContainer.setTitle(PhoneFormat.getInstance().format("+" + currentUser.phone), currentUser.scam, currentUser.fake, currentUser.verified, getMessagesController().isPremiumUser(currentUser), currentUser.emoji_status, animated); @@ -19101,15 +19137,15 @@ private void updateTitleIcons(boolean forceToggleMuted) { if (!forceToggleMuted && muteItem != null) { if (isMuted) { muteItem.setRightIconVisibility(View.GONE); - muteItem.setText(LocaleController.getString("Unmute", R.string.Unmute)); + muteItem.setText(LocaleController.getString(R.string.Unmute)); muteItem.setIcon(R.drawable.msg_mute); } else { muteItem.setRightIconVisibility(View.VISIBLE); if (getMessagesController().isDialogNotificationsSoundEnabled(dialog_id, getTopicId())) { - muteItem.setText(LocaleController.getString("Mute", R.string.Mute)); + muteItem.setText(LocaleController.getString(R.string.Mute)); muteItem.setIcon(R.drawable.msg_unmute); } else { - muteItem.setText(LocaleController.getString("Mute", R.string.Mute)); + muteItem.setText(LocaleController.getString(R.string.Mute)); muteItem.setIcon(R.drawable.msg_silent); } } @@ -19452,7 +19488,7 @@ private void showAttachmentError() { if (getParentActivity() == null) { return; } - BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("UnsupportedAttachment", R.string.UnsupportedAttachment), themeDelegate).show(); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.UnsupportedAttachment), themeDelegate).show(); } private void fillEditingMediaWithCaption(CharSequence caption, ArrayList entities) { @@ -19893,7 +19929,7 @@ public void didReceivedNotification(int id, int account, final Object... args) { bundle.putInt("message_id", postponedScrollMessageId); presentFragment(new ChatActivity(bundle), true); } else { - BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("MessageNotFound", R.string.MessageNotFound), themeDelegate).show(); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.MessageNotFound), themeDelegate).show(); } return; } @@ -20086,12 +20122,12 @@ public void didReceivedNotification(int id, int account, final Object... args) { TLRPC.Message msg = new TLRPC.TL_message(); if (threadMessageObject.getRepliesCount() == 0) { if (isComments) { - msg.message = LocaleController.getString("NoComments", R.string.NoComments); + msg.message = LocaleController.getString(R.string.NoComments); } else { - msg.message = LocaleController.getString("NoReplies", R.string.NoReplies); + msg.message = LocaleController.getString(R.string.NoReplies); } } else { - msg.message = LocaleController.getString("DiscussionStarted", R.string.DiscussionStarted); + msg.message = LocaleController.getString(R.string.DiscussionStarted); } msg.id = 0; msg.date = threadMessageObject.messageOwner.date; @@ -20261,7 +20297,7 @@ public void didReceivedNotification(int id, int account, final Object... args) { TLRPC.Message dateMsg = new TLRPC.TL_message(); if (chatMode == MODE_SCHEDULED) { if (obj.messageOwner.date == 0x7ffffffe) { - dateMsg.message = LocaleController.getString("MessageScheduledUntilOnline", R.string.MessageScheduledUntilOnline); + dateMsg.message = LocaleController.getString(R.string.MessageScheduledUntilOnline); } else { dateMsg.message = LocaleController.formatString("MessageScheduledOn", R.string.MessageScheduledOn, LocaleController.formatDateChat(obj.messageOwner.date, true)); } @@ -20428,7 +20464,7 @@ public void didReceivedNotification(int id, int account, final Object... args) { highlightMessageId = messageId; } if (showScrollToMessageError && messageId != startLoadFromMessageId) { - BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("MessageNotFound", R.string.MessageNotFound), themeDelegate).show(); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.MessageNotFound), themeDelegate).show(); } scrollToMessage = obj; if (postponedScroll) { @@ -21390,7 +21426,6 @@ public void didReceivedNotification(int id, int account, final Object... args) { obj.messageOwner = newMsgObj; if (fwdHeader != null && newMsgObj.fwd_from != null && !TextUtils.isEmpty(newMsgObj.fwd_from.from_name)) { obj.messageOwner.fwd_from = fwdHeader; - Log.i("lolkek", "msg " + obj.getId() + " isOutOwnerCached is reset (1)"); obj.isOutOwnerCached = null; } obj.generateThumbs(true); @@ -21510,6 +21545,7 @@ public void didReceivedNotification(int id, int account, final Object... args) { showGigagroupConvertAlert(); long prevLinkedChatId = chatInfo != null ? chatInfo.linked_chat_id : 0; chatInfo = chatFull; + gotChatInfo(); if (ChatObject.isBoostSupported(currentChat)) { getMessagesController().getBoostsController().getBoostsStats(dialog_id, boostsStatus -> { if (boostsStatus == null) { @@ -21650,19 +21686,19 @@ public void didReceivedNotification(int id, int account, final Object... args) { builder.setTopAnimationIsNew(true); if (reason == 0) { if (currentChat instanceof TLRPC.TL_channelForbidden) { - builder.setTitle(LocaleController.getString("ChannelCantOpenBannedByAdminTitle", R.string.ChannelCantOpenBannedByAdminTitle)); - builder.setMessage(LocaleController.getString("ChannelCantOpenBannedByAdmin", R.string.ChannelCantOpenBannedByAdmin)); + builder.setTitle(LocaleController.getString(R.string.ChannelCantOpenBannedByAdminTitle)); + builder.setMessage(LocaleController.getString(R.string.ChannelCantOpenBannedByAdmin)); } else { builder.setTitle(LocaleController.getString(R.string.ChannelPrivate)); - builder.setMessage(LocaleController.getString("ChannelCantOpenPrivate2", R.string.ChannelCantOpenPrivate2)); + builder.setMessage(LocaleController.getString(R.string.ChannelCantOpenPrivate2)); } } else if (reason == 1) { - builder.setMessage(LocaleController.getString("ChannelCantOpenNa", R.string.ChannelCantOpenNa)); + builder.setMessage(LocaleController.getString(R.string.ChannelCantOpenNa)); } else if (reason == 2) { - builder.setMessage(LocaleController.getString("ChannelCantOpenBanned", R.string.ChannelCantOpenBanned)); + builder.setMessage(LocaleController.getString(R.string.ChannelCantOpenBanned)); } else if (reason == 3) { builder.setTitle(LocaleController.getString(R.string.ChannelPrivate)); - builder.setMessage(LocaleController.getString("JoinByPeekChannelText", R.string.JoinByPeekChannelText)); + builder.setMessage(LocaleController.getString(R.string.JoinByPeekChannelText)); } builder.setPositiveButton(LocaleController.getString(R.string.Close), null); if (showDialog(closeChatDialog = builder.create()) == null) { @@ -23056,6 +23092,7 @@ public void didReceivedNotification(int id, int account, final Object... args) { long topicId = (long) args[1]; if (chatId == -dialog_id && (!isTopic || getTopicId() == topicId)) { chatInfo = getMessagesController().getChatFull(chatId); + gotChatInfo(); } } else if (id == NotificationCenter.dialogsUnreadReactionsCounterChanged) { long dialogId = (long) args[0]; @@ -23602,7 +23639,7 @@ private void addSponsoredMessages(boolean animated) { getMessagesController().ensureMessagesLoaded(did, postId, null); } } catch (Exception e) { - FileLog.e(e); + FileLog.e(e, false); } } } @@ -23624,7 +23661,7 @@ public void removeFromSponsored(MessageObject message) { private void checkGroupCallJoin(boolean fromServer) { if (groupCall == null || voiceChatHash == null && !openVideoChat || !openAnimationEnded) { if (voiceChatHash != null && fromServer && chatInfo != null && chatInfo.call == null && fragmentView != null && getParentActivity() != null) { - BulletinFactory.of(this).createSimpleBulletin(R.raw.linkbroken, LocaleController.getString("LinkHashExpired", R.string.LinkHashExpired)).show(); + BulletinFactory.of(this).createSimpleBulletin(R.raw.linkbroken, LocaleController.getString(R.string.LinkHashExpired)).show(); voiceChatHash = null; } lastCallCheckFromServer = !openAnimationEnded; @@ -24454,7 +24491,7 @@ private void processNewMessages(ArrayList arr) { TLRPC.Message dateMsg = new TLRPC.TL_message(); if (chatMode == MODE_SCHEDULED) { if (obj.messageOwner.date == 0x7ffffffe) { - dateMsg.message = LocaleController.getString("MessageScheduledUntilOnline", R.string.MessageScheduledUntilOnline); + dateMsg.message = LocaleController.getString(R.string.MessageScheduledUntilOnline); } else { dateMsg.message = LocaleController.formatString("MessageScheduledOn", R.string.MessageScheduledOn, LocaleController.formatDateChat(obj.messageOwner.date, true)); } @@ -25632,7 +25669,7 @@ public void onTransitionAnimationEnd(boolean isOpen, boolean backward) { boolean check; if (type == MessagesController.PROMO_TYPE_PROXY) { if (AndroidUtilities.getPrefIntOrLong(preferences, "proxychannel", 0) != dialog_id) { - message = LocaleController.getString("UseProxySponsorInfo", R.string.UseProxySponsorInfo); + message = LocaleController.getString(R.string.UseProxySponsorInfo); } else { message = null; } @@ -25641,7 +25678,7 @@ public void onTransitionAnimationEnd(boolean isOpen, boolean backward) { if (!preferences.getBoolean(psaType + "_shown", false)) { message = LocaleController.getString("PsaInfo_" + psaType); if (TextUtils.isEmpty(message)) { - message = LocaleController.getString("PsaInfoDefault", R.string.PsaInfoDefault); + message = LocaleController.getString(R.string.PsaInfoDefault); } } else { message = null; @@ -25905,34 +25942,34 @@ public static void fillActionModeMenu(Menu menu, TLRPC.EncryptedChat encryptedCh menu.add(android.R.id.copy, android.R.id.copy, order++, android.R.string.copy); menu.add(android.R.id.paste, android.R.id.paste, order++, android.R.string.paste); - menu.add(R.id.menu_translate, R.id.menu_translate, order++, LocaleController.getString("Translate", R.string.Translate)); + menu.add(R.id.menu_translate, R.id.menu_translate, order++, LocaleController.getString(R.string.Translate)); SpannableStringBuilder stringBuilder; if (NaConfig.INSTANCE.getShowTextBold().Bool()) { - stringBuilder = new SpannableStringBuilder(LocaleController.getString("Bold", R.string.Bold)); + stringBuilder = new SpannableStringBuilder(LocaleController.getString(R.string.Bold)); stringBuilder.setSpan(new TypefaceSpan(AndroidUtilities.bold()), 0, stringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); menu.add(R.id.menu_groupbolditalic, R.id.menu_bold, order++, stringBuilder); } if (NaConfig.INSTANCE.getShowTextItalic().Bool()) { - stringBuilder = new SpannableStringBuilder(LocaleController.getString("Italic", R.string.Italic)); + stringBuilder = new SpannableStringBuilder(LocaleController.getString(R.string.Italic)); stringBuilder.setSpan(new TypefaceSpan(AndroidUtilities.getTypeface("fonts/ritalic.ttf")), 0, stringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); menu.add(R.id.menu_groupbolditalic, R.id.menu_italic, order++, stringBuilder); } if (NaConfig.INSTANCE.getShowTextMono().Bool()) { - stringBuilder = new SpannableStringBuilder(LocaleController.getString("Mono", R.string.Mono)); + stringBuilder = new SpannableStringBuilder(LocaleController.getString(R.string.Mono)); stringBuilder.setSpan(new TypefaceSpan(Typeface.MONOSPACE), 0, stringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); menu.add(R.id.menu_groupbolditalic, R.id.menu_mono, order++, stringBuilder); } if (encryptedChat == null || AndroidUtilities.getPeerLayerVersion(encryptedChat.layer) >= 101) { TextStyleSpan.TextStyleRun run; if (NaConfig.INSTANCE.getShowTextStrikethrough().Bool()) { - stringBuilder = new SpannableStringBuilder(LocaleController.getString("Strike", R.string.Strike)); + stringBuilder = new SpannableStringBuilder(LocaleController.getString(R.string.Strike)); run = new TextStyleSpan.TextStyleRun(); run.flags |= TextStyleSpan.FLAG_STYLE_STRIKE; stringBuilder.setSpan(new TextStyleSpan(run), 0, stringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); menu.add(R.id.menu_groupbolditalic, R.id.menu_strike, order++, stringBuilder); } if (NaConfig.INSTANCE.getShowTextUnderline().Bool()) { - stringBuilder = new SpannableStringBuilder(LocaleController.getString("Underline", R.string.Underline)); + stringBuilder = new SpannableStringBuilder(LocaleController.getString(R.string.Underline)); run = new TextStyleSpan.TextStyleRun(); run.flags |= TextStyleSpan.FLAG_STYLE_UNDERLINE; stringBuilder.setSpan(new TextStyleSpan(run), 0, stringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); @@ -25944,16 +25981,16 @@ public static void fillActionModeMenu(Menu menu, TLRPC.EncryptedChat encryptedCh menu.add(R.id.menu_groupbolditalic, R.id.menu_quote, order++, LocaleController.getString(R.string.Quote)); } if (NaConfig.INSTANCE.getShowTextSpoiler().Bool()) { - menu.add(R.id.menu_groupbolditalic, R.id.menu_spoiler, order++, LocaleController.getString("Spoiler", R.string.Spoiler)); + menu.add(R.id.menu_groupbolditalic, R.id.menu_spoiler, order++, LocaleController.getString(R.string.Spoiler)); } if (NaConfig.INSTANCE.getShowTextCreateLink().Bool()) { - menu.add(R.id.menu_groupbolditalic, R.id.menu_link, order++, LocaleController.getString("CreateLink", R.string.CreateLink)); + menu.add(R.id.menu_groupbolditalic, R.id.menu_link, order++, LocaleController.getString(R.string.CreateLink)); } if (NaConfig.INSTANCE.getShowTextCreateMention().Bool()) { - menu.add(R.id.menu_groupbolditalic, R.id.menu_mention, order++, LocaleController.getString("CreateMention", R.string.CreateMention)); + menu.add(R.id.menu_groupbolditalic, R.id.menu_mention, order++, LocaleController.getString(R.string.CreateMention)); } if (NaConfig.INSTANCE.getShowTextRegular().Bool()) { - menu.add(R.id.menu_groupbolditalic, R.id.menu_regular, 13, LocaleController.getString("Regular", R.string.Regular)); + menu.add(R.id.menu_groupbolditalic, R.id.menu_regular, 13, LocaleController.getString(R.string.Regular)); } } @@ -26010,10 +26047,10 @@ private void updateBottomOverlay() { } if (allowPin) { bottomOverlayChatText.setTag(1); - bottomOverlayChatText.setText(LocaleController.getString("UnpinAllMessages", R.string.UnpinAllMessages)); + bottomOverlayChatText.setText(LocaleController.getString(R.string.UnpinAllMessages)); } else { bottomOverlayChatText.setTag(null); - bottomOverlayChatText.setText(LocaleController.getString("HidePinnedMessages", R.string.HidePinnedMessages)); + bottomOverlayChatText.setText(LocaleController.getString(R.string.HidePinnedMessages)); } showBottomOverlayProgress(false, false); } else if (currentChat != null) { @@ -26042,14 +26079,14 @@ private void updateBottomOverlay() { } else if (shouldDisplaySwipeToLeftToReplyInForum()) { bottomOverlayChatWaitsReply = true; showBottomOverlayProgress(false, false); - bottomOverlayChatText.setTextInfo(LocaleController.getString("ForumReplyToMessagesInTopic", R.string.ForumReplyToMessagesInTopic)); + bottomOverlayChatText.setTextInfo(LocaleController.getString(R.string.ForumReplyToMessagesInTopic)); bottomOverlayChatText.setEnabled(false); } else if (!isThreadChat()) { if (!getMessagesController().isDialogMuted(dialog_id, getTopicId())) { - bottomOverlayChatText.setText(LocaleController.getString("ChannelMute", R.string.ChannelMute), false); + bottomOverlayChatText.setText(LocaleController.getString(R.string.ChannelMute), false); bottomOverlayChatText.setEnabled(true); } else { - bottomOverlayChatText.setText(LocaleController.getString("ChannelUnmute", R.string.ChannelUnmute), true); + bottomOverlayChatText.setText(LocaleController.getString(R.string.ChannelUnmute), true); bottomOverlayChatText.setEnabled(true); } // na: DisableChannelMuteButton @@ -26062,7 +26099,7 @@ private void updateBottomOverlay() { if (!ChatObject.canManageTopic(currentAccount, currentChat, forumTopic)) { Drawable lock = getContext().getResources().getDrawable(R.drawable.msg_mini_lock2).mutate(); lock.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_windowBackgroundWhiteGrayText), PorterDuff.Mode.MULTIPLY)); - bottomOverlayChatText.setTextInfo(lock, LocaleController.getString("TopicClosedByAdmin", R.string.TopicClosedByAdmin)); + bottomOverlayChatText.setTextInfo(lock, LocaleController.getString(R.string.TopicClosedByAdmin)); bottomOverlayChatText.setEnabled(false); } showBottomOverlayProgress(false, false); @@ -26070,10 +26107,10 @@ private void updateBottomOverlay() { } else if (shouldDisplaySwipeToLeftToReplyInForum()) { bottomOverlayChatWaitsReply = true; showBottomOverlayProgress(false, false); - bottomOverlayChatText.setTextInfo(LocaleController.getString("ForumReplyToMessagesInTopic", R.string.ForumReplyToMessagesInTopic)); + bottomOverlayChatText.setTextInfo(LocaleController.getString(R.string.ForumReplyToMessagesInTopic)); bottomOverlayChatText.setEnabled(false); } else if (!isThreadChat()) { - bottomOverlayChatText.setText(LocaleController.getString("DeleteThisGroup", R.string.DeleteThisGroup)); + bottomOverlayChatText.setText(LocaleController.getString(R.string.DeleteThisGroup)); bottomOverlayChatText.setEnabled(true); } if (!shouldApply && requestedTime > 0) { @@ -26086,9 +26123,9 @@ private void updateBottomOverlay() { bottomOverlayStartButton.setVisibility(View.GONE); } if (currentUser.bot) { - bottomOverlayChatText.setText(LocaleController.getString("BotUnblock", R.string.BotUnblock)); + bottomOverlayChatText.setText(LocaleController.getString(R.string.BotUnblock)); } else { - bottomOverlayChatText.setText(LocaleController.getString("Unblock", R.string.Unblock)); + bottomOverlayChatText.setText(LocaleController.getString(R.string.Unblock)); } bottomOverlayChatText.setVisibility(View.VISIBLE); if (botButtons != null) { @@ -26103,13 +26140,13 @@ private void updateBottomOverlay() { } } else if (UserObject.isReplyUser(currentUser)) { if (!getMessagesController().isDialogMuted(dialog_id, getTopicId())) { - bottomOverlayChatText.setText(LocaleController.getString("ChannelMute", R.string.ChannelMute), false); + bottomOverlayChatText.setText(LocaleController.getString(R.string.ChannelMute), false); } else { - bottomOverlayChatText.setText(LocaleController.getString("ChannelUnmute", R.string.ChannelUnmute), true); + bottomOverlayChatText.setText(LocaleController.getString(R.string.ChannelUnmute), true); } showBottomOverlayProgress(false, true); } else if (botUser != null && currentUser.bot) { -// bottomOverlayStartButton.setText(LocaleController.getString("BotStart", R.string.BotStart)); +// bottomOverlayStartButton.setText(LocaleController.getString(R.string.BotStart)); if (bottomOverlayStartButton != null) { bottomOverlayStartButton.setVisibility(View.VISIBLE); } @@ -26123,7 +26160,7 @@ private void updateBottomOverlay() { sentBotStart = true; } } else { - bottomOverlayChatText.setText(LocaleController.getString("DeleteThisChat", R.string.DeleteThisChat)); + bottomOverlayChatText.setText(LocaleController.getString(R.string.DeleteThisChat)); } } @@ -26355,7 +26392,7 @@ public void updateReplyMessageHeader(boolean notify) { if (threadMessageObject != null && threadMessageObject.hasReplies()) { avatarContainer.setTitle(LocaleController.formatPluralString("Comments", threadMessageObject.getRepliesCount())); } else { - avatarContainer.setTitle(LocaleController.getString("CommentsTitle", R.string.CommentsTitle)); + avatarContainer.setTitle(LocaleController.getString(R.string.CommentsTitle)); } } else if (threadMessageObject != null) { avatarContainer.setTitle(LocaleController.formatPluralString("Replies", threadMessageObject.getRepliesCount())); @@ -26367,12 +26404,12 @@ public void updateReplyMessageHeader(boolean notify) { String text; if (threadMessageObject.getRepliesCount() == 0) { if (isComments) { - text = LocaleController.getString("NoComments", R.string.NoComments); + text = LocaleController.getString(R.string.NoComments); } else { - text = LocaleController.getString("NoReplies", R.string.NoReplies); + text = LocaleController.getString(R.string.NoReplies); } } else { - text = LocaleController.getString("DiscussionStarted", R.string.DiscussionStarted); + text = LocaleController.getString(R.string.DiscussionStarted); } replyMessageHeaderObject.messageText = replyMessageHeaderObject.messageOwner.message = text; if (notify) { @@ -26959,9 +26996,9 @@ public void onAnimationCancel(Animator animation) { showCounter = false; } else { if (currentPinnedMessageIndex[0] == 0 || loadedPinnedMessagesCount != 2) { - nameTextView.setText(LocaleController.getString("PinnedMessage", R.string.PinnedMessage), true); + nameTextView.setText(LocaleController.getString(R.string.PinnedMessage), true); } else { - nameTextView.setText(LocaleController.getString("PreviousPinnedMessage", R.string.PreviousPinnedMessage), true); + nameTextView.setText(LocaleController.getString(R.string.PreviousPinnedMessage), true); } if (currentPinnedMessageIndex[0] != 0) { if (isTopic) { @@ -27527,7 +27564,7 @@ public void onClick(View view) { return; } addToContactsButton.setVisibility(View.VISIBLE); - addToContactsButton.setText(LocaleController.getString("GroupAddMembers", R.string.GroupAddMembers)); + addToContactsButton.setText(LocaleController.getString(R.string.GroupAddMembers)); addToContactsButton.setTag(4); addToContactsButton.setTextColor(getThemedColor(Theme.key_chat_addContact)); if (Build.VERSION.SDK_INT >= 21) { @@ -27545,15 +27582,15 @@ public void onClick(View view) { return; } addContactItem.setVisibility(View.VISIBLE); - addContactItem.setText(LocaleController.getString("AddToContacts", R.string.AddToContacts)); + addContactItem.setText(LocaleController.getString(R.string.AddToContacts)); addToContactsButton.setVisibility(View.VISIBLE); if (showArchive) { addToContactsButtonArchive = true; - addToContactsButton.setText(LocaleController.getString("Unarchive", R.string.Unarchive).toUpperCase()); + addToContactsButton.setText(LocaleController.getString(R.string.Unarchive).toUpperCase()); addToContactsButton.setTag(3); } else { if (reportSpamButton.getVisibility() == View.VISIBLE) { - addToContactsButton.setText(LocaleController.getString("AddContactChat", R.string.AddContactChat)); + addToContactsButton.setText(LocaleController.getString(R.string.AddContactChat)); } else { float baseWidth = addToContactsButton.getPaint().measureText(LocaleController.formatString(R.string.AddContactFullChat, "")); addToContactsButton.setText(LocaleController.formatString("AddContactFullChat", R.string.AddContactFullChat, TextUtils.ellipsize(UserObject.getFirstName(user), addToContactsButton.getPaint(), getContext().getResources().getDisplayMetrics().widthPixels - baseWidth - AndroidUtilities.dp(64 * 2), TextUtils.TruncateAt.MIDDLE)).toUpperCase()); @@ -27568,18 +27605,18 @@ public void onClick(View view) { } addContactItem.setVisibility(View.VISIBLE); addToContactsButton.setVisibility(View.VISIBLE); - addContactItem.setText(LocaleController.getString("ShareMyContactInfo", R.string.ShareMyContactInfo)); - addToContactsButton.setText(LocaleController.getString("ShareMyPhone", R.string.ShareMyPhone).toUpperCase()); + addContactItem.setText(LocaleController.getString(R.string.ShareMyContactInfo)); + addToContactsButton.setText(LocaleController.getString(R.string.ShareMyPhone).toUpperCase()); addToContactsButton.setTag(1); addToContactsButton.setVisibility(View.VISIBLE); } else { - if (!user.contact && !UserObject.isService(user.id) && !user.self && !show) { + if (!user.contact && !UserObject.isService(user.id) && !user.self && !show && addContactItem != null) { createTopPanel(); if (topChatPanelView == null) { return; } addContactItem.setVisibility(View.VISIBLE); - addContactItem.setText(LocaleController.getString("ShareMyContactInfo", R.string.ShareMyContactInfo)); + addContactItem.setText(LocaleController.getString(R.string.ShareMyContactInfo)); addToContactsButton.setTag(2); } else if (addContactItem != null) { addContactItem.setVisibility(View.GONE); @@ -27589,7 +27626,7 @@ public void onClick(View view) { } } if (reportSpamButton != null) { - reportSpamButton.setText(LocaleController.getString("ReportSpamUser", R.string.ReportSpamUser)); + reportSpamButton.setText(LocaleController.getString(R.string.ReportSpamUser)); } } else { if (showGeo) { @@ -27597,7 +27634,7 @@ public void onClick(View view) { if (topChatPanelView == null) { return; } - reportSpamButton.setText(LocaleController.getString("ReportSpamLocation", R.string.ReportSpamLocation)); + reportSpamButton.setText(LocaleController.getString(R.string.ReportSpamLocation)); reportSpamButton.setTag(R.id.object_tag, 1); reportSpamButton.setTextColor(getThemedColor(Theme.key_chat_addContact)); if (Build.VERSION.SDK_INT >= 21) { @@ -27611,16 +27648,16 @@ public void onClick(View view) { return; } addToContactsButtonArchive = true; - addToContactsButton.setText(LocaleController.getString("Unarchive", R.string.Unarchive).toUpperCase()); + addToContactsButton.setText(LocaleController.getString(R.string.Unarchive).toUpperCase()); addToContactsButton.setTag(3); addToContactsButton.setVisibility(View.VISIBLE); - reportSpamButton.setText(LocaleController.getString("ReportSpam", R.string.ReportSpam)); + reportSpamButton.setText(LocaleController.getString(R.string.ReportSpam)); } else { if (addToContactsButton != null) { addToContactsButton.setVisibility(View.GONE); } if (reportSpamButton != null) { - reportSpamButton.setText(LocaleController.getString("ReportSpamAndLeave", R.string.ReportSpamAndLeave)); + reportSpamButton.setText(LocaleController.getString(R.string.ReportSpamAndLeave)); } } if (reportSpamButton != null) { @@ -27662,7 +27699,7 @@ public void onClick(View view) { emojiStatusSpamHint.setVisibility(View.VISIBLE); topViewSeparator1.setVisibility(View.VISIBLE); topViewSeparator2.setVisibility(View.VISIBLE); - SpannableStringBuilder text = new SpannableStringBuilder(LocaleController.getString("ReportSpamUserEmojiStatusHint", R.string.ReportSpamUserEmojiStatusHint)); + SpannableStringBuilder text = new SpannableStringBuilder(LocaleController.getString(R.string.ReportSpamUserEmojiStatusHint)); SpannableString emoji = new SpannableString("x"); Long docid = null; if (currentUser.emoji_status instanceof TLRPC.TL_emojiStatus) { @@ -27675,7 +27712,7 @@ public void onClick(View view) { span.full = false; emoji.setSpan(span, 0, emoji.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } - SpannableString link = new SpannableString(LocaleController.getString("TelegramPremium", R.string.TelegramPremium)); + SpannableString link = new SpannableString(LocaleController.getString(R.string.TelegramPremium)); link.setSpan(new ClickableSpan() { @Override public void onClick(@NonNull View view) { @@ -28026,7 +28063,7 @@ public int getBottomOffset(int tag) { @Override public int getTopOffset(int tag) { - return (actionBar != null ? actionBar.getMeasuredHeight() + actionBar.getTop() : 0) + Math.max(0, contentPaddingTop); + return Math.max(AndroidUtilities.statusBarHeight + ActionBar.getCurrentActionBarHeight(), actionBar != null ? actionBar.getMeasuredHeight() + actionBar.getTop() : 0) + Math.max(0, contentPaddingTop); } @Override @@ -28929,7 +28966,7 @@ private boolean createMenu(View v, boolean single, boolean listView, float x, fl if (message.getReplyMsgId() != 0) { AndroidUtilities.runOnUIThread(() -> scrollToMessageId(message.getReplyMsgId(), message.messageOwner.id, true, message.getDialogId() == mergeDialogId ? 1 : 0, false, 0)); } else { - BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("MessageNotFound", R.string.MessageNotFound), themeDelegate).show(); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.MessageNotFound), themeDelegate).show(); } return true; } else if (!longpress && message.messageOwner.action instanceof TLRPC.TL_messageActionPaymentSent) { @@ -29149,37 +29186,38 @@ public void setAutoDeleteHistory(int time, int action) { } if (message.isSponsored() && !getUserConfig().isPremium() && !getMessagesController().premiumFeaturesBlocked() && !message.sponsoredCanReport) { - items.add(LocaleController.getString("HideAd", R.string.HideAd)); + items.add(LocaleController.getString(R.string.HideAd)); options.add(OPTION_HIDE_SPONSORED_MESSAGE); icons.add(R.drawable.msg_block2); } if (message.isSponsored() && message.sponsoredCanReport) { - items.add(LocaleController.getString("AboutRevenueSharingAds", R.string.AboutRevenueSharingAds)); - options.add(OPTION_ABOUT_REVENUE_SHARING_ADS); - icons.add(R.drawable.msg_report); + items.add(LocaleController.getString(R.string.AboutRevenueSharingAds)); + options.add(OPTION_ABOUT_REVENUE_SHARING_ADS); + icons.add(R.drawable.msg_report); - items.add(LocaleController.getString("ReportAd", R.string.ReportAd)); - options.add(OPTION_REPORT_AD); - icons.add(R.drawable.msg_block2); + items.add(LocaleController.getString(R.string.ReportAd)); + options.add(OPTION_REPORT_AD); + icons.add(R.drawable.msg_block2); - if (!getMessagesController().premiumFeaturesBlocked()) { - items.add(LocaleController.getString("RemoveAds", R.string.RemoveAds)); - options.add(OPTION_REMOVE_ADS); - icons.add(R.drawable.msg_cancel); - } + if (!getMessagesController().premiumFeaturesBlocked()) { + items.add(LocaleController.getString(R.string.RemoveAds)); + options.add(OPTION_REMOVE_ADS); + icons.add(R.drawable.msg_cancel); + } } + if (type == -1) { if ((selectedObject.type == MessageObject.TYPE_TEXT || selectedObject.isAnimatedEmoji() || selectedObject.isAnimatedEmojiStickers() || getMessageCaption(selectedObject, selectedObjectGroup) != null) && !noforwardsOrPaidMedia && !message.isExpiredStory()) { - items.add(LocaleController.getString("Copy", R.string.Copy)); + items.add(LocaleController.getString(R.string.Copy)); options.add(OPTION_COPY); icons.add(R.drawable.msg_copy); } - items.add(LocaleController.getString("CancelSending", R.string.CancelSending)); + items.add(LocaleController.getString(R.string.CancelSending)); options.add(OPTION_CANCEL_SENDING); icons.add(R.drawable.msg_delete); } else if (type == 0) { - items.add(LocaleController.getString("Retry", R.string.Retry)); + items.add(LocaleController.getString(R.string.Retry)); options.add(OPTION_RETRY); icons.add(R.drawable.msg_retry); items.add(LocaleController.getString(chatMode == MODE_SAVED && threadMessageId != getUserConfig().getClientUserId() ? R.string.Remove : R.string.Delete)); @@ -29188,7 +29226,7 @@ public void setAutoDeleteHistory(int time, int action) { } else if (type == 1) { if (currentChat != null) { if (allowChatActions && !isInsideContainer) { - items.add(LocaleController.getString("Reply", R.string.Reply)); + items.add(LocaleController.getString(R.string.Reply)); options.add(OPTION_REPLY); icons.add(R.drawable.menu_reply); } @@ -29198,26 +29236,26 @@ public void setAutoDeleteHistory(int time, int action) { icons.add(R.drawable.msg_viewreplies); } if (selectedObject != null && selectedObject.messageOwner != null && selectedObject.messageOwner.action == null && currentChat != null && currentChat.forum && !isTopic && selectedObject.messageOwner != null && selectedObject.messageOwner.reply_to != null && selectedObject.messageOwner.reply_to.forum_topic) { - items.add(LocaleController.getString("ViewInTopic", R.string.ViewInTopic)); + items.add(LocaleController.getString(R.string.ViewInTopic)); options.add(OPTION_VIEW_IN_TOPIC); icons.add(R.drawable.msg_viewintopic); } if (allowUnpin) { - items.add(LocaleController.getString("UnpinMessage", R.string.UnpinMessage)); + items.add(LocaleController.getString(R.string.UnpinMessage)); options.add(OPTION_UNPIN); icons.add(R.drawable.msg_unpin); } else if (allowPin) { - items.add(LocaleController.getString("PinMessage", R.string.PinMessage)); + items.add(LocaleController.getString(R.string.PinMessage)); options.add(OPTION_PIN); icons.add(R.drawable.msg_pin); } // if (selectedObject != null && selectedObject.contentType == 0 && (messageTextToTranslate != null && messageTextToTranslate.length() > 0 && !selectedObject.isAnimatedEmoji() && !selectedObject.isDice())) { -// items.add(LocaleController.getString("TranslateMessage", R.string.TranslateMessage)); +// items.add(LocaleController.getString(R.string.TranslateMessage)); // options.add(OPTION_TRANSLATE); // icons.add(R.drawable.msg_translate); // } if (message.canEditMessage(currentChat)) { - items.add(LocaleController.getString("Edit", R.string.Edit)); + items.add(LocaleController.getString(R.string.Edit)); options.add(OPTION_EDIT); icons.add(R.drawable.msg_edit); } @@ -29233,14 +29271,14 @@ public void setAutoDeleteHistory(int time, int action) { // } if (NekoConfig.showReport.Bool()) { 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)); + items.add(LocaleController.getString(R.string.ReportChat)); options.add(OPTION_REPORT_CHAT); icons.add(R.drawable.msg_report); } } } else { if (selectedObject.getId() > 0 && allowChatActions && !isInsideContainer) { - items.add(LocaleController.getString("Reply", R.string.Reply)); + items.add(LocaleController.getString(R.string.Reply)); options.add(OPTION_REPLY); icons.add(R.drawable.menu_reply); } @@ -29251,11 +29289,11 @@ public void setAutoDeleteHistory(int time, int action) { icons.add(selectedObject.messageOwner.ttl_period != 0 ? R.drawable.msg_delete_auto : R.drawable.msg_delete); } } else if (type == 20) { - items.add(LocaleController.getString("Retry", R.string.Retry)); + items.add(LocaleController.getString(R.string.Retry)); options.add(OPTION_RETRY); icons.add(R.drawable.msg_retry); if (!noforwardsOrPaidMedia) { - items.add(LocaleController.getString("Copy", R.string.Copy)); + items.add(LocaleController.getString(R.string.Copy)); options.add(OPTION_COPY); icons.add(R.drawable.msg_copy); } @@ -29265,28 +29303,28 @@ public void setAutoDeleteHistory(int time, int action) { } else { if (currentEncryptedChat == null) { if (chatMode == MODE_SCHEDULED) { - items.add(LocaleController.getString("MessageScheduleSend", R.string.MessageScheduleSend)); + items.add(LocaleController.getString(R.string.MessageScheduleSend)); options.add(OPTION_SEND_NOW); icons.add(R.drawable.msg_send); } if (selectedObject.messageOwner.action instanceof TLRPC.TL_messageActionPhoneCall) { TLRPC.TL_messageActionPhoneCall call = (TLRPC.TL_messageActionPhoneCall) message.messageOwner.action; - items.add((call.reason instanceof TLRPC.TL_phoneCallDiscardReasonMissed || call.reason instanceof TLRPC.TL_phoneCallDiscardReasonBusy) && !message.isOutOwner() ? LocaleController.getString("CallBack", R.string.CallBack) : LocaleController.getString("CallAgain", R.string.CallAgain)); + items.add((call.reason instanceof TLRPC.TL_phoneCallDiscardReasonMissed || call.reason instanceof TLRPC.TL_phoneCallDiscardReasonBusy) && !message.isOutOwner() ? LocaleController.getString(R.string.CallBack) : LocaleController.getString(R.string.CallAgain)); options.add(OPTION_CALL_AGAIN); icons.add(R.drawable.msg_callback); if (VoIPHelper.canRateCall(call)) { - items.add(LocaleController.getString("CallMessageReportProblem", R.string.CallMessageReportProblem)); + items.add(LocaleController.getString(R.string.CallMessageReportProblem)); options.add(OPTION_RATE_CALL); icons.add(R.drawable.msg_fave); } } if ((allowChatActions || !noforwardsOrPaidMedia && ChatObject.isChannelAndNotMegaGroup(currentChat) && !selectedObject.isSponsored() && selectedObject.contentType == 0 && chatMode == MODE_DEFAULT) && !isInsideContainer) { - items.add(LocaleController.getString("Reply", R.string.Reply)); + items.add(LocaleController.getString(R.string.Reply)); options.add(OPTION_REPLY); icons.add(R.drawable.menu_reply); } if ((selectedObject.type == MessageObject.TYPE_TEXT || selectedObject.isDice() || selectedObject.isAnimatedEmoji() || selectedObject.isAnimatedEmojiStickers() || getMessageCaption(selectedObject, selectedObjectGroup) != null) && !noforwardsOrPaidMedia && !selectedObject.sponsoredCanReport) { - items.add(LocaleController.getString("Copy", R.string.Copy)); + items.add(LocaleController.getString(R.string.Copy)); options.add(OPTION_COPY); icons.add(R.drawable.msg_copy); } @@ -29294,7 +29332,7 @@ public void setAutoDeleteHistory(int time, int action) { if (primaryMessage.hasReplies()) { items.add(LocaleController.formatPluralString("ViewReplies", primaryMessage.getRepliesCount())); } else { - items.add(LocaleController.getString("ViewThread", R.string.ViewThread)); + items.add(LocaleController.getString(R.string.ViewThread)); } options.add(OPTION_VIEW_REPLIES_OR_THREAD); icons.add(R.drawable.msg_viewreplies); @@ -29304,7 +29342,7 @@ public void setAutoDeleteHistory(int time, int action) { items.add(LocaleController.getString("ViewInChat", R.string.ViewInChat)); } if (!selectedObject.isSponsored() && chatMode != MODE_SCHEDULED && ChatObject.isChannel(currentChat) && selectedObject.getDialogId() != mergeDialogId) { - items.add(LocaleController.getString("CopyLink", R.string.CopyLink)); + items.add(LocaleController.getString(R.string.CopyLink)); options.add(OPTION_COPY_LINK); icons.add(R.drawable.msg_link); } @@ -29314,7 +29352,7 @@ public void setAutoDeleteHistory(int time, int action) { icons.add(R.drawable.msg_link); } if (selectedObject != null && selectedObject.messageOwner != null && selectedObject.messageOwner.action == null && currentChat != null && currentChat.forum && !isTopic && selectedObject.messageOwner != null && selectedObject.messageOwner.reply_to != null && selectedObject.messageOwner.reply_to.forum_topic) { - items.add(LocaleController.getString("ViewInTopic", R.string.ViewInTopic)); + items.add(LocaleController.getString(R.string.ViewInTopic)); options.add(OPTION_VIEW_IN_TOPIC); icons.add(R.drawable.msg_viewintopic); } @@ -29322,7 +29360,7 @@ public void setAutoDeleteHistory(int time, int action) { if (chatMode != MODE_SCHEDULED) { if (selectedObject.type == MessageObject.TYPE_POLL && !message.isPollClosed()) { if (message.canUnvote()) { - items.add(LocaleController.getString("Unvote", R.string.Unvote)); + items.add(LocaleController.getString(R.string.Unvote)); options.add(OPTION_UNVOTE); icons.add(R.drawable.msg_unvote); } @@ -29330,26 +29368,26 @@ public void setAutoDeleteHistory(int time, int action) { message.isOut() && (!ChatObject.isChannel(currentChat) || currentChat.megagroup) || ChatObject.isChannel(currentChat) && !currentChat.megagroup && (currentChat.creator || currentChat.admin_rights != null && currentChat.admin_rights.edit_messages))) { if (message.isQuiz()) { - items.add(LocaleController.getString("StopQuiz", R.string.StopQuiz)); + items.add(LocaleController.getString(R.string.StopQuiz)); } else { - items.add(LocaleController.getString("StopPoll", R.string.StopPoll)); + items.add(LocaleController.getString(R.string.StopPoll)); } options.add(OPTION_STOP_POLL_OR_QUIZ); icons.add(R.drawable.msg_pollstop); } } else if (selectedObject.isMusic() && !noforwardsOrPaidMedia) { - items.add(LocaleController.getString("SaveToMusic", R.string.SaveToMusic)); + items.add(LocaleController.getString(R.string.SaveToMusic)); options.add(OPTION_SAVE_TO_DOWNLOADS_OR_MUSIC); icons.add(R.drawable.msg_download); } else if (selectedObject.isDocument() && !noforwardsOrPaidMedia) { - items.add(LocaleController.getString("SaveToDownloads", R.string.SaveToDownloads)); + items.add(LocaleController.getString(R.string.SaveToDownloads)); options.add(OPTION_SAVE_TO_DOWNLOADS_OR_MUSIC); icons.add(R.drawable.msg_download); } } } else if (type == 3 && !noforwardsOrPaidMedia) { if (selectedObject.messageOwner.media instanceof TLRPC.TL_messageMediaWebPage && MessageObject.isNewGifDocument(selectedObject.messageOwner.media.webpage.document)) { - items.add(LocaleController.getString("SaveToGIFs", R.string.SaveToGIFs)); + items.add(LocaleController.getString(R.string.SaveToGIFs)); options.add(OPTION_ADD_TO_GIFS); icons.add(R.drawable.msg_gif); } @@ -29357,35 +29395,35 @@ public void setAutoDeleteHistory(int time, int action) { if (!noforwardsOrPaidMedia && !selectedObject.hasRevealedExtendedMedia()) { if (selectedObject.isVideo()) { if (!selectedObject.needDrawBluredPreview()) { - items.add(LocaleController.getString("SaveToGallery", R.string.SaveToGallery)); + items.add(LocaleController.getString(R.string.SaveToGallery)); options.add(OPTION_SAVE_TO_GALLERY); icons.add(R.drawable.msg_gallery); - items.add(LocaleController.getString("ShareFile", R.string.ShareFile)); + items.add(LocaleController.getString(R.string.ShareFile)); options.add(OPTION_SHARE); icons.add(R.drawable.msg_shareout); } } else if (selectedObject.isMusic()) { - items.add(LocaleController.getString("SaveToMusic", R.string.SaveToMusic)); + items.add(LocaleController.getString(R.string.SaveToMusic)); options.add(OPTION_SAVE_TO_DOWNLOADS_OR_MUSIC); icons.add(R.drawable.msg_download); - items.add(LocaleController.getString("ShareFile", R.string.ShareFile)); + items.add(LocaleController.getString(R.string.ShareFile)); options.add(OPTION_SHARE); icons.add(R.drawable.msg_shareout); } else if (selectedObject.getDocument() != null) { if (MessageObject.isNewGifDocument(selectedObject.getDocument())) { - items.add(LocaleController.getString("SaveToGIFs", R.string.SaveToGIFs)); + items.add(LocaleController.getString(R.string.SaveToGIFs)); options.add(OPTION_ADD_TO_GIFS); icons.add(R.drawable.msg_gif); } - items.add(LocaleController.getString("SaveToDownloads", R.string.SaveToDownloads)); + items.add(LocaleController.getString(R.string.SaveToDownloads)); options.add(OPTION_SAVE_TO_DOWNLOADS_OR_MUSIC); icons.add(R.drawable.msg_download); - items.add(LocaleController.getString("ShareFile", R.string.ShareFile)); + items.add(LocaleController.getString(R.string.ShareFile)); options.add(OPTION_SHARE); icons.add(R.drawable.msg_shareout); } else { if (!selectedObject.needDrawBluredPreview()) { - items.add(LocaleController.getString("SaveToGallery", R.string.SaveToGallery)); + items.add(LocaleController.getString(R.string.SaveToGallery)); options.add(OPTION_SAVE_TO_GALLERY); icons.add(R.drawable.msg_gallery); if (NaConfig.INSTANCE.getShowCopyPhoto().Bool()){ @@ -29400,93 +29438,93 @@ public void setAutoDeleteHistory(int time, int action) { } } } else if (type == 5) { - items.add(LocaleController.getString("ApplyLocalizationFile", R.string.ApplyLocalizationFile)); + items.add(LocaleController.getString(R.string.ApplyLocalizationFile)); options.add(OPTION_APPLY_LOCALIZATION_OR_THEME); icons.add(R.drawable.msg_language); if (!noforwardsOrPaidMedia) { - items.add(LocaleController.getString("SaveToDownloads", R.string.SaveToDownloads)); + items.add(LocaleController.getString(R.string.SaveToDownloads)); options.add(OPTION_SAVE_TO_DOWNLOADS_OR_MUSIC); icons.add(R.drawable.msg_download); - items.add(LocaleController.getString("ShareFile", R.string.ShareFile)); + items.add(LocaleController.getString(R.string.ShareFile)); options.add(OPTION_SHARE); icons.add(R.drawable.msg_shareout); } } else if (type == 10) { - items.add(LocaleController.getString("ApplyThemeFile", R.string.ApplyThemeFile)); + items.add(LocaleController.getString(R.string.ApplyThemeFile)); options.add(OPTION_APPLY_LOCALIZATION_OR_THEME); icons.add(R.drawable.msg_theme); - items.add(LocaleController.getString("SaveToDownloads", R.string.SaveToDownloads)); + items.add(LocaleController.getString(R.string.SaveToDownloads)); options.add(10); icons.add(R.drawable.msg_download); - items.add(LocaleController.getString("ShareFile", R.string.ShareFile)); + items.add(LocaleController.getString(R.string.ShareFile)); options.add(6); icons.add(R.drawable.msg_shareout); } else if (type == 21 || type == 22 || type == 23 || type == 100) { options.add(5); if (type == 21) { - items.add(LocaleController.getString("ImportProxyList", R.string.ImportProxyList)); + items.add(LocaleController.getString(R.string.ImportProxyList)); icons.add(R.drawable.menu_secret); } else if (type == 22) { - items.add(LocaleController.getString("ImportStickersList", R.string.ImportStickersList)); + items.add(LocaleController.getString(R.string.ImportStickersList)); icons.add(R.drawable.msg_sticker); } else if (type == 23) { - items.add(LocaleController.getString("ImportSettings", R.string.ImportSettings)); + items.add(LocaleController.getString(R.string.ImportSettings)); icons.add(R.drawable.menu_secret); } else { - items.add(LocaleController.getString("ApplyEmojiSet", R.string.ApplyEmojiSet)); + items.add(LocaleController.getString(R.string.ApplyEmojiSet)); icons.add(R.drawable.smiles_tab_smiles); } if (!noforwardsOrPaidMedia) { - items.add(LocaleController.getString("SaveToDownloads", R.string.SaveToDownloads)); + items.add(LocaleController.getString(R.string.SaveToDownloads)); options.add(OPTION_SAVE_TO_DOWNLOADS_OR_MUSIC); icons.add(R.drawable.msg_download); - items.add(LocaleController.getString("ShareFile", R.string.ShareFile)); + items.add(LocaleController.getString(R.string.ShareFile)); options.add(OPTION_SHARE); icons.add(R.drawable.msg_shareout); } } else if (type == 6 && !noforwardsOrPaidMedia && !selectedObject.hasRevealedExtendedMedia()) { if (!selectedObject.needDrawBluredPreview()) { - items.add(LocaleController.getString("SaveToGallery", R.string.SaveToGallery)); + items.add(LocaleController.getString(R.string.SaveToGallery)); options.add(OPTION_SAVE_TO_GALLERY2); icons.add(R.drawable.msg_gallery); - items.add(LocaleController.getString("SaveToDownloads", R.string.SaveToDownloads)); + items.add(LocaleController.getString(R.string.SaveToDownloads)); options.add(OPTION_SAVE_TO_DOWNLOADS_OR_MUSIC); icons.add(R.drawable.msg_download); - items.add(LocaleController.getString("ShareFile", R.string.ShareFile)); + items.add(LocaleController.getString(R.string.ShareFile)); options.add(OPTION_SHARE); icons.add(R.drawable.msg_shareout); } } else if (type == 7) { if (selectedObject.isMask()) { - items.add(LocaleController.getString("AddToMasks", R.string.AddToMasks)); + items.add(LocaleController.getString(R.string.AddToMasks)); options.add(OPTION_ADD_TO_STICKERS_OR_MASKS); icons.add(R.drawable.msg_sticker); } else { if (!selectedObject.isAnimatedSticker()) { - items.add(LocaleController.getString("SaveToGallery", R.string.SaveToGallery)); + items.add(LocaleController.getString(R.string.SaveToGallery)); options.add(nkbtn_stickerdl); icons.add(R.drawable.msg_gallery); if (NaConfig.INSTANCE.getShowCopyPhoto().Bool()) { - items.add(LocaleController.getString("CopyPhotoAsSticker", R.string.CopyPhotoAsSticker)); + items.add(LocaleController.getString(R.string.CopyPhotoAsSticker)); icons.add(R.drawable.msg_copy); options.add(nkbtn_sticker_copy); - items.add(LocaleController.getString("CopyPhoto", R.string.CopyPhoto)); + items.add(LocaleController.getString(R.string.CopyPhoto)); icons.add(R.drawable.msg_copy); options.add(nkbtn_sticker_copy_png); } } - items.add(LocaleController.getString("AddToStickers", R.string.AddToStickers)); + items.add(LocaleController.getString(R.string.AddToStickers)); options.add(OPTION_ADD_TO_STICKERS_OR_MASKS); icons.add(R.drawable.msg_sticker); TLRPC.Document document = selectedObject.getDocument(); if (!getMediaDataController().isStickerInFavorites(document)) { if (getMediaDataController().canAddStickerToFavorites()) { - items.add(LocaleController.getString("AddToFavorites", R.string.AddToFavorites)); + items.add(LocaleController.getString(R.string.AddToFavorites)); options.add(OPTION_ADD_STICKER_TO_FAVORITES); icons.add(R.drawable.msg_fave); } } else { - items.add(LocaleController.getString("DeleteFromFavorites", R.string.DeleteFromFavorites)); + items.add(LocaleController.getString(R.string.DeleteFromFavorites)); options.add(OPTION_DELETE_STICKER_FROM_FAVORITES); icons.add(R.drawable.msg_unfave); } @@ -29498,17 +29536,17 @@ public void setAutoDeleteHistory(int time, int action) { user = MessagesController.getInstance(currentAccount).getUser(uid); } if (user != null && user.id != getUserConfig().getClientUserId() && getContactsController().contactsDict.get(user.id) == null) { - items.add(LocaleController.getString("AddContactTitle", R.string.AddContactTitle)); + items.add(LocaleController.getString(R.string.AddContactTitle)); options.add(OPTION_ADD_CONTACT); icons.add(R.drawable.msg_addcontact); } if (!TextUtils.isEmpty(selectedObject.messageOwner.media.phone_number)) { if (!noforwardsOrPaidMedia) { - items.add(LocaleController.getString("Copy", R.string.Copy)); + items.add(LocaleController.getString(R.string.Copy)); options.add(OPTION_COPY_PHONE_NUMBER); icons.add(R.drawable.msg_copy); } - items.add(LocaleController.getString("Call", R.string.Call)); + items.add(LocaleController.getString(R.string.Call)); options.add(OPTION_CALL); icons.add(R.drawable.msg_callback); } @@ -29521,12 +29559,12 @@ public void setAutoDeleteHistory(int time, int action) { TLRPC.Document document = selectedObject.getDocument(); if (!getMediaDataController().isStickerInFavorites(document)) { if (getMediaDataController().canAddStickerToFavorites()) { - items.add(LocaleController.getString("AddToFavorites", R.string.AddToFavorites)); + items.add(LocaleController.getString(R.string.AddToFavorites)); options.add(OPTION_ADD_STICKER_TO_FAVORITES); icons.add(R.drawable.msg_fave); } } else { - items.add(LocaleController.getString("DeleteFromFavorites", R.string.DeleteFromFavorites)); + items.add(LocaleController.getString(R.string.DeleteFromFavorites)); options.add(OPTION_DELETE_STICKER_FROM_FAVORITES); icons.add(R.drawable.msg_unfave); } @@ -29537,7 +29575,7 @@ public void setAutoDeleteHistory(int time, int action) { !selectedObject.isLiveLocation() && selectedObject.type != MessageObject.TYPE_PHONE_CALL && !noforwards && selectedObject.type != MessageObject.TYPE_GIFT_PREMIUM && selectedObject.type != MessageObject.TYPE_GIFT_PREMIUM_CHANNEL && selectedObject.type != MessageObject.TYPE_SUGGEST_PHOTO && !selectedObject.isWallpaperAction() && !message.isExpiredStory() && message.type != MessageObject.TYPE_STORY_MENTION && message.type != MessageObject.TYPE_GIFT_STARS) { - items.add(LocaleController.getString("Forward", R.string.Forward)); + items.add(LocaleController.getString(R.string.Forward)); options.add(OPTION_FORWARD); icons.add(R.drawable.msg_forward); } @@ -29667,26 +29705,26 @@ public void setAutoDeleteHistory(int time, int action) { } } if (canViewStats) { - items.add(LocaleController.getString("ViewStats", R.string.ViewStats)); + items.add(LocaleController.getString(R.string.ViewStatistics)); options.add(OPTION_STATISTICS); icons.add(R.drawable.msg_stats); } if (allowUnpin) { - items.add(LocaleController.getString("UnpinMessage", R.string.UnpinMessage)); + items.add(LocaleController.getString(R.string.UnpinMessage)); options.add(OPTION_UNPIN); icons.add(R.drawable.msg_unpin); } else if (allowPin) { - items.add(LocaleController.getString("PinMessage", R.string.PinMessage)); + items.add(LocaleController.getString(R.string.PinMessage)); options.add(OPTION_PIN); icons.add(R.drawable.msg_pin); } // if (selectedObject != null && selectedObject.contentType == 0 && (messageTextToTranslate != null && messageTextToTranslate.length() > 0 && !selectedObject.isAnimatedEmoji() && !selectedObject.isDice())) { -// items.add(LocaleController.getString("TranslateMessage", R.string.TranslateMessage)); +// items.add(LocaleController.getString(R.string.TranslateMessage)); // options.add(OPTION_TRANSLATE); // icons.add(R.drawable.msg_translate); // } if (allowEdit) { - items.add(LocaleController.getString("Edit", R.string.Edit)); + items.add(LocaleController.getString(R.string.Edit)); options.add(OPTION_EDIT); icons.add(R.drawable.msg_edit); } @@ -29696,7 +29734,7 @@ public void setAutoDeleteHistory(int time, int action) { // icons.add(R.drawable.menu_feature_paid); // } if (chatMode == MODE_SCHEDULED && selectedObject.canEditMessageScheduleTime(currentChat)) { - items.add(LocaleController.getString("MessageScheduleEditTime", R.string.MessageScheduleEditTime)); + items.add(LocaleController.getString(R.string.MessageScheduleEditTime)); options.add(OPTION_EDIT_SCHEDULE_TIME); icons.add(R.drawable.msg_calendar2); } @@ -29708,13 +29746,11 @@ public void setAutoDeleteHistory(int time, int action) { } if (chatMode != MODE_SCHEDULED && selectedObject.contentType == 0 && selectedObject.getId() > 0 && !selectedObject.isOut() && (currentChat != null || currentUser != null && currentUser.bot)) { if (UserObject.isReplyUser(currentUser)) { - items.add(LocaleController.getString("BlockContact", R.string.BlockContact)); - + items.add(LocaleController.getString(R.string.BlockContact)); options.add(OPTION_REPORT_CHAT); icons.add(R.drawable.msg_block2); } else if (NekoConfig.showReport.Bool()) { - items.add(LocaleController.getString("ReportChat", R.string.ReportChat)); - + items.add(LocaleController.getString(R.string.ReportChat)); options.add(OPTION_REPORT_CHAT); icons.add(R.drawable.msg_report); } @@ -29726,12 +29762,12 @@ public void setAutoDeleteHistory(int time, int action) { } } else { if (allowChatActions && !isInsideContainer) { - items.add(LocaleController.getString("Reply", R.string.Reply)); + items.add(LocaleController.getString(R.string.Reply)); options.add(OPTION_REPLY); icons.add(R.drawable.menu_reply); } if ((selectedObject.type == MessageObject.TYPE_TEXT || selectedObject.isAnimatedEmoji() || selectedObject.isAnimatedEmojiStickers() || getMessageCaption(selectedObject, selectedObjectGroup) != null) && !noforwardsOrPaidMedia) { - items.add(LocaleController.getString("Copy", R.string.Copy)); + items.add(LocaleController.getString(R.string.Copy)); options.add(OPTION_COPY); icons.add(R.drawable.msg_copy); } @@ -29739,7 +29775,7 @@ public void setAutoDeleteHistory(int time, int action) { if (primaryMessage.hasReplies()) { items.add(LocaleController.formatPluralString("ViewReplies", primaryMessage.getRepliesCount())); } else { - items.add(LocaleController.getString("ViewThread", R.string.ViewThread)); + items.add(LocaleController.getString(R.string.ViewThread)); } options.add(OPTION_VIEW_REPLIES_OR_THREAD); icons.add(R.drawable.msg_viewreplies); @@ -29749,34 +29785,34 @@ public void setAutoDeleteHistory(int time, int action) { items.add(LocaleController.getString("ViewInChat", R.string.ViewInChat)); } if (selectedObject != null && selectedObject.messageOwner != null && selectedObject.messageOwner.action == null && currentChat != null && currentChat.forum && !isTopic && selectedObject.messageOwner != null && selectedObject.messageOwner.reply_to != null && selectedObject.messageOwner.reply_to.forum_topic) { - items.add(LocaleController.getString("ViewInTopic", R.string.ViewInTopic)); + items.add(LocaleController.getString(R.string.ViewInTopic)); options.add(OPTION_VIEW_IN_TOPIC); icons.add(R.drawable.msg_viewintopic); } if (type == 4 && !noforwardsOrPaidMedia && !selectedObject.hasRevealedExtendedMedia() && !selectedObject.needDrawBluredPreview()) { if (selectedObject.isVideo()) { - items.add(LocaleController.getString("SaveToGallery", R.string.SaveToGallery)); + items.add(LocaleController.getString(R.string.SaveToGallery)); options.add(OPTION_SAVE_TO_GALLERY); icons.add(R.drawable.msg_gallery); - items.add(LocaleController.getString("ShareFile", R.string.ShareFile)); + items.add(LocaleController.getString(R.string.ShareFile)); options.add(OPTION_SHARE); icons.add(R.drawable.msg_shareout); } else if (selectedObject.isMusic()) { - items.add(LocaleController.getString("SaveToMusic", R.string.SaveToMusic)); + items.add(LocaleController.getString(R.string.SaveToMusic)); options.add(OPTION_SAVE_TO_DOWNLOADS_OR_MUSIC); icons.add(R.drawable.msg_download); - items.add(LocaleController.getString("ShareFile", R.string.ShareFile)); + items.add(LocaleController.getString(R.string.ShareFile)); options.add(OPTION_SHARE); icons.add(R.drawable.msg_shareout); } else if (!selectedObject.isVideo() && selectedObject.getDocument() != null) { - items.add(LocaleController.getString("SaveToDownloads", R.string.SaveToDownloads)); + items.add(LocaleController.getString(R.string.SaveToDownloads)); options.add(OPTION_SAVE_TO_DOWNLOADS_OR_MUSIC); icons.add(R.drawable.msg_download); - items.add(LocaleController.getString("ShareFile", R.string.ShareFile)); + items.add(LocaleController.getString(R.string.ShareFile)); options.add(OPTION_SHARE); icons.add(R.drawable.msg_shareout); } else { - items.add(LocaleController.getString("SaveToGallery", R.string.SaveToGallery)); + items.add(LocaleController.getString(R.string.SaveToGallery)); options.add(OPTION_SAVE_TO_GALLERY); icons.add(R.drawable.msg_gallery); if (NaConfig.INSTANCE.getShowCopyPhoto().Bool()){ @@ -29789,11 +29825,11 @@ public void setAutoDeleteHistory(int time, int action) { } } } else if (type == 5) { - items.add(LocaleController.getString("ApplyLocalizationFile", R.string.ApplyLocalizationFile)); + items.add(LocaleController.getString(R.string.ApplyLocalizationFile)); options.add(OPTION_APPLY_LOCALIZATION_OR_THEME); icons.add(R.drawable.msg_language); } else if (type == 10) { - items.add(LocaleController.getString("ApplyThemeFile", R.string.ApplyThemeFile)); + items.add(LocaleController.getString(R.string.ApplyThemeFile)); options.add(OPTION_APPLY_LOCALIZATION_OR_THEME); icons.add(R.drawable.msg_theme); } else if (type == 21) { @@ -29801,7 +29837,7 @@ public void setAutoDeleteHistory(int time, int action) { options.add(5); icons.add(R.drawable.msg2_proxy_on); } else if (type == 7) { - items.add(LocaleController.getString("AddToStickers", R.string.AddToStickers)); + items.add(LocaleController.getString(R.string.AddToStickers)); options.add(OPTION_ADD_TO_STICKERS_OR_MASKS); icons.add(R.drawable.msg_sticker); } else if (type == 8) { @@ -29811,17 +29847,17 @@ public void setAutoDeleteHistory(int time, int action) { user = MessagesController.getInstance(currentAccount).getUser(uid); } if (user != null && user.id != getUserConfig().getClientUserId() && getContactsController().contactsDict.get(user.id) == null) { - items.add(LocaleController.getString("AddContactTitle", R.string.AddContactTitle)); + items.add(LocaleController.getString(R.string.AddContactTitle)); options.add(OPTION_ADD_CONTACT); icons.add(R.drawable.msg_addcontact); } if (!TextUtils.isEmpty(selectedObject.messageOwner.media.phone_number)) { if (!noforwardsOrPaidMedia) { - items.add(LocaleController.getString("Copy", R.string.Copy)); + items.add(LocaleController.getString(R.string.Copy)); options.add(OPTION_COPY_PHONE_NUMBER); icons.add(R.drawable.msg_copy); } - items.add(LocaleController.getString("Call", R.string.Call)); + items.add(LocaleController.getString(R.string.Call)); options.add(OPTION_CALL); icons.add(R.drawable.msg_callback); } @@ -29922,6 +29958,25 @@ public void setAutoDeleteHistory(int time, int action) { } } + if (selectedObject != null && selectedObject.isHiddenSensitive() && !selectedObject.isMediaSpoilersRevealed) { + for (int i = 0; i < options.size(); ++i) { + final int option = options.get(i); + switch (option) { + case OPTION_SAVE_TO_GALLERY: + case OPTION_SAVE_TO_GALLERY2: + case OPTION_SAVE_TO_DOWNLOADS_OR_MUSIC: + case OPTION_SHARE: + case OPTION_FORWARD: + case OPTION_REPLY: + options.remove(i); + items.remove(i); + icons.remove(i); + i--; + break; + } + } + } + if (options.isEmpty() && optionsView == null) { return false; } @@ -29940,17 +29995,17 @@ public void setAutoDeleteHistory(int time, int action) { List availableReacts = getMediaDataController().getEnabledReactionsList(); boolean nekoXShowReactionsView = (NaConfig.INSTANCE.getShowReactions().Bool() || onDoubleTapped); // Show reactions and hide them from tap - boolean isReactionsViewAvailable = nekoXShowReactionsView && !isSecretChat() && !isInScheduleMode() && currentUser == null && message.hasReactions() && (!ChatObject.isChannel(currentChat) || currentChat.megagroup) && !availableReacts.isEmpty() && message.messageOwner.reactions.can_see_list && !message.isSecretMedia(); + boolean isReactionsViewAvailable = nekoXShowReactionsView && !isSecretChat() && !isInScheduleMode() && currentUser == null && primaryMessage.hasReactions() && (!ChatObject.isChannel(currentChat) || currentChat.megagroup) && !availableReacts.isEmpty() && primaryMessage.messageOwner.reactions.can_see_list && !primaryMessage.isSecretMedia(); boolean isReactionsAvailable; if (message.isForwardedChannelPost()) { TLRPC.ChatFull chatInfo = getMessagesController().getChatFull(-message.getFromChatId()); if (chatInfo == null) { isReactionsAvailable = true; } else { - isReactionsAvailable = nekoXShowReactionsView && !isSecretChat() && chatMode != MODE_QUICK_REPLIES && !isInScheduleMode() && message.isReactionsAvailable() && (chatInfo != null && (!(chatInfo.available_reactions instanceof TLRPC.TL_chatReactionsNone) || chatInfo.paid_reactions_available)) && !availableReacts.isEmpty(); + isReactionsAvailable = nekoXShowReactionsView && !isSecretChat() && chatMode != MODE_QUICK_REPLIES && !isInScheduleMode() && primaryMessage.isReactionsAvailable() && (chatInfo != null && (!(chatInfo.available_reactions instanceof TLRPC.TL_chatReactionsNone) || chatInfo.paid_reactions_available)) && !availableReacts.isEmpty(); } } else { - isReactionsAvailable = nekoXShowReactionsView && !message.isSecretMedia() && chatMode != MODE_QUICK_REPLIES && !isSecretChat() && !isInScheduleMode() && message.isReactionsAvailable() && (chatInfo != null && (!(chatInfo.available_reactions instanceof TLRPC.TL_chatReactionsNone) || chatInfo.paid_reactions_available) || (chatInfo == null && !ChatObject.isChannel(currentChat)) || currentUser != null) && !availableReacts.isEmpty(); + isReactionsAvailable = nekoXShowReactionsView && !message.isSecretMedia() && chatMode != MODE_QUICK_REPLIES && !isSecretChat() && !isInScheduleMode() && primaryMessage.isReactionsAvailable() && (chatInfo != null && (!(chatInfo.available_reactions instanceof TLRPC.TL_chatReactionsNone) || chatInfo.paid_reactions_available) || (chatInfo == null && !ChatObject.isChannel(currentChat)) || currentUser != null) && !availableReacts.isEmpty(); } 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); boolean showPrivateMessageSeen = !isReactionsViewAvailable && currentChat == null && currentEncryptedChat == null && (currentUser != null && !UserObject.isUserSelf(currentUser) && !UserObject.isReplyUser(currentUser) && !UserObject.isAnonymous(currentUser) && !currentUser.bot && !UserObject.isService(currentUser.id)) && (userInfo == null || !userInfo.read_dates_private) && !isInScheduleMode() && message.isOutOwner() && message.isSent() && !message.isEditing() && !message.isSending() && !message.isSendError() && !message.isContentUnread() && !message.isUnread() && (ConnectionsManager.getInstance(currentAccount).getCurrentTime() - message.messageOwner.date < getMessagesController().pmReadDateExpirePeriod) && !(message.messageOwner.action instanceof TLRPC.TL_messageActionChatJoinedByRequest) && (v instanceof ChatMessageCell); @@ -29977,22 +30032,22 @@ public void setAutoDeleteHistory(int time, int action) { if (optionsView == null) { if (isReactionsViewAvailable) { - ReactedHeaderView reactedView = new ReactedHeaderView(contentView.getContext(), currentAccount, message, dialog_id); + ReactedHeaderView reactedView = new ReactedHeaderView(contentView.getContext(), currentAccount, primaryMessage, dialog_id); int count = 0; - if (message.messageOwner.reactions != null) { - for (TLRPC.ReactionCount r : message.messageOwner.reactions.results) { + if (primaryMessage.messageOwner.reactions != null) { + for (TLRPC.ReactionCount r : primaryMessage.messageOwner.reactions.results) { count += r.count; } } - boolean hasHeader = count > 10 && message.messageOwner.reactions.results.size() > 1; + boolean hasHeader = count > 10 && primaryMessage.messageOwner.reactions.results.size() > 1; ReactedUsersListView.ContainerLinerLayout linearLayout = new ReactedUsersListView.ContainerLinerLayout(contentView.getContext()); linearLayout.hasHeader = hasHeader; linearLayout.setOrientation(LinearLayout.VERTICAL); linearLayout.setLayoutParams(new FrameLayout.LayoutParams(AndroidUtilities.dp(200), AndroidUtilities.dp(6 * ReactedUsersListView.ITEM_HEIGHT_DP + (hasHeader ? 44 * 2 + 8 : 44)) + (!hasHeader ? 1 : 0))); ActionBarMenuSubItem backCell = new ActionBarMenuSubItem(getParentActivity(), true, false, themeDelegate); backCell.setItemHeight(44); - backCell.setTextAndIcon(LocaleController.getString("Back", R.string.Back), R.drawable.msg_arrow_back); + backCell.setTextAndIcon(LocaleController.getString(R.string.Back), R.drawable.msg_arrow_back); backCell.getTextView().setPadding(LocaleController.isRTL ? 0 : AndroidUtilities.dp(40), 0, LocaleController.isRTL ? AndroidUtilities.dp(40) : 0, 0); backCell.setOnClickListener(v1 -> popupLayout.getSwipeBack().closeForeground()); linearLayout.addView(backCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -30000,7 +30055,7 @@ public void setAutoDeleteHistory(int time, int action) { int[] foregroundIndex = new int[1]; ReactedUsersListView reactedUsersListView = null; if (hasHeader) { - List counters = message.messageOwner.reactions.results; + List counters = primaryMessage.messageOwner.reactions.results; LinearLayout tabsView = new LinearLayout(contentView.getContext()); tabsView.setOrientation(LinearLayout.HORIZONTAL); ViewPager pager = new ViewPager(contentView.getContext()); @@ -30104,7 +30159,7 @@ public void dismiss() { } else { args.putLong("chat_id", -userId); } - args.putInt("report_reaction_message_id", message.getId()); + args.putInt("report_reaction_message_id", primaryMessage.getId()); args.putLong("report_reaction_from_dialog_id", dialog_id); ProfileActivity fragment = new ProfileActivity(args); presentFragment(fragment); @@ -30171,7 +30226,7 @@ public void onPageScrollStateChanged(int state) { } else { linearLayout.addView(new ActionBarPopupWindow.GapView(contentView.getContext(), themeDelegate), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 8)); - reactedUsersListView = new ReactedUsersListView(contentView.getContext(), themeDelegate, currentAccount, message, null, false, true) + reactedUsersListView = new ReactedUsersListView(contentView.getContext(), themeDelegate, currentAccount, primaryMessage, null, false, true) .setSeenUsers(reactedView.getSeenUsers()) .setOnCustomEmojiSelectedListener((reactedUsersListView1, customEmojiStickerSets) -> { EmojiPacksAlert alert = new EmojiPacksAlert(ChatActivity.this, getParentActivity(), themeDelegate, customEmojiStickerSets) { @@ -30193,7 +30248,7 @@ public void dismiss() { } else { args.putLong("chat_id", -userId); } - args.putInt("report_reaction_message_id", message.getId()); + args.putInt("report_reaction_message_id", primaryMessage.getId()); args.putLong("report_reaction_from_dialog_id", dialog_id); ProfileActivity fragment = new ProfileActivity(args); presentFragment(fragment); @@ -30223,7 +30278,7 @@ public void dismiss() { ActionBarMenuSubItem cell = new ActionBarMenuSubItem(getParentActivity(), true, false, themeDelegate); cell.setItemHeight(44); - cell.setTextAndIcon(LocaleController.getString("Back", R.string.Back), R.drawable.msg_arrow_back); + cell.setTextAndIcon(LocaleController.getString(R.string.Back), R.drawable.msg_arrow_back); cell.getTextView().setPadding(LocaleController.isRTL ? 0 : AndroidUtilities.dp(40), 0, LocaleController.isRTL ? AndroidUtilities.dp(40) : 0, 0); FrameLayout backContainer = new FrameLayout(contentView.getContext()); @@ -30268,7 +30323,7 @@ public void onClick(View view) { } if (!NaConfig.INSTANCE.getHideMessageSeenTooltip().Bool() && 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 = BulletinFactory.of(Bulletin.BulletinWindow.make(getContext()), themeDelegate).createErrorBulletin(AndroidUtilities.replaceTags(LocaleController.getString(R.string.MessageSeenTooltipMessage))); messageSeenPrivacyBulletin.setDuration(4000); messageSeenPrivacyBulletin.show(); SharedConfig.updateMessageSeenHintCount(SharedConfig.messageSeenHintCount - 1); @@ -30314,7 +30369,7 @@ public void onClick(View view) { if (!showRateTranscription && message.probablyRingtone() && currentEncryptedChat == null) { ActionBarMenuSubItem cell = new ActionBarMenuSubItem(getParentActivity(), true, false, themeDelegate); cell.setMinimumWidth(AndroidUtilities.dp(200)); - cell.setTextAndIcon(LocaleController.getString("SaveForNotifications", R.string.SaveForNotifications), R.drawable.msg_tone_add); + cell.setTextAndIcon(LocaleController.getString(R.string.SaveForNotifications), R.drawable.msg_tone_add); popupLayout.addView(cell); cell.setOnClickListener(v1 -> { if (getMediaDataController().saveToRingtones(message.getDocument())) { @@ -30360,7 +30415,7 @@ public void run() { TextView textView = new TextView(contentView.getContext()); textView.setTextColor(getThemedColor(Theme.key_windowBackgroundWhiteGrayText)); textView.setGravity(Gravity.CENTER_HORIZONTAL); - textView.setText(LocaleController.getString("RateTranscription", R.string.RateTranscription)); + textView.setText(LocaleController.getString(R.string.RateTranscription)); rateTranscription.addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP, 0, 12, 0, 0)); @@ -30416,7 +30471,7 @@ public void run() { getMessagesStorage().updateMessageVoiceTranscriptionOpen(selectedObject.getDialogId(), selectedObject.getId(), selectedObject.messageOwner); AndroidUtilities.runOnUIThread(() -> { closeMenu(); - BulletinFactory.of(ChatActivity.this).createSimpleBulletin(R.raw.chats_infotip, LocaleController.getString("TranscriptionReportSent", R.string.TranscriptionReportSent)).show(); + BulletinFactory.of(ChatActivity.this).createSimpleBulletin(R.raw.chats_infotip, LocaleController.getString(R.string.TranscriptionReportSent)).show(); }, progressShown[0] > 0 ? Math.max(0, 300 - (SystemClock.elapsedRealtime() - progressShown[0])) : 0); }); AndroidUtilities.runOnUIThread(showProgress, 150); @@ -30444,7 +30499,7 @@ public void run() { ActionBarMenuSubItem backCell = new ActionBarMenuSubItem(getParentActivity(), true, false, themeDelegate); backCell.setItemHeight(44); - backCell.setTextAndIcon(LocaleController.getString("Back", R.string.Back), R.drawable.msg_arrow_back); + backCell.setTextAndIcon(LocaleController.getString(R.string.Back), R.drawable.msg_arrow_back); backCell.getTextView().setPadding(LocaleController.isRTL ? 0 : AndroidUtilities.dp(40), 0, LocaleController.isRTL ? AndroidUtilities.dp(40) : 0, 0); backCell.setOnClickListener(v1 -> popupLayout.getSwipeBack().closeForeground()); linearLayout.addView(backCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -30467,7 +30522,7 @@ public void run() { return; } logSponsoredClicked(selectedObject); - Browser.openUrl(getContext(), selectedObject.sponsoredUrl, true, false); + Browser.openUrl(getContext(), Uri.parse(selectedObject.sponsoredUrl), true, false, false, null, null, false, getMessagesController().sponsoredLinksInappAllow); }); textView.setOnLongClickListener(e -> { if (selectedObject == null) { @@ -30491,7 +30546,7 @@ public void run() { textView.setBackground(Theme.createRadSelectorDrawable(getThemedColor(Theme.key_dialogButtonSelector), 0, selectedObject.sponsoredAdditionalInfo == null ? 6 : 0)); textView.setOnClickListener(e -> { if (AndroidUtilities.addToClipboard(selectedObject.sponsoredInfo)) { - BulletinFactory.of(Bulletin.BulletinWindow.make(getParentActivity()), themeDelegate).createCopyBulletin(LocaleController.getString("TextCopied", R.string.TextCopied)).show(); + BulletinFactory.of(Bulletin.BulletinWindow.make(getParentActivity()), themeDelegate).createCopyBulletin(LocaleController.getString(R.string.TextCopied)).show(); } }); sections.add(textView); @@ -30507,7 +30562,7 @@ public void run() { textView.setBackground(Theme.createRadSelectorDrawable(getThemedColor(Theme.key_dialogButtonSelector), 0, 6)); textView.setOnClickListener(e -> { if (AndroidUtilities.addToClipboard(selectedObject.sponsoredAdditionalInfo)) { - BulletinFactory.of(Bulletin.BulletinWindow.make(getParentActivity()), themeDelegate).createCopyBulletin(LocaleController.getString("TextCopied", R.string.TextCopied)).show(); + BulletinFactory.of(Bulletin.BulletinWindow.make(getParentActivity()), themeDelegate).createCopyBulletin(LocaleController.getString(R.string.TextCopied)).show(); } }); sections.add(textView); @@ -30576,7 +30631,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { infoText.setTextColor(getThemedColor(Theme.key_actionBarDefaultSubmenuItem)); infoText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); infoText.setMaxWidth(AndroidUtilities.dp(240)); - infoText.setText(LocaleController.getString("SponsoredMessageInfo", R.string.SponsoredMessageInfo)); + infoText.setText(LocaleController.getString(R.string.SponsoredMessageInfo)); infoText.setPadding(LocaleController.isRTL ? 0 : AndroidUtilities.dp(43), 0, LocaleController.isRTL ? AndroidUtilities.dp(43) : 0, 0); sponsoredAbout.addView(infoText, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL)); @@ -30767,10 +30822,10 @@ public void onSwipeBackProgress(PopupSwipeBackLayout layout, float toProgress, f tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); tv.setTextColor(getThemedColor(Theme.key_actionBarDefaultSubmenuItem)); if (getMessagesController().isChatNoForwards(currentChat)) { - tv.setText(isChannel ? LocaleController.getString("ForwardsRestrictedInfoChannel", R.string.ForwardsRestrictedInfoChannel) : - LocaleController.getString("ForwardsRestrictedInfoGroup", R.string.ForwardsRestrictedInfoGroup)); + tv.setText(isChannel ? LocaleController.getString(R.string.ForwardsRestrictedInfoChannel) : + LocaleController.getString(R.string.ForwardsRestrictedInfoGroup)); } else { - tv.setText(LocaleController.getString("ForwardsRestrictedInfoBot", R.string.ForwardsRestrictedInfoBot)); + tv.setText(LocaleController.getString(R.string.ForwardsRestrictedInfoBot)); } tv.setMaxWidth(popupLayout.getMeasuredWidth() - AndroidUtilities.dp(38)); @@ -31067,7 +31122,6 @@ private void createEmptyView(boolean recreate) { emptyViewContainer.removeAllViews(); } - int distance = getArguments().getInt("nearby_distance", -1); if (chatAdapter.isFiltered) { emptyView = new TextView(getContext()); emptyView.setText(LocaleController.getString(R.string.NoFilteredMessages)); @@ -31086,8 +31140,8 @@ private void createEmptyView(boolean recreate) { businessLinksEmptyView = new BusinessLinksEmptyView(getContext(), this, businessLink, getResourceProvider()); businessLinksEmptyView.setBackground(Theme.createServiceDrawable(AndroidUtilities.dp(16), businessLinksEmptyView, contentView, getThemedPaint(Theme.key_paint_chatActionBackground))); emptyViewContainer.addView(businessLinksEmptyView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); - } else if ((distance >= 0 || preloadedGreetingsSticker != null) && currentUser != null && !userBlocked || userInfo != null && getDialogId() != getUserConfig().getClientUserId() && userInfo.contact_require_premium && !getUserConfig().isPremium()) { - greetingsViewContainer = new ChatGreetingsView(getContext(), currentUser, distance, currentAccount, preloadedGreetingsSticker, themeDelegate) { + } else if (preloadedGreetingsSticker != null && currentUser != null && !userBlocked || userInfo != null && getDialogId() != getUserConfig().getClientUserId() && userInfo.contact_require_premium && !getUserConfig().isPremium()) { + greetingsViewContainer = new ChatGreetingsView(getContext(), currentUser, currentAccount, preloadedGreetingsSticker, themeDelegate) { @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); @@ -31118,7 +31172,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { bigEmptyView = new ChatBigEmptyView(getContext(), contentView, currentChat != null ? ChatBigEmptyView.EMPTY_VIEW_TYPE_GROUP : ChatBigEmptyView.EMPTY_VIEW_TYPE_SAVED, themeDelegate); emptyViewContainer.addView(bigEmptyView, new FrameLayout.LayoutParams(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); if (currentChat != null) { - bigEmptyView.setStatusText(AndroidUtilities.replaceTags(LocaleController.getString("GroupEmptyTitle1", R.string.GroupEmptyTitle1))); + bigEmptyView.setStatusText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.GroupEmptyTitle1))); } } else { String emptyMessage = null; @@ -31136,7 +31190,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { emptyMessage = LocaleController.getString(R.string.NoMessages); } if (emptyMessage == null) { - greetingsViewContainer = new ChatGreetingsView(getContext(), currentUser, distance, currentAccount, preloadedGreetingsSticker, themeDelegate) { + greetingsViewContainer = new ChatGreetingsView(getContext(), currentUser, currentAccount, preloadedGreetingsSticker, themeDelegate) { @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); @@ -31314,8 +31368,15 @@ public void selectReaction(ChatMessageCell cell, MessageObject primaryMessage, R if (primaryMessage != null && primaryMessage.messageOwner != null && primaryMessage.messageOwner.reactions != null) { reactors = primaryMessage.messageOwner.reactions.top_reactors; } + final long chatId = -StarsController.MessageId.from(primaryMessage).did; + final TLRPC.ChatFull chatFull = getMessagesController().getChatFull(chatId); + if (chatFull != null && !chatFull.paid_reactions_available && !(reactors != null && !reactors.isEmpty())) { + final TLRPC.Chat chat = getMessagesController().getChat(chatId); + BulletinFactory.of(this).createSimpleBulletin(R.raw.stars_topup, AndroidUtilities.replaceTags(LocaleController.formatString(R.string.StarsReactionsDisabled, (chat != null ? chat.title : "")))).show(true); + return; + } StarsController.getInstance(currentAccount).commitPaidReaction(); - StarsReactionsSheet sheet = new StarsReactionsSheet(getContext(), currentAccount, dialog_id, ChatActivity.this, primaryMessage, reactors, themeDelegate); + final StarsReactionsSheet sheet = new StarsReactionsSheet(getContext(), currentAccount, dialog_id, ChatActivity.this, primaryMessage, reactors, chatFull == null || chatFull.paid_reactions_available, themeDelegate); sheet.setMessageCell(ChatActivity.this, primaryMessage.getId(), cell); sheet.show(); return; @@ -31325,6 +31386,13 @@ public void selectReaction(ChatMessageCell cell, MessageObject primaryMessage, R fragmentView.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); } catch (Exception ignore) {} } + final long chatId = -StarsController.MessageId.from(primaryMessage).did; + final TLRPC.ChatFull chatFull = getMessagesController().getChatFull(chatId); + if (chatFull != null && !chatFull.paid_reactions_available) { + final TLRPC.Chat chat = getMessagesController().getChat(chatId); + BulletinFactory.of(this).createSimpleBulletin(R.raw.stars_topup, AndroidUtilities.replaceTags(LocaleController.formatString(R.string.StarsReactionsDisabled, (chat != null ? chat.title : "")))).show(true); + return; + } StarsController.PendingPaidReactions pending = StarsController.getInstance(currentAccount).sendPaidReaction(primaryMessage, ChatActivity.this, +1, true, true, null); if (pending != null && cell != null) { StarReactionsOverlay overlay = getStarReactionsOverlay(); @@ -31524,9 +31592,9 @@ private void startEditingMessageObject(MessageObject messageObject) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); - builder.setMessage(LocaleController.getString("EditMessageError", R.string.EditMessageError)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setTitle(LocaleController.getString(R.string.NekoX)); + builder.setMessage(LocaleController.getString(R.string.EditMessageError)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); showDialog(builder.create()); if (chatActivityEnterView != null) { @@ -31844,9 +31912,9 @@ private void processSelectedOption(int option) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); - builder.setMessage(LocaleController.getString("IncorrectTheme", R.string.IncorrectTheme)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setTitle(LocaleController.getString(R.string.NekoX)); + builder.setMessage(LocaleController.getString(R.string.IncorrectTheme)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); preserveDim = true; builder.setDimEnabled(false); builder.setOnPreDismissListener(di -> dimBehindView(false)); @@ -31863,9 +31931,9 @@ private void processSelectedOption(int option) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); - builder.setMessage(LocaleController.getString("IncorrectLocalization", R.string.IncorrectLocalization)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setTitle(LocaleController.getString(R.string.NekoX)); + builder.setMessage(LocaleController.getString(R.string.IncorrectLocalization)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); preserveDim = true; builder.setDimEnabled(false); builder.setOnPreDismissListener(di -> dimBehindView(false)); @@ -31968,7 +32036,7 @@ private void processSelectedOption(int option) { intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f)); } try { - getParentActivity().startActivityForResult(Intent.createChooser(intent, LocaleController.getString("ShareFile", R.string.ShareFile)), 500); + getParentActivity().startActivityForResult(Intent.createChooser(intent, LocaleController.getString(R.string.ShareFile)), 500); } catch (Throwable ignore) { } @@ -32135,7 +32203,7 @@ private void processSelectedOption(int option) { mid = selectedObject.getId(); } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); - builder.setTitle(LocaleController.getString("PinMessageAlertTitle", R.string.PinMessageAlertTitle)); + builder.setTitle(LocaleController.getString(R.string.PinMessageAlertTitle)); preserveDim = true; builder.setDimAlpha(.5f); builder.setOnPreDismissListener(di -> dimBehindView(false)); @@ -32143,9 +32211,9 @@ private void processSelectedOption(int option) { final boolean[] checks; if (currentUser != null) { if (currentPinnedMessageId != 0 && mid < currentPinnedMessageId) { - builder.setMessage(LocaleController.getString("PinOldMessageAlert", R.string.PinOldMessageAlert)); + builder.setMessage(LocaleController.getString(R.string.PinOldMessageAlert)); } else { - builder.setMessage(LocaleController.getString("PinMessageAlertChat", R.string.PinMessageAlertChat)); + builder.setMessage(LocaleController.getString(R.string.PinMessageAlertChat)); } checks = new boolean[]{false, false}; if (!UserObject.isUserSelf(currentUser)) { @@ -32165,19 +32233,19 @@ private void processSelectedOption(int option) { } } else if (ChatObject.isChannel(currentChat) && currentChat.megagroup || currentChat != null && !ChatObject.isChannel(currentChat)) { if (!pinnedMessageIds.isEmpty() && mid < pinnedMessageIds.get(0)) { - builder.setMessage(LocaleController.getString("PinOldMessageAlert", R.string.PinOldMessageAlert)); + builder.setMessage(LocaleController.getString(R.string.PinOldMessageAlert)); checks = new boolean[]{false, true}; } else { if (isTopic) { - builder.setMessage(LocaleController.getString("PinMessageInTopicAlert", R.string.PinMessageInTopicAlert)); + builder.setMessage(LocaleController.getString(R.string.PinMessageInTopicAlert)); } else { - builder.setMessage(LocaleController.getString("PinMessageAlert", R.string.PinMessageAlert)); + builder.setMessage(LocaleController.getString(R.string.PinMessageAlert)); } checks = new boolean[]{true, true}; FrameLayout frameLayout = new FrameLayout(getParentActivity()); CheckBoxCell cell = new CheckBoxCell(getParentActivity(), 1, themeDelegate); cell.setBackgroundDrawable(Theme.getSelectorDrawable(false)); - cell.setText(LocaleController.getString("PinNotify", R.string.PinNotify), "", true, false); + cell.setText(LocaleController.getString(R.string.PinNotify), "", true, false); cell.setPadding(AndroidUtilities.dp(LocaleController.isRTL ? 16 : 8), 0, AndroidUtilities.dp(LocaleController.isRTL ? 8 : 16), 0); frameLayout.addView(cell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.TOP | Gravity.LEFT)); cell.setOnClickListener(v -> { @@ -32190,13 +32258,13 @@ private void processSelectedOption(int option) { } } else { if (currentPinnedMessageId != 0 && mid < currentPinnedMessageId) { - builder.setMessage(LocaleController.getString("PinOldMessageAlert", R.string.PinOldMessageAlert)); + builder.setMessage(LocaleController.getString(R.string.PinOldMessageAlert)); } else { - builder.setMessage(LocaleController.getString("PinMessageAlertChannel", R.string.PinMessageAlertChannel)); + builder.setMessage(LocaleController.getString(R.string.PinMessageAlertChannel)); } checks = new boolean[]{false, true}; } - builder.setPositiveButton(LocaleController.getString("PinMessage", R.string.PinMessage), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.PinMessage), (dialogInterface, i) -> { getMessagesController().pinMessage(currentChat, currentUser, mid, false, !checks[1], checks[0]); Bulletin bulletin = BulletinFactory.createPinMessageBulletin(this, themeDelegate); bulletin.show(); @@ -32206,7 +32274,7 @@ private void processSelectedOption(int option) { view.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); }, 550); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); break; } @@ -32345,13 +32413,13 @@ private void processSelectedOption(int option) { builder.setDimEnabled(false); builder.setOnPreDismissListener(di -> dimBehindView(false)); if (object.isQuiz()) { - builder.setTitle(LocaleController.getString("StopQuizAlertTitle", R.string.StopQuizAlertTitle)); - builder.setMessage(LocaleController.getString("StopQuizAlertText", R.string.StopQuizAlertText)); + builder.setTitle(LocaleController.getString(R.string.StopQuizAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.StopQuizAlertText)); } else { - builder.setTitle(LocaleController.getString("StopPollAlertTitle", R.string.StopPollAlertTitle)); - builder.setMessage(LocaleController.getString("StopPollAlertText", R.string.StopPollAlertText)); + builder.setTitle(LocaleController.getString(R.string.StopPollAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.StopPollAlertText)); } - builder.setPositiveButton(LocaleController.getString("Stop", R.string.Stop), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Stop), (dialogInterface, i) -> { final AlertDialog[] progressDialog = new AlertDialog[]{new AlertDialog(getParentActivity(), AlertDialog.ALERT_TYPE_SPINNER, themeDelegate)}; TLRPC.TL_messages_editMessage req = new TLRPC.TL_messages_editMessage(); TLRPC.TL_messageMediaPoll mediaPoll = (TLRPC.TL_messageMediaPoll) object.messageOwner.media; @@ -32388,7 +32456,7 @@ private void processSelectedOption(int option) { showDialog(progressDialog[0]); }, 500); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); break; } @@ -32435,9 +32503,9 @@ private void processSelectedOption(int option) { } else if (error.text != null) { AndroidUtilities.runOnUIThread(() -> { if (error.text.startsWith("SLOWMODE_WAIT_")) { - AlertsCreator.showSimpleToast(ChatActivity.this, LocaleController.getString("SlowmodeSendError", R.string.SlowmodeSendError)); + AlertsCreator.showSimpleToast(ChatActivity.this, LocaleController.getString(R.string.SlowmodeSendError)); } else if (error.text.equals("CHAT_SEND_MEDIA_FORBIDDEN")) { - AlertsCreator.showSimpleToast(ChatActivity.this, LocaleController.getString("AttachMediaRestrictedForever", R.string.AttachMediaRestrictedForever)); + AlertsCreator.showSimpleToast(ChatActivity.this, LocaleController.getString(R.string.AttachMediaRestrictedForever)); } else { AlertsCreator.showSimpleToast(ChatActivity.this, error.text); } @@ -32506,7 +32574,7 @@ public void onReported() { BulletinFactory.of(ChatActivity.this) .createAdReportedBulletin( AndroidUtilities.replaceSingleTag( - LocaleController.getString("AdReported", R.string.AdReported), + LocaleController.getString(R.string.AdReported), -1, AndroidUtilities.REPLACING_TAG_TYPE_LINKBOLD, () -> Browser.openUrl(getContext(), "https://promote.telegram.org/guidelines"), @@ -32523,7 +32591,7 @@ public void onReported() { public void onHidden() { AndroidUtilities.runOnUIThread(() -> { BulletinFactory.of(ChatActivity.this) - .createAdReportedBulletin(LocaleController.getString("AdHidden", R.string.AdHidden)) + .createAdReportedBulletin(LocaleController.getString(R.string.AdHidden)) .show(); removeFromSponsored(message); removeMessageWithThanos(message); @@ -32542,7 +32610,7 @@ public void onPremiumRequired() { BulletinFactory.of(ChatActivity.this) .createAdReportedBulletin( AndroidUtilities.replaceSingleTag( - LocaleController.getString("AdReported", R.string.AdReported), + LocaleController.getString(R.string.AdReported), -1, AndroidUtilities.REPLACING_TAG_TYPE_LINKBOLD, () -> Browser.openUrl(getContext(), "https://promote.telegram.org/guidelines"), @@ -32568,7 +32636,7 @@ public void onPremiumRequired() { BulletinFactory.of(ChatActivity.this) .createAdReportedBulletin( AndroidUtilities.replaceSingleTag( - LocaleController.getString("AdReported", R.string.AdReported), + LocaleController.getString(R.string.AdReported), -1, AndroidUtilities.REPLACING_TAG_TYPE_LINKBOLD, () -> Browser.openUrl(getContext(), "https://promote.telegram.org/guidelines"), @@ -32677,7 +32745,7 @@ private void hideAds() { } @Override - public boolean didSelectDialogs(DialogsActivity fragment, ArrayList dids, CharSequence message, boolean param, TopicsFragment topicsFragment) { + public boolean didSelectDialogs(DialogsActivity fragment, ArrayList dids, CharSequence message, boolean param, boolean notify, int scheduleDate, TopicsFragment topicsFragment) { if ((messagePreviewParams == null && (!fragment.isQuote || replyingMessageObject == null) || fragment.isQuote && replyingMessageObject == null) && forwardingMessage == null && selectedMessagesIds[0].size() == 0 && selectedMessagesIds[1].size() == 0) { return false; } @@ -32730,20 +32798,20 @@ public boolean didSelectDialogs(DialogsActivity fragment, ArrayList 1 || dids.get(0).dialogId == getUserConfig().getClientUserId() || message != null)) { + if (!fragment.isQuote && (dids.size() > 1 || dids.get(0).dialogId == getUserConfig().getClientUserId() || message != null || scheduleDate != 0 || !notify)) { messagePreviewParams = null; hideFieldPanel(false); for (int a = 0; a < dids.size(); a++) { long did = dids.get(a).dialogId; if (message != null && !NekoConfig.sendCommentAfterForward.Bool()) { - SendMessagesHelper.SendMessageParams params = SendMessagesHelper.SendMessageParams.of(message.toString(), did, null, null, null, true, null, null, null, true, 0, null, false); + SendMessagesHelper.SendMessageParams params = SendMessagesHelper.SendMessageParams.of(message.toString(), did, null, null, null, true, null, null, null, notify, scheduleDate, null, false); params.quick_reply_shortcut = quickReplyShortcut; params.quick_reply_shortcut_id = getQuickReplyId(); getSendMessagesHelper().sendMessage(params); } - forwardMessages(fmessages, noForwardQuote, true, 0, did); + forwardMessages(fmessages, noForwardQuote, notify, scheduleDate, did); if (message != null && NekoConfig.sendCommentAfterForward.Bool()) { - SendMessagesHelper.SendMessageParams params = SendMessagesHelper.SendMessageParams.of(message.toString(), did, null, null, null, true, null, null, null, true, 0, null, false); + SendMessagesHelper.SendMessageParams params = SendMessagesHelper.SendMessageParams.of(message.toString(), did, null, null, null, true, null, null, null, notify, scheduleDate, null, false); params.quick_reply_shortcut = quickReplyShortcut; params.quick_reply_shortcut_id = getQuickReplyId(); getSendMessagesHelper().sendMessage(params); @@ -32811,7 +32879,7 @@ public boolean didSelectDialogs(DialogsActivity fragment, ArrayList { + builder.setPositiveButton(LocaleController.getString(R.string.DiscardVoiceMessageAction), (dialog, which) -> { if (chatActivityEnterView != null) { if (forceCloseOnDiscard) { finishFragment(); @@ -32873,7 +32941,7 @@ public boolean checkRecordLocked(boolean forceCloseOnDiscard) { } } }); - builder.setNegativeButton(LocaleController.getString("Continue", R.string.Continue), null); + builder.setNegativeButton(LocaleController.getString(R.string.Continue), null); showDialog(builder.create()); return true; } @@ -33045,6 +33113,7 @@ public void setHighlightMessageId(int id) { public void setHighlightQuote(int id, String quote, int quote_offset) { highlightMessageId = id; highlightMessageQuoteFirst = true; + highlightMessageQuoteFirstTime = 0; highlightMessageQuote = quote; highlightMessageQuoteOffset = quote_offset; showNoQuoteAlert = true; @@ -33099,6 +33168,7 @@ private void updateVisibleRows(boolean suppressUpdateMessageObject) { boolean selected = false; if (actionBar.isActionModeShowed() || reportType >= 0) { highlightMessageQuoteFirst = false; + highlightMessageQuoteFirstTime = 0; highlightMessageQuote = null; cell.setCheckBoxVisible(threadMessageObjects == null || !threadMessageObjects.contains(messageObject), true); int idx = messageObject.getDialogId() == dialog_id ? 0 : 1; @@ -33130,9 +33200,13 @@ private void updateVisibleRows(boolean suppressUpdateMessageObject) { startMessageUnselect(); } if (cell.isHighlighted() && highlightMessageQuote != null) { - if (!cell.setHighlightedText(highlightMessageQuote, true, highlightMessageQuoteOffset, highlightMessageQuoteFirst) && showNoQuoteAlert) { + final long now = System.currentTimeMillis(); + if (!cell.setHighlightedText(highlightMessageQuote, true, highlightMessageQuoteOffset, highlightMessageQuoteFirst || now - highlightMessageQuoteFirstTime < 200) && showNoQuoteAlert) { showNoQuoteFound(); } + if (highlightMessageQuoteFirst) { + highlightMessageQuoteFirstTime = now; + } highlightMessageQuoteFirst = false; showNoQuoteAlert = false; } else if (chatMode == MODE_SEARCH && searchingHashtag != null && searchingQuery != null) { @@ -33245,10 +33319,10 @@ private void alertUserOpenError(MessageObject message) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setTitle(LocaleController.getString(R.string.NekoX)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); if (message.type == MessageObject.TYPE_VIDEO) { - builder.setMessage(LocaleController.getString("NoPlayerInstalled", R.string.NoPlayerInstalled)); + builder.setMessage(LocaleController.getString(R.string.NoPlayerInstalled)); } else { builder.setMessage(LocaleController.formatString("NoHandleAppInstalled", R.string.NoHandleAppInstalled, message.getDocument().mime_type)); } @@ -33713,7 +33787,7 @@ public void showOpenGameAlert(final TLRPC.TL_game game, final MessageObject mess TLRPC.User user = getMessagesController().getUser(uid); if (ask) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); + builder.setTitle(LocaleController.getString(R.string.NekoX)); String name; if (user != null) { name = ContactsController.formatName(user.first_name, user.last_name); @@ -33721,11 +33795,11 @@ public void showOpenGameAlert(final TLRPC.TL_game game, final MessageObject mess name = ""; } builder.setMessage(LocaleController.formatString("BotPermissionGameAlert", R.string.BotPermissionGameAlert, name)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> { showOpenGameAlert(game, messageObject, urlStr, false, uid); MessagesController.getNotificationsSettings(currentAccount).edit().putBoolean("askgame_" + uid, false).apply(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); } else { String username = UserObject.getPublicUsername(user); @@ -33860,7 +33934,7 @@ public void didReceivedNotification(int id, int account, Object... args) { openOriginalReplyChat(fallbackMessage); } else { if (getParentActivity() != null) { - BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("ChannelPostDeleted", R.string.ChannelPostDeleted), themeDelegate).show(); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.ChannelPostDeleted), themeDelegate).show(); } } } @@ -33953,7 +34027,7 @@ private void openDiscussionMessageChat(long chatId, MessageObject originalMessag savedHistory = (TLRPC.messages_Messages) response2; } else { if ("CHANNEL_PRIVATE".equals(error2.text)) { - MessagesController.showCantOpenAlert(this, LocaleController.getString("ChannelCantOpenBannedByAdmin", R.string.ChannelCantOpenBannedByAdmin)); + MessagesController.showCantOpenAlert(this, LocaleController.getString(R.string.ChannelCantOpenBannedByAdmin)); commentLoadingMessageId = 0; hideCommentLoading = false; chatListView.invalidateViews(); @@ -34014,8 +34088,8 @@ public void showRequestUrlAlert(final TLRPC.TL_urlAuthResultRequest request, TLR return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), themeDelegate); - builder.setTitle(LocaleController.getString("OpenUrlTitle", R.string.OpenUrlTitle)); - String format = LocaleController.getString("OpenUrlAlert2", R.string.OpenUrlAlert2); + builder.setTitle(LocaleController.getString(R.string.OpenUrlTitle)); + String format = LocaleController.getString(R.string.OpenUrlAlert2); int index = format.indexOf("%"); SpannableStringBuilder stringBuilder = new SpannableStringBuilder(String.format(format, url)); if (index >= 0) { @@ -34023,7 +34097,7 @@ public void showRequestUrlAlert(final TLRPC.TL_urlAuthResultRequest request, TLR } builder.setMessage(stringBuilder); builder.setMessageTextViewClickable(false); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); CheckBoxCell[] cells = new CheckBoxCell[2]; LinearLayout linearLayout = new LinearLayout(getParentActivity()); @@ -34063,7 +34137,7 @@ public void showRequestUrlAlert(final TLRPC.TL_urlAuthResultRequest request, TLR }); } builder.setView(linearLayout); - builder.setPositiveButton(LocaleController.getString("Open", R.string.Open), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Open), (dialogInterface, i) -> { if (!cells[0].isChecked()) { Browser.openUrl(getParentActivity(), url, false); } else { @@ -34218,10 +34292,10 @@ private void openClickableLink(CharacterStyle url, String str, boolean longPress final int finalTimestamp = timestamp; // boolean noforwards = getMessagesController().isChatNoForwards(currentChat) || (messageObject != null && messageObject.messageOwner != null && messageObject.messageOwner.noforwards); CharSequence[] items = new CharSequence[]{ - LocaleController.getString("Open", R.string.Open), - LocaleController.getString("Copy", R.string.Copy), - LocaleController.getString("ShareQRCode", R.string.ShareQRCode), - LocaleController.getString("ShareMessages", R.string.ShareMessages) + LocaleController.getString(R.string.Open), + LocaleController.getString(R.string.Copy), + LocaleController.getString(R.string.ShareQRCode), + LocaleController.getString(R.string.ShareMessages) }; // builder.setItems(noforwards ? new CharSequence[] {LocaleController.getString("Open", R.string.Open)} : new CharSequence[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy)}, (dialog, which) -> { builder.setItems(items, (dialog, which) -> { @@ -34542,6 +34616,9 @@ private void didPressMessageUrl(CharacterStyle url, boolean longPress, MessageOb String str = ((URLSpanNoUnderline) url).getURL(); if (str != null && str.startsWith("tel:")) { didPressPhoneNumber(cell, url, str.substring(4)); + if (longPress && cell != null) { + cell.resetPressedLink(-1); + } } else if (messageObject != null && str.startsWith("/")) { if (URLSpanBotCommand.enabled) { chatActivityEnterView.setCommand(messageObject, str, longPress, currentChat != null && currentChat.megagroup); @@ -35082,8 +35159,8 @@ public void sendButtonPressed(int index, VideoEditedInfo videoEditedInfo, boolea PhotoUtilities.applyPhotoToUser(message.messageOwner.action.photo, user, false); getUserConfig().setCurrentUser(user); getUserConfig().saveConfig(true); - CharSequence title = AndroidUtilities.replaceTags(LocaleController.getString("ApplyAvatarHintTitle", R.string.ApplyAvatarHintTitle)); - CharSequence subtitle = AndroidUtilities.replaceSingleTag(LocaleController.getString("ApplyAvatarHint", R.string.ApplyAvatarHint), () -> { + CharSequence title = AndroidUtilities.replaceTags(LocaleController.getString(R.string.ApplyAvatarHintTitle)); + CharSequence subtitle = AndroidUtilities.replaceSingleTag(LocaleController.getString(R.string.ApplyAvatarHint), () -> { Bundle args = new Bundle(); args.putLong("user_id", UserConfig.getInstance(currentAccount).clientUserId); presentFragment(new ProfileActivity(args)); @@ -35111,13 +35188,13 @@ public void sendButtonPressed(int index, VideoEditedInfo videoEditedInfo, boolea ImageLocation imageLocation = ImageLocation.getForPhoto(videoSize, message.messageOwner.action.photo); PhotoViewer.getInstance().openPhoto(videoSize.location, imageLocation, photoViewerProvider); if (cell.getMessageObject().type == MessageObject.TYPE_SUGGEST_PHOTO) { - PhotoViewer.getInstance().setTitle(LocaleController.getString("SuggestedVideo", R.string.SuggestedVideo)); + PhotoViewer.getInstance().setTitle(LocaleController.getString(R.string.SuggestedVideo)); } } else if (photoSize != null) { ImageLocation imageLocation = ImageLocation.getForPhoto(photoSize, message.messageOwner.action.photo); PhotoViewer.getInstance().openPhoto(photoSize.location, imageLocation, photoViewerProvider); if (cell.getMessageObject().type == MessageObject.TYPE_SUGGEST_PHOTO) { - PhotoViewer.getInstance().setTitle(LocaleController.getString("SuggestedPhoto", R.string.SuggestedPhoto)); + PhotoViewer.getInstance().setTitle(LocaleController.getString(R.string.SuggestedPhoto)); } } else { PhotoViewer.getInstance().openPhoto(message, null, 0, 0, 0, photoViewerProvider); @@ -35212,7 +35289,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (position == botInfoRow || position == botInfoEmptyRow) { BotHelpCell helpView = (BotHelpCell) holder.itemView; if (UserObject.isReplyUser(currentUser)) { - helpView.setText(false, LocaleController.getString("RepliesChatInfo", R.string.RepliesChatInfo)); + helpView.setText(false, LocaleController.getString(R.string.RepliesChatInfo)); } else { TL_bots.BotInfo mBotInfo = botInfo.size() != 0 ? botInfo.get(currentUser.id) : null; helpView.setText(true, mBotInfo != null ? mBotInfo.description : null, mBotInfo != null ? mBotInfo.description_document != null ? mBotInfo.description_document : mBotInfo.description_photo : null, mBotInfo); @@ -35423,7 +35500,11 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { messageCell.setSpoilersSuppressed(chatListView.getScrollState() != RecyclerView.SCROLL_STATE_IDLE); messageCell.setHighlighted(highlightMessageId != Integer.MAX_VALUE && message.getId() == highlightMessageId); if (messageCell.isHighlighted() && highlightMessageQuote != null) { - messageCell.setHighlightedText(highlightMessageQuote, true, highlightMessageQuoteOffset, highlightMessageQuoteFirst); + final long now = System.currentTimeMillis(); + messageCell.setHighlightedText(highlightMessageQuote, true, highlightMessageQuoteOffset, highlightMessageQuoteFirst || now - highlightMessageQuoteFirstTime < 200); + if (highlightMessageQuoteFirst) { + highlightMessageQuoteFirstTime = now; + } highlightMessageQuoteFirst = false; } else if (chatMode == MODE_SEARCH && searchingHashtag != null && searchingQuery != null) { messageCell.setHighlightedText(searchingQuery); @@ -35683,7 +35764,7 @@ public Float get(MessageObject.SendAnimationData object) { actionCell.setSpoilersSuppressed(chatListView.getScrollState() != RecyclerView.SCROLL_STATE_IDLE); } else if (view instanceof ChatUnreadCell) { ChatUnreadCell unreadCell = (ChatUnreadCell) view; - unreadCell.setText(LocaleController.getString("UnreadMessages", R.string.UnreadMessages)); + unreadCell.setText(LocaleController.getString(R.string.UnreadMessages)); if (createUnreadMessageAfterId != 0) { createUnreadMessageAfterId = 0; } @@ -35775,6 +35856,7 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { boolean disableSelection = false; if (actionBar.isActionModeShowed() || reportType >= 0) { highlightMessageQuoteFirst = false; + highlightMessageQuoteFirstTime = 0; highlightMessageQuote = null; messageCell.setCheckBoxVisible(threadMessageObjects == null || !threadMessageObjects.contains(message), false); int idx = message.getDialogId() == dialog_id ? 0 : 1; @@ -35804,10 +35886,14 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { if (!inPreviewMode || !messageCell.isHighlighted()) { messageCell.setHighlighted(highlightMessageId != Integer.MAX_VALUE && (messageCell.getMessageObject().getId() == highlightMessageId || messageCell.getCurrentMessagesGroup() != null && messageCell.getCurrentMessagesGroup().contains(highlightMessageId))); if (messageCell.isHighlighted() && highlightMessageQuote != null) { - if (!messageCell.setHighlightedText(highlightMessageQuote, true, highlightMessageQuoteOffset, highlightMessageQuoteFirst) && showNoQuoteAlert) { + final long now = System.currentTimeMillis(); + if (!messageCell.setHighlightedText(highlightMessageQuote, true, highlightMessageQuoteOffset, highlightMessageQuoteFirst || now - highlightMessageQuoteFirstTime < 200) && showNoQuoteAlert) { showNoQuoteFound(); } showNoQuoteAlert = false; + if (highlightMessageQuoteFirst) { + highlightMessageQuoteFirstTime = now; + } highlightMessageQuoteFirst = false; } if (highlightMessageId != Integer.MAX_VALUE) { @@ -36222,7 +36308,7 @@ public void onSearchCollapse() { searchingUserMessages = null; searchingChatMessages = null; searchingHashtag = null; - searchItem.setSearchFieldHint(isSupportedTags() ? LocaleController.getString("SavedTagSearchHint", R.string.SavedTagSearchHint) : LocaleController.getString("Search", R.string.Search)); + searchItem.setSearchFieldHint(isSupportedTags() ? LocaleController.getString(R.string.SavedTagSearchHint) : LocaleController.getString(R.string.Search)); searchItem.setSearchFieldCaption(null); AndroidUtilities.updateViewVisibilityAnimated(avatarContainer, true, 0.95f, true); if (editTextItem != null && editTextItem.getTag() != null) { @@ -36430,7 +36516,7 @@ public void onTextChanged(EditText editText) { createSearchContainer(); if (searchingForUser) { mentionContainer.getAdapter().searchUsernameOrHashtag("@" + editText.getText().toString(), 0, messages, true, true); - } else if (searchingUserMessages == null && searchingChatMessages == null && searchUserButton != null && TextUtils.equals(editText.getText(), LocaleController.getString("SearchFrom", R.string.SearchFrom))) { + } else if (searchingUserMessages == null && searchingChatMessages == null && searchUserButton != null && TextUtils.equals(editText.getText(), LocaleController.getString(R.string.SearchFrom))) { searchUserButton.callOnClick(); } if (searchingHashtag != null) { @@ -36460,7 +36546,7 @@ public void onCaptionCleared() { searchingForUser = false; searchItem.setSearchFieldText("", true); } - searchItem.setSearchFieldHint(isSupportedTags() ? LocaleController.getString("SavedTagSearchHint", R.string.SavedTagSearchHint) : LocaleController.getString("Search", R.string.Search)); + searchItem.setSearchFieldHint(isSupportedTags() ? LocaleController.getString(R.string.SavedTagSearchHint) : LocaleController.getString(R.string.Search)); searchCalendarButton.setVisibility(View.VISIBLE); if (searchUserButton != null) { searchUserButton.setVisibility(View.VISIBLE); @@ -36520,7 +36606,7 @@ public void didPressHint(ChatMessageCell cell, int type) { } CharSequence text = LocaleController.getString("PsaMessageInfo_" + messageObject.messageOwner.fwd_from.psa_type); if (TextUtils.isEmpty(text)) { - text = LocaleController.getString("PsaMessageInfoDefault", R.string.PsaMessageInfoDefault); + text = LocaleController.getString(R.string.PsaMessageInfoDefault); } SpannableStringBuilder stringBuilder = new SpannableStringBuilder(text); MessageObject.addLinks(false, stringBuilder); @@ -36866,7 +36952,7 @@ public void didPressChannelAvatar(ChatMessageCell cell, TLRPC.Chat chat, int pos } if (!asForward && chat != null && chat.signature_profiles) { MessageObject msg = cell.getMessageObject(); - if (msg != null) { + if (msg != null && msg.getDialogId() != UserObject.REPLY_BOT) { long did = DialogObject.getPeerDialogId(msg.messageOwner.from_id); openUserProfile(did); return; @@ -37308,7 +37394,8 @@ public void didPressReaction(ChatMessageCell cell, TLRPC.ReactionCount reaction, reactors = messageObject.messageOwner.reactions.top_reactors; } StarsController.getInstance(currentAccount).commitPaidReaction(); - StarsReactionsSheet sheet = new StarsReactionsSheet(getContext(), currentAccount, dialog_id, ChatActivity.this, messageObject, reactors, themeDelegate); + TLRPC.ChatFull chatFull = getMessagesController().getChatFull(-StarsController.MessageId.from(messageObject).did); + final StarsReactionsSheet sheet = new StarsReactionsSheet(getContext(), currentAccount, dialog_id, ChatActivity.this, messageObject, reactors, chatFull == null || chatFull.paid_reactions_available, themeDelegate); sheet.setMessageCell(ChatActivity.this, messageObject.getId(), findMessageCell(messageObject.getId(), true)); sheet.show(); return; @@ -37363,7 +37450,7 @@ protected void dispatchDraw(Canvas canvas) { shadowDrawable2.getPadding(backgroundPaddings); scrimPopupContainerLayout.setBackground(shadowDrawable2); - MessageObject messageObject = cell.getMessageObject(); + MessageObject messageObject = cell.getPrimaryMessageObject(); float bottom = cell.reactionsLayoutInBubble.y + button.y + AndroidUtilities.dp(28); float left = cell.reactionsLayoutInBubble.x + button.x; int[] loc = new int[2]; @@ -37407,7 +37494,10 @@ protected void dispatchDraw(Canvas canvas) { popupLayout.addView(removeTag); scrimPopupContainerLayout.addView(popupLayout); } else if (messageObject != null && messageObject.messageOwner != null && messageObject.messageOwner.reactions != null && messageObject.messageOwner.reactions.can_see_list || dialog_id >= 0) { - scrimPopupContainerLayout.addView(new ReactedUsersListView(getParentActivity(), themeDelegate, currentAccount, cell.getPrimaryMessageObject(), reaction, false, false) + if (reaction.reaction instanceof TLRPC.TL_reactionCustomEmoji) { + button.stopAnimation(); + } + scrimPopupContainerLayout.addView(new ReactedUsersListView(getParentActivity(), themeDelegate, currentAccount, messageObject, reaction, false, false) .setOnCustomEmojiSelectedListener((reactedUsersListView1, customEmojiStickerSets) -> { EmojiPacksAlert alert = new EmojiPacksAlert(ChatActivity.this, getParentActivity(), themeDelegate, customEmojiStickerSets) { @Override @@ -37438,6 +37528,7 @@ public void dismiss() { TLRPC.TL_reactionCustomEmoji customEmoji = (TLRPC.TL_reactionCustomEmoji) reaction.reaction; TLRPC.InputStickerSet inputStickerSet = AnimatedEmojiDrawable.getDocumentFetcher(currentAccount).findStickerSet(customEmoji.document_id); if (inputStickerSet != null) { + button.stopAnimation(); ArrayList arr = new ArrayList(); arr.add(inputStickerSet); MessageContainsEmojiButton setButton = new MessageContainsEmojiButton(currentAccount, getContext(), themeDelegate, arr, MessageContainsEmojiButton.SINGLE_REACTION_TYPE); @@ -37854,7 +37945,7 @@ public void end(boolean replaced) { if (!safe && !Browser.isInternalUri(uri, null)) { AlertsCreator.showOpenUrlAlert(ChatActivity.this, url, true, true, true, !safe, progressDialogCurrent, themeDelegate); } else { - Browser.openUrl(getContext(), uri, true, true, false, progressDialogCurrent, null, false); + Browser.openUrl(getContext(), uri, true, true, false, progressDialogCurrent, null, false, true); } } @@ -37867,7 +37958,7 @@ public void didPressReplyMessage(ChatMessageCell cell, int id) { MessageObject messageObject = cell.getMessageObject(); if (messageObject.isReplyToStory() && messageObject.messageOwner.replyStory != null) { if (messageObject.messageOwner.replyStory instanceof TL_stories.TL_storyItemDeleted) { - BulletinFactory.of(ChatActivity.this).createSimpleBulletin(R.raw.story_bomb1, LocaleController.getString("StoryNotFound", R.string.StoryNotFound)).show(); + BulletinFactory.of(ChatActivity.this).createSimpleBulletin(R.raw.story_bomb1, LocaleController.getString(R.string.StoryNotFound)).show(); } else { TL_stories.StoryItem storyItem = messageObject.messageOwner.replyStory; storyItem.dialogId = DialogObject.getPeerDialogId(messageObject.messageOwner.reply_to.peer); @@ -38459,7 +38550,7 @@ public void end(boolean replaced) { if (!TextUtils.isEmpty(phone)) { phone = PhoneFormat.getInstance().format((String) phone); } else { - phone = LocaleController.getString("NumberUnknown", R.string.NumberUnknown); + phone = LocaleController.getString(R.string.NumberUnknown); } } } @@ -38536,7 +38627,7 @@ public void end(boolean replaced) { return; } } - Browser.openUrl(getParentActivity(), Uri.parse(webPage.url), true, true, false, progressDialogCurrent, null, false); + Browser.openUrl(getParentActivity(), Uri.parse(webPage.url), true, true, false, progressDialogCurrent, null, false, true); } else { if (messageObject.isSponsored()) { logSponsoredClicked(messageObject); @@ -38561,7 +38652,7 @@ public void end(boolean replaced) { } } }; - Browser.openUrl(getContext(), Uri.parse(messageObject.sponsoredUrl), true, false, false, progressDialogCurrent, null, false); + Browser.openUrl(getContext(), Uri.parse(messageObject.sponsoredUrl), true, false, false, progressDialogCurrent, null, false, getMessagesController().sponsoredLinksInappAllow); } } else { TLRPC.WebPage webPage = messageObject.getStoryMentionWebpage(); @@ -38605,7 +38696,7 @@ public void end(boolean replaced) { } } }; - Browser.openUrl(getParentActivity(), Uri.parse(webPage.url), true, true, false, progressDialogCurrent, null, false); + Browser.openUrl(getParentActivity(), Uri.parse(webPage.url), true, true, false, progressDialogCurrent, null, false, true); } } } @@ -38659,7 +38750,7 @@ public String getAdminRank(long uid) { } } if (forumTopic != null && forumTopic.from_id != null && (forumTopic.from_id.user_id == uid || forumTopic.from_id.channel_id == uid || forumTopic.from_id.chat_id == uid)) { - return LocaleController.getString("TopicCreator", R.string.TopicCreator); + return LocaleController.getString(R.string.TopicCreator); } return null; } @@ -41775,18 +41866,18 @@ private void checkLeaveChannelButton() { if (ChatObject.isChannel(currentChat) && !currentChat.creator) { if (!ChatObject.isNotInChat(currentChat)) { if (currentChat.megagroup) { - headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_leave, LocaleController.getString("LeaveMegaMenu", R.string.LeaveMegaMenu)); + headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_leave, LocaleController.getString(R.string.LeaveMegaMenu)); } else { - headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_leave, LocaleController.getString("LeaveChannelMenu", R.string.LeaveChannelMenu)); + headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_leave, LocaleController.getString(R.string.LeaveChannelMenu)); } } } else if (!ChatObject.isChannel(currentChat)) { if (currentChat != null) { - headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_leave, LocaleController.getString("DeleteAndExit", R.string.DeleteAndExit)); + headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_leave, LocaleController.getString(R.string.DeleteAndExit)); } else if (currentUser != null && currentUser.bot) { headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_block2, LocaleController.getString(R.string.DeleteAndBlock)).setColors(getThemedColor(Theme.key_text_RedRegular), getThemedColor(Theme.key_text_RedRegular)); } else { - headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_delete, LocaleController.getString("DeleteChatUser", R.string.DeleteChatUser)); + headerItem.lazilyAddSubItem(delete_chat, R.drawable.msg_delete, LocaleController.getString(R.string.DeleteChatUser)); } } } @@ -41937,19 +42028,23 @@ public void didLongPressLink(ChatMessageCell cell, MessageObject messageObject, options.setOnDismiss(dialog::dismissFast); final boolean customTabs = SharedConfig.inappBrowser && !str.startsWith("video?") && !Browser.isInternalUri(Uri.parse(str), null); + final boolean isHashtag = str.startsWith("#") || str.startsWith("$"); + final boolean isMail = str.startsWith("mailto:"); - options.add(R.drawable.msg_openin, getString(customTabs ? R.string.OpenInTelegramBrowser : R.string.Open), () -> { - if (str.startsWith("video?")) { - didPressMessageUrl(span, false, messageObject, cell); - } else if (customTabs) { - Browser.openInTelegramBrowser(getParentActivity(), str, null); - } else { - logSponsoredClicked(messageObject); - openClickableLink(span, str, false, cell, messageObject, false); - } - }); + if (!isMail) { + options.add(R.drawable.msg_openin, getString(customTabs && !isHashtag ? R.string.OpenInTelegramBrowser : R.string.Open), () -> { + if (str.startsWith("video?")) { + didPressMessageUrl(span, false, messageObject, cell); + } else if (customTabs && !isHashtag) { + Browser.openInTelegramBrowser(getParentActivity(), str, null); + } else { + logSponsoredClicked(messageObject); + openClickableLink(span, str, false, cell, messageObject, false); + } + }); + } - if (customTabs) { + if (customTabs && !isHashtag || isMail) { options.add(R.drawable.msg_language, getString(R.string.OpenInSystemBrowser), () -> { Browser.openInExternalBrowser(getParentActivity(), str, false); }); @@ -42014,6 +42109,9 @@ public void didLongPressLink(ChatMessageCell cell, MessageObject messageObject, // AndroidUtilities.addToClipboard(str); } if (isCopy) { + if (isMail) { + urlFinal = urlFinal.substring("mailto:".length()); + } AndroidUtilities.addToClipboard(urlFinal); createUndoView(); if (undoView == null) { @@ -42031,27 +42129,31 @@ public void didLongPressLink(ChatMessageCell cell, MessageObject messageObject, Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("text/plain"); shareIntent.putExtra(Intent.EXTRA_TEXT, urlFinal); - Intent chooserIntent = Intent.createChooser(shareIntent, LocaleController.getString("ShareFile", R.string.ShareFile)); + Intent chooserIntent = Intent.createChooser(shareIntent, LocaleController.getString(R.string.ShareFile)); chooserIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ApplicationLoader.applicationContext.startActivity(chooserIntent); } }; - options.add(R.drawable.msg_copy, getString(R.string.CopyLink), () -> { + options.add(R.drawable.msg_copy, getString(isMail ? R.string.CopyMail : R.string.CopyLink), () -> { run1.run(true); }); // ----- Nagram Hook start ----- - options.add(R.drawable.wallet_qr, getString("ShareQRCode", R.string.ShareQRCode), () -> { + options.add(R.drawable.wallet_qr, getString(R.string.ShareQRCode), () -> { // QRCode ProxyUtil.showQrDialog(getParentActivity(), str); }); - options.add(R.drawable.msg_shareout, getString("ShareMessages", R.string.ShareMessages), () -> { + options.add(R.drawable.msg_shareout, getString(R.string.ShareMessages), () -> { // ShareMessage run1.run(false); }); // ----- Nagram Hook end ----- dialog.setItemOptions(options); - if (span instanceof URLSpanReplacement) { + if (str != null && str.startsWith("mailto:")) { + SpannableString s = new SpannableString(str.substring(7)); + s.setSpan(span, 0, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + dialog.setScrim(cell, span, s); + } else if (span instanceof URLSpanReplacement) { String formattedUrl = ((URLSpanReplacement) span).getURL(); try { try { @@ -42479,4 +42581,18 @@ public float getClipTop() { public float getClipBottom() { return fragmentView.getBottom() - chatListView.getBottom() + ((fragmentTransition == null || (fromPullingDownTransition && !toPullingDownTransition)) && !isInsideContainer ? blurredViewBottomOffset : 0); } + + private void gotChatInfo() { + if (chatInfo != null && chatInfo.paid_reactions_available) { + getMessagesController().arePaidReactionsAnonymous(); + if (!StarsController.getInstance(currentAccount).balanceAvailable()) { + StarsController.getInstance(currentAccount).getBalance(); + } + } + } + + @Override + public boolean allowFinishFragmentInsteadOfRemoveFromStack() { + return !inPreviewMode; + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatEditActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatEditActivity.java index 30efa52eea..26acfd9206 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatEditActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatEditActivity.java @@ -1118,7 +1118,7 @@ public void afterTextChanged(Editable editable) { if (ChatObject.isChannel(currentChat) || currentChat.gigagroup) { logCell = new TextCell(context); - logCell.setTextAndIcon(LocaleController.getString("EventLog", R.string.EventLog), R.drawable.msg_log, false); + logCell.setTextAndIcon(LocaleController.getString(R.string.EventLog), R.drawable.msg_log, false); logCell.setBackground(Theme.getSelectorDrawable(false)); logCell.setOnClickListener(v -> presentFragment(new ChannelAdminLogActivity(currentChat))); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatEditTypeActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatEditTypeActivity.java index d9edd805da..7dac96befb 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatEditTypeActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatEditTypeActivity.java @@ -234,9 +234,9 @@ public void onResume() { AndroidUtilities.requestAdjustResize(getParentActivity(), classGuid); if (textCell2 != null && info != null) { if (info.stickerset != null) { - textCell2.setTextAndValue(LocaleController.getString("GroupStickers", R.string.GroupStickers), info.stickerset.title, false); + textCell2.setTextAndValue(LocaleController.getString(R.string.GroupStickers), info.stickerset.title, false); } else { - textCell2.setText(LocaleController.getString("GroupStickers", R.string.GroupStickers), false); + textCell2.setText(LocaleController.getString(R.string.GroupStickers), false); } } if (info != null) { @@ -278,7 +278,7 @@ public void onItemClick(int id) { Drawable checkmark = context.getResources().getDrawable(R.drawable.ic_ab_done).mutate(); checkmark.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultIcon), PorterDuff.Mode.MULTIPLY)); doneButtonDrawable = new CrossfadeDrawable(checkmark, new CircularProgressDrawable(Theme.getColor(Theme.key_actionBarDefaultIcon))); - doneButton = menu.addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + doneButton = menu.addItemWithWidth(done_button, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); fragmentView = new ScrollView(context) { @Override @@ -311,11 +311,11 @@ public boolean onInterceptTouchEvent(MotionEvent ev) { linearLayout.setOrientation(LinearLayout.VERTICAL); if (isForcePublic) { - actionBar.setTitle(LocaleController.getString("TypeLocationGroup", R.string.TypeLocationGroup)); + actionBar.setTitle(LocaleController.getString(R.string.TypeLocationGroup)); } else if (isChannel) { - actionBar.setTitle(LocaleController.getString("ChannelSettingsTitle", R.string.ChannelSettingsTitle)); + actionBar.setTitle(LocaleController.getString(R.string.ChannelSettingsTitle)); } else { - actionBar.setTitle(LocaleController.getString("GroupSettingsTitle", R.string.GroupSettingsTitle)); + actionBar.setTitle(LocaleController.getString(R.string.GroupSettingsTitle)); } linearLayoutTypeContainer = new LinearLayout(context); @@ -326,18 +326,18 @@ public boolean onInterceptTouchEvent(MotionEvent ev) { headerCell2 = new HeaderCell(context, 23); headerCell2.setHeight(46); if (isChannel) { - headerCell2.setText(LocaleController.getString("ChannelTypeHeader", R.string.ChannelTypeHeader)); + headerCell2.setText(LocaleController.getString(R.string.ChannelTypeHeader)); } else { - headerCell2.setText(LocaleController.getString("GroupTypeHeader", R.string.GroupTypeHeader)); + headerCell2.setText(LocaleController.getString(R.string.GroupTypeHeader)); } linearLayoutTypeContainer.addView(headerCell2); radioButtonCell2 = new RadioButtonCell(context); radioButtonCell2.setBackgroundDrawable(Theme.getSelectorDrawable(false)); if (isChannel) { - radioButtonCell2.setTextAndValueAndCheck(LocaleController.getString("ChannelPrivate", R.string.ChannelPrivate), LocaleController.getString("ChannelPrivateInfo", R.string.ChannelPrivateInfo), false, isPrivate); + radioButtonCell2.setTextAndValueAndCheck(LocaleController.getString(R.string.ChannelPrivate), LocaleController.getString(R.string.ChannelPrivateInfo), false, isPrivate); } else { - radioButtonCell2.setTextAndValueAndCheck(LocaleController.getString("MegaPrivate", R.string.MegaPrivate), LocaleController.getString("MegaPrivateInfo", R.string.MegaPrivateInfo), false, isPrivate); + radioButtonCell2.setTextAndValueAndCheck(LocaleController.getString(R.string.MegaPrivate), LocaleController.getString(R.string.MegaPrivateInfo), false, isPrivate); } linearLayoutTypeContainer.addView(radioButtonCell2, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); radioButtonCell2.setOnClickListener(v -> { @@ -351,9 +351,9 @@ public boolean onInterceptTouchEvent(MotionEvent ev) { radioButtonCell1 = new RadioButtonCell(context); radioButtonCell1.setBackgroundDrawable(Theme.getSelectorDrawable(false)); if (isChannel) { - radioButtonCell1.setTextAndValueAndCheck(LocaleController.getString("ChannelPublic", R.string.ChannelPublic), LocaleController.getString("ChannelPublicInfo", R.string.ChannelPublicInfo), false, !isPrivate); + radioButtonCell1.setTextAndValueAndCheck(LocaleController.getString(R.string.ChannelPublic), LocaleController.getString(R.string.ChannelPublicInfo), false, !isPrivate); } else { - radioButtonCell1.setTextAndValueAndCheck(LocaleController.getString("MegaPublic", R.string.MegaPublic), LocaleController.getString("MegaPublicInfo", R.string.MegaPublicInfo), false, !isPrivate); + radioButtonCell1.setTextAndValueAndCheck(LocaleController.getString(R.string.MegaPublic), LocaleController.getString(R.string.MegaPublicInfo), false, !isPrivate); } linearLayoutTypeContainer.addView(radioButtonCell1, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); radioButtonCell1.setOnClickListener(v -> { @@ -428,7 +428,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { usernameTextView.setSingleLine(true); usernameTextView.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); usernameTextView.setImeOptions(EditorInfo.IME_ACTION_DONE); - usernameTextView.setHint(LocaleController.getString("ChannelUsernamePlaceholder", R.string.ChannelUsernamePlaceholder)); + usernameTextView.setHint(LocaleController.getString(R.string.ChannelUsernamePlaceholder)); usernameTextView.setCursorColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); usernameTextView.setCursorSize(AndroidUtilities.dp(20)); usernameTextView.setCursorWidth(1.5f); @@ -577,7 +577,7 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto manageLinksTextView = new TextCell(context); manageLinksTextView.setBackgroundDrawable(Theme.getSelectorDrawable(true)); - manageLinksTextView.setTextAndIcon(LocaleController.getString("ManageInviteLinks", R.string.ManageInviteLinks), R.drawable.msg_link2, false); + manageLinksTextView.setTextAndIcon(LocaleController.getString(R.string.ManageInviteLinks), R.drawable.msg_link2, false); manageLinksTextView.setOnClickListener(v -> { ManageLinksActivity fragment = new ManageLinksActivity(chatId, 0, 0); fragment.setInfo(info, invite); @@ -598,12 +598,12 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto saveHeaderCell = new HeaderCell(context, 23); saveHeaderCell.setHeight(46); - saveHeaderCell.setText(LocaleController.getString("SavingContentTitle", R.string.SavingContentTitle)); + saveHeaderCell.setText(LocaleController.getString(R.string.SavingContentTitle)); saveHeaderCell.setBackgroundDrawable(Theme.getSelectorDrawable(true)); saveContainer.addView(saveHeaderCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); saveRestrictCell = new TextCheckCell(context); saveRestrictCell.setBackgroundDrawable(Theme.getSelectorDrawable(true)); - saveRestrictCell.setTextAndCheck(LocaleController.getString("RestrictSavingContent", R.string.RestrictSavingContent), isSaveRestricted, false); + saveRestrictCell.setTextAndCheck(LocaleController.getString(R.string.RestrictSavingContent), isSaveRestricted, false); saveRestrictCell.setOnClickListener(v -> { isSaveRestricted = !isSaveRestricted; ((TextCheckCell) v).setChecked(isSaveRestricted); @@ -611,9 +611,9 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto saveContainer.addView(saveRestrictCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); saveRestrictInfoCell = new TextInfoPrivacyCell(context); if (isChannel && !ChatObject.isMegagroup(currentChat)) { - saveRestrictInfoCell.setText(LocaleController.getString("RestrictSavingContentInfoChannel", R.string.RestrictSavingContentInfoChannel)); + saveRestrictInfoCell.setText(LocaleController.getString(R.string.RestrictSavingContentInfoChannel)); } else { - saveRestrictInfoCell.setText(LocaleController.getString("RestrictSavingContentInfoGroup", R.string.RestrictSavingContentInfoGroup)); + saveRestrictInfoCell.setText(LocaleController.getString(R.string.RestrictSavingContentInfoGroup)); } saveContainer.addView(saveRestrictInfoCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -756,9 +756,9 @@ public void onItemClick(View view, int position) { } new AlertDialog.Builder(getContext(), getResourceProvider()) - .setTitle(username.active ? LocaleController.getString("UsernameDeactivateLink", R.string.UsernameDeactivateLink) : LocaleController.getString("UsernameActivateLink", R.string.UsernameActivateLink)) - .setMessage(username.active ? LocaleController.getString("UsernameDeactivateLinkChannelMessage", R.string.UsernameDeactivateLinkChannelMessage) : LocaleController.getString("UsernameActivateLinkChannelMessage", R.string.UsernameActivateLinkChannelMessage)) - .setPositiveButton(username.active ? LocaleController.getString("Hide", R.string.Hide) : LocaleController.getString("Show", R.string.Show), (di, e) -> { + .setTitle(username.active ? LocaleController.getString(R.string.UsernameDeactivateLink) : LocaleController.getString(R.string.UsernameActivateLink)) + .setMessage(username.active ? LocaleController.getString(R.string.UsernameDeactivateLinkChannelMessage) : LocaleController.getString(R.string.UsernameActivateLinkChannelMessage)) + .setPositiveButton(username.active ? LocaleController.getString(R.string.Hide) : LocaleController.getString(R.string.Show), (di, e) -> { if (username.editable) { if (editableUsernameWasActive == null) { editableUsernameWasActive = username.active; @@ -781,9 +781,9 @@ public void onItemClick(View view, int position) { } else if (err != null && "USERNAMES_ACTIVE_TOO_MUCH".equals(err.text)) { AndroidUtilities.runOnUIThread(() -> { new AlertDialog.Builder(getContext(), resourcesProvider) - .setTitle(LocaleController.getString("UsernameActivateErrorTitle", R.string.UsernameActivateErrorTitle)) - .setMessage(LocaleController.getString("UsernameActivateErrorMessage", R.string.UsernameActivateErrorMessage)) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), (d, v) -> { + .setTitle(LocaleController.getString(R.string.UsernameActivateErrorTitle)) + .setMessage(LocaleController.getString(R.string.UsernameActivateErrorMessage)) + .setPositiveButton(LocaleController.getString(R.string.OK), (d, v) -> { toggleUsername(username, wasActive, true); checkDoneButton(); }) @@ -802,7 +802,7 @@ public void onItemClick(View view, int position) { checkDoneButton(); // toggleUsername(username, username.active); }) - .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (di, e) -> { + .setNegativeButton(LocaleController.getString(R.string.Cancel), (di, e) -> { di.dismiss(); }) .show(); @@ -1050,7 +1050,7 @@ public void onBindViewHolder(@NonNull ViewHolder holder, int position) { switch (holder.getItemViewType()) { case VIEW_TYPE_HEADER: ((HeaderCell) holder.itemView).setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite, resourcesProvider)); - ((HeaderCell) holder.itemView).setText(LocaleController.getString("UsernamesChannelHeader", R.string.UsernamesChannelHeader)); + ((HeaderCell) holder.itemView).setText(LocaleController.getString(R.string.UsernamesChannelHeader)); break; case VIEW_TYPE_USERNAME: TLRPC.TL_username username = usernames.get(position - 1); @@ -1063,7 +1063,7 @@ public void onBindViewHolder(@NonNull ViewHolder holder, int position) { } break; case VIEW_TYPE_HELP: - ((TextInfoPrivacyCell) holder.itemView).setText(LocaleController.getString("UsernamesChannelHelp", R.string.UsernamesChannelHelp)); + ((TextInfoPrivacyCell) holder.itemView).setText(LocaleController.getString(R.string.UsernamesChannelHelp)); ((TextInfoPrivacyCell) holder.itemView).setBackgroundDrawable(Theme.getThemedDrawableByKey(getContext(), R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); break; } @@ -1278,14 +1278,14 @@ private void loadAdminedChannels() { AdminedChannelCell cell = (AdminedChannelCell) view.getParent(); final TLRPC.Chat channel = cell.getCurrentChannel(); AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); + builder.setTitle(LocaleController.getString(R.string.AppName)); if (isChannel) { builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("RevokeLinkAlertChannel", R.string.RevokeLinkAlertChannel, getMessagesController().linkPrefix + "/" + ChatObject.getPublicUsername(channel), channel.title))); } else { builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("RevokeLinkAlert", R.string.RevokeLinkAlert, getMessagesController().linkPrefix + "/" + ChatObject.getPublicUsername(channel), channel.title))); } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("RevokeButton", R.string.RevokeButton), (dialogInterface, i) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.RevokeButton), (dialogInterface, i) -> { TLRPC.TL_channels_updateUsername req1 = new TLRPC.TL_channels_updateUsername(); req1.channel = MessagesController.getInputChannel(channel); req1.username = ""; @@ -1317,7 +1317,7 @@ private void updatePrivatePublic() { return; } if (!isPrivate && !canCreatePublic && getUserConfig().isPremium()) { - typeInfoCell.setText(LocaleController.getString("ChangePublicLimitReached", R.string.ChangePublicLimitReached)); + typeInfoCell.setText(LocaleController.getString(R.string.ChangePublicLimitReached)); typeInfoCell.setTag(Theme.key_text_RedRegular); typeInfoCell.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); linkContainer.setVisibility(View.GONE); @@ -1349,11 +1349,11 @@ private void updatePrivatePublic() { linkContainer.setVisibility(View.VISIBLE); loadingAdminedCell.setVisibility(View.GONE); if (isChannel) { - typeInfoCell.setText(isPrivate ? LocaleController.getString("ChannelPrivateLinkHelp", R.string.ChannelPrivateLinkHelp) : LocaleController.getString("ChannelUsernameHelp", R.string.ChannelUsernameHelp)); - headerCell.setText(isPrivate ? LocaleController.getString("ChannelInviteLinkTitle", R.string.ChannelInviteLinkTitle) : LocaleController.getString("ChannelLinkTitle", R.string.ChannelLinkTitle)); + typeInfoCell.setText(isPrivate ? LocaleController.getString(R.string.ChannelPrivateLinkHelp) : LocaleController.getString(R.string.ChannelUsernameHelp)); + headerCell.setText(isPrivate ? LocaleController.getString(R.string.ChannelInviteLinkTitle) : LocaleController.getString(R.string.ChannelLinkTitle)); } else { - typeInfoCell.setText(isPrivate ? LocaleController.getString("MegaPrivateLinkHelp", R.string.MegaPrivateLinkHelp) : LocaleController.getString("MegaUsernameHelp", R.string.MegaUsernameHelp)); - headerCell.setText(isPrivate ? LocaleController.getString("ChannelInviteLinkTitle", R.string.ChannelInviteLinkTitle) : LocaleController.getString("ChannelLinkTitle", R.string.ChannelLinkTitle)); + typeInfoCell.setText(isPrivate ? LocaleController.getString(R.string.MegaPrivateLinkHelp) : LocaleController.getString(R.string.MegaUsernameHelp)); + headerCell.setText(isPrivate ? LocaleController.getString(R.string.ChannelInviteLinkTitle) : LocaleController.getString(R.string.ChannelLinkTitle)); } publicContainer.setVisibility(isPrivate ? View.GONE : View.VISIBLE); privateContainer.setVisibility(isPrivate ? View.VISIBLE : View.GONE); @@ -1428,7 +1428,7 @@ private boolean checkUserName(final String name) { lastNameAvailable = false; if (name != null) { if (name.startsWith("_") || name.endsWith("_")) { - checkTextView.setText(LocaleController.getString("LinkInvalid", R.string.LinkInvalid)); + checkTextView.setText(LocaleController.getString(R.string.LinkInvalid)); checkTextView.setTextColorByKey(Theme.key_text_RedRegular); return false; } @@ -1436,15 +1436,15 @@ private boolean checkUserName(final String name) { char ch = name.charAt(a); if (a == 0 && ch >= '0' && ch <= '9') { if (isChannel) { - checkTextView.setText(LocaleController.getString("LinkInvalidStartNumber", R.string.LinkInvalidStartNumber)); + checkTextView.setText(LocaleController.getString(R.string.LinkInvalidStartNumber)); } else { - checkTextView.setText(LocaleController.getString("LinkInvalidStartNumberMega", R.string.LinkInvalidStartNumberMega)); + checkTextView.setText(LocaleController.getString(R.string.LinkInvalidStartNumberMega)); } checkTextView.setTextColorByKey(Theme.key_text_RedRegular); return false; } if (!(ch >= '0' && ch <= '9' || ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z' || ch == '_')) { - checkTextView.setText(LocaleController.getString("LinkInvalid", R.string.LinkInvalid)); + checkTextView.setText(LocaleController.getString(R.string.LinkInvalid)); checkTextView.setTextColorByKey(Theme.key_text_RedRegular); return false; } @@ -1452,20 +1452,20 @@ private boolean checkUserName(final String name) { } if (name == null || name.length() < 4) { if (isChannel) { - checkTextView.setText(LocaleController.getString("LinkInvalidShort", R.string.LinkInvalidShort)); + checkTextView.setText(LocaleController.getString(R.string.LinkInvalidShort)); } else { - checkTextView.setText(LocaleController.getString("LinkInvalidShortMega", R.string.LinkInvalidShortMega)); + checkTextView.setText(LocaleController.getString(R.string.LinkInvalidShortMega)); } checkTextView.setTextColorByKey(Theme.key_text_RedRegular); return false; } if (name.length() > 32) { - checkTextView.setText(LocaleController.getString("LinkInvalidLong", R.string.LinkInvalidLong)); + checkTextView.setText(LocaleController.getString(R.string.LinkInvalidLong)); checkTextView.setTextColorByKey(Theme.key_text_RedRegular); return false; } - checkTextView.setText(LocaleController.getString("LinkChecking", R.string.LinkChecking)); + checkTextView.setText(LocaleController.getString(R.string.LinkChecking)); checkTextView.setTextColorByKey(Theme.key_windowBackgroundWhiteGrayText8); lastCheckName = name; checkRunnable = () -> { @@ -1481,20 +1481,20 @@ private boolean checkUserName(final String name) { lastNameAvailable = true; } else { if (error != null && "USERNAME_INVALID".equals(error.text) && req.username.length() == 4) { - checkTextView.setText(LocaleController.getString("UsernameInvalidShort", R.string.UsernameInvalidShort)); + checkTextView.setText(LocaleController.getString(R.string.UsernameInvalidShort)); checkTextView.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); } else if (error != null && "USERNAME_PURCHASE_AVAILABLE".equals(error.text)) { if (req.username.length() == 4) { - checkTextView.setText(LocaleController.getString("UsernameInvalidShortPurchase", R.string.UsernameInvalidShortPurchase)); + checkTextView.setText(LocaleController.getString(R.string.UsernameInvalidShortPurchase)); } else { - checkTextView.setText(LocaleController.getString("UsernameInUsePurchase", R.string.UsernameInUsePurchase)); + checkTextView.setText(LocaleController.getString(R.string.UsernameInUsePurchase)); } checkTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText8)); } else if (error != null && "CHANNELS_ADMIN_PUBLIC_TOO_MUCH".equals(error.text)) { canCreatePublic = false; showPremiumIncreaseLimitDialog(); } else { - checkTextView.setText(LocaleController.getString("LinkInUse", R.string.LinkInUse)); + checkTextView.setText(LocaleController.getString(R.string.LinkInUse)); checkTextView.setTextColorByKey(Theme.key_text_RedRegular); } lastNameAvailable = false; @@ -1522,9 +1522,9 @@ private void generateLink(final boolean newRequest) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setMessage(LocaleController.getString("RevokeAlertNewLink", R.string.RevokeAlertNewLink)); - builder.setTitle(LocaleController.getString("RevokeLink", R.string.RevokeLink)); - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); + builder.setMessage(LocaleController.getString(R.string.RevokeAlertNewLink)); + builder.setTitle(LocaleController.getString(R.string.RevokeLink)); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); showDialog(builder.create()); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatLinkActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatLinkActivity.java index c302cc69ab..b4e370d53a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatLinkActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatLinkActivity.java @@ -289,7 +289,7 @@ public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("Discussion", R.string.Discussion)); + actionBar.setTitle(LocaleController.getString(R.string.Discussion)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { @@ -343,7 +343,7 @@ public void onTextChanged(EditText editText) { searchAdapter.searchDialogs(text); } }); - searchItem.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.Search)); searchAdapter = new SearchAdapter(context); fragmentView = new FrameLayout(context); @@ -353,7 +353,7 @@ public void onTextChanged(EditText editText) { emptyView = new EmptyTextProgressView(context); emptyView.showProgress(); - emptyView.setText(LocaleController.getString("NoResult", R.string.NoResult)); + emptyView.setText(LocaleController.getString(R.string.NoResult)); frameLayout.addView(emptyView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); listView = new RecyclerListView(context); @@ -423,15 +423,15 @@ public void didFailChatCreation() { String title; String message; if (isChannel) { - title = LocaleController.getString("DiscussionUnlinkGroup", R.string.DiscussionUnlinkGroup); + title = LocaleController.getString(R.string.DiscussionUnlinkGroup); message = LocaleController.formatString("DiscussionUnlinkChannelAlert", R.string.DiscussionUnlinkChannelAlert, c.title); } else { - title = LocaleController.getString("DiscussionUnlink", R.string.DiscussionUnlinkChannel); + title = LocaleController.getString(R.string.DiscussionUnlinkChannel); message = LocaleController.formatString("DiscussionUnlinkGroupAlert", R.string.DiscussionUnlinkGroupAlert, c.title); } builder.setTitle(title); builder.setMessage(AndroidUtilities.replaceTags(message)); - builder.setPositiveButton(LocaleController.getString("DiscussionUnlink", R.string.DiscussionUnlink), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.DiscussionUnlink), (dialogInterface, i) -> { if (!isChannel || info.linked_chat_id != 0) { final AlertDialog[] progressDialog = new AlertDialog[]{new AlertDialog(getParentActivity(), AlertDialog.ALERT_TYPE_SPINNER)}; TLRPC.TL_channels_setDiscussionGroup req = new TLRPC.TL_channels_setDiscussionGroup(); @@ -465,7 +465,7 @@ public void didFailChatCreation() { }, 500); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -514,7 +514,7 @@ private void showLinkAlert(TLRPC.Chat chat, boolean query) { } } if (chatFull.hidden_prehistory) { - message += "\n\n" + LocaleController.getString("DiscussionLinkGroupAlertHistory", R.string.DiscussionLinkGroupAlertHistory); + message += "\n\n" + LocaleController.getString(R.string.DiscussionLinkGroupAlertHistory); } messageTextView.setText(AndroidUtilities.replaceTags(message)); @@ -543,13 +543,13 @@ private void showLinkAlert(TLRPC.Chat chat, boolean query) { frameLayout2.addView(messageTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 24, 57, 24, 9)); avatarDrawable.setInfo(currentAccount, chat); imageView.setForUserOrChat(chat, avatarDrawable); - builder.setPositiveButton(LocaleController.getString("DiscussionLinkGroup", R.string.DiscussionLinkGroup), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.DiscussionLinkGroup), (dialogInterface, i) -> { if (chatFull.hidden_prehistory) { getMessagesController().toggleChannelInvitesHistory(chat.id, false); } linkChat(chat, null); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); } @@ -666,7 +666,7 @@ public HintInnerCell(Context context) { messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("DiscussionChannelGroupSetHelp2", R.string.DiscussionChannelGroupSetHelp2, chat.title))); } } else { - messageTextView.setText(LocaleController.getString("DiscussionChannelHelp3", R.string.DiscussionChannelHelp3)); + messageTextView.setText(LocaleController.getString(R.string.DiscussionChannelHelp3)); } } else { TLRPC.Chat chat = getMessagesController().getChat(info.linked_chat_id); @@ -986,9 +986,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TextInfoPrivacyCell privacyCell = (TextInfoPrivacyCell) holder.itemView; if (position == detailRow) { if (isChannel) { - privacyCell.setText(LocaleController.getString("DiscussionChannelHelp2", R.string.DiscussionChannelHelp2)); + privacyCell.setText(LocaleController.getString(R.string.DiscussionChannelHelp2)); } else { - privacyCell.setText(LocaleController.getString("DiscussionGroupHelp2", R.string.DiscussionGroupHelp2)); + privacyCell.setText(LocaleController.getString(R.string.DiscussionGroupHelp2)); } } break; @@ -997,14 +997,14 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (isChannel) { if (info.linked_chat_id != 0) { actionCell.setColors(Theme.key_text_RedRegular, Theme.key_text_RedRegular); - actionCell.setText(LocaleController.getString("DiscussionUnlinkGroup", R.string.DiscussionUnlinkGroup), null, R.drawable.actions_remove_user, false); + actionCell.setText(LocaleController.getString(R.string.DiscussionUnlinkGroup), null, R.drawable.msg_remove, false); } else { actionCell.setColors(Theme.key_windowBackgroundWhiteBlueIcon, Theme.key_windowBackgroundWhiteBlueButton); - actionCell.setText(LocaleController.getString("DiscussionCreateGroup", R.string.DiscussionCreateGroup), null, R.drawable.menu_groups, true); + actionCell.setText(LocaleController.getString(R.string.DiscussionCreateGroup), null, R.drawable.msg_groups, true); } } else { actionCell.setColors(Theme.key_text_RedRegular, Theme.key_text_RedRegular); - actionCell.setText(LocaleController.getString("DiscussionUnlinkChannel", R.string.DiscussionUnlinkChannel), null, R.drawable.actions_remove_user, false); + actionCell.setText(LocaleController.getString(R.string.DiscussionUnlinkChannel), null, R.drawable.msg_remove, false); } break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatReactionsEditActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatReactionsEditActivity.java index 9a54a2a4a8..f7cade8124 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatReactionsEditActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatReactionsEditActivity.java @@ -96,7 +96,7 @@ public boolean onFragmentCreate() { public View createView(Context context) { isChannel = ChatObject.isChannelAndNotMegaGroup(chatId, currentAccount); - actionBar.setTitle(LocaleController.getString("Reactions", R.string.Reactions)); + actionBar.setTitle(LocaleController.getString(R.string.Reactions)); actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); @@ -117,7 +117,7 @@ public void onItemClick(int id) { if (isChannel) { enableReactionsCell = new TextCheckCell(context); enableReactionsCell.setHeight(56); - enableReactionsCell.setTextAndCheck(LocaleController.getString("EnableReactions", R.string.EnableReactions), !chatReactions.isEmpty(), false); + enableReactionsCell.setTextAndCheck(LocaleController.getString(R.string.EnableReactions), !chatReactions.isEmpty(), false); enableReactionsCell.setBackgroundColor(Theme.getColor(enableReactionsCell.isChecked() ? Theme.key_windowBackgroundChecked : Theme.key_windowBackgroundUnchecked)); enableReactionsCell.setTypeface(AndroidUtilities.bold()); enableReactionsCell.setOnClickListener(v -> { @@ -127,16 +127,16 @@ public void onItemClick(int id) { } HeaderCell headerCell = new HeaderCell(context); - headerCell.setText(LocaleController.getString("AvailableReactions", R.string.AvailableReactions)); + headerCell.setText(LocaleController.getString(R.string.AvailableReactions)); contorlsLayout = new LinearLayout(context); contorlsLayout.setOrientation(LinearLayout.VERTICAL); allReactions = new RadioCell(context); - allReactions.setText(LocaleController.getString("AllReactions", R.string.AllReactions), false, true); + allReactions.setText(LocaleController.getString(R.string.AllReactions), false, true); someReactions = new RadioCell(context); - someReactions.setText(LocaleController.getString("SomeReactions", R.string.SomeReactions), false, true); + someReactions.setText(LocaleController.getString(R.string.SomeReactions), false, true); disableReactions = new RadioCell(context); - disableReactions.setText(LocaleController.getString("NoReactions", R.string.NoReactions), false, false); + disableReactions.setText(LocaleController.getString(R.string.NoReactions), false, false); contorlsLayout.addView(headerCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); contorlsLayout.addView(allReactions, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); contorlsLayout.addView(someReactions, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -196,22 +196,22 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi TextInfoPrivacyCell infoCell = (TextInfoPrivacyCell) holder.itemView; infoCell.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText4)); if (isChannel) { - infoCell.setText(ChatObject.isChannelAndNotMegaGroup(currentChat) ? LocaleController.getString("EnableReactionsChannelInfo", R.string.EnableReactionsChannelInfo) : - LocaleController.getString("EnableReactionsGroupInfo", R.string.EnableReactionsGroupInfo)); + infoCell.setText(ChatObject.isChannelAndNotMegaGroup(currentChat) ? LocaleController.getString(R.string.EnableReactionsChannelInfo) : + LocaleController.getString(R.string.EnableReactionsGroupInfo)); } else { infoCell.setForeground(Theme.getThemedDrawableByKey(getContext(), R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); if (selectedType == SELECT_TYPE_SOME) { - infoCell.setText(LocaleController.getString("EnableSomeReactionsInfo", R.string.EnableSomeReactionsInfo)); + infoCell.setText(LocaleController.getString(R.string.EnableSomeReactionsInfo)); } else if (selectedType == SELECT_TYPE_ALL) { - infoCell.setText(LocaleController.getString("EnableAllReactionsInfo", R.string.EnableAllReactionsInfo)); + infoCell.setText(LocaleController.getString(R.string.EnableAllReactionsInfo)); } else if (selectedType == SELECT_TYPE_NONE) { - infoCell.setText(LocaleController.getString("DisableReactionsInfo", R.string.DisableReactionsInfo)); + infoCell.setText(LocaleController.getString(R.string.DisableReactionsInfo)); } } break; case TYPE_HEADER: HeaderCell headerCell = (HeaderCell) holder.itemView; - headerCell.setText(LocaleController.getString("OnlyAllowThisReactions", R.string.OnlyAllowThisReactions)); + headerCell.setText(LocaleController.getString(R.string.OnlyAllowThisReactions)); headerCell.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); break; case TYPE_REACTION: diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatRightsEditActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatRightsEditActivity.java index 196b447346..279263109d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatRightsEditActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatRightsEditActivity.java @@ -471,11 +471,11 @@ public View createView(Context context) { actionBar.setAllowOverlayTitle(true); if (currentType == TYPE_ADMIN) { - actionBar.setTitle(LocaleController.getString("EditAdmin", R.string.EditAdmin)); + actionBar.setTitle(LocaleController.getString(R.string.EditAdmin)); } else if (currentType == TYPE_ADD_BOT) { - actionBar.setTitle(LocaleController.getString("AddBot", R.string.AddBot)); + actionBar.setTitle(LocaleController.getString(R.string.AddBot)); } else { - actionBar.setTitle(LocaleController.getString("UserRestrictions", R.string.UserRestrictions)); + actionBar.setTitle(LocaleController.getString(R.string.UserRestrictions)); } actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @@ -496,7 +496,7 @@ public void onItemClick(int id) { Drawable checkmark = context.getResources().getDrawable(R.drawable.ic_ab_done).mutate(); checkmark.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultIcon), PorterDuff.Mode.MULTIPLY)); doneDrawable = new CrossfadeDrawable(checkmark, new CircularProgressDrawable(Theme.getColor(Theme.key_actionBarDefaultIcon))); - menu.addItemWithWidth(done_button, 0, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + menu.addItemWithWidth(done_button, 0, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); menu.getItem(done_button).setIcon(doneDrawable); } @@ -658,7 +658,7 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) { HeaderCell headerCell = new HeaderCell(context, Theme.key_dialogTextBlue2, 23, 15, false); headerCell.setHeight(47); - headerCell.setText(LocaleController.getString("UserRestrictionsDuration", R.string.UserRestrictionsDuration)); + headerCell.setText(LocaleController.getString(R.string.UserRestrictionsDuration)); linearLayout.addView(headerCell); LinearLayout linearLayoutInviteContainer = new LinearLayout(context); @@ -675,7 +675,7 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) { String text; switch (a) { case 0: - text = LocaleController.getString("UserRestrictionsUntilForever", R.string.UserRestrictionsUntilForever); + text = LocaleController.getString(R.string.UserRestrictionsUntilForever); break; case 1: text = LocaleController.formatPluralString("Days", 1); @@ -688,7 +688,7 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) { break; case 4: default: - text = LocaleController.getString("UserRestrictionsCustom", R.string.UserRestrictionsCustom); + text = LocaleController.getString(R.string.UserRestrictionsCustom); break; } buttons[a].setTextAndIcon(text, 0); @@ -728,8 +728,8 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) { bannedRights.until_date = time + hourOfDay * 3600 + minute * 60; listViewAdapter.notifyItemChanged(untilDateRow); }, 0, 0, true); - dialog13.setButton(DialogInterface.BUTTON_POSITIVE, LocaleController.getString("Set", R.string.Set), dialog13); - dialog13.setButton(DialogInterface.BUTTON_NEGATIVE, LocaleController.getString("Cancel", R.string.Cancel), (dialog131, which) -> { + dialog13.setButton(DialogInterface.BUTTON_POSITIVE, LocaleController.getString(R.string.Set), dialog13); + dialog13.setButton(DialogInterface.BUTTON_NEGATIVE, LocaleController.getString(R.string.Cancel), (dialog131, which) -> { }); showDialog(dialog13); @@ -755,8 +755,8 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) { date.set(Calendar.MILLISECOND, date.getMaximum(Calendar.MILLISECOND)); datePicker.setMaxDate(date.getTimeInMillis()); - dialog.setButton(DialogInterface.BUTTON_POSITIVE, LocaleController.getString("Set", R.string.Set), dialog); - dialog.setButton(DialogInterface.BUTTON_NEGATIVE, LocaleController.getString("Cancel", R.string.Cancel), (dialog1, which) -> { + dialog.setButton(DialogInterface.BUTTON_POSITIVE, LocaleController.getString(R.string.Set), dialog); + dialog.setButton(DialogInterface.BUTTON_NEGATIVE, LocaleController.getString(R.string.Cancel), (dialog1, which) -> { }); if (Build.VERSION.SDK_INT >= 21) { @@ -813,9 +813,9 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) { if (checkBoxCell.hasIcon()) { if (currentType != TYPE_ADD_BOT) { new AlertDialog.Builder(getParentActivity()) - .setTitle(LocaleController.getString("UserRestrictionsCantModify", R.string.UserRestrictionsCantModify)) - .setMessage(LocaleController.getString("UserRestrictionsCantModifyDisabled", R.string.UserRestrictionsCantModifyDisabled)) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), null) + .setTitle(LocaleController.getString(R.string.UserRestrictionsCantModify)) + .setMessage(LocaleController.getString(R.string.UserRestrictionsCantModifyDisabled)) + .setPositiveButton(LocaleController.getString(R.string.OK), null) .create() .show(); } @@ -863,9 +863,9 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) { if (checkCell.hasIcon()) { if (currentType != TYPE_ADD_BOT) { new AlertDialog.Builder(getParentActivity()) - .setTitle(LocaleController.getString("UserRestrictionsCantModify", R.string.UserRestrictionsCantModify)) - .setMessage(LocaleController.getString("UserRestrictionsCantModifyDisabled", R.string.UserRestrictionsCantModifyDisabled)) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), null) + .setTitle(LocaleController.getString(R.string.UserRestrictionsCantModify)) + .setMessage(LocaleController.getString(R.string.UserRestrictionsCantModifyDisabled)) + .setPositiveButton(LocaleController.getString(R.string.OK), null) .create() .show(); } @@ -877,9 +877,9 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) { (position == changeInfoRow && defaultBannedRights != null && !defaultBannedRights.change_info || position == pinMessagesRow && defaultBannedRights != null && !defaultBannedRights.pin_messages)) { new AlertDialog.Builder(getParentActivity()) - .setTitle(LocaleController.getString("UserRestrictionsCantModify", R.string.UserRestrictionsCantModify)) - .setMessage(LocaleController.getString("UserRestrictionsCantModifyEnabled", R.string.UserRestrictionsCantModifyEnabled)) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), null) + .setTitle(LocaleController.getString(R.string.UserRestrictionsCantModify)) + .setMessage(LocaleController.getString(R.string.UserRestrictionsCantModifyEnabled)) + .setPositiveButton(LocaleController.getString(R.string.OK), null) .create() .show(); } @@ -1012,17 +1012,17 @@ private void initTransfer(TLRPC.InputCheckPasswordSRP srp, TwoStepVerificationAc if (srp == null) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); if (isChannel) { - builder.setTitle(LocaleController.getString("EditAdminChannelTransfer", R.string.EditAdminChannelTransfer)); + builder.setTitle(LocaleController.getString(R.string.EditAdminChannelTransfer)); } else { - builder.setTitle(LocaleController.getString("EditAdminGroupTransfer", R.string.EditAdminGroupTransfer)); + builder.setTitle(LocaleController.getString(R.string.EditAdminGroupTransfer)); } builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("EditAdminTransferReadyAlertText", R.string.EditAdminTransferReadyAlertText, currentChat.title, UserObject.getFirstName(currentUser)))); - builder.setPositiveButton(LocaleController.getString("EditAdminTransferChangeOwner", R.string.EditAdminTransferChangeOwner), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.EditAdminTransferChangeOwner), (dialogInterface, i) -> { TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(); fragment.setDelegate(0, password -> initTransfer(password, fragment)); presentFragment(fragment); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); } } else if ("PASSWORD_MISSING".equals(error.text) || error.text.startsWith("PASSWORD_TOO_FRESH_") || error.text.startsWith("SESSION_TOO_FRESH_")) { @@ -1030,7 +1030,7 @@ private void initTransfer(TLRPC.InputCheckPasswordSRP srp, TwoStepVerificationAc passwordFragment.needHideProgress(); } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("EditAdminTransferAlertTitle", R.string.EditAdminTransferAlertTitle)); + builder.setTitle(LocaleController.getString(R.string.EditAdminTransferAlertTitle)); LinearLayout linearLayout = new LinearLayout(getParentActivity()); linearLayout.setPadding(AndroidUtilities.dp(24), AndroidUtilities.dp(2), AndroidUtilities.dp(24), 0); @@ -1061,7 +1061,7 @@ private void initTransfer(TLRPC.InputCheckPasswordSRP srp, TwoStepVerificationAc messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("EditAdminTransferAlertText1", R.string.EditAdminTransferAlertText1))); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.EditAdminTransferAlertText1))); if (LocaleController.isRTL) { linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT)); @@ -1083,7 +1083,7 @@ private void initTransfer(TLRPC.InputCheckPasswordSRP srp, TwoStepVerificationAc messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("EditAdminTransferAlertText2", R.string.EditAdminTransferAlertText2))); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.EditAdminTransferAlertText2))); if (LocaleController.isRTL) { linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT)); @@ -1093,17 +1093,17 @@ private void initTransfer(TLRPC.InputCheckPasswordSRP srp, TwoStepVerificationAc } if ("PASSWORD_MISSING".equals(error.text)) { - builder.setPositiveButton(LocaleController.getString("EditAdminTransferSetPassword", R.string.EditAdminTransferSetPassword), (dialogInterface, i) -> presentFragment(new TwoStepVerificationSetupActivity(TwoStepVerificationSetupActivity.TYPE_INTRO, null))); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.EditAdminTransferSetPassword), (dialogInterface, i) -> presentFragment(new TwoStepVerificationSetupActivity(TwoStepVerificationSetupActivity.TYPE_INTRO, null))); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); } else { messageTextView = new TextView(getParentActivity()); messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); - messageTextView.setText(LocaleController.getString("EditAdminTransferAlertText3", R.string.EditAdminTransferAlertText3)); + messageTextView.setText(LocaleController.getString(R.string.EditAdminTransferAlertText3)); linearLayout.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 11, 0, 0)); - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); } showDialog(builder.create()); } else if ("SRP_ID_INVALID".equals(error.text)) { @@ -1399,8 +1399,8 @@ private void onDonePressed() { } else if (currentType == TYPE_ADD_BOT) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); builder.setTitle(asAdmin ? - LocaleController.getString("AddBotAdmin", R.string.AddBotAdmin) : - LocaleController.getString("AddBot", R.string.AddBot) + LocaleController.getString(R.string.AddBotAdmin) : + LocaleController.getString(R.string.AddBot) ); boolean isChannel = ChatObject.isChannel(currentChat) && !currentChat.megagroup; String chatName = currentChat == null ? "" : currentChat.title; @@ -1411,8 +1411,8 @@ private void onDonePressed() { LocaleController.formatString("AddBotMessageAdminGroup", R.string.AddBotMessageAdminGroup, chatName) ) : LocaleController.formatString("AddMembersAlertNamesText", R.string.AddMembersAlertNamesText, UserObject.getUserName(currentUser), chatName) )); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(asAdmin ? LocaleController.getString("AddAsAdmin", R.string.AddAsAdmin) : LocaleController.getString("AddBot", R.string.AddBot), (di, i) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(asAdmin ? LocaleController.getString(R.string.AddAsAdmin) : LocaleController.getString(R.string.AddBot), (di, i) -> { setLoading(true); Runnable onFinish = () -> { if (delegate != null) { @@ -1500,11 +1500,11 @@ private boolean checkDiscard() { } if (changed) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("UserRestrictionsApplyChanges", R.string.UserRestrictionsApplyChanges)); + builder.setTitle(LocaleController.getString(R.string.UserRestrictionsApplyChanges)); TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(chatId); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("UserRestrictionsApplyChangesText", R.string.UserRestrictionsApplyChangesText, chat.title))); - builder.setPositiveButton(LocaleController.getString("ApplyTheme", R.string.ApplyTheme), (dialogInterface, i) -> onDonePressed()); - builder.setNegativeButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialog, which) -> finishFragment()); + builder.setPositiveButton(LocaleController.getString(R.string.ApplyTheme), (dialogInterface, i) -> onDonePressed()); + builder.setNegativeButton(LocaleController.getString(R.string.PassportDiscard), (dialog, which) -> finishFragment()); showDialog(builder.create()); return false; } @@ -1708,7 +1708,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType addBotButtonText.setTextColor(0xffffffff); addBotButtonText.setTextSize(AndroidUtilities.dp(14)); addBotButtonText.setGravity(Gravity.CENTER); - addBotButtonText.setText(LocaleController.getString("AddBotButton", R.string.AddBotButton) + " " + (asAdmin ? LocaleController.getString("AddBotButtonAsAdmin", R.string.AddBotButtonAsAdmin) : LocaleController.getString("AddBotButtonAsMember", R.string.AddBotButtonAsMember))); + addBotButtonText.setText(LocaleController.getString(R.string.AddBotButton) + " " + (asAdmin ? LocaleController.getString(R.string.AddBotButtonAsAdmin) : LocaleController.getString(R.string.AddBotButtonAsMember))); addBotButton.addView(addBotButtonText, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); addBotButton.setBackground(Theme.AdaptiveRipple.filledRectByKey(Theme.key_featuredStickers_addButton, 4)); addBotButton.setOnClickListener(e -> onDonePressed()); @@ -1770,41 +1770,41 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { boolean animated = checkBoxCell.getTag() != null && (Integer) checkBoxCell.getTag() == position; checkBoxCell.setTag(position); if (position == sendStickersRow) { - checkBoxCell.setText(LocaleController.getString("UserRestrictionsSendStickers2", R.string.UserRestrictionsSendStickers2), "", !bannedRights.send_stickers && !defaultBannedRights.send_stickers, true, animated); -// checkBoxCell.setText(LocaleController.getString("SendMediaPermissionStickersGifs", R.string.SendMediaPermissionStickersGifs), "", !bannedRights.send_stickers && !defaultBannedRights.send_stickers, true, animated); + checkBoxCell.setText(LocaleController.getString(R.string.UserRestrictionsSendStickers2), "", !bannedRights.send_stickers && !defaultBannedRights.send_stickers, true, animated); +// checkBoxCell.setText(LocaleController.getString(R.string.SendMediaPermissionStickersGifs), "", !bannedRights.send_stickers && !defaultBannedRights.send_stickers, true, animated); checkBoxCell.setIcon(defaultBannedRights.send_stickers ? R.drawable.permission_locked : 0); } else if (position == sendGifsRow) { - checkBoxCell.setText(LocaleController.getString("UserRestrictionsSendGifs", R.string.UserRestrictionsSendGifs), "", !bannedRights.send_gifs && !defaultBannedRights.send_gifs, true, animated); + checkBoxCell.setText(LocaleController.getString(R.string.UserRestrictionsSendGifs), "", !bannedRights.send_gifs && !defaultBannedRights.send_gifs, true, animated); checkBoxCell.setIcon(defaultBannedRights.send_gifs ? R.drawable.permission_locked : 0); } else if (position == sendGamesRow) { - checkBoxCell.setText(LocaleController.getString("UserRestrictionsSendGames", R.string.UserRestrictionsSendGames), "", !bannedRights.send_games && !defaultBannedRights.send_games, true, animated); + checkBoxCell.setText(LocaleController.getString(R.string.UserRestrictionsSendGames), "", !bannedRights.send_games && !defaultBannedRights.send_games, true, animated); checkBoxCell.setIcon(defaultBannedRights.send_games ? R.drawable.permission_locked : 0); } else if (position == sendInlineRow) { - checkBoxCell.setText(LocaleController.getString("UserRestrictionsSendInline", R.string.UserRestrictionsSendInline), "", !bannedRights.send_inline && !defaultBannedRights.send_inline, true, animated); + checkBoxCell.setText(LocaleController.getString(R.string.UserRestrictionsSendInline), "", !bannedRights.send_inline && !defaultBannedRights.send_inline, true, animated); checkBoxCell.setIcon(defaultBannedRights.send_inline ? R.drawable.permission_locked : 0); } else if (position == embedLinksRow) { - checkBoxCell.setText(LocaleController.getString("UserRestrictionsEmbedLinks", R.string.UserRestrictionsEmbedLinks), "", !bannedRights.embed_links && !defaultBannedRights.embed_links && !bannedRights.send_plain && !defaultBannedRights.send_plain, true, animated); + checkBoxCell.setText(LocaleController.getString(R.string.UserRestrictionsEmbedLinks), "", !bannedRights.embed_links && !defaultBannedRights.embed_links && !bannedRights.send_plain && !defaultBannedRights.send_plain, true, animated); checkBoxCell.setIcon(defaultBannedRights.embed_links ? R.drawable.permission_locked : 0); } else if (position == sendPollsRow) { - checkBoxCell.setText(LocaleController.getString("SendMediaPolls", R.string.SendMediaPolls), "", !bannedRights.send_polls && !defaultBannedRights.send_polls, true, animated); + checkBoxCell.setText(LocaleController.getString(R.string.SendMediaPolls), "", !bannedRights.send_polls && !defaultBannedRights.send_polls, true, animated); checkBoxCell.setIcon(defaultBannedRights.send_polls ? R.drawable.permission_locked : 0); } else if (position == sendPhotosRow) { - checkBoxCell.setText(LocaleController.getString("SendMediaPermissionPhotos", R.string.SendMediaPermissionPhotos), "", !bannedRights.send_photos && !defaultBannedRights.send_photos, true, animated); + checkBoxCell.setText(LocaleController.getString(R.string.SendMediaPermissionPhotos), "", !bannedRights.send_photos && !defaultBannedRights.send_photos, true, animated); checkBoxCell.setIcon(defaultBannedRights.send_photos ? R.drawable.permission_locked : 0); } else if (position == sendVideosRow) { - checkBoxCell.setText(LocaleController.getString("SendMediaPermissionVideos", R.string.SendMediaPermissionVideos), "", !bannedRights.send_videos && !defaultBannedRights.send_videos, true, animated); + checkBoxCell.setText(LocaleController.getString(R.string.SendMediaPermissionVideos), "", !bannedRights.send_videos && !defaultBannedRights.send_videos, true, animated); checkBoxCell.setIcon(defaultBannedRights.send_videos ? R.drawable.permission_locked : 0); } else if (position == sendMusicRow) { - checkBoxCell.setText(LocaleController.getString("SendMediaPermissionMusic", R.string.SendMediaPermissionMusic), "", !bannedRights.send_audios && !defaultBannedRights.send_audios, true, animated); + checkBoxCell.setText(LocaleController.getString(R.string.SendMediaPermissionMusic), "", !bannedRights.send_audios && !defaultBannedRights.send_audios, true, animated); checkBoxCell.setIcon(defaultBannedRights.send_audios ? R.drawable.permission_locked : 0); } else if (position == sendFilesRow) { - checkBoxCell.setText(LocaleController.getString("SendMediaPermissionFiles", R.string.SendMediaPermissionFiles), "", !bannedRights.send_docs && !defaultBannedRights.send_docs, true, animated); + checkBoxCell.setText(LocaleController.getString(R.string.SendMediaPermissionFiles), "", !bannedRights.send_docs && !defaultBannedRights.send_docs, true, animated); checkBoxCell.setIcon(defaultBannedRights.send_docs ? R.drawable.permission_locked : 0); } else if (position == sendVoiceRow) { - checkBoxCell.setText(LocaleController.getString("SendMediaPermissionVoice", R.string.SendMediaPermissionVoice), "", !bannedRights.send_voices && !defaultBannedRights.send_voices, true, animated); + checkBoxCell.setText(LocaleController.getString(R.string.SendMediaPermissionVoice), "", !bannedRights.send_voices && !defaultBannedRights.send_voices, true, animated); checkBoxCell.setIcon(defaultBannedRights.send_voices ? R.drawable.permission_locked : 0); } else if (position == sendRoundRow) { - checkBoxCell.setText(LocaleController.getString("SendMediaPermissionRound", R.string.SendMediaPermissionRound), "", !bannedRights.send_roundvideos && !defaultBannedRights.send_roundvideos, true, animated); + checkBoxCell.setText(LocaleController.getString(R.string.SendMediaPermissionRound), "", !bannedRights.send_roundvideos && !defaultBannedRights.send_roundvideos, true, animated); checkBoxCell.setIcon(defaultBannedRights.send_roundvideos ? R.drawable.permission_locked : 0); } else if (position == channelPostMessagesRow) { checkBoxCell.setText(LocaleController.getString(R.string.EditAdminPostMessages), "", adminRights.post_messages, true, animated); @@ -1824,20 +1824,20 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { UserCell2 userCell2 = (UserCell2) holder.itemView; String status = null; if (currentType == TYPE_ADD_BOT) { - status = LocaleController.getString("Bot", R.string.Bot); + status = LocaleController.getString(R.string.Bot); } userCell2.setData(currentUser, null, status, 0); break; case VIEW_TYPE_INFO_CELL: TextInfoPrivacyCell privacyCell = (TextInfoPrivacyCell) holder.itemView; if (position == cantEditInfoRow) { - privacyCell.setText(LocaleController.getString("EditAdminCantEdit", R.string.EditAdminCantEdit)); + privacyCell.setText(LocaleController.getString(R.string.EditAdminCantEdit)); } else if (position == rankInfoRow) { String hint; if (UserObject.isUserSelf(currentUser) && currentChat.creator) { - hint = LocaleController.getString("ChannelCreator", R.string.ChannelCreator); + hint = LocaleController.getString(R.string.ChannelCreator); } else { - hint = LocaleController.getString("ChannelAdmin", R.string.ChannelAdmin); + hint = LocaleController.getString(R.string.ChannelAdmin); } privacyCell.setText(LocaleController.formatString("EditAdminRankInfo", R.string.EditAdminRankInfo, hint)); } @@ -1848,17 +1848,17 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { actionCell.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); actionCell.setTag(Theme.key_text_RedRegular); if (currentType == TYPE_ADMIN) { - actionCell.setText(LocaleController.getString("EditAdminRemoveAdmin", R.string.EditAdminRemoveAdmin), false); + actionCell.setText(LocaleController.getString(R.string.EditAdminRemoveAdmin), false); } else if (currentType == TYPE_BANNED) { - actionCell.setText(LocaleController.getString("UserRestrictionsBlock", R.string.UserRestrictionsBlock), false); + actionCell.setText(LocaleController.getString(R.string.UserRestrictionsBlock), false); } } else if (position == transferOwnerRow) { actionCell.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); actionCell.setTag(Theme.key_windowBackgroundWhiteBlackText); if (isChannel) { - actionCell.setText(LocaleController.getString("EditAdminChannelTransfer", R.string.EditAdminChannelTransfer), false); + actionCell.setText(LocaleController.getString(R.string.EditAdminChannelTransfer), false); } else { - actionCell.setText(LocaleController.getString("EditAdminGroupTransfer", R.string.EditAdminGroupTransfer), false); + actionCell.setText(LocaleController.getString(R.string.EditAdminGroupTransfer), false); } } break; @@ -1866,14 +1866,14 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { HeaderCell headerCell = (HeaderCell) holder.itemView; if (position == 2) { if (currentType == TYPE_ADD_BOT || (currentUser != null && currentUser.bot)) { - headerCell.setText(LocaleController.getString("BotRestrictionsCanDo", R.string.BotRestrictionsCanDo)); + headerCell.setText(LocaleController.getString(R.string.BotRestrictionsCanDo)); } else if (currentType == TYPE_ADMIN) { - headerCell.setText(LocaleController.getString("EditAdminWhatCanDo", R.string.EditAdminWhatCanDo)); + headerCell.setText(LocaleController.getString(R.string.EditAdminWhatCanDo)); } else if (currentType == TYPE_BANNED) { - headerCell.setText(LocaleController.getString("UserRestrictionsCanDo", R.string.UserRestrictionsCanDo)); + headerCell.setText(LocaleController.getString(R.string.UserRestrictionsCanDo)); } } else if (position == rankHeaderRow) { - headerCell.setText(LocaleController.getString("EditAdminRank", R.string.EditAdminRank)); + headerCell.setText(LocaleController.getString(R.string.EditAdminRank)); } break; case VIEW_TYPE_EXPANDABLE_SWITCH: @@ -1883,13 +1883,13 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { boolean isCreator = (currentChat != null && currentChat.creator); if (position == sendMediaRow) { int sentMediaCount = getSendMediaSelectedCount(); - checkCell.setTextAndCheck(LocaleController.getString("UserRestrictionsSendMedia", R.string.UserRestrictionsSendMedia), sentMediaCount > 0, true, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.UserRestrictionsSendMedia), sentMediaCount > 0, true, true); checkCell.setCollapseArrow(String.format(Locale.US, "%d/12", sentMediaCount), !sendMediaExpanded, () -> { if (allDefaultMediaBanned()) { new AlertDialog.Builder(getParentActivity()) - .setTitle(LocaleController.getString("UserRestrictionsCantModify", R.string.UserRestrictionsCantModify)) - .setMessage(LocaleController.getString("UserRestrictionsCantModifyEnabled", R.string.UserRestrictionsCantModifyEnabled)) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), null) + .setTitle(LocaleController.getString(R.string.UserRestrictionsCantModify)) + .setMessage(LocaleController.getString(R.string.UserRestrictionsCantModifyEnabled)) + .setPositiveButton(LocaleController.getString(R.string.OK), null) .create() .show(); return; @@ -1916,97 +1916,97 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { setChannelStoriesEnabled(checked); }); } else if (position == manageRow) { - checkCell.setTextAndCheck(LocaleController.getString("ManageGroup", R.string.ManageGroup), asAdmin, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.ManageGroup), asAdmin, true); checkCell.setIcon(myAdminRights.add_admins || isCreator ? 0 : R.drawable.permission_locked); } else if (position == changeInfoRow) { if (currentType == TYPE_ADMIN || currentType == TYPE_ADD_BOT) { if (isChannel) { - checkCell.setTextAndCheck(LocaleController.getString("EditAdminChangeChannelInfo", R.string.EditAdminChangeChannelInfo), asAdminValue && adminRights.change_info, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.EditAdminChangeChannelInfo), asAdminValue && adminRights.change_info, true); } else { - checkCell.setTextAndCheck(LocaleController.getString("EditAdminChangeGroupInfo", R.string.EditAdminChangeGroupInfo), asAdminValue && adminRights.change_info || !defaultBannedRights.change_info, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.EditAdminChangeGroupInfo), asAdminValue && adminRights.change_info || !defaultBannedRights.change_info, true); } if (currentType == TYPE_ADD_BOT) { checkCell.setIcon(myAdminRights.change_info || isCreator ? 0 : R.drawable.permission_locked); } } else if (currentType == TYPE_BANNED) { - checkCell.setTextAndCheck(LocaleController.getString("UserRestrictionsChangeInfo", R.string.UserRestrictionsChangeInfo), !bannedRights.change_info && !defaultBannedRights.change_info, manageTopicsRow != -1); + checkCell.setTextAndCheck(LocaleController.getString(R.string.UserRestrictionsChangeInfo), !bannedRights.change_info && !defaultBannedRights.change_info, manageTopicsRow != -1); checkCell.setIcon(defaultBannedRights.change_info ? R.drawable.permission_locked : 0); } } else if (position == postMessagesRow) { - checkCell.setTextAndCheck(LocaleController.getString("EditAdminPostMessages", R.string.EditAdminPostMessages), asAdminValue && adminRights.post_messages, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.EditAdminPostMessages), asAdminValue && adminRights.post_messages, true); if (currentType == TYPE_ADD_BOT) { checkCell.setIcon(myAdminRights.post_messages || isCreator ? 0 : R.drawable.permission_locked); } } else if (position == editMesagesRow) { - checkCell.setTextAndCheck(LocaleController.getString("EditAdminEditMessages", R.string.EditAdminEditMessages), asAdminValue && adminRights.edit_messages, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.EditAdminEditMessages), asAdminValue && adminRights.edit_messages, true); if (currentType == TYPE_ADD_BOT) { checkCell.setIcon(myAdminRights.edit_messages || isCreator ? 0 : R.drawable.permission_locked); } } else if (position == deleteMessagesRow) { if (isChannel) { - checkCell.setTextAndCheck(LocaleController.getString("EditAdminDeleteMessages", R.string.EditAdminDeleteMessages), asAdminValue && adminRights.delete_messages, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.EditAdminDeleteMessages), asAdminValue && adminRights.delete_messages, true); } else { - checkCell.setTextAndCheck(LocaleController.getString("EditAdminGroupDeleteMessages", R.string.EditAdminGroupDeleteMessages), asAdminValue && adminRights.delete_messages, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.EditAdminGroupDeleteMessages), asAdminValue && adminRights.delete_messages, true); } if (currentType == TYPE_ADD_BOT) { checkCell.setIcon(myAdminRights.delete_messages || isCreator ? 0 : R.drawable.permission_locked); } } else if (position == addAdminsRow) { - checkCell.setTextAndCheck(LocaleController.getString("EditAdminAddAdmins", R.string.EditAdminAddAdmins), asAdminValue && adminRights.add_admins, anonymousRow != -1); + checkCell.setTextAndCheck(LocaleController.getString(R.string.EditAdminAddAdmins), asAdminValue && adminRights.add_admins, anonymousRow != -1); if (currentType == TYPE_ADD_BOT) { checkCell.setIcon(myAdminRights.add_admins || isCreator ? 0 : R.drawable.permission_locked); } } else if (position == anonymousRow) { - checkCell.setTextAndCheck(LocaleController.getString("EditAdminSendAnonymously", R.string.EditAdminSendAnonymously), asAdminValue && adminRights.anonymous, manageTopicsRow != -1); + checkCell.setTextAndCheck(LocaleController.getString(R.string.EditAdminSendAnonymously), asAdminValue && adminRights.anonymous, manageTopicsRow != -1); if (currentType == TYPE_ADD_BOT) { checkCell.setIcon(myAdminRights.anonymous || isCreator ? 0 : R.drawable.permission_locked); } } else if (position == banUsersRow) { - checkCell.setTextAndCheck(LocaleController.getString("EditAdminBanUsers", R.string.EditAdminBanUsers), asAdminValue && adminRights.ban_users, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.EditAdminBanUsers), asAdminValue && adminRights.ban_users, true); if (currentType == TYPE_ADD_BOT) { checkCell.setIcon(myAdminRights.ban_users || isCreator ? 0 : R.drawable.permission_locked); } } else if (position == startVoiceChatRow) { - checkCell.setTextAndCheck(LocaleController.getString("StartVoipChatPermission", R.string.StartVoipChatPermission), asAdminValue && adminRights.manage_call, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.StartVoipChatPermission), asAdminValue && adminRights.manage_call, true); if (currentType == TYPE_ADD_BOT) { checkCell.setIcon(myAdminRights.manage_call || isCreator ? 0 : R.drawable.permission_locked); } } else if (position == manageTopicsRow) { if (currentType == TYPE_ADMIN) { - checkCell.setTextAndCheck(LocaleController.getString("ManageTopicsPermission", R.string.ManageTopicsPermission), asAdminValue && adminRights.manage_topics, false); + checkCell.setTextAndCheck(LocaleController.getString(R.string.ManageTopicsPermission), asAdminValue && adminRights.manage_topics, false); } else if (currentType == TYPE_BANNED) { - checkCell.setTextAndCheck(LocaleController.getString("CreateTopicsPermission", R.string.CreateTopicsPermission), !bannedRights.manage_topics && !defaultBannedRights.manage_topics, false); + checkCell.setTextAndCheck(LocaleController.getString(R.string.CreateTopicsPermission), !bannedRights.manage_topics && !defaultBannedRights.manage_topics, false); checkCell.setIcon(defaultBannedRights.manage_topics ? R.drawable.permission_locked : 0); } else if (currentType == TYPE_ADD_BOT) { - checkCell.setTextAndCheck(LocaleController.getString("ManageTopicsPermission", R.string.ManageTopicsPermission), asAdminValue && adminRights.manage_topics, false); + checkCell.setTextAndCheck(LocaleController.getString(R.string.ManageTopicsPermission), asAdminValue && adminRights.manage_topics, false); checkCell.setIcon(myAdminRights.manage_topics || isCreator ? 0 : R.drawable.permission_locked); } } else if (position == addUsersRow) { if (currentType == TYPE_ADMIN) { if (ChatObject.isActionBannedByDefault(currentChat, ChatObject.ACTION_INVITE)) { - checkCell.setTextAndCheck(LocaleController.getString("EditAdminAddUsers", R.string.EditAdminAddUsers), adminRights.invite_users, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.EditAdminAddUsers), adminRights.invite_users, true); } else { - checkCell.setTextAndCheck(LocaleController.getString("EditAdminAddUsersViaLink", R.string.EditAdminAddUsersViaLink), adminRights.invite_users, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.EditAdminAddUsersViaLink), adminRights.invite_users, true); } } else if (currentType == TYPE_BANNED) { - checkCell.setTextAndCheck(LocaleController.getString("UserRestrictionsInviteUsers", R.string.UserRestrictionsInviteUsers), !bannedRights.invite_users && !defaultBannedRights.invite_users, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.UserRestrictionsInviteUsers), !bannedRights.invite_users && !defaultBannedRights.invite_users, true); checkCell.setIcon(defaultBannedRights.invite_users ? R.drawable.permission_locked : 0); } else if (currentType == TYPE_ADD_BOT) { - checkCell.setTextAndCheck(LocaleController.getString("EditAdminAddUsersViaLink", R.string.EditAdminAddUsersViaLink), asAdminValue && adminRights.invite_users, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.EditAdminAddUsersViaLink), asAdminValue && adminRights.invite_users, true); checkCell.setIcon(myAdminRights.invite_users || isCreator ? 0 : R.drawable.permission_locked); } } else if (position == pinMessagesRow) { if (currentType == TYPE_ADMIN || currentType == TYPE_ADD_BOT) { - checkCell.setTextAndCheck(LocaleController.getString("EditAdminPinMessages", R.string.EditAdminPinMessages), asAdminValue && adminRights.pin_messages || !defaultBannedRights.pin_messages, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.EditAdminPinMessages), asAdminValue && adminRights.pin_messages || !defaultBannedRights.pin_messages, true); if (currentType == TYPE_ADD_BOT) { checkCell.setIcon(myAdminRights.pin_messages || isCreator ? 0 : R.drawable.permission_locked); } } else if (currentType == TYPE_BANNED) { - checkCell.setTextAndCheck(LocaleController.getString("UserRestrictionsPinMessages", R.string.UserRestrictionsPinMessages), !bannedRights.pin_messages && !defaultBannedRights.pin_messages, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.UserRestrictionsPinMessages), !bannedRights.pin_messages && !defaultBannedRights.pin_messages, true); checkCell.setIcon(defaultBannedRights.pin_messages ? R.drawable.permission_locked : 0); } } else if (position == sendMessagesRow) { - checkCell.setTextAndCheck(LocaleController.getString("UserRestrictionsSend", R.string.UserRestrictionsSend), !bannedRights.send_plain && !defaultBannedRights.send_plain, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.UserRestrictionsSend), !bannedRights.send_plain && !defaultBannedRights.send_plain, true); checkCell.setIcon(defaultBannedRights.send_plain ? R.drawable.permission_locked : 0); } @@ -2043,20 +2043,20 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (position == untilDateRow) { String value; if (bannedRights.until_date == 0 || Math.abs(bannedRights.until_date - System.currentTimeMillis() / 1000) > 10 * 365 * 24 * 60 * 60) { - value = LocaleController.getString("UserRestrictionsUntilForever", R.string.UserRestrictionsUntilForever); + value = LocaleController.getString(R.string.UserRestrictionsUntilForever); } else { value = LocaleController.formatDateForBan(bannedRights.until_date); } - detailCell.setTextAndValue(LocaleController.getString("UserRestrictionsDuration", R.string.UserRestrictionsDuration), value, false); + detailCell.setTextAndValue(LocaleController.getString(R.string.UserRestrictionsDuration), value, false); } break; case VIEW_TYPE_RANK_CELL: PollEditTextCell textCell = (PollEditTextCell) holder.itemView; String hint; if (UserObject.isUserSelf(currentUser) && currentChat.creator) { - hint = LocaleController.getString("ChannelCreator", R.string.ChannelCreator); + hint = LocaleController.getString(R.string.ChannelCreator); } else { - hint = LocaleController.getString("ChannelAdmin", R.string.ChannelAdmin); + hint = LocaleController.getString(R.string.ChannelAdmin); } ignoreTextChange = true; textCell.getTextView().setEnabled(canEdit || currentChat.creator); @@ -2305,7 +2305,7 @@ private void updateAsAdmin(boolean animated) { listViewAdapter.notifyDataSetChanged(); if (addBotButtonText != null) { - addBotButtonText.setText(LocaleController.getString("AddBotButton", R.string.AddBotButton) + " " + (asAdmin ? LocaleController.getString("AddBotButtonAsAdmin", R.string.AddBotButtonAsAdmin) : LocaleController.getString("AddBotButtonAsMember", R.string.AddBotButtonAsMember)), animated, asAdmin); + addBotButtonText.setText(LocaleController.getString(R.string.AddBotButton) + " " + (asAdmin ? LocaleController.getString(R.string.AddBotButtonAsAdmin) : LocaleController.getString(R.string.AddBotButtonAsMember)), animated, asAdmin); } if (asAdminAnimator != null) { asAdminAnimator.cancel(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChooseSpeedLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/ChooseSpeedLayout.java index d6230701e3..d3ece0e958 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChooseSpeedLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChooseSpeedLayout.java @@ -35,7 +35,7 @@ public ChooseSpeedLayout(Context context, PopupSwipeBackLayout swipeBackLayout, speedSwipeBackLayout = new ActionBarPopupWindow.ActionBarPopupWindowLayout(context, 0, null); speedSwipeBackLayout.setFitItems(true); - ActionBarMenuSubItem backItem = ActionBarMenuItem.addItem(speedSwipeBackLayout, R.drawable.msg_arrow_back, LocaleController.getString("Back", R.string.Back), false, null); + ActionBarMenuSubItem backItem = ActionBarMenuItem.addItem(speedSwipeBackLayout, R.drawable.msg_arrow_back, LocaleController.getString(R.string.Back), false, null); backItem.setOnClickListener(view -> { swipeBackLayout.closeForeground(); }); @@ -87,7 +87,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { layoutParams.height = AndroidUtilities.dp(8); gap.setLayoutParams(layoutParams); - ActionBarMenuSubItem item = ActionBarMenuItem.addItem(speedSwipeBackLayout, R.drawable.msg_speed_0_2, LocaleController.getString("SpeedVerySlow", R.string.SpeedVerySlow), false, null); + ActionBarMenuSubItem item = ActionBarMenuItem.addItem(speedSwipeBackLayout, R.drawable.msg_speed_0_2, LocaleController.getString(R.string.SpeedVerySlow), false, null); item.setColors(0xfffafafa, 0xfffafafa); item.setOnClickListener((view) -> { callback.onSpeedSelected(0.2f, true, true); @@ -95,7 +95,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { item.setSelectorColor(0x0fffffff); speedItems[0] = item; - item = ActionBarMenuItem.addItem(speedSwipeBackLayout, R.drawable.msg_speed_slow, LocaleController.getString("SpeedSlow", R.string.SpeedSlow), false, null); + item = ActionBarMenuItem.addItem(speedSwipeBackLayout, R.drawable.msg_speed_slow, LocaleController.getString(R.string.SpeedSlow), false, null); item.setColors(0xfffafafa, 0xfffafafa); item.setOnClickListener((view) -> { callback.onSpeedSelected(0.5f, true, true); @@ -103,7 +103,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { item.setSelectorColor(0x0fffffff); speedItems[1] = item; - item = ActionBarMenuItem.addItem(speedSwipeBackLayout, R.drawable.msg_speed_normal, LocaleController.getString("SpeedNormal", R.string.SpeedNormal), false, null); + item = ActionBarMenuItem.addItem(speedSwipeBackLayout, R.drawable.msg_speed_normal, LocaleController.getString(R.string.SpeedNormal), false, null); item.setColors(0xfffafafa, 0xfffafafa); item.setOnClickListener((view) -> { callback.onSpeedSelected(1f, true, true); @@ -111,7 +111,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { item.setSelectorColor(0x0fffffff); speedItems[2] = item; - item = ActionBarMenuItem.addItem(speedSwipeBackLayout, R.drawable.msg_speed_fast, LocaleController.getString("SpeedFast", R.string.SpeedFast), false, null); + item = ActionBarMenuItem.addItem(speedSwipeBackLayout, R.drawable.msg_speed_fast, LocaleController.getString(R.string.SpeedFast), false, null); item.setColors(0xfffafafa, 0xfffafafa); item.setOnClickListener((view) -> { callback.onSpeedSelected(1.5f, true, true); @@ -119,7 +119,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { item.setSelectorColor(0x0fffffff); speedItems[3] = item; - item = ActionBarMenuItem.addItem(speedSwipeBackLayout, R.drawable.msg_speed_superfast, LocaleController.getString("SpeedVeryFast", R.string.SpeedVeryFast), false, null); + item = ActionBarMenuItem.addItem(speedSwipeBackLayout, R.drawable.msg_speed_superfast, LocaleController.getString(R.string.SpeedVeryFast), false, null); item.setColors(0xfffafafa, 0xfffafafa); item.setOnClickListener((view) -> { callback.onSpeedSelected(2f, true, true); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AdminLogFilterAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AdminLogFilterAlert.java index cdc83a9736..6fbc38453e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AdminLogFilterAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AdminLogFilterAlert.java @@ -343,7 +343,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { saveButton = new BottomSheet.BottomSheetCell(context, 1); saveButton.setBackgroundDrawable(Theme.getSelectorDrawable(false)); - saveButton.setTextAndIcon(LocaleController.getString("Save", R.string.Save).toUpperCase(), 0); + saveButton.setTextAndIcon(LocaleController.getString(R.string.Save).toUpperCase(), 0); saveButton.setTextColor(Theme.getColor(Theme.key_dialogTextBlue2)); saveButton.setOnClickListener(v -> { delegate.didSelectRights(currentFilter, selectedAdmins); @@ -456,33 +456,33 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 0: { TextCell cell = (TextCell) holder.itemView; if (position == 0) { - cell.setTextAndCheck(LocaleController.getString("EventLogFilterAll", R.string.EventLogFilterAll), currentFilter == null, true); + cell.setTextAndCheck(LocaleController.getString(R.string.EventLogFilterAll), currentFilter == null, true); } else if (position == restrictionsRow) { - cell.setTextAndCheck(LocaleController.getString("EventLogFilterNewRestrictions", R.string.EventLogFilterNewRestrictions), currentFilter == null || currentFilter.kick && currentFilter.ban && currentFilter.unkick && currentFilter.unban, true); + cell.setTextAndCheck(LocaleController.getString(R.string.EventLogFilterNewRestrictions), currentFilter == null || currentFilter.kick && currentFilter.ban && currentFilter.unkick && currentFilter.unban, true); } else if (position == adminsRow) { - cell.setTextAndCheck(LocaleController.getString("EventLogFilterNewAdmins", R.string.EventLogFilterNewAdmins), currentFilter == null || currentFilter.promote && currentFilter.demote, true); + cell.setTextAndCheck(LocaleController.getString(R.string.EventLogFilterNewAdmins), currentFilter == null || currentFilter.promote && currentFilter.demote, true); } else if (position == membersRow) { - cell.setTextAndCheck(LocaleController.getString("EventLogFilterNewMembers", R.string.EventLogFilterNewMembers), currentFilter == null || currentFilter.invite && currentFilter.join, true); + cell.setTextAndCheck(LocaleController.getString(R.string.EventLogFilterNewMembers), currentFilter == null || currentFilter.invite && currentFilter.join, true); } else if (position == infoRow) { if (isMegagroup) { - cell.setTextAndCheck(LocaleController.getString("EventLogFilterGroupInfo", R.string.EventLogFilterGroupInfo), currentFilter == null || currentFilter.info, true); + cell.setTextAndCheck(LocaleController.getString(R.string.EventLogFilterGroupInfo), currentFilter == null || currentFilter.info, true); } else { - cell.setTextAndCheck(LocaleController.getString("EventLogFilterChannelInfo", R.string.EventLogFilterChannelInfo), currentFilter == null || currentFilter.info, true); + cell.setTextAndCheck(LocaleController.getString(R.string.EventLogFilterChannelInfo), currentFilter == null || currentFilter.info, true); } } else if (position == deleteRow) { - cell.setTextAndCheck(LocaleController.getString("EventLogFilterDeletedMessages", R.string.EventLogFilterDeletedMessages), currentFilter == null || currentFilter.delete, true); + cell.setTextAndCheck(LocaleController.getString(R.string.EventLogFilterDeletedMessages), currentFilter == null || currentFilter.delete, true); } else if (position == editRow) { - cell.setTextAndCheck(LocaleController.getString("EventLogFilterEditedMessages", R.string.EventLogFilterEditedMessages), currentFilter == null || currentFilter.edit, true); + cell.setTextAndCheck(LocaleController.getString(R.string.EventLogFilterEditedMessages), currentFilter == null || currentFilter.edit, true); } else if (position == pinnedRow) { - cell.setTextAndCheck(LocaleController.getString("EventLogFilterPinnedMessages", R.string.EventLogFilterPinnedMessages), currentFilter == null || currentFilter.pinned, true); + cell.setTextAndCheck(LocaleController.getString(R.string.EventLogFilterPinnedMessages), currentFilter == null || currentFilter.pinned, true); } else if (position == leavingRow) { - cell.setTextAndCheck(LocaleController.getString("EventLogFilterLeavingMembers", R.string.EventLogFilterLeavingMembers), currentFilter == null || currentFilter.leave, callsRow != -1); + cell.setTextAndCheck(LocaleController.getString(R.string.EventLogFilterLeavingMembers), currentFilter == null || currentFilter.leave, callsRow != -1); } else if (position == callsRow) { - cell.setTextAndCheck(LocaleController.getString("EventLogFilterCalls", R.string.EventLogFilterCalls), currentFilter == null || currentFilter.group_call, false); + cell.setTextAndCheck(LocaleController.getString(R.string.EventLogFilterCalls), currentFilter == null || currentFilter.group_call, false); } else if (position == invitesRow) { - cell.setTextAndCheck(LocaleController.getString("EventLogFilterInvites", R.string.EventLogFilterInvites), currentFilter == null || currentFilter.invites, true); + cell.setTextAndCheck(LocaleController.getString(R.string.EventLogFilterInvites), currentFilter == null || currentFilter.invites, true); } else if (position == allAdminsRow) { - cell.setTextAndCheck(LocaleController.getString("EventLogAllAdmins", R.string.EventLogAllAdmins), selectedAdmins == null, true); + cell.setTextAndCheck(LocaleController.getString(R.string.EventLogAllAdmins), selectedAdmins == null, true); } break; } 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 ad0d376f5e..3c5547cc78 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java @@ -121,7 +121,6 @@ import org.telegram.ui.ThemePreviewActivity; import org.telegram.ui.TooManyCommunitiesActivity; -import java.net.IDN; import java.time.YearMonth; import java.util.ArrayList; import java.util.Arrays; @@ -160,10 +159,9 @@ public static Dialog createForgotPasscodeDialog(Context ctx) { public static Dialog createLocationRequiredDialog(Context ctx, boolean friends) { return new AlertDialog.Builder(ctx) - .setMessage(AndroidUtilities.replaceTags(friends ? LocaleController.getString("PermissionNoLocationFriends", R.string.PermissionNoLocationFriends) : - LocaleController.getString("PermissionNoLocationPeopleNearby", R.string.PermissionNoLocationPeopleNearby))) + .setMessage(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PermissionNoLocationFriends))) .setTopAnimation(R.raw.permission_request_location, PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)) - .setPositiveButton(LocaleController.getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialogInterface, i) -> { + .setPositiveButton(LocaleController.getString(R.string.PermissionOpenSettings), (dialogInterface, i) -> { try { Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); @@ -172,7 +170,7 @@ public static Dialog createLocationRequiredDialog(Context ctx, boolean friends) FileLog.e(e); } }) - .setNegativeButton(LocaleController.getString("ContactsPermissionAlertNotNow", R.string.ContactsPermissionAlertNotNow), null) + .setNegativeButton(LocaleController.getString(R.string.ContactsPermissionAlertNotNow), null) .create(); } @@ -191,7 +189,7 @@ public static Dialog createBackgroundActivityDialog(Context ctx) { FileLog.e(e); } }) - .setNegativeButton(LocaleController.getString("ContactsPermissionAlertNotNow", R.string.ContactsPermissionAlertNotNow), null) + .setNegativeButton(LocaleController.getString(R.string.ContactsPermissionAlertNotNow), null) .setOnDismissListener(dialog -> SharedConfig.BackgroundActivityPrefs.increaseDismissedCount()) .create(); } @@ -238,19 +236,20 @@ public static Dialog createWebViewPermissionsRequestDialog(Context ctx, Theme.Re .create(); } - public static BottomBuilder createApkRestrictedDialog(Context ctx, Theme.ResourcesProvider resourcesProvider) { - BottomBuilder builder = new BottomBuilder(ctx); - builder.addTitle(LocaleController.getString("ApkRestricted", R.string.ApkRestricted)); - builder.addItem(LocaleController.getString("PermissionOpenSettings", R.string.PermissionOpenSettings), R.drawable.menu_settings, (i) -> { - try { - ctx.startActivity(new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, Uri.parse("package:" + ctx.getPackageName()))); - } catch (Exception e) { - FileLog.e(e); - } - return Unit.INSTANCE; - }); - builder.addCancelItem(); - return builder; + @RequiresApi(api = Build.VERSION_CODES.O) + public static Dialog createApkRestrictedDialog(Context ctx, Theme.ResourcesProvider resourcesProvider) { + return new AlertDialog.Builder(ctx, resourcesProvider) + .setMessage(LocaleController.getString(R.string.ApkRestricted)) + .setTopAnimation(R.raw.permission_request_apk, PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)) + .setPositiveButton(LocaleController.getString(R.string.PermissionOpenSettings), (dialogInterface, i) -> { + try { + ctx.startActivity(new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, Uri.parse("package:" + ctx.getPackageName()))); + } catch (Exception e) { + FileLog.e(e); + } + }) + .setNegativeButton(LocaleController.getString(R.string.ContactsPermissionAlertNotNow), null) + .create(); } public static Dialog processError(int currentAccount, TLRPC.TL_error error, BaseFragment fragment, TLObject request, Object... args) { @@ -284,39 +283,39 @@ public static Dialog processError(int currentAccount, TLRPC.TL_error error, Base peer = null; } if (error.text.contains("USER_IS_BLOCKED")) { - showSimpleAlert(fragment, LocaleController.getString("ImportErrorTitle", R.string.ImportErrorTitle), LocaleController.getString("ImportErrorUserBlocked", R.string.ImportErrorUserBlocked)); + showSimpleAlert(fragment, LocaleController.getString(R.string.ImportErrorTitle), LocaleController.getString(R.string.ImportErrorUserBlocked)); } else if (error.text.contains("USER_NOT_MUTUAL_CONTACT")) { - showSimpleAlert(fragment, LocaleController.getString("ImportErrorTitle", R.string.ImportErrorTitle), LocaleController.getString("ImportMutualError", R.string.ImportMutualError)); + showSimpleAlert(fragment, LocaleController.getString(R.string.ImportErrorTitle), LocaleController.getString(R.string.ImportMutualError)); } else if (error.text.contains("IMPORT_PEER_TYPE_INVALID")) { if (peer instanceof TLRPC.TL_inputPeerUser) { - showSimpleAlert(fragment, LocaleController.getString("ImportErrorTitle", R.string.ImportErrorTitle), LocaleController.getString("ImportErrorChatInvalidUser", R.string.ImportErrorChatInvalidUser)); + showSimpleAlert(fragment, LocaleController.getString(R.string.ImportErrorTitle), LocaleController.getString(R.string.ImportErrorChatInvalidUser)); } else { - showSimpleAlert(fragment, LocaleController.getString("ImportErrorTitle", R.string.ImportErrorTitle), LocaleController.getString("ImportErrorChatInvalidGroup", R.string.ImportErrorChatInvalidGroup)); + showSimpleAlert(fragment, LocaleController.getString(R.string.ImportErrorTitle), LocaleController.getString(R.string.ImportErrorChatInvalidGroup)); } } else if (error.text.contains("CHAT_ADMIN_REQUIRED")) { - showSimpleAlert(fragment, LocaleController.getString("ImportErrorTitle", R.string.ImportErrorTitle), LocaleController.getString("ImportErrorNotAdmin", R.string.ImportErrorNotAdmin)); + showSimpleAlert(fragment, LocaleController.getString(R.string.ImportErrorTitle), LocaleController.getString(R.string.ImportErrorNotAdmin)); } else if (error.text.startsWith("IMPORT_FORMAT")) { - showSimpleAlert(fragment, LocaleController.getString("ImportErrorTitle", R.string.ImportErrorTitle), LocaleController.getString("ImportErrorFileFormatInvalid", R.string.ImportErrorFileFormatInvalid)); + showSimpleAlert(fragment, LocaleController.getString(R.string.ImportErrorTitle), LocaleController.getString(R.string.ImportErrorFileFormatInvalid)); } else if (error.text.startsWith("PEER_ID_INVALID")) { - showSimpleAlert(fragment, LocaleController.getString("ImportErrorTitle", R.string.ImportErrorTitle), LocaleController.getString("ImportErrorPeerInvalid", R.string.ImportErrorPeerInvalid)); + showSimpleAlert(fragment, LocaleController.getString(R.string.ImportErrorTitle), LocaleController.getString(R.string.ImportErrorPeerInvalid)); } else if (error.text.contains("IMPORT_LANG_NOT_FOUND")) { - showSimpleAlert(fragment, LocaleController.getString("ImportErrorTitle", R.string.ImportErrorTitle), LocaleController.getString("ImportErrorFileLang", R.string.ImportErrorFileLang)); + showSimpleAlert(fragment, LocaleController.getString(R.string.ImportErrorTitle), LocaleController.getString(R.string.ImportErrorFileLang)); } else if (error.text.contains("IMPORT_UPLOAD_FAILED")) { - showSimpleAlert(fragment, LocaleController.getString("ImportErrorTitle", R.string.ImportErrorTitle), LocaleController.getString("ImportFailedToUpload", R.string.ImportFailedToUpload)); + showSimpleAlert(fragment, LocaleController.getString(R.string.ImportErrorTitle), LocaleController.getString(R.string.ImportFailedToUpload)); } else if (error.text.startsWith("FLOOD_WAIT")) { showFloodWaitAlert(error.text, fragment); } else { - showSimpleAlert(fragment, LocaleController.getString("ImportErrorTitle", R.string.ImportErrorTitle), LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred) + "\n" + error.text); + showSimpleAlert(fragment, LocaleController.getString(R.string.ImportErrorTitle), LocaleController.getString(R.string.ErrorOccurred) + "\n" + error.text); } } else if (request instanceof TLRPC.TL_account_saveSecureValue || request instanceof TLRPC.TL_account_getAuthorizationForm) { if (error.text.contains("PHONE_NUMBER_INVALID")) { - showSimpleAlert(fragment, LocaleController.getString("InvalidPhoneNumber", R.string.InvalidPhoneNumber)); + showSimpleAlert(fragment, LocaleController.getString(R.string.InvalidPhoneNumber)); } else if (error.text.startsWith("FLOOD_WAIT")) { - showSimpleAlert(fragment, LocaleController.getString("FloodWait", R.string.FloodWait)); + showSimpleAlert(fragment, LocaleController.getString(R.string.FloodWait)); } else if ("APP_VERSION_OUTDATED".equals(error.text)) { - showUpdateAppAlert(fragment.getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + showUpdateAppAlert(fragment.getParentActivity(), LocaleController.getString(R.string.UpdateAppAlert), true); } else { - showSimpleAlert(fragment, LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred) + "\n" + error.text); + showSimpleAlert(fragment, LocaleController.getString(R.string.ErrorOccurred) + "\n" + error.text); } } else if (request instanceof TLRPC.TL_channels_joinChannel || request instanceof TLRPC.TL_channels_editAdmin || @@ -375,9 +374,9 @@ public static Dialog processError(int currentAccount, TLRPC.TL_error error, Base } else if (request instanceof TLRPC.TL_messages_editMessage) { if (!error.text.equals("MESSAGE_NOT_MODIFIED")) { if (fragment != null) { - showSimpleAlert(fragment, LocaleController.getString("EditMessageError", R.string.EditMessageError)); + showSimpleAlert(fragment, LocaleController.getString(R.string.EditMessageError)); } else { - showSimpleToast(null, LocaleController.getString("EditMessageError", R.string.EditMessageError)); + showSimpleToast(null, LocaleController.getString(R.string.EditMessageError)); } } } else if (request instanceof TLRPC.TL_messages_sendMessage || @@ -446,15 +445,15 @@ public static Dialog processError(int currentAccount, TLRPC.TL_error error, Base NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.needShowAlert, 5); break; case "SCHEDULE_TOO_MUCH": - showSimpleToast(fragment, LocaleController.getString("MessageScheduledLimitReached", R.string.MessageScheduledLimitReached)); + showSimpleToast(fragment, LocaleController.getString(R.string.MessageScheduledLimitReached)); break; } } } else if (request instanceof TLRPC.TL_messages_importChatInvite) { if (error.text.startsWith("FLOOD_WAIT")) { - showSimpleAlert(fragment, LocaleController.getString("FloodWait", R.string.FloodWait)); + showSimpleAlert(fragment, LocaleController.getString(R.string.FloodWait)); } else if (error.text.equals("USERS_TOO_MUCH")) { - showSimpleAlert(fragment, LocaleController.getString("JoinToGroupErrorFull", R.string.JoinToGroupErrorFull)); + showSimpleAlert(fragment, LocaleController.getString(R.string.JoinToGroupErrorFull)); } else if (error.text.equals("CHANNELS_TOO_MUCH")) { if (fragment.getParentActivity() != null) { fragment.showDialog(new LimitReachedBottomSheet(fragment, fragment.getParentActivity(), LimitReachedBottomSheet.TYPE_TO0_MANY_COMMUNITIES, currentAccount, null)); @@ -462,57 +461,57 @@ public static Dialog processError(int currentAccount, TLRPC.TL_error error, Base fragment.presentFragment(new TooManyCommunitiesActivity(TooManyCommunitiesActivity.TYPE_JOIN)); } } else if (error.text.equals("INVITE_HASH_EXPIRED")) { - showSimpleAlert(fragment, LocaleController.getString("ExpiredLink", R.string.ExpiredLink), LocaleController.getString("InviteExpired", R.string.InviteExpired)); + showSimpleAlert(fragment, LocaleController.getString(R.string.ExpiredLink), LocaleController.getString(R.string.InviteExpired)); } else { - showSimpleAlert(fragment, LocaleController.getString("JoinToGroupErrorNotExist", R.string.JoinToGroupErrorNotExist)); + showSimpleAlert(fragment, LocaleController.getString(R.string.JoinToGroupErrorNotExist)); } } else if (request instanceof TLRPC.TL_messages_getAttachedStickers) { if (fragment != null && fragment.getParentActivity() != null) { - Toast.makeText(fragment.getParentActivity(), LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred) + "\n" + error.text, Toast.LENGTH_SHORT).show(); + Toast.makeText(fragment.getParentActivity(), LocaleController.getString(R.string.ErrorOccurred) + "\n" + error.text, Toast.LENGTH_SHORT).show(); } } else if (request instanceof TLRPC.TL_account_confirmPhone || request instanceof TLRPC.TL_account_verifyPhone || request instanceof TLRPC.TL_account_verifyEmail) { if (error.text.contains("PHONE_CODE_EMPTY") || error.text.contains("PHONE_CODE_INVALID") || error.text.contains("CODE_INVALID") || error.text.contains("CODE_EMPTY")) { - return showSimpleAlert(fragment, LocaleController.getString("InvalidCode", R.string.InvalidCode)); + return showSimpleAlert(fragment, LocaleController.getString(R.string.InvalidCode)); } else if (error.text.contains("PHONE_CODE_EXPIRED") || error.text.contains("EMAIL_VERIFY_EXPIRED")) { - return showSimpleAlert(fragment, LocaleController.getString("CodeExpired", R.string.CodeExpired)); + return showSimpleAlert(fragment, LocaleController.getString(R.string.CodeExpired)); } else if (error.text.startsWith("FLOOD_WAIT")) { - return showSimpleAlert(fragment, LocaleController.getString("FloodWait", R.string.FloodWait)); + return showSimpleAlert(fragment, LocaleController.getString(R.string.FloodWait)); } else { return showSimpleAlert(fragment, error.text); } } else if (request instanceof TLRPC.TL_auth_resendCode) { if (error.text.contains("PHONE_NUMBER_INVALID")) { - return showSimpleAlert(fragment, LocaleController.getString("InvalidPhoneNumber", R.string.InvalidPhoneNumber)); + return showSimpleAlert(fragment, LocaleController.getString(R.string.InvalidPhoneNumber)); } else if (error.text.contains("PHONE_CODE_EMPTY") || error.text.contains("PHONE_CODE_INVALID")) { - return showSimpleAlert(fragment, LocaleController.getString("InvalidCode", R.string.InvalidCode)); + return showSimpleAlert(fragment, LocaleController.getString(R.string.InvalidCode)); } else if (error.text.contains("PHONE_CODE_EXPIRED")) { - return showSimpleAlert(fragment, LocaleController.getString("CodeExpired", R.string.CodeExpired)); + return showSimpleAlert(fragment, LocaleController.getString(R.string.CodeExpired)); } else if (error.text.startsWith("FLOOD_WAIT")) { - return showSimpleAlert(fragment, LocaleController.getString("FloodWait", R.string.FloodWait)); + return showSimpleAlert(fragment, LocaleController.getString(R.string.FloodWait)); } else if (error.code != -1000) { - return showSimpleAlert(fragment, LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred) + "\n" + error.text); + return showSimpleAlert(fragment, LocaleController.getString(R.string.ErrorOccurred) + "\n" + error.text); } } else if (request instanceof TLRPC.TL_account_sendConfirmPhoneCode) { if (error.code == 400) { - return showSimpleAlert(fragment, LocaleController.getString("CancelLinkExpired", R.string.CancelLinkExpired)); + return showSimpleAlert(fragment, LocaleController.getString(R.string.CancelLinkExpired)); } else { if (error.text.startsWith("FLOOD_WAIT")) { - return showSimpleAlert(fragment, LocaleController.getString("FloodWait", R.string.FloodWait)); + return showSimpleAlert(fragment, LocaleController.getString(R.string.FloodWait)); } else { - return showSimpleAlert(fragment, LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred)); + return showSimpleAlert(fragment, LocaleController.getString(R.string.ErrorOccurred)); } } } else if (request instanceof TLRPC.TL_account_changePhone) { if (error.text.contains("PHONE_NUMBER_INVALID")) { - showSimpleAlert(fragment, LocaleController.getString("InvalidPhoneNumber", R.string.InvalidPhoneNumber)); + showSimpleAlert(fragment, LocaleController.getString(R.string.InvalidPhoneNumber)); } else if (error.text.contains("PHONE_CODE_EMPTY") || error.text.contains("PHONE_CODE_INVALID")) { - showSimpleAlert(fragment, LocaleController.getString("InvalidCode", R.string.InvalidCode)); + showSimpleAlert(fragment, LocaleController.getString(R.string.InvalidCode)); } else if (error.text.contains("PHONE_CODE_EXPIRED")) { - showSimpleAlert(fragment, LocaleController.getString("CodeExpired", R.string.CodeExpired)); + showSimpleAlert(fragment, LocaleController.getString(R.string.CodeExpired)); } else if (error.text.startsWith("FLOOD_WAIT")) { - showSimpleAlert(fragment, LocaleController.getString("FloodWait", R.string.FloodWait)); + showSimpleAlert(fragment, LocaleController.getString(R.string.FloodWait)); } else if (error.text.contains("FRESH_CHANGE_PHONE_FORBIDDEN")) { - showSimpleAlert(fragment, LocaleController.getString(R.string.FreshChangePhoneForbiddenTitle), LocaleController.getString("FreshChangePhoneForbidden", R.string.FreshChangePhoneForbidden)); + showSimpleAlert(fragment, LocaleController.getString(R.string.FreshChangePhoneForbiddenTitle), LocaleController.getString(R.string.FreshChangePhoneForbidden)); } else { showSimpleAlert(fragment, error.text); } @@ -520,35 +519,35 @@ public static Dialog processError(int currentAccount, TLRPC.TL_error error, Base if (error.text.contains("PHONE_NUMBER_INVALID")) { LoginActivity.needShowInvalidAlert(fragment, (String) args[0], false); } else if (error.text.contains("PHONE_CODE_EMPTY") || error.text.contains("PHONE_CODE_INVALID")) { - showSimpleAlert(fragment, LocaleController.getString("InvalidCode", R.string.InvalidCode)); + showSimpleAlert(fragment, LocaleController.getString(R.string.InvalidCode)); } else if (error.text.contains("PHONE_CODE_EXPIRED")) { - showSimpleAlert(fragment, LocaleController.getString("CodeExpired", R.string.CodeExpired)); + showSimpleAlert(fragment, LocaleController.getString(R.string.CodeExpired)); } else if (error.text.startsWith("FLOOD_WAIT")) { - showSimpleAlert(fragment, LocaleController.getString("FloodWait", R.string.FloodWait)); + showSimpleAlert(fragment, LocaleController.getString(R.string.FloodWait)); } else if (error.text.startsWith("PHONE_NUMBER_OCCUPIED")) { showSimpleAlert(fragment, LocaleController.formatString("ChangePhoneNumberOccupied", R.string.ChangePhoneNumberOccupied, args[0])); } else if (error.text.startsWith("PHONE_NUMBER_BANNED")) { LoginActivity.needShowInvalidAlert(fragment, (String) args[0], true); } else { - showSimpleAlert(fragment, LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred)); + showSimpleAlert(fragment, LocaleController.getString(R.string.ErrorOccurred)); } } else if (request instanceof TLRPC.TL_account_updateUsername) { switch (error.text) { case "USERNAME_INVALID": - showSimpleAlert(fragment, LocaleController.getString("UsernameInvalid", R.string.UsernameInvalid)); + showSimpleAlert(fragment, LocaleController.getString(R.string.UsernameInvalid)); break; case "USERNAME_OCCUPIED": - showSimpleAlert(fragment, LocaleController.getString("UsernameInUse", R.string.UsernameInUse)); + showSimpleAlert(fragment, LocaleController.getString(R.string.UsernameInUse)); break; default: - showSimpleAlert(fragment, LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred)); + showSimpleAlert(fragment, LocaleController.getString(R.string.ErrorOccurred)); break; } } else if (request instanceof TLRPC.TL_contacts_importContacts) { if (error.text.startsWith("FLOOD_WAIT")) { - showSimpleAlert(fragment, LocaleController.getString("FloodWait", R.string.FloodWait)); + showSimpleAlert(fragment, LocaleController.getString(R.string.FloodWait)); } else { - showSimpleAlert(fragment, LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred) + "\n" + error.text); + showSimpleAlert(fragment, LocaleController.getString(R.string.ErrorOccurred) + "\n" + error.text); } } else if (request instanceof TLRPC.TL_account_getPassword || request instanceof TLRPC.TL_account_getTmpPassword) { if (error.text.startsWith("FLOOD_WAIT")) { @@ -559,10 +558,10 @@ public static Dialog processError(int currentAccount, TLRPC.TL_error error, Base } else if (request instanceof TLRPC.TL_payments_sendPaymentForm) { switch (error.text) { case "BOT_PRECHECKOUT_FAILED": - showSimpleToast(fragment, LocaleController.getString("PaymentPrecheckoutFailed", R.string.PaymentPrecheckoutFailed)); + showSimpleToast(fragment, LocaleController.getString(R.string.PaymentPrecheckoutFailed)); break; case "PAYMENT_FAILED": - showSimpleToast(fragment, LocaleController.getString("PaymentFailed", R.string.PaymentFailed)); + showSimpleToast(fragment, LocaleController.getString(R.string.PaymentFailed)); break; default: showSimpleToast(fragment, error.text); @@ -571,7 +570,7 @@ public static Dialog processError(int currentAccount, TLRPC.TL_error error, Base } else if (request instanceof TLRPC.TL_payments_validateRequestedInfo) { switch (error.text) { case "SHIPPING_NOT_AVAILABLE": - showSimpleToast(fragment, LocaleController.getString("PaymentNoShippingMethod", R.string.PaymentNoShippingMethod)); + showSimpleToast(fragment, LocaleController.getString(R.string.PaymentNoShippingMethod)); break; default: showSimpleToast(fragment, error.text); @@ -584,7 +583,7 @@ public static Dialog processError(int currentAccount, TLRPC.TL_error error, Base showSimpleToast(fragment, error.text); } } else if (request instanceof TLRPC.TL_payments_assignPlayMarketTransaction) { - showSimpleAlert(fragment, LocaleController.getString("PaymentConfirmationError", R.string.PaymentConfirmationError) + "\n" + error.text); + showSimpleAlert(fragment, LocaleController.getString(R.string.PaymentConfirmationError) + "\n" + error.text); } return null; @@ -610,9 +609,12 @@ public static AlertDialog showUpdateAppAlert(final Context context, final String return null; } AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); + builder.setTitle(LocaleController.getString(R.string.AppName)); builder.setMessage(text); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); +// if (updateApp) { +// builder.setNegativeButton(LocaleController.getString(R.string.UpdateApp), (dialog, which) -> Browser.openUrl(context, BuildVars.PLAYSTORE_APP_URL)); +// } return builder.show(); } @@ -664,23 +666,23 @@ public static AlertDialog.Builder createLanguageAlert(LaunchActivity activity, f LocaleController.LocaleInfo currentInfo = LocaleController.getInstance().getCurrentLocaleInfo(); String str; if (currentInfo.shortName.equals(language.lang_code)) { - builder.setTitle(LocaleController.getString("Language", R.string.Language)); + builder.setTitle(LocaleController.getString(R.string.Language)); str = LocaleController.formatString("LanguageSame", R.string.LanguageSame, language.name); - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); - builder.setNeutralButton(LocaleController.getString("SETTINGS", R.string.SETTINGS), (dialog, which) -> activity.presentFragment(new LanguageSelectActivity())); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); + builder.setNeutralButton(LocaleController.getString(R.string.SETTINGS), (dialog, which) -> activity.presentFragment(new LanguageSelectActivity())); } else { if (language.strings_count == 0) { - builder.setTitle(LocaleController.getString("LanguageUnknownTitle", R.string.LanguageUnknownTitle)); + builder.setTitle(LocaleController.getString(R.string.LanguageUnknownTitle)); str = LocaleController.formatString("LanguageUnknownCustomAlert", R.string.LanguageUnknownCustomAlert, language.name); - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); } else { - builder.setTitle(LocaleController.getString("LanguageTitle", R.string.LanguageTitle)); + builder.setTitle(LocaleController.getString(R.string.LanguageTitle)); if (language.official) { str = LocaleController.formatString("LanguageAlert", R.string.LanguageAlert, language.name, (int) Math.ceil(language.translated_count / (float) language.strings_count * 100)); } else { str = LocaleController.formatString("LanguageCustomAlert", R.string.LanguageCustomAlert, language.name, (int) Math.ceil(language.translated_count / (float) language.strings_count * 100)); } - builder.setPositiveButton(LocaleController.getString("Change", R.string.Change), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Change), (dialogInterface, i) -> { String key; if (language.official) { key = "remote_" + language.lang_code; @@ -705,7 +707,7 @@ public static AlertDialog.Builder createLanguageAlert(LaunchActivity activity, f LocaleController.getInstance().applyLanguage(localeInfo, true, false, false, true, UserConfig.selectedAccount, null); activity.rebuildAllFragments(true); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); } } @@ -798,12 +800,12 @@ public static AlertDialog.Builder createSimpleAlert(Context context, final Strin return null; } AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(title == null ? LocaleController.getString("AppName", R.string.AppName) : title); + builder.setTitle(title == null ? LocaleController.getString(R.string.AppName) : title); builder.setMessage(text); if (positiveButton == null) { - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); } else { - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.setPositiveButton(positiveButton, (dialog, which) -> { dialog.dismiss(); if (positive != null) { @@ -851,7 +853,7 @@ public static void showBlockReportSpamReplyAlert(ChatActivity fragment, MessageO } }); - builder.setTitle(LocaleController.getString("BlockUser", R.string.BlockUser)); + builder.setTitle(LocaleController.getString(R.string.BlockUser)); if (user != null) { builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("BlockUserReplyAlert", R.string.BlockUserReplyAlert, UserObject.getFirstName(user)))); } else { @@ -865,7 +867,7 @@ public static void showBlockReportSpamReplyAlert(ChatActivity fragment, MessageO cells[0] = new CheckBoxCell(fragment.getParentActivity(), 1, resourcesProvider); cells[0].setBackgroundDrawable(Theme.getSelectorDrawable(false)); cells[0].setTag(0); - cells[0].setText(LocaleController.getString("DeleteReportSpam", R.string.DeleteReportSpam), "", true, false); + cells[0].setText(LocaleController.getString(R.string.DeleteReportSpam), "", true, false); cells[0].setPadding(LocaleController.isRTL ? dp(16) : dp(8), 0, LocaleController.isRTL ? dp(8) : dp(16), 0); linearLayout.addView(cells[0], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -876,7 +878,7 @@ public static void showBlockReportSpamReplyAlert(ChatActivity fragment, MessageO builder.setView(linearLayout); - builder.setPositiveButton(LocaleController.getString("BlockAndDeleteReplies", R.string.BlockAndDeleteReplies), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.BlockAndDeleteReplies), (dialogInterface, i) -> { if (user != null) { accountInstance.getMessagesStorage().deleteUserChatHistory(fragment.getDialogId(), user.id); } else { @@ -897,7 +899,7 @@ public static void showBlockReportSpamReplyAlert(ChatActivity fragment, MessageO } else if (fragment != null) { BulletinFactory.of(fragment).createReportSent(resourcesProvider).show(); } else { - Toast.makeText(fragment.getParentActivity(), LocaleController.getString("ReportChatSent", R.string.ReportChatSent), Toast.LENGTH_SHORT).show(); + Toast.makeText(fragment.getParentActivity(), LocaleController.getString(R.string.ReportChatSent), Toast.LENGTH_SHORT).show(); } } } @@ -907,7 +909,7 @@ public static void showBlockReportSpamReplyAlert(ChatActivity fragment, MessageO } }); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); fragment.showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -929,7 +931,7 @@ public static void showBlockReportSpamAlert(BaseFragment fragment, long dialog_i if (currentUser != null) { builder.setTitle(LocaleController.formatString("BlockUserTitle", R.string.BlockUserTitle, UserObject.getFirstName(currentUser))); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("BlockUserAlert", R.string.BlockUserAlert, UserObject.getFirstName(currentUser)))); - reportText = LocaleController.getString("BlockContact", R.string.BlockContact); + reportText = LocaleController.getString(R.string.BlockContact); cells = new CheckBoxCell[2]; LinearLayout linearLayout = new LinearLayout(fragment.getParentActivity()); @@ -942,7 +944,7 @@ public static void showBlockReportSpamAlert(BaseFragment fragment, long dialog_i cells[a].setBackgroundDrawable(Theme.getSelectorDrawable(false)); cells[a].setTag(a); if (a == 0) { - cells[a].setText(LocaleController.getString("DeleteReportSpam", R.string.DeleteReportSpam), "", true, false); + cells[a].setText(LocaleController.getString(R.string.DeleteReportSpam), "", true, false); } else { cells[a].setText(LocaleController.formatString("DeleteThisChat", R.string.DeleteThisChat), "", true, false); } @@ -957,22 +959,22 @@ public static void showBlockReportSpamAlert(BaseFragment fragment, long dialog_i } else { cells = null; if (currentChat != null && isLocation) { - builder.setTitle(LocaleController.getString("ReportUnrelatedGroup", R.string.ReportUnrelatedGroup)); + builder.setTitle(LocaleController.getString(R.string.ReportUnrelatedGroup)); if (chatInfo != null && chatInfo.location instanceof TLRPC.TL_channelLocation) { TLRPC.TL_channelLocation location = (TLRPC.TL_channelLocation) chatInfo.location; builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("ReportUnrelatedGroupText", R.string.ReportUnrelatedGroupText, location.address))); } else { - builder.setMessage(LocaleController.getString("ReportUnrelatedGroupTextNoAddress", R.string.ReportUnrelatedGroupTextNoAddress)); + builder.setMessage(LocaleController.getString(R.string.ReportUnrelatedGroupTextNoAddress)); } } else { - builder.setTitle(LocaleController.getString("ReportSpamTitle", R.string.ReportSpamTitle)); + builder.setTitle(LocaleController.getString(R.string.ReportSpamTitle)); if (ChatObject.isChannel(currentChat) && !currentChat.megagroup) { - builder.setMessage(LocaleController.getString("ReportSpamAlertChannel", R.string.ReportSpamAlertChannel)); + builder.setMessage(LocaleController.getString(R.string.ReportSpamAlertChannel)); } else { - builder.setMessage(LocaleController.getString("ReportSpamAlertGroup", R.string.ReportSpamAlertGroup)); + builder.setMessage(LocaleController.getString(R.string.ReportSpamAlertGroup)); } } - reportText = LocaleController.getString("ReportChat", R.string.ReportChat); + reportText = LocaleController.getString(R.string.ReportChat); } builder.setPositiveButton(reportText, (dialogInterface, i) -> { if (currentUser != null) { @@ -996,7 +998,7 @@ public static void showBlockReportSpamAlert(BaseFragment fragment, long dialog_i callback.run(0); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); fragment.showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -1017,11 +1019,11 @@ public static void showCustomNotificationsDialog(BaseFragment parentFragment, lo boolean defaultEnabled = NotificationsController.getInstance(currentAccount).isGlobalNotificationsEnabled(did, false, false); String[] descriptions = new String[]{ - LocaleController.getString("NotificationsTurnOn", R.string.NotificationsTurnOn), + LocaleController.getString(R.string.NotificationsTurnOn), LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Hours", 1)), LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Days", 2)), - did == 0 && parentFragment instanceof NotificationsCustomSettingsActivity ? null : LocaleController.getString("NotificationsCustomize", R.string.NotificationsCustomize), - LocaleController.getString("NotificationsTurnOff", R.string.NotificationsTurnOff) + did == 0 && parentFragment instanceof NotificationsCustomSettingsActivity ? null : LocaleController.getString(R.string.NotificationsCustomize), + LocaleController.getString(R.string.NotificationsTurnOff) }; int[] icons = new int[]{ @@ -1140,7 +1142,7 @@ public static void showCustomNotificationsDialog(BaseFragment parentFragment, lo } }); } - builder.setTitle(LocaleController.getString("Notifications", R.string.Notifications)); + builder.setTitle(LocaleController.getString(R.string.Notifications)); builder.setView(linearLayout); parentFragment.showDialog(builder.create()); } @@ -1150,22 +1152,22 @@ public static AlertDialog showSecretLocationAlert(Context context, int currentAc ArrayList types = new ArrayList<>(); int providers = 5; // MessagesController.getInstance(currentAccount).availableMapProviders; if ((providers & 1) != 0) { - arrayList.add(LocaleController.getString("MapPreviewProviderTelegram", R.string.MapPreviewProviderTelegram)); + arrayList.add(LocaleController.getString(R.string.MapPreviewProviderTelegram)); types.add(0); } if ((providers & 2) != 0) { - arrayList.add(LocaleController.getString("MapPreviewProviderGoogle", R.string.MapPreviewProviderGoogle)); + arrayList.add(LocaleController.getString(R.string.MapPreviewProviderGoogle)); types.add(1); } if ((providers & 4) != 0) { - arrayList.add(LocaleController.getString("MapPreviewProviderYandex", R.string.MapPreviewProviderYandex)); + arrayList.add(LocaleController.getString(R.string.MapPreviewProviderYandex)); types.add(3); } - arrayList.add(LocaleController.getString("MapPreviewProviderNobody", R.string.MapPreviewProviderNobody)); + arrayList.add(LocaleController.getString(R.string.MapPreviewProviderNobody)); types.add(2); AlertDialog.Builder builder = new AlertDialog.Builder(context, resourcesProvider); - builder.setTitle(LocaleController.getString("MapPreviewProviderTitle", R.string.MapPreviewProviderTitle)); + builder.setTitle(LocaleController.getString(R.string.MapPreviewProviderTitle)); final LinearLayout linearLayout = new LinearLayout(context); linearLayout.setOrientation(LinearLayout.VERTICAL); builder.setView(linearLayout); @@ -1188,7 +1190,7 @@ public static AlertDialog showSecretLocationAlert(Context context, int currentAc }); } if (!inChat) { - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); } AlertDialog dialog = builder.show(); if (inChat) { @@ -1245,8 +1247,9 @@ public static void showOpenUrlAlert(BaseFragment fragment, String url, boolean p return; } long inlineReturn = (fragment instanceof ChatActivity) ? ((ChatActivity) fragment).getInlineReturn() : 0; - if (Browser.isInternalUrl(url, null) || !ask || NekoConfig.skipOpenLinkConfirm.Bool()) { - Browser.openUrl(fragment.getParentActivity(), Uri.parse(url), inlineReturn == 0, tryTelegraph, forceNotInternalForApps && checkInternalBotApp(url), progress, null, false); + final String scheme = url == null ? null : Uri.parse(url).getScheme(); + if (Browser.isInternalUrl(url, null) || !ask || "mailto".equalsIgnoreCase(scheme) || NekoConfig.skipOpenLinkConfirm.Bool()) { + Browser.openUrl(fragment.getParentActivity(), Uri.parse(url), inlineReturn == 0, tryTelegraph, forceNotInternalForApps && checkInternalBotApp(url), progress, null, false, true); } else { String urlFinal; if (punycode) { @@ -1262,7 +1265,7 @@ public static void showOpenUrlAlert(BaseFragment fragment, String url, boolean p } Runnable open = () -> Browser.openUrl(fragment.getParentActivity(), Uri.parse(url), inlineReturn == 0, tryTelegraph, progress); AlertDialog.Builder builder = new AlertDialog.Builder(fragment.getParentActivity(), resourcesProvider); - builder.setTitle(LocaleController.getString("OpenUrlTitle", R.string.OpenUrlTitle)); + builder.setTitle(LocaleController.getString(R.string.OpenUrlTitle)); AlertDialog[] dialog = new AlertDialog[1]; SpannableString link = new SpannableString(urlFinal); link.setSpan(new URLSpan(urlFinal) { @@ -1274,19 +1277,19 @@ public void onClick(View widget) { } } }, 0, link.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); - SpannableStringBuilder stringBuilder = new SpannableStringBuilder(LocaleController.getString("OpenUrlAlert2", R.string.OpenUrlAlert2)); + SpannableStringBuilder stringBuilder = new SpannableStringBuilder(LocaleController.getString(R.string.OpenUrlAlert2)); int index = stringBuilder.toString().indexOf("%1$s"); if (index >= 0) { stringBuilder.replace(index, index + 4, link); } builder.setMessage(stringBuilder); builder.setMessageTextViewClickable(false); - builder.setPositiveButton(LocaleController.getString("Open", R.string.Open), (dialogInterface, i) -> open.run()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setNeutralButton(LocaleController.getString("Copy", R.string.Copy), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Open), (dialogInterface, i) -> open.run()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setNeutralButton(LocaleController.getString(R.string.Copy), (dialogInterface, i) -> { try { AndroidUtilities.addToClipboard(url); - Toast.makeText(fragment.getParentActivity(), LocaleController.getString("LinkCopied", R.string.LinkCopied), Toast.LENGTH_SHORT).show(); + Toast.makeText(fragment.getParentActivity(), LocaleController.getString(R.string.LinkCopied), Toast.LENGTH_SHORT).show(); } catch (Exception e) { FileLog.e(e); } @@ -1305,7 +1308,7 @@ public static AlertDialog createSupportAlert(BaseFragment fragment, Theme.Resour return null; } final LinkSpanDrawable.LinksTextView message = new LinkSpanDrawable.LinksTextView(fragment.getParentActivity(), fragment.getResourceProvider()); - Spannable spanned = new SpannableString(Html.fromHtml(LocaleController.getString("AskAQuestionInfo", R.string.AskAQuestionInfo).replace("\n", "
"))); + Spannable spanned = new SpannableString(Html.fromHtml(LocaleController.getString(R.string.AskAQuestionInfo).replace("\n", "
"))); URLSpan[] spans = spanned.getSpans(0, spanned.length(), URLSpan.class); for (int i = 0; i < spans.length; i++) { URLSpan span = spans[i]; @@ -1331,9 +1334,9 @@ public void onClick(View widget) { AlertDialog.Builder builder1 = new AlertDialog.Builder(fragment.getParentActivity(), resourcesProvider); builder1.setView(message); - builder1.setTitle(LocaleController.getString("AskAQuestion", R.string.AskAQuestion)); - builder1.setPositiveButton(LocaleController.getString("AskButton", R.string.AskButton), (dialogInterface, i) -> performAskAQuestion(fragment)); - builder1.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder1.setTitle(LocaleController.getString(R.string.AskAQuestion)); + builder1.setPositiveButton(LocaleController.getString(R.string.AskButton), (dialogInterface, i) -> performAskAQuestion(fragment)); + builder1.setNegativeButton(LocaleController.getString(R.string.Cancel), null); return builder1.create(); } @@ -1445,7 +1448,7 @@ public static void createImportDialogAlert(BaseFragment fragment, String title, textView.setSingleLine(true); textView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL); textView.setEllipsize(TextUtils.TruncateAt.END); - textView.setText(LocaleController.getString("ImportMessages", R.string.ImportMessages)); + textView.setText(LocaleController.getString(R.string.ImportMessages)); frameLayout.addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, (LocaleController.isRTL ? 21 : 76), 11, (LocaleController.isRTL ? 76 : 21), 0)); frameLayout.addView(messageTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 24, 57, 24, 9)); @@ -1484,12 +1487,12 @@ public static void createImportDialogAlert(BaseFragment fragment, String title, } }*/ - builder.setPositiveButton(LocaleController.getString("Import", R.string.Import), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Import), (dialogInterface, i) -> { if (onProcessRunnable != null) { onProcessRunnable.run(); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); fragment.showDialog(alertDialog); } @@ -1552,7 +1555,7 @@ public void setText(CharSequence text, BufferType type) { onConfirm.run(); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); fragment.showDialog(dialog, false, d -> { if (onDismiss != null) { @@ -1677,7 +1680,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } builder.setPositiveButton(LocaleController.getString(R.string.Start), (dialogInterface, i) -> loadBotSheet.run()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); fragment.showDialog(dialog); @@ -1757,34 +1760,34 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { textView.setEllipsize(TextUtils.TruncateAt.END); if (clear) { if (clearingCache) { - textView.setText(LocaleController.getString("ClearHistoryCache", R.string.ClearHistoryCache)); + textView.setText(LocaleController.getString(R.string.ClearHistoryCache)); } else { - textView.setText(LocaleController.getString("ClearHistory", R.string.ClearHistory)); + textView.setText(LocaleController.getString(R.string.ClearHistory)); } } else { if (admin) { if (ChatObject.isChannel(chat)) { if (chat.megagroup) { - textView.setText(LocaleController.getString("DeleteMegaMenu", R.string.DeleteMegaMenu)); + textView.setText(LocaleController.getString(R.string.DeleteMegaMenu)); } else { - textView.setText(LocaleController.getString("ChannelDeleteMenu", R.string.ChannelDeleteMenu)); + textView.setText(LocaleController.getString(R.string.ChannelDeleteMenu)); } } else { - textView.setText(LocaleController.getString("DeleteMegaMenu", R.string.DeleteMegaMenu)); + textView.setText(LocaleController.getString(R.string.DeleteMegaMenu)); } } else { if (chat != null) { if (ChatObject.isChannel(chat)) { if (chat.megagroup) { - textView.setText(LocaleController.getString("LeaveMegaMenu", R.string.LeaveMegaMenu)); + textView.setText(LocaleController.getString(R.string.LeaveMegaMenu)); } else { - textView.setText(LocaleController.getString("LeaveChannelMenu", R.string.LeaveChannelMenu)); + textView.setText(LocaleController.getString(R.string.LeaveChannelMenu)); } } else { - textView.setText(LocaleController.getString("LeaveMegaMenu", R.string.LeaveMegaMenu)); + textView.setText(LocaleController.getString(R.string.LeaveMegaMenu)); } } else { - textView.setText(LocaleController.getString("DeleteChatUser", R.string.DeleteChatUser)); + textView.setText(LocaleController.getString(R.string.DeleteChatUser)); } } } @@ -1825,9 +1828,9 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { cell[0].setBackgroundDrawable(Theme.getSelectorDrawable(false)); if (deleteChatForAll) { if (ChatObject.isChannel(chat) && !chat.megagroup) { - cell[0].setText(LocaleController.getString("DeleteChannelForAll", R.string.DeleteChannelForAll), "", deleteForAll[0], false); + cell[0].setText(LocaleController.getString(R.string.DeleteChannelForAll), "", deleteForAll[0], false); } else { - cell[0].setText(LocaleController.getString("DeleteGroupForAll", R.string.DeleteGroupForAll), "", deleteForAll[0], false); + cell[0].setText(LocaleController.getString(R.string.DeleteGroupForAll), "", deleteForAll[0], false); } } else if (clear) { deleteForAll[0] = true; @@ -1866,12 +1869,12 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (second) { if (UserObject.isUserSelf(user)) { - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("DeleteAllMessagesSavedAlert", R.string.DeleteAllMessagesSavedAlert))); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.DeleteAllMessagesSavedAlert))); } else { if (chat != null && ChatObject.isChannelAndNotMegaGroup(chat)) { - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("DeleteAllMessagesChannelAlert", R.string.DeleteAllMessagesChannelAlert))); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.DeleteAllMessagesChannelAlert))); } else { - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("DeleteAllMessagesAlert", R.string.DeleteAllMessagesAlert))); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.DeleteAllMessagesAlert))); } } } else { @@ -1881,7 +1884,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("AreYouSureClearHistoryWithSecretUser", R.string.AreYouSureClearHistoryWithSecretUser, UserObject.getUserName(user)))); } else { if (user.id == selfUserId) { - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("AreYouSureClearHistorySavedMessages", R.string.AreYouSureClearHistorySavedMessages))); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.AreYouSureClearHistorySavedMessages))); } else { messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("AreYouSureClearHistoryWithUser", R.string.AreYouSureClearHistoryWithUser, UserObject.getUserName(user)))); } @@ -1890,21 +1893,21 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (!ChatObject.isChannel(chat) || chat.megagroup && !ChatObject.isPublic(chat)) { messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("AreYouSureClearHistoryWithChat", R.string.AreYouSureClearHistoryWithChat, chat.title))); } else if (chat.megagroup) { - messageTextView.setText(LocaleController.getString("AreYouSureClearHistoryGroup", R.string.AreYouSureClearHistoryGroup)); + messageTextView.setText(LocaleController.getString(R.string.AreYouSureClearHistoryGroup)); } else { - messageTextView.setText(LocaleController.getString("AreYouSureClearHistoryChannel", R.string.AreYouSureClearHistoryChannel)); + messageTextView.setText(LocaleController.getString(R.string.AreYouSureClearHistoryChannel)); } } } else { if (admin) { if (ChatObject.isChannel(chat)) { if (chat.megagroup) { - messageTextView.setText(LocaleController.getString("AreYouSureDeleteAndExit", R.string.AreYouSureDeleteAndExit)); + messageTextView.setText(LocaleController.getString(R.string.AreYouSureDeleteAndExit)); } else { - messageTextView.setText(LocaleController.getString("AreYouSureDeleteAndExitChannel", R.string.AreYouSureDeleteAndExitChannel)); + messageTextView.setText(LocaleController.getString(R.string.AreYouSureDeleteAndExitChannel)); } } else { - messageTextView.setText(LocaleController.getString("AreYouSureDeleteAndExit", R.string.AreYouSureDeleteAndExit)); + messageTextView.setText(LocaleController.getString(R.string.AreYouSureDeleteAndExit)); } } else { if (user != null) { @@ -1912,7 +1915,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("AreYouSureDeleteThisChatWithSecretUser", R.string.AreYouSureDeleteThisChatWithSecretUser, UserObject.getUserName(user)))); } else { if (user.id == selfUserId) { - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("AreYouSureDeleteThisChatSavedMessages", R.string.AreYouSureDeleteThisChatSavedMessages))); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.AreYouSureDeleteThisChatSavedMessages))); } else { if (user.bot && !user.support) { messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString(R.string.AreYouSureDeleteThisChatWithBotWithCheckmark, UserObject.getUserName(user)))); @@ -1936,34 +1939,34 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { String actionText; if (second) { - actionText = LocaleController.getString("DeleteAll", R.string.DeleteAll); + actionText = LocaleController.getString(R.string.DeleteAll); } else { if (clear) { if (clearingCache) { - actionText = LocaleController.getString("ClearHistoryCache", R.string.ClearHistoryCache); + actionText = LocaleController.getString(R.string.ClearHistoryCache); } else { - actionText = LocaleController.getString("ClearForMe", R.string.ClearForMe); + actionText = LocaleController.getString(R.string.ClearForMe); } } else { if (admin) { if (ChatObject.isChannel(chat)) { if (chat.megagroup) { - actionText = LocaleController.getString("DeleteMega", R.string.DeleteMega); + actionText = LocaleController.getString(R.string.DeleteMega); } else { - actionText = LocaleController.getString("ChannelDelete", R.string.ChannelDelete); + actionText = LocaleController.getString(R.string.ChannelDelete); } } else { - actionText = LocaleController.getString("DeleteMega", R.string.DeleteMega); + actionText = LocaleController.getString(R.string.DeleteMega); } } else { if (ChatObject.isChannel(chat)) { if (chat.megagroup) { - actionText = LocaleController.getString("LeaveMegaMenu", R.string.LeaveMegaMenu); + actionText = LocaleController.getString(R.string.LeaveMegaMenu); } else { - actionText = LocaleController.getString("LeaveChannelMenu", R.string.LeaveChannelMenu); + actionText = LocaleController.getString(R.string.LeaveChannelMenu); } } else { - actionText = LocaleController.getString("DeleteChatUser", R.string.DeleteChatUser); + actionText = LocaleController.getString(R.string.DeleteChatUser); } } } @@ -1990,7 +1993,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { onProcessRunnable.run(second || deleteForAll[0]); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); fragment.showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -2060,14 +2063,14 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("AreYouSureClearHistoryWithChat", R.string.AreYouSureClearHistoryWithChat, chat.title))); } } else if (chat.megagroup) { - messageTextView.setText(LocaleController.getString("AreYouSureClearHistoryGroup", R.string.AreYouSureClearHistoryGroup)); + messageTextView.setText(LocaleController.getString(R.string.AreYouSureClearHistoryGroup)); } else { - messageTextView.setText(LocaleController.getString("AreYouSureClearHistoryChannel", R.string.AreYouSureClearHistoryChannel)); + messageTextView.setText(LocaleController.getString(R.string.AreYouSureClearHistoryChannel)); } } } else { textView.setText(LocaleController.formatPluralString("DeleteDays", days)); - messageTextView.setText(LocaleController.getString("DeleteHistoryByDaysMessage", R.string.DeleteHistoryByDaysMessage)); + messageTextView.setText(LocaleController.getString(R.string.DeleteHistoryByDaysMessage)); } final boolean[] deleteForAll = new boolean[]{false}; @@ -2078,7 +2081,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { cell[0] = new CheckBoxCell(context, 1, resourcesProvider); cell[0].setBackgroundDrawable(Theme.getSelectorDrawable(false)); if (chat != null) { - cell[0].setText(LocaleController.getString("DeleteMessagesOptionAlsoChat", R.string.DeleteMessagesOptionAlsoChat), "", false, false); + cell[0].setText(LocaleController.getString(R.string.DeleteMessagesOptionAlsoChat), "", false, false); } else { cell[0].setText(LocaleController.formatString("DeleteMessagesOptionAlso", R.string.DeleteMessagesOptionAlso, UserObject.getFirstName(user)), "", false, false); } @@ -2094,14 +2097,14 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { }); } - String deleteText = LocaleController.getString("Delete", R.string.Delete); + String deleteText = LocaleController.getString(R.string.Delete); if (chat != null && canDeleteHistory && ChatObject.isPublic(chat) && !ChatObject.isChannelAndNotMegaGroup(chat)) { - deleteText = LocaleController.getString("ClearForAll", R.string.ClearForAll); + deleteText = LocaleController.getString(R.string.ClearForAll); } builder.setPositiveButton(deleteText, (dialogInterface, i) -> { onProcessRunnable.run(deleteForAll[0]); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); fragment.showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -2122,10 +2125,10 @@ public static void createCallDialogAlert(BaseFragment fragment, TLRPC.User user, final String title; final String message; if (videoCall) { - title = LocaleController.getString("VideoCallAlertTitle", R.string.VideoCallAlertTitle); + title = LocaleController.getString(R.string.VideoCallAlertTitle); message = LocaleController.formatString("VideoCallAlert", R.string.VideoCallAlert, UserObject.getUserName(user)); } else { - title = LocaleController.getString("CallAlertTitle", R.string.CallAlertTitle); + title = LocaleController.getString(R.string.CallAlertTitle); message = LocaleController.formatString("CallAlert", R.string.CallAlert, UserObject.getUserName(user)); } @@ -2166,19 +2169,19 @@ public void setText(CharSequence text, BufferType type) { frameLayout.addView(messageTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 24, 57, 24, 9)); AlertDialog dialog = new AlertDialog.Builder(context).setView(frameLayout) - .setPositiveButton(LocaleController.getString("Call", R.string.Call), (dialogInterface, i) -> { + .setPositiveButton(LocaleController.getString(R.string.Call), (dialogInterface, i) -> { final TLRPC.UserFull userFull = fragment.getMessagesController().getUserFull(user.id); VoIPHelper.startCall(user, videoCall, userFull != null && userFull.video_calls_available, fragment.getParentActivity(), userFull, fragment.getAccountInstance(), true); }) - .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null) + .setNegativeButton(LocaleController.getString(R.string.Cancel), null) .create(); fragment.showDialog(dialog); } public static void createChangeBioAlert(String currentBio, long peerId, Context context, int currentAccount) { AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(peerId > 0 ? LocaleController.getString("UserBio", R.string.UserBio) : LocaleController.getString("DescriptionPlaceholder", R.string.DescriptionPlaceholder)); - builder.setMessage(peerId > 0 ? LocaleController.getString("VoipGroupBioEditAlertText", R.string.VoipGroupBioEditAlertText) : LocaleController.getString("DescriptionInfo", R.string.DescriptionInfo)); + builder.setTitle(peerId > 0 ? LocaleController.getString(R.string.UserBio) : LocaleController.getString(R.string.DescriptionPlaceholder)); + builder.setMessage(peerId > 0 ? LocaleController.getString(R.string.VoipGroupBioEditAlertText) : LocaleController.getString(R.string.DescriptionInfo)); FrameLayout dialogView = new FrameLayout(context); dialogView.setClipChildren(false); @@ -2192,7 +2195,7 @@ public static void createChangeBioAlert(String currentBio, long peerId, Context NumberTextView checkTextView = new NumberTextView(context); EditText editTextView = new EditText(context); editTextView.setTextColor(Theme.getColor(Theme.key_voipgroup_actionBarItems)); - editTextView.setHint(peerId > 0 ? LocaleController.getString("UserBio", R.string.UserBio) : LocaleController.getString("DescriptionPlaceholder", R.string.DescriptionPlaceholder)); + editTextView.setHint(peerId > 0 ? LocaleController.getString(R.string.UserBio) : LocaleController.getString(R.string.DescriptionPlaceholder)); editTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); editTextView.setBackground(Theme.createEditTextDrawable(context, true)); @@ -2297,8 +2300,8 @@ public void afterTextChanged(Editable s) { } dialogInterface.dismiss(); }; - builder.setPositiveButton(LocaleController.getString("Save", R.string.Save), onDoneListener); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Save), onDoneListener); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.setOnPreDismissListener(dialogInterface -> AndroidUtilities.hideKeyboard(editTextView)); dialogView.addView(editTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 23, 12, 23, 21)); editTextView.requestFocus(); @@ -2331,7 +2334,7 @@ public static void createChangeNameAlert(long peerId, Context context, int curre currentName = chat.title; } AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(peerId > 0 ? LocaleController.getString("VoipEditName", R.string.VoipEditName) : LocaleController.getString("VoipEditTitle", R.string.VoipEditTitle)); + builder.setTitle(peerId > 0 ? LocaleController.getString(R.string.VoipEditName) : LocaleController.getString(R.string.VoipEditTitle)); LinearLayout dialogView = new LinearLayout(context); dialogView.setOrientation(LinearLayout.VERTICAL); @@ -2344,7 +2347,7 @@ public static void createChangeNameAlert(long peerId, Context context, int curre firstNameEditTextView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); firstNameEditTextView.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); firstNameEditTextView.setImeOptions(peerId > 0 ? EditorInfo.IME_ACTION_NEXT : EditorInfo.IME_ACTION_DONE); - firstNameEditTextView.setHint(peerId > 0 ? LocaleController.getString("FirstName", R.string.FirstName) : LocaleController.getString("VoipEditTitleHint", R.string.VoipEditTitleHint)); + firstNameEditTextView.setHint(peerId > 0 ? LocaleController.getString(R.string.FirstName) : LocaleController.getString(R.string.VoipEditTitleHint)); firstNameEditTextView.setBackground(Theme.createEditTextDrawable(context, true)); firstNameEditTextView.setPadding(0, dp(8), 0, dp(8)); firstNameEditTextView.requestFocus(); @@ -2360,7 +2363,7 @@ public static void createChangeNameAlert(long peerId, Context context, int curre lastNameEditTextView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); lastNameEditTextView.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); lastNameEditTextView.setImeOptions(EditorInfo.IME_ACTION_DONE); - lastNameEditTextView.setHint(LocaleController.getString("LastName", R.string.LastName)); + lastNameEditTextView.setHint(LocaleController.getString(R.string.LastName)); lastNameEditTextView.setBackground(Theme.createEditTextDrawable(context, true)); lastNameEditTextView.setPadding(0, dp(8), 0, dp(8)); } @@ -2434,8 +2437,8 @@ public static void createChangeNameAlert(long peerId, Context context, int curre } dialogInterface.dismiss(); }; - builder.setPositiveButton(LocaleController.getString("Save", R.string.Save), onDoneListener); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Save), onDoneListener); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.setOnPreDismissListener(dialogInterface -> { AndroidUtilities.hideKeyboard(firstNameEditTextView); AndroidUtilities.hideKeyboard(finalLastNameEditTextView); @@ -2466,7 +2469,7 @@ public static void showChatWithAdmin(BaseFragment fragment, TLRPC.User user, Str return; } BottomSheet.Builder builder = new BottomSheet.Builder(fragment.getParentActivity()); - builder.setTitle(isChannel ? LocaleController.getString("ChatWithAdminChannelTitle", R.string.ChatWithAdminChannelTitle) : LocaleController.getString("ChatWithAdminGroupTitle", R.string.ChatWithAdminGroupTitle), true); + builder.setTitle(isChannel ? LocaleController.getString(R.string.ChatWithAdminChannelTitle) : LocaleController.getString(R.string.ChatWithAdminGroupTitle), true); LinearLayout linearLayout = new LinearLayout(fragment.getParentActivity()); linearLayout.setOrientation(LinearLayout.VERTICAL); TextView messageTextView = new TextView(fragment.getParentActivity()); @@ -2482,7 +2485,7 @@ public static void showChatWithAdmin(BaseFragment fragment, TLRPC.User user, Str buttonTextView.setGravity(Gravity.CENTER); buttonTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); buttonTextView.setTypeface(AndroidUtilities.bold()); - buttonTextView.setText(LocaleController.getString("IUnderstand", R.string.IUnderstand)); + buttonTextView.setText(LocaleController.getString(R.string.IUnderstand)); buttonTextView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); buttonTextView.setBackground(Theme.createSimpleSelectorRoundRectDrawable(dp(8), Theme.getColor(Theme.key_featuredStickers_addButton), Theme.getColor(Theme.key_featuredStickers_addButtonPressed))); @@ -2502,15 +2505,15 @@ public static void showDiscardTopicDialog(BaseFragment baseFragment, Theme.Resou return; } AlertDialog.Builder builder = new AlertDialog.Builder(baseFragment.getParentActivity(), resourcesProvider); - builder.setTitle(LocaleController.getString("DiscardTopic", R.string.DiscardTopic)); - builder.setMessage(LocaleController.getString("DiscardTopicMessage", R.string.DiscardTopicMessage)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), new DialogInterface.OnClickListener() { + builder.setTitle(LocaleController.getString(R.string.DiscardTopic)); + builder.setMessage(LocaleController.getString(R.string.DiscardTopicMessage)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); - builder.setPositiveButton(LocaleController.getString("Discard", R.string.Discard), new DialogInterface.OnClickListener() { + builder.setPositiveButton(LocaleController.getString(R.string.Discard), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); @@ -2522,10 +2525,10 @@ public void onClick(DialogInterface dialog, int which) { public static void createContactInviteDialog(BaseFragment parentFragment, String fisrtName, String lastName, String phone) { AlertDialog.Builder builder = new AlertDialog.Builder(parentFragment.getParentActivity()); - builder.setTitle(LocaleController.getString("ContactNotRegisteredTitle", R.string.ContactNotRegisteredTitle)); + builder.setTitle(LocaleController.getString(R.string.ContactNotRegisteredTitle)); builder.setMessage(LocaleController.formatString("ContactNotRegistered", R.string.ContactNotRegistered, ContactsController.formatName(fisrtName, lastName))); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("Invite", R.string.Invite), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Invite), (dialog, which) -> { try { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", phone, null)); intent.putExtra("sms_body", ContactsController.getInstance(parentFragment.getCurrentAccount()).getInviteText(1)); @@ -2632,11 +2635,11 @@ public static void createBlockDialogAlert(BaseFragment fragment, int count, bool if (count == 1) { String name = ContactsController.formatName(user.first_name, user.last_name); builder.setTitle(LocaleController.formatString("BlockUserTitle", R.string.BlockUserTitle, name)); - actionText = LocaleController.getString("BlockUser", R.string.BlockUser); + actionText = LocaleController.getString(R.string.BlockUser); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("BlockUserMessage", R.string.BlockUserMessage, name))); } else { builder.setTitle(LocaleController.formatString("BlockUserTitle", R.string.BlockUserTitle, LocaleController.formatPluralString("UsersCountTitle", count))); - actionText = LocaleController.getString("BlockUsers", R.string.BlockUsers); + actionText = LocaleController.getString(R.string.BlockUsers); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("BlockUsersMessage", R.string.BlockUsersMessage, LocaleController.formatPluralString("UsersCount", count)))); } @@ -2650,9 +2653,9 @@ public static void createBlockDialogAlert(BaseFragment fragment, int count, bool cell[a] = new CheckBoxCell(context, 1); cell[a].setBackgroundDrawable(Theme.getSelectorDrawable(false)); if (a == 0) { - cell[a].setText(LocaleController.getString("ReportSpamTitle", R.string.ReportSpamTitle), "", true, false); + cell[a].setText(LocaleController.getString(R.string.ReportSpamTitle), "", true, false); } else { - cell[a].setText(count == 1 ? LocaleController.getString("DeleteThisChatBothSides", R.string.DeleteThisChatBothSides) : LocaleController.getString("DeleteTheseChatsBothSides", R.string.DeleteTheseChatsBothSides), "", true, false); + cell[a].setText(count == 1 ? LocaleController.getString(R.string.DeleteThisChatBothSides) : LocaleController.getString(R.string.DeleteTheseChatsBothSides), "", true, false); } cell[a].setPadding(LocaleController.isRTL ? dp(16) : dp(8), 0, LocaleController.isRTL ? dp(8) : dp(16), 0); linearLayout.addView(cell[a], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); @@ -2664,7 +2667,7 @@ public static void createBlockDialogAlert(BaseFragment fragment, int count, bool } builder.setPositiveButton(actionText, (dialogInterface, i) -> onProcessRunnable.run(checks[0], checks[1])); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); fragment.showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -3026,13 +3029,13 @@ public static AlertDialog.Builder createDatePickerDialog(Context context, int mi builder.setTitle(title); builder.setView(linearLayout); - builder.setPositiveButton(LocaleController.getString("Set", R.string.Set), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Set), (dialog, which) -> { if (checkMinDate) { checkPickerDate(dayPicker, monthPicker, yearPicker); } datePickerDelegate.didSelectDate(yearPicker.getValue(), monthPicker.getValue(), dayPicker.getValue()); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); return builder; } @@ -3295,9 +3298,9 @@ public void requestLayout() { TextView titleView = new TextView(context); if (dialogId == selfUserId) { - titleView.setText(LocaleController.getString("SetReminder", R.string.SetReminder)); + titleView.setText(LocaleController.getString(R.string.SetReminder)); } else { - titleView.setText(LocaleController.getString("ScheduleMessage", R.string.ScheduleMessage)); + titleView.setText(LocaleController.getString(R.string.ScheduleMessage)); } titleView.setTextColor(datePickerColors.textColor); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); @@ -3332,7 +3335,7 @@ public void requestLayout() { builder.getDismissRunnable().run(); } }); - optionsButton.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + optionsButton.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); } } @@ -3359,7 +3362,7 @@ public CharSequence getAccessibilityClassName() { dayPicker.setWrapSelectorWheel(false); dayPicker.setFormatter(value -> { if (value == 0) { - return LocaleController.getString("MessageScheduleToday", R.string.MessageScheduleToday); + return LocaleController.getString(R.string.MessageScheduleToday); } else { long date = currentTime + (long) value * 86400000L; calendar.setTimeInMillis(date); @@ -3547,7 +3550,7 @@ public CharSequence getAccessibilityClassName() { dayPicker.setWrapSelectorWheel(false); dayPicker.setFormatter(value -> { if (value == 0) { - return LocaleController.getString("MessageScheduleToday", R.string.MessageScheduleToday); + return LocaleController.getString(R.string.MessageScheduleToday); } else { long date = currentTime + (long) value * 86400000L; calendar.setTimeInMillis(date); @@ -3944,7 +3947,7 @@ public void requestLayout() { container.addView(titleLayout, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 22, 0, 0, 4)); TextView titleView = new TextView(context); - titleView.setText(LocaleController.getString("SetEmojiStatusUntilTitle", R.string.SetEmojiStatusUntilTitle)); + titleView.setText(LocaleController.getString(R.string.SetEmojiStatusUntilTitle)); titleView.setTextColor(datePickerColors.textColor); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); @@ -3976,7 +3979,7 @@ public CharSequence getAccessibilityClassName() { dayPicker.setWrapSelectorWheel(false); dayPicker.setFormatter(value -> { if (value == 0) { - return LocaleController.getString("MessageScheduleToday", R.string.MessageScheduleToday); + return LocaleController.getString(R.string.MessageScheduleToday); } else { long date = currentTime + (long) value * 86400000L; calendar.setTimeInMillis(date); @@ -4033,7 +4036,7 @@ public CharSequence getAccessibilityClassName() { buttonTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); buttonTextView.setTypeface(AndroidUtilities.bold()); buttonTextView.setBackgroundDrawable(Theme.createSimpleSelectorRoundRectDrawable(dp(8), datePickerColors.buttonBackgroundColor, datePickerColors.buttonBackgroundPressedColor)); - buttonTextView.setText(LocaleController.getString("SetEmojiStatusUntilButton", R.string.SetEmojiStatusUntilButton)); + buttonTextView.setText(LocaleController.getString(R.string.SetEmojiStatusUntilButton)); container.addView(buttonTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.BOTTOM, 16, 15, 16, 16)); buttonTextView.setOnClickListener(v -> { boolean setSeconds = checkScheduleDate(null, null, 0, dayPicker, hourPicker, minutePicker); @@ -4087,7 +4090,7 @@ public static BottomSheet.Builder createAutoDeleteDatePickerDialog(Context conte @Override protected CharSequence getContentDescription(int index) { if (values[index] == 0) { - return LocaleController.getString("AutoDeleteNever", R.string.AutoDeleteNever); + return LocaleController.getString(R.string.AutoDeleteNever); } else if (values[index] < 7 * 60 * 24) { return LocaleController.formatPluralString("Days", values[index] / (60 * 24)); } else if (values[index] < 31 * 60 * 24) { @@ -4105,7 +4108,7 @@ protected CharSequence getContentDescription(int index) { numberPicker.setValue(0); numberPicker.setFormatter(index -> { if (values[index] == 0) { - return LocaleController.getString("AutoDeleteNever", R.string.AutoDeleteNever); + return LocaleController.getString(R.string.AutoDeleteNever); } else if (values[index] < 7 * 60 * 24) { return LocaleController.formatPluralString("Days", values[index] / (60 * 24)); } else if (values[index] < 31 * 60 * 24) { @@ -4150,7 +4153,7 @@ public void requestLayout() { container.addView(titleLayout, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 22, 0, 0, 4)); TextView titleView = new TextView(context); - titleView.setText(LocaleController.getString("AutoDeleteAfteTitle", R.string.AutoDeleteAfteTitle)); + titleView.setText(LocaleController.getString(R.string.AutoDeleteAfteTitle)); titleView.setTextColor(datePickerColors.textColor); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); @@ -4179,14 +4182,14 @@ public CharSequence getAccessibilityClassName() { buttonTextView.setTypeface(AndroidUtilities.bold()); buttonTextView.setBackgroundDrawable(Theme.createSimpleSelectorRoundRectDrawable(dp(8), datePickerColors.buttonBackgroundColor, datePickerColors.buttonBackgroundPressedColor)); container.addView(buttonTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.BOTTOM, 16, 15, 16, 16)); - buttonTextView.setText(LocaleController.getString("DisableAutoDeleteTimer", R.string.DisableAutoDeleteTimer)); + buttonTextView.setText(LocaleController.getString(R.string.DisableAutoDeleteTimer)); final NumberPicker.OnValueChangeListener onValueChangeListener = (picker, oldVal, newVal) -> { try { if (newVal == 0) { - buttonTextView.setText(LocaleController.getString("DisableAutoDeleteTimer", R.string.DisableAutoDeleteTimer)); + buttonTextView.setText(LocaleController.getString(R.string.DisableAutoDeleteTimer)); } else { - buttonTextView.setText(LocaleController.getString("SetAutoDeleteTimer", R.string.SetAutoDeleteTimer)); + buttonTextView.setText(LocaleController.getString(R.string.SetAutoDeleteTimer)); } } catch (Exception ignore) { @@ -4252,7 +4255,7 @@ protected CharSequence getContentDescription(int index) { divider.setTextColor(datePickerColors.textColor); divider.setValue(0); divider.setWrapSelectorWheel(false); - divider.setFormatter(index -> LocaleController.getString("NotificationsFrequencyDivider", R.string.NotificationsFrequencyDivider)); + divider.setFormatter(index -> LocaleController.getString(R.string.NotificationsFrequencyDivider)); LinearLayout container = new LinearLayout(context) { @@ -4291,7 +4294,7 @@ public void requestLayout() { container.addView(titleLayout, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 22, 0, 0, 4)); TextView titleView = new TextView(context); - titleView.setText(LocaleController.getString("NotfificationsFrequencyTitle", R.string.NotfificationsFrequencyTitle)); + titleView.setText(LocaleController.getString(R.string.NotfificationsFrequencyTitle)); titleView.setTextColor(datePickerColors.textColor); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); @@ -4321,7 +4324,7 @@ public CharSequence getAccessibilityClassName() { buttonTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); buttonTextView.setTypeface(AndroidUtilities.bold()); buttonTextView.setBackgroundDrawable(Theme.createSimpleSelectorRoundRectDrawable(dp(8), datePickerColors.buttonBackgroundColor, datePickerColors.buttonBackgroundPressedColor)); - buttonTextView.setText(LocaleController.getString("AutoDeleteConfirm", R.string.AutoDeleteConfirm)); + buttonTextView.setText(LocaleController.getString(R.string.AutoDeleteConfirm)); container.addView(buttonTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.BOTTOM, 16, 15, 16, 16)); final NumberPicker.OnValueChangeListener onValueChangeListener = (picker, oldVal, newVal) -> { @@ -4381,7 +4384,7 @@ public static BottomSheet.Builder createMuteForPickerDialog(Context context, The @Override protected CharSequence getContentDescription(int index) { if (values[index] == 0) { - return LocaleController.getString("MuteNever", R.string.MuteNever); + return LocaleController.getString(R.string.MuteNever); } else if (values[index] < 60) { return LocaleController.formatPluralString("Minutes", values[index]); } else if (values[index] < 60 * 24) { @@ -4403,7 +4406,7 @@ protected CharSequence getContentDescription(int index) { numberPicker.setValue(0); numberPicker.setFormatter(index -> { if (values[index] == 0) { - return LocaleController.getString("MuteNever", R.string.MuteNever); + return LocaleController.getString(R.string.MuteNever); } else if (values[index] < 60) { return LocaleController.formatPluralString("Minutes", values[index]); } else if (values[index] < 60 * 24) { @@ -4452,7 +4455,7 @@ public void requestLayout() { container.addView(titleLayout, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 22, 0, 0, 4)); TextView titleView = new TextView(context); - titleView.setText(LocaleController.getString("MuteForAlert", R.string.MuteForAlert)); + titleView.setText(LocaleController.getString(R.string.MuteForAlert)); titleView.setTextColor(datePickerColors.textColor); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); titleView.setTypeface(AndroidUtilities.bold()); @@ -4483,7 +4486,7 @@ public CharSequence getAccessibilityClassName() { buttonTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); buttonTextView.setTypeface(AndroidUtilities.bold()); buttonTextView.setBackgroundDrawable(Theme.createSimpleSelectorRoundRectDrawable(dp(8), datePickerColors.buttonBackgroundColor, datePickerColors.buttonBackgroundPressedColor)); - buttonTextView.setText(LocaleController.getString("AutoDeleteConfirm", R.string.AutoDeleteConfirm)); + buttonTextView.setText(LocaleController.getString(R.string.AutoDeleteConfirm)); container.addView(buttonTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.BOTTOM, 16, 15, 16, 16)); buttonTextView.setOnClickListener(v -> { int time = values[numberPicker.getValue()] * 60; @@ -4502,16 +4505,16 @@ public CharSequence getAccessibilityClassName() { private static void checkMuteForButton(NumberPicker dayPicker, NumberPicker hourPicker, TextView buttonTextView, boolean animated) { StringBuilder stringBuilder = new StringBuilder(); if (dayPicker.getValue() != 0) { - stringBuilder.append(dayPicker.getValue()).append(LocaleController.getString("SecretChatTimerDays", R.string.SecretChatTimerDays)); + stringBuilder.append(dayPicker.getValue()).append(LocaleController.getString(R.string.SecretChatTimerDays)); } if (hourPicker.getValue() != 0) { if (stringBuilder.length() > 0) { stringBuilder.append(" "); } - stringBuilder.append(hourPicker.getValue()).append(LocaleController.getString("SecretChatTimerHours", R.string.SecretChatTimerHours)); + stringBuilder.append(hourPicker.getValue()).append(LocaleController.getString(R.string.SecretChatTimerHours)); } if (stringBuilder.length() == 0) { - buttonTextView.setText(LocaleController.getString("ChooseTimeForMute", R.string.ChooseTimeForMute)); + buttonTextView.setText(LocaleController.getString(R.string.ChooseTimeForMute)); if (buttonTextView.isEnabled()) { buttonTextView.setEnabled(false); if (animated) { @@ -4617,7 +4620,7 @@ public void requestLayout() { container.addView(titleLayout, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 22, 0, 0, 4)); TextView titleView = new TextView(context); - titleView.setText(LocaleController.getString("ChooseDate", R.string.ChooseDate)); + titleView.setText(LocaleController.getString(R.string.ChooseDate)); titleView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); titleView.setTypeface(AndroidUtilities.bold()); @@ -4654,20 +4657,20 @@ public CharSequence getAccessibilityClassName() { linearLayout.addView(monthPicker, LayoutHelper.createLinear(0, 54 * 5, 0.5f)); monthPicker.setFormatter(value -> { switch (value) { - case 0: return LocaleController.getString("January", R.string.January); - case 1: return LocaleController.getString("February", R.string.February); - case 2: return LocaleController.getString("March", R.string.March); - case 3: return LocaleController.getString("April", R.string.April); - case 4: return LocaleController.getString("May", R.string.May); - case 5: return LocaleController.getString("June", R.string.June); - case 6: return LocaleController.getString("July", R.string.July); - case 7: return LocaleController.getString("August", R.string.August); - case 8: return LocaleController.getString("September", R.string.September); - case 9: return LocaleController.getString("October", R.string.October); - case 10: return LocaleController.getString("November", R.string.November); + case 0: return LocaleController.getString(R.string.January); + case 1: return LocaleController.getString(R.string.February); + case 2: return LocaleController.getString(R.string.March); + case 3: return LocaleController.getString(R.string.April); + case 4: return LocaleController.getString(R.string.May); + case 5: return LocaleController.getString(R.string.June); + case 6: return LocaleController.getString(R.string.July); + case 7: return LocaleController.getString(R.string.August); + case 8: return LocaleController.getString(R.string.September); + case 9: return LocaleController.getString(R.string.October); + case 10: return LocaleController.getString(R.string.November); case 11: default: { - return LocaleController.getString("December", R.string.December); + return LocaleController.getString(R.string.December); } } }); @@ -4722,12 +4725,12 @@ public static BottomSheet createMuteAlert(BaseFragment fragment, final long dial } BottomBuilder builder = new BottomBuilder(fragment.getParentActivity()); - builder.addTitle(LocaleController.getString("Notifications", R.string.Notifications), true); + builder.addTitle(LocaleController.getString(R.string.Notifications), true); String[] items = new String[]{ - LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Hours", 1)), - LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Hours", 8)), - LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Days", 2)), - LocaleController.getString("MuteDisable", R.string.MuteDisable) + LocaleController.formatString(R.string.MuteFor, LocaleController.formatPluralString("Hours", 1)), + LocaleController.formatString(R.string.MuteFor, LocaleController.formatPluralString("Hours", 8)), + LocaleController.formatString(R.string.MuteFor, LocaleController.formatPluralString("Days", 2)), + LocaleController.getString(R.string.MuteDisable) }; builder.addItems(items, new int[]{ R.drawable.msg_mute_period, @@ -4760,12 +4763,12 @@ public static BottomSheet createMuteAlert(BaseFragment fragment, ArrayList } BottomSheet.NekoXBuilder builder = new BottomSheet.NekoXBuilder(fragment.getParentActivity(), false); - builder.setTitle(LocaleController.getString("Notifications", R.string.Notifications), true); + builder.setTitle(LocaleController.getString(R.string.Notifications), true); CharSequence[] items = new CharSequence[]{ - LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Hours", 1)), - LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Hours", 8)), - LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Days", 2)), - LocaleController.getString("MuteDisable", R.string.MuteDisable) + LocaleController.formatString(R.string.MuteFor, LocaleController.formatPluralString("Hours", 1)), + LocaleController.formatString(R.string.MuteFor, LocaleController.formatPluralString("Hours", 8)), + LocaleController.formatString(R.string.MuteFor, LocaleController.formatPluralString("Days", 2)), + LocaleController.getString(R.string.MuteDisable) }; builder.setItems(items, (dialogInterface, i) -> { int setting; @@ -4853,6 +4856,9 @@ public static void createReportAlert(final Context context, final long dialog_id return; } + final TLRPC.User user = MessagesController.getInstance(parentFragment.getCurrentAccount()).getUser(dialog_id); + final boolean isBot = user != null && user.bot; + BottomSheet.Builder builder = new BottomSheet.Builder(context, true, resourcesProvider); builder.setDimBehind(hideDim == null); builder.setOnPreDismissListener(di -> { @@ -4860,20 +4866,20 @@ public static void createReportAlert(final Context context, final long dialog_id hideDim.run(); } }); - builder.setTitle(LocaleController.getString("ReportChat", R.string.ReportChat), true); + builder.setTitle(LocaleController.getString(R.string.ReportChat), true); CharSequence[] items; int[] icons; int[] types; if (messageId != 0) { items = new CharSequence[]{ - LocaleController.getString("ReportChatSpam", R.string.ReportChatSpam), - LocaleController.getString("ReportChatViolence", R.string.ReportChatViolence), - LocaleController.getString("ReportChatChild", R.string.ReportChatChild), - LocaleController.getString("ReportChatIllegalDrugs", R.string.ReportChatIllegalDrugs), - LocaleController.getString("ReportChatPersonalDetails", R.string.ReportChatPersonalDetails), - LocaleController.getString("ReportChatPornography", R.string.ReportChatPornography), - LocaleController.getString("ReportChatOther", R.string.ReportChatOther) + LocaleController.getString(R.string.ReportChatSpam), + LocaleController.getString(R.string.ReportChatViolence), + LocaleController.getString(R.string.ReportChatChild), + LocaleController.getString(R.string.ReportChatIllegalDrugs), + LocaleController.getString(R.string.ReportChatPersonalDetails), + LocaleController.getString(R.string.ReportChatPornography), + LocaleController.getString(R.string.ReportChatOther) }; icons = new int[]{ R.drawable.msg_clearcache, @@ -4895,14 +4901,14 @@ public static void createReportAlert(final Context context, final long dialog_id }; } else { items = new CharSequence[]{ - LocaleController.getString("ReportChatSpam", R.string.ReportChatSpam), - LocaleController.getString("ReportChatFakeAccount", R.string.ReportChatFakeAccount), - LocaleController.getString("ReportChatViolence", R.string.ReportChatViolence), - LocaleController.getString("ReportChatChild", R.string.ReportChatChild), - LocaleController.getString("ReportChatIllegalDrugs", R.string.ReportChatIllegalDrugs), - LocaleController.getString("ReportChatPersonalDetails", R.string.ReportChatPersonalDetails), - LocaleController.getString("ReportChatPornography", R.string.ReportChatPornography), - LocaleController.getString("ReportChatOther", R.string.ReportChatOther) + LocaleController.getString(R.string.ReportChatSpam), + LocaleController.getString(R.string.ReportChatFakeAccount), + LocaleController.getString(R.string.ReportChatViolence), + LocaleController.getString(R.string.ReportChatChild), + LocaleController.getString(R.string.ReportChatIllegalDrugs), + LocaleController.getString(R.string.ReportChatPersonalDetails), + LocaleController.getString(R.string.ReportChatPornography), + LocaleController.getString(R.string.ReportChatOther) }; icons = new int[]{ R.drawable.msg_clearcache, @@ -4927,7 +4933,7 @@ public static void createReportAlert(final Context context, final long dialog_id } builder.setItems(items, icons, (dialogInterface, i) -> { int type = types[i]; - if (messageId == 0 && (type == REPORT_TYPE_SPAM || type == REPORT_TYPE_VIOLENCE || type == REPORT_TYPE_CHILD_ABUSE || type == REPORT_TYPE_PORNOGRAPHY || type == REPORT_TYPE_ILLEGAL_DRUGS || type == REPORT_TYPE_PERSONAL_DETAILS) && parentFragment instanceof ChatActivity) { + if (messageId == 0 && (type == REPORT_TYPE_SPAM || type == REPORT_TYPE_VIOLENCE || type == REPORT_TYPE_CHILD_ABUSE || type == REPORT_TYPE_PORNOGRAPHY || type == REPORT_TYPE_ILLEGAL_DRUGS || type == REPORT_TYPE_PERSONAL_DETAILS) && parentFragment instanceof ChatActivity && !isBot) { ((ChatActivity) parentFragment).openReportChat(type); return; } else if (messageId == 0 && (type == REPORT_TYPE_OTHER || type == REPORT_TYPE_FAKE_ACCOUNT) || messageId != 0 && type == REPORT_TYPE_OTHER) { @@ -5072,9 +5078,9 @@ public static void showFloodWaitAlert(String error, final BaseFragment fragment) } AlertDialog.Builder builder = new AlertDialog.Builder(fragment.getParentActivity()); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); + builder.setTitle(LocaleController.getString(R.string.AppName)); builder.setMessage(LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); fragment.showDialog(builder.create(), true, null); } @@ -5087,50 +5093,50 @@ public static void showSendMediaAlert(int result, final BaseFragment fragment, T return; } AlertDialog.Builder builder = new AlertDialog.Builder(fragment.getParentActivity(), resourcesProvider); - builder.setTitle(LocaleController.getString("UnableForward", R.string.UnableForward)); + builder.setTitle(LocaleController.getString(R.string.UnableForward)); if (result == 1) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedStickers", R.string.ErrorSendRestrictedStickers)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedStickers)); } else if (result == 2) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedMedia", R.string.ErrorSendRestrictedMedia)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedMedia)); } else if (result == 3) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedPolls", R.string.ErrorSendRestrictedPolls)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedPolls)); } else if (result == 4) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedStickersAll", R.string.ErrorSendRestrictedStickersAll)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedStickersAll)); } else if (result == 5) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedMediaAll", R.string.ErrorSendRestrictedMediaAll)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedMediaAll)); } else if (result == 6) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedPollsAll", R.string.ErrorSendRestrictedPollsAll)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedPollsAll)); } else if (result == 7) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedPrivacyVoiceMessages", R.string.ErrorSendRestrictedPrivacyVoiceMessages)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedPrivacyVoiceMessages)); } else if (result == 8) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedPrivacyVideoMessages", R.string.ErrorSendRestrictedPrivacyVideoMessages)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedPrivacyVideoMessages)); } else if (result == 9) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedVideoAll", R.string.ErrorSendRestrictedVideoAll)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedVideoAll)); } else if (result == 10) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedPhotoAll", R.string.ErrorSendRestrictedPhotoAll)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedPhotoAll)); } else if (result == 11) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedVideo", R.string.ErrorSendRestrictedVideo)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedVideo)); } else if (result == 12) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedPhoto", R.string.ErrorSendRestrictedPhoto)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedPhoto)); } else if (result == 13) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedVoiceAll", R.string.ErrorSendRestrictedVoiceAll)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedVoiceAll)); } else if (result == 14) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedVoice", R.string.ErrorSendRestrictedVoice)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedVoice)); } else if (result == 15) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedRoundAll", R.string.ErrorSendRestrictedRoundAll)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedRoundAll)); } else if (result == 16) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedRound", R.string.ErrorSendRestrictedRound)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedRound)); } else if (result == 17) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedDocumentsAll", R.string.ErrorSendRestrictedDocumentsAll)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedDocumentsAll)); } else if (result == 18) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedDocuments", R.string.ErrorSendRestrictedDocuments)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedDocuments)); } else if (result == 19) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedMusicAll", R.string.ErrorSendRestrictedMusicAll)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedMusicAll)); } else if (result == 20) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedMusic", R.string.ErrorSendRestrictedMusic)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedMusic)); } - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); fragment.showDialog(builder.create(), true, null); } @@ -5139,106 +5145,106 @@ public static void showAddUserAlert(String error, final BaseFragment fragment, b return; } AlertDialog.Builder builder = new AlertDialog.Builder(fragment.getParentActivity()); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); + builder.setTitle(LocaleController.getString(R.string.AppName)); switch (error) { case "PEER_FLOOD": - builder.setMessage(LocaleController.getString("NobodyLikesSpam2", R.string.NobodyLikesSpam2)); - builder.setNegativeButton(LocaleController.getString("MoreInfo", R.string.MoreInfo), (dialogInterface, i) -> MessagesController.getInstance(fragment.getCurrentAccount()).openByUserName("spambot", fragment, 1)); + builder.setMessage(LocaleController.getString(R.string.NobodyLikesSpam2)); + builder.setNegativeButton(LocaleController.getString(R.string.MoreInfo), (dialogInterface, i) -> MessagesController.getInstance(fragment.getCurrentAccount()).openByUserName("spambot", fragment, 1)); break; case "USER_BLOCKED": case "USER_BOT": case "USER_ID_INVALID": if (isChannel) { - builder.setMessage(LocaleController.getString("ChannelUserCantAdd", R.string.ChannelUserCantAdd)); + builder.setMessage(LocaleController.getString(R.string.ChannelUserCantAdd)); } else { - builder.setMessage(LocaleController.getString("GroupUserCantAdd", R.string.GroupUserCantAdd)); + builder.setMessage(LocaleController.getString(R.string.GroupUserCantAdd)); } break; case "USERS_TOO_MUCH": if (isChannel) { - builder.setMessage(LocaleController.getString("ChannelUserAddLimit", R.string.ChannelUserAddLimit)); + builder.setMessage(LocaleController.getString(R.string.ChannelUserAddLimit)); } else { - builder.setMessage(LocaleController.getString("GroupUserAddLimit", R.string.GroupUserAddLimit)); + builder.setMessage(LocaleController.getString(R.string.GroupUserAddLimit)); } break; case "USER_NOT_MUTUAL_CONTACT": if (isChannel) { - builder.setMessage(LocaleController.getString("ChannelUserLeftError", R.string.ChannelUserLeftError)); + builder.setMessage(LocaleController.getString(R.string.ChannelUserLeftError)); } else { - builder.setMessage(LocaleController.getString("GroupUserLeftError", R.string.GroupUserLeftError)); + builder.setMessage(LocaleController.getString(R.string.GroupUserLeftError)); } break; case "ADMINS_TOO_MUCH": if (isChannel) { - builder.setMessage(LocaleController.getString("ChannelUserCantAdmin", R.string.ChannelUserCantAdmin)); + builder.setMessage(LocaleController.getString(R.string.ChannelUserCantAdmin)); } else { - builder.setMessage(LocaleController.getString("GroupUserCantAdmin", R.string.GroupUserCantAdmin)); + builder.setMessage(LocaleController.getString(R.string.GroupUserCantAdmin)); } break; case "BOTS_TOO_MUCH": if (isChannel) { - builder.setMessage(LocaleController.getString("ChannelUserCantBot", R.string.ChannelUserCantBot)); + builder.setMessage(LocaleController.getString(R.string.ChannelUserCantBot)); } else { - builder.setMessage(LocaleController.getString("GroupUserCantBot", R.string.GroupUserCantBot)); + builder.setMessage(LocaleController.getString(R.string.GroupUserCantBot)); } break; case "USER_PRIVACY_RESTRICTED": if (isChannel) { - builder.setMessage(LocaleController.getString("InviteToChannelError", R.string.InviteToChannelError)); + builder.setMessage(LocaleController.getString(R.string.InviteToChannelError)); } else { - builder.setMessage(LocaleController.getString("InviteToGroupError", R.string.InviteToGroupError)); + builder.setMessage(LocaleController.getString(R.string.InviteToGroupError)); } break; case "USERS_TOO_FEW": - builder.setMessage(LocaleController.getString("CreateGroupError", R.string.CreateGroupError)); + builder.setMessage(LocaleController.getString(R.string.CreateGroupError)); break; case "USER_RESTRICTED": - builder.setMessage(LocaleController.getString("UserRestricted", R.string.UserRestricted)); + builder.setMessage(LocaleController.getString(R.string.UserRestricted)); break; case "YOU_BLOCKED_USER": - builder.setMessage(LocaleController.getString("YouBlockedUser", R.string.YouBlockedUser)); + builder.setMessage(LocaleController.getString(R.string.YouBlockedUser)); break; case "CHAT_ADMIN_BAN_REQUIRED": case "USER_KICKED": if (request instanceof TLRPC.TL_channels_inviteToChannel) { - builder.setMessage(LocaleController.getString("AddUserErrorBlacklisted", R.string.AddUserErrorBlacklisted)); + builder.setMessage(LocaleController.getString(R.string.AddUserErrorBlacklisted)); } else { - builder.setMessage(LocaleController.getString("AddAdminErrorBlacklisted", R.string.AddAdminErrorBlacklisted)); + builder.setMessage(LocaleController.getString(R.string.AddAdminErrorBlacklisted)); } break; case "CHAT_ADMIN_INVITE_REQUIRED": - builder.setMessage(LocaleController.getString("AddAdminErrorNotAMember", R.string.AddAdminErrorNotAMember)); + builder.setMessage(LocaleController.getString(R.string.AddAdminErrorNotAMember)); break; case "USER_ADMIN_INVALID": - builder.setMessage(LocaleController.getString("AddBannedErrorAdmin", R.string.AddBannedErrorAdmin)); + builder.setMessage(LocaleController.getString(R.string.AddBannedErrorAdmin)); break; case "CHANNELS_ADMIN_PUBLIC_TOO_MUCH": - builder.setMessage(LocaleController.getString("PublicChannelsTooMuch", R.string.PublicChannelsTooMuch)); + builder.setMessage(LocaleController.getString(R.string.PublicChannelsTooMuch)); break; case "CHANNELS_ADMIN_LOCATED_TOO_MUCH": - builder.setMessage(LocaleController.getString("LocatedChannelsTooMuch", R.string.LocatedChannelsTooMuch)); + builder.setMessage(LocaleController.getString(R.string.LocatedChannelsTooMuch)); break; case "CHANNELS_TOO_MUCH": - builder.setTitle(LocaleController.getString("ChannelTooMuchTitle", R.string.ChannelTooMuchTitle)); + builder.setTitle(LocaleController.getString(R.string.ChannelTooMuchTitle)); if (request instanceof TLRPC.TL_channels_createChannel) { - builder.setMessage(LocaleController.getString("ChannelTooMuch", R.string.ChannelTooMuch)); + builder.setMessage(LocaleController.getString(R.string.ChannelTooMuch)); } else { - builder.setMessage(LocaleController.getString("ChannelTooMuchJoin", R.string.ChannelTooMuchJoin)); + builder.setMessage(LocaleController.getString(R.string.ChannelTooMuchJoin)); } break; case "USER_CHANNELS_TOO_MUCH": - builder.setTitle(LocaleController.getString("ChannelTooMuchTitle", R.string.ChannelTooMuchTitle)); - builder.setMessage(LocaleController.getString("UserChannelTooMuchJoin", R.string.UserChannelTooMuchJoin)); + builder.setTitle(LocaleController.getString(R.string.ChannelTooMuchTitle)); + builder.setMessage(LocaleController.getString(R.string.UserChannelTooMuchJoin)); break; case "USER_ALREADY_PARTICIPANT": - builder.setTitle(LocaleController.getString("VoipGroupVoiceChat", R.string.VoipGroupVoiceChat)); - builder.setMessage(LocaleController.getString("VoipGroupInviteAlreadyParticipant", R.string.VoipGroupInviteAlreadyParticipant)); + builder.setTitle(LocaleController.getString(R.string.VoipGroupVoiceChat)); + builder.setMessage(LocaleController.getString(R.string.VoipGroupInviteAlreadyParticipant)); break; default: - builder.setMessage(LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred) + "\n" + error); + builder.setMessage(LocaleController.getString(R.string.ErrorOccurred) + "\n" + error); break; } - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); fragment.showDialog(builder.create(), true, null); } @@ -5273,15 +5279,15 @@ public static Dialog createColorSelectDialog(Activity parentActivity, final long } final LinearLayout linearLayout = new LinearLayout(parentActivity); linearLayout.setOrientation(LinearLayout.VERTICAL); - String[] descriptions = new String[]{LocaleController.getString("ColorRed", R.string.ColorRed), - LocaleController.getString("ColorOrange", R.string.ColorOrange), - LocaleController.getString("ColorYellow", R.string.ColorYellow), - LocaleController.getString("ColorGreen", R.string.ColorGreen), - LocaleController.getString("ColorCyan", R.string.ColorCyan), - LocaleController.getString("ColorBlue", R.string.ColorBlue), - LocaleController.getString("ColorViolet", R.string.ColorViolet), - LocaleController.getString("ColorPink", R.string.ColorPink), - LocaleController.getString("ColorWhite", R.string.ColorWhite)}; + String[] descriptions = new String[]{LocaleController.getString(R.string.ColorRed), + LocaleController.getString(R.string.ColorOrange), + LocaleController.getString(R.string.ColorYellow), + LocaleController.getString(R.string.ColorGreen), + LocaleController.getString(R.string.ColorCyan), + LocaleController.getString(R.string.ColorBlue), + LocaleController.getString(R.string.ColorViolet), + LocaleController.getString(R.string.ColorPink), + LocaleController.getString(R.string.ColorWhite)}; final int[] selectedColor = new int[]{currentColor}; for (int a = 0; a < 9; a++) { RadioColorCell cell = new RadioColorCell(parentActivity, resourcesProvider); @@ -5300,9 +5306,9 @@ public static Dialog createColorSelectDialog(Activity parentActivity, final long }); } AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity, resourcesProvider); - builder.setTitle(LocaleController.getString("LedColor", R.string.LedColor)); + builder.setTitle(LocaleController.getString(R.string.LedColor)); builder.setView(linearLayout); - builder.setPositiveButton(LocaleController.getString("Set", R.string.Set), (dialogInterface, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Set), (dialogInterface, which) -> { final SharedPreferences preferences1 = MessagesController.getNotificationsSettings(UserConfig.selectedAccount); SharedPreferences.Editor editor = preferences1.edit(); if (dialog_id != 0) { @@ -5327,7 +5333,7 @@ public static Dialog createColorSelectDialog(Activity parentActivity, final long onSelect.run(); } }); - builder.setNeutralButton(LocaleController.getString("LedDisabled", R.string.LedDisabled), (dialog, which) -> { + builder.setNeutralButton(LocaleController.getString(R.string.LedDisabled), (dialog, which) -> { final SharedPreferences preferences12 = MessagesController.getNotificationsSettings(UserConfig.selectedAccount); SharedPreferences.Editor editor = preferences12.edit(); if (dialog_id != 0) { @@ -5349,7 +5355,7 @@ public static Dialog createColorSelectDialog(Activity parentActivity, final long } }); if (dialog_id != 0) { - builder.setNegativeButton(LocaleController.getString("Default", R.string.Default), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Default), (dialog, which) -> { final SharedPreferences preferences13 = MessagesController.getNotificationsSettings(UserConfig.selectedAccount); SharedPreferences.Editor editor = preferences13.edit(); editor.remove("color_" + key); @@ -5392,10 +5398,10 @@ public static Dialog createVibrationSelectDialog(Activity parentActivity, final selected[0] = 3; } descriptions = new String[]{ - LocaleController.getString("VibrationDefault", R.string.VibrationDefault), - LocaleController.getString("Short", R.string.Short), - LocaleController.getString("Long", R.string.Long), - LocaleController.getString("VibrationDisabled", R.string.VibrationDisabled) + LocaleController.getString(R.string.VibrationDefault), + LocaleController.getString(R.string.Short), + LocaleController.getString(R.string.Long), + LocaleController.getString(R.string.VibrationDisabled) }; } else { selected[0] = preferences.getInt(prefKeyPrefix, 0); @@ -5407,11 +5413,11 @@ public static Dialog createVibrationSelectDialog(Activity parentActivity, final selected[0] = 0; } descriptions = new String[]{ - LocaleController.getString("VibrationDisabled", R.string.VibrationDisabled), - LocaleController.getString("VibrationDefault", R.string.VibrationDefault), - LocaleController.getString("Short", R.string.Short), - LocaleController.getString("Long", R.string.Long), - LocaleController.getString("OnlyIfSilent", R.string.OnlyIfSilent) + LocaleController.getString(R.string.VibrationDisabled), + LocaleController.getString(R.string.VibrationDefault), + LocaleController.getString(R.string.Short), + LocaleController.getString(R.string.Long), + LocaleController.getString(R.string.OnlyIfSilent) }; } @@ -5471,9 +5477,9 @@ public static Dialog createVibrationSelectDialog(Activity parentActivity, final } }); } - builder.setTitle(LocaleController.getString("Vibrate", R.string.Vibrate)); + builder.setTitle(LocaleController.getString(R.string.Vibrate)); builder.setView(linearLayout); - builder.setPositiveButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Cancel), null); return builder.create(); } @@ -5535,7 +5541,7 @@ public static Dialog createLocationUpdateDialog(final Activity parentActivity, b builder.setTopImage(new ShareLocationDrawable(parentActivity, 0), topImageColor); } builder.setView(linearLayout); - builder.setPositiveButton(LocaleController.getString("ShareFile", R.string.ShareFile), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.ShareFile), (dialog, which) -> { int time; if (selected[0] == 0) { time = 15 * 60; @@ -5548,7 +5554,7 @@ public static Dialog createLocationUpdateDialog(final Activity parentActivity, b } callback.run(time); }); - builder.setNeutralButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNeutralButton(LocaleController.getString(R.string.Cancel), null); return builder.create(); } @@ -5558,8 +5564,8 @@ public static AlertDialog.Builder createBackgroundLocationPermissionDialog(Activ return null; } AlertDialog.Builder builder = new AlertDialog.Builder(activity, resourcesProvider); - String svg = RLottieDrawable.readRes(null, Theme.getCurrentTheme().isDark() ? R.raw.permission_map_dark : R.raw.permission_map); - String pinSvg = RLottieDrawable.readRes(null, Theme.getCurrentTheme().isDark() ? R.raw.permission_pin_dark : R.raw.permission_pin); + String svg = AndroidUtilities.readRes(Theme.getCurrentTheme().isDark() ? R.raw.permission_map_dark : R.raw.permission_map); + String pinSvg = AndroidUtilities.readRes(Theme.getCurrentTheme().isDark() ? R.raw.permission_pin_dark : R.raw.permission_pin); FrameLayout frameLayout = new FrameLayout(activity); frameLayout.setClipToOutline(true); frameLayout.setOutlineProvider(new ViewOutlineProvider() { @@ -5591,13 +5597,13 @@ public void getOutline(View view, Outline outline) { activity.requestPermissions(new String[]{Manifest.permission.ACCESS_BACKGROUND_LOCATION}, 30); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), ((dialog, which) -> cancelRunnable.run())); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), ((dialog, which) -> cancelRunnable.run())); return builder; } public static AlertDialog.Builder createGigagroupConvertAlert(Activity activity, DialogInterface.OnClickListener onProcess, DialogInterface.OnClickListener onCancel) { AlertDialog.Builder builder = new AlertDialog.Builder(activity); - String svg = RLottieDrawable.readRes(null, R.raw.gigagroup); + String svg = AndroidUtilities.readRes(R.raw.gigagroup); FrameLayout frameLayout = new FrameLayout(activity); if (Build.VERSION.SDK_INT >= 21) { frameLayout.setClipToOutline(true); @@ -5615,17 +5621,17 @@ public void getOutline(View view, Outline outline) { builder.setTopView(frameLayout); builder.setTopViewAspectRatio(aspectRatio); - builder.setTitle(LocaleController.getString("GigagroupAlertTitle", R.string.GigagroupAlertTitle)); - builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString("GigagroupAlertText", R.string.GigagroupAlertText))); - builder.setPositiveButton(LocaleController.getString("GigagroupAlertLearnMore", R.string.GigagroupAlertLearnMore), onProcess); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), onCancel); + builder.setTitle(LocaleController.getString(R.string.GigagroupAlertTitle)); + builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString(R.string.GigagroupAlertText))); + builder.setPositiveButton(LocaleController.getString(R.string.GigagroupAlertLearnMore), onProcess); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), onCancel); return builder; } @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public static AlertDialog.Builder createDrawOverlayPermissionDialog(Activity activity, DialogInterface.OnClickListener onCancel) { AlertDialog.Builder builder = new AlertDialog.Builder(activity); - String svg = RLottieDrawable.readRes(null, R.raw.pip_video_request); + String svg = AndroidUtilities.readRes(R.raw.pip_video_request); FrameLayout frameLayout = new FrameLayout(activity); frameLayout.setBackground(new GradientDrawable(GradientDrawable.Orientation.BL_TR, new int[]{0xFF22364F, 0xFF22526A})); @@ -5643,9 +5649,9 @@ public void getOutline(View view, Outline outline) { frameLayout.addView(background, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, 0, -1, -1, -1, -1)); builder.setTopView(frameLayout); - builder.setTitle(LocaleController.getString("PermissionDrawAboveOtherAppsTitle", R.string.PermissionDrawAboveOtherAppsTitle)); - builder.setMessage(LocaleController.getString("PermissionDrawAboveOtherApps", R.string.PermissionDrawAboveOtherApps)); - builder.setPositiveButton(LocaleController.getString("Enable", R.string.Enable), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.PermissionDrawAboveOtherAppsTitle)); + builder.setMessage(LocaleController.getString(R.string.PermissionDrawAboveOtherApps)); + builder.setPositiveButton(LocaleController.getString(R.string.Enable), (dialogInterface, i) -> { if (activity != null) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { try { @@ -5657,7 +5663,7 @@ public void getOutline(View view, Outline outline) { } }); builder.notDrawBackgroundOnTopView(true); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), onCancel); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), onCancel); builder.setTopViewAspectRatio(aspectRatio); return builder; } @@ -5665,7 +5671,7 @@ public void getOutline(View view, Outline outline) { @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public static AlertDialog.Builder createDrawOverlayGroupCallPermissionDialog(Context context) { AlertDialog.Builder builder = new AlertDialog.Builder(context); - String svg = RLottieDrawable.readRes(null, R.raw.pip_voice_request); + String svg = AndroidUtilities.readRes(R.raw.pip_voice_request); GroupCallPipButton button = new GroupCallPipButton(context, 0, true); button.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); @@ -5695,9 +5701,9 @@ public void getOutline(View view, Outline outline) { frameLayout.addView(button, LayoutHelper.createFrame(117, 117)); builder.setTopView(frameLayout); - builder.setTitle(LocaleController.getString("PermissionDrawAboveOtherAppsGroupCallTitle", R.string.PermissionDrawAboveOtherAppsGroupCallTitle)); - builder.setMessage(LocaleController.getString("PermissionDrawAboveOtherAppsGroupCall", R.string.PermissionDrawAboveOtherAppsGroupCall)); - builder.setPositiveButton(LocaleController.getString("Enable", R.string.Enable), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.PermissionDrawAboveOtherAppsGroupCallTitle)); + builder.setMessage(LocaleController.getString(R.string.PermissionDrawAboveOtherAppsGroupCall)); + builder.setPositiveButton(LocaleController.getString(R.string.Enable), (dialogInterface, i) -> { if (context != null) { try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { @@ -5715,7 +5721,7 @@ public void getOutline(View view, Outline outline) { } }); builder.notDrawBackgroundOnTopView(true); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.setTopViewAspectRatio(aspectRatio); return builder; } @@ -5723,18 +5729,18 @@ public void getOutline(View view, Outline outline) { public static AlertDialog.Builder createContactsPermissionDialog(Activity parentActivity, MessagesStorage.IntCallback callback) { AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity); builder.setTopAnimation(R.raw.permission_request_contacts, PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)); - builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString("ContactsPermissionAlert", R.string.ContactsPermissionAlert))); - builder.setPositiveButton(LocaleController.getString("ContactsPermissionAlertContinue", R.string.ContactsPermissionAlertContinue), (dialog, which) -> callback.run(1)); - builder.setNegativeButton(LocaleController.getString("ContactsPermissionAlertNotNow", R.string.ContactsPermissionAlertNotNow), (dialog, which) -> callback.run(0)); + builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString(R.string.ContactsPermissionAlert))); + builder.setPositiveButton(LocaleController.getString(R.string.ContactsPermissionAlertContinue), (dialog, which) -> callback.run(1)); + builder.setNegativeButton(LocaleController.getString(R.string.ContactsPermissionAlertNotNow), (dialog, which) -> callback.run(0)); return builder; } public static Dialog createFreeSpaceDialog(final LaunchActivity parentActivity) { AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity); - builder.setTitle(LocaleController.getString("LowDiskSpaceTitle", R.string.LowDiskSpaceTitle)); - builder.setMessage(LocaleController.getString("LowDiskSpaceMessage2", R.string.LowDiskSpaceMessage2)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("LowDiskSpaceButton", R.string.LowDiskSpaceButton), (dialog, which) -> parentActivity.presentFragment(new CacheControlActivity())); + builder.setTitle(LocaleController.getString(R.string.LowDiskSpaceTitle)); + builder.setMessage(LocaleController.getString(R.string.LowDiskSpaceMessage2)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.LowDiskSpaceButton), (dialog, which) -> parentActivity.presentFragment(new CacheControlActivity())); return builder.create(); } @@ -5760,11 +5766,11 @@ public static Dialog createPrioritySelectDialog(Activity parentActivity, final l selected[0] = 4; } descriptions = new String[]{ - LocaleController.getString("NotificationsPrioritySettings", R.string.NotificationsPrioritySettings), - LocaleController.getString("NotificationsPriorityLow", R.string.NotificationsPriorityLow), - LocaleController.getString("NotificationsPriorityMedium", R.string.NotificationsPriorityMedium), - LocaleController.getString("NotificationsPriorityHigh", R.string.NotificationsPriorityHigh), - LocaleController.getString("NotificationsPriorityUrgent", R.string.NotificationsPriorityUrgent) + LocaleController.getString(R.string.NotificationsPrioritySettings), + LocaleController.getString(R.string.NotificationsPriorityLow), + LocaleController.getString(R.string.NotificationsPriorityMedium), + LocaleController.getString(R.string.NotificationsPriorityHigh), + LocaleController.getString(R.string.NotificationsPriorityUrgent) }; } else { if (globalType == NotificationsController.TYPE_PRIVATE) { @@ -5788,10 +5794,10 @@ public static Dialog createPrioritySelectDialog(Activity parentActivity, final l selected[0] = 3; } descriptions = new String[]{ - LocaleController.getString("NotificationsPriorityLow", R.string.NotificationsPriorityLow), - LocaleController.getString("NotificationsPriorityMedium", R.string.NotificationsPriorityMedium), - LocaleController.getString("NotificationsPriorityHigh", R.string.NotificationsPriorityHigh), - LocaleController.getString("NotificationsPriorityUrgent", R.string.NotificationsPriorityUrgent) + LocaleController.getString(R.string.NotificationsPriorityLow), + LocaleController.getString(R.string.NotificationsPriorityMedium), + LocaleController.getString(R.string.NotificationsPriorityHigh), + LocaleController.getString(R.string.NotificationsPriorityUrgent) }; } @@ -5862,9 +5868,9 @@ public static Dialog createPrioritySelectDialog(Activity parentActivity, final l } }); } - builder.setTitle(LocaleController.getString("NotificationsImportance", R.string.NotificationsImportance)); + builder.setTitle(LocaleController.getString(R.string.NotificationsImportance)); builder.setView(linearLayout); - builder.setPositiveButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Cancel), null); return builder.create(); } @@ -5879,10 +5885,10 @@ public static Dialog createPopupSelectDialog(Activity parentActivity, final int selected[0] = preferences.getInt("popupChannel", 0); } String[] descriptions = new String[]{ - LocaleController.getString("NoPopup", R.string.NoPopup), - LocaleController.getString("OnlyWhenScreenOn", R.string.OnlyWhenScreenOn), - LocaleController.getString("OnlyWhenScreenOff", R.string.OnlyWhenScreenOff), - LocaleController.getString("AlwaysShowPopup", R.string.AlwaysShowPopup) + LocaleController.getString(R.string.NoPopup), + LocaleController.getString(R.string.OnlyWhenScreenOn), + LocaleController.getString(R.string.OnlyWhenScreenOff), + LocaleController.getString(R.string.AlwaysShowPopup) }; final LinearLayout linearLayout = new LinearLayout(parentActivity); @@ -5915,9 +5921,9 @@ public static Dialog createPopupSelectDialog(Activity parentActivity, final int } }); } - builder.setTitle(LocaleController.getString("PopupNotification", R.string.PopupNotification)); + builder.setTitle(LocaleController.getString(R.string.PopupNotification)); builder.setView(linearLayout); - builder.setPositiveButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Cancel), null); return builder.create(); } @@ -5941,13 +5947,13 @@ public static Dialog createSingleChoiceDialog(Activity parentActivity, final Str builder.setTitle(title); builder.setView(linearLayout); - builder.setPositiveButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Cancel), null); return builder.create(); } public static AlertDialog.Builder createTTLAlert(final Context context, final TLRPC.EncryptedChat encryptedChat, Theme.ResourcesProvider resourcesProvider) { AlertDialog.Builder builder = new AlertDialog.Builder(context, resourcesProvider); - builder.setTitle(LocaleController.getString("MessageLifetime", R.string.MessageLifetime)); + builder.setTitle(LocaleController.getString(R.string.MessageLifetime)); final NumberPicker numberPicker = new NumberPicker(context); numberPicker.setMinValue(0); numberPicker.setMaxValue(20); @@ -5968,7 +5974,7 @@ public static AlertDialog.Builder createTTLAlert(final Context context, final TL } numberPicker.setFormatter(value -> { if (value == 0) { - return LocaleController.getString("ShortMessageLifetimeForever", R.string.ShortMessageLifetimeForever); + return LocaleController.getString(R.string.ShortMessageLifetimeForever); } else if (value >= 1 && value < 16) { return LocaleController.formatTTLString(value); } else if (value == 16) { @@ -5985,7 +5991,7 @@ public static AlertDialog.Builder createTTLAlert(final Context context, final TL return ""; }); builder.setView(numberPicker); - builder.setNegativeButton(LocaleController.getString("Done", R.string.Done), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Done), (dialog, which) -> { int oldValue = encryptedChat.ttl; which = numberPicker.getValue(); if (which >= 0 && which < 16) { @@ -6044,9 +6050,9 @@ public static AlertDialog createAccountSelectDialog(Activity parentActivity, fin } } - builder.setTitle(LocaleController.getString("SelectAccount", R.string.SelectAccount)); + builder.setTitle(LocaleController.getString(R.string.SelectAccount)); builder.setView(linearLayout); - builder.setPositiveButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Cancel), null); return alertDialog[0] = builder.create(); } @@ -6244,9 +6250,9 @@ public static void createDeleteMessagesAlert(BaseFragment fragment, TLRPC.User u CheckBoxCell cell = new CheckBoxCell(activity, 1, resourcesProvider); cell.setBackgroundDrawable(Theme.getSelectorDrawable(false)); if (chat != null && hasNotOut) { - cell.setText(LocaleController.getString("DeleteForAll", R.string.DeleteForAll), "", true, false); + cell.setText(LocaleController.getString(R.string.DeleteForAll), "", true, false); } else { - cell.setText(LocaleController.getString("DeleteMessagesOption", R.string.DeleteMessagesOption), "", true, false); + cell.setText(LocaleController.getString(R.string.DeleteMessagesOption), "", true, false); } cell.setPadding(LocaleController.isRTL ? dp(16) : dp(8), 0, LocaleController.isRTL ? dp(8) : dp(16), 0); frameLayout.addView(cell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.TOP | Gravity.LEFT, 0, 0, 0, 0)); @@ -6304,9 +6310,9 @@ public static void createDeleteMessagesAlert(BaseFragment fragment, TLRPC.User u if (canDeleteInbox) { cell.setText(LocaleController.formatString("DeleteMessagesOptionAlso", R.string.DeleteMessagesOptionAlso, UserObject.getFirstName(user)), "", true, false); } else if (chat != null && (hasNotOut || myMessagesCount == count)) { - cell.setText(LocaleController.getString("DeleteForAll", R.string.DeleteForAll), "", true, false); + cell.setText(LocaleController.getString(R.string.DeleteForAll), "", true, false); } else { - cell.setText(LocaleController.getString("DeleteMessagesOption", R.string.DeleteMessagesOption), "", true, false); + cell.setText(LocaleController.getString(R.string.DeleteMessagesOption), "", true, false); } cell.setPadding(LocaleController.isRTL ? dp(16) : dp(8), 0, LocaleController.isRTL ? dp(8) : dp(16), 0); frameLayout.addView(cell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.TOP | Gravity.LEFT, 0, 0, 0, 0)); @@ -6413,15 +6419,15 @@ public static void createDeleteMessagesAlert(BaseFragment fragment, TLRPC.User u } else { if (chat != null && chat.megagroup && !scheduled) { if (count == 1) { - builder.setMessage(LocaleController.getString("AreYouSureDeleteSingleMessageMega", R.string.AreYouSureDeleteSingleMessageMega)); + builder.setMessage(LocaleController.getString(R.string.AreYouSureDeleteSingleMessageMega)); } else { - builder.setMessage(LocaleController.getString("AreYouSureDeleteFewMessagesMega", R.string.AreYouSureDeleteFewMessagesMega)); + builder.setMessage(LocaleController.getString(R.string.AreYouSureDeleteFewMessagesMega)); } } else { if (count == 1) { - builder.setMessage(LocaleController.getString("AreYouSureDeleteSingleMessage", R.string.AreYouSureDeleteSingleMessage)); + builder.setMessage(LocaleController.getString(R.string.AreYouSureDeleteSingleMessage)); } else { - builder.setMessage(LocaleController.getString("AreYouSureDeleteFewMessages", R.string.AreYouSureDeleteFewMessages)); + builder.setMessage(LocaleController.getString(R.string.AreYouSureDeleteFewMessages)); } } } @@ -6452,13 +6458,13 @@ public static void createDeleteMessagesAlert(BaseFragment fragment, TLRPC.User u } if (isActiveGiveawayAndOwner && !isSavedMessages) { - builder.setTitle(LocaleController.getString("BoostingGiveawayDeleteMsgTitle", R.string.BoostingGiveawayDeleteMsgTitle)); + builder.setTitle(LocaleController.getString(R.string.BoostingGiveawayDeleteMsgTitle)); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("BoostingGiveawayDeleteMsgText", R.string.BoostingGiveawayDeleteMsgText, giveawayEndDate))); - builder.setNeutralButton(LocaleController.getString("Delete", R.string.Delete), deleteAction); + builder.setNeutralButton(LocaleController.getString(R.string.Delete), deleteAction); } else { builder.setPositiveButton(LocaleController.getString(isSavedMessages ? R.string.Remove : R.string.Delete), deleteAction); } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.setOnPreDismissListener(di -> { if (hideDim != null) { hideDim.run(); @@ -6488,9 +6494,9 @@ public static void createThemeCreateDialog(BaseFragment fragment, int type, Them editText.setLineColors(Theme.getColor(Theme.key_dialogInputField), Theme.getColor(Theme.key_dialogInputFieldActivated), Theme.getColor(Theme.key_text_RedBold)); AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(LocaleController.getString("NewTheme", R.string.NewTheme)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("Create", R.string.Create), (dialog, which) -> { + builder.setTitle(LocaleController.getString(R.string.NewTheme)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Create), (dialog, which) -> { }); @@ -6500,9 +6506,9 @@ public static void createThemeCreateDialog(BaseFragment fragment, int type, Them final TextView message = new TextView(context); if (type != 0) { - message.setText(AndroidUtilities.replaceTags(LocaleController.getString("EnterThemeNameEdit", R.string.EnterThemeNameEdit))); + message.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.EnterThemeNameEdit))); } else { - message.setText(LocaleController.getString("EnterThemeName", R.string.EnterThemeName)); + message.setText(LocaleController.getString(R.string.EnterThemeName)); } message.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); message.setPadding(dp(23), dp(12), dp(23), dp(6)); @@ -6577,7 +6583,7 @@ private static void processCreate(EditTextBoldCursor editText, AlertDialog alert } preferences.edit().putBoolean("themehint", true).commit(); try { - Toast.makeText(fragment.getParentActivity(), LocaleController.getString("CreateNewThemeHelp", R.string.CreateNewThemeHelp), Toast.LENGTH_LONG).show(); + Toast.makeText(fragment.getParentActivity(), LocaleController.getString(R.string.CreateNewThemeHelp), Toast.LENGTH_LONG).show(); } catch (Exception e) { FileLog.e(e); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ArchiveHelp.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ArchiveHelp.java index 936a972053..fb5923160b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ArchiveHelp.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ArchiveHelp.java @@ -55,7 +55,7 @@ public ArchiveHelp(Context context, int currentAccount, Theme.ResourcesProvider titleTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); titleTextView.setTypeface(AndroidUtilities.bold()); titleTextView.setGravity(Gravity.CENTER_HORIZONTAL); - titleTextView.setText(LocaleController.getString("ArchiveHintHeader1", R.string.ArchiveHintHeader1)); + titleTextView.setText(LocaleController.getString(R.string.ArchiveHintHeader1)); layout.addView(titleTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 32, 0, 32, 9)); subtitleTextView = new LinkSpanDrawable.LinksTextView(context); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioPlayerAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioPlayerAlert.java index 9d91a31f17..98d7764a68 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioPlayerAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioPlayerAlert.java @@ -448,7 +448,7 @@ public void setAlpha(float alpha) { actionBar.setItemsColor(getThemedColor(Theme.key_player_actionBarTitle), false); actionBar.setItemsBackgroundColor(getThemedColor(Theme.key_player_actionBarSelector), false); actionBar.setTitleColor(getThemedColor(Theme.key_player_actionBarTitle)); - actionBar.setTitle(LocaleController.getString("AttachMusic", R.string.AttachMusic)); + actionBar.setTitle(LocaleController.getString(R.string.AttachMusic)); actionBar.setSubtitleColor(getThemedColor(Theme.key_player_actionBarSubtitle)); actionBar.setOccupyStatusBar(true); actionBar.setAlpha(0.0f); @@ -514,9 +514,9 @@ public void onTextChanged(EditText editText) { } } }); - searchItem.setContentDescription(LocaleController.getString("Search", R.string.Search)); + searchItem.setContentDescription(LocaleController.getString(R.string.Search)); EditTextBoldCursor editText = searchItem.getSearchField(); - editText.setHint(LocaleController.getString("Search", R.string.Search)); + editText.setHint(LocaleController.getString(R.string.Search)); editText.setTextColor(getThemedColor(Theme.key_player_actionBarTitle)); editText.setHintTextColor(getThemedColor(Theme.key_player_time)); editText.setCursorColor(getThemedColor(Theme.key_player_actionBarTitle)); @@ -695,7 +695,7 @@ public CharSequence getContentDescription() { playbackSpeedButton.setLongClickEnabled(false); playbackSpeedButton.setShowSubmenuByMove(false); playbackSpeedButton.setAdditionalYOffset(-AndroidUtilities.dp(224)); - playbackSpeedButton.setContentDescription(LocaleController.getString("AccDescrPlayerSpeed", R.string.AccDescrPlayerSpeed)); + playbackSpeedButton.setContentDescription(LocaleController.getString(R.string.AccDescrPlayerSpeed)); playbackSpeedButton.setDelegate(id -> { if (id < 0 || id >= speeds.length) { return; @@ -712,12 +712,12 @@ public CharSequence getContentDescription() { slidingSpeed = !isFinal; MediaController.getInstance().setPlaybackSpeed(true, speedSlider.getSpeed(value)); }); - speedItems[0] = playbackSpeedButton.addSubItem(0, R.drawable.msg_speed_slow, LocaleController.getString("SpeedSlow", R.string.SpeedSlow)); - speedItems[1] = playbackSpeedButton.addSubItem(1, R.drawable.msg_speed_normal, LocaleController.getString("SpeedNormal", R.string.SpeedNormal)); - speedItems[2] = playbackSpeedButton.addSubItem(2, R.drawable.msg_speed_medium, LocaleController.getString("SpeedMedium", R.string.SpeedMedium)); - speedItems[3] = playbackSpeedButton.addSubItem(3, R.drawable.msg_speed_fast, LocaleController.getString("SpeedFast", R.string.SpeedFast)); - speedItems[4] = playbackSpeedButton.addSubItem(4, R.drawable.msg_speed_veryfast, LocaleController.getString("SpeedVeryFast", R.string.SpeedVeryFast)); - speedItems[5] = playbackSpeedButton.addSubItem(5, R.drawable.msg_speed_superfast, LocaleController.getString("SpeedSuperFast", R.string.SpeedSuperFast)); + speedItems[0] = playbackSpeedButton.addSubItem(0, R.drawable.msg_speed_slow, LocaleController.getString(R.string.SpeedSlow)); + speedItems[1] = playbackSpeedButton.addSubItem(1, R.drawable.msg_speed_normal, LocaleController.getString(R.string.SpeedNormal)); + speedItems[2] = playbackSpeedButton.addSubItem(2, R.drawable.msg_speed_medium, LocaleController.getString(R.string.SpeedMedium)); + speedItems[3] = playbackSpeedButton.addSubItem(3, R.drawable.msg_speed_fast, LocaleController.getString(R.string.SpeedFast)); + speedItems[4] = playbackSpeedButton.addSubItem(4, R.drawable.msg_speed_veryfast, LocaleController.getString(R.string.SpeedVeryFast)); + speedItems[5] = playbackSpeedButton.addSubItem(5, R.drawable.msg_speed_superfast, LocaleController.getString(R.string.SpeedSuperFast)); if (AndroidUtilities.density >= 3.0f) { playbackSpeedButton.setPadding(0, 1, 0, 0); } @@ -819,10 +819,10 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto updateSubMenu(); repeatButton.toggleSubMenu(); }); - repeatSongItem = repeatButton.addSubItem(3, R.drawable.player_new_repeatone, LocaleController.getString("RepeatSong", R.string.RepeatSong)); - repeatListItem = repeatButton.addSubItem(4, R.drawable.player_new_repeatall, LocaleController.getString("RepeatList", R.string.RepeatList)); - shuffleListItem = repeatButton.addSubItem(2, R.drawable.player_new_shuffle, LocaleController.getString("ShuffleList", R.string.ShuffleList)); - reverseOrderItem = repeatButton.addSubItem(1, R.drawable.player_new_order, LocaleController.getString("ReverseOrder", R.string.ReverseOrder)); + repeatSongItem = repeatButton.addSubItem(3, R.drawable.player_new_repeatone, LocaleController.getString(R.string.RepeatSong)); + repeatListItem = repeatButton.addSubItem(4, R.drawable.player_new_repeatall, LocaleController.getString(R.string.RepeatList)); + shuffleListItem = repeatButton.addSubItem(2, R.drawable.player_new_shuffle, LocaleController.getString(R.string.ShuffleList)); + reverseOrderItem = repeatButton.addSubItem(1, R.drawable.player_new_order, LocaleController.getString(R.string.ReverseOrder)); repeatButton.setShowedFromBottom(true); repeatButton.setDelegate(id -> { @@ -1003,7 +1003,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { if (messageObject != null && !messageObject.isVoice()) { bottomView.addView(prevButton, LayoutHelper.createFrame(48, 48, Gravity.LEFT | Gravity.TOP)); } - prevButton.setContentDescription(LocaleController.getString("AccDescrPrevious", R.string.AccDescrPrevious)); + prevButton.setContentDescription(LocaleController.getString(R.string.AccDescrPrevious)); buttons[2] = playButton = new ImageView(context); playButton.setScaleType(ImageView.ScaleType.CENTER); @@ -1129,7 +1129,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { if (messageObject != null && !messageObject.isVoice()) { bottomView.addView(nextButton, LayoutHelper.createFrame(48, 48, Gravity.LEFT | Gravity.TOP)); } - nextButton.setContentDescription(LocaleController.getString("Next", R.string.Next)); + nextButton.setContentDescription(LocaleController.getString(R.string.Next)); buttons[4] = optionsButton = new ActionBarMenuItem(context, null, 0, iconColor, false, resourcesProvider); optionsButton.setLongClickEnabled(false); @@ -1141,14 +1141,14 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { optionsButton.setBackgroundDrawable(Theme.createSelectorDrawable(getThemedColor(Theme.key_listSelector), 1, AndroidUtilities.dp(18))); } bottomView.addView(optionsButton, LayoutHelper.createFrame(48, 48, Gravity.LEFT | Gravity.TOP)); - optionsButton.addSubItem(1, R.drawable.msg_forward, LocaleController.getString("Forward", R.string.Forward)); - optionsButton.addSubItem(2, R.drawable.msg_shareout, LocaleController.getString("ShareFile", R.string.ShareFile)); - optionsButton.addSubItem(5, R.drawable.msg_download, LocaleController.getString("SaveToMusic", R.string.SaveToMusic)); - optionsButton.addSubItem(4, R.drawable.msg_message, LocaleController.getString("ShowInChat", R.string.ShowInChat)); + optionsButton.addSubItem(1, R.drawable.msg_forward, LocaleController.getString(R.string.Forward)); + optionsButton.addSubItem(2, R.drawable.msg_shareout, LocaleController.getString(R.string.ShareFile)); + optionsButton.addSubItem(5, R.drawable.msg_download, LocaleController.getString(R.string.SaveToMusic)); + optionsButton.addSubItem(4, R.drawable.msg_message, LocaleController.getString(R.string.ShowInChat)); optionsButton.setShowedFromBottom(true); optionsButton.setOnClickListener(v -> optionsButton.toggleSubMenu()); optionsButton.setDelegate(this::onSubItemClick); - optionsButton.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + optionsButton.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); emptyView = new LinearLayout(context); emptyView.setOrientation(LinearLayout.VERTICAL); @@ -1165,7 +1165,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { emptyTitleTextView = new TextView(context); emptyTitleTextView.setTextColor(getThemedColor(Theme.key_dialogEmptyText)); emptyTitleTextView.setGravity(Gravity.CENTER); - emptyTitleTextView.setText(LocaleController.getString("NoAudioFound", R.string.NoAudioFound)); + emptyTitleTextView.setText(LocaleController.getString(R.string.NoAudioFound)); emptyTitleTextView.setTypeface(AndroidUtilities.bold()); emptyTitleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 17); emptyTitleTextView.setPadding(AndroidUtilities.dp(40), 0, AndroidUtilities.dp(40), 0); @@ -1521,7 +1521,7 @@ private void onSubItemClick(int id) { DialogsActivity fragment = new DialogsActivity(args); final ArrayList fmessages = new ArrayList<>(); fmessages.add(messageObject); - fragment.setDelegate((fragment1, dids, message, param, topicsFragment) -> { + fragment.setDelegate((fragment1, dids, message, param, notify, scheduleDate, topicsFragment) -> { if (dids.size() > 1 || dids.get(0).dialogId == UserConfig.getInstance(currentAccount).getClientUserId() || message != null) { for (int a = 0; a < dids.size(); a++) { long did = dids.get(a).dialogId; @@ -1589,12 +1589,12 @@ private void onSubItemClick(int id) { intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f)); } - parentActivity.startActivityForResult(Intent.createChooser(intent, LocaleController.getString("ShareFile", R.string.ShareFile)), 500); + parentActivity.startActivityForResult(Intent.createChooser(intent, LocaleController.getString(R.string.ShareFile)), 500); } else { AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); - builder.setMessage(LocaleController.getString("PleaseDownload", R.string.PleaseDownload)); + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); + builder.setMessage(LocaleController.getString(R.string.PleaseDownload)); builder.show(); } } catch (Exception e) { @@ -1951,19 +1951,19 @@ private void updateRepeatButton() { repeatButton.setTag(Theme.key_player_button); repeatButton.setIconColor(getThemedColor(Theme.key_player_button)); Theme.setSelectorDrawableColor(repeatButton.getBackground(), getThemedColor(Theme.key_listSelector), true); - repeatButton.setContentDescription(LocaleController.getString("AccDescrRepeatOff", R.string.AccDescrRepeatOff)); + repeatButton.setContentDescription(LocaleController.getString(R.string.AccDescrRepeatOff)); } else { repeatButton.setTag(Theme.key_player_buttonActive); repeatButton.setIconColor(getThemedColor(Theme.key_player_buttonActive)); Theme.setSelectorDrawableColor(repeatButton.getBackground(), getThemedColor(Theme.key_player_buttonActive) & 0x19ffffff, true); if (mode == 0) { if (SharedConfig.shuffleMusic) { - repeatButton.setContentDescription(LocaleController.getString("ShuffleList", R.string.ShuffleList)); + repeatButton.setContentDescription(LocaleController.getString(R.string.ShuffleList)); } else { - repeatButton.setContentDescription(LocaleController.getString("ReverseOrder", R.string.ReverseOrder)); + repeatButton.setContentDescription(LocaleController.getString(R.string.ReverseOrder)); } } else { - repeatButton.setContentDescription(LocaleController.getString("AccDescrRepeatList", R.string.AccDescrRepeatList)); + repeatButton.setContentDescription(LocaleController.getString(R.string.AccDescrRepeatList)); } } } else if (mode == 2) { @@ -1971,7 +1971,7 @@ private void updateRepeatButton() { repeatButton.setTag(Theme.key_player_buttonActive); repeatButton.setIconColor(getThemedColor(Theme.key_player_buttonActive)); Theme.setSelectorDrawableColor(repeatButton.getBackground(), getThemedColor(Theme.key_player_buttonActive) & 0x19ffffff, true); - repeatButton.setContentDescription(LocaleController.getString("AccDescrRepeatOne", R.string.AccDescrRepeatOne)); + repeatButton.setContentDescription(LocaleController.getString(R.string.AccDescrRepeatOne)); } } @@ -2091,10 +2091,10 @@ private void updateTitle(boolean shutdown) { if (MediaController.getInstance().isMessagePaused()) { playPauseDrawable.setPause(false); - playButton.setContentDescription(LocaleController.getString("AccActionPlay", R.string.AccActionPlay)); + playButton.setContentDescription(LocaleController.getString(R.string.AccActionPlay)); } else { playPauseDrawable.setPause(true); - playButton.setContentDescription(LocaleController.getString("AccActionPause", R.string.AccActionPause)); + playButton.setContentDescription(LocaleController.getString(R.string.AccActionPause)); } String title = messageObject.getMusicTitle(); String author = messageObject.getMusicAuthor(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AutoDeletePopupWrapper.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AutoDeletePopupWrapper.java index 386ec15810..f657866af9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AutoDeletePopupWrapper.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AutoDeletePopupWrapper.java @@ -34,30 +34,30 @@ public AutoDeletePopupWrapper(Context context, PopupSwipeBackLayout swipeBackLay this.callback = callback; if (swipeBackLayout != null) { - backItem = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_arrow_back, LocaleController.getString("Back", R.string.Back), false, resourcesProvider); + backItem = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_arrow_back, LocaleController.getString(R.string.Back), false, resourcesProvider); backItem.setOnClickListener(view -> { swipeBackLayout.closeForeground(); }); } - ActionBarMenuSubItem item = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_autodelete_1d, LocaleController.getString("AutoDelete1Day", R.string.AutoDelete1Day), false, resourcesProvider); + ActionBarMenuSubItem item = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_autodelete_1d, LocaleController.getString(R.string.AutoDelete1Day), false, resourcesProvider); item.setOnClickListener(view -> { dismiss(); callback.setAutoDeleteHistory(24 * 60 * 60, UndoView.ACTION_AUTO_DELETE_ON); }); - item = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_autodelete_1w, LocaleController.getString("AutoDelete7Days", R.string.AutoDelete7Days), false, resourcesProvider); + item = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_autodelete_1w, LocaleController.getString(R.string.AutoDelete7Days), false, resourcesProvider); item.setOnClickListener(view -> { dismiss(); callback.setAutoDeleteHistory(7 * 24 * 60 * 60, UndoView.ACTION_AUTO_DELETE_ON); }); - item = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_autodelete_1m, LocaleController.getString("AutoDelete1Month", R.string.AutoDelete1Month), false, resourcesProvider); + item = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_autodelete_1m, LocaleController.getString(R.string.AutoDelete1Month), false, resourcesProvider); item.setOnClickListener(view -> { dismiss(); callback.setAutoDeleteHistory(31 * 24 * 60 * 60, UndoView.ACTION_AUTO_DELETE_ON); }); - String customTitle = LocaleController.getString("AutoDeleteCustom", R.string.AutoDeleteCustom); + String customTitle = LocaleController.getString(R.string.AutoDeleteCustom); if (type == TYPE_GROUP_CREATE) { - customTitle = LocaleController.getString("AutoDeleteCustom2", R.string.AutoDeleteCustom2); + customTitle = LocaleController.getString(R.string.AutoDeleteCustom2); } item = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_customize, customTitle, false, resourcesProvider); item.setOnClickListener(view -> { @@ -66,7 +66,7 @@ public AutoDeletePopupWrapper(Context context, PopupSwipeBackLayout swipeBackLay callback.setAutoDeleteHistory(timeInMinutes * 60, timeInMinutes == 0 ? UndoView.ACTION_AUTO_DELETE_OFF : UndoView.ACTION_AUTO_DELETE_ON); }); }); - disableItem = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_disable, LocaleController.getString("AutoDeleteDisable", R.string.AutoDeleteDisable), false, resourcesProvider); + disableItem = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_disable, LocaleController.getString(R.string.AutoDeleteDisable), false, resourcesProvider); disableItem.setOnClickListener(view -> { dismiss(); callback.setAutoDeleteHistory(0, UndoView.ACTION_AUTO_DELETE_OFF); @@ -91,7 +91,7 @@ public AutoDeletePopupWrapper(Context context, PopupSwipeBackLayout swipeBackLay textView.setTextColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuItem)); textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setLinkTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteLinkText)); - textView.setText(LocaleController.getString("AutoDeletePopupDescription", R.string.AutoDeletePopupDescription)); + textView.setText(LocaleController.getString(R.string.AutoDeletePopupDescription)); windowLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 0, 8, 0, 0)); } } @@ -120,7 +120,7 @@ public void allowExtendedHint(int linkColor) { return; } SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(); - spannableStringBuilder.append(LocaleController.getString("AutoDeletePopupDescription", R.string.AutoDeletePopupDescription)); + spannableStringBuilder.append(LocaleController.getString(R.string.AutoDeletePopupDescription)); spannableStringBuilder.append("\n\n"); spannableStringBuilder.append(AndroidUtilities.replaceSingleLink(LocaleController.getString(R.string.AutoDeletePopupDescription2), linkColor, () -> { callback.showGlobalAutoDeleteScreen(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarConstructorFragment.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarConstructorFragment.java index dddd3772f7..1dab97b36e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarConstructorFragment.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarConstructorFragment.java @@ -129,7 +129,7 @@ public View createView(Context context) { actionBar.setItemsBackgroundColor(Theme.getColor(Theme.key_listSelector), false); actionBar.setBackButtonDrawable(new BackDrawable(false)); actionBar.setAllowOverlayTitle(false); - actionBar.setTitle(LocaleController.getString("PhotoEditor", R.string.PhotoEditor)); + actionBar.setTitle(LocaleController.getString(R.string.PhotoEditor)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { @@ -154,8 +154,8 @@ public void onItemClick(int id) { ActionBarMenu menuOverlay = overlayActionBar.createMenu(); menuOverlay.setClipChildren(false); setPhotoItem = menuOverlay.addItem(1, avatarFor != null && avatarFor.type == TYPE_SUGGEST_PHOTO_FOR_USER ? - LocaleController.getString("SuggestPhoto", R.string.SuggestPhoto) : - LocaleController.getString("SetPhoto", R.string.SetPhoto) + LocaleController.getString(R.string.SuggestPhoto) : + LocaleController.getString(R.string.SetPhoto) ); setPhotoItem.setBackground(Theme.createSelectorDrawable(selectorColor, Theme.RIPPLE_MASK_CIRCLE_TO_BOUND_EDGE)); overlayActionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @@ -365,7 +365,7 @@ public void invalidate() { }); chooseBackgroundHint = new TextView(getContext()); - chooseBackgroundHint.setText(LocaleController.getString("ChooseBackground", R.string.ChooseBackground)); + chooseBackgroundHint.setText(LocaleController.getString(R.string.ChooseBackground)); chooseBackgroundHint.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText)); chooseBackgroundHint.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); chooseBackgroundHint.setGravity(Gravity.CENTER); @@ -395,7 +395,7 @@ protected void dispatchDraw(Canvas canvas) { linearLayout.addView(backgroundContainer, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, 0, 12, 0, 12, 0)); chooseEmojiHint = new TextView(getContext()); - chooseEmojiHint.setText(LocaleController.getString("ChooseEmojiOrSticker", R.string.ChooseEmojiOrSticker)); + chooseEmojiHint.setText(LocaleController.getString(R.string.ChooseEmojiOrSticker)); chooseEmojiHint.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText)); chooseEmojiHint.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); chooseEmojiHint.setGravity(Gravity.CENTER); @@ -438,13 +438,13 @@ protected void onEmojiSelected(View view, Long documentId, TLRPC.Document docume TextView textView = new TextView(getContext()); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); if (imageUpdater.setForType == FOR_TYPE_CHANNEL) { - textView.setText(LocaleController.getString("SetChannelPhoto", R.string.SetChannelPhoto)); + textView.setText(LocaleController.getString(R.string.SetChannelPhoto)); } else if (imageUpdater.setForType == FOR_TYPE_GROUP) { - textView.setText(LocaleController.getString("SetGroupPhoto", R.string.SetGroupPhoto)); + textView.setText(LocaleController.getString(R.string.SetGroupPhoto)); } else if (avatarFor != null && avatarFor.type == TYPE_SUGGEST_PHOTO_FOR_USER) { - textView.setText(LocaleController.getString("SuggestPhoto", R.string.SuggestPhoto)); + textView.setText(LocaleController.getString(R.string.SuggestPhoto)); } else { - textView.setText(LocaleController.getString("SetProfilePhotoAvatarConstructor", R.string.SetProfilePhotoAvatarConstructor)); + textView.setText(LocaleController.getString(R.string.SetProfilePhotoAvatarConstructor)); } textView.setGravity(Gravity.CENTER); textView.setTypeface(AndroidUtilities.bold()); @@ -492,10 +492,10 @@ private void discardEditor() { } if (wasChanged) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setMessage(LocaleController.getString("PhotoEditorDiscardAlert", R.string.PhotoEditorDiscardAlert)); - builder.setTitle(LocaleController.getString("DiscardChanges", R.string.DiscardChanges)); - builder.setPositiveButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialogInterface, i) -> finishFragment()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setMessage(LocaleController.getString(R.string.PhotoEditorDiscardAlert)); + builder.setTitle(LocaleController.getString(R.string.DiscardChanges)); + builder.setPositiveButton(LocaleController.getString(R.string.PassportDiscard), (dialogInterface, i) -> finishFragment()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); dialog.redPositive(); @@ -1114,7 +1114,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { TextView textView = new TextView(getContext()); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - textView.setText(LocaleController.getString("SetColor", R.string.SetColor)); + textView.setText(LocaleController.getString(R.string.SetColor)); textView.setGravity(Gravity.CENTER); textView.setTypeface(AndroidUtilities.bold()); textView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarConstructorPreviewCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarConstructorPreviewCell.java index 86af867a48..5be1a0079d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarConstructorPreviewCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarConstructorPreviewCell.java @@ -21,6 +21,7 @@ public class AvatarConstructorPreviewCell extends FrameLayout { private AnimatedEmojiDrawable animatedEmojiDrawable; + private AnimatedEmojiDrawable nextAnimatedEmojiDrawable; BackupImageView currentImage; BackupImageView nextImage; @@ -37,13 +38,16 @@ public class AvatarConstructorPreviewCell extends FrameLayout { int emojiIndex = 0; float progressToNext = 1f; + private boolean isAllEmojiDrawablesLoaded; Runnable scheduleSwitchToNextRunnable = new Runnable() { @Override public void run() { AndroidUtilities.runOnUIThread(scheduleSwitchToNextRunnable, 1000); if (emojiList == null || emojiList.document_id.isEmpty() || progressToNext != 1f) { - + return; + } + if (!isAllEmojiDrawablesLoaded && (nextAnimatedEmojiDrawable.getImageReceiver() == null || !nextAnimatedEmojiDrawable.getImageReceiver().hasImageLoaded())) { return; } emojiIndex++; @@ -68,6 +72,7 @@ public void run() { nextBackgroundDrawable.setColors(color1, color2, color3, color4); progressToNext = 0f; + preloadNextEmojiDrawable(); invalidate(); } }; @@ -116,6 +121,7 @@ public AvatarConstructorPreviewCell(Context context, boolean forUser) { if (emojiList != null && !emojiList.document_id.isEmpty()) { animatedEmojiDrawable = new AnimatedEmojiDrawable(AnimatedEmojiDrawable.CACHE_TYPE_ALERT_PREVIEW_LARGE, currentAccount, emojiList.document_id.get(0)); currentImage.setAnimatedEmojiDrawable(animatedEmojiDrawable); + preloadNextEmojiDrawable(); } int color1 = AvatarConstructorFragment.defaultColors[backgroundIndex][0]; @@ -131,12 +137,25 @@ public AvatarConstructorPreviewCell(Context context, boolean forUser) { textView.setTextColor(Theme.getColor(Theme.key_avatar_text)); textView.setTypeface(AndroidUtilities.bold()); textView.setGravity(Gravity.CENTER); - textView.setText(LocaleController.getString("UseEmoji", R.string.UseEmoji)); + textView.setText(LocaleController.getString(R.string.UseEmoji)); addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 28, Gravity.BOTTOM, 10, 10, 10, 10)); } + private void preloadNextEmojiDrawable() { + if (isAllEmojiDrawablesLoaded) { + return; + } + int nextEmojiIndex = emojiIndex + 1; + if (nextEmojiIndex > emojiList.document_id.size() - 1) { + isAllEmojiDrawablesLoaded = true; + return; + } + nextAnimatedEmojiDrawable = new AnimatedEmojiDrawable(AnimatedEmojiDrawable.CACHE_TYPE_ALERT_PREVIEW_LARGE, currentAccount, emojiList.document_id.get(nextEmojiIndex)); + nextAnimatedEmojiDrawable.preload(); + } + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarDrawable.java index 4ad109b14a..486fa0b57a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AvatarDrawable.java @@ -101,6 +101,8 @@ public class AvatarDrawable extends Drawable { public static final int AVATAR_TYPE_MY_NOTES = 22; public static final int AVATAR_TYPE_EXISTING_CHATS = 23; public static final int AVATAR_TYPE_NEW_CHATS = 24; + public static final int AVATAR_TYPE_PREMIUM = 25; + public static final int AVATAR_TYPE_STARS = 26; /** * Matches {@link org.telegram.ui.Components.AvatarConstructorFragment#defaultColors} @@ -270,6 +272,14 @@ public void setAvatarType(int value) { hasGradient = true; color = getThemedColor(Theme.keys_avatar_background[getColorIndex(5)]); color2 = getThemedColor(Theme.keys_avatar_background2[getColorIndex(5)]); + } else if (avatarType == AVATAR_TYPE_PREMIUM) { + hasGradient = true; + color = getThemedColor(Theme.keys_avatar_background[getColorIndex(2)]); + color2 = getThemedColor(Theme.keys_avatar_background2[getColorIndex(2)]); + } else if (avatarType == AVATAR_TYPE_STARS) { + hasGradient = true; + color = getThemedColor(Theme.keys_avatar_background[getColorIndex(1)]); + color2 = getThemedColor(Theme.keys_avatar_background2[getColorIndex(1)]); } else if (avatarType == AVATAR_TYPE_FILTER_CONTACTS) { hasGradient = true; color = getThemedColor(Theme.keys_avatar_background[getColorIndex(5)]); @@ -642,6 +652,10 @@ public void draw(Canvas canvas) { drawable = Theme.avatarDrawables[21]; } else if (avatarType == AVATAR_TYPE_NEW_CHATS) { drawable = Theme.avatarDrawables[20]; + } else if (avatarType == AVATAR_TYPE_PREMIUM) { + drawable = Theme.avatarDrawables[22]; + } else if (avatarType == AVATAR_TYPE_STARS) { + drawable = Theme.avatarDrawables[23]; } else { drawable = Theme.avatarDrawables[9]; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BackButtonMenu.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/BackButtonMenu.java index dd612c0955..7e18331c1e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BackButtonMenu.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/BackButtonMenu.java @@ -135,15 +135,15 @@ public static ActionBarPopupWindow show(BaseFragment thisFragment, View backButt thumb = user.photo.strippedBitmap; } if (pDialog.activity == ChatActivity.class && UserObject.isUserSelf(user)) { - name = LocaleController.getString("SavedMessages", R.string.SavedMessages); + name = LocaleController.getString(R.string.SavedMessages); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_SAVED); imageView.setImageDrawable(avatarDrawable); } else if (UserObject.isReplyUser(user)) { - name = LocaleController.getString("RepliesTitle", R.string.RepliesTitle); + name = LocaleController.getString(R.string.RepliesTitle); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_REPLIES); imageView.setImageDrawable(avatarDrawable); } else if (UserObject.isDeleted(user)) { - name = LocaleController.getString("HiddenName", R.string.HiddenName); + name = LocaleController.getString(R.string.HiddenName); avatarDrawable.setInfo(thisFragment.getCurrentAccount(), user); imageView.setImage(ImageLocation.getForUser(user, ImageLocation.TYPE_SMALL), "50_50", avatarDrawable, user); } else { @@ -157,7 +157,7 @@ public static ActionBarPopupWindow show(BaseFragment thisFragment, View backButt imageView.setImageDrawable(drawable); imageView.setSize(AndroidUtilities.dp(24), AndroidUtilities.dp(24)); imageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultSubmenuItemIcon, resourcesProvider), PorterDuff.Mode.MULTIPLY)); - titleView.setText(LocaleController.getString("AllChats", R.string.AllChats)); + titleView.setText(LocaleController.getString(R.string.AllChats)); addDivider = true; } @@ -424,7 +424,7 @@ public static void addToPulledDialogs(BaseFragment thisFragment, int stackIndex, } boolean alreadyAdded = false; for (PulledDialog d : parentLayout.getPulledDialogs()) { - if (topic == null && d.dialogId == dialogId || topic != null && d.topic.id == topic.id) { + if (topic == null && d.dialogId == dialogId || topic != null && d.topic != null && d.topic.id == topic.id) { alreadyAdded = true; break; } 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 1d1499da91..513a3a60f9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BlockingUpdateView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/BlockingUpdateView.java @@ -95,7 +95,7 @@ public BlockingUpdateView(final Context context) { titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); titleTextView.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.TOP); titleTextView.setTypeface(AndroidUtilities.bold()); - titleTextView.setText(LocaleController.getString("UpdateTelegram", R.string.UpdateTelegram).replace("Telegram", LocaleController.getString("NekoX", R.string.NekoX))); + titleTextView.setText(LocaleController.getString(R.string.UpdateTelegram).replace("Telegram", LocaleController.getString(R.string.NekoX))); container.addView(titleTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP)); textView = new TextViewEffects(context); @@ -285,9 +285,9 @@ public void show(int account, TLRPC.TL_help_appUpdate update, boolean check) { MessageObject.replaceAnimatedEmoji(builder, update.entities, textView.getPaint().getFontMetricsInt()); textView.setText(builder); if (update.document instanceof TLRPC.TL_document) { - acceptTextView.setText(LocaleController.getString("Update", R.string.Update) + String.format(Locale.US, " (%1$s)", AndroidUtilities.formatFileSize(update.document.size))); + acceptTextView.setText(LocaleController.getString(R.string.Update) + String.format(Locale.US, " (%1$s)", AndroidUtilities.formatFileSize(update.document.size))); } else { - acceptTextView.setText(LocaleController.getString("Update", R.string.Update)); + acceptTextView.setText(LocaleController.getString(R.string.Update)); } NotificationCenter.getInstance(accountNum).addObserver(this, NotificationCenter.fileLoaded); NotificationCenter.getInstance(accountNum).addObserver(this, NotificationCenter.fileLoadFailed); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BlurringShader.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/BlurringShader.java index 59bcf9269e..4fda8b778f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BlurringShader.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/BlurringShader.java @@ -1,12 +1,9 @@ package org.telegram.ui.Components; -import static org.telegram.messenger.AndroidUtilities.dp; - import android.animation.ValueAnimator; import android.graphics.Bitmap; import android.graphics.BitmapShader; import android.graphics.Canvas; -import android.graphics.Color; import android.graphics.ColorFilter; import android.graphics.ColorMatrix; import android.graphics.ColorMatrixColorFilter; @@ -23,7 +20,6 @@ import android.opengl.GLES11Ext; import android.opengl.GLES20; import android.text.TextUtils; -import android.util.Log; import android.view.View; import androidx.annotation.NonNull; @@ -33,7 +29,6 @@ import org.telegram.messenger.ImageReceiver; import org.telegram.messenger.R; import org.telegram.messenger.Utilities; -import org.telegram.ui.ActionBar.Theme; import java.nio.ByteBuffer; import java.nio.ByteOrder; @@ -167,8 +162,8 @@ public boolean setup(float aspectRatio, boolean needsUiBitmap, int padding) { uvBuffer.put(texCoords); uvBuffer.position(0); - String vertexShaderSource = RLottieDrawable.readRes(null, R.raw.blur_vrt); - String fragmentShaderSource = RLottieDrawable.readRes(null, R.raw.blur_frg); + String vertexShaderSource = AndroidUtilities.readRes(R.raw.blur_vrt); + String fragmentShaderSource = AndroidUtilities.readRes(R.raw.blur_frg); if (vertexShaderSource == null || fragmentShaderSource == null) { return false; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Bulletin.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Bulletin.java index 332940d24a..52a60ceff6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Bulletin.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Bulletin.java @@ -1864,7 +1864,7 @@ public UndoButton(@NonNull Context context, boolean text, boolean icon, Theme.Re undoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); undoTextView.setTypeface(AndroidUtilities.bold()); undoTextView.setTextColor(undoCancelColor); - undoTextView.setText(LocaleController.getString("Undo", R.string.Undo)); + undoTextView.setText(LocaleController.getString(R.string.Undo)); undoTextView.setGravity(Gravity.CENTER_VERTICAL); ViewHelper.setPaddingRelative(undoTextView, icon ? 34 : 12, 8, 12, 8); addView(undoTextView, LayoutHelper.createFrameRelatively(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_VERTICAL, 8, 0, 8, 0)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BulletinFactory.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/BulletinFactory.java index 18b7743b24..47095e098c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BulletinFactory.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/BulletinFactory.java @@ -402,7 +402,7 @@ public Bulletin createUndoBulletin(CharSequence text, CharSequence subtitle, boo layout = singleLineLayout; } layout.setTimer(); - layout.setButton(new Bulletin.UndoButton(getContext(), true, textAndIcon, resourcesProvider).setText(LocaleController.getString("Undo", R.string.Undo)).setUndoAction(onUndo).setDelayedAction(onAction)); + layout.setButton(new Bulletin.UndoButton(getContext(), true, textAndIcon, resourcesProvider).setText(LocaleController.getString(R.string.Undo)).setUndoAction(onUndo).setDelayedAction(onAction)); return create(layout, Bulletin.DURATION_PROLONG); } @@ -476,7 +476,7 @@ public Bulletin createUsersBulletin(List users, CharSequence } if (undoObject != null) { - layout.setButton(new Bulletin.UndoButton(getContext(), true, resourcesProvider).setText(LocaleController.getString("Undo", R.string.Undo)).setUndoAction(undoObject.onUndo).setDelayedAction(undoObject.onAction)); + layout.setButton(new Bulletin.UndoButton(getContext(), true, resourcesProvider).setText(LocaleController.getString(R.string.Undo)).setUndoAction(undoObject.onUndo).setDelayedAction(undoObject.onAction)); } return create(layout, Bulletin.DURATION_PROLONG); @@ -666,7 +666,7 @@ public Bulletin createContainsEmojiBulletin(TLRPC.Document document, int type, U } final long startTime = System.currentTimeMillis(); final long minDuration = 750; - Bulletin bulletin = createEmojiLoadingBulletin(document, stringBuilder, LocaleController.getString("ViewAction", R.string.ViewAction), () -> openSet.run(inputStickerSet)); + Bulletin bulletin = createEmojiLoadingBulletin(document, stringBuilder, LocaleController.getString(R.string.ViewAction), () -> openSet.run(inputStickerSet)); if (loadingSpan != null && bulletin.getLayout() instanceof Bulletin.LoadingLottieLayout) { loadingSpan.setView(((Bulletin.LoadingLottieLayout) bulletin.getLayout()).textLoadingView); } @@ -681,7 +681,7 @@ public Bulletin createContainsEmojiBulletin(TLRPC.Document document, int type, U message = AndroidUtilities.replaceTags(LocaleController.formatString("MessageContainsEmojiPackSingle", R.string.MessageContainsEmojiPackSingle, set.set.title)); } } else { - message = LocaleController.getString("AddEmojiNotFound", R.string.AddEmojiNotFound); + message = LocaleController.getString(R.string.AddEmojiNotFound); } AndroidUtilities.runOnUIThread(() -> { bulletin.onLoaded(message); @@ -697,7 +697,7 @@ public Bulletin createContainsEmojiBulletin(TLRPC.Document document, int type, U } else { message = AndroidUtilities.replaceTags(LocaleController.formatString("MessageContainsEmojiPackSingle", R.string.MessageContainsEmojiPackSingle, cachedSet.set.title)); } - return createEmojiBulletin(document, message, LocaleController.getString("ViewAction", R.string.ViewAction), () -> openSet.run(inputStickerSet)); + return createEmojiBulletin(document, message, LocaleController.getString(R.string.ViewAction), () -> openSet.run(inputStickerSet)); } } @@ -719,7 +719,7 @@ public Bulletin createDownloadBulletin(FileType fileType, int filesAmount, Theme public Bulletin createReportSent(Theme.ResourcesProvider resourcesProvider) { final Bulletin.LottieLayout layout = new Bulletin.LottieLayout(getContext(), resourcesProvider); layout.setAnimation(R.raw.chats_infotip); - layout.textView.setText(LocaleController.getString("ReportChatSent", R.string.ReportChatSent)); + layout.textView.setText(LocaleController.getString(R.string.ReportChatSent)); return create(layout, Bulletin.DURATION_SHORT); } @@ -865,13 +865,13 @@ public Bulletin createCopyLinkBulletin(boolean isPrivate, Theme.ResourcesProvide if (isPrivate) { final Bulletin.TwoLineLottieLayout layout = new Bulletin.TwoLineLottieLayout(getContext(), resourcesProvider); layout.setAnimation(R.raw.voip_invite, 36, 36, "Wibe", "Circle"); - layout.titleTextView.setText(LocaleController.getString("LinkCopied", R.string.LinkCopied)); - layout.subtitleTextView.setText(LocaleController.getString("LinkCopiedPrivateInfo", R.string.LinkCopiedPrivateInfo)); + layout.titleTextView.setText(LocaleController.getString(R.string.LinkCopied)); + layout.subtitleTextView.setText(LocaleController.getString(R.string.LinkCopiedPrivateInfo)); return create(layout, Bulletin.DURATION_LONG); } else { final Bulletin.LottieLayout layout = new Bulletin.LottieLayout(getContext(), resourcesProvider); layout.setAnimation(R.raw.voip_invite, 36, 36, "Wibe", "Circle"); - layout.textView.setText(LocaleController.getString("LinkCopied", R.string.LinkCopied)); + layout.textView.setText(LocaleController.getString(R.string.LinkCopied)); return create(layout, Bulletin.DURATION_SHORT); } } @@ -945,11 +945,11 @@ public static Bulletin createMuteBulletin(BaseFragment fragment, int setting, in mute = true; break; case NotificationsController.SETTING_MUTE_FOREVER: - text = LocaleController.getString("NotificationsMutedHint", R.string.NotificationsMutedHint); + text = LocaleController.getString(R.string.NotificationsMutedHint); mute = true; break; case NotificationsController.SETTING_MUTE_UNMUTE: - text = LocaleController.getString("NotificationsUnmutedHint", R.string.NotificationsUnmutedHint); + text = LocaleController.getString(R.string.NotificationsUnmutedHint); mute = false; break; default: @@ -1009,8 +1009,8 @@ public static Bulletin createUnpinAllMessagesBulletin(BaseFragment fragment, int if (hide) { final Bulletin.TwoLineLottieLayout layout = new Bulletin.TwoLineLottieLayout(fragment.getParentActivity(), resourcesProvider); layout.setAnimation(R.raw.ic_unpin, 28, 28, "Pin", "Line"); - layout.titleTextView.setText(LocaleController.getString("PinnedMessagesHidden", R.string.PinnedMessagesHidden)); - layout.subtitleTextView.setText(LocaleController.getString("PinnedMessagesHiddenInfo", R.string.PinnedMessagesHiddenInfo)); + layout.titleTextView.setText(LocaleController.getString(R.string.PinnedMessagesHidden)); + layout.subtitleTextView.setText(LocaleController.getString(R.string.PinnedMessagesHiddenInfo)); buttonLayout = layout; } else { final Bulletin.LottieLayout layout = new Bulletin.LottieLayout(fragment.getParentActivity(), resourcesProvider); @@ -1065,7 +1065,7 @@ public static Bulletin createInviteSentBulletin(Context context, FrameLayout con int hapticDelay = -1; if (dialogsCount <= 1) { if (did == UserConfig.getInstance(UserConfig.selectedAccount).clientUserId) { - text = AndroidUtilities.replaceTags(LocaleController.getString("InvLinkToSavedMessages", R.string.InvLinkToSavedMessages)); + text = AndroidUtilities.replaceTags(LocaleController.getString(R.string.InvLinkToSavedMessages)); layout.setAnimation(R.raw.saved_messages, 30, 30); } else { if (DialogObject.isChatDialog(did)) { @@ -1202,10 +1202,10 @@ public static Bulletin createBanBulletin(BaseFragment fragment, boolean banned) final String text; if (banned) { layout.setAnimation(R.raw.ic_ban, "Hand"); - text = LocaleController.getString("UserBlocked", R.string.UserBlocked); + text = LocaleController.getString(R.string.UserBlocked); } else { layout.setAnimation(R.raw.ic_unban, "Main", "Finger 1", "Finger 2", "Finger 3", "Finger 4"); - text = LocaleController.getString("UserUnblocked", R.string.UserUnblocked); + text = LocaleController.getString(R.string.UserUnblocked); } layout.textView.setText(AndroidUtilities.replaceTags(text)); return Bulletin.make(fragment, layout, Bulletin.DURATION_SHORT); @@ -1217,10 +1217,10 @@ public Bulletin createBanBulletin(boolean banned) { final String text; if (banned) { layout.setAnimation(R.raw.ic_ban, "Hand"); - text = LocaleController.getString("UserBlocked", R.string.UserBlocked); + text = LocaleController.getString(R.string.UserBlocked); } else { layout.setAnimation(R.raw.ic_unban, "Main", "Finger 1", "Finger 2", "Finger 3", "Finger 4"); - text = LocaleController.getString("UserUnblocked", R.string.UserUnblocked); + text = LocaleController.getString(R.string.UserUnblocked); } layout.textView.setText(AndroidUtilities.replaceTags(text)); return create(layout, Bulletin.DURATION_SHORT); @@ -1266,11 +1266,11 @@ public static Bulletin createSoundEnabledBulletin(BaseFragment fragment, int set switch (setting) { case NotificationsController.SETTING_SOUND_ON: - text = LocaleController.getString("SoundOnHint", R.string.SoundOnHint); + text = LocaleController.getString(R.string.SoundOnHint); soundOn = true; break; case NotificationsController.SETTING_SOUND_OFF: - text = LocaleController.getString("SoundOffHint", R.string.SoundOffHint); + text = LocaleController.getString(R.string.SoundOffHint); soundOn = false; break; default: 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 096b6ac7b2..1ee3c485e8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java @@ -101,6 +101,7 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; +import android.widget.Toast; import androidx.annotation.Keep; import androidx.annotation.NonNull; @@ -626,6 +627,9 @@ public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo i } }; + boolean ctrlPressed = false; + boolean shiftPressed = false; + @Nullable protected EditTextCaption messageEditText; private SlowModeBtn slowModeButton; @@ -4104,9 +4108,11 @@ private void openWebViewMenu() { if (AndroidUtilities.isWebAppLink(botMenuWebViewUrl)) { Browser.Progress progress = new Browser.Progress(); progress.onEnd(() -> { - if (botCommandsMenuButton != null) { - botCommandsMenuButton.setOpened(false); - } + AndroidUtilities.runOnUIThread(() -> { + if (botCommandsMenuButton != null) { + botCommandsMenuButton.setOpened(false); + } + }); }); Browser.openAsInternalIntent(getContext(), botMenuWebViewUrl, false, progress); return; @@ -4116,7 +4122,7 @@ private void openWebViewMenu() { webViewSheet.setDefaultFullsize(false); webViewSheet.setNeedsContext(true); webViewSheet.setParentActivity(parentActivity); - webViewSheet.requestWebView(null, props); + webViewSheet.requestWebView(parentFragment, props); webViewSheet.show(); if (botCommandsMenuButton != null) { @@ -4128,7 +4134,7 @@ private void openWebViewMenu() { sheet.setDefaultFullsize(false); sheet.setNeedsContext(false); sheet.setParentActivity(parentFragment.getParentActivity()); - sheet.requestWebView(null, props); + sheet.requestWebView(parentFragment, props); sheet.show(); if (botCommandsMenuButton != null) { @@ -4705,9 +4711,9 @@ public boolean onTouch(View v, MotionEvent event) { if (scheduleButtonValue) { actionScheduleButton = new ActionBarMenuSubItem(getContext(), true, !sendWithoutSoundButtonValue, resourcesProvider); if (self) { - actionScheduleButton.setTextAndIcon(LocaleController.getString("SetReminder", R.string.SetReminder), R.drawable.msg_calendar2); + actionScheduleButton.setTextAndIcon(LocaleController.getString(R.string.SetReminder), R.drawable.msg_calendar2); } else { - actionScheduleButton.setTextAndIcon(LocaleController.getString("ScheduleMessage", R.string.ScheduleMessage), R.drawable.msg_calendar2); + actionScheduleButton.setTextAndIcon(LocaleController.getString(R.string.ScheduleMessage), R.drawable.msg_calendar2); } actionScheduleButton.setMinimumWidth(dp(196)); actionScheduleButton.setOnClickListener(v -> { @@ -4725,7 +4731,7 @@ public void didSelectDate(boolean notify, int scheduleDate) { SharedConfig.removeScheduledHint(); if (!self && dialog_id > 0) { sendWhenOnlineButton = new ActionBarMenuSubItem(getContext(), true, !sendWithoutSoundButtonValue, resourcesProvider); - sendWhenOnlineButton.setTextAndIcon(LocaleController.getString("SendWhenOnline", R.string.SendWhenOnline), R.drawable.msg_online); + sendWhenOnlineButton.setTextAndIcon(LocaleController.getString(R.string.SendWhenOnline), R.drawable.msg_online); sendWhenOnlineButton.setMinimumWidth(dp(196)); sendWhenOnlineButton.setOnClickListener(v -> { if (sendPopupWindow != null && sendPopupWindow.isShowing()) { @@ -4738,7 +4744,7 @@ public void didSelectDate(boolean notify, int scheduleDate) { } if (sendWithoutSoundButtonValue) { ActionBarMenuSubItem sendWithoutSoundButton = new ActionBarMenuSubItem(getContext(), !scheduleButtonValue, true, resourcesProvider); - sendWithoutSoundButton.setTextAndIcon(LocaleController.getString("SendWithoutSound", R.string.SendWithoutSound), R.drawable.input_notify_off); + sendWithoutSoundButton.setTextAndIcon(LocaleController.getString(R.string.SendWithoutSound), R.drawable.input_notify_off); sendWithoutSoundButton.setMinimumWidth(dp(196)); sendWithoutSoundButton.setOnClickListener(v -> { if (sendPopupWindow != null && sendPopupWindow.isShowing()) { @@ -5370,6 +5376,9 @@ public boolean onDragEvent(DragEvent event) { if (clipData.getItemCount() == 1 && (clipData.getDescription().hasMimeType("image/*") || clipData.getDescription().hasMimeType("video/mp4")) && !isEditingBusinessLink()) { editPhoto(clipData.getItemAt(0).getUri(), clipData.getDescription().getMimeType(0)); return true; + } else if (clipData.getItemCount() > 1) { + Toast.makeText(getContext(), "Don't drag more than 1 file at a time", Toast.LENGTH_SHORT).show(); + return true; } } } @@ -5634,10 +5643,12 @@ public long getCurrentChat() { messageEditTextContainer.addView(messageEditText, 1, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM, 52, 0, isChat ? 50 : 2, 1.5f)); messageEditText.setOnKeyListener(new OnKeyListener() { - boolean ctrlPressed = false; - @Override public boolean onKey(View view, int keyCode, KeyEvent keyEvent) { + if (keyEvent != null) { + shiftPressed = keyEvent.isShiftPressed(); + ctrlPressed = keyEvent.isCtrlPressed(); + } if (keyCode == KeyEvent.KEYCODE_BACK && !keyboardVisible && isPopupShowing() && keyEvent.getAction() == KeyEvent.ACTION_UP) { if (ContentPreviewViewer.hasInstance() && ContentPreviewViewer.getInstance().isVisible()) { ContentPreviewViewer.getInstance().closeWithMenu(); @@ -5672,27 +5683,22 @@ public boolean onKey(View view, int keyCode, KeyEvent keyEvent) { } } return true; - } else if (keyCode == KeyEvent.KEYCODE_ENTER && (ctrlPressed || sendByEnter) && keyEvent.getAction() == KeyEvent.ACTION_DOWN && editingMessageObject == null) { + } else if (keyCode == KeyEvent.KEYCODE_ENTER && !keyEvent.isShiftPressed() && (sendByEnter ? !keyEvent.isCtrlPressed() : keyEvent.isCtrlPressed()) && keyEvent.getAction() == KeyEvent.ACTION_DOWN && editingMessageObject == null) { sendMessage(); return true; - } else if (keyCode == KeyEvent.KEYCODE_CTRL_LEFT || keyCode == KeyEvent.KEYCODE_CTRL_RIGHT) { - ctrlPressed = keyEvent.getAction() == KeyEvent.ACTION_DOWN; - return true; } return false; } }); messageEditText.setOnEditorActionListener(new EditTextCaption.OnEditorActionListener() { - boolean ctrlPressed = false; - @Override public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) { if (i == EditorInfo.IME_ACTION_SEND) { sendMessage(); return true; } else if (keyEvent != null && i == EditorInfo.IME_NULL) { - if ((ctrlPressed || sendByEnter) && keyEvent.getAction() == KeyEvent.ACTION_DOWN && editingMessageObject == null) { + if (!keyEvent.isShiftPressed() && (sendByEnter ? !keyEvent.isCtrlPressed() : keyEvent.isCtrlPressed()) && keyEvent.getAction() == KeyEvent.ACTION_DOWN && editingMessageObject == null) { sendMessage(); return true; } @@ -5751,7 +5757,7 @@ public void onTextChanged(CharSequence charSequence, int start, int before, int if (innerTextChange == 1) { return; } - if (sendByEnter && !ignoreTextChange && !isPaste && editingMessageObject == null && count > before && charSequence.length() > 0 && charSequence.length() == start + count && charSequence.charAt(charSequence.length() - 1) == '\n') { + if (sendByEnter && !ctrlPressed && !shiftPressed && !ignoreTextChange && !isPaste && editingMessageObject == null && count > before && charSequence.length() > 0 && charSequence.length() == start + count && charSequence.charAt(charSequence.length() - 1) == '\n') { nextChangeIsSend = true; } isPaste = false; @@ -6869,7 +6875,7 @@ public void updateFieldHint(boolean animated) { TLRPC.Chat chat = accountInstance.getMessagesController().getChat(-dialog_id); TLRPC.ChatFull chatFull = accountInstance.getMessagesController().getChatFull(-dialog_id); isChannel = ChatObject.isChannelAndNotMegaGroup(chat); - anonymously = isChannel ? chat != null && !chat.signatures && !chat.signature_profiles : ChatObject.getSendAsPeerId(chat, chatFull) == -dialog_id; + anonymously = !isChannel && ChatObject.getSendAsPeerId(chat, chatFull) == -dialog_id; } if (anonymously) { messageEditText.setHintText(getString("SendAnonymously", R.string.SendAnonymously)); @@ -8515,6 +8521,9 @@ public void onAnimationCancel(Animator animation) { animators.add(ObjectAnimator.ofFloat(scheduledButton, View.ALPHA, 1.0f)); animators.add(ObjectAnimator.ofFloat(scheduledButton, View.SCALE_X, 1.0f)); animators.add(ObjectAnimator.ofFloat(scheduledButton, View.TRANSLATION_X, giftButton != null && giftButton.getVisibility() == VISIBLE ? -dp(48) : 0)); + if (notifyButton != null && notifyButton.getVisibility() == View.VISIBLE) { + notifyButton.setVisibility(View.GONE); + } } else { scheduledButton.setAlpha(1.0f); scheduledButton.setScaleX(1.0f); @@ -10769,7 +10778,7 @@ private boolean checkBotButton() { if (botReplyMarkup != null) { if (isPopupShowing() && currentPopupContentType == 1) { botButtonDrawable.setIcon(R.drawable.input_keyboard, true); - botButton.setContentDescription(LocaleController.getString("AccDescrShowKeyboard", R.string.AccDescrShowKeyboard)); + botButton.setContentDescription(LocaleController.getString(R.string.AccDescrShowKeyboard)); } else { botButtonDrawable.setIcon(R.drawable.input_bot2, true); botButton.setContentDescription(LocaleController.getString("AccDescrBotKeyboard", R.string.AccDescrBotKeyboard)); @@ -10943,7 +10952,7 @@ public void run() { return; } - WebViewRequestProps props = WebViewRequestProps.of(currentAccount, messageObject.messageOwner.dialog_id, botId, button.text, button.url, button instanceof TLRPC.TL_keyboardButtonSimpleWebView ? BotWebViewSheet.TYPE_SIMPLE_WEB_VIEW_BUTTON : BotWebViewSheet.TYPE_WEB_VIEW_BUTTON, replyMessageObject != null ? replyMessageObject.messageOwner.id : 0, false, null, false, null, null, 0, false); + final WebViewRequestProps props = WebViewRequestProps.of(currentAccount, messageObject.messageOwner.dialog_id, botId, button.text, button.url, button instanceof TLRPC.TL_keyboardButtonSimpleWebView ? BotWebViewAttachedSheet.TYPE_SIMPLE_WEB_VIEW_BUTTON : BotWebViewAttachedSheet.TYPE_WEB_VIEW_BUTTON, replyMessageObject != null ? replyMessageObject.messageOwner.id : 0, false, null, false, null, null, 0, false); if (LaunchActivity.instance != null && LaunchActivity.instance.getBottomSheetTabs() != null && LaunchActivity.instance.getBottomSheetTabs().tryReopenTab(props) != null) { if (botCommandsMenuButton != null) { botCommandsMenuButton.setOpened(false); @@ -10953,14 +10962,14 @@ public void run() { if (AndroidUtilities.isTablet()) { BotWebViewSheet webViewSheet = new BotWebViewSheet(getContext(), resourcesProvider); webViewSheet.setParentActivity(parentActivity); - webViewSheet.requestWebView(null, props); + webViewSheet.requestWebView(parentFragment, props); webViewSheet.show(); } else { BotWebViewAttachedSheet webViewSheet = parentFragment.createBotViewer(); webViewSheet.setDefaultFullsize(false); webViewSheet.setNeedsContext(true); webViewSheet.setParentActivity(parentActivity); - webViewSheet.requestWebView(null, props); + webViewSheet.requestWebView(parentFragment, props); webViewSheet.show(); } } @@ -11032,7 +11041,7 @@ public void run() { } DialogsActivity fragment = new DialogsActivity(args); - fragment.setDelegate((fragment1, dids, message, param, topicsFragment) -> { + fragment.setDelegate((fragment1, dids, message, param, notify, scheduleDate, topicsFragment) -> { long uid = messageObject.messageOwner.from_id.user_id; if (messageObject.messageOwner.via_bot_id != 0) { uid = messageObject.messageOwner.via_bot_id; @@ -11113,7 +11122,7 @@ public void run() { FileLog.e(e); } DialogsActivity fragment = new DialogsActivity(args); - fragment.setDelegate((dialogFragment, dids, message, param, topicsFragment) -> { + fragment.setDelegate((dialogFragment, dids, message, param, notify, scheduleDate, topicsFragment) -> { if (dids != null && !dids.isEmpty()) { TLRPC.TL_messages_sendBotRequestedPeer req = new TLRPC.TL_messages_sendBotRequestedPeer(); req.peer = MessagesController.getInstance(currentAccount).getInputPeer(messageObject.messageOwner.peer_id); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterViewAnimatedIconView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterViewAnimatedIconView.java index 771ad70032..4654d94ef7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterViewAnimatedIconView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterViewAnimatedIconView.java @@ -106,10 +106,10 @@ public void onAnimationEnd(Animator animation) { switch (state) { case VOICE: - setContentDescription(LocaleController.getString("AccDescrVoiceMessage", R.string.AccDescrVoiceMessage)); + setContentDescription(LocaleController.getString(R.string.AccDescrVoiceMessage)); break; case VIDEO: - setContentDescription(LocaleController.getString("AccDescrVideoMessage", R.string.AccDescrVideoMessage)); + setContentDescription(LocaleController.getString(R.string.AccDescrVideoMessage)); break; } } 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 6f963e58ea..c41cbf40e4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlert.java @@ -341,7 +341,7 @@ public void onWebAppSwitchInlineQuery(TLRPC.User botUser, String query, List { + dialogsActivity.setDelegate((fragment, dids, message1, param, notify, scheduleDate, topicsFragment) -> { long did = dids.get(0).dialogId; Bundle args1 = new Bundle(); @@ -370,7 +370,12 @@ public void onWebAppSwitchInlineQuery(TLRPC.User botUser, String query, List= 33) { + ApplicationLoader.applicationContext.registerReceiver(receiver, filter, Context.RECEIVER_NOT_EXPORTED); + } else { + ApplicationLoader.applicationContext.registerReceiver(receiver, filter); + } } ActionBarMenu menu = parentAlert.actionBar.createMenu(); @@ -265,15 +269,15 @@ public void onSearchFilterCleared(FiltersView.MediaFilterData filterData) { searchAdapter.updateFiltersView(true, null, null,true); } }); - searchItem.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); - searchItem.setContentDescription(LocaleController.getString("Search", R.string.Search)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.Search)); + searchItem.setContentDescription(LocaleController.getString(R.string.Search)); EditTextBoldCursor editText = searchItem.getSearchField(); editText.setTextColor(getThemedColor(Theme.key_dialogTextBlack)); editText.setCursorColor(getThemedColor(Theme.key_dialogTextBlack)); editText.setHintTextColor(getThemedColor(Theme.key_chat_messagePanelHint)); sortItem = menu.addItem(sort_button, sortByName ? R.drawable.msg_contacts_time : R.drawable.msg_contacts_name); - sortItem.setContentDescription(LocaleController.getString("AccDescrContactSorting", R.string.AccDescrContactSorting)); + sortItem.setContentDescription(LocaleController.getString(R.string.AccDescrContactSorting)); addView(loadingView = new FlickerLoadingView(context, resourcesProvider)); @@ -789,7 +793,7 @@ private boolean onItemClick(View view, Object object) { add = false; } else { if (!item.file.canRead()) { - showErrorBox(LocaleController.getString("AccessError", R.string.AccessError)); + showErrorBox(LocaleController.getString(R.string.AccessError)); return false; } if (canSelectOnlyImageFiles && item.thumb == null) { @@ -1075,7 +1079,7 @@ public void onShow(ChatAttachAlert.AttachAlertLayout previousLayout) { listRoots(); updateSearchButton(); updateEmptyView(); - parentAlert.actionBar.setTitle(LocaleController.getString("SelectFile", R.string.SelectFile)); + parentAlert.actionBar.setTitle(LocaleController.getString(R.string.SelectFile)); sortItem.setVisibility(VISIBLE); layoutManager.scrollToPositionWithOffset(0, 0); } @@ -1183,7 +1187,7 @@ private boolean listFiles(File dir) { return true; } } - showErrorBox(LocaleController.getString("AccessError", R.string.AccessError)); + showErrorBox(LocaleController.getString(R.string.AccessError)); return false; } File[] files; @@ -1194,7 +1198,7 @@ private boolean listFiles(File dir) { return false; } if (files == null) { - showErrorBox(LocaleController.getString("UnknownError", R.string.UnknownError)); + showErrorBox(LocaleController.getString(R.string.UnknownError)); return false; } currentDir = dir; @@ -1215,7 +1219,7 @@ private boolean listFiles(File dir) { item.file = file; if (file.isDirectory()) { item.icon = R.drawable.files_folder; - item.subtitle = LocaleController.getString("Folder", R.string.Folder); + item.subtitle = LocaleController.getString(R.string.Folder); } else { hasFiles = true; String fname = file.getName(); @@ -1234,12 +1238,12 @@ private boolean listFiles(File dir) { if (listAdapter.history.size() > 0) { HistoryEntry entry = listAdapter.history.get(listAdapter.history.size() - 1); if (entry.dir == null) { - item.subtitle = LocaleController.getString("Folder", R.string.Folder); + item.subtitle = LocaleController.getString(R.string.Folder); } else { item.subtitle = entry.dir.toString(); } } else { - item.subtitle = LocaleController.getString("Folder", R.string.Folder); + item.subtitle = LocaleController.getString(R.string.Folder); } item.icon = R.drawable.files_folder; item.file = null; @@ -1255,7 +1259,7 @@ private boolean listFiles(File dir) { } private void showErrorBox(String error) { - new AlertDialog.Builder(getContext(), resourcesProvider).setTitle(LocaleController.getString("AppName", R.string.AppName)).setMessage(error).setPositiveButton(LocaleController.getString("OK", R.string.OK), null).show(); + new AlertDialog.Builder(getContext(), resourcesProvider).setTitle(LocaleController.getString(R.string.AppName)).setMessage(error).setPositiveButton(LocaleController.getString(R.string.OK), null).show(); } @SuppressLint("NewApi") @@ -1272,9 +1276,9 @@ private void listRoots() { // TODO add permission for read all files and uncomment for direct version // if (!BuildVars.NO_SCOPED_STORAGE && !isExternalStorageManager) { // ListItem ext = new ListItem(); -// ext.title = LocaleController.getString("InternalStorage", R.string.InternalStorage); +// ext.title = LocaleController.getString(R.string.InternalStorage); // ext.icon = R.drawable.files_storage; -// ext.subtitle = LocaleController.getString("InternalFolderInfo", R.string.InternalFolderInfo); +// ext.subtitle = LocaleController.getString(R.string.InternalFolderInfo); // items.add(ext); // } else { String defaultPath = Environment.getExternalStorageDirectory().getPath(); @@ -1282,13 +1286,13 @@ private void listRoots() { if (defaultPathState.equals(Environment.MEDIA_MOUNTED) || defaultPathState.equals(Environment.MEDIA_MOUNTED_READ_ONLY)) { ListItem ext = new ListItem(); if (Environment.isExternalStorageRemovable()) { - ext.title = LocaleController.getString("SdCard", R.string.SdCard); + ext.title = LocaleController.getString(R.string.SdCard); ext.icon = R.drawable.files_internal; - ext.subtitle = LocaleController.getString("ExternalFolderInfo", R.string.ExternalFolderInfo); + ext.subtitle = LocaleController.getString(R.string.ExternalFolderInfo); } else { - ext.title = LocaleController.getString("InternalStorage", R.string.InternalStorage); + ext.title = LocaleController.getString(R.string.InternalStorage); ext.icon = R.drawable.files_storage; - ext.subtitle = LocaleController.getString("InternalFolderInfo", R.string.InternalFolderInfo); + ext.subtitle = LocaleController.getString(R.string.InternalFolderInfo); } ext.file = Environment.getExternalStorageDirectory(); listAdapter.items.add(ext); @@ -1325,11 +1329,11 @@ private void listRoots() { try { ListItem item = new ListItem(); if (path.toLowerCase().contains("sd")) { - item.title = LocaleController.getString("SdCard", R.string.SdCard); + item.title = LocaleController.getString(R.string.SdCard); } else { - item.title = LocaleController.getString("ExternalStorage", R.string.ExternalStorage); + item.title = LocaleController.getString(R.string.ExternalStorage); } - item.subtitle = LocaleController.getString("ExternalFolderInfo", R.string.ExternalFolderInfo); + item.subtitle = LocaleController.getString(R.string.ExternalFolderInfo); item.icon = R.drawable.files_internal; item.file = new File(path); listAdapter.items.add(item); @@ -1359,7 +1363,7 @@ private void listRoots() { if (telegramPath.exists()) { fs = new ListItem(); fs.title = "Telegram"; - fs.subtitle = LocaleController.getString("AppFolderInfo", R.string.AppFolderInfo); + fs.subtitle = LocaleController.getString(R.string.AppFolderInfo); fs.icon = R.drawable.files_folder; fs.file = telegramPath; listAdapter.items.add(fs); @@ -1371,8 +1375,8 @@ private void listRoots() { if (!isSoundPicker && !isEmojiPicker) { fs = new ListItem(); - fs.title = LocaleController.getString("Gallery", R.string.Gallery); - fs.subtitle = LocaleController.getString("GalleryInfo", R.string.GalleryInfo); + fs.title = LocaleController.getString(R.string.Gallery); + fs.subtitle = LocaleController.getString(R.string.GalleryInfo); fs.icon = R.drawable.files_gallery; fs.file = null; listAdapter.items.add(fs); @@ -1380,8 +1384,8 @@ private void listRoots() { if (allowMusic) { fs = new ListItem(); - fs.title = LocaleController.getString("AttachMusic", R.string.AttachMusic); - fs.subtitle = LocaleController.getString("MusicInfo", R.string.MusicInfo); + fs.title = LocaleController.getString(R.string.AttachMusic); + fs.subtitle = LocaleController.getString(R.string.MusicInfo); fs.icon = R.drawable.files_music; fs.file = null; listAdapter.items.add(fs); @@ -1496,9 +1500,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 0: HeaderCell headerCell = (HeaderCell) holder.itemView; if (sortByName) { - headerCell.setText(LocaleController.getString("RecentFilesAZ", R.string.RecentFilesAZ)); + headerCell.setText(LocaleController.getString(R.string.RecentFilesAZ)); } else { - headerCell.setText(LocaleController.getString("RecentFiles", R.string.RecentFiles)); + headerCell.setText(LocaleController.getString(R.string.RecentFiles)); } break; case 1: @@ -1900,9 +1904,9 @@ private void searchGlobal(long dialogId, long minDate, long maxDate, FiltersView } isLoading = false; if (error != null) { - emptyView.title.setText(LocaleController.getString("SearchEmptyViewTitle2", R.string.SearchEmptyViewTitle2)); + emptyView.title.setText(LocaleController.getString(R.string.SearchEmptyViewTitle2)); emptyView.subtitle.setVisibility(View.VISIBLE); - emptyView.subtitle.setText(LocaleController.getString("SearchEmptyViewFilteredSubtitle2", R.string.SearchEmptyViewFilteredSubtitle2)); + emptyView.subtitle.setText(LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitle2)); emptyView.showProgress(false, true); return; } @@ -1942,13 +1946,13 @@ private void searchGlobal(long dialogId, long minDate, long maxDate, FiltersView if (messages.isEmpty()) { if (TextUtils.isEmpty(currentDataQuery) && dialogId == 0 && minDate == 0) { - emptyView.title.setText(LocaleController.getString("SearchEmptyViewTitle", R.string.SearchEmptyViewTitle)); + emptyView.title.setText(LocaleController.getString(R.string.SearchEmptyViewTitle)); emptyView.subtitle.setVisibility(View.VISIBLE); - emptyView.subtitle.setText(LocaleController.getString("SearchEmptyViewFilteredSubtitleFiles", R.string.SearchEmptyViewFilteredSubtitleFiles)); + emptyView.subtitle.setText(LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitleFiles)); } else { - emptyView.title.setText(LocaleController.getString("SearchEmptyViewTitle2", R.string.SearchEmptyViewTitle2)); + emptyView.title.setText(LocaleController.getString(R.string.SearchEmptyViewTitle2)); emptyView.subtitle.setVisibility(View.VISIBLE); - emptyView.subtitle.setText(LocaleController.getString("SearchEmptyViewFilteredSubtitle2", R.string.SearchEmptyViewFilteredSubtitle2)); + emptyView.subtitle.setText(LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitle2)); } } @@ -1957,7 +1961,7 @@ private void searchGlobal(long dialogId, long minDate, long maxDate, FiltersView if (finalResultArray != null) { localTipChats.addAll(finalResultArray); } - if (query.length() >= 3 && (LocaleController.getString("SavedMessages", R.string.SavedMessages).toLowerCase().startsWith(query) || "saved messages".startsWith(query))) { + if (query.length() >= 3 && (LocaleController.getString(R.string.SavedMessages).toLowerCase().startsWith(query) || "saved messages".startsWith(query))) { boolean found = false; for (int i = 0; i < localTipChats.size(); i++) { if (localTipChats.get(i) instanceof TLRPC.User) @@ -2133,7 +2137,7 @@ public View getSectionHeaderView(int section, View view) { MessageObject messageObject = messageObjects.get(0); String str; if (section == 0 && !searchResult.isEmpty()) { - str = LocaleController.getString("GlobalSearch", R.string.GlobalSearch); + str = LocaleController.getString(R.string.GlobalSearch); } else { str = LocaleController.formatSectionDate(messageObject.messageOwner.date); } @@ -2188,7 +2192,7 @@ public void onBindViewHolder(int section, int position, RecyclerView.ViewHolder MessageObject messageObject = messageObjects.get(0); String str; if (section == 0 && !searchResult.isEmpty()) { - str = LocaleController.getString("GlobalSearch", R.string.GlobalSearch); + str = LocaleController.getString(R.string.GlobalSearch); } else { str = LocaleController.formatSectionDate(messageObject.messageOwner.date); } 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 0a9df13be9..8566f2cc49 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertLocationLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertLocationLayout.java @@ -307,7 +307,7 @@ public void addInfoView(IMapsProvider.IMarker marker) { lastPressedMarkerView.addView(addressTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT), 18, 32, 18, 0)); nameTextView.setText(location.venue.title); - addressTextView.setText(LocaleController.getString("TapToSendLocation", R.string.TapToSendLocation)); + addressTextView.setText(LocaleController.getString(R.string.TapToSendLocation)); FrameLayout iconLayout = new FrameLayout(context); iconLayout.setBackground(Theme.createCircleDrawable(AndroidUtilities.dp(36), LocationCell.getColorForIndex(location.num))); @@ -479,8 +479,8 @@ public void onTextChanged(EditText editText) { } }); searchItem.setVisibility(locationDenied && !parentAlert.isStoryLocationPicker || parentAlert.isBizLocationPicker ? View.GONE : View.VISIBLE); - searchItem.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); - searchItem.setContentDescription(LocaleController.getString("Search", R.string.Search)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.Search)); + searchItem.setContentDescription(LocaleController.getString(R.string.Search)); EditTextBoldCursor editText = searchItem.getSearchField(); editText.setTextColor(getThemedColor(Theme.key_dialogTextBlack)); editText.setCursorColor(getThemedColor(Theme.key_dialogTextBlack)); @@ -561,7 +561,7 @@ public void getOutline(View view, Outline outline) { searchAreaButton.setTextColor(getThemedColor(Theme.key_location_actionActiveIcon)); searchAreaButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); searchAreaButton.setTypeface(AndroidUtilities.bold()); - searchAreaButton.setText(LocaleController.getString("PlacesInThisArea", R.string.PlacesInThisArea)); + searchAreaButton.setText(LocaleController.getString(R.string.PlacesInThisArea)); searchAreaButton.setGravity(Gravity.CENTER); searchAreaButton.setPadding(AndroidUtilities.dp(20), 0, AndroidUtilities.dp(20), 0); mapViewClip.addView(searchAreaButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, Build.VERSION.SDK_INT >= 21 ? 40 : 44, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 80, 12, 80, 0)); @@ -578,15 +578,15 @@ public void getOutline(View view, Outline outline) { mapTypeButton.setAdditionalXOffset(AndroidUtilities.dp(10)); mapTypeButton.setAdditionalYOffset(-AndroidUtilities.dp(10)); if (false) { - mapTypeButton.addSubItem(map_list_menu_map, R.drawable.msg_map, LocaleController.getString("Map", R.string.Map), resourcesProvider); - mapTypeButton.addSubItem(map_list_menu_satellite, R.drawable.msg_satellite, LocaleController.getString("Satellite", R.string.Satellite), resourcesProvider); - mapTypeButton.addSubItem(map_list_menu_hybrid, R.drawable.msg_hybrid, LocaleController.getString("Hybrid", R.string.Hybrid), resourcesProvider); + mapTypeButton.addSubItem(map_list_menu_map, R.drawable.msg_map, LocaleController.getString(R.string.Map), resourcesProvider); + mapTypeButton.addSubItem(map_list_menu_satellite, R.drawable.msg_satellite, LocaleController.getString(R.string.Satellite), resourcesProvider); + mapTypeButton.addSubItem(map_list_menu_hybrid, R.drawable.msg_hybrid, LocaleController.getString(R.string.Hybrid), resourcesProvider); } else { mapTypeButton.addSubItem(map_list_menu_map, R.drawable.msg_map, "Standard OSM", resourcesProvider); mapTypeButton.addSubItem(map_list_menu_satellite, R.drawable.msg_map, "Wikimedia", resourcesProvider); mapTypeButton.addSubItem(map_list_menu_hybrid, R.drawable.msg_map, "Carto Dark", resourcesProvider); } - mapTypeButton.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + mapTypeButton.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); drawable = Theme.createSimpleSelectorCircleDrawable(AndroidUtilities.dp(40), getThemedColor(Theme.key_location_actionBackground), getThemedColor(Theme.key_location_actionPressedBackground)); if (Build.VERSION.SDK_INT < 21) { Drawable shadowDrawable = context.getResources().getDrawable(R.drawable.floating_shadow_profile).mutate(); @@ -686,7 +686,7 @@ public void getOutline(View view, Outline outline) { locationButton.setScaleType(ImageView.ScaleType.CENTER); locationButton.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_location_actionActiveIcon), PorterDuff.Mode.SRC_IN)); locationButton.setTag(Theme.key_location_actionActiveIcon); - locationButton.setContentDescription(LocaleController.getString("AccDescrMyLocation", R.string.AccDescrMyLocation)); + locationButton.setContentDescription(LocaleController.getString(R.string.AccDescrMyLocation)); LayoutParams layoutParams1 = LayoutHelper.createFrame(Build.VERSION.SDK_INT >= 21 ? 40 : 44, Build.VERSION.SDK_INT >= 21 ? 40 : 44, Gravity.RIGHT | Gravity.BOTTOM, 0, 0, 12, 12); mapViewClip.addView(locationButton, layoutParams1); locationButton.setOnClickListener(v -> { @@ -735,7 +735,7 @@ public void getOutline(View view, Outline outline) { emptyTitleTextView.setGravity(Gravity.CENTER); emptyTitleTextView.setTypeface(AndroidUtilities.bold()); emptyTitleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 17); - emptyTitleTextView.setText(LocaleController.getString("NoPlacesFound", R.string.NoPlacesFound)); + emptyTitleTextView.setText(LocaleController.getString(R.string.NoPlacesFound)); emptyView.addView(emptyTitleTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 11, 0, 0)); emptySubtitleTextView = new TextView(context); @@ -1426,8 +1426,8 @@ private void onMapInit() { if (!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), resourcesProvider); builder.setTopAnimation(R.raw.permission_request_location, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground, resourcesProvider)); - builder.setMessage(LocaleController.getString("GpsDisabledAlertText", R.string.GpsDisabledAlertText)); - builder.setPositiveButton(LocaleController.getString("ConnectingToProxyEnable", R.string.ConnectingToProxyEnable), (dialog, id) -> { + builder.setMessage(LocaleController.getString(R.string.GpsDisabledAlertText)); + builder.setPositiveButton(LocaleController.getString(R.string.ConnectingToProxyEnable), (dialog, id) -> { if (getParentActivity() == null) { return; } @@ -1437,7 +1437,7 @@ private void onMapInit() { } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.show(); } } catch (Exception e) { @@ -1809,7 +1809,7 @@ public void onResume() { @Override public void onShow(ChatAttachAlert.AttachAlertLayout previousLayout) { - parentAlert.actionBar.setTitle(LocaleController.getString("ShareLocation", R.string.ShareLocation)); + parentAlert.actionBar.setTitle(LocaleController.getString(R.string.ShareLocation)); if (mapView.getView().getParent() == null) { mapViewClip.addView(mapView.getView(), 0, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, overScrollHeight + AndroidUtilities.dp(10), Gravity.TOP | Gravity.LEFT)); mapViewClip.addView(overlayView, 1, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, overScrollHeight + AndroidUtilities.dp(10), Gravity.TOP | Gravity.LEFT)); 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 5e2d3b6f33..500f1fdcd2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java @@ -38,6 +38,8 @@ import android.os.Build; import android.provider.MediaStore; import android.provider.Settings; +import android.text.Spannable; +import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.util.Pair; import android.util.TypedValue; @@ -480,13 +482,24 @@ public void onApplyCaption(CharSequence caption) { if (selectedPhotos.size() > 0 && selectedPhotosOrder.size() > 0) { Object o = selectedPhotos.get(selectedPhotosOrder.get(0)); CharSequence firstPhotoCaption = null; + ArrayList entities = null; if (o instanceof MediaController.PhotoEntry) { MediaController.PhotoEntry photoEntry1 = (MediaController.PhotoEntry) o; firstPhotoCaption = photoEntry1.caption; + entities = photoEntry1.entities; } if (o instanceof MediaController.SearchImage) { MediaController.SearchImage photoEntry1 = (MediaController.SearchImage) o; firstPhotoCaption = photoEntry1.caption; + entities = photoEntry1.entities; + } + if (firstPhotoCaption != null) { + if (entities != null) { + if (!(firstPhotoCaption instanceof Spannable)) { + firstPhotoCaption = new SpannableStringBuilder(firstPhotoCaption); + } + MessageObject.addEntitiesToText(firstPhotoCaption, entities, false, false, false, false); + } } parentAlert.commentTextView.setText(AnimatedEmojiSpan.cloneSpans(firstPhotoCaption, AnimatedEmojiDrawable.CACHE_TYPE_ALERT_PREVIEW)); } @@ -681,7 +694,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { dropDown.setMaxLines(1); dropDown.setEllipsize(TextUtils.TruncateAt.END); dropDown.setTextColor(getThemedColor(Theme.key_dialogTextBlack)); - dropDown.setText(LocaleController.getString("ChatGallery", R.string.ChatGallery)); + dropDown.setText(LocaleController.getString(R.string.ChatGallery)); dropDown.setTypeface(AndroidUtilities.bold()); dropDownDrawable = context.getResources().getDrawable(R.drawable.ic_arrow_drop_down).mutate(); dropDownDrawable.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_dialogTextBlack), PorterDuff.Mode.SRC_IN)); @@ -702,11 +715,11 @@ R.raw.position_above, getString(R.string.CaptionBelow), previewItem = parentAlert.selectedMenuItem.addSubItem(preview, R.drawable.msg_view_file, LocaleController.getString(R.string.AttachMediaPreviewButton)); parentAlert.selectedMenuItem.addColoredGap(preview_gap); - parentAlert.selectedMenuItem.addSubItem(open_in, R.drawable.msg_openin, LocaleController.getString("OpenInExternalApp", R.string.OpenInExternalApp)); - compressItem = parentAlert.selectedMenuItem.addSubItem(compress, R.drawable.msg_filehq, LocaleController.getString("SendWithoutCompression", R.string.SendWithoutCompression)); - parentAlert.selectedMenuItem.addSubItem(group, R.drawable.msg_ungroup, LocaleController.getString("SendWithoutGrouping", R.string.SendWithoutGrouping)); + parentAlert.selectedMenuItem.addSubItem(open_in, R.drawable.msg_openin, LocaleController.getString(R.string.OpenInExternalApp)); + compressItem = parentAlert.selectedMenuItem.addSubItem(compress, R.drawable.msg_filehq, LocaleController.getString(R.string.SendWithoutCompression)); + parentAlert.selectedMenuItem.addSubItem(group, R.drawable.msg_ungroup, LocaleController.getString(R.string.SendWithoutGrouping)); parentAlert.selectedMenuItem.addColoredGap(media_gap); - spoilerItem = parentAlert.selectedMenuItem.addSubItem(spoiler, R.drawable.msg_spoiler, LocaleController.getString("EnablePhotoSpoiler", R.string.EnablePhotoSpoiler)); + spoilerItem = parentAlert.selectedMenuItem.addSubItem(spoiler, R.drawable.msg_spoiler, LocaleController.getString(R.string.EnablePhotoSpoiler)); parentAlert.selectedMenuItem.addSubItem(caption, captionItem); starsItem = parentAlert.selectedMenuItem.addSubItem(stars, R.drawable.menu_feature_paid, getString(R.string.PaidMediaButton)); parentAlert.selectedMenuItem.setFitSubItems(true); @@ -1029,7 +1042,7 @@ public void onStartStopSelection(boolean start) { gridView.addOnItemTouchListener(itemRangeSelector); progressView = new EmptyTextProgressView(context, null, resourcesProvider); - progressView.setText(LocaleController.getString("NoPhotos", R.string.NoPhotos)); + progressView.setText(LocaleController.getString(R.string.NoPhotos)); progressView.setOnTouchListener(null); progressView.setTextSize(16); addView(progressView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -1307,7 +1320,7 @@ public boolean onTranslationChanged(float x, float y) { } }); shutterButton.setFocusable(true); - shutterButton.setContentDescription(LocaleController.getString("AccDescrShutter", R.string.AccDescrShutter)); + shutterButton.setContentDescription(LocaleController.getString(R.string.AccDescrShutter)); switchCameraButton = new ImageView(context); switchCameraButton.setScaleType(ImageView.ScaleType.CENTER); @@ -1329,7 +1342,7 @@ public void onAnimationEnd(Animator animator) { animator.start(); }); - switchCameraButton.setContentDescription(LocaleController.getString("AccDescrSwitchCamera", R.string.AccDescrSwitchCamera)); + switchCameraButton.setContentDescription(LocaleController.getString(R.string.AccDescrSwitchCamera)); for (int a = 0; a < 2; a++) { flashModeButton[a] = new ImageView(context); @@ -1374,7 +1387,7 @@ public void onAnimationEnd(Animator animator) { tooltipTextView = new TextView(context); tooltipTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); tooltipTextView.setTextColor(0xffffffff); - tooltipTextView.setText(LocaleController.getString("TapForVideo", R.string.TapForVideo)); + tooltipTextView.setText(LocaleController.getString(R.string.TapForVideo)); tooltipTextView.setShadowLayer(AndroidUtilities.dp(3.33333f), 0, AndroidUtilities.dp(0.666f), 0x4c000000); tooltipTextView.setPadding(AndroidUtilities.dp(6), 0, AndroidUtilities.dp(6), 0); cameraPanel.addView(tooltipTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM, 0, 0, 0, 16)); @@ -1597,7 +1610,7 @@ private boolean checkSendMediaEnabled(MediaController.PhotoEntry photoEntry) { return true; } BulletinFactory.of(parentAlert.sizeNotifierFrameLayout, resourcesProvider).createErrorBulletin( - LocaleController.getString("GlobalAttachVideoRestricted", R.string.GlobalAttachVideoRestricted) + LocaleController.getString(R.string.GlobalAttachVideoRestricted) ).show(); return true; } else if (!photoEnabled && !photoEntry.isVideo) { @@ -1605,7 +1618,7 @@ private boolean checkSendMediaEnabled(MediaController.PhotoEntry photoEntry) { return true; } BulletinFactory.of(parentAlert.sizeNotifierFrameLayout, resourcesProvider).createErrorBulletin( - LocaleController.getString("GlobalAttachPhotoRestricted", R.string.GlobalAttachPhotoRestricted) + LocaleController.getString(R.string.GlobalAttachPhotoRestricted) ).show(); return true; } @@ -2218,15 +2231,15 @@ private void setCameraFlashModeIcon(ImageView imageView, String mode) { switch (mode) { case Camera.Parameters.FLASH_MODE_OFF: imageView.setImageResource(R.drawable.flash_off); - imageView.setContentDescription(LocaleController.getString("AccDescrCameraFlashOff", R.string.AccDescrCameraFlashOff)); + imageView.setContentDescription(LocaleController.getString(R.string.AccDescrCameraFlashOff)); break; case Camera.Parameters.FLASH_MODE_ON: imageView.setImageResource(R.drawable.flash_on); - imageView.setContentDescription(LocaleController.getString("AccDescrCameraFlashOn", R.string.AccDescrCameraFlashOn)); + imageView.setContentDescription(LocaleController.getString(R.string.AccDescrCameraFlashOn)); break; case Camera.Parameters.FLASH_MODE_AUTO: imageView.setImageResource(R.drawable.flash_auto); - imageView.setContentDescription(LocaleController.getString("AccDescrCameraFlashAuto", R.string.AccDescrCameraFlashAuto)); + imageView.setContentDescription(LocaleController.getString(R.string.AccDescrCameraFlashAuto)); break; } } @@ -2482,8 +2495,8 @@ public void getOutline(View view, Outline outline) { }); cameraView.setClipToOutline(true); } - cameraView.setContentDescription(LocaleController.getString("AccDescrInstantCamera", R.string.AccDescrInstantCamera)); - parentAlert.getContainer().addView(cameraView, 1, new LinearLayout.LayoutParams(itemSize, itemSize)); + cameraView.setContentDescription(LocaleController.getString(R.string.AccDescrInstantCamera)); + parentAlert.getContainer().addView(cameraView, 1, new FrameLayout.LayoutParams(itemSize, itemSize)); cameraView.setDelegate(new CameraView.CameraViewDelegate() { @Override public void onCameraInit() { @@ -3215,7 +3228,7 @@ public void onMenuItemClick(int id) { if (parentAlert.maxSelectedPhotos > 0 && selectedPhotosOrder.size() > 1) { TLRPC.Chat chat = parentAlert.getChat(); if (chat != null && !ChatObject.hasAdminRights(chat) && chat.slowmode_enabled) { - AlertsCreator.createSimpleAlert(getContext(), LocaleController.getString("Slowmode", R.string.Slowmode), LocaleController.getString("SlowmodeSendError", R.string.SlowmodeSendError), resourcesProvider).show(); + AlertsCreator.createSimpleAlert(getContext(), LocaleController.getString(R.string.Slowmode), LocaleController.getString(R.string.SlowmodeSendError), resourcesProvider).show(); return; } } @@ -3340,7 +3353,7 @@ public void onMenuItemClick(int id) { } else if (id >= 10) { selectedAlbumEntry = dropDownAlbums.get(id - 10); if (selectedAlbumEntry == galleryAlbumEntry) { - dropDown.setText(LocaleController.getString("ChatGallery", R.string.ChatGallery)); + dropDown.setText(LocaleController.getString(R.string.ChatGallery)); } else { dropDown.setText(selectedAlbumEntry.bucketName); } @@ -3594,13 +3607,13 @@ public void onInit(boolean hasVideo, boolean hasPhoto, boolean hasDocuments) { if ((parentAlert.baseFragment instanceof ChatActivity || parentAlert.getChat() != null) && parentAlert.avatarPicker == 0) { galleryAlbumEntry = MediaController.allMediaAlbumEntry; if (mediaEnabled) { - progressView.setText(LocaleController.getString("NoPhotos", R.string.NoPhotos)); + progressView.setText(LocaleController.getString(R.string.NoPhotos)); progressView.setLottie(0, 0, 0); } else { TLRPC.Chat chat = parentAlert.getChat(); progressView.setLottie(R.raw.media_forbidden, 150, 150); if (ChatObject.isActionBannedByDefault(chat, ChatObject.ACTION_SEND_MEDIA)) { - progressView.setText(LocaleController.getString("GlobalAttachMediaRestricted", R.string.GlobalAttachMediaRestricted)); + progressView.setText(LocaleController.getString(R.string.GlobalAttachMediaRestricted)); } else if (AndroidUtilities.isBannedForever(chat.banned_rights)) { progressView.setText(LocaleController.formatString("AttachMediaRestrictedForever", R.string.AttachMediaRestrictedForever)); } else { @@ -3628,7 +3641,7 @@ public void onInit(boolean hasVideo, boolean hasPhoto, boolean hasDocuments) { cameraPhotoLayoutManager.scrollToPositionWithOffset(0, 1000000); layoutManager.scrollToPositionWithOffset(0, 1000000); - dropDown.setText(LocaleController.getString("ChatGallery", R.string.ChatGallery)); + dropDown.setText(LocaleController.getString(R.string.ChatGallery)); selectedAlbumEntry = galleryAlbumEntry; if (selectedAlbumEntry != null) { @@ -4240,7 +4253,7 @@ public void getOutline(View view, Outline outline) { TLRPC.Chat chat = chatActivity.getCurrentChat(); if (chat != null && !ChatObject.hasAdminRights(chat) && chat.slowmode_enabled) { if (alertOnlyOnce != 2) { - AlertsCreator.createSimpleAlert(getContext(), LocaleController.getString("Slowmode", R.string.Slowmode), LocaleController.getString("SlowmodeSelectSendError", R.string.SlowmodeSelectSendError), resourcesProvider).show(); + AlertsCreator.createSimpleAlert(getContext(), LocaleController.getString(R.string.Slowmode), LocaleController.getString(R.string.SlowmodeSelectSendError), resourcesProvider).show(); if (alertOnlyOnce == 1) { alertOnlyOnce = 2; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayoutPreview.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayoutPreview.java index 51b7e95f2d..9e635c4068 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayoutPreview.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayoutPreview.java @@ -127,7 +127,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { header.setMaxLines(1); header.setEllipsize(TextUtils.TruncateAt.END); header.setTextColor(getThemedColor(Theme.key_dialogTextBlack)); - header.setText(LocaleController.getString("AttachMediaPreview", R.string.AttachMediaPreview)); + header.setText(LocaleController.getString(R.string.AttachMediaPreview)); header.setTypeface(AndroidUtilities.bold()); header.setCompoundDrawablePadding(AndroidUtilities.dp(4)); header.setPadding(0, 0, AndroidUtilities.dp(10), 0); @@ -932,7 +932,7 @@ public PreviewGroupsView(Context context) { setWillNotDraw(false); hintView = new ChatActionCell(context, true, themeDelegate); - hintView.setCustomText(LocaleController.getString("AttachMediaDragHint", R.string.AttachMediaDragHint)); + hintView.setCustomText(LocaleController.getString(R.string.AttachMediaDragHint)); addView(hintView); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPollLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPollLayout.java index e7289c6c51..5cf9c5a690 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPollLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPollLayout.java @@ -419,7 +419,7 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) { }); hintView = new HintView(context, 4); - hintView.setText(LocaleController.getString("PollTapToSelect", R.string.PollTapToSelect)); + hintView.setText(LocaleController.getString(R.string.PollTapToSelect)); hintView.setAlpha(0.0f); hintView.setVisibility(View.INVISIBLE); addView(hintView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 19, 0, 19, 0)); @@ -778,9 +778,9 @@ public void onShow(ChatAttachAlert.AttachAlertLayout previousLayout) { parentAlert.actionBar.getTitleTextView().setBuildFullLayout(true); } catch (Exception ignore) {} if (quizOnly == 1) { - parentAlert.actionBar.setTitle(LocaleController.getString("NewQuiz", R.string.NewQuiz)); + parentAlert.actionBar.setTitle(LocaleController.getString(R.string.NewQuiz)); } else { - parentAlert.actionBar.setTitle(LocaleController.getString("NewPoll", R.string.NewPoll)); + parentAlert.actionBar.setTitle(LocaleController.getString(R.string.NewPoll)); } parentAlert.doneItem.setVisibility(VISIBLE); layoutManager.scrollToPositionWithOffset(0, 0); @@ -827,10 +827,10 @@ private boolean checkDiscard() { } if (!allowDiscard) { AlertDialog.Builder builder = new AlertDialog.Builder(parentAlert.baseFragment.getParentActivity()); - builder.setTitle(LocaleController.getString("CancelPollAlertTitle", R.string.CancelPollAlertTitle)); - builder.setMessage(LocaleController.getString("CancelPollAlertText", R.string.CancelPollAlertText)); - builder.setPositiveButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialogInterface, i) -> parentAlert.dismiss()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.CancelPollAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.CancelPollAlertText)); + builder.setPositiveButton(LocaleController.getString(R.string.PassportDiscard), (dialogInterface, i) -> parentAlert.dismiss()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.show(); } return allowDiscard; @@ -1283,10 +1283,10 @@ public void onCustomEmojiSelected(long documentId, TLRPC.Document document, Stri @Override public void onClearEmojiRecent() { AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), resourcesProvider); - builder.setTitle(LocaleController.getString("ClearRecentEmojiTitle", R.string.ClearRecentEmojiTitle)); - builder.setMessage(LocaleController.getString("ClearRecentEmojiText", R.string.ClearRecentEmojiText)); - builder.setPositiveButton(LocaleController.getString("ClearButton", R.string.ClearButton), (dialogInterface, i) -> emojiView.clearRecentEmoji()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.ClearRecentEmojiTitle)); + builder.setMessage(LocaleController.getString(R.string.ClearRecentEmojiText)); + builder.setPositiveButton(LocaleController.getString(R.string.ClearButton), (dialogInterface, i) -> emojiView.clearRecentEmoji()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.show(); } @@ -1342,17 +1342,17 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { HeaderCell cell = (HeaderCell) holder.itemView; if (position == questionHeaderRow) { cell.getTextView().setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL); - cell.setText(LocaleController.getString("PollQuestion", R.string.PollQuestion)); + cell.setText(LocaleController.getString(R.string.PollQuestion)); } else { cell.getTextView().setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL); if (position == answerHeaderRow) { if (quizOnly == 1) { - cell.setText(LocaleController.getString("QuizAnswers", R.string.QuizAnswers)); + cell.setText(LocaleController.getString(R.string.QuizAnswers)); } else { - cell.setText(LocaleController.getString("AnswerOptions", R.string.AnswerOptions)); + cell.setText(LocaleController.getString(R.string.AnswerOptions)); } } else if (position == settingsHeaderRow) { - cell.setText(LocaleController.getString("Settings", R.string.Settings)); + cell.setText(LocaleController.getString(R.string.Settings)); } } break; @@ -1364,15 +1364,15 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { combinedDrawable.setFullsize(true); cell.setBackgroundDrawable(combinedDrawable); if (position == solutionInfoRow) { - cell.setText(LocaleController.getString("AddAnExplanationInfo", R.string.AddAnExplanationInfo)); + cell.setText(LocaleController.getString(R.string.AddAnExplanationInfo)); } else if (position == settingsSectionRow) { if (quizOnly != 0) { cell.setText(null); } else { - cell.setText(LocaleController.getString("QuizInfo", R.string.QuizInfo)); + cell.setText(LocaleController.getString(R.string.QuizInfo)); } } else if (10 - answersCount <= 0) { - cell.setText(LocaleController.getString("AddAnOptionInfoMax", R.string.AddAnOptionInfoMax)); + cell.setText(LocaleController.getString(R.string.AddAnOptionInfoMax)); } else { cell.setText(LocaleController.formatString("AddAnOptionInfo", R.string.AddAnOptionInfo, LocaleController.formatPluralString("Option", 10 - answersCount))); } @@ -1386,19 +1386,19 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { drawable1.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_switchTrackChecked), PorterDuff.Mode.SRC_IN)); drawable2.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_checkboxCheck), PorterDuff.Mode.SRC_IN)); CombinedDrawable combinedDrawable = new CombinedDrawable(drawable1, drawable2); - textCell.setTextAndIcon(LocaleController.getString("AddAnOption", R.string.AddAnOption), combinedDrawable, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.AddAnOption), combinedDrawable, false); break; } case 6: { TextCheckCell checkCell = (TextCheckCell) holder.itemView; if (position == anonymousRow) { - checkCell.setTextAndCheck(LocaleController.getString("PollAnonymous", R.string.PollAnonymous), anonymousPoll, multipleRow != -1 || quizRow != -1); + checkCell.setTextAndCheck(LocaleController.getString(R.string.PollAnonymous), anonymousPoll, multipleRow != -1 || quizRow != -1); checkCell.setEnabled(true, null); } else if (position == multipleRow) { - checkCell.setTextAndCheck(LocaleController.getString("PollMultiple", R.string.PollMultiple), multipleChoise, quizRow != -1); + checkCell.setTextAndCheck(LocaleController.getString(R.string.PollMultiple), multipleChoise, quizRow != -1); checkCell.setEnabled(true, null); } else if (position == quizRow) { - checkCell.setTextAndCheck(LocaleController.getString("PollQuiz", R.string.PollQuiz), quizPoll, false); + checkCell.setTextAndCheck(LocaleController.getString(R.string.PollQuiz), quizPoll, false); checkCell.setEnabled(quizOnly == 0, null); } } @@ -1415,7 +1415,7 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { if (viewType == 4) { PollEditTextCell textCell = (PollEditTextCell) holder.itemView; textCell.setTag(1); - textCell.setTextAndHint(questionString != null ? questionString : "", LocaleController.getString("QuestionHint", R.string.QuestionHint), false); + textCell.setTextAndHint(questionString != null ? questionString : "", LocaleController.getString(R.string.QuestionHint), false); textCell.setTag(null); setTextLeft(holder.itemView, holder.getAdapterPosition()); } else if (viewType == 5) { @@ -1423,7 +1423,7 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { PollEditTextCell textCell = (PollEditTextCell) holder.itemView; textCell.setTag(1); int index = position - answerStartRow; - textCell.setTextAndHint(answers[index], LocaleController.getString("OptionHint", R.string.OptionHint), true); + textCell.setTextAndHint(answers[index], LocaleController.getString(R.string.OptionHint), true); textCell.setTag(null); if (requestFieldFocusAtPosition == position) { EditTextBoldCursor editText = textCell.getTextView(); @@ -1435,7 +1435,7 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { } else if (viewType == 7) { PollEditTextCell textCell = (PollEditTextCell) holder.itemView; textCell.setTag(1); - textCell.setTextAndHint(solutionString != null ? solutionString : "", LocaleController.getString("AddAnExplanation", R.string.AddAnExplanation), false); + textCell.setTextAndHint(solutionString != null ? solutionString : "", LocaleController.getString(R.string.AddAnExplanation), false); textCell.setTag(null); setTextLeft(holder.itemView, holder.getAdapterPosition()); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachRestrictedLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachRestrictedLayout.java index b037a8914b..1059d4db1b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachRestrictedLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachRestrictedLayout.java @@ -34,7 +34,7 @@ public ChatAttachRestrictedLayout(int id, ChatAttachAlert alert, Context context super(alert, context, resourcesProvider); this.id = id; progressView = new EmptyTextProgressView(context, null, resourcesProvider); - progressView.setText(LocaleController.getString("NoPhotos", R.string.NoPhotos)); + progressView.setText(LocaleController.getString(R.string.NoPhotos)); progressView.setOnTouchListener(null); progressView.setTextSize(16); addView(progressView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAvatarContainer.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAvatarContainer.java index cbf909bb63..6ecfbb3ac6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAvatarContainer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAvatarContainer.java @@ -189,9 +189,9 @@ public void openStory(long dialogId, Runnable onDone) { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); if (avatarClickable && getImageReceiver().hasNotThumb()) { - info.setText(LocaleController.getString("AccDescrProfilePicture", R.string.AccDescrProfilePicture)); + info.setText(LocaleController.getString(R.string.AccDescrProfilePicture)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, LocaleController.getString("Open", R.string.Open))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, LocaleController.getString(R.string.Open))); } } else { info.setVisibleToUser(false); @@ -240,7 +240,7 @@ public boolean onTouchEvent(MotionEvent event) { avatarImageView.setVisibility(GONE); } } - avatarImageView.setContentDescription(LocaleController.getString("AccDescrProfilePicture", R.string.AccDescrProfilePicture)); + avatarImageView.setContentDescription(LocaleController.getString(R.string.AccDescrProfilePicture)); avatarImageView.setRoundRadius(AndroidUtilities.dp(21)); addView(avatarImageView); if (avatarClickable) { @@ -305,9 +305,9 @@ public boolean onTouchEvent(MotionEvent event) { } }); if (secretChatTimer) { - timeItem.setContentDescription(LocaleController.getString("SetTimer", R.string.SetTimer)); + timeItem.setContentDescription(LocaleController.getString(R.string.SetTimer)); } else { - timeItem.setContentDescription(LocaleController.getString("AccAutoDeleteTimer", R.string.AccAutoDeleteTimer)); + timeItem.setContentDescription(LocaleController.getString(R.string.AccAutoDeleteTimer)); } starBgItem = new ImageView(context); @@ -348,7 +348,7 @@ public boolean onTouchEvent(MotionEvent event) { emojiStatusDrawable = new AnimatedEmojiDrawable.SwapAnimatedEmojiDrawable(titleTextView, AndroidUtilities.dp(24)); } - private ButtonBounce bounce = new ButtonBounce(this); + public ButtonBounce bounce = new ButtonBounce(this); private Runnable onLongClick = () -> { pressed = false; bounce.setPressed(false); @@ -796,7 +796,7 @@ public void setTitleIcons(Drawable leftIcon, Drawable mutedIcon) { titleTextView.setLeftDrawable(leftIcon); if (!rightDrawableIsScamOrVerified) { if (mutedIcon != null) { - rightDrawable2ContentDescription = LocaleController.getString("NotificationsMuted", R.string.NotificationsMuted); + rightDrawable2ContentDescription = LocaleController.getString(R.string.NotificationsMuted); } else { rightDrawable2ContentDescription = null; } @@ -820,7 +820,7 @@ public void setTitle(CharSequence value, boolean scam, boolean fake, boolean ver drawable.setColor(getThemedColor(Theme.key_actionBarDefaultSubtitle)); titleTextView.setRightDrawable2(drawable); // titleTextView.setRightPadding(0); - rightDrawable2ContentDescription = LocaleController.getString("ScamMessage", R.string.ScamMessage); + rightDrawable2ContentDescription = LocaleController.getString(R.string.ScamMessage); rightDrawableIsScamOrVerified = true; } } else if (verified) { @@ -831,7 +831,7 @@ public void setTitle(CharSequence value, boolean scam, boolean fake, boolean ver Drawable verifiedDrawable = new CombinedDrawable(verifiedBackground, verifiedCheck); titleTextView.setRightDrawable2(verifiedDrawable); rightDrawableIsScamOrVerified = true; - rightDrawable2ContentDescription = LocaleController.getString("AccDescrVerified", R.string.AccDescrVerified); + rightDrawable2ContentDescription = LocaleController.getString(R.string.AccDescrVerified); } else if (titleTextView.getRightDrawable() instanceof ScamDrawable) { titleTextView.setRightDrawable2(null); rightDrawableIsScamOrVerified = false; @@ -854,7 +854,7 @@ public void setTitle(CharSequence value, boolean scam, boolean fake, boolean ver emojiStatusDrawable.setColor(getThemedColor(Theme.key_profile_verifiedBackground)); titleTextView.setRightDrawable(emojiStatusDrawable); rightDrawableIsScamOrVerified = false; - rightDrawableContentDescription = LocaleController.getString("AccDescrPremium", R.string.AccDescrPremium); + rightDrawableContentDescription = LocaleController.getString(R.string.AccDescrPremium); } else { titleTextView.setRightDrawable(null); rightDrawableContentDescription = null; @@ -1013,7 +1013,7 @@ public void onAnimationEnd(Animator animation) { if (count > 0) { newSubtitle = LocaleController.formatPluralString("messages", count, count); } else { - newSubtitle = LocaleController.formatString("TopicProfileStatus", R.string.TopicProfileStatus, chat.title); + newSubtitle = LocaleController.formatString(R.string.TopicProfileStatus, chat.title); } } else if (chat != null) { TLRPC.ChatFull info = parentFragment.getCurrentChatInfo(); @@ -1027,15 +1027,15 @@ public void onAnimationEnd(Animator animation) { if (UserObject.isReplyUser(user)) { newStatus = ""; } else if (user.id == UserConfig.getInstance(currentAccount).getClientUserId()) { - newStatus = LocaleController.getString("ChatYourSelf", R.string.ChatYourSelf); + newStatus = LocaleController.getString(R.string.ChatYourSelf); } else if (user.id == 333000 || user.id == 777000 || user.id == 42777) { - newStatus = LocaleController.getString("ServiceNotifications", R.string.ServiceNotifications); + newStatus = LocaleController.getString(R.string.ServiceNotifications); } else if (MessagesController.isSupportUser(user)) { - newStatus = LocaleController.getString("SupportStatus", R.string.SupportStatus); + newStatus = LocaleController.getString(R.string.SupportStatus); } else if (user.bot && user.bot_active_users != 0) { newStatus = LocaleController.formatPluralStringComma("BotUsers", user.bot_active_users, ','); } else if (user.bot) { - newStatus = LocaleController.getString("Bot", R.string.Bot); + newStatus = LocaleController.getString(R.string.Bot); } else { isOnline[0] = false; newStatus = LocaleController.formatUserStatus(currentAccount, user, isOnline, allowShorterStatus ? statusMadeShorter : null); @@ -1127,29 +1127,29 @@ public static CharSequence getChatSubtitle(TLRPC.Chat chat, TLRPC.ChatFull info, } else { if (chat.megagroup) { if (info == null) { - newSubtitle = LocaleController.getString("Loading", R.string.Loading).toLowerCase(); + newSubtitle = LocaleController.getString(R.string.Loading).toLowerCase(); } else { if (chat.has_geo) { - newSubtitle = LocaleController.getString("MegaLocation", R.string.MegaLocation).toLowerCase(); + newSubtitle = LocaleController.getString(R.string.MegaLocation).toLowerCase(); } else if (ChatObject.isPublic(chat)) { - newSubtitle = LocaleController.getString("MegaPublic", R.string.MegaPublic).toLowerCase(); + newSubtitle = LocaleController.getString(R.string.MegaPublic).toLowerCase(); } else { - newSubtitle = LocaleController.getString("MegaPrivate", R.string.MegaPrivate).toLowerCase(); + newSubtitle = LocaleController.getString(R.string.MegaPrivate).toLowerCase(); } } } else { if (ChatObject.isPublic(chat)) { - newSubtitle = LocaleController.getString("ChannelPublic", R.string.ChannelPublic).toLowerCase(); + newSubtitle = LocaleController.getString(R.string.ChannelPublic).toLowerCase(); } else { - newSubtitle = LocaleController.getString("ChannelPrivate", R.string.ChannelPrivate).toLowerCase(); + newSubtitle = LocaleController.getString(R.string.ChannelPrivate).toLowerCase(); } } } } else { if (ChatObject.isKickedFromChat(chat)) { - newSubtitle = LocaleController.getString("YouWereKicked", R.string.YouWereKicked); + newSubtitle = LocaleController.getString(R.string.YouWereKicked); } else if (ChatObject.isLeftFromChat(chat)) { - newSubtitle = LocaleController.getString("YouLeft", R.string.YouLeft); + newSubtitle = LocaleController.getString(R.string.YouLeft); } else { int count = chat.participants_count; if (info != null && info.participants != null) { @@ -1345,13 +1345,13 @@ public void didReceivedNotification(int id, int account, Object... args) { private void updateCurrentConnectionState() { String title = null; if (currentConnectionState == ConnectionsManager.ConnectionStateWaitingForNetwork) { - title = LocaleController.getString("WaitingForNetwork", R.string.WaitingForNetwork); + title = LocaleController.getString(R.string.WaitingForNetwork); } else if (currentConnectionState == ConnectionsManager.ConnectionStateConnecting) { - title = LocaleController.getString("Connecting", R.string.Connecting); + title = LocaleController.getString(R.string.Connecting); } else if (currentConnectionState == ConnectionsManager.ConnectionStateUpdating) { - title = LocaleController.getString("Updating", R.string.Updating); + title = LocaleController.getString(R.string.Updating); } else if (currentConnectionState == ConnectionsManager.ConnectionStateConnectingToProxy) { - title = LocaleController.getString("ConnectingToProxy", R.string.ConnectingToProxy); + title = LocaleController.getString(R.string.ConnectingToProxy); } if (title == null) { if (lastSubtitle != null) { @@ -1423,7 +1423,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { } info.setContentDescription(sb); if (info.isClickable() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, LocaleController.getString("OpenProfile", R.string.OpenProfile))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, LocaleController.getString(R.string.OpenProfile))); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatBigEmptyView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatBigEmptyView.java index 0be0ff13e9..4233d053ad 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatBigEmptyView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatBigEmptyView.java @@ -71,13 +71,13 @@ public ChatBigEmptyView(Context context, View parent, int type, Theme.ResourcesP TextView textView = new TextView(context); if (type == EMPTY_VIEW_TYPE_SECRET) { - textView.setText(LocaleController.getString("EncryptedDescriptionTitle", R.string.EncryptedDescriptionTitle)); + textView.setText(LocaleController.getString(R.string.EncryptedDescriptionTitle)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); } else if (type == EMPTY_VIEW_TYPE_GROUP) { - textView.setText(LocaleController.getString("GroupEmptyTitle2", R.string.GroupEmptyTitle2)); + textView.setText(LocaleController.getString(R.string.GroupEmptyTitle2)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); } else { - textView.setText(LocaleController.getString("ChatYourSelfTitle", R.string.ChatYourSelfTitle)); + textView.setText(LocaleController.getString(R.string.ChatYourSelfTitle)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); textView.setTypeface(AndroidUtilities.bold()); textView.setGravity(Gravity.CENTER_HORIZONTAL); @@ -113,38 +113,38 @@ public ChatBigEmptyView(Context context, View parent, int type, Theme.ResourcesP switch (a) { case 0: if (type == EMPTY_VIEW_TYPE_SECRET) { - textView.setText(LocaleController.getString("EncryptedDescription1", R.string.EncryptedDescription1)); + textView.setText(LocaleController.getString(R.string.EncryptedDescription1)); } else if (type == EMPTY_VIEW_TYPE_SAVED) { - textView.setText(LocaleController.getString("ChatYourSelfDescription1", R.string.ChatYourSelfDescription1)); + textView.setText(LocaleController.getString(R.string.ChatYourSelfDescription1)); } else { - textView.setText(LocaleController.getString("GroupDescription1", R.string.GroupDescription1)); + textView.setText(LocaleController.getString(R.string.GroupDescription1)); } break; case 1: if (type == EMPTY_VIEW_TYPE_SECRET) { - textView.setText(LocaleController.getString("EncryptedDescription2", R.string.EncryptedDescription2)); + textView.setText(LocaleController.getString(R.string.EncryptedDescription2)); } else if (type == EMPTY_VIEW_TYPE_SAVED) { - textView.setText(LocaleController.getString("ChatYourSelfDescription2", R.string.ChatYourSelfDescription2)); + textView.setText(LocaleController.getString(R.string.ChatYourSelfDescription2)); } else { - textView.setText(LocaleController.getString("GroupDescription2", R.string.GroupDescription2)); + textView.setText(LocaleController.getString(R.string.GroupDescription2)); } break; case 2: if (type == EMPTY_VIEW_TYPE_SECRET) { - textView.setText(LocaleController.getString("EncryptedDescription3", R.string.EncryptedDescription3)); + textView.setText(LocaleController.getString(R.string.EncryptedDescription3)); } else if (type == EMPTY_VIEW_TYPE_SAVED) { - textView.setText(LocaleController.getString("ChatYourSelfDescription3", R.string.ChatYourSelfDescription3)); + textView.setText(LocaleController.getString(R.string.ChatYourSelfDescription3)); } else { - textView.setText(LocaleController.getString("GroupDescription3", R.string.GroupDescription3)); + textView.setText(LocaleController.getString(R.string.GroupDescription3)); } break; case 3: if (type == EMPTY_VIEW_TYPE_SECRET) { - textView.setText(LocaleController.getString("EncryptedDescription4", R.string.EncryptedDescription4)); + textView.setText(LocaleController.getString(R.string.EncryptedDescription4)); } else if (type == EMPTY_VIEW_TYPE_SAVED) { - textView.setText(LocaleController.getString("ChatYourSelfDescription4", R.string.ChatYourSelfDescription4)); + textView.setText(LocaleController.getString(R.string.ChatYourSelfDescription4)); } else { - textView.setText(LocaleController.getString("GroupDescription4", R.string.GroupDescription4)); + textView.setText(LocaleController.getString(R.string.GroupDescription4)); } break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatGreetingsView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatGreetingsView.java index 6e4e59261b..53979ad001 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatGreetingsView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatGreetingsView.java @@ -66,7 +66,7 @@ public class ChatGreetingsView extends LinearLayout { private final Theme.ResourcesProvider resourcesProvider; boolean wasDraw; - public ChatGreetingsView(Context context, TLRPC.User user, int distance, int currentAccount, TLRPC.Document sticker, Theme.ResourcesProvider resourcesProvider) { + public ChatGreetingsView(Context context, TLRPC.User user, int currentAccount, TLRPC.Document sticker, Theme.ResourcesProvider resourcesProvider) { super(context); setOrientation(VERTICAL); this.currentAccount = currentAccount; @@ -102,13 +102,8 @@ public ChatGreetingsView(Context context, TLRPC.User user, int distance, int cur updateColors(); - if (distance <= 0) { - titleView.setText(getString(R.string.NoMessages)); - descriptionView.setText(getString(R.string.NoMessagesGreetingsDescription)); - } else { - titleView.setText(formatString("NearbyPeopleGreetingsMessage", R.string.NearbyPeopleGreetingsMessage, user.first_name, LocaleController.formatDistance(distance, 1))); - descriptionView.setText(getString(R.string.NearbyPeopleGreetingsDescription)); - } + titleView.setText(getString(R.string.NoMessages)); + descriptionView.setText(getString(R.string.NoMessagesGreetingsDescription)); descriptionView.setMaxWidth(HintView2.cutInFancyHalf(descriptionView.getText(), descriptionView.getPaint())); stickerToSendView.setContentDescription(descriptionView.getText()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatNotificationsPopupWrapper.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatNotificationsPopupWrapper.java index a7f418216b..aa3bb758d4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatNotificationsPopupWrapper.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatNotificationsPopupWrapper.java @@ -68,31 +68,31 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { windowLayout.setFitItems(true); if (swipeBackLayout != null) { - backItem = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_arrow_back, LocaleController.getString("Back", R.string.Back), false, resourcesProvider); + backItem = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_arrow_back, LocaleController.getString(R.string.Back), false, resourcesProvider); backItem.setOnClickListener(view -> { swipeBackLayout.closeForeground(); }); } - soundToggle = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_tone_on, LocaleController.getString("SoundOn", R.string.SoundOn), false, resourcesProvider); + soundToggle = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_tone_on, LocaleController.getString(R.string.SoundOn), false, resourcesProvider); soundToggle.setOnClickListener(view -> { dismiss(); callback.toggleSound(); }); - muteForLastSelected = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_mute_1h, LocaleController.getString("MuteFor1h", R.string.MuteFor1h), false, resourcesProvider); + muteForLastSelected = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_mute_1h, LocaleController.getString(R.string.MuteFor1h), false, resourcesProvider); muteForLastSelected.setOnClickListener(view -> { dismiss(); callback.muteFor(muteForLastSelected1Time); }); - muteForLastSelected2 = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_mute_1h, LocaleController.getString("MuteFor1h", R.string.MuteFor1h), false, resourcesProvider); + muteForLastSelected2 = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_mute_1h, LocaleController.getString(R.string.MuteFor1h), false, resourcesProvider); muteForLastSelected2.setOnClickListener(view -> { dismiss(); callback.muteFor(muteForLastSelected2Time); }); - ActionBarMenuSubItem item = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_mute_period, LocaleController.getString("MuteForPopup", R.string.MuteForPopup), false, resourcesProvider); + ActionBarMenuSubItem item = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_mute_period, LocaleController.getString(R.string.MuteForPopup), false, resourcesProvider); item.setOnClickListener(view -> { dismiss(); AlertsCreator.createMuteForPickerDialog(context, resourcesProvider, (notify, inSecond) -> { @@ -113,7 +113,7 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { }); }); - item = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_customize, LocaleController.getString("NotificationsCustomize", R.string.NotificationsCustomize), false, resourcesProvider); + item = ActionBarMenuItem.addItem(windowLayout, R.drawable.msg_customize, LocaleController.getString(R.string.NotificationsCustomize), false, resourcesProvider); item.setOnClickListener(view -> { dismiss(); callback.showCustomize(); @@ -170,18 +170,18 @@ public void update(long dialogId, long topicId, HashSet topicExceptions int color; if (muted) { - muteUnmuteButton.setTextAndIcon(LocaleController.getString("UnmuteNotifications", R.string.UnmuteNotifications), R.drawable.msg_unmute); + muteUnmuteButton.setTextAndIcon(LocaleController.getString(R.string.UnmuteNotifications), R.drawable.msg_unmute); color = Theme.getColor(Theme.key_windowBackgroundWhiteGreenText2); soundToggle.setVisibility(View.GONE); } else { - muteUnmuteButton.setTextAndIcon(LocaleController.getString("MuteNotifications", R.string.MuteNotifications), R.drawable.msg_mute); + muteUnmuteButton.setTextAndIcon(LocaleController.getString(R.string.MuteNotifications), R.drawable.msg_mute); color = Theme.getColor(Theme.key_text_RedBold); soundToggle.setVisibility(View.VISIBLE); boolean soundOn = MessagesController.getInstance(currentAccount).isDialogNotificationsSoundEnabled(dialogId, topicId); if (soundOn) { - soundToggle.setTextAndIcon(LocaleController.getString("SoundOff", R.string.SoundOff), R.drawable.msg_tone_off); + soundToggle.setTextAndIcon(LocaleController.getString(R.string.SoundOff), R.drawable.msg_tone_off); } else { - soundToggle.setTextAndIcon(LocaleController.getString("SoundOn", R.string.SoundOn), R.drawable.msg_tone_on); + soundToggle.setTextAndIcon(LocaleController.getString(R.string.SoundOn), R.drawable.msg_tone_on); } } @@ -244,19 +244,19 @@ private String formatMuteForTime(int time) { int minutes = time / 60; if (days != 0) { - stringBuilder.append(days).append(LocaleController.getString("SecretChatTimerDays", R.string.SecretChatTimerDays)); + stringBuilder.append(days).append(LocaleController.getString(R.string.SecretChatTimerDays)); } if (hours != 0) { if (stringBuilder.length() > 0) { stringBuilder.append(" "); } - stringBuilder.append(hours).append(LocaleController.getString("SecretChatTimerHours", R.string.SecretChatTimerHours)); + stringBuilder.append(hours).append(LocaleController.getString(R.string.SecretChatTimerHours)); } if (minutes != 0) { if (stringBuilder.length() > 0) { stringBuilder.append(" "); } - stringBuilder.append(minutes).append(LocaleController.getString("SecretChatTimerMinutes", R.string.SecretChatTimerMinutes)); + stringBuilder.append(minutes).append(LocaleController.getString(R.string.SecretChatTimerMinutes)); } return LocaleController.formatString("MuteForButton", R.string.MuteForButton, stringBuilder.toString()); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatThemeBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatThemeBottomSheet.java index 91c73e4f92..0bbcd7afad 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatThemeBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatThemeBottomSheet.java @@ -154,7 +154,7 @@ public ChatThemeBottomSheet(final ChatActivity chatActivity, ChatActivity.ThemeD titleView.setEllipsize(TextUtils.TruncateAt.MIDDLE); titleView.setLines(1); titleView.setSingleLine(true); - titleView.setText(LocaleController.getString("SelectTheme", R.string.SelectTheme)); + titleView.setText(LocaleController.getString(R.string.SelectTheme)); titleView.setTextColor(getThemedColor(Theme.key_dialogTextBlack)); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); titleView.setTypeface(AndroidUtilities.bold()); @@ -190,9 +190,9 @@ public ChatThemeBottomSheet(final ChatActivity chatActivity, ChatActivity.ThemeD public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); if (forceDark) { - info.setText(LocaleController.getString("AccDescrSwitchToDayTheme", R.string.AccDescrSwitchToDayTheme)); + info.setText(LocaleController.getString(R.string.AccDescrSwitchToDayTheme)); } else { - info.setText(LocaleController.getString("AccDescrSwitchToNightTheme", R.string.AccDescrSwitchToNightTheme)); + info.setText(LocaleController.getString(R.string.AccDescrSwitchToNightTheme)); } } }; @@ -273,9 +273,9 @@ public void run() { chooseBackgroundTextView.setLines(1); chooseBackgroundTextView.setSingleLine(true); if (currentWallpaper == null) { - chooseBackgroundTextView.setText(LocaleController.getString("ChooseBackgroundFromGallery", R.string.ChooseBackgroundFromGallery)); + chooseBackgroundTextView.setText(LocaleController.getString(R.string.ChooseBackgroundFromGallery)); } else { - chooseBackgroundTextView.setText(LocaleController.getString("ChooseANewWallpaper", R.string.ChooseANewWallpaper)); + chooseBackgroundTextView.setText(LocaleController.getString(R.string.ChooseANewWallpaper)); } chooseBackgroundTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); @@ -312,7 +312,7 @@ public void onClick(View v) { cancelOrResetTextView.setGravity(Gravity.CENTER); cancelOrResetTextView.setLines(1); cancelOrResetTextView.setSingleLine(true); - cancelOrResetTextView.setText(LocaleController.getString("RestToDefaultBackground", R.string.RestToDefaultBackground)); + cancelOrResetTextView.setText(LocaleController.getString(R.string.RestToDefaultBackground)); cancelOrResetTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); cancelOrResetTextView.setOnClickListener(v -> { @@ -403,9 +403,9 @@ private void updateState(boolean animated) { applyButton.setEnabled(true); boolean showSubText = false; if (selectedItem != null && selectedItem.chatTheme != null && selectedItem.chatTheme.showAsDefaultStub && selectedItem.chatTheme.wallpaper == null) { - applyTextView.setText(LocaleController.getString("ChatResetTheme", R.string.ChatResetTheme)); + applyTextView.setText(LocaleController.getString(R.string.ChatResetTheme)); } else { - applyTextView.setText(LocaleController.getString("ChatApplyTheme", R.string.ChatApplyTheme)); + applyTextView.setText(LocaleController.getString(R.string.ChatApplyTheme)); if (chat != null && boostsStatus != null && boostsStatus.level < chatActivity.getMessagesController().channelWallpaperLevelMin) { showSubText = true; SpannableStringBuilder text = new SpannableStringBuilder("l"); @@ -581,10 +581,10 @@ public void dismiss() { public void close() { if (hasChanges()) { AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), resourcesProvider); - builder.setTitle(LocaleController.getString("ChatThemeSaveDialogTitle", R.string.ChatThemeSaveDialogTitle)); - builder.setSubtitle(LocaleController.getString("ChatThemeSaveDialogText", R.string.ChatThemeSaveDialogText)); - builder.setPositiveButton(LocaleController.getString("ChatThemeSaveDialogApply", R.string.ChatThemeSaveDialogApply), (dialogInterface, i) -> applySelectedTheme()); - builder.setNegativeButton(LocaleController.getString("ChatThemeSaveDialogDiscard", R.string.ChatThemeSaveDialogDiscard), (dialogInterface, i) -> dismiss()); + builder.setTitle(LocaleController.getString(R.string.ChatThemeSaveDialogTitle)); + builder.setSubtitle(LocaleController.getString(R.string.ChatThemeSaveDialogText)); + builder.setPositiveButton(LocaleController.getString(R.string.ChatThemeSaveDialogApply), (dialogInterface, i) -> applySelectedTheme()); + builder.setNegativeButton(LocaleController.getString(R.string.ChatThemeSaveDialogDiscard), (dialogInterface, i) -> dismiss()); builder.show(); } else { dismiss(); @@ -1241,7 +1241,7 @@ public static void openGalleryForBackground( ) { ChatAttachAlert chatAttachAlert = new ChatAttachAlert(activity, fragment, false, false, false, resourcesProvider); chatAttachAlert.drawNavigationBar = true; - chatAttachAlert.setupPhotoPicker(LocaleController.getString("ChooseBackground", R.string.ChooseBackground)); + chatAttachAlert.setupPhotoPicker(LocaleController.getString(R.string.ChooseBackground)); chatAttachAlert.setDelegate(new ChatAttachAlert.ChatAttachViewDelegate() { long start; @Override @@ -1335,7 +1335,7 @@ public boolean insideBottomSheet() { private void openGalleryForBackground() { chatAttachAlert = new ChatAttachAlert(chatActivity.getParentActivity(), chatActivity, false, false, false, chatActivity.getResourceProvider()); chatAttachAlert.drawNavigationBar = true; - chatAttachAlert.setupPhotoPicker(LocaleController.getString("ChooseBackground", R.string.ChooseBackground)); + chatAttachAlert.setupPhotoPicker(LocaleController.getString(R.string.ChooseBackground)); chatAttachAlert.setDelegate(new ChatAttachAlert.ChatAttachViewDelegate() { long start; @Override @@ -1424,18 +1424,18 @@ protected void dispatchDraw(Canvas canvas) { }; chatAttachButtonText = new AnimatedTextView(getContext(), true, true, true); chatAttachButtonText.setTextSize(dp(14)); - chatAttachButtonText.setText(LocaleController.getString("SetColorAsBackground", R.string.SetColorAsBackground)); + chatAttachButtonText.setText(LocaleController.getString(R.string.SetColorAsBackground)); chatAttachButtonText.setGravity(Gravity.CENTER); chatAttachButtonText.setTextColor(getThemedColor(Theme.key_featuredStickers_addButton)); chatAttachButton.addView(chatAttachButtonText, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); chatAttachButton.setBackground(Theme.createSimpleSelectorRoundRectDrawable(dp(0), getThemedColor(Theme.key_windowBackgroundWhite), ColorUtils.setAlphaComponent(getThemedColor(Theme.key_featuredStickers_addButton), (int) (0.3f * 255)))); chatAttachButton.setOnClickListener(v -> { if (chatAttachAlert.getCurrentAttachLayout() == chatAttachAlert.getPhotoLayout()) { - chatAttachButtonText.setText(LocaleController.getString("ChooseBackgroundFromGallery", R.string.ChooseBackgroundFromGallery)); + chatAttachButtonText.setText(LocaleController.getString(R.string.ChooseBackgroundFromGallery)); chatAttachAlert.openColorsLayout(); chatAttachAlert.colorsLayout.updateColors(forceDark); } else { - chatAttachButtonText.setText(LocaleController.getString("SetColorAsBackground", R.string.SetColorAsBackground)); + chatAttachButtonText.setText(LocaleController.getString(R.string.SetColorAsBackground)); chatAttachAlert.showLayout(chatAttachAlert.getPhotoLayout()); } // WallpapersListActivity wallpapersListActivity = new WallpapersListActivity(WallpapersListActivity.TYPE_ALL, chatActivity.getDialogId()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChecksHintView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChecksHintView.java index b7648ea003..e4d268de05 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChecksHintView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChecksHintView.java @@ -63,10 +63,10 @@ public ChecksHintView(Context context, Theme.ResourcesProvider resourcesProvider if (a == 0) { imageView[a].setAnimation(R.raw.ticks_single, 24, 24); - textView[a].setText(LocaleController.getString("HintSent", R.string.HintSent)); + textView[a].setText(LocaleController.getString(R.string.HintSent)); } else { imageView[a].setAnimation(R.raw.ticks_double, 24, 24); - textView[a].setText(LocaleController.getString("HintRead", R.string.HintRead)); + textView[a].setText(LocaleController.getString(R.string.HintRead)); } imageView[a].playAnimation(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ClearHistoryAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ClearHistoryAlert.java index e944912527..92d619a9f6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ClearHistoryAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ClearHistoryAlert.java @@ -246,7 +246,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { textView.setTypeface(AndroidUtilities.bold()); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); textView.setTextColor(getThemedColor(Theme.key_dialogTextBlack)); - textView.setText(LocaleController.getString("ClearHistory", R.string.ClearHistory)); + textView.setText(LocaleController.getString(R.string.ClearHistory)); textView.setSingleLine(true); textView.setEllipsize(TextUtils.TruncateAt.END); linearLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT, 23, 20, 23, 0)); @@ -264,9 +264,9 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { if (!ChatObject.isChannel(chat) || chat.megagroup && !ChatObject.isPublic(chat)) { messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("AreYouSureClearHistoryWithChat", R.string.AreYouSureClearHistoryWithChat, chat.title))); } else if (chat.megagroup) { - messageTextView.setText(LocaleController.getString("AreYouSureClearHistoryGroup", R.string.AreYouSureClearHistoryGroup)); + messageTextView.setText(LocaleController.getString(R.string.AreYouSureClearHistoryGroup)); } else { - messageTextView.setText(LocaleController.getString("AreYouSureClearHistoryChannel", R.string.AreYouSureClearHistoryChannel)); + messageTextView.setText(LocaleController.getString(R.string.AreYouSureClearHistoryChannel)); } } @@ -285,7 +285,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { BottomSheetCell clearButton = new BottomSheetCell(context, resourcesProvider); clearButton.setBackground(null); - clearButton.setText(LocaleController.getString("AlertClearHistory", R.string.AlertClearHistory)); + clearButton.setText(LocaleController.getString(R.string.AlertClearHistory)); clearButton.background.setOnClickListener(v -> { if (dismissedDelayed) { return; @@ -303,7 +303,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { linearLayout.addView(shadowSectionCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); HeaderCell headerCell = new HeaderCell(context, resourcesProvider); - headerCell.setText(LocaleController.getString("AutoDeleteHeader", R.string.AutoDeleteHeader)); + headerCell.setText(LocaleController.getString(R.string.AutoDeleteHeader)); linearLayout.addView(headerCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 1, autoDeleteOnly ? 20 : 0, 1, 0)); } else { RLottieImageView lottieImageView = new RLottieImageView(context); @@ -317,7 +317,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { percentTextView.setTypeface(AndroidUtilities.bold()); percentTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 24); percentTextView.setTextColor(getThemedColor(Theme.key_dialogTextBlack)); - percentTextView.setText(LocaleController.getString("AutoDeleteAlertTitle", R.string.AutoDeleteAlertTitle)); + percentTextView.setText(LocaleController.getString(R.string.AutoDeleteAlertTitle)); linearLayout.addView(percentTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 17, 18, 17, 0)); TextView infoTextView = new TextView(context); @@ -328,9 +328,9 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { infoTextView.setText(LocaleController.formatString("AutoDeleteAlertUserInfo", R.string.AutoDeleteAlertUserInfo, UserObject.getFirstName(user))); } else { if (ChatObject.isChannel(chat) && !chat.megagroup) { - infoTextView.setText(LocaleController.getString("AutoDeleteAlertChannelInfo", R.string.AutoDeleteAlertChannelInfo)); + infoTextView.setText(LocaleController.getString(R.string.AutoDeleteAlertChannelInfo)); } else { - infoTextView.setText(LocaleController.getString("AutoDeleteAlertGroupInfo", R.string.AutoDeleteAlertGroupInfo)); + infoTextView.setText(LocaleController.getString(R.string.AutoDeleteAlertGroupInfo)); } } linearLayout.addView(infoTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 30, 22, 30, 20)); @@ -350,10 +350,10 @@ public void onTouchEnd() { } }); String[] strings = new String[]{ - LocaleController.getString("AutoDeleteNever", R.string.AutoDeleteNever), - LocaleController.getString("AutoDelete24Hours", R.string.AutoDelete24Hours), - LocaleController.getString("AutoDelete7Days", R.string.AutoDelete7Days), - LocaleController.getString("AutoDelete1Month", R.string.AutoDelete1Month) + LocaleController.getString(R.string.AutoDeleteNever), + LocaleController.getString(R.string.AutoDelete24Hours), + LocaleController.getString(R.string.AutoDelete7Days), + LocaleController.getString(R.string.AutoDelete1Month) }; slideChooseView.setOptions(currentTimer, strings); linearLayout.addView(slideChooseView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 8, 0, 0)); @@ -366,17 +366,17 @@ public void onTouchEnd() { linearLayout.addView(buttonContainer, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); TextInfoPrivacyCell infoCell = new TextInfoPrivacyCell(context, resourcesProvider); - infoCell.setText(LocaleController.getString("AutoDeleteInfo", R.string.AutoDeleteInfo)); + infoCell.setText(LocaleController.getString(R.string.AutoDeleteInfo)); buttonContainer.addView(infoCell); setTimerButton = new BottomSheetCell(context, resourcesProvider); setTimerButton.setBackgroundColor(getThemedColor(Theme.key_dialogBackground)); if (autoDeleteOnly) { - setTimerButton.setText(LocaleController.getString("AutoDeleteSet", R.string.AutoDeleteSet)); + setTimerButton.setText(LocaleController.getString(R.string.AutoDeleteSet)); } else if (full && currentTimer == 0) { - setTimerButton.setText(LocaleController.getString("EnableAutoDelete", R.string.EnableAutoDelete)); + setTimerButton.setText(LocaleController.getString(R.string.EnableAutoDelete)); } else { - setTimerButton.setText(LocaleController.getString("AutoDeleteConfirm", R.string.AutoDeleteConfirm)); + setTimerButton.setText(LocaleController.getString(R.string.AutoDeleteConfirm)); } setTimerButton.background.setOnClickListener(v -> { if (dismissedDelayed) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ColorPicker.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ColorPicker.java index a2c7cefaae..4f4d8c0f81 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ColorPicker.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ColorPicker.java @@ -195,7 +195,7 @@ protected void onDraw(Canvas canvas) { @Override public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); - info.setText(LocaleController.getString("ColorPickerMainColor", R.string.ColorPickerMainColor)); + info.setText(LocaleController.getString(R.string.ColorPickerMainColor)); info.setClassName(Button.class.getName()); info.setChecked(checked); info.setCheckable(true); @@ -476,7 +476,7 @@ public void onAnimationEnd(Animator animation) { }); colorsAnimator.start(); }); - addButton.setContentDescription(LocaleController.getString("Add", R.string.Add)); + addButton.setContentDescription(LocaleController.getString(R.string.Add)); addView(addButton, LayoutHelper.createFrame(30, 30, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 36, 1, 0, 0)); clearButton = new ImageView(getContext()) { @@ -564,7 +564,7 @@ public void onAnimationEnd(Animator animation) { }); colorsAnimator.start(); }); - clearButton.setContentDescription(LocaleController.getString("ClearButton", R.string.ClearButton)); + clearButton.setContentDescription(LocaleController.getString(R.string.ClearButton)); addView(clearButton, LayoutHelper.createFrame(30, 30, Gravity.TOP | Gravity.LEFT, 97, 1, 0, 0)); resetButton = new TextView(context); @@ -587,10 +587,10 @@ public void onAnimationEnd(Animator animation) { menuItem = new ActionBarMenuItem(context, null, 0, getThemedColor(Theme.key_windowBackgroundWhiteBlackText)); menuItem.setLongClickEnabled(false); menuItem.setIcon(R.drawable.ic_ab_other); - menuItem.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); - menuItem.addSubItem(item_edit, R.drawable.msg_edit, LocaleController.getString("OpenInEditor", R.string.OpenInEditor)); - menuItem.addSubItem(item_share, R.drawable.msg_share, LocaleController.getString("ShareTheme", R.string.ShareTheme)); - menuItem.addSubItem(item_delete, R.drawable.msg_delete, LocaleController.getString("DeleteTheme", R.string.DeleteTheme)); + menuItem.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); + menuItem.addSubItem(item_edit, R.drawable.msg_edit, LocaleController.getString(R.string.OpenInEditor)); + menuItem.addSubItem(item_share, R.drawable.msg_share, LocaleController.getString(R.string.ShareTheme)); + menuItem.addSubItem(item_delete, R.drawable.msg_delete, LocaleController.getString(R.string.DeleteTheme)); menuItem.setMenuYOffset(-AndroidUtilities.dp(80)); menuItem.setSubMenuOpenSide(2); menuItem.setDelegate(id -> { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ContactsEmptyView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ContactsEmptyView.java index 686710634a..6d833ac5a8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ContactsEmptyView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ContactsEmptyView.java @@ -59,7 +59,7 @@ public ContactsEmptyView(Context context) { titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); titleTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); titleTextView.setGravity(Gravity.CENTER_HORIZONTAL); - titleTextView.setText(LocaleController.getString("NoContactsYet", R.string.NoContactsYet)); + titleTextView.setText(LocaleController.getString(R.string.NoContactsYet)); titleTextView.setTypeface(AndroidUtilities.bold()); titleTextView.setMaxWidth(AndroidUtilities.dp(260)); addView(titleTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 0, 18, 0, 14)); @@ -69,6 +69,7 @@ public ContactsEmptyView(Context context) { addView(linesContainer, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP)); for (int a = 0; a < 3; a++) { + if (a == 1) continue; LinearLayout linearLayout = new LinearLayout(context); linearLayout.setOrientation(LinearLayout.HORIZONTAL); linesContainer.addView(linearLayout, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT, 0, 8, 0, 0)); @@ -87,13 +88,10 @@ public ContactsEmptyView(Context context) { switch (a) { case 0: - textView.setText(LocaleController.getString("NoContactsYetLine1", R.string.NoContactsYetLine1)); - break; - case 1: - textView.setText(LocaleController.getString("NoContactsYetLine2", R.string.NoContactsYetLine2)); + textView.setText(LocaleController.getString(R.string.NoContactsYetLine1)); break; case 2: - textView.setText(LocaleController.getString("NoContactsYetLine3", R.string.NoContactsYetLine3)); + textView.setText(LocaleController.getString(R.string.NoContactsYetLine3)); break; } if (LocaleController.isRTL) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/CreateGroupCallBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/CreateGroupCallBottomSheet.java index ca0d03557c..2f63e81552 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/CreateGroupCallBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/CreateGroupCallBottomSheet.java @@ -159,9 +159,9 @@ public void dismissInternal() { @Override protected CharSequence getTitle() { if (isChannelOrGiga) { - return LocaleController.getString("StartVoipChannelTitle", R.string.StartVoipChannelTitle); + return LocaleController.getString(R.string.StartVoipChannelTitle); } else { - return LocaleController.getString("StartVoipChatTitle", R.string.StartVoipChatTitle); + return LocaleController.getString(R.string.StartVoipChatTitle); } } @@ -206,7 +206,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi String status; if (did > 0) { object = MessagesController.getInstance(currentAccount).getUser(did); - status = LocaleController.getString("VoipGroupPersonalAccount", R.string.VoipGroupPersonalAccount); + status = LocaleController.getString(R.string.VoipGroupPersonalAccount); } else { object = MessagesController.getInstance(currentAccount).getChat(-did); status = null; @@ -218,7 +218,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi HeaderCell cell = (HeaderCell) holder.itemView; cell.setTextSize(15); cell.setPadding(0, 0, 0, AndroidUtilities.dp(2)); - cell.setText(LocaleController.getString("VoipChatDisplayedAs", R.string.VoipChatDisplayedAs).replace(":", "")); + cell.setText(LocaleController.getString(R.string.VoipChatDisplayedAs).replace(":", "")); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropRotationWheel.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropRotationWheel.java index fa8d0a383c..1a6a002a0d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropRotationWheel.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropRotationWheel.java @@ -82,7 +82,7 @@ public CropRotationWheel(Context context) { aspectRatioButton.callOnClick(); return true; }); - mirrorButton.setContentDescription(LocaleController.getString("AccDescrMirror", R.string.AccDescrMirror)); + mirrorButton.setContentDescription(LocaleController.getString(R.string.AccDescrMirror)); addView(mirrorButton, LayoutHelper.createFrame(70, 64, Gravity.LEFT | Gravity.CENTER_VERTICAL)); aspectRatioButton = new ImageView(context); @@ -95,7 +95,7 @@ public CropRotationWheel(Context context) { } }); aspectRatioButton.setVisibility(GONE); - aspectRatioButton.setContentDescription(LocaleController.getString("AccDescrAspectRatio", R.string.AccDescrAspectRatio)); + aspectRatioButton.setContentDescription(LocaleController.getString(R.string.AccDescrAspectRatio)); addView(aspectRatioButton, LayoutHelper.createFrame(70, 64, Gravity.LEFT | Gravity.CENTER_VERTICAL)); rotation90Button = new ImageView(context); @@ -107,7 +107,7 @@ public CropRotationWheel(Context context) { setRotated(rotationListener.rotate90Pressed()); } }); - rotation90Button.setContentDescription(LocaleController.getString("AccDescrRotate", R.string.AccDescrRotate)); + rotation90Button.setContentDescription(LocaleController.getString(R.string.AccDescrRotate)); addView(rotation90Button, LayoutHelper.createFrame(70, 64, Gravity.RIGHT | Gravity.CENTER_VERTICAL)); degreesTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropView.java index c7368dd768..70c775b8f0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Crop/CropView.java @@ -1235,8 +1235,8 @@ public void showAspectRatioDialog() { new Integer[]{16, 9} }; - actions[0] = LocaleController.getString("CropOriginal", R.string.CropOriginal); - actions[1] = LocaleController.getString("CropSquare", R.string.CropSquare); + actions[0] = LocaleController.getString(R.string.CropOriginal); + actions[1] = LocaleController.getString(R.string.CropSquare); int i = 2; for (Integer[] ratioPair : ratios) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/DialogsBotsAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/DialogsBotsAdapter.java index 9a93c53d61..fdf6cd72dd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/DialogsBotsAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/DialogsBotsAdapter.java @@ -3,11 +3,16 @@ import static org.telegram.messenger.LocaleController.getString; import android.content.Context; +import android.database.sqlite.SQLiteStatement; import android.text.TextUtils; import android.view.View; +import org.telegram.SQLite.SQLiteCursor; +import org.telegram.SQLite.SQLiteDatabase; +import org.telegram.SQLite.SQLitePreparedStatement; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.DialogObject; +import org.telegram.messenger.FileLog; import org.telegram.messenger.MediaDataController; import org.telegram.messenger.MessageObject; import org.telegram.messenger.MessagesController; @@ -29,9 +34,7 @@ public class DialogsBotsAdapter extends UniversalAdapter { private final boolean showOnlyPopular; private final Theme.ResourcesProvider resourcesProvider; - private String popularBotsNextOffset; - private boolean popularBotsLoaded, popularBotsLoading; - public final ArrayList popularBots = new ArrayList<>(); + private final PopularBots popular; public final ArrayList searchMine = new ArrayList<>(); public final ArrayList searchGlobal = new ArrayList<>(); @@ -48,9 +51,9 @@ public DialogsBotsAdapter(RecyclerListView listView, Context context, int curren this.folderId = folderId; this.resourcesProvider = resourcesProvider; this.showOnlyPopular = showOnlyPopular; + this.popular = new PopularBots(currentAccount, () -> update(true)); update(false); MediaDataController.getInstance(currentAccount).loadHints(true); - loadPopularBots(); } private int topPeersStart, topPeersEnd; @@ -111,20 +114,20 @@ public void fillItems(ArrayList items, UniversalAdapter adapter) { } } topPeersEnd = items.size(); - if (!popularBots.isEmpty()) { + if (!popular.bots.isEmpty()) { if (!showOnlyPopular) items.add(UItem.asGraySection(getString(R.string.SearchAppsPopular))); - for (int i = 0; i < popularBots.size(); ++i) { - final TLRPC.User user = popularBots.get(i); + for (int i = 0; i < popular.bots.size(); ++i) { + final TLRPC.User user = popular.bots.get(i); if (uids.contains(user.id)) continue; uids.add(user.id); items.add(UItem.asProfileCell(user).accent()); } - if (popularBotsNextOffset != null || popularBotsLoading) { + if (popular.loading) { items.add(UItem.asFlicker(FlickerLoadingView.PROFILE_SEARCH_CELL)); items.add(UItem.asFlicker(FlickerLoadingView.PROFILE_SEARCH_CELL)); items.add(UItem.asFlicker(FlickerLoadingView.PROFILE_SEARCH_CELL)); } - } else if (popularBotsNextOffset != null || popularBotsLoading) { + } else if (popular.loading) { if (!showOnlyPopular) items.add(UItem.asFlicker(FlickerLoadingView.GRAY_SECTION)); items.add(UItem.asFlicker(FlickerLoadingView.PROFILE_SEARCH_CELL)); items.add(UItem.asFlicker(FlickerLoadingView.PROFILE_SEARCH_CELL)); @@ -340,16 +343,18 @@ public void searchMore() { searchMessages(true); } + private boolean first = true; public void checkBottom() { if (!TextUtils.isEmpty(this.query)) { if (hasMore && !loadingMessages && seesLoading()) { searchMore(); } } else { - if (!popularBotsLoading && !TextUtils.isEmpty(popularBotsNextOffset) && seesLoading()) { - loadPopularBots(); + if (first || seesLoading()) { + popular.load(); } } + first = false; } public boolean seesLoading() { @@ -373,26 +378,146 @@ public boolean atTop() { return false; } - public void loadPopularBots() { - if (popularBotsLoading || popularBotsLoaded && popularBotsNextOffset == null) return; - - popularBotsLoading = true; - TL_bots.getPopularAppBots req = new TL_bots.getPopularAppBots(); - req.offset = popularBotsNextOffset == null ? "" : popularBotsNextOffset; - req.limit = 20; - ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { - popularBotsLoading = false; - popularBotsLoaded = true; - if (res instanceof TL_bots.popularAppBots) { - TL_bots.popularAppBots r = (TL_bots.popularAppBots) res; - MessagesController.getInstance(currentAccount).putUsers(r.users, false); - popularBots.addAll(r.users); - popularBotsNextOffset = r.next_offset; - } else { - popularBotsNextOffset = null; + public static class PopularBots { + + private final int currentAccount; + private final Runnable whenUpdated; + public PopularBots(int currentAccount, Runnable whenUpdated) { + this.currentAccount = currentAccount; + this.whenUpdated = whenUpdated; + } + + public boolean loading; + private boolean cacheLoaded; + private boolean endReached; + + private long cacheTime; + private String lastOffset; + public final ArrayList bots = new ArrayList<>(); + + private void loadCache(Runnable whenDone) { + final MessagesStorage storage = MessagesStorage.getInstance(currentAccount); + storage.getStorageQueue().postRunnable(() -> { + long time = 0; + String offset = null; + final ArrayList users = new ArrayList<>(); + final ArrayList userIds = new ArrayList<>(); + + final SQLiteDatabase db = storage.getDatabase(); + SQLiteCursor cursor = null; + try { + cursor = db.queryFinalized("SELECT uid, time, offset FROM popular_bots"); + while (cursor.next()) { + userIds.add(cursor.longValue(0)); + time = Math.max(time, cursor.longValue(1)); + offset = cursor.stringValue(2); + } + cursor.dispose(); + users.addAll(storage.getUsers(userIds)); + } catch (Exception e) { + FileLog.e(e); + } finally { + if (cursor != null) { + cursor.dispose(); + } + } + + final long finalTime = time; + final String finalOffset = offset; + AndroidUtilities.runOnUIThread(() -> { + MessagesController.getInstance(currentAccount).putUsers(users, true); + + bots.addAll(users); + this.cacheTime = finalTime; + this.lastOffset = finalOffset; + this.cacheLoaded = true; + + whenDone.run(); + }); + }); + } + + private boolean savingCache = false; + private void saveCache() { + if (savingCache) return; + savingCache = true; + + final long time = cacheTime; + final String offset = lastOffset; + final ArrayList ids = new ArrayList<>(); + for (int i = 0; i < bots.size(); ++i) { + ids.add(bots.get(i).id); } - update(true); - })); + + final MessagesStorage storage = MessagesStorage.getInstance(currentAccount); + storage.getStorageQueue().postRunnable(() -> { + final SQLiteDatabase db = storage.getDatabase(); + SQLitePreparedStatement state = null; + try { + db.executeFast("DELETE FROM popular_bots").stepThis().dispose(); + state = db.executeFast("REPLACE INTO popular_bots VALUES(?, ?, ?)"); + for (int i = 0; i < ids.size(); i++) { + state.requery(); + state.bindLong(1, ids.get(i)); + state.bindLong(2, time); + state.bindString(3, offset); + state.step(); + } + } catch (Exception e) { + FileLog.e(e); + } finally { + if (state != null) { + state.dispose(); + } + } + + AndroidUtilities.runOnUIThread(() -> { + savingCache = false; + }); + }); + } + + public void load() { + if (loading || endReached) return; + loading = true; + + if (!cacheLoaded) { + loadCache(() -> { + loading = false; + whenUpdated.run(); + + if (System.currentTimeMillis() - cacheTime > 60 * 60 * 1000) { + bots.clear(); + lastOffset = null; + load(); + } + }); + return; + } + + TL_bots.getPopularAppBots req = new TL_bots.getPopularAppBots(); + req.limit = 20; + req.offset = lastOffset == null ? "" : lastOffset; + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TL_bots.popularAppBots) { + TL_bots.popularAppBots r = (TL_bots.popularAppBots) res; + MessagesController.getInstance(currentAccount).putUsers(r.users, false); + MessagesStorage.getInstance(currentAccount).putUsersAndChats(r.users, null, false, true); + bots.addAll(r.users); + lastOffset = r.next_offset; + endReached = lastOffset == null; + cacheTime = System.currentTimeMillis(); + saveCache(); + loading = false; + whenUpdated.run(); + } else { + lastOffset = null; + endReached = true; + loading = false; + whenUpdated.run(); + } + })); + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/DownloadsInfoBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/DownloadsInfoBottomSheet.java index f44e6dbd11..c29f7018b9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/DownloadsInfoBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/DownloadsInfoBottomSheet.java @@ -63,7 +63,7 @@ public DownloadsInfoBottomSheet(Context context, BaseFragment parentFragment, bo title.setGravity(Gravity.CENTER_HORIZONTAL); title.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); - title.setText(LocaleController.getString("DownloadedFiles", R.string.DownloadedFiles)); + title.setText(LocaleController.getString(R.string.DownloadedFiles)); linearLayout.addView(title, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 21, 20, 21, 0)); TextView description = new TextView(context); @@ -80,7 +80,7 @@ public DownloadsInfoBottomSheet(Context context, BaseFragment parentFragment, bo storageBtn.setSingleLine(true); storageBtn.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); storageBtn.setTypeface(AndroidUtilities.bold()); - storageBtn.setText(LocaleController.getString("ManageDeviceStorage", R.string.ManageDeviceStorage)); + storageBtn.setText(LocaleController.getString(R.string.ManageDeviceStorage)); storageBtn.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); storageBtn.setBackground(Theme.createSimpleSelectorRoundRectDrawable(AndroidUtilities.dp(8), Theme.getColor(Theme.key_featuredStickers_addButton), ColorUtils.setAlphaComponent(Theme.getColor(Theme.key_windowBackgroundWhite), 120))); linearLayout.addView(storageBtn, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, 0, 14, 28, 14, 6)); @@ -91,7 +91,7 @@ public DownloadsInfoBottomSheet(Context context, BaseFragment parentFragment, bo clearBtn.setSingleLine(true); clearBtn.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); clearBtn.setTypeface(AndroidUtilities.bold()); - clearBtn.setText(LocaleController.getString("ClearDownloadsList", R.string.ClearDownloadsList)); + clearBtn.setText(LocaleController.getString(R.string.ClearDownloadsList)); clearBtn.setTextColor(Theme.getColor(Theme.key_featuredStickers_addButton)); clearBtn.setBackground(Theme.createSimpleSelectorRoundRectDrawable(AndroidUtilities.dp(8), Color.TRANSPARENT, ColorUtils.setAlphaComponent(Theme.getColor(Theme.key_featuredStickers_addButton), 120))); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 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 ccdb9ccb15..78fc05f29a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/EditTextCaption.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EditTextCaption.java @@ -12,6 +12,7 @@ import static org.telegram.messenger.LocaleController.getString; import android.annotation.SuppressLint; +import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; @@ -452,7 +453,7 @@ public void makeSelectedUrl() { } else { builder = new AlertDialog.Builder(getContext(), resourcesProvider); } - builder.setTitle(LocaleController.getString("CreateLink", R.string.CreateLink)); + builder.setTitle(LocaleController.getString(R.string.CreateLink)); FrameLayout container = new FrameLayout(getContext()); final EditTextBoldCursor editText = new EditTextBoldCursor(getContext()) { @@ -465,7 +466,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { editText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); editText.setText(def); editText.setTextColor(getThemedColor(Theme.key_dialogTextBlack)); - editText.setHintText(LocaleController.getString("URL", R.string.URL)); + editText.setHintText(LocaleController.getString(R.string.URL)); editText.setHeaderHintColor(getThemedColor(Theme.key_windowBackgroundWhiteBlueHeader)); editText.setSingleLine(true); editText.setFocusable(true); @@ -556,7 +557,7 @@ public void afterTextChanged(Editable s) { end = getSelectionEnd(); } - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> { Editable editable = getText(); CharacterStyle[] spans = editable.getSpans(start, end, CharacterStyle.class); if (spans != null && spans.length > 0) { @@ -584,7 +585,7 @@ public void afterTextChanged(Editable s) { delegate.onSpansChanged(); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); if (adaptiveCreateLinkDialog) { creationLinkDialog = builder.create(); creationLinkDialog.setOnDismissListener(dialog -> { @@ -899,14 +900,14 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { } } if (hasSelection()) { - infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_spoiler, LocaleController.getString("Spoiler", R.string.Spoiler))); - infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_bold, LocaleController.getString("Bold", R.string.Bold))); - infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_italic, LocaleController.getString("Italic", R.string.Italic))); - infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_mono, LocaleController.getString("Mono", R.string.Mono))); - infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_strike, LocaleController.getString("Strike", R.string.Strike))); - infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_underline, LocaleController.getString("Underline", R.string.Underline))); - infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_link, LocaleController.getString("CreateLink", R.string.CreateLink))); - infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_regular, LocaleController.getString("Regular", R.string.Regular))); + infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_spoiler, LocaleController.getString(R.string.Spoiler))); + infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_bold, LocaleController.getString(R.string.Bold))); + infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_italic, LocaleController.getString(R.string.Italic))); + infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_mono, LocaleController.getString(R.string.Mono))); + infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_strike, LocaleController.getString(R.string.Strike))); + infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_underline, LocaleController.getString(R.string.Underline))); + infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_link, LocaleController.getString(R.string.CreateLink))); + infoCompat.addAction(new AccessibilityNodeInfoCompat.AccessibilityActionCompat(R.id.menu_regular, LocaleController.getString(R.string.Regular))); } } @@ -959,10 +960,14 @@ public boolean onTextContextMenuItem(int id) { int end = Math.min(getText().length(), getSelectionEnd()); try { AndroidUtilities.addToClipboard(getText().subSequence(start, end)); + Activity activity = AndroidUtilities.findActivity(getContext()); + activity.closeContextMenu(); + if (floatingActionMode != null) { + floatingActionMode.finish(); + } + setSelection(start, end); return true; - } catch (Exception e) { - - } + } catch (Exception e) {} } else if (id == android.R.id.cut) { int start = Math.max(0, getSelectionStart()); int end = Math.min(getText().length(), getSelectionEnd()); @@ -978,9 +983,7 @@ public boolean onTextContextMenuItem(int id) { setText(stringBuilder); setSelection(start, start); return true; - } catch (Exception e) { - - } + } catch (Exception e) {} } return super.onTextContextMenuItem(id); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/EditTextEmoji.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/EditTextEmoji.java index 4fc7700ac2..44cd92dd26 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/EditTextEmoji.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EditTextEmoji.java @@ -345,7 +345,7 @@ protected void dispatchDraw(Canvas canvas) { openKeyboardInternal(); } }); - emojiButton.setContentDescription(LocaleController.getString("Emoji", R.string.Emoji)); + emojiButton.setContentDescription(LocaleController.getString(R.string.Emoji)); } public void collapseEmojiView() { @@ -888,10 +888,10 @@ public void onCustomEmojiSelected(long documentId, TLRPC.Document document, Str @Override public void onClearEmojiRecent() { AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), resourcesProvider); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); - builder.setMessage(LocaleController.getString("ClearRecentEmojiText", R.string.ClearRecentEmojiText)); - builder.setPositiveButton(LocaleController.getString("ClearButton", R.string.ClearButton), (dialogInterface, i) -> emojiView.clearRecentEmoji()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.NekoX)); + builder.setMessage(LocaleController.getString(R.string.ClearRecentEmojiText)); + builder.setPositiveButton(LocaleController.getString(R.string.ClearButton), (dialogInterface, i) -> emojiView.clearRecentEmoji()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); if (parentFragment != null) { parentFragment.showDialog(builder.create()); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/EditTextSuggestionsFix.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/EditTextSuggestionsFix.java index bde8f3770f..349a3706bd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/EditTextSuggestionsFix.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EditTextSuggestionsFix.java @@ -15,7 +15,7 @@ import java.util.HashMap; import java.util.Map; -// 😡😡😡 some systems (especially samsung) puts suggestions into the text +// 😡😡😡 some systems (especially samsung) put suggestions into the text // using editable.commitText, this completely removes all of our spans public class EditTextSuggestionsFix implements TextWatcher { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmbedBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmbedBottomSheet.java index 8209254ff0..203497a12f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmbedBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmbedBottomSheet.java @@ -755,7 +755,7 @@ public ViewGroup getTextureViewContainer() { textView.setEllipsize(TextUtils.TruncateAt.END); textView.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.getColor(Theme.key_dialogButtonSelector), 0)); textView.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); - textView.setText(LocaleController.getString("Close", R.string.Close).toUpperCase()); + textView.setText(LocaleController.getString(R.string.Close).toUpperCase()); textView.setTypeface(AndroidUtilities.bold()); frameLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); textView.setOnClickListener(v -> dismiss()); @@ -767,7 +767,7 @@ public ViewGroup getTextureViewContainer() { pipButton = new ImageView(context); pipButton.setScaleType(ImageView.ScaleType.CENTER); pipButton.setImageResource(R.drawable.ic_goinline); - pipButton.setContentDescription(LocaleController.getString("AccDescrPipMode", R.string.AccDescrPipMode)); + pipButton.setContentDescription(LocaleController.getString(R.string.AccDescrPipMode)); pipButton.setEnabled(false); pipButton.setAlpha(0.5f); pipButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogTextBlue4), PorterDuff.Mode.SRC_IN)); @@ -856,8 +856,8 @@ public void onAnimationEnd(Animator animation) { ImageView copyButton = new ImageView(context); copyButton.setScaleType(ImageView.ScaleType.CENTER); copyButton.setImageResource(R.drawable.msg_copy); - copyButton.setContentDescription(LocaleController.getString("CopyLink", R.string.CopyLink)); - copyButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogTextBlue4), PorterDuff.Mode.SRC_IN)); + copyButton.setContentDescription(LocaleController.getString(R.string.CopyLink)); + copyButton.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogTextBlue4), PorterDuff.Mode.MULTIPLY)); copyButton.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.getColor(Theme.key_dialogButtonSelector), 0)); imageButtonsContainer.addView(copyButton, LayoutHelper.createFrame(48, 48, Gravity.TOP | Gravity.LEFT)); copyButton.setOnClickListener(copyClickListener); @@ -870,7 +870,7 @@ public void onAnimationEnd(Animator animation) { copyTextButton.setEllipsize(TextUtils.TruncateAt.END); copyTextButton.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.getColor(Theme.key_dialogButtonSelector), 0)); copyTextButton.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); - copyTextButton.setText(LocaleController.getString("Copy", R.string.Copy).toUpperCase()); + copyTextButton.setText(LocaleController.getString(R.string.Copy).toUpperCase()); copyTextButton.setTypeface(AndroidUtilities.bold()); linearLayout.addView(copyTextButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); copyTextButton.setOnClickListener(copyClickListener); @@ -883,7 +883,7 @@ public void onAnimationEnd(Animator animation) { openInButton.setEllipsize(TextUtils.TruncateAt.END); openInButton.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.getColor(Theme.key_dialogButtonSelector), 0)); openInButton.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); - openInButton.setText(LocaleController.getString("OpenInBrowser", R.string.OpenInBrowser).toUpperCase()); + openInButton.setText(LocaleController.getString(R.string.OpenInBrowser).toUpperCase()); openInButton.setTypeface(AndroidUtilities.bold()); linearLayout.addView(openInButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); openInButton.setOnClickListener(v -> { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiPacksAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiPacksAlert.java index 43ac1e3333..510c5fe3e3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiPacksAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiPacksAlert.java @@ -6,6 +6,7 @@ import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; import android.content.Context; +import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.ColorFilter; import android.graphics.Paint; @@ -67,6 +68,7 @@ import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.BottomSheet; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Cells.StickerEmojiCell; import org.telegram.ui.ChatActivity; import org.telegram.ui.Components.Premium.PremiumButtonView; import org.telegram.ui.Components.Premium.PremiumFeatureBottomSheet; @@ -80,6 +82,7 @@ import java.util.regex.Pattern; import tw.nekomimi.nekogram.NekoConfig; +import tw.nekomimi.nekogram.utils.ProxyUtil; public class EmojiPacksAlert extends BottomSheet implements NotificationCenter.NotificationCenterDelegate { @@ -143,7 +146,7 @@ public void copyEmoji(TLRPC.Document document) { Spannable spannable = SpannableStringBuilder.valueOf(MessageObject.findAnimatedEmojiEmoticon(document)); spannable.setSpan(new AnimatedEmojiSpan(document, null), 0, spannable.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); if (AndroidUtilities.addToClipboard(spannable)) { - BulletinFactory.of((FrameLayout) containerView, resourcesProvider).createCopyBulletin(LocaleController.getString("EmojiCopied", R.string.EmojiCopied)).show(); + BulletinFactory.of((FrameLayout) containerView, resourcesProvider).createCopyBulletin(LocaleController.getString(R.string.EmojiCopied)).show(); } } @@ -180,14 +183,14 @@ public void setAsEmojiStatus(TLRPC.Document document, Integer until) { Runnable undoAction = () -> MessagesController.getInstance(currentAccount).updateEmojiStatus(previousEmojiStatus); if (document == null) { final Bulletin.SimpleLayout layout = new Bulletin.SimpleLayout(getContext(), resourcesProvider); - layout.textView.setText(LocaleController.getString("RemoveStatusInfo", R.string.RemoveStatusInfo)); + layout.textView.setText(LocaleController.getString(R.string.RemoveStatusInfo)); layout.imageView.setImageResource(R.drawable.msg_settings_premium); Bulletin.UndoButton undoButton = new Bulletin.UndoButton(getContext(), true, resourcesProvider); undoButton.setUndoAction(undoAction); layout.setButton(undoButton); Bulletin.make((FrameLayout) containerView, layout, Bulletin.DURATION_SHORT).show(); } else { - BulletinFactory.of((FrameLayout) containerView, resourcesProvider).createEmojiBulletin(document, LocaleController.getString("SetAsEmojiStatusInfo", R.string.SetAsEmojiStatusInfo), LocaleController.getString("Undo", R.string.Undo), undoAction).show(); + BulletinFactory.of((FrameLayout) containerView, resourcesProvider).createEmojiBulletin(document, LocaleController.getString(R.string.SetAsEmojiStatusInfo), LocaleController.getString(R.string.Undo), undoAction).show(); } } @@ -419,7 +422,7 @@ protected void onCloseByLink() { ActionBarMenuSubItem copyButton = new ActionBarMenuSubItem(getContext(), true, true); copyButton.setItemHeight(48); copyButton.setPadding(AndroidUtilities.dp(26), 0, AndroidUtilities.dp(26), 0); - copyButton.setText(LocaleController.getString("Copy", R.string.Copy)); + copyButton.setText(LocaleController.getString(R.string.Copy)); copyButton.getTextView().setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14.4f); copyButton.getTextView().setTypeface(AndroidUtilities.bold()); copyButton.setOnClickListener(e -> { @@ -432,7 +435,7 @@ protected void onCloseByLink() { SpannableString text = new SpannableString(MessageObject.findAnimatedEmojiEmoticon(AnimatedEmojiDrawable.findDocument(currentAccount, span.getDocumentId()))); text.setSpan(span, 0, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); if (AndroidUtilities.addToClipboard(text)) { - BulletinFactory.of((FrameLayout) containerView, resourcesProvider).createCopyBulletin(LocaleController.getString("EmojiCopied", R.string.EmojiCopied)).show(); + BulletinFactory.of((FrameLayout) containerView, resourcesProvider).createCopyBulletin(LocaleController.getString(R.string.EmojiCopied)).show(); } }); @@ -523,7 +526,7 @@ public int getSpanSize(int position) { buttonsView.addView(removeButtonView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.BOTTOM, 0, 0, 0, 19)); premiumButtonView = new PremiumButtonView(context, false, resourcesProvider); - premiumButtonView.setButton(LocaleController.getString("UnlockPremiumEmoji", R.string.UnlockPremiumEmoji), ev -> { + premiumButtonView.setButton(LocaleController.getString(R.string.UnlockPremiumEmoji), ev -> { showPremiumAlert(); }); premiumButtonView.setIcon(R.raw.unlock_icon); @@ -982,7 +985,7 @@ public static void installSet(BaseFragment fragment, TLObject obj, boolean showB onDone.run(true); } } else if (fragmentView != null) { - Toast.makeText(fragment.getFragmentView().getContext(), LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred), Toast.LENGTH_SHORT).show(); + Toast.makeText(fragment.getFragmentView().getContext(), LocaleController.getString(R.string.ErrorOccurred), Toast.LENGTH_SHORT).show(); if (onDone != null) { onDone.run(false); } @@ -1256,7 +1259,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi TextView textView = (TextView) holder.itemView; textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); textView.setTextColor(getThemedColor(Theme.key_chat_emojiPanelTrendingDescription)); - textView.setText(AndroidUtilities.replaceTags(LocaleController.getString("PremiumPreviewEmojiPack", R.string.PremiumPreviewEmojiPack))); + textView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PremiumPreviewEmojiPack))); textView.setPadding(AndroidUtilities.dp(14), 0, AndroidUtilities.dp(30), AndroidUtilities.dp(14)); break; case VIEW_TYPE_EMOJI: @@ -1451,6 +1454,38 @@ protected void onSend(androidx.collection.LongSparseArray dids, in } catch (Exception e) { FileLog.e(e); } + } else if (id == menu_qrcode) { + for (int i = 0, size = listView.getChildCount(); i < size; i++) { + final View child = listView.getChildAt(i); + if (child instanceof EmojiImageView) { + if (((EmojiImageView) child).imageReceiver != null) { + Bitmap bitmap = ((EmojiImageView) child).imageReceiver.getBitmap(); + if (bitmap == null) continue; + ProxyUtil.showQrDialog(getContext(), stickersUrl, imageSize -> Bitmap.createScaledBitmap(bitmap, imageSize, imageSize, true)); + return; + } + } + } + ProxyUtil.showQrDialog(getContext(), stickersUrl); + } else if (id == menu_user_profile) { + // Na: open sticker's admin user profile or copy admin userId + long userId = stickerSet.set.id >> 32; + if ((stickerSet.set.id >> 24 & 0xff) != 0) { + userId += 0x100000000L; + } + if (fragment != null) { + TLRPC.User user = fragment.getMessagesController().getUser(userId); + if (user != null) { + MessagesController.getInstance(currentAccount).openChatOrProfileWith(user, null, fragment, 0, false); + return; + } + } + try { + AndroidUtilities.addToClipboard("" + userId); + BulletinFactory.of((FrameLayout) containerView, resourcesProvider).createCopyLinkBulletin().show(); + } catch (Exception e) { + FileLog.e(e); + } } } @@ -1527,6 +1562,9 @@ public void updatePressedProgress() { } } + private final int menu_qrcode = 104; + private final int menu_user_profile = 105; + private class EmojiPackHeader extends FrameLayout { public LinkSpanDrawable.LinksTextView titleView; @@ -1569,7 +1607,7 @@ public EmojiPackHeader(Context context, boolean single) { if (!single) { if (!UserConfig.getInstance(currentAccount).isPremium()) { unlockButtonView = new PremiumButtonView(context, AndroidUtilities.dp(4), false, resourcesProvider); - unlockButtonView.setButton(LocaleController.getString("Unlock", R.string.Unlock), ev -> { + unlockButtonView.setButton(LocaleController.getString(R.string.Unlock), ev -> { premiumButtonClicked = SystemClock.elapsedRealtime(); showPremiumAlert(); }); @@ -1593,7 +1631,7 @@ public EmojiPackHeader(Context context, boolean single) { addButtonView.setTypeface(AndroidUtilities.bold()); addButtonView.setTextColor(getThemedColor(Theme.key_featuredStickers_buttonText)); addButtonView.setBackground(Theme.AdaptiveRipple.filledRect(getThemedColor(Theme.key_featuredStickers_addButton), 4)); - addButtonView.setText(LocaleController.getString("Add", R.string.Add)); + addButtonView.setText(LocaleController.getString(R.string.Add)); addButtonView.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); addButtonView.setGravity(Gravity.CENTER); addButtonView.setOnClickListener(e -> { @@ -1609,7 +1647,7 @@ public EmojiPackHeader(Context context, boolean single) { removeButtonView.setTypeface(AndroidUtilities.bold()); removeButtonView.setTextColor(getThemedColor(Theme.key_featuredStickers_addButton)); removeButtonView.setBackground(Theme.createRadSelectorDrawable(0x0fffffff & getThemedColor(Theme.key_featuredStickers_addButton), 4, 4)); - removeButtonView.setText(LocaleController.getString("StickersRemove", R.string.StickersRemove)); + removeButtonView.setText(LocaleController.getString(R.string.StickersRemove)); removeButtonView.setPadding(AndroidUtilities.dp(12), 0, AndroidUtilities.dp(12), 0); removeButtonView.setGravity(Gravity.CENTER); removeButtonView.setOnClickListener(e -> { @@ -1664,11 +1702,13 @@ public EmojiPackHeader(Context context, boolean single) { optionsButton.setIcon(R.drawable.ic_ab_other); optionsButton.setBackgroundDrawable(Theme.createSelectorDrawable(getThemedColor(Theme.key_player_actionBarSelector), 1)); addView(optionsButton, LayoutHelper.createFrame(40, 40, Gravity.TOP | Gravity.RIGHT, 0, 5, 5 - backgroundPaddingLeft / AndroidUtilities.density, 0)); - optionsButton.addSubItem(1, R.drawable.msg_share, LocaleController.getString("StickersShare", R.string.StickersShare)); - optionsButton.addSubItem(2, R.drawable.msg_link, LocaleController.getString("CopyLink", R.string.CopyLink)); + optionsButton.addSubItem(1, R.drawable.msg_share, LocaleController.getString(R.string.StickersShare)); + optionsButton.addSubItem(2, R.drawable.msg_link, LocaleController.getString(R.string.CopyLink)); + optionsButton.addSubItem(menu_qrcode, R.drawable.msg_qrcode, LocaleController.getString(R.string.ShareQRCode)); + optionsButton.addSubItem(menu_user_profile, R.drawable.msg_openprofile, LocaleController.getString(R.string.ChannelAdmin)); optionsButton.setOnClickListener(v -> optionsButton.toggleSubMenu()); optionsButton.setDelegate(EmojiPacksAlert.this::onSubItemClick); - optionsButton.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + optionsButton.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); } } @@ -1872,7 +1912,7 @@ public void init() { if (err != null || !(res instanceof TLRPC.Vector)) { EmojiPacksAlert.this.dismiss(); if (fragment != null && fragment.getParentActivity() != null) { - BulletinFactory.of(fragment).createErrorBulletin(LocaleController.getString("UnknownError", R.string.UnknownError)).show(); + BulletinFactory.of(fragment).createErrorBulletin(LocaleController.getString(R.string.UnknownError)).show(); } } else { TLRPC.Vector vector = (TLRPC.Vector) res; @@ -1903,7 +1943,7 @@ public void init() { AndroidUtilities.runOnUIThread(() -> { dismiss(); if (fragment != null && fragment.getParentActivity() != null) { - BulletinFactory.of(fragment).createErrorBulletin(LocaleController.getString("AddEmojiNotFound", R.string.AddEmojiNotFound)).show(); + BulletinFactory.of(fragment).createErrorBulletin(LocaleController.getString(R.string.AddEmojiNotFound)).show(); } }); } 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 dadb936b71..4ccf7248ed 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java @@ -535,7 +535,7 @@ public void setAsEmojiStatus(TLRPC.Document document, Integer until) { Runnable undoAction = () -> MessagesController.getInstance(currentAccount).updateEmojiStatus(previousEmojiStatus); if (document == null) { final Bulletin.SimpleLayout layout = new Bulletin.SimpleLayout(getContext(), resourcesProvider); - layout.textView.setText(LocaleController.getString("RemoveStatusInfo", R.string.RemoveStatusInfo)); + layout.textView.setText(LocaleController.getString(R.string.RemoveStatusInfo)); layout.imageView.setImageResource(R.drawable.msg_settings_premium); layout.imageView.setScaleX(.8f); layout.imageView.setScaleY(.8f); @@ -550,7 +550,7 @@ public void setAsEmojiStatus(TLRPC.Document document, Integer until) { } } else { BulletinFactory factory = fragment != null ? BulletinFactory.of(fragment) : BulletinFactory.of(bulletinContainer, resourcesProvider); - factory.createEmojiBulletin(document, LocaleController.getString("SetAsEmojiStatusInfo", R.string.SetAsEmojiStatusInfo), LocaleController.getString("Undo", R.string.Undo), undoAction).show(); + factory.createEmojiBulletin(document, LocaleController.getString(R.string.SetAsEmojiStatusInfo), LocaleController.getString(R.string.Undo), undoAction).show(); } } @@ -560,7 +560,7 @@ public void copyEmoji(TLRPC.Document document) { spannable.setSpan(new AnimatedEmojiSpan(document, null), 0, spannable.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); if (AndroidUtilities.addToClipboard(spannable)) { BulletinFactory factory = fragment != null ? BulletinFactory.of(fragment) : BulletinFactory.of(bulletinContainer, resourcesProvider); - factory.createCopyBulletin(LocaleController.getString("EmojiCopied", R.string.EmojiCopied)).show(); + factory.createCopyBulletin(LocaleController.getString(R.string.EmojiCopied)).show(); } } @@ -805,7 +805,7 @@ public boolean onTouchEvent(MotionEvent event) { searchEditText.setLines(1); searchEditText.setSingleLine(true); searchEditText.setImeOptions(EditorInfo.IME_ACTION_SEARCH | EditorInfo.IME_FLAG_NO_EXTRACT_UI); - searchEditText.setHint(LocaleController.getString("Search", R.string.Search)); + searchEditText.setHint(LocaleController.getString(R.string.Search)); searchEditText.setCursorColor(getThemedColor(Theme.key_featuredStickers_addedIcon)); searchEditText.setCursorSize(dp(20)); searchEditText.setCursorWidth(1.5f); @@ -1315,15 +1315,15 @@ private void sendEmoji(ImageViewEmoji imageViewEmoji, String override) { if (premiumBulletin || fragment == null) { factory.createEmojiBulletin( document, - AndroidUtilities.replaceTags(LocaleController.getString("UnlockPremiumEmojiHint", R.string.UnlockPremiumEmojiHint)), - LocaleController.getString("PremiumMore", R.string.PremiumMore), + AndroidUtilities.replaceTags(LocaleController.getString(R.string.UnlockPremiumEmojiHint)), + LocaleController.getString(R.string.PremiumMore), EmojiView.this::openPremiumAnimatedEmojiFeature ).show(); } else { factory.createSimpleBulletin( R.raw.saved_messages, - AndroidUtilities.replaceTags(LocaleController.getString("UnlockPremiumEmojiHint2", R.string.UnlockPremiumEmojiHint2)), - LocaleController.getString("Open", R.string.Open), + AndroidUtilities.replaceTags(LocaleController.getString(R.string.UnlockPremiumEmojiHint2)), + LocaleController.getString(R.string.Open), () -> { Bundle args = new Bundle(); args.putLong("user_id", UserConfig.getInstance(currentAccount).getClientUserId()); @@ -1506,14 +1506,14 @@ public EmojiView(BaseFragment fragment, boolean needAnimatedEmoji, boolean needS }; emojiTitles = new String[]{ - LocaleController.getString("Emoji1", R.string.Emoji1), - LocaleController.getString("Emoji2", R.string.Emoji2), - LocaleController.getString("Emoji3", R.string.Emoji3), - LocaleController.getString("Emoji4", R.string.Emoji4), - LocaleController.getString("Emoji5", R.string.Emoji5), - LocaleController.getString("Emoji6", R.string.Emoji6), - LocaleController.getString("Emoji7", R.string.Emoji7), - LocaleController.getString("Emoji8", R.string.Emoji8) + LocaleController.getString(R.string.Emoji1), + LocaleController.getString(R.string.Emoji2), + LocaleController.getString(R.string.Emoji3), + LocaleController.getString(R.string.Emoji4), + LocaleController.getString(R.string.Emoji5), + LocaleController.getString(R.string.Emoji6), + LocaleController.getString(R.string.Emoji7), + LocaleController.getString(R.string.Emoji8) }; showGifs = needGif; @@ -2272,13 +2272,13 @@ protected void stickerSetPositionChanged(int fromPosition, int toPosition) { if (fragment != null) { BulletinFactory.of(fragment).createSimpleBulletin( R.raw.filter_reorder, - LocaleController.getString("DynamicPackOrderOff", R.string.DynamicPackOrderOff), - LocaleController.getString("DynamicPackOrderOffInfo", R.string.DynamicPackOrderOffInfo), + LocaleController.getString(R.string.DynamicPackOrderOff), + LocaleController.getString(R.string.DynamicPackOrderOffInfo), LocaleController.getString("Settings"), () -> fragment.presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null)) ).show(); } else if (bulletinContainer != null) { - BulletinFactory.of(bulletinContainer, EmojiView.this.resourcesProvider).createSimpleBulletin(R.raw.filter_reorder, LocaleController.getString("DynamicPackOrderOff", R.string.DynamicPackOrderOff), LocaleController.getString("DynamicPackOrderOffInfo", R.string.DynamicPackOrderOffInfo)).show(); + BulletinFactory.of(bulletinContainer, EmojiView.this.resourcesProvider).createSimpleBulletin(R.raw.filter_reorder, LocaleController.getString(R.string.DynamicPackOrderOff), LocaleController.getString(R.string.DynamicPackOrderOffInfo)).show(); } else { return; } @@ -2490,7 +2490,7 @@ public boolean onTouchEvent(MotionEvent event) { backspaceButton.setImageResource(R.drawable.smiles_tab_clear); backspaceButton.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_chat_messagePanelIcons), PorterDuff.Mode.SRC_IN)); backspaceButton.setScaleType(ImageView.ScaleType.CENTER); - backspaceButton.setContentDescription(LocaleController.getString("AccDescrBackspace", R.string.AccDescrBackspace)); + backspaceButton.setContentDescription(LocaleController.getString(R.string.AccDescrBackspace)); backspaceButton.setFocusable(true); backspaceButton.setOnClickListener(new OnClickListener() { @Override @@ -2540,7 +2540,7 @@ public void setTranslationY(float translationY) { if (Build.VERSION.SDK_INT >= 21) { stickerSettingsButton.setBackground(Theme.createSelectorDrawable(color, Theme.RIPPLE_MASK_CIRCLE_20DP, AndroidUtilities.dp(18))); } - stickerSettingsButton.setContentDescription(LocaleController.getString("Settings", R.string.Settings)); + stickerSettingsButton.setContentDescription(LocaleController.getString(R.string.Settings)); bottomTabContainer.addView(stickerSettingsButton, LayoutHelper.createFrame(47, 40, Gravity.BOTTOM | Gravity.RIGHT)); stickerSettingsButton.setOnClickListener(new OnClickListener() { @Override @@ -2627,7 +2627,7 @@ public void onPageScrollStateChanged(int state) { searchButton.setImageResource(R.drawable.smiles_tab_search); searchButton.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_chat_messagePanelIcons), PorterDuff.Mode.SRC_IN)); searchButton.setScaleType(ImageView.ScaleType.CENTER); - searchButton.setContentDescription(LocaleController.getString("Search", R.string.Search)); + searchButton.setContentDescription(LocaleController.getString(R.string.Search)); searchButton.setFocusable(true); searchButton.setVisibility(View.GONE); if (Build.VERSION.SDK_INT >= 21) { @@ -2683,7 +2683,7 @@ public void getOutline(View view, Outline outline) { } backspaceButton.setPadding(0, 0, AndroidUtilities.dp(2), 0); backspaceButton.setBackground(drawable); - backspaceButton.setContentDescription(LocaleController.getString("AccDescrBackspace", R.string.AccDescrBackspace)); + backspaceButton.setContentDescription(LocaleController.getString(R.string.AccDescrBackspace)); backspaceButton.setFocusable(true); bottomTabContainer.addView(backspaceButton, LayoutHelper.createFrame((Build.VERSION.SDK_INT >= 21 ? 40 : 44) - 4, (Build.VERSION.SDK_INT >= 21 ? 40 : 44) - 4, Gravity.LEFT | Gravity.TOP, 10, 0, 10, 0)); shadowLine.setVisibility(GONE); @@ -3546,7 +3546,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { private ValueAnimator installFadeAway; public void updateInstall(boolean installed, boolean animated) { CharSequence text = installed ? - LocaleController.getString("Added", R.string.Added) : + LocaleController.getString(R.string.Added) : LocaleController.formatString("AddStickersCount", R.string.AddStickersCount, lastTitle); addButtonTextView.setText(text, animated); if (installFadeAway != null) { @@ -3680,7 +3680,7 @@ public EmojiPackHeader(Context context) { addButtonView = new TextView(context); addButtonView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); addButtonView.setTypeface(AndroidUtilities.bold()); - addButtonView.setText(LocaleController.getString("Add", R.string.Add)); + addButtonView.setText(LocaleController.getString(R.string.Add)); addButtonView.setTextColor(getThemedColor(Theme.key_featuredStickers_buttonText)); addButtonView.setBackground(Theme.AdaptiveRipple.createRect(getThemedColor(Theme.key_featuredStickers_addButton), getThemedColor(Theme.key_featuredStickers_addButtonPressed), 16)); addButtonView.setPadding(AndroidUtilities.dp(14), 0, AndroidUtilities.dp(14), 0); @@ -3735,7 +3735,7 @@ public EmojiPackHeader(Context context) { removeButtonView = new TextView(context); removeButtonView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); removeButtonView.setTypeface(AndroidUtilities.bold()); - removeButtonView.setText(LocaleController.getString("StickersRemove", R.string.StickersRemove)); + removeButtonView.setText(LocaleController.getString(R.string.StickersRemove)); removeButtonView.setTextColor(getThemedColor(Theme.key_featuredStickers_removeButtonText)); removeButtonView.setBackground(Theme.AdaptiveRipple.createRect(0, getThemedColor(Theme.key_featuredStickers_addButton) & 0x1affffff, 16)); removeButtonView.setPadding(AndroidUtilities.dp(12), 0, AndroidUtilities.dp(12), 0); @@ -3770,7 +3770,7 @@ public EmojiPackHeader(Context context) { premiumButtonView = new PremiumButtonView(context, AndroidUtilities.dp(16), false, resourcesProvider); premiumButtonView.setIcon(R.raw.unlock_icon); - premiumButtonView.setButton(LocaleController.getString("Unlock", R.string.Unlock), e -> openPremiumAnimatedEmojiFeature()); + premiumButtonView.setButton(LocaleController.getString(R.string.Unlock), e -> openPremiumAnimatedEmojiFeature()); try { MarginLayoutParams iconLayout = (MarginLayoutParams) premiumButtonView.getIconView().getLayoutParams(); @@ -3822,9 +3822,9 @@ public void setStickerSet(EmojiPack pack, boolean divider) { markView.setVisibility(pack.forGroup ? View.VISIBLE : View.GONE); if (pack.installed && !pack.set.official) { - premiumButtonView.setButton(LocaleController.getString("Restore", R.string.Restore), e -> openPremiumAnimatedEmojiFeature()); + premiumButtonView.setButton(LocaleController.getString(R.string.Restore), e -> openPremiumAnimatedEmojiFeature()); } else { - premiumButtonView.setButton(LocaleController.getString("Unlock", R.string.Unlock), e -> openPremiumAnimatedEmojiFeature()); + premiumButtonView.setButton(LocaleController.getString(R.string.Unlock), e -> openPremiumAnimatedEmojiFeature()); } updateState(false); @@ -5208,8 +5208,8 @@ private void updateStickerTabs(boolean updateStickerSets) { if (!NekoConfig.disableTrending.Bool() && !featured.isEmpty() && (!BuildVars.DEBUG_PRIVATE_VERSION || featuredStickerSets.isEmpty() || preferences.getLong("featured_hidden", 0) == featured.get(0).set.id)) { final int id = mediaDataController.getUnreadStickerSets().isEmpty() ? 2 : 3; final StickerTabView trendingStickersTabView = stickersTab.addStickerIconTab(id, stickerIcons[id]); - trendingStickersTabView.textView.setText(LocaleController.getString("FeaturedStickersShort", R.string.FeaturedStickersShort)); - trendingStickersTabView.setContentDescription(LocaleController.getString("FeaturedStickers", R.string.FeaturedStickers)); + trendingStickersTabView.textView.setText(LocaleController.getString(R.string.FeaturedStickersShort)); + trendingStickersTabView.setContentDescription(LocaleController.getString(R.string.FeaturedStickers)); trendingTabNum = stickersTabOffset; stickersTabOffset++; } @@ -5218,16 +5218,16 @@ private void updateStickerTabs(boolean updateStickerSets) { favTabNum = stickersTabOffset; stickersTabOffset++; StickerTabView stickerTabView = stickersTab.addStickerIconTab(1, stickerIcons[1]); - stickerTabView.textView.setText(LocaleController.getString("FavoriteStickersShort", R.string.FavoriteStickersShort)); - stickerTabView.setContentDescription(LocaleController.getString("FavoriteStickers", R.string.FavoriteStickers)); + stickerTabView.textView.setText(LocaleController.getString(R.string.FavoriteStickersShort)); + stickerTabView.setContentDescription(LocaleController.getString(R.string.FavoriteStickers)); } if (!recentStickers.isEmpty()) { recentTabNum = stickersTabOffset; stickersTabOffset++; StickerTabView stickerTabView = stickersTab.addStickerIconTab(0, stickerIcons[0]); - stickerTabView.textView.setText(LocaleController.getString("RecentStickersShort", R.string.RecentStickersShort)); - stickerTabView.setContentDescription(LocaleController.getString("RecentStickers", R.string.RecentStickers)); + stickerTabView.textView.setText(LocaleController.getString(R.string.RecentStickersShort)); + stickerTabView.setContentDescription(LocaleController.getString(R.string.RecentStickers)); } @@ -5273,8 +5273,8 @@ private void updateStickerTabs(boolean updateStickerSets) { // premiumTabNum = stickersTabOffset; // stickersTabOffset++; // StickerTabView stickerTabView = stickersTab.addStickerIconTab(4, PremiumGradient.getInstance().premiumStarMenuDrawable2); -// stickerTabView.textView.setText(LocaleController.getString("PremiumStickersShort", R.string.PremiumStickersShort)); -// stickerTabView.setContentDescription(LocaleController.getString("PremiumStickers", R.string.PremiumStickers)); +// stickerTabView.textView.setText(LocaleController.getString(R.string.PremiumStickersShort)); +// stickerTabView.setContentDescription(LocaleController.getString(R.string.PremiumStickers)); // } if (info != null && (!NekoConfig.hideGroupSticker.Bool())) { @@ -5341,7 +5341,7 @@ private void updateStickerTabs(boolean updateStickerSets) { if (thumb == null || stickerSet.set.gifs) { thumb = document; } - stickersTab.addStickerTab(thumb, document, stickerSet).setContentDescription(stickerSet.set.title + ", " + LocaleController.getString("AccDescrStickerSet", R.string.AccDescrStickerSet)); + stickersTab.addStickerTab(thumb, document, stickerSet).setContentDescription(stickerSet.set.title + ", " + LocaleController.getString(R.string.AccDescrStickerSet)); } } stickersTab.commitUpdate(); @@ -5386,12 +5386,12 @@ private void updateGifTabs() { if (hasRecent) { gifRecentTabNum = gifTabsCount++; - gifTabs.addIconTab(0, gifIcons[0]).setContentDescription(LocaleController.getString("RecentStickers", R.string.RecentStickers)); + gifTabs.addIconTab(0, gifIcons[0]).setContentDescription(LocaleController.getString(R.string.RecentStickers)); } if (!NekoConfig.disableTrending.Bool()) { gifTrendingTabNum = gifTabsCount++; - gifTabs.addIconTab(1, gifIcons[1]).setContentDescription(LocaleController.getString("FeaturedGifs", R.string.FeaturedGifs)); + gifTabs.addIconTab(1, gifIcons[1]).setContentDescription(LocaleController.getString(R.string.FeaturedGifs)); } gifFirstEmojiTabNum = gifTabsCount; @@ -5921,11 +5921,11 @@ public void showStickerBanHint(boolean show, boolean emoji, boolean gif) { return; } if (emoji) { - mediaBanTooltip.setText(LocaleController.getString("GlobalAttachEmojiRestricted", R.string.GlobalAttachEmojiRestricted)); + mediaBanTooltip.setText(LocaleController.getString(R.string.GlobalAttachEmojiRestricted)); } else if (gif) { - mediaBanTooltip.setText(LocaleController.getString("GlobalAttachGifRestricted", R.string.GlobalAttachGifRestricted)); + mediaBanTooltip.setText(LocaleController.getString(R.string.GlobalAttachGifRestricted)); } else { - mediaBanTooltip.setText(LocaleController.getString("GlobalAttachStickersRestricted", R.string.GlobalAttachStickersRestricted)); + mediaBanTooltip.setText(LocaleController.getString(R.string.GlobalAttachStickersRestricted)); } } else { if (chat.banned_rights == null) { @@ -5933,11 +5933,11 @@ public void showStickerBanHint(boolean show, boolean emoji, boolean gif) { } if (AndroidUtilities.isBannedForever(chat.banned_rights)) { if (emoji) { - mediaBanTooltip.setText(LocaleController.getString("AttachPlainRestrictedForever", R.string.AttachPlainRestrictedForever)); + mediaBanTooltip.setText(LocaleController.getString(R.string.AttachPlainRestrictedForever)); } else if (gif) { - mediaBanTooltip.setText(LocaleController.getString("AttachGifRestrictedForever", R.string.AttachGifRestrictedForever)); + mediaBanTooltip.setText(LocaleController.getString(R.string.AttachGifRestrictedForever)); } else { - mediaBanTooltip.setText(LocaleController.getString("AttachStickersRestrictedForever", R.string.AttachStickersRestrictedForever)); + mediaBanTooltip.setText(LocaleController.getString(R.string.AttachStickersRestrictedForever)); } } else { if (emoji) { @@ -6598,11 +6598,11 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { cell.setHeaderOnClick(v -> delegate.onShowStickerSet(set.set, null, false)); } } else if (object == recentStickers) { - cell.setText(LocaleController.getString("RecentStickers", R.string.RecentStickers), R.drawable.msg_close, LocaleController.getString(R.string.ClearRecentStickersAlertTitle)); + cell.setText(LocaleController.getString(R.string.RecentStickers), R.drawable.msg_close, LocaleController.getString(R.string.ClearRecentStickersAlertTitle)); } else if (object == favouriteStickers) { - cell.setText(LocaleController.getString("FavoriteStickers", R.string.FavoriteStickers), 0); + cell.setText(LocaleController.getString(R.string.FavoriteStickers), 0); } else if (object == premiumStickers) { - cell.setText(LocaleController.getString("PremiumStickers", R.string.PremiumStickers), 0); + cell.setText(LocaleController.getString(R.string.PremiumStickers), 0); } } break; @@ -6614,7 +6614,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } case 5: { StickerSetNameCell cell = (StickerSetNameCell) holder.itemView; - cell.setText(MediaDataController.getInstance(currentAccount).loadFeaturedPremium ? LocaleController.getString("FeaturedStickersPremium", R.string.FeaturedStickersPremium) : LocaleController.getString("FeaturedStickers", R.string.FeaturedStickers), R.drawable.msg_close, LocaleController.getString("AccDescrCloseTrendingStickers", R.string.AccDescrCloseTrendingStickers)); + cell.setText(MediaDataController.getInstance(currentAccount).loadFeaturedPremium ? LocaleController.getString(R.string.FeaturedStickersPremium) : LocaleController.getString(R.string.FeaturedStickers), R.drawable.msg_close, LocaleController.getString(R.string.AccDescrCloseTrendingStickers)); break; } } @@ -7013,9 +7013,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, @SuppressLint("Recy cell.position = position; index = positionToSection.get(position); if (position == trendingHeaderRow) { - cell.setText(LocaleController.getString("FeaturedEmojiPacks", R.string.FeaturedEmojiPacks), R.drawable.msg_close, LocaleController.getString("AccDescrCloseTrendingEmoji", R.string.AccDescrCloseTrendingEmoji)); + cell.setText(LocaleController.getString(R.string.FeaturedEmojiPacks), R.drawable.msg_close, LocaleController.getString(R.string.AccDescrCloseTrendingEmoji)); } else if (position == recentlyUsedHeaderRow) { - cell.setText(LocaleController.getString("RecentlyUsed", R.string.RecentlyUsed), 0); + cell.setText(LocaleController.getString(R.string.RecentlyUsed), 0); } else if (index >= emojiTitles.length) { try { cell.setText(emojipacksProcessed.get(index - emojiTitles.length).set.title, 0); @@ -7507,7 +7507,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { }; TextView textView = new TextView(getContext()); - textView.setText(LocaleController.getString("NoEmojiFound", R.string.NoEmojiFound)); + textView.setText(LocaleController.getString(R.string.NoEmojiFound)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); textView.setTextColor(getThemedColor(Theme.key_chat_emojiPanelEmptyText)); frameLayout.addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 10, 0, 0)); @@ -7532,7 +7532,7 @@ public void onClick(View v) { linearLayout.addView(imageView1, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 0, 15, 0, 0)); TextView textView = new TextView(getContext()); - textView.setText(LocaleController.getString("EmojiSuggestions", R.string.EmojiSuggestions)); + textView.setText(LocaleController.getString(R.string.EmojiSuggestions)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); textView.setTextColor(getThemedColor(Theme.key_dialogTextBlue2)); textView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); @@ -7540,7 +7540,7 @@ public void onClick(View v) { linearLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 0, 24, 0, 0)); textView = new TextView(getContext()); - textView.setText(AndroidUtilities.replaceTags(LocaleController.getString("EmojiSuggestionsInfo", R.string.EmojiSuggestionsInfo))); + textView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.EmojiSuggestionsInfo))); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); textView.setTextColor(getThemedColor(Theme.key_dialogTextBlack)); textView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); @@ -7859,11 +7859,11 @@ public Drawable getPageIconDrawable(int position) { public CharSequence getPageTitle(int position) { switch (position) { case 0: - return LocaleController.getString("Emoji", R.string.Emoji); + return LocaleController.getString(R.string.Emoji); case 1: - return LocaleController.getString("AccDescrGIFs", R.string.AccDescrGIFs); + return LocaleController.getString(R.string.AccDescrGIFs); case 2: - return LocaleController.getString("AccDescrStickers", R.string.AccDescrStickers); + return LocaleController.getString(R.string.AccDescrStickers); } return null; } @@ -7983,7 +7983,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType break; case 2: final StickerSetNameCell cell1 = new StickerSetNameCell(context, false, resourcesProvider); - cell1.setText(LocaleController.getString("FeaturedGifs", R.string.FeaturedGifs), 0); + cell1.setText(LocaleController.getString(R.string.FeaturedGifs), 0); view = cell1; final RecyclerView.LayoutParams lp = new RecyclerView.LayoutParams(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT); lp.topMargin = AndroidUtilities.dp(2.5f); @@ -8482,7 +8482,7 @@ public GifProgressEmptyView(@NonNull Context context) { addView(imageView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 8, 0, 0)); textView = new TextView(getContext()); - textView.setText(LocaleController.getString("NoGIFsFound", R.string.NoGIFsFound)); + textView.setText(LocaleController.getString(R.string.NoGIFsFound)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); textView.setTextColor(getThemedColor(Theme.key_chat_emojiPanelEmptyText)); addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 42, 0, 0)); @@ -8948,7 +8948,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { frameLayout.addView(imageView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 42, 0, 28)); TextView textView = new TextView(context); - textView.setText(LocaleController.getString("NoStickersFound", R.string.NoStickersFound)); + textView.setText(LocaleController.getString(R.string.NoStickersFound)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); textView.setTextColor(getThemedColor(Theme.key_chat_emojiPanelEmptyText)); frameLayout.addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 42, 0, 9)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmptyTextProgressView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmptyTextProgressView.java index f27f4030c8..c3782e95da 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmptyTextProgressView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmptyTextProgressView.java @@ -78,7 +78,7 @@ public EmptyTextProgressView(Context context, View progressView, Theme.Resources textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); textView.setTextColor(getThemedColor(Theme.key_emptyListPlaceholder)); textView.setGravity(Gravity.CENTER_HORIZONTAL); - textView.setText(LocaleController.getString("NoResult", R.string.NoResult)); + textView.setText(LocaleController.getString(R.string.NoResult)); textViewLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); addView(textViewLayout, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ExtendedGridLayoutManager.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ExtendedGridLayoutManager.java index 9bfe0196d3..2820f7286f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ExtendedGridLayoutManager.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ExtendedGridLayoutManager.java @@ -85,9 +85,17 @@ private void prepareLayout(float viewPortAvailableSize) { } else { requiredSpan = Math.min(spanCount, (int) Math.floor(spanCount * (size.width / size.height * preferredRowSize / viewPortAvailableSize))); moveToNewRow = spanLeft < requiredSpan || requiredSpan > 33 && spanLeft < requiredSpan - 15; + if (size.full) { + itemSpans.put(a, spanLeft); + rowsCount++; + currentItemsSpanAmount = 0; + currentItemsInRow = 0; + spanLeft = spanCount; + continue; + } } if (moveToNewRow) { - if (spanLeft != 0) { + if (spanLeft != 0 && currentItemsInRow != 0) { int spanPerItem = spanLeft / currentItemsInRow; for (int start = a - currentItemsInRow, b = start; b < start + currentItemsInRow; b++) { if (b == start + currentItemsInRow - 1) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterGLThread.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterGLThread.java index 36eed45614..68bb22cb2a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterGLThread.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterGLThread.java @@ -7,7 +7,6 @@ import android.opengl.GLES20; import android.opengl.GLUtils; import android.os.Looper; -import android.util.Log; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.BuildVars; @@ -163,9 +162,9 @@ private boolean setupVideoShader(StoryEntry.HDRInfo hdrInfo) { String hdrProcessor = ""; int hdrType = hdrInfo != null ? hdrInfo.getHDRType() : 0; if (hdrType == 1) { - hdrProcessor = RLottieDrawable.readRes(null, R.raw.hdr2sdr_hlg); + hdrProcessor = AndroidUtilities.readRes(R.raw.hdr2sdr_hlg); } else if (hdrType == 2) { - hdrProcessor = RLottieDrawable.readRes(null, R.raw.hdr2sdr_pq); + hdrProcessor = AndroidUtilities.readRes(R.raw.hdr2sdr_pq); } int vertexShader; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterShaders.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterShaders.java index 7b31fe6c27..6b79b51773 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterShaders.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterShaders.java @@ -1380,9 +1380,9 @@ private boolean setupExternalShaders() { String hdrProcessor = ""; int hdrType = hdrInfo != null ? hdrInfo.getHDRType() : 0; if (hdrType == 1) { - hdrProcessor = RLottieDrawable.readRes(null, R.raw.hdr2sdr_hlg); + hdrProcessor = AndroidUtilities.readRes(R.raw.hdr2sdr_hlg); } else if (hdrType == 2) { - hdrProcessor = RLottieDrawable.readRes(null, R.raw.hdr2sdr_pq); + hdrProcessor = AndroidUtilities.readRes(R.raw.hdr2sdr_pq); } String extension = isVideo ? "#extension GL_OES_EGL_image_external : require" : ""; String sampler2D = isVideo ? "samplerExternalOES" : "sampler2D"; 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 261e6fa459..a3456d8b72 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterTabsView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterTabsView.java @@ -754,7 +754,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { info.setSelected(currentTab != null && selectedTabId != -1 && currentTab.id == selectedTabId); info.addAction(AccessibilityNodeInfo.ACTION_CLICK); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_LONG_CLICK, LocaleController.getString("AccDescrOpenMenu2", R.string.AccDescrOpenMenu2))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_LONG_CLICK, LocaleController.getString(R.string.AccDescrOpenMenu2))); } else { info.addAction(AccessibilityNodeInfo.ACTION_LONG_CLICK); } @@ -1469,9 +1469,9 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int trueTabsWidth; Tab firstTab = findDefaultTab(); if (firstTab != null && !NekoConfig.hideAllTab.Bool()) { - firstTab.setTitle(LocaleController.getString("FilterAllChats", R.string.FilterAllChats)); + firstTab.setTitle(LocaleController.getString(R.string.FilterAllChats)); int tabWith = firstTab.getWidth(false); - firstTab.setTitle(allTabsWidth > width ? LocaleController.getString("FilterAllChatsShort", R.string.FilterAllChatsShort) : LocaleController.getString("FilterAllChats", R.string.FilterAllChats)); + firstTab.setTitle(allTabsWidth > width ? LocaleController.getString(R.string.FilterAllChatsShort) : LocaleController.getString(R.string.FilterAllChats)); trueTabsWidth = allTabsWidth - tabWith; trueTabsWidth += firstTab.getWidth(false); } else { @@ -1641,7 +1641,7 @@ public void checkTabsCounter() { requestLayout(); allTabsWidth = 0; if (!NekoConfig.hideAllTab.Bool()) - findDefaultTab().setTitle(LocaleController.getString("FilterAllChats", R.string.FilterAllChats)); + findDefaultTab().setTitle(LocaleController.getString(R.string.FilterAllChats)); for (int b = 0; b < N; b++) { allTabsWidth += tabs.get(b).getWidth(true) + FolderIconHelper.getPaddingTab(); } @@ -1673,7 +1673,7 @@ public void notifyTabCounterChanged(int id) { adapter.notifyDataSetChanged(); allTabsWidth = 0; if (!NekoConfig.hideAllTab.Bool()) - findDefaultTab().setTitle(LocaleController.getString("FilterAllChats", R.string.FilterAllChats)); + findDefaultTab().setTitle(LocaleController.getString(R.string.FilterAllChats)); for (int b = 0, N = tabs.size(); b < N; b++) { allTabsWidth += tabs.get(b).getWidth(true) + FolderIconHelper.getPaddingTab(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/FiltersListBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/FiltersListBottomSheet.java index 710b7eed85..0ff2685f4a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/FiltersListBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FiltersListBottomSheet.java @@ -434,7 +434,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { drawable2.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_checkboxCheck), PorterDuff.Mode.SRC_IN)); CombinedDrawable combinedDrawable = new CombinedDrawable(drawable1, drawable2); cell.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText4)); - cell.setTextAndIcon(LocaleController.getString("CreateNewFilter", R.string.CreateNewFilter), combinedDrawable); + cell.setTextAndIcon(LocaleController.getString(R.string.CreateNewFilter), combinedDrawable); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/FlickerLoadingView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/FlickerLoadingView.java index 87539e6f56..5019a2543c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/FlickerLoadingView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FlickerLoadingView.java @@ -1041,6 +1041,6 @@ public void setMemberRequestButton(boolean isChannel) { TextPaint paint = new TextPaint(Paint.ANTI_ALIAS_FLAG); paint.setTypeface(AndroidUtilities.bold()); paint.setTextSize(dp(14)); - memberRequestButtonWidth = dp(17 + 17) + paint.measureText(isChannel ? LocaleController.getString("AddToChannel", R.string.AddToChannel) : LocaleController.getString("AddToGroup", R.string.AddToGroup)); + memberRequestButtonWidth = dp(17 + 17) + paint.measureText(isChannel ? LocaleController.getString(R.string.AddToChannel) : LocaleController.getString(R.string.AddToGroup)); } } \ No newline at end of file diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/FolderBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/FolderBottomSheet.java index 7f1a8763f9..5318fe2688 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/FolderBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FolderBottomSheet.java @@ -139,14 +139,14 @@ public static void showForDeletion(final BaseFragment fragment, final int filter if (filter != null && filter.isMyChatlist()) { AlertDialog alertDialog = new AlertDialog.Builder(fragment.getContext()) - .setTitle(LocaleController.getString("FilterDelete", R.string.FilterDelete)) - .setMessage(LocaleController.getString("FilterDeleteAlertLinks", R.string.FilterDeleteAlertLinks)) - .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (d, w) -> { + .setTitle(LocaleController.getString(R.string.FilterDelete)) + .setMessage(LocaleController.getString(R.string.FilterDeleteAlertLinks)) + .setNegativeButton(LocaleController.getString(R.string.Cancel), (d, w) -> { if (whenDone != null) { whenDone.run(false); } }) - .setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (d, w) -> { + .setPositiveButton(LocaleController.getString(R.string.Delete), (d, w) -> { showDeleteAlert.run(); }) .create(); @@ -610,9 +610,9 @@ public void onViewCreated(FrameLayout containerView) { } else { TLRPC.Chat chat = getBaseFragment().getMessagesController().getChat(-did); if (ChatObject.isChannelAndNotMegaGroup(chat)) { - text = LocaleController.getString("FolderLinkAlreadySubscribed", R.string.FolderLinkAlreadySubscribed); + text = LocaleController.getString(R.string.FolderLinkAlreadySubscribed); } else { - text = LocaleController.getString("FolderLinkAlreadyJoined", R.string.FolderLinkAlreadyJoined); + text = LocaleController.getString(R.string.FolderLinkAlreadyJoined); } array.add(chat); } @@ -641,13 +641,13 @@ public void updateCount(boolean animated) { int count = selectedPeers.size(); if (button != null) { if (deleting) { - button.setText(count > 0 ? LocaleController.getString("FolderLinkButtonRemoveChats", R.string.FolderLinkButtonRemoveChats) : LocaleController.getString("FolderLinkButtonRemove", R.string.FolderLinkButtonRemove), animated); + button.setText(count > 0 ? LocaleController.getString(R.string.FolderLinkButtonRemoveChats) : LocaleController.getString(R.string.FolderLinkButtonRemove), animated); } else if (peers == null || peers.isEmpty()) { - button.setText(LocaleController.getString("OK", R.string.OK), animated); + button.setText(LocaleController.getString(R.string.OK), animated); } else if (invite instanceof TL_chatlists.TL_chatlists_chatlistInvite) { button.setText(LocaleController.formatString("FolderLinkButtonAdd", R.string.FolderLinkButtonAdd, title), animated); } else { - button.setText(count > 0 ? LocaleController.formatPluralString("FolderLinkButtonJoinPlural", count) : LocaleController.getString("FolderLinkButtonNone", R.string.FolderLinkButtonNone), animated); + button.setText(count > 0 ? LocaleController.formatPluralString("FolderLinkButtonJoinPlural", count) : LocaleController.getString(R.string.FolderLinkButtonNone), animated); } button.setCount(count, animated); if (invite instanceof TL_chatlists.TL_chatlists_chatlistInvite) { @@ -905,13 +905,13 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { @Override protected CharSequence getTitle() { if (deleting) { - return LocaleController.getString("FolderLinkTitleRemove", R.string.FolderLinkTitleRemove); + return LocaleController.getString(R.string.FolderLinkTitleRemove); } else if (invite instanceof TL_chatlists.TL_chatlists_chatlistInvite) { - return LocaleController.getString("FolderLinkTitleAdd", R.string.FolderLinkTitleAdd); + return LocaleController.getString(R.string.FolderLinkTitleAdd); } else if (peers == null || peers.isEmpty()) { - return LocaleController.getString("FolderLinkTitleAlready", R.string.FolderLinkTitleAlready); + return LocaleController.getString(R.string.FolderLinkTitleAlready); } else { - return LocaleController.getString("FolderLinkTitleAddChats", R.string.FolderLinkTitleAddChats); + return LocaleController.getString(R.string.FolderLinkTitleAddChats); } } @@ -972,9 +972,9 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi object = user; name = UserObject.getUserName(user); if (user != null && user.bot) { - status = LocaleController.getString("FilterInviteBot", R.string.FilterInviteBot); + status = LocaleController.getString(R.string.FilterInviteBot); } else { - status = LocaleController.getString("FilterInviteUser", R.string.FilterInviteUser); + status = LocaleController.getString(R.string.FilterInviteUser); } } else if (peer instanceof TLRPC.TL_peerChat) { did = -peer.chat_id; @@ -995,9 +995,9 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } } else { if (ChatObject.isChannelAndNotMegaGroup(chat)) { - status = LocaleController.getString("ChannelPublic", R.string.ChannelPublic); + status = LocaleController.getString(R.string.ChannelPublic); } else { - status = LocaleController.getString("MegaPublic", R.string.MegaPublic); + status = LocaleController.getString(R.string.MegaPublic); } } } @@ -1008,7 +1008,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } else if (viewType == VIEW_TYPE_HEADER) { HeaderCell headerCell = (HeaderCell) holder.itemView; if (position == alreadyHeaderRow) { - headerCell.setText(LocaleController.getString("FolderLinkHeaderAlready", R.string.FolderLinkHeaderAlready), false); + headerCell.setText(LocaleController.getString(R.string.FolderLinkHeaderAlready), false); headerCell.setAction("", null); } else { FolderBottomSheet.this.headerCell = headerCell; @@ -1023,9 +1023,9 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } else { hintCell.setFixedSize(0); if (deleting) { - hintCell.setText(LocaleController.getString("FolderLinkHintRemove", R.string.FolderLinkHintRemove)); + hintCell.setText(LocaleController.getString(R.string.FolderLinkHintRemove)); } else { - hintCell.setText(LocaleController.getString("FolderLinkHint", R.string.FolderLinkHint)); + hintCell.setText(LocaleController.getString(R.string.FolderLinkHint)); } } } else if (viewType == VIEW_TYPE_TITLE) { @@ -1057,7 +1057,7 @@ private String getFilterName(MessagesController.DialogFilter filter) { if (filter == null) return null; if (filter.isDefault()) - return LocaleController.getString("FilterAllChats", R.string.FilterAllChats); + return LocaleController.getString(R.string.FilterAllChats); return filter.name; } @@ -1289,7 +1289,7 @@ public FoldersPreview( private StaticLayout makeLayout(CharSequence text, boolean selected) { if (text == null || "ALL_CHATS".equals(text.toString())) { - text = LocaleController.getString("FilterAllChats", R.string.FilterAllChats); + text = LocaleController.getString(R.string.FilterAllChats); } return new StaticLayout(text, selected ? selectedTextPaint : paint, AndroidUtilities.displaySize.x, Layout.Alignment.ALIGN_NORMAL, 1f, 0, false); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/FragmentContextView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/FragmentContextView.java index 1cf125314f..1c85372e6c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/FragmentContextView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FragmentContextView.java @@ -464,7 +464,7 @@ private void updateJoinButtonWidth(int width) { } } }; - joinButton.setText(LocaleController.getString("VoipChatJoin", R.string.VoipChatJoin)); + joinButton.setText(LocaleController.getString(R.string.VoipChatJoin)); joinButton.setTextColor(getThemedColor(Theme.key_featuredStickers_buttonText)); joinButton.setBackground(Theme.createSimpleSelectorRoundRectDrawable(AndroidUtilities.dp(16), getThemedColor(Theme.key_featuredStickers_addButton), getThemedColor(Theme.key_featuredStickers_addButtonPressed))); joinButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); @@ -485,7 +485,7 @@ private void updateJoinButtonWidth(int width) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { silentButton.setBackground(Theme.createSelectorDrawable(getThemedColor(Theme.key_inappPlayerClose) & 0x19ffffff, 1, AndroidUtilities.dp(14))); } - silentButton.setContentDescription(LocaleController.getString("Unmute", R.string.Unmute)); + silentButton.setContentDescription(LocaleController.getString(R.string.Unmute)); silentButton.setOnClickListener(e -> { MediaController.getInstance().updateSilent(false); }); @@ -594,7 +594,7 @@ public boolean onTouchEvent(MotionEvent event) { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); info.setClassName(Button.class.getName()); - info.setText(isMuted ? LocaleController.getString("VoipUnmute", R.string.VoipUnmute) : LocaleController.getString("VoipMute", R.string.VoipMute)); + info.setText(isMuted ? LocaleController.getString(R.string.VoipUnmute) : LocaleController.getString(R.string.VoipMute)); } }; muteButton.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_returnToCallText), PorterDuff.Mode.MULTIPLY)); @@ -647,9 +647,9 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { closeButton.setOnClickListener(v -> { if (currentStyle == STYLE_LIVE_LOCATION) { AlertDialog.Builder builder = new AlertDialog.Builder(fragment.getParentActivity(), resourcesProvider); - builder.setTitle(LocaleController.getString("StopLiveLocationAlertToTitle", R.string.StopLiveLocationAlertToTitle)); + builder.setTitle(LocaleController.getString(R.string.StopLiveLocationAlertToTitle)); if (fragment instanceof DialogsActivity) { - builder.setMessage(LocaleController.getString("StopLiveLocationAlertAllText", R.string.StopLiveLocationAlertAllText)); + builder.setMessage(LocaleController.getString(R.string.StopLiveLocationAlertAllText)); } else { TLRPC.Chat chat = chatActivity.getCurrentChat(); TLRPC.User user = chatActivity.getCurrentUser(); @@ -658,10 +658,10 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { } else if (user != null) { builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("StopLiveLocationAlertToUserText", R.string.StopLiveLocationAlertToUserText, UserObject.getFirstName(user)))); } else { - builder.setMessage(LocaleController.getString("AreYouSure", R.string.AreYouSure)); + builder.setMessage(LocaleController.getString(R.string.AreYouSure)); } } - builder.setPositiveButton(LocaleController.getString("Stop", R.string.Stop), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Stop), (dialogInterface, i) -> { if (fragment instanceof DialogsActivity) { for (int a : SharedConfig.activeAccounts) { LocationController.getInstance(a).removeAllLocationSharings(); @@ -670,7 +670,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { LocationController.getInstance(fragment.getCurrentAccount()).removeSharingLocation(chatActivity.getDialogId()); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); builder.show(); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -775,7 +775,7 @@ private void createPlaybackSpeedButton() { playbackSpeedButton.setVisibility(GONE); playbackSpeedButton.setTag(null); playbackSpeedButton.setShowSubmenuByMove(false); - playbackSpeedButton.setContentDescription(LocaleController.getString("AccDescrPlayerSpeed", R.string.AccDescrPlayerSpeed)); + playbackSpeedButton.setContentDescription(LocaleController.getString(R.string.AccDescrPlayerSpeed)); playbackSpeedButton.setDelegate(id -> { if (id < 0 || id >= speeds.length) { return; @@ -795,12 +795,12 @@ private void createPlaybackSpeedButton() { slidingSpeed = !isFinal; MediaController.getInstance().setPlaybackSpeed(isMusic, speedSlider.getSpeed(value)); }); - speedItems[0] = playbackSpeedButton.lazilyAddSubItem(0, R.drawable.msg_speed_slow, LocaleController.getString("SpeedSlow", R.string.SpeedSlow)); - speedItems[1] = playbackSpeedButton.lazilyAddSubItem(1, R.drawable.msg_speed_normal, LocaleController.getString("SpeedNormal", R.string.SpeedNormal)); - speedItems[2] = playbackSpeedButton.lazilyAddSubItem(2, R.drawable.msg_speed_medium, LocaleController.getString("SpeedMedium", R.string.SpeedMedium)); - speedItems[3] = playbackSpeedButton.lazilyAddSubItem(3, R.drawable.msg_speed_fast, LocaleController.getString("SpeedFast", R.string.SpeedFast)); - speedItems[4] = playbackSpeedButton.lazilyAddSubItem(4, R.drawable.msg_speed_veryfast, LocaleController.getString("SpeedVeryFast", R.string.SpeedVeryFast)); - speedItems[5] = playbackSpeedButton.lazilyAddSubItem(5, R.drawable.msg_speed_superfast, LocaleController.getString("SpeedSuperFast", R.string.SpeedSuperFast)); + speedItems[0] = playbackSpeedButton.lazilyAddSubItem(0, R.drawable.msg_speed_slow, LocaleController.getString(R.string.SpeedSlow)); + speedItems[1] = playbackSpeedButton.lazilyAddSubItem(1, R.drawable.msg_speed_normal, LocaleController.getString(R.string.SpeedNormal)); + speedItems[2] = playbackSpeedButton.lazilyAddSubItem(2, R.drawable.msg_speed_medium, LocaleController.getString(R.string.SpeedMedium)); + speedItems[3] = playbackSpeedButton.lazilyAddSubItem(3, R.drawable.msg_speed_fast, LocaleController.getString(R.string.SpeedFast)); + speedItems[4] = playbackSpeedButton.lazilyAddSubItem(4, R.drawable.msg_speed_veryfast, LocaleController.getString(R.string.SpeedVeryFast)); + speedItems[5] = playbackSpeedButton.lazilyAddSubItem(5, R.drawable.msg_speed_superfast, LocaleController.getString(R.string.SpeedSuperFast)); if (AndroidUtilities.density >= 3.0f) { playbackSpeedButton.setPadding(0, 1, 0, 0); } @@ -1010,7 +1010,7 @@ private void playbackSpeedChanged(boolean byTap, float oldValue, float newValue) if (oldValue < newValue) { return; } - text = LocaleController.getString("AudioSpeedNormal", R.string.AudioSpeedNormal); + text = LocaleController.getString(R.string.AudioSpeedNormal); if (Math.abs(oldValue - 2f) < 0.05f) { resId = R.raw.speed_2to1; } else if (newValue < oldValue) { @@ -1022,7 +1022,7 @@ private void playbackSpeedChanged(boolean byTap, float oldValue, float newValue) text = LocaleController.formatString("AudioSpeedCustom", R.string.AudioSpeedCustom, SpeedIconDrawable.formatNumber(newValue)); resId = R.raw.speed_1to15; } else if (byTap && equals(newValue, 2f) && equals(oldValue, 1.5f)) { - text = LocaleController.getString("AudioSpeedFast", R.string.AudioSpeedFast); + text = LocaleController.getString(R.string.AudioSpeedFast); resId = R.raw.speed_15to2; } else { text = LocaleController.formatString("AudioSpeedCustom", R.string.AudioSpeedCustom, SpeedIconDrawable.formatNumber(newValue)); @@ -1095,7 +1095,7 @@ private void updateStyle(@Style int style) { avatars.setVisibility(GONE); importingImageView.setVisibility(VISIBLE); importingImageView.playAnimation(); - closeButton.setContentDescription(LocaleController.getString("AccDescrClosePlayer", R.string.AccDescrClosePlayer)); + closeButton.setContentDescription(LocaleController.getString(R.string.AccDescrClosePlayer)); if (playbackSpeedButton != null) { playbackSpeedButton.setVisibility(GONE); playbackSpeedButton.setTag(null); @@ -1133,11 +1133,11 @@ private void updateStyle(@Style int style) { playbackSpeedButton.setVisibility(VISIBLE); playbackSpeedButton.setTag(1); } - closeButton.setContentDescription(LocaleController.getString("AccDescrClosePlayer", R.string.AccDescrClosePlayer)); + closeButton.setContentDescription(LocaleController.getString(R.string.AccDescrClosePlayer)); } else { playButton.setLayoutParams(LayoutHelper.createFrame(36, 36, Gravity.TOP | Gravity.LEFT, 8, 0, 0, 0)); titleTextView.setLayoutParams(LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 36, Gravity.LEFT | Gravity.TOP, 35 + 16, 0, 36, 0)); - closeButton.setContentDescription(LocaleController.getString("AccDescrStopLiveLocation", R.string.AccDescrStopLiveLocation)); + closeButton.setContentDescription(LocaleController.getString(R.string.AccDescrStopLiveLocation)); } } else if (style == STYLE_INACTIVE_GROUP_CALL) { selector.setBackground(Theme.getSelectorDrawable(false)); @@ -1522,7 +1522,7 @@ public void onAnimationEnd(Animator animation) { } if (fragment instanceof DialogsActivity) { - String liveLocation = LocaleController.getString("LiveLocationContext", R.string.LiveLocationContext); + String liveLocation = LocaleController.getString(R.string.LiveLocationContext); String param; String str; ArrayList infos = new ArrayList<>(); @@ -1535,7 +1535,7 @@ public void onAnimationEnd(Animator animation) { if (DialogObject.isUserDialog(dialogId)) { TLRPC.User user = MessagesController.getInstance(info.messageObject.currentAccount).getUser(dialogId); param = UserObject.getFirstName(user); - str = LocaleController.getString("AttachLiveLocationIsSharing", R.string.AttachLiveLocationIsSharing); + str = LocaleController.getString(R.string.AttachLiveLocationIsSharing); } else { TLRPC.Chat chat = MessagesController.getInstance(info.messageObject.currentAccount).getChat(-dialogId); if (chat != null) { @@ -1543,11 +1543,11 @@ public void onAnimationEnd(Animator animation) { } else { param = ""; } - str = LocaleController.getString("AttachLiveLocationIsSharingChat", R.string.AttachLiveLocationIsSharingChat); + str = LocaleController.getString(R.string.AttachLiveLocationIsSharingChat); } } else { param = LocaleController.formatPluralString("Chats", infos.size()); - str = LocaleController.getString("AttachLiveLocationIsSharingChats", R.string.AttachLiveLocationIsSharingChats); + str = LocaleController.getString(R.string.AttachLiveLocationIsSharingChats); } String fullString = String.format(str, liveLocation, param); int start = fullString.indexOf(liveLocation); @@ -1607,7 +1607,7 @@ private void checkLocationString() { } lastLocationSharingCount = locationSharingCount; - String liveLocation = LocaleController.getString("LiveLocationContext", R.string.LiveLocationContext); + String liveLocation = LocaleController.getString(R.string.LiveLocationContext); String fullString; if (locationSharingCount == 0) { fullString = liveLocation; @@ -1618,10 +1618,10 @@ private void checkLocationString() { if (otherSharingCount == 1 && notYouUser != null) { fullString = String.format("%1$s - %2$s", liveLocation, LocaleController.formatString("SharingYouAndOtherName", R.string.SharingYouAndOtherName, UserObject.getFirstName(notYouUser))); } else { - fullString = String.format("%1$s - %2$s %3$s", liveLocation, LocaleController.getString("ChatYourSelfName", R.string.ChatYourSelfName), LocaleController.formatPluralString("AndOther", otherSharingCount)); + fullString = String.format("%1$s - %2$s %3$s", liveLocation, LocaleController.getString(R.string.ChatYourSelfName), LocaleController.formatPluralString("AndOther", otherSharingCount)); } } else { - fullString = String.format("%1$s - %2$s", liveLocation, LocaleController.getString("ChatYourSelfName", R.string.ChatYourSelfName)); + fullString = String.format("%1$s - %2$s", liveLocation, LocaleController.getString(R.string.ChatYourSelfName)); } } else { if (otherSharingCount != 0) { @@ -1787,10 +1787,10 @@ public void onAnimationEnd(Animator animation) { } if (MediaController.getInstance().isMessagePaused()) { playPauseDrawable.setPause(false, !create); - playButton.setContentDescription(LocaleController.getString("AccActionPlay", R.string.AccActionPlay)); + playButton.setContentDescription(LocaleController.getString(R.string.AccActionPlay)); } else { playPauseDrawable.setPause(true, !create); - playButton.setContentDescription(LocaleController.getString("AccActionPause", R.string.AccActionPause)); + playButton.setContentDescription(LocaleController.getString(R.string.AccActionPause)); } if (lastMessageObject != messageObject || prevStyle != STYLE_AUDIO_PLAYER) { lastMessageObject = messageObject; @@ -2057,7 +2057,7 @@ public void onAnimationEnd(Animator animation) { } if (create && chatActivity != null && chatActivity.openedWithLivestream() && !GroupCallPip.isShowing()) { - BulletinFactory.of(fragment).createSimpleBulletin(R.raw.linkbroken, LocaleController.getString("InviteExpired", R.string.InviteExpired)).show(); + BulletinFactory.of(fragment).createSimpleBulletin(R.raw.linkbroken, LocaleController.getString(R.string.InviteExpired)).show(); } } else { checkCreateView(); @@ -2121,9 +2121,9 @@ public void onAnimationEnd(Animator animation) { titleTextView.setText(call.call.title, false); } else { if (ChatObject.isChannelOrGiga(chat)) { - titleTextView.setText(LocaleController.getString("VoipChannelScheduledVoiceChat", R.string.VoipChannelScheduledVoiceChat), false); + titleTextView.setText(LocaleController.getString(R.string.VoipChannelScheduledVoiceChat), false); } else { - titleTextView.setText(LocaleController.getString("VoipGroupScheduledVoiceChat", R.string.VoipGroupScheduledVoiceChat), false); + titleTextView.setText(LocaleController.getString(R.string.VoipGroupScheduledVoiceChat), false); } } subtitleTextView.setText(LocaleController.formatStartsTime(call.call.schedule_date, 4), false); @@ -2139,9 +2139,9 @@ public void onAnimationEnd(Animator animation) { } else if (call.call.rtmp_stream) { titleTextView.setText(LocaleController.getString(R.string.VoipChannelVoiceChat), false); } else if (ChatObject.isChannelOrGiga(chat)) { - titleTextView.setText(LocaleController.getString("VoipChannelVoiceChat", R.string.VoipChannelVoiceChat), false); + titleTextView.setText(LocaleController.getString(R.string.VoipChannelVoiceChat), false); } else { - titleTextView.setText(LocaleController.getString("VoipGroupVoiceChat", R.string.VoipGroupVoiceChat), false); + titleTextView.setText(LocaleController.getString(R.string.VoipGroupVoiceChat), false); } if (call.call.participants_count == 0) { subtitleTextView.setText(LocaleController.getString(call.call.rtmp_stream ? R.string.ViewersWatchingNobody : R.string.MembersTalkingNobody), false); @@ -2408,7 +2408,7 @@ private void updateCallTitle() { if (service != null && (currentStyle == STYLE_CONNECTING_GROUP_CALL || currentStyle == STYLE_ACTIVE_GROUP_CALL)) { int currentCallState = service.getCallState(); if (!service.isSwitchingStream() && (currentCallState == VoIPService.STATE_WAIT_INIT || currentCallState == VoIPService.STATE_WAIT_INIT_ACK || currentCallState == VoIPService.STATE_CREATING || currentCallState == VoIPService.STATE_RECONNECTING)) { - titleTextView.setText(LocaleController.getString("VoipGroupConnecting", R.string.VoipGroupConnecting), false); + titleTextView.setText(LocaleController.getString(R.string.VoipGroupConnecting), false); } else if (service.getChat() != null) { if (!TextUtils.isEmpty(service.groupCall.call.title)) { titleTextView.setText(service.groupCall.call.title, false); @@ -2419,9 +2419,9 @@ private void updateCallTitle() { titleTextView.setText(LocaleController.getString(R.string.VoipChannelViewVoiceChat), false); } else { if (ChatObject.isChannelOrGiga(chat)) { - titleTextView.setText(LocaleController.getString("VoipChannelViewVoiceChat", R.string.VoipChannelViewVoiceChat), false); + titleTextView.setText(LocaleController.getString(R.string.VoipChannelViewVoiceChat), false); } else { - titleTextView.setText(LocaleController.getString("VoipGroupViewVoiceChat", R.string.VoipGroupViewVoiceChat), false); + titleTextView.setText(LocaleController.getString(R.string.VoipGroupViewVoiceChat), false); } } } else { @@ -2431,7 +2431,7 @@ private void updateCallTitle() { } else if (service.getUser() != null) { TLRPC.User user = service.getUser(); if (chatActivity != null && chatActivity.getCurrentUser() != null && chatActivity.getCurrentUser().id == user.id) { - titleTextView.setText(LocaleController.getString("ReturnToCall", R.string.ReturnToCall)); + titleTextView.setText(LocaleController.getString(R.string.ReturnToCall)); } else { titleTextView.setText(ContactsController.formatName(user.first_name, user.last_name)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/GigagroupConvertAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/GigagroupConvertAlert.java index e87a53ed6b..d444fa453d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/GigagroupConvertAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/GigagroupConvertAlert.java @@ -84,7 +84,7 @@ public GigagroupConvertAlert(final Context context, BaseFragment parentFragment) percentTextView.setTypeface(AndroidUtilities.bold()); percentTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 24); percentTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); - percentTextView.setText(LocaleController.getString("GigagroupConvertTitle", R.string.GigagroupConvertTitle)); + percentTextView.setText(LocaleController.getString(R.string.GigagroupConvertTitle)); linearLayout.addView(percentTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 17, 18, 17, 0)); LinearLayout container = new LinearLayout(context); @@ -108,13 +108,13 @@ public GigagroupConvertAlert(final Context context, BaseFragment parentFragment) switch (a) { case 0: - textView.setText(LocaleController.getString("GigagroupConvertInfo1", R.string.GigagroupConvertInfo1)); + textView.setText(LocaleController.getString(R.string.GigagroupConvertInfo1)); break; case 1: - textView.setText(LocaleController.getString("GigagroupConvertInfo2", R.string.GigagroupConvertInfo2)); + textView.setText(LocaleController.getString(R.string.GigagroupConvertInfo2)); break; case 2: - textView.setText(LocaleController.getString("GigagroupConvertInfo3", R.string.GigagroupConvertInfo3)); + textView.setText(LocaleController.getString(R.string.GigagroupConvertInfo3)); break; } @@ -129,14 +129,14 @@ public GigagroupConvertAlert(final Context context, BaseFragment parentFragment) BottomSheetCell clearButton = new BottomSheetCell(context); clearButton.setBackground(null); - clearButton.setText(LocaleController.getString("GigagroupConvertProcessButton", R.string.GigagroupConvertProcessButton)); + clearButton.setText(LocaleController.getString(R.string.GigagroupConvertProcessButton)); clearButton.background.setOnClickListener(v -> { dismiss(); AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(LocaleController.getString("GigagroupConvertAlertTitle", R.string.GigagroupConvertAlertTitle)); - builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString("GigagroupConvertAlertText", R.string.GigagroupConvertAlertText))); - builder.setPositiveButton(LocaleController.getString("GigagroupConvertAlertConver", R.string.GigagroupConvertAlertConver), (dialogInterface, i) -> onCovert()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.GigagroupConvertAlertTitle)); + builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString(R.string.GigagroupConvertAlertText))); + builder.setPositiveButton(LocaleController.getString(R.string.GigagroupConvertAlertConver), (dialogInterface, i) -> onCovert()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); parentFragment.showDialog(builder.create()); }); linearLayout.addView(clearButton, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 50, Gravity.LEFT | Gravity.TOP, 0, 29, 0, 0)); @@ -144,7 +144,7 @@ public GigagroupConvertAlert(final Context context, BaseFragment parentFragment) TextView cancelTextView = new TextView(context); cancelTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); cancelTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlue2)); - cancelTextView.setText(LocaleController.getString("GigagroupConvertCancelButton", R.string.GigagroupConvertCancelButton)); + cancelTextView.setText(LocaleController.getString(R.string.GigagroupConvertCancelButton)); cancelTextView.setGravity(Gravity.CENTER); linearLayout.addView(cancelTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, 48, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 17, 0, 17, 16)); cancelTextView.setOnClickListener(v -> { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCallPipAlertView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCallPipAlertView.java index 5cbcef3fb3..4193f013de 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCallPipAlertView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCallPipAlertView.java @@ -80,9 +80,9 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { VoIPService service = VoIPService.getSharedInstance(); if (service != null && ChatObject.isChannelOrGiga(service.getChat())) { - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, LocaleController.getString("VoipChannelOpenVoiceChat", R.string.VoipChannelOpenVoiceChat))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, LocaleController.getString(R.string.VoipChannelOpenVoiceChat))); } else { - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, LocaleController.getString("VoipGroupOpenVoiceChat", R.string.VoipGroupOpenVoiceChat))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, LocaleController.getString(R.string.VoipGroupOpenVoiceChat))); } } } @@ -152,7 +152,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { leaveButton = new VoIPToggleButton(context, 44f); leaveButton.setTextSize(12); - leaveButton.setData(R.drawable.calls_decline, 0xffffffff, 0xFFCE4A4A, 0.3f, false, LocaleController.getString("VoipGroupLeave", R.string.VoipGroupLeave), false, false); + leaveButton.setData(R.drawable.calls_decline, 0xffffffff, 0xFFCE4A4A, 0.3f, false, LocaleController.getString(R.string.VoipGroupLeave), false, false); leaveButton.setOnClickListener(v -> GroupCallActivity.onLeaveClick(getContext(), () -> GroupCallPip.updateVisibility(context), Build.VERSION.SDK_INT < 23 || Settings.canDrawOverlays(context))); VoIPButtonsLayout buttonsContainer = new VoIPButtonsLayout(context); @@ -349,21 +349,21 @@ private void updateButtons(boolean animated) { soundButton.setChecked(checked, animated); if (bluetooth) { - soundButton.setData(R.drawable.calls_bluetooth, Color.WHITE, 0, 0.1f, true, LocaleController.getString("VoipAudioRoutingBluetooth", R.string.VoipAudioRoutingBluetooth), false, animated); + soundButton.setData(R.drawable.calls_bluetooth, Color.WHITE, 0, 0.1f, true, LocaleController.getString(R.string.VoipAudioRoutingBluetooth), false, animated); } else if (checked) { - soundButton.setData(R.drawable.calls_speaker, Color.WHITE, 0, 0.3f, true, LocaleController.getString("VoipSpeaker", R.string.VoipSpeaker), false, animated); + soundButton.setData(R.drawable.calls_speaker, Color.WHITE, 0, 0.3f, true, LocaleController.getString(R.string.VoipSpeaker), false, animated); } else { if (service.isHeadsetPlugged()) { - soundButton.setData(R.drawable.calls_headphones, Color.WHITE, 0, 0.1f, true, LocaleController.getString("VoipAudioRoutingHeadset", R.string.VoipAudioRoutingHeadset), false, animated); + soundButton.setData(R.drawable.calls_headphones, Color.WHITE, 0, 0.1f, true, LocaleController.getString(R.string.VoipAudioRoutingHeadset), false, animated); } else { - soundButton.setData(R.drawable.calls_speaker, Color.WHITE, 0, 0.1f, true, LocaleController.getString("VoipSpeaker", R.string.VoipSpeaker), false, animated); + soundButton.setData(R.drawable.calls_speaker, Color.WHITE, 0, 0.1f, true, LocaleController.getString(R.string.VoipSpeaker), false, animated); } } if (service.mutedByAdmin()) { - muteButton.setData(R.drawable.calls_unmute, Color.WHITE, ColorUtils.setAlphaComponent(Color.WHITE, (int) (255 * 0.3f)), 0.1f, true, LocaleController.getString("VoipMutedByAdminShort", R.string.VoipMutedByAdminShort), true, animated); + muteButton.setData(R.drawable.calls_unmute, Color.WHITE, ColorUtils.setAlphaComponent(Color.WHITE, (int) (255 * 0.3f)), 0.1f, true, LocaleController.getString(R.string.VoipMutedByAdminShort), true, animated); } else { - muteButton.setData(R.drawable.calls_unmute, Color.WHITE, ColorUtils.setAlphaComponent(Color.WHITE, (int) (255 * (service.isMicMute() ? 0.3f : 0.15f))), 0.1f, true, service.isMicMute() ? LocaleController.getString("VoipUnmute", R.string.VoipUnmute) : LocaleController.getString("VoipMute", R.string.VoipMute), service.isMicMute(), animated); + muteButton.setData(R.drawable.calls_unmute, Color.WHITE, ColorUtils.setAlphaComponent(Color.WHITE, (int) (255 * (service.isMicMute() ? 0.3f : 0.15f))), 0.1f, true, service.isMicMute() ? LocaleController.getString(R.string.VoipUnmute) : LocaleController.getString(R.string.VoipMute), service.isMicMute(), animated); } invalidate(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCallPipButton.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCallPipButton.java index c7ee4d0e6d..9f34667fa3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCallPipButton.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCallPipButton.java @@ -410,16 +410,16 @@ public void setState(int state) { String contentDescription; VoIPService voIPService = VoIPService.getSharedInstance(); if (voIPService != null && ChatObject.isChannelOrGiga(voIPService.getChat())) { - contentDescription = LocaleController.getString("VoipChannelVoiceChat", R.string.VoipChannelVoiceChat); + contentDescription = LocaleController.getString(R.string.VoipChannelVoiceChat); } else { - contentDescription = LocaleController.getString("VoipGroupVoiceChat", R.string.VoipGroupVoiceChat); + contentDescription = LocaleController.getString(R.string.VoipGroupVoiceChat); } if (state == MUTE_BUTTON_STATE_UNMUTE) { - contentDescription += ", " + LocaleController.getString("VoipTapToMute", R.string.VoipTapToMute); + contentDescription += ", " + LocaleController.getString(R.string.VoipTapToMute); } else if (state == MUTE_BUTTON_STATE_RECONNECT) { - contentDescription += ", " + LocaleController.getString("Connecting", R.string.Connecting); + contentDescription += ", " + LocaleController.getString(R.string.Connecting); } else if (state == MUTE_BUTTON_STATE_MUTED_BY_ADMIN) { - contentDescription += ", " + LocaleController.getString("VoipMutedByAdmin", R.string.VoipMutedByAdmin); + contentDescription += ", " + LocaleController.getString(R.string.VoipMutedByAdmin); } setContentDescription(contentDescription); invalidate(); @@ -429,7 +429,7 @@ public void setState(int state) { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && GroupCallPip.getInstance() != null) { - final String label = GroupCallPip.getInstance().showAlert ? LocaleController.getString("AccDescrCloseMenu", R.string.AccDescrCloseMenu) : LocaleController.getString("AccDescrOpenMenu2", R.string.AccDescrOpenMenu2); + final String label = GroupCallPip.getInstance().showAlert ? LocaleController.getString(R.string.AccDescrCloseMenu) : LocaleController.getString(R.string.AccDescrOpenMenu2); info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, label)); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCallRecordAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCallRecordAlert.java index 140cd48888..d878cfba72 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCallRecordAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCallRecordAlert.java @@ -93,9 +93,9 @@ public void requestLayout() { TextView titleTextView = new TextView(getContext()); if (ChatObject.isChannelOrGiga(chat)) { - titleTextView.setText(LocaleController.getString("VoipChannelRecordVoiceChat", R.string.VoipChannelRecordVoiceChat)); + titleTextView.setText(LocaleController.getString(R.string.VoipChannelRecordVoiceChat)); } else { - titleTextView.setText(LocaleController.getString("VoipRecordVoiceChat", R.string.VoipRecordVoiceChat)); + titleTextView.setText(LocaleController.getString(R.string.VoipRecordVoiceChat)); } titleTextView.setTextColor(0xffffffff); titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); @@ -104,7 +104,7 @@ public void requestLayout() { containerView.addView(titleTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 24, 29, 24, 0)); TextView infoTextView = new TextView(getContext()); - infoTextView.setText(LocaleController.getString("VoipRecordVoiceChatInfo", R.string.VoipRecordVoiceChatInfo)); + infoTextView.setText(LocaleController.getString(R.string.VoipRecordVoiceChatInfo)); infoTextView.setTextColor(0xffffffff); infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); infoTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); @@ -206,7 +206,7 @@ protected void onDraw(Canvas canvas) { positiveButton.setTextColor(Theme.getColor(Theme.key_voipgroup_nameText)); positiveButton.setGravity(Gravity.CENTER); positiveButton.setTypeface(AndroidUtilities.bold()); - positiveButton.setText(LocaleController.getString("VoipRecordStart", R.string.VoipRecordStart)); + positiveButton.setText(LocaleController.getString(R.string.VoipRecordStart)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { positiveButton.setForeground(Theme.createSimpleSelectorRoundRectDrawable(AndroidUtilities.dp(6), Color.TRANSPARENT, ColorUtils.setAlphaComponent(Theme.getColor(Theme.key_voipgroup_nameText), (int) (255 * 0.3f)))); } @@ -231,11 +231,11 @@ protected void onDraw(Canvas canvas) { titles[a].setSingleLine(true); titlesLayout.addView(titles[a], LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT)); if (a == 0) { - titles[a].setText(LocaleController.getString("VoipRecordAudio", R.string.VoipRecordAudio)); + titles[a].setText(LocaleController.getString(R.string.VoipRecordAudio)); } else if (a == 1) { - titles[a].setText(LocaleController.getString("VoipRecordPortrait", R.string.VoipRecordPortrait)); + titles[a].setText(LocaleController.getString(R.string.VoipRecordPortrait)); } else { - titles[a].setText(LocaleController.getString("VoipRecordLandscape", R.string.VoipRecordLandscape)); + titles[a].setText(LocaleController.getString(R.string.VoipRecordLandscape)); } int num = a; titles[a].setOnClickListener(view -> viewPager.setCurrentItem(num, true)); @@ -309,11 +309,11 @@ public void onInitializeAccessibilityEvent(AccessibilityEvent event) { imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setLayoutParams(new ViewGroup.LayoutParams(AndroidUtilities.dp(200), ViewGroup.LayoutParams.MATCH_PARENT)); if (position == 0) { - imageView.setContentDescription(LocaleController.getString("VoipRecordAudio", R.string.VoipRecordAudio)); + imageView.setContentDescription(LocaleController.getString(R.string.VoipRecordAudio)); } else if (position == 1) { - imageView.setContentDescription(LocaleController.getString("VoipRecordPortrait", R.string.VoipRecordPortrait)); + imageView.setContentDescription(LocaleController.getString(R.string.VoipRecordPortrait)); } else { - imageView.setContentDescription(LocaleController.getString("VoipRecordLandscape", R.string.VoipRecordLandscape)); + imageView.setContentDescription(LocaleController.getString(R.string.VoipRecordLandscape)); } view = imageView; int res; @@ -324,7 +324,7 @@ public void onInitializeAccessibilityEvent(AccessibilityEvent event) { } else { res = R.raw.record_video_l; } - String svg = RLottieDrawable.readRes(null, res); + String svg = AndroidUtilities.readRes(res); SvgHelper.SvgDrawable drawable = SvgHelper.getDrawable(svg); drawable.setAspectFill(false); imageView.setImageDrawable(drawable); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCreateSpan.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCreateSpan.java index 78941bff6d..08e2bef5b8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCreateSpan.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupCreateSpan.java @@ -104,37 +104,37 @@ public GroupCreateSpan(Context context, Object object, ContactsController.Contac case "contacts": avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_FILTER_CONTACTS); uid = Long.MIN_VALUE; - firstName = LocaleController.getString("FilterContacts", R.string.FilterContacts); + firstName = LocaleController.getString(R.string.FilterContacts); break; case "non_contacts": avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_FILTER_NON_CONTACTS); uid = Long.MIN_VALUE + 1; - firstName = LocaleController.getString("FilterNonContacts", R.string.FilterNonContacts); + firstName = LocaleController.getString(R.string.FilterNonContacts); break; case "groups": avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_FILTER_GROUPS); uid = Long.MIN_VALUE + 2; - firstName = LocaleController.getString("FilterGroups", R.string.FilterGroups); + firstName = LocaleController.getString(R.string.FilterGroups); break; case "channels": avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_FILTER_CHANNELS); uid = Long.MIN_VALUE + 3; - firstName = LocaleController.getString("FilterChannels", R.string.FilterChannels); + firstName = LocaleController.getString(R.string.FilterChannels); break; case "bots": avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_FILTER_BOTS); uid = Long.MIN_VALUE + 4; - firstName = LocaleController.getString("FilterBots", R.string.FilterBots); + firstName = LocaleController.getString(R.string.FilterBots); break; case "muted": avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_FILTER_MUTED); uid = Long.MIN_VALUE + 5; - firstName = LocaleController.getString("FilterMuted", R.string.FilterMuted); + firstName = LocaleController.getString(R.string.FilterMuted); break; case "read": avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_FILTER_READ); uid = Long.MIN_VALUE + 6; - firstName = LocaleController.getString("FilterRead", R.string.FilterRead); + firstName = LocaleController.getString(R.string.FilterRead); break; case "existing_chats": avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_EXISTING_CHATS); @@ -155,20 +155,20 @@ public GroupCreateSpan(Context context, Object object, ContactsController.Contac default: avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_FILTER_ARCHIVED); uid = Long.MIN_VALUE + 7; - firstName = LocaleController.getString("FilterArchived", R.string.FilterArchived); + firstName = LocaleController.getString(R.string.FilterArchived); break; } } else if (object instanceof TLRPC.User) { TLRPC.User user = (TLRPC.User) object; uid = user.id; if (UserObject.isReplyUser(user)) { - firstName = LocaleController.getString("RepliesTitle", R.string.RepliesTitle); + firstName = LocaleController.getString(R.string.RepliesTitle); avatarDrawable.setScaleSize(.8f); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_REPLIES); imageLocation = null; imageParent = null; } else if (UserObject.isUserSelf(user)) { - firstName = LocaleController.getString("SavedMessages", R.string.SavedMessages); + firstName = LocaleController.getString(R.string.SavedMessages); avatarDrawable.setScaleSize(.8f); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_SAVED); imageLocation = null; @@ -356,6 +356,6 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); info.setText(nameLayout.getText()); if (isDeleting() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_CLICK.getId(), LocaleController.getString("Delete", R.string.Delete))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_CLICK.getId(), LocaleController.getString(R.string.Delete))); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupVoipInviteAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupVoipInviteAlert.java index 8425b6cb89..0f4a37f9d1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupVoipInviteAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/GroupVoipInviteAlert.java @@ -757,9 +757,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 1: { GraySectionCell sectionCell = (GraySectionCell) holder.itemView; if (position == groupStartRow) { - sectionCell.setText(LocaleController.getString("ChannelMembers", R.string.ChannelMembers)); + sectionCell.setText(LocaleController.getString(R.string.ChannelMembers)); } else if (position == globalStartRow) { - sectionCell.setText(LocaleController.getString("GlobalSearch", R.string.GlobalSearch)); + sectionCell.setText(LocaleController.getString(R.string.GlobalSearch)); } break; } @@ -894,18 +894,18 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { ManageChatTextCell actionCell = (ManageChatTextCell) holder.itemView; if (position == addNewRow) { boolean showDivider = !(loadingUsers && !firstLoaded) && membersHeaderRow == -1 && !participants.isEmpty(); - actionCell.setText(LocaleController.getString("VoipGroupCopyInviteLink", R.string.VoipGroupCopyInviteLink), null, R.drawable.msg_link, 7, showDivider); + actionCell.setText(LocaleController.getString(R.string.VoipGroupCopyInviteLink), null, R.drawable.msg_link, 7, showDivider); } break; case 2: GraySectionCell sectionCell = (GraySectionCell) holder.itemView; if (position == membersHeaderRow) { - sectionCell.setText(LocaleController.getString("ChannelOtherMembers", R.string.ChannelOtherMembers)); + sectionCell.setText(LocaleController.getString(R.string.ChannelOtherMembers)); } else if (position == contactsHeaderRow) { if (showContacts) { - sectionCell.setText(LocaleController.getString("YourContactsToInvite", R.string.YourContactsToInvite)); + sectionCell.setText(LocaleController.getString(R.string.YourContactsToInvite)); } else { - sectionCell.setText(LocaleController.getString("GroupContacts", R.string.GroupContacts)); + sectionCell.setText(LocaleController.getString(R.string.GroupContacts)); } } break; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/HashtagHistoryView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/HashtagHistoryView.java index 8e5ade4b8d..1c28d63cf5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/HashtagHistoryView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/HashtagHistoryView.java @@ -156,13 +156,13 @@ private boolean onLongClick(UItem item, View view, int position, float x, float if (item.id != 0) { String hashtag = history.get(item.id - 1); AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), resourcesProvider); - builder.setTitle(LocaleController.getString("ClearSearchSingleAlertTitle", R.string.ClearSearchSingleAlertTitle)); + builder.setTitle(LocaleController.getString(R.string.ClearSearchSingleAlertTitle)); builder.setMessage(LocaleController.formatString(R.string.ClearSearchSingleHashtagAlertText, hashtag)); - builder.setPositiveButton(LocaleController.getString("ClearSearchRemove", R.string.ClearSearchRemove), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.ClearSearchRemove), (dialogInterface, i) -> { HashtagSearchController.getInstance(currentAccount).removeHashtagFromHistory(hashtag); update(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); alertDialog.show(); return true; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/HintView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/HintView.java index d0644b5c94..d1a3737782 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/HintView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/HintView.java @@ -115,7 +115,7 @@ public HintView(Context context, int type, boolean topArrow, Theme.ResourcesProv } if (type == TYPE_NOSOUND) { - textView.setText(LocaleController.getString("AutoplayVideoInfo", R.string.AutoplayVideoInfo)); + textView.setText(LocaleController.getString(R.string.AutoplayVideoInfo)); imageView = new ImageView(context); imageView.setImageResource(R.drawable.tooltip_sound); @@ -206,17 +206,17 @@ public boolean showForMessageCell(ChatMessageCell cell, Object object, int x, in top += y; shownY = y; if (count == -1) { - textView.setText(LocaleController.getString("PollSelectOption", R.string.PollSelectOption)); + textView.setText(LocaleController.getString(R.string.PollSelectOption)); } else { if (cell.getMessageObject().isQuiz()) { if (count == 0) { - textView.setText(LocaleController.getString("NoVotesQuiz", R.string.NoVotesQuiz)); + textView.setText(LocaleController.getString(R.string.NoVotesQuiz)); } else { textView.setText(LocaleController.formatPluralString("Answer", count)); } } else { if (count == 0) { - textView.setText(LocaleController.getString("NoVotes", R.string.NoVotes)); + textView.setText(LocaleController.getString(R.string.NoVotes)); } else { textView.setText(LocaleController.formatPluralString("Vote", count)); } @@ -226,7 +226,7 @@ public boolean showForMessageCell(ChatMessageCell cell, Object object, int x, in } else { MessageObject messageObject = cell.getMessageObject(); if (overrideText == null) { - textView.setText(LocaleController.getString("HidAccount", R.string.HidAccount)); + textView.setText(LocaleController.getString(R.string.HidAccount)); } else { textView.setText(overrideText); } 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 35968e2d8a..c425036865 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ImageUpdater.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ImageUpdater.java @@ -257,7 +257,7 @@ public void openMenu(boolean hasAvatar, Runnable onDeleteAvatar, DialogInterface } else if (type == TYPE_SUGGEST_PHOTO_FOR_USER) { builder.setTitle(LocaleController.formatString("SuggestPhotoFor", R.string.SuggestPhotoFor, user.first_name), true); } else { - builder.setTitle(LocaleController.getString("ChoosePhoto", R.string.ChoosePhoto), true); + builder.setTitle(LocaleController.getString(R.string.ChoosePhoto), true); } ArrayList items = new ArrayList<>(); @@ -265,36 +265,36 @@ public void openMenu(boolean hasAvatar, Runnable onDeleteAvatar, DialogInterface ArrayList ids = new ArrayList<>(); if (hasAvatar && parentFragment instanceof ProfileActivity) { - items.add(LocaleController.getString("Open", R.string.Open)); + items.add(LocaleController.getString(R.string.Open)); icons.add(R.drawable.msg_view_file); ids.add(ID_OPEN_AVATAR); } - items.add(LocaleController.getString("UploadImage", R.string.UploadImage)); + items.add(LocaleController.getString(R.string.ChooseFromGallery)); icons.add(R.drawable.msg_photos); ids.add(ID_UPLOAD_FROM_GALLERY); - items.add(LocaleController.getString("UploadImage", R.string.UploadImage)); + items.add(LocaleController.getString(R.string.ChooseFromGallery)); icons.add(R.drawable.msg_photos); ids.add(ID_OPEN_ATTACH); - items.add(LocaleController.getString("ChooseTakePhoto", R.string.ChooseTakePhoto)); + items.add(LocaleController.getString(R.string.ChooseTakePhoto)); icons.add(R.drawable.msg_camera); ids.add(ID_TAKE_PHOTO); if (canSelectVideo) { - items.add(LocaleController.getString("ChooseRecordVideo", R.string.ChooseRecordVideo)); + items.add(LocaleController.getString(R.string.ChooseRecordVideo)); icons.add(R.drawable.msg_videocall); ids.add(ID_RECORD_VIDEO); } if (searchAvailable) { - items.add(LocaleController.getString("ChooseFromSearch", R.string.ChooseFromSearch)); + items.add(LocaleController.getString(R.string.ChooseFromSearch)); icons.add(R.drawable.msg_search); ids.add(ID_SEARCH_WEB); } if (hasAvatar) { - items.add(LocaleController.getString("DeletePhoto", R.string.DeletePhoto)); + items.add(LocaleController.getString(R.string.DeletePhoto)); icons.add(R.drawable.msg_delete); ids.add(ID_REMOVE_PHOTO); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ImportingAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ImportingAlert.java index 1938bb6676..a44ea36272 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ImportingAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ImportingAlert.java @@ -159,7 +159,7 @@ public ImportingAlert(final Context context, String shortName, ChatActivity chat cell = new BottomSheetCell(context, resourcesProvider); cell.setBackground(null); - cell.setText(LocaleController.getString("ImportDone", R.string.ImportDone)); + cell.setText(LocaleController.getString(R.string.ImportDone)); cell.setVisibility(View.INVISIBLE); cell.background.setOnClickListener(v -> dismiss()); cell.background.setPivotY(AndroidUtilities.dp(48)); @@ -180,7 +180,7 @@ public ImportingAlert(final Context context, String shortName, ChatActivity chat frameLayout.addView(infoTextView[a], LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 30, 368, 30, 44)); if (a == 0) { - infoTextView[a].setText(LocaleController.getString("ImportImportingInfo", R.string.ImportImportingInfo)); + infoTextView[a].setText(LocaleController.getString(R.string.ImportImportingInfo)); } else { infoTextView[a].setAlpha(0.0f); infoTextView[a].setTranslationY(AndroidUtilities.dp(10)); @@ -190,23 +190,23 @@ public ImportingAlert(final Context context, String shortName, ChatActivity chat } if (parentFragment != null) { - textView.setText(LocaleController.getString("ImportImportingTitle", R.string.ImportImportingTitle)); + textView.setText(LocaleController.getString(R.string.ImportImportingTitle)); SendMessagesHelper.ImportingHistory importingHistory = parentFragment.getSendMessagesHelper().getImportingHistory(parentFragment.getDialogId()); percentTextView.setText(String.format("%d%%", importingHistory.uploadProgress)); lineProgressView.setProgress(importingHistory.uploadProgress / 100.0f, false); importCountTextView[0].setText(LocaleController.formatString("ImportCount", R.string.ImportCount, AndroidUtilities.formatFileSize(importingHistory.getUploadedCount()), AndroidUtilities.formatFileSize(importingHistory.getTotalCount()))); - infoTextView[1].setText(LocaleController.getString("ImportDoneInfo", R.string.ImportDoneInfo)); - importCountTextView[1].setText(LocaleController.getString("ImportDoneTitle", R.string.ImportDoneTitle)); + infoTextView[1].setText(LocaleController.getString(R.string.ImportDoneInfo)); + importCountTextView[1].setText(LocaleController.getString(R.string.ImportDoneTitle)); parentFragment.getNotificationCenter().addObserver(this, NotificationCenter.historyImportProgressChanged); } else { - textView.setText(LocaleController.getString("ImportStickersImportingTitle", R.string.ImportStickersImportingTitle)); + textView.setText(LocaleController.getString(R.string.ImportStickersImportingTitle)); SendMessagesHelper.ImportingStickers importingStickers = SendMessagesHelper.getInstance(currentAccount).getImportingStickers(shortName); percentTextView.setText(String.format("%d%%", importingStickers.uploadProgress)); lineProgressView.setProgress(importingStickers.uploadProgress / 100.0f, false); importCountTextView[0].setText(LocaleController.formatString("ImportCount", R.string.ImportCount, AndroidUtilities.formatFileSize(importingStickers.getUploadedCount()), AndroidUtilities.formatFileSize(importingStickers.getTotalCount()))); - infoTextView[1].setText(LocaleController.getString("ImportStickersDoneInfo", R.string.ImportStickersDoneInfo)); - importCountTextView[1].setText(LocaleController.getString("ImportStickersDoneTitle", R.string.ImportStickersDoneTitle)); + infoTextView[1].setText(LocaleController.getString(R.string.ImportStickersDoneInfo)); + importCountTextView[1].setText(LocaleController.getString(R.string.ImportStickersDoneTitle)); NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.stickersImportProgressChanged); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/InstantCameraView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/InstantCameraView.java index 08ded3bb9d..a799b2a61c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/InstantCameraView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/InstantCameraView.java @@ -10,6 +10,7 @@ import static org.telegram.messenger.AndroidUtilities.dp; +import android.Manifest; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; @@ -25,7 +26,6 @@ import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; -import android.graphics.ColorSpace; import android.graphics.ImageFormat; import android.graphics.Outline; import android.graphics.Paint; @@ -34,7 +34,6 @@ import android.graphics.PorterDuffXfermode; import android.graphics.RectF; import android.graphics.SurfaceTexture; -import android.graphics.drawable.AnimatedVectorDrawable; import android.hardware.Camera; import android.media.AudioFormat; import android.media.AudioManager; @@ -54,7 +53,6 @@ import android.os.Handler; import android.os.Looper; import android.os.Message; -import android.util.Log; import android.view.Gravity; import android.view.HapticFeedbackConstants; import android.view.MotionEvent; @@ -69,7 +67,6 @@ import android.widget.ImageView; import androidx.annotation.RequiresApi; -import androidx.core.content.ContextCompat; import androidx.core.graphics.ColorUtils; import com.google.android.exoplayer2.ExoPlayer; @@ -693,13 +690,13 @@ public void togglePause() { if (cameraThread != null) { NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.recordStopped, recordingGuid, cancelled ? 4 : 2); saveLastCameraBitmap(); - cameraThread.shutdown(cancelled ? 0 : 2, cancelled ? 0 : -2, 0); + cameraThread.shutdown(cancelled ? 0 : 2, true, 0, cancelled ? 0 : -2, 0); cameraThread = null; } if (cancelled) { NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.audioRecordTooShort, recordingGuid, true, (int) recordedTime); startAnimation(false, false); - MediaController.getInstance().requestAudioFocus(false); + MediaController.getInstance().requestRecordAudioFocus(false); } else { videoEncoder.pause(); } @@ -768,8 +765,8 @@ public void showCamera(boolean fromPaused) { if (MediaController.getInstance().getPlayingMessageObject() != null) { if (MediaController.getInstance().getPlayingMessageObject().isVideo() || MediaController.getInstance().getPlayingMessageObject().isRoundVideo()) { MediaController.getInstance().cleanupPlayer(true, true); - } else { - MediaController.getInstance().pauseMessage(MediaController.getInstance().getPlayingMessageObject()); + } else if (SharedConfig.pauseMusicOnRecord) { + MediaController.getInstance().pauseByRewind(); } } @@ -847,7 +844,7 @@ public void onSurfaceTextureSizeChanged(SurfaceTexture surface, final int width, @Override public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { if (cameraThread != null) { - cameraThread.shutdown(0, 0, 0); + cameraThread.shutdown(0, true, 0, 0, 0); cameraThread = null; } if (useCamera2) { @@ -877,7 +874,7 @@ public void onSurfaceTextureUpdated(SurfaceTexture surface) { setVisibility(VISIBLE); startAnimation(true, fromPaused); - MediaController.getInstance().requestAudioFocus(true); + MediaController.getInstance().requestRecordAudioFocus(true); } public InstantViewCameraContainer getCameraContainer() { @@ -985,7 +982,7 @@ public void send(int state, boolean notify, int scheduleDate, int ttl, long effe } if (state == 4) { if (videoEncoder != null && recordedTime > 800) { - videoEncoder.stopRecording(VideoRecorder.ENCODER_SEND_SEND, new SendOptions(ttl, effectId)); + videoEncoder.stopRecording(VideoRecorder.ENCODER_SEND_SEND, new SendOptions(notify, scheduleDate, ttl, effectId)); return; } if (BuildVars.DEBUG_VERSION && !cameraFile.exists()) { @@ -1023,7 +1020,7 @@ public void send(int state, boolean notify, int scheduleDate, int ttl, long effe if (scheduleDate != 0) { startAnimation(false, false); } - MediaController.getInstance().requestAudioFocus(false); + MediaController.getInstance().requestRecordAudioFocus(false); } else { cancelled = recordedTime < 800; recording = false; @@ -1046,13 +1043,13 @@ public void send(int state, boolean notify, int scheduleDate, int ttl, long effe send = 1; } saveLastCameraBitmap(); - cameraThread.shutdown(send, ttl, effectId); + cameraThread.shutdown(send, notify, scheduleDate, ttl, effectId); cameraThread = null; } if (cancelled) { NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.audioRecordTooShort, recordingGuid, true, (int) recordedTime); startAnimation(false, false); - MediaController.getInstance().requestAudioFocus(false); + MediaController.getInstance().requestRecordAudioFocus(false); } } } @@ -1091,10 +1088,10 @@ public void cancel(boolean byGesture) { NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.recordStopped, recordingGuid, byGesture ? 0 : 6); if (cameraThread != null) { saveLastCameraBitmap(); - cameraThread.shutdown(0, 0, 0); + cameraThread.shutdown(0, true, 0, 0, 0); cameraThread = null; } else if (videoEncoder != null) { - videoEncoder.stopRecording(VideoRecorder.ENCODER_SEND_CANCEL, new SendOptions(0, 0)); + videoEncoder.stopRecording(VideoRecorder.ENCODER_SEND_CANCEL, new SendOptions(true, 0, 0, 0)); } if (cameraFile != null) { if (BuildVars.LOGS_ENABLED) { @@ -1104,7 +1101,7 @@ public void cancel(boolean byGesture) { AutoDeleteMediaTask.unlockFile(cameraFile); cameraFile = null; } - MediaController.getInstance().requestAudioFocus(false); + MediaController.getInstance().requestRecordAudioFocus(false); startAnimation(false, false); blurBehindDrawable.show(false); invalidate(); @@ -1132,7 +1129,7 @@ public void hideCamera(boolean async) { textureOverlayView.setTranslationX(0); animationTranslationY = 0; updateTranslationY(); - MediaController.getInstance().playMessage(MediaController.getInstance().getPlayingMessageObject()); + MediaController.getInstance().resumeByRewind(); if (textureView != null) { ViewGroup parent = (ViewGroup) textureView.getParent(); @@ -2015,10 +2012,10 @@ public void handleMessage(Message inputMessage) { } } - public void shutdown(int send, int ttl, long effectId) { + public void shutdown(int send, boolean notify, int scheduleDate, int ttl, long effectId) { Handler handler = getHandler(); if (handler != null) { - sendMessage(handler.obtainMessage(DO_SHUTDOWN_MESSAGE, send, 0, new SendOptions(ttl, effectId)), 0); + sendMessage(handler.obtainMessage(DO_SHUTDOWN_MESSAGE, send, 0, new SendOptions(notify, scheduleDate, ttl, effectId)), 0); } } @@ -2108,9 +2105,13 @@ public void exit() { } public static class SendOptions { + boolean notify; + int scheduleDate; int ttl; long effectId; - public SendOptions(int ttl, long effectId) { + public SendOptions(boolean notify, int scheduleDate, int ttl, long effectId) { + this.notify = notify; + this.scheduleDate = scheduleDate; this.ttl = ttl; this.effectId = effectId; } @@ -2929,7 +2930,7 @@ private void handleStopRecording(final int send, final SendOptions sendOptions) entry.ttl = sendOptions.ttl; entry.effectId = sendOptions.effectId; } - delegate.sendMedia(entry, videoEditedInfo, true, 0, false); + delegate.sendMedia(entry, videoEditedInfo, sendOptions == null || sendOptions.notify, sendOptions != null ? sendOptions.scheduleDate : 0, false); }); } } else { @@ -3080,7 +3081,7 @@ private void handleStopRecording(final int send, final SendOptions sendOptions) entry.ttl = sendOptions.ttl; entry.effectId = sendOptions.effectId; } - delegate.sendMedia(entry, videoEditedInfo, notify, scheduleDate, false); + delegate.sendMedia(entry, videoEditedInfo, notify || sendOptions == null || sendOptions.notify, scheduleDate != 0 ? scheduleDate : sendOptions != null ? sendOptions.scheduleDate : 0, false); startAnimation(false, false); }, () -> { startAnimation(false, false); @@ -3091,7 +3092,7 @@ private void handleStopRecording(final int send, final SendOptions sendOptions) entry.ttl = sendOptions.ttl; entry.effectId = sendOptions.effectId; } - delegate.sendMedia(entry, videoEditedInfo, true, 0, false); + delegate.sendMedia(entry, videoEditedInfo, sendOptions == null || sendOptions.notify, sendOptions != null ? sendOptions.scheduleDate : 0, false); } } else { setupVideoPlayer(videoFile); @@ -3105,7 +3106,7 @@ private void handleStopRecording(final int send, final SendOptions sendOptions) videoEditedInfo.notReadyYet = false; } didWriteData(videoFile, 0, true); - MediaController.getInstance().requestAudioFocus(false); + MediaController.getInstance().requestRecordAudioFocus(false); }); } EGL14.eglDestroySurface(eglDisplay, eglSurface); @@ -3131,6 +3132,10 @@ private void handleStopRecording(final int send, final SendOptions sendOptions) private void setBluetoothScoOn(boolean scoOn) { AudioManager am = (AudioManager) ApplicationLoader.applicationContext.getSystemService(Context.AUDIO_SERVICE); + if (SharedConfig.recordViaSco && !PermissionRequest.hasPermission(Manifest.permission.BLUETOOTH_CONNECT)) { + SharedConfig.recordViaSco = false; + SharedConfig.saveConfig(); + } if (am.isBluetoothScoAvailableOffCall() && SharedConfig.recordViaSco || !scoOn) { BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter(); try { @@ -3144,6 +3149,13 @@ private void setBluetoothScoOn(boolean scoOn) { } catch (SecurityException ignored) { } catch (Throwable e) { FileLog.e(e); + try { + if (!scoOn && am.isBluetoothScoOn()) { + am.stopBluetoothSco(); + } + } catch (Exception e2) { + FileLog.e(e2); + } } } } @@ -3342,8 +3354,8 @@ private void prepareEncoder(boolean fromPause) { String vertexShaderSource, fragmentShaderSource; if (useCamera2) { - vertexShaderSource = RLottieDrawable.readRes(null, R.raw.instant_lanczos_vert); - fragmentShaderSource = RLottieDrawable.readRes(null, R.raw.instant_lanczos_frag_oes); + vertexShaderSource = AndroidUtilities.readRes(R.raw.instant_lanczos_vert); + fragmentShaderSource = AndroidUtilities.readRes(R.raw.instant_lanczos_frag_oes); } else { vertexShaderSource = VERTEX_SHADER; fragmentShaderSource = createFragmentShader(previewSize[0]); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/InviteLinkBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/InviteLinkBottomSheet.java index 92447ca884..f3773c7c1b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/InviteLinkBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/InviteLinkBottomSheet.java @@ -396,15 +396,15 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { titleTextView.setTypeface(AndroidUtilities.bold()); if (!permanent) { if (invite.expired) { - titleTextView.setText(LocaleController.getString("ExpiredLink", R.string.ExpiredLink)); + titleTextView.setText(LocaleController.getString(R.string.ExpiredLink)); } else if (invite.revoked) { - titleTextView.setText(LocaleController.getString("RevokedLink", R.string.RevokedLink)); + titleTextView.setText(LocaleController.getString(R.string.RevokedLink)); } else { - titleTextView.setText(LocaleController.getString("InviteLink", R.string.InviteLink)); + titleTextView.setText(LocaleController.getString(R.string.InviteLink)); } titleVisible = true; } else { - titleTextView.setText(LocaleController.getString("InviteLink", R.string.InviteLink)); + titleTextView.setText(LocaleController.getString(R.string.InviteLink)); titleVisible = false; titleTextView.setVisibility(View.INVISIBLE); titleTextView.setAlpha(0f); @@ -868,18 +868,18 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi role = channelParticipant.rank; } else { if (channelParticipant instanceof TLRPC.TL_channelParticipantCreator) { - role = LocaleController.getString("ChannelCreator", R.string.ChannelCreator); + role = LocaleController.getString(R.string.ChannelCreator); } else if (channelParticipant instanceof TLRPC.TL_channelParticipantAdmin) { - role = LocaleController.getString("ChannelAdmin", R.string.ChannelAdmin); + role = LocaleController.getString(R.string.ChannelAdmin); } else { role = null; } } } else { if (part instanceof TLRPC.TL_chatParticipantCreator) { - role = LocaleController.getString("ChannelCreator", R.string.ChannelCreator); + role = LocaleController.getString(R.string.ChannelCreator); } else if (part instanceof TLRPC.TL_chatParticipantAdmin) { - role = LocaleController.getString("ChannelAdmin", R.string.ChannelAdmin); + role = LocaleController.getString(R.string.ChannelAdmin); } else { role = null; } @@ -907,12 +907,12 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi privacyCell.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText4)); privacyCell.setFixedSize(0); if (invite.revoked) { - privacyCell.setText(LocaleController.getString("LinkIsNoActive", R.string.LinkIsNoActive)); + privacyCell.setText(LocaleController.getString(R.string.LinkIsNoActive)); } else if (invite.expired) { if (invite.usage_limit > 0 && invite.usage_limit == invite.usage) { - privacyCell.setText(LocaleController.getString("LinkIsExpiredLimitReached", R.string.LinkIsExpiredLimitReached)); + privacyCell.setText(LocaleController.getString(R.string.LinkIsExpiredLimitReached)); } else { - privacyCell.setText(LocaleController.getString("LinkIsExpired", R.string.LinkIsExpired)); + privacyCell.setText(LocaleController.getString(R.string.LinkIsExpired)); privacyCell.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); } } else if (invite.expire_date > 0) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/InviteMembersBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/InviteMembersBottomSheet.java index 0e1bb09ff0..ec84105b85 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/InviteMembersBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/InviteMembersBottomSheet.java @@ -134,7 +134,7 @@ public InviteMembersBottomSheet(Context context, int account, LongSparseArray onAddToGroupDone(0)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Add), (dialogInterface, i) -> onAddToGroupDone(0)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.create(); builder.show(); } @@ -336,7 +336,7 @@ public void getOutline(View view, Outline outline) { floatingButton.setScaleX(0.0f); floatingButton.setScaleY(0.0f); floatingButton.setAlpha(0.0f); - floatingButton.setContentDescription(LocaleController.getString("Next", R.string.Next)); + floatingButton.setContentDescription(LocaleController.getString(R.string.Next)); containerView.addView(floatingButton, LayoutHelper.createFrame((Build.VERSION.SDK_INT >= 21 ? 56 : 60), (Build.VERSION.SDK_INT >= 21 ? 56 : 60), Gravity.RIGHT | Gravity.BOTTOM, 14, 14, 14, 14)); @@ -575,7 +575,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int default: case 1: ManageChatTextCell manageChatTextCell = new ManageChatTextCell(context); - manageChatTextCell.setText(LocaleController.getString("VoipGroupCopyInviteLink", R.string.VoipGroupCopyInviteLink), null, R.drawable.msg_link, 7, true); + manageChatTextCell.setText(LocaleController.getString(R.string.VoipGroupCopyInviteLink), null, R.drawable.msg_link, 7, true); manageChatTextCell.setColors(Theme.key_dialogTextBlue2, Theme.key_dialogTextBlue2); view = manageChatTextCell; break; @@ -604,9 +604,9 @@ protected void onAttachedToWindow() { stickerEmptyView.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); stickerEmptyView.subtitle.setVisibility(View.GONE); if (dialogsDelegate != null) { - stickerEmptyView.title.setText(LocaleController.getString("FilterNoChats", R.string.FilterNoChats)); + stickerEmptyView.title.setText(LocaleController.getString(R.string.FilterNoChats)); } else { - stickerEmptyView.title.setText(LocaleController.getString("NoContacts", R.string.NoContacts)); + stickerEmptyView.title.setText(LocaleController.getString(R.string.NoContacts)); } stickerEmptyView.setAnimateLayoutChange(true); view = stickerEmptyView; @@ -764,7 +764,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi break; case 0: { GroupCreateSectionCell cell = (GroupCreateSectionCell) holder.itemView; - cell.setText(LocaleController.getString("GlobalSearch", R.string.GlobalSearch)); + cell.setText(LocaleController.getString(R.string.GlobalSearch)); break; } case 1: { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinCallAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinCallAlert.java index e1183a9f83..979b3d1c7a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinCallAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinCallAlert.java @@ -520,19 +520,19 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { textView.setEllipsize(TextUtils.TruncateAt.END); if (type == TYPE_CREATE) { if (ChatObject.isChannelOrGiga(chat)) { - textView.setText(LocaleController.getString("StartVoipChannelTitle", R.string.StartVoipChannelTitle)); + textView.setText(LocaleController.getString(R.string.StartVoipChannelTitle)); } else { - textView.setText(LocaleController.getString("StartVoipChatTitle", R.string.StartVoipChatTitle)); + textView.setText(LocaleController.getString(R.string.StartVoipChatTitle)); } internalLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 23, 16, 23, 0)); } else { if (type == TYPE_DISPLAY) { - textView.setText(LocaleController.getString("VoipGroupDisplayAs", R.string.VoipGroupDisplayAs)); + textView.setText(LocaleController.getString(R.string.VoipGroupDisplayAs)); } else { if (ChatObject.isChannelOrGiga(chat)) { - textView.setText(LocaleController.getString("VoipChannelJoinAs", R.string.VoipChannelJoinAs)); + textView.setText(LocaleController.getString(R.string.VoipChannelJoinAs)); } else { - textView.setText(LocaleController.getString("VoipGroupJoinAs", R.string.VoipGroupJoinAs)); + textView.setText(LocaleController.getString(R.string.VoipGroupJoinAs)); } } internalLayout.addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT, 23, 8, 23, 0)); @@ -561,12 +561,12 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { if (type == TYPE_CREATE) { StringBuilder builder = new StringBuilder(); if (ChatObject.isChannel(chat) && !chat.megagroup) { - builder.append(LocaleController.getString("VoipChannelStart2", R.string.VoipChannelStart2)); + builder.append(LocaleController.getString(R.string.VoipChannelStart2)); } else { - builder.append(LocaleController.getString("VoipGroupStart2", R.string.VoipGroupStart2)); + builder.append(LocaleController.getString(R.string.VoipGroupStart2)); } if (chats.size() > 1) { - builder.append("\n\n").append(LocaleController.getString("VoipChatDisplayedAs", R.string.VoipChatDisplayedAs)); + builder.append("\n\n").append(LocaleController.getString(R.string.VoipChatDisplayedAs)); } else { listView.setVisibility(View.GONE); } @@ -575,9 +575,9 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { internalLayout.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 23, 0, 23, 5)); } else { if (hasGroup) { - messageTextView.setText(LocaleController.getString("VoipGroupStartAsInfoGroup", R.string.VoipGroupStartAsInfoGroup)); + messageTextView.setText(LocaleController.getString(R.string.VoipGroupStartAsInfoGroup)); } else { - messageTextView.setText(LocaleController.getString("VoipGroupStartAsInfo", R.string.VoipGroupStartAsInfo)); + messageTextView.setText(LocaleController.getString(R.string.VoipGroupStartAsInfo)); } messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); internalLayout.addView(messageTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT, 23, 0, 23, 5)); @@ -604,9 +604,9 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { BottomSheetCell scheduleButton = new BottomSheetCell(context, true); if (ChatObject.isChannelOrGiga(chat)) { - scheduleButton.setText(LocaleController.getString("VoipChannelScheduleVoiceChat", R.string.VoipChannelScheduleVoiceChat), false); + scheduleButton.setText(LocaleController.getString(R.string.VoipChannelScheduleVoiceChat), false); } else { - scheduleButton.setText(LocaleController.getString("VoipGroupScheduleVoiceChat", R.string.VoipGroupScheduleVoiceChat), false); + scheduleButton.setText(LocaleController.getString(R.string.VoipGroupScheduleVoiceChat), false); } scheduleButton.background.setOnClickListener(v -> { selectAfterDismiss = MessagesController.getInstance(currentAccount).getInputPeer(MessageObject.getPeerId(selectedPeer)); @@ -738,7 +738,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { String status; if (did > 0) { object = MessagesController.getInstance(currentAccount).getUser(did); - status = LocaleController.getString("VoipGroupPersonalAccount", R.string.VoipGroupPersonalAccount); + status = LocaleController.getString(R.string.VoipGroupPersonalAccount); } else { object = MessagesController.getInstance(currentAccount).getChat(-did); status = null; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinCallByUrlAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinCallByUrlAlert.java index c74c8c0a61..257715b863 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinCallByUrlAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinCallByUrlAlert.java @@ -102,21 +102,21 @@ public JoinCallByUrlAlert(final Context context, TLRPC.Chat chat) { percentTextView.setText(call.call.title); } if (call.call.participants_count == 0) { - infoTextView.setText(LocaleController.getString("NoOneJoinedYet", R.string.NoOneJoinedYet)); + infoTextView.setText(LocaleController.getString(R.string.NoOneJoinedYet)); } else { infoTextView.setText(LocaleController.formatPluralString("Participants", call.call.participants_count)); } } else { percentTextView.setText(chat.title); - infoTextView.setText(LocaleController.getString("NoOneJoinedYet", R.string.NoOneJoinedYet)); + infoTextView.setText(LocaleController.getString(R.string.NoOneJoinedYet)); } BottomSheetCell clearButton = new BottomSheetCell(context); clearButton.setBackground(null); if (ChatObject.isChannelOrGiga(chat)) { - clearButton.setText(LocaleController.getString("VoipChannelJoinVoiceChatUrl", R.string.VoipChannelJoinVoiceChatUrl)); + clearButton.setText(LocaleController.getString(R.string.VoipChannelJoinVoiceChatUrl)); } else { - clearButton.setText(LocaleController.getString("VoipGroupJoinVoiceChatUrl", R.string.VoipGroupJoinVoiceChatUrl)); + clearButton.setText(LocaleController.getString(R.string.VoipGroupJoinVoiceChatUrl)); } clearButton.background.setOnClickListener(v -> { joinAfterDismiss = true; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinGroupAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinGroupAlert.java index 31a0a21c26..a4e8c2cc1d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinGroupAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinGroupAlert.java @@ -8,6 +8,8 @@ package org.telegram.ui.Components; +import static org.telegram.messenger.LocaleController.getString; + import android.content.Context; import android.graphics.drawable.Drawable; import android.os.Bundle; @@ -154,11 +156,11 @@ public JoinGroupAlert(final Context context, TLObject obj, String group, BaseFra textView.setEllipsize(TextUtils.TruncateAt.END); if (chatInvite != null && origination == ORIGINATION_SPONSORED_CHAT) { - textView.setText(LocaleController.getString("ChannelPublic", R.string.ChannelPublic).toLowerCase()); + textView.setText(getString(R.string.ChannelPublic).toLowerCase()); } else { textView.setText(isChannel - ? LocaleController.getString("ChannelPrivate", R.string.ChannelPrivate).toLowerCase() - : LocaleController.getString("MegaPrivate", R.string.MegaPrivate).toLowerCase() + ? getString(R.string.ChannelPrivate).toLowerCase() + : getString(R.string.MegaPrivate).toLowerCase() ); } linearLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 10, 0, 10, hasAbout ? 0 : 20)); @@ -187,7 +189,7 @@ public JoinGroupAlert(final Context context, TLObject obj, String group, BaseFra requestTextView.setEllipsize(TextUtils.TruncateAt.END); requestTextView.setGravity(Gravity.CENTER); requestTextView.setSingleLine(true); - requestTextView.setText(isChannel ? LocaleController.getString("RequestToJoinChannel", R.string.RequestToJoinChannel) : LocaleController.getString("RequestToJoinGroup", R.string.RequestToJoinGroup)); + requestTextView.setText(getString(isChannel ? R.string.RequestToJoinChannel : R.string.RequestToJoinGroup)); requestTextView.setTextColor(getThemedColor(Theme.key_featuredStickers_buttonText)); requestTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); requestTextView.setTypeface(AndroidUtilities.bold()); @@ -240,7 +242,7 @@ public JoinGroupAlert(final Context context, TLObject obj, String group, BaseFra TextView descriptionTextView = new TextView(getContext()); descriptionTextView.setGravity(Gravity.CENTER); descriptionTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - descriptionTextView.setText(isChannel ? LocaleController.getString("RequestToJoinChannelDescription", R.string.RequestToJoinChannelDescription) : LocaleController.getString("RequestToJoinGroupDescription", R.string.RequestToJoinGroupDescription)); + descriptionTextView.setText(getString(isChannel ? R.string.RequestToJoinChannelDescription : R.string.RequestToJoinGroupDescription)); descriptionTextView.setTextColor(getThemedColor(Theme.key_dialogTextGray3)); linearLayout.addView(descriptionTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP, 24, 17, 24, 15)); } else if (chatInvite != null) { @@ -302,7 +304,7 @@ public JoinGroupAlert(final Context context, TLObject obj, String group, BaseFra joinTextView.setEllipsize(TextUtils.TruncateAt.END); joinTextView.setGravity(Gravity.CENTER); joinTextView.setSingleLine(true); - joinTextView.setText(isJoinToChannel ? LocaleController.getString("ProfileJoinChannel", R.string.ProfileJoinChannel) : LocaleController.getString("ProfileJoinGroup", R.string.ProfileJoinGroup)); + joinTextView.setText(getString(isJoinToChannel ? R.string.ProfileJoinChannel : R.string.ProfileJoinGroup)); joinTextView.setTextColor(getThemedColor(Theme.key_featuredStickers_buttonText)); joinTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); joinTextView.setTypeface(AndroidUtilities.bold()); @@ -361,10 +363,10 @@ public static void showBulletin(Context context, BaseFragment fragment, boolean } Bulletin.TwoLineLottieLayout layout = new Bulletin.TwoLineLottieLayout(context, fragment.getResourceProvider()); layout.imageView.setAnimation(R.raw.timer_3, 28, 28); - layout.titleTextView.setText(LocaleController.getString("RequestToJoinSent", R.string.RequestToJoinSent)); + layout.titleTextView.setText(getString(R.string.RequestToJoinSent)); String subTitle = isChannel - ? LocaleController.getString("RequestToJoinChannelSentDescription", R.string.RequestToJoinChannelSentDescription) - : LocaleController.getString("RequestToJoinGroupSentDescription", R.string.RequestToJoinGroupSentDescription); + ? getString(R.string.RequestToJoinChannelSentDescription) + : getString(R.string.RequestToJoinGroupSentDescription); layout.subtitleTextView.setText(subTitle); Bulletin.make(fragment, layout, Bulletin.DURATION_LONG).show(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinToSendSettingsView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinToSendSettingsView.java index ce4592f563..0790c2bb41 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinToSendSettingsView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/JoinToSendSettingsView.java @@ -40,7 +40,7 @@ public JoinToSendSettingsView(Context context, TLRPC.Chat currentChat) { setOrientation(LinearLayout.VERTICAL); joinHeaderCell = new HeaderCell(context, 23); - joinHeaderCell.setText(LocaleController.getString("ChannelSettingsJoinTitle", R.string.ChannelSettingsJoinTitle)); + joinHeaderCell.setText(LocaleController.getString(R.string.ChannelSettingsJoinTitle)); joinHeaderCell.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); addView(joinHeaderCell); @@ -52,9 +52,9 @@ public JoinToSendSettingsView(Context context, TLRPC.Chat currentChat) { // } // if (event.getAction() == MotionEvent.ACTION_UP && !isEnabled()) { // new AlertDialog.Builder(context) -// .setTitle(LocaleController.getString("UserRestrictionsCantModify", R.string.UserRestrictionsCantModify)) -// .setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("ChannelSettingsJoinToSendRestricted", R.string.ChannelSettingsJoinToSendRestricted, LocaleController.getString("EditAdminBanUsers", R.string.EditAdminBanUsers)))) -// .setPositiveButton(LocaleController.getString("OK", R.string.OK), null) +// .setTitle(LocaleController.getString(R.string.UserRestrictionsCantModify)) +// .setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("ChannelSettingsJoinToSendRestricted", R.string.ChannelSettingsJoinToSendRestricted, LocaleController.getString(R.string.EditAdminBanUsers)))) +// .setPositiveButton(LocaleController.getString(R.string.OK), null) // .create() // .show(); // return false; @@ -63,7 +63,7 @@ public JoinToSendSettingsView(Context context, TLRPC.Chat currentChat) { // } }; joinToSendCell.setBackground(Theme.getSelectorDrawable(true)); - joinToSendCell.setTextAndCheck(LocaleController.getString("ChannelSettingsJoinToSend", R.string.ChannelSettingsJoinToSend), isJoinToSend, isJoinToSend); + joinToSendCell.setTextAndCheck(LocaleController.getString(R.string.ChannelSettingsJoinToSend), isJoinToSend, isJoinToSend); joinToSendCell.setEnabled(currentChat.creator || currentChat.admin_rights != null && currentChat.admin_rights.ban_users); joinToSendCell.setOnClickListener(e -> { final boolean oldValue = isJoinToSend, newValue = !isJoinToSend; @@ -83,9 +83,9 @@ public JoinToSendSettingsView(Context context, TLRPC.Chat currentChat) { // public boolean onTouchEvent(MotionEvent event) { // if (event.getAction() == MotionEvent.ACTION_DOWN && !isEnabled()) { // new AlertDialog.Builder(context) -// .setTitle(LocaleController.getString("UserRestrictionsCantModify", R.string.UserRestrictionsCantModify)) -// .setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("ChannelSettingsJoinToSendRestricted", R.string.ChannelSettingsJoinToSendRestricted, LocaleController.getString("EditAdminBanUsers", R.string.EditAdminBanUsers)))) -// .setPositiveButton(LocaleController.getString("OK", R.string.OK), null) +// .setTitle(LocaleController.getString(R.string.UserRestrictionsCantModify)) +// .setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("ChannelSettingsJoinToSendRestricted", R.string.ChannelSettingsJoinToSendRestricted, LocaleController.getString(R.string.EditAdminBanUsers)))) +// .setPositiveButton(LocaleController.getString(R.string.OK), null) // .create() // .show(); // return false; @@ -94,7 +94,7 @@ public JoinToSendSettingsView(Context context, TLRPC.Chat currentChat) { // } }; joinRequestCell.setBackground(Theme.getSelectorDrawable(true)); - joinRequestCell.setTextAndCheck(LocaleController.getString("ChannelSettingsJoinRequest", R.string.ChannelSettingsJoinRequest), isJoinRequest, false); + joinRequestCell.setTextAndCheck(LocaleController.getString(R.string.ChannelSettingsJoinRequest), isJoinRequest, false); joinRequestCell.setPivotY(0); joinRequestCell.setEnabled(currentChat.creator || currentChat.admin_rights != null && currentChat.admin_rights.ban_users); joinRequestCell.setOnClickListener(e -> { @@ -108,11 +108,11 @@ public JoinToSendSettingsView(Context context, TLRPC.Chat currentChat) { addView(joinRequestCell); joinToSendInfoCell = new TextInfoPrivacyCell(context); - joinToSendInfoCell.setText(LocaleController.getString("ChannelSettingsJoinToSendInfo", R.string.ChannelSettingsJoinToSendInfo)); + joinToSendInfoCell.setText(LocaleController.getString(R.string.ChannelSettingsJoinToSendInfo)); addView(joinToSendInfoCell); joinRequestInfoCell = new TextInfoPrivacyCell(context); - joinRequestInfoCell.setText(LocaleController.getString("ChannelSettingsJoinRequestInfo", R.string.ChannelSettingsJoinRequestInfo)); + joinRequestInfoCell.setText(LocaleController.getString(R.string.ChannelSettingsJoinRequestInfo)); addView(joinRequestInfoCell); toggleValue = isJoinToSend ? 1f : 0f; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/LinkActionView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/LinkActionView.java index f3cd7b5543..078d95815c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/LinkActionView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/LinkActionView.java @@ -97,7 +97,7 @@ public LinkActionView(Context context, BaseFragment fragment, BottomSheet bottom frameLayout.addView(linkView); optionsView = new ImageView(context); optionsView.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_ab_other)); - optionsView.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + optionsView.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); optionsView.setScaleType(ImageView.ScaleType.CENTER); frameLayout.addView(optionsView, LayoutHelper.createFrame(40, 48, Gravity.RIGHT | Gravity.CENTER_VERTICAL)); addView(frameLayout, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, containerPadding, 0, containerPadding, 0)); @@ -110,9 +110,9 @@ public LinkActionView(Context context, BaseFragment fragment, BottomSheet bottom SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(); spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.msg_copy_filled)), 0, 1, 0); spannableStringBuilder.setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(6)), 1, 2, 0); - spannableStringBuilder.append(LocaleController.getString("LinkActionCopy", R.string.LinkActionCopy)); + spannableStringBuilder.append(LocaleController.getString(R.string.LinkActionCopy)); copyView.setText(spannableStringBuilder); - copyView.setContentDescription(LocaleController.getString("LinkActionCopy", R.string.LinkActionCopy)); + copyView.setContentDescription(LocaleController.getString(R.string.LinkActionCopy)); copyView.setPadding(AndroidUtilities.dp(8), 0, AndroidUtilities.dp(8), 0); copyView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); copyView.setTypeface(AndroidUtilities.bold()); @@ -124,9 +124,9 @@ public LinkActionView(Context context, BaseFragment fragment, BottomSheet bottom spannableStringBuilder = new SpannableStringBuilder(); spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.msg_share_filled)), 0, 1, 0); spannableStringBuilder.setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(6)), 1, 2, 0); - spannableStringBuilder.append(LocaleController.getString("LinkActionShare", R.string.LinkActionShare)); + spannableStringBuilder.append(LocaleController.getString(R.string.LinkActionShare)); shareView.setText(spannableStringBuilder); - shareView.setContentDescription(LocaleController.getString("LinkActionShare", R.string.LinkActionShare)); + shareView.setContentDescription(LocaleController.getString(R.string.LinkActionShare)); shareView.setPadding(AndroidUtilities.dp(8), 0, AndroidUtilities.dp(8), 0); shareView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); shareView.setTypeface(AndroidUtilities.bold()); @@ -139,7 +139,7 @@ public LinkActionView(Context context, BaseFragment fragment, BottomSheet bottom spannableStringBuilder = new SpannableStringBuilder(); spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.msg_delete_filled)), 0, 1, 0); spannableStringBuilder.setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(8)), 1, 2, 0); - spannableStringBuilder.append(LocaleController.getString("DeleteLink", R.string.DeleteLink)); + spannableStringBuilder.append(LocaleController.getString(R.string.DeleteLink)); spannableStringBuilder.append(".").setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(5)), spannableStringBuilder.length() - 1, spannableStringBuilder.length(), 0); removeView.setText(spannableStringBuilder); removeView.setPadding(AndroidUtilities.dp(8), 0, AndroidUtilities.dp(8), 0); @@ -207,14 +207,14 @@ protected void onSend(LongSparseArray dids, int count, TLRPC.TL_fo removeView.setOnClickListener(view -> { AlertDialog.Builder builder = new AlertDialog.Builder(fragment.getParentActivity()); - builder.setTitle(LocaleController.getString("DeleteLink", R.string.DeleteLink)); - builder.setMessage(LocaleController.getString("DeleteLinkHelp", R.string.DeleteLinkHelp)); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialogInterface2, i2) -> { + builder.setTitle(LocaleController.getString(R.string.DeleteLink)); + builder.setMessage(LocaleController.getString(R.string.DeleteLinkHelp)); + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialogInterface2, i2) -> { if (delegate != null) { delegate.removeLink(); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); fragment.showDialog(builder.create()); }); @@ -227,7 +227,7 @@ protected void onSend(LongSparseArray dids, int count, TLRPC.TL_fo ActionBarMenuSubItem subItem; if (!this.permanent && canEdit) { subItem = new ActionBarMenuSubItem(context, true, false); - subItem.setTextAndIcon(LocaleController.getString("Edit", R.string.Edit), R.drawable.msg_edit); + subItem.setTextAndIcon(LocaleController.getString(R.string.Edit), R.drawable.msg_edit); layout.addView(subItem, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); subItem.setOnClickListener(view12 -> { if (actionBarPopupWindow != null) { @@ -238,7 +238,7 @@ protected void onSend(LongSparseArray dids, int count, TLRPC.TL_fo } subItem = new ActionBarMenuSubItem(context, true, false); - subItem.setTextAndIcon(LocaleController.getString("GetQRCode", R.string.GetQRCode), R.drawable.msg_qrcode); + subItem.setTextAndIcon(LocaleController.getString(R.string.GetQRCode), R.drawable.msg_qrcode); layout.addView(subItem, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); subItem.setOnClickListener(view12 -> { showQrCode(); @@ -246,7 +246,7 @@ protected void onSend(LongSparseArray dids, int count, TLRPC.TL_fo if (!hideRevokeOption) { subItem = new ActionBarMenuSubItem(context, false, true); - subItem.setTextAndIcon(LocaleController.getString("RevokeLink", R.string.RevokeLink), R.drawable.msg_delete); + subItem.setTextAndIcon(LocaleController.getString(R.string.RevokeLink), R.drawable.msg_delete); subItem.setColors(Theme.getColor(Theme.key_text_RedRegular), Theme.getColor(Theme.key_text_RedRegular)); subItem.setOnClickListener(view1 -> { if (actionBarPopupWindow != null) { @@ -388,7 +388,7 @@ public void setQrText(String text) { } private void showQrCode() { - qrCodeBottomSheet = new QRCodeBottomSheet(getContext(), LocaleController.getString("InviteByQRCode", R.string.InviteByQRCode), link, qrText == null ? (isChannel ? LocaleController.getString("QRCodeLinkHelpChannel", R.string.QRCodeLinkHelpChannel) : LocaleController.getString("QRCodeLinkHelpGroup", R.string.QRCodeLinkHelpGroup)) : qrText, false) { + qrCodeBottomSheet = new QRCodeBottomSheet(getContext(), LocaleController.getString(R.string.InviteByQRCode), link, qrText == null ? (isChannel ? LocaleController.getString(R.string.QRCodeLinkHelpChannel) : LocaleController.getString(R.string.QRCodeLinkHelpGroup)) : qrText, false) { @Override public void dismiss() { super.dismiss(); @@ -425,7 +425,7 @@ public void updateColors() { public void setLink(String link) { this.link = link; if (link == null) { - linkView.setText(LocaleController.getString("Loading", R.string.Loading)); + linkView.setText(LocaleController.getString(R.string.Loading)); } else if (link.startsWith("https://")) { linkView.setText(link.substring("https://".length())); } else { @@ -505,14 +505,14 @@ private void revokeLink() { return; } AlertDialog.Builder builder = new AlertDialog.Builder(fragment.getParentActivity()); - builder.setTitle(LocaleController.getString("RevokeLink", R.string.RevokeLink)); - builder.setMessage(LocaleController.getString("RevokeAlert", R.string.RevokeAlert)); - builder.setPositiveButton(LocaleController.getString("RevokeButton", R.string.RevokeButton), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.RevokeLink)); + builder.setMessage(LocaleController.getString(R.string.RevokeAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.RevokeButton), (dialogInterface, i) -> { if (delegate != null) { delegate.revokeLink(); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); if (button != null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/MediaActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/MediaActivity.java index 7925f4f068..8129018cf4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/MediaActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/MediaActivity.java @@ -78,6 +78,7 @@ public class MediaActivity extends BaseFragment implements SharedMediaLayout.Sha private long dialogId; private long topicId; private String hashtag; + private int storiesCount; private FrameLayout titlesContainer; private FrameLayout[] titles = new FrameLayout[2]; private SimpleTextView[] nameTextView = new SimpleTextView[2]; @@ -113,6 +114,7 @@ public boolean onFragmentCreate() { dialogId = getArguments().getLong("dialog_id"); topicId = getArguments().getLong("topic_id", 0); hashtag = getArguments().getString("hashtag", ""); + storiesCount = getArguments().getInt("storiesCount", -1); int defaultTab = SharedMediaLayout.TAB_PHOTOVIDEO; if (type == TYPE_ARCHIVED_CHANNEL_STORIES) { defaultTab = SharedMediaLayout.TAB_ARCHIVED_STORIES; @@ -192,16 +194,16 @@ public void onItemClick(int id) { if (!storyItems.isEmpty()) { AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), getResourceProvider()); - builder.setTitle(storyItems.size() > 1 ? LocaleController.getString("DeleteStoriesTitle", R.string.DeleteStoriesTitle) : LocaleController.getString("DeleteStoryTitle", R.string.DeleteStoryTitle)); + builder.setTitle(storyItems.size() > 1 ? LocaleController.getString(R.string.DeleteStoriesTitle) : LocaleController.getString(R.string.DeleteStoryTitle)); builder.setMessage(LocaleController.formatPluralString("DeleteStoriesSubtitle", storyItems.size())); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), new DialogInterface.OnClickListener() { + builder.setPositiveButton(LocaleController.getString(R.string.Delete), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { getMessagesController().getStoriesController().deleteStories(dialogId, storyItems); sharedMediaLayout.closeActionMode(false); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (DialogInterface.OnClickListener) (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (DialogInterface.OnClickListener) (dialog, which) -> { dialog.dismiss(); }); AlertDialog dialog = builder.create(); @@ -286,7 +288,7 @@ protected void drawList(Canvas blurCanvas, boolean top, ArrayList { boolean canZoomOut, canZoomIn; canZoomOut = true; @@ -300,7 +302,7 @@ protected void drawList(Canvas blurCanvas, boolean top, ArrayList { boolean canZoomOut, canZoomIn; canZoomIn = true; @@ -314,11 +316,11 @@ protected void drawList(Canvas blurCanvas, boolean top, ArrayList { if (filterPhotos && !filterVideos) { @@ -329,7 +331,7 @@ protected void drawList(Canvas blurCanvas, boolean top, ArrayList { if (filterVideos && !filterPhotos) { @@ -344,36 +346,32 @@ protected void drawList(Canvas blurCanvas, boolean top, ArrayList= Build.VERSION_CODES.LOLLIPOP) { - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, LocaleController.getString("Open", R.string.Open))); - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_LONG_CLICK, LocaleController.getString("AccDescrOpenInPhotoViewer", R.string.AccDescrOpenInPhotoViewer))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, LocaleController.getString(R.string.Open))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_LONG_CLICK, LocaleController.getString(R.string.AccDescrOpenInPhotoViewer))); } } else { info.setVisibleToUser(false); @@ -421,7 +419,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { buttonContainer.setPadding(dp(10), dp(8), dp(10), dp(8)); buttonContainer.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); button = new ButtonWithCounterView(context, getResourceProvider()); - button.setText(LocaleController.getString("SaveToProfile", R.string.SaveToProfile), false); + button.setText(LocaleController.getString(R.string.SaveToProfile), false); button.setShowZero(true); button.setCount(0, false); button.setEnabled(false); @@ -755,7 +753,10 @@ protected void onTabScroll(boolean scrolling) { } TLObject avatarObject = null; if (type == TYPE_STORIES_SEARCH) { - + nameTextView[0].setText(hashtag); + if (storiesCount != -1) { + subtitleTextView[0].setText(LocaleController.formatPluralStringSpaced("FoundStories", storiesCount)); + } } else if (type == TYPE_ARCHIVED_CHANNEL_STORIES) { nameTextView[0].setText(LocaleController.getString("ProfileStoriesArchive")); } else if (type == TYPE_STORIES) { @@ -783,7 +784,7 @@ protected void onTabScroll(boolean scrolling) { TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(avatarDialogId); if (user != null) { if (user.self) { - nameTextView[0].setText(LocaleController.getString("SavedMessages", R.string.SavedMessages)); + nameTextView[0].setText(LocaleController.getString(R.string.SavedMessages)); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_SAVED); avatarDrawable.setScaleSize(.8f); } else { @@ -805,7 +806,7 @@ protected void onTabScroll(boolean scrolling) { avatarImageView.setImage(thumbLocation, "50_50", avatarDrawable, avatarObject); if (nameTextView[0] != null && TextUtils.isEmpty(nameTextView[0].getText())) { - nameTextView[0].setText(LocaleController.getString("SharedContentTitle", R.string.SharedContentTitle)); + nameTextView[0].setText(LocaleController.getString(R.string.SharedContentTitle)); } if (sharedMediaLayout.isSearchItemVisible() && type != TYPE_STORIES) { @@ -869,6 +870,9 @@ private void updateMediaCount() { return; } int id = sharedMediaLayout.getClosestTab(); + if (type == TYPE_STORIES_SEARCH && id != SharedMediaLayout.TAB_STORIES) { + return; + } int[] mediaCount = sharedMediaPreloader.getLastMediaCount(); final boolean animated = !LocaleController.isRTL; int i; @@ -889,8 +893,15 @@ private void updateMediaCount() { int count = sharedMediaLayout.getStoriesCount(SharedMediaLayout.TAB_STORIES); if (count > 0) { - showSubtitle(0, true, true); - subtitleTextView[0].setText(LocaleController.formatPluralString("ProfileMyStoriesCount", count), animated); + if (type == TYPE_STORIES_SEARCH) { + if (TextUtils.isEmpty(subtitleTextView[0].getText())) { + showSubtitle(0, true, true); + subtitleTextView[0].setText(LocaleController.formatPluralStringSpaced("FoundStories", count), animated); + } + } else { + showSubtitle(0, true, true); + subtitleTextView[0].setText(LocaleController.formatPluralString("ProfileMyStoriesCount", count), animated); + } } else { showSubtitle(0, false, true); } @@ -922,7 +933,7 @@ private void updateMediaCount() { if (id == SharedMediaLayout.TAB_STORIES) { button.setText(LocaleController.formatPluralString("ArchiveStories", actionModeMessageObjects == null ? 0 : actionModeMessageObjects.size()), animated2); } else { - button.setText(LocaleController.getString("SaveToProfile", R.string.SaveToProfile), animated2); + button.setText(LocaleController.getString(R.string.SaveToProfile), animated2); } lastTab = id; } @@ -1107,8 +1118,8 @@ public StoriesTabsView(Context context, Theme.ResourcesProvider resourcesProvide @Override public Tab[] createTabs() { Tab[] tabs = new Tab[] { - new Tab(0, R.raw.msg_stories_saved, 20, 40, LocaleController.getString("ProfileMyStoriesTab", R.string.ProfileMyStoriesTab)), - new Tab(1, R.raw.msg_stories_archive, 0, 0, LocaleController.getString("ProfileStoriesArchiveTab", R.string.ProfileStoriesArchiveTab)) + new Tab(0, R.raw.msg_stories_saved, 20, 40, LocaleController.getString(R.string.ProfileMyStoriesTab)), + new Tab(1, R.raw.msg_stories_archive, 0, 0, LocaleController.getString(R.string.ProfileStoriesArchiveTab)) }; return tabs; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/MemberRequestsBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/MemberRequestsBottomSheet.java index 8610b8c861..52383d5956 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/MemberRequestsBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/MemberRequestsBottomSheet.java @@ -49,7 +49,7 @@ protected void onImportersChanged(String query, boolean fromCache, boolean fromH this.delegate.setShowLastItemDivider(false); setDimBehindAlpha(75); - searchView.searchEditText.setHint(LocaleController.getString("SearchMemberRequests", R.string.SearchMemberRequests)); + searchView.searchEditText.setHint(LocaleController.getString(R.string.SearchMemberRequests)); searchListViewAdapter = listViewAdapter = delegate.getAdapter(); listView.setAdapter(listViewAdapter); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/MentionsContainerView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/MentionsContainerView.java index 9d1837ca6b..731b09d03c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/MentionsContainerView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/MentionsContainerView.java @@ -103,9 +103,11 @@ public void setReverseLayout(boolean reverseLayout) { @Override protected Size getSizeForItem(int i) { + size.full = false; if (i == 0) { size.width = getWidth(); size.height = paddedAdapter.getPadding(); + size.full = true; return size; } else { i--; @@ -162,9 +164,9 @@ protected Size getSizeForItem(int i) { @Override protected int getFlowItemCount() { if (adapter.getBotContextSwitch() != null || adapter.getBotWebViewSwitch() != null) { - return getItemCount() - 2; + return getItemCount() - 1; } - return super.getFlowItemCount() - 1; + return super.getFlowItemCount(); } }; gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @@ -181,6 +183,7 @@ public int getSpanSize(int position) { } else if (object instanceof TLRPC.Document) { return 20; } else { + position++; if (adapter.getBotContextSwitch() != null || adapter.getBotWebViewSwitch() != null) { position--; } @@ -723,7 +726,6 @@ public void getItemOffsets(Rect outRect, View view, RecyclerView parent, Recycle if (position == 0) { return; } - position--; if (adapter.isStickers()) { return; } else if (adapter.getBotContextSwitch() != null || adapter.getBotWebViewSwitch() != null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/MessageContainsEmojiButton.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/MessageContainsEmojiButton.java index 9ad073d318..67dac5ec0d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/MessageContainsEmojiButton.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/MessageContainsEmojiButton.java @@ -101,11 +101,11 @@ public MessageContainsEmojiButton(int currentAccount, Context context, Theme.Res } else if (inputStickerSets.size() == 1) { String string; if (type == EMOJI_TYPE) { - string = LocaleController.getString("MessageContainsEmojiPack", R.string.MessageContainsEmojiPack); + string = LocaleController.getString(R.string.MessageContainsEmojiPack); } else if (type == SINGLE_REACTION_TYPE) { - string = LocaleController.getString("MessageContainsReactionPack", R.string.MessageContainsReactionPack); + string = LocaleController.getString(R.string.MessageContainsReactionPack); } else { - string = LocaleController.getString("MessageContainsReactionsPack", R.string.MessageContainsReactionsPack); + string = LocaleController.getString(R.string.MessageContainsReactionsPack); } String[] parts = string.split("%s"); if (parts.length <= 1) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/MessagePreviewView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/MessagePreviewView.java index 23b591f972..1b8bdde629 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/MessagePreviewView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/MessagePreviewView.java @@ -383,6 +383,7 @@ public boolean drawChild(Canvas canvas, View child, long drawingTime) { if ((cell.getCurrentMessagesGroup() == null || cell.getCurrentPosition() != null && ((cell.getCurrentPosition().flags & cell.captionFlag()) != 0 && (cell.getCurrentPosition().flags & MessageObject.POSITION_FLAG_LEFT) != 0 || cell.getCurrentMessagesGroup() != null && cell.getCurrentMessagesGroup().isDocuments)) || cell.getTransitionParams().animateBackgroundBoundsInner) { cell.drawCaptionLayout(canvas, false, cell.getAlpha()); cell.drawReactionsLayout(canvas, cell.getAlpha(), null); + cell.drawCommentLayout(canvas, cell.getAlpha()); } if (cell.getCurrentMessagesGroup() != null || cell.getTransitionParams().animateBackgroundBoundsInner) { cell.drawNamesLayout(canvas, cell.getAlpha()); @@ -990,7 +991,7 @@ public void updateBackground() { menu.addView(deleteLink, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); // ActionBarMenuSubItem sendMessagesView = new ActionBarMenuSubItem(context, false, true, resourcesProvider); -// sendMessagesView.setTextAndIcon(LocaleController.getString("ForwardSendMessages", R.string.ForwardSendMessages), R.drawable.msg_send); +// sendMessagesView.setTextAndIcon(LocaleController.getString(R.string.ForwardSendMessages), R.drawable.msg_send); // menu.addView(sendMessagesView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); // sendMessagesView.setOnClickListener(View -> didSendPressed()); @@ -1200,9 +1201,9 @@ private void updateSubtitle(boolean animated) { subtitle = LocaleController.formatString("ForwardPreviewSendersNameVisible", R.string.ForwardPreviewSendersNameVisible, ContactsController.formatName(currentUser.first_name, currentUser.last_name)); } else { if (ChatObject.isChannel(currentChat) && !currentChat.megagroup) { - subtitle = LocaleController.getString("ForwardPreviewSendersNameVisibleChannel", R.string.ForwardPreviewSendersNameVisibleChannel); + subtitle = LocaleController.getString(R.string.ForwardPreviewSendersNameVisibleChannel); } else { - subtitle = LocaleController.getString("ForwardPreviewSendersNameVisibleGroup", R.string.ForwardPreviewSendersNameVisibleGroup); + subtitle = LocaleController.getString(R.string.ForwardPreviewSendersNameVisibleGroup); } } } else { @@ -1485,11 +1486,11 @@ private void setOffset(float yOffset, int chatTopOffset) { chatPreviewContainer.setTranslationY(0); menu.setTranslationY(0); } else { - actionBar.setTranslationY(Math.max(0, chatTopOffset)); + actionBar.setTranslationY(chatTopOffset); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { chatPreviewContainer.invalidateOutline(); } - chatPreviewContainer.setTranslationY(Math.max(0, yOffset)); + chatPreviewContainer.setTranslationY(yOffset); menu.setTranslationY(yOffset + chatPreviewContainer.getMeasuredHeight() - dp(2)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/OtherDocumentPlaceholderDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/OtherDocumentPlaceholderDrawable.java index 08133aacd9..8d6f366807 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/OtherDocumentPlaceholderDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/OtherDocumentPlaceholderDrawable.java @@ -164,14 +164,14 @@ public void draw(Canvas canvas) { TextPaint paint; int offsetY; if (loaded) { - button = LocaleController.getString("OpenFile", R.string.OpenFile); + button = LocaleController.getString(R.string.OpenFile); paint = openPaint; offsetY = 0; } else { if (loading) { - button = LocaleController.getString("Cancel", R.string.Cancel).toUpperCase(); + button = LocaleController.getString(R.string.Cancel).toUpperCase(); } else { - button = LocaleController.getString("TapToDownload", R.string.TapToDownload); + button = LocaleController.getString(R.string.TapToDownload); } offsetY = AndroidUtilities.dp(28); paint = buttonPaint; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/ColorPicker.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/ColorPicker.java index 061477b9a8..2675f9748c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/ColorPicker.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/ColorPicker.java @@ -97,7 +97,7 @@ public ColorPicker(Context context, final boolean isVideo) { swatchStrokePaint.setStrokeWidth(AndroidUtilities.dp(1)); settingsButton = new ImageView(context); - settingsButton.setContentDescription(LocaleController.getString("AccDescrBrushType", R.string.AccDescrBrushType)); + settingsButton.setContentDescription(LocaleController.getString(R.string.AccDescrBrushType)); settingsButton.setScaleType(ImageView.ScaleType.CENTER); settingsButton.setImageResource(R.drawable.photo_paint_brush); addView(settingsButton, LayoutHelper.createFrame(46, 52)); @@ -125,7 +125,7 @@ public ColorPicker(Context context, final boolean isVideo) { }); undoButton = new ImageView(context); - undoButton.setContentDescription(LocaleController.getString("Undo", R.string.Undo)); + undoButton.setContentDescription(LocaleController.getString(R.string.Undo)); undoButton.setScaleType(ImageView.ScaleType.CENTER); undoButton.setImageResource(R.drawable.photo_undo); addView(undoButton, LayoutHelper.createFrame(46, 52)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/LPhotoPaintView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/LPhotoPaintView.java index 6856e9246c..3db4da0f1d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/LPhotoPaintView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/LPhotoPaintView.java @@ -2027,10 +2027,10 @@ public void maybeShowDismissalAlert(PhotoViewer photoViewer, Activity parentActi return; } AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity, resourcesProvider); - builder.setMessage(LocaleController.getString("PhotoEditorDiscardAlert", R.string.PhotoEditorDiscardAlert)); - builder.setTitle(LocaleController.getString("DiscardChanges", R.string.DiscardChanges)); - builder.setPositiveButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialogInterface, i) -> okRunnable.run()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setMessage(LocaleController.getString(R.string.PhotoEditorDiscardAlert)); + builder.setTitle(LocaleController.getString(R.string.DiscardChanges)); + builder.setPositiveButton(LocaleController.getString(R.string.PassportDiscard), (dialogInterface, i) -> okRunnable.run()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); photoViewer.showAlertDialog(builder); } else { okRunnable.run(); @@ -2676,7 +2676,7 @@ private void showMenuForEntity(final EntityView entityView) { deleteView.setPadding(dp(16), 0, dp(14), 0); deleteView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); deleteView.setTag(0); - deleteView.setText(LocaleController.getString("PaintDelete", R.string.PaintDelete)); + deleteView.setText(LocaleController.getString(R.string.PaintDelete)); deleteView.setEllipsize(TextUtils.TruncateAt.END); deleteView.setOnClickListener(v -> { removeEntity(entityView); @@ -2696,7 +2696,7 @@ private void showMenuForEntity(final EntityView entityView) { editView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); editView.setEllipsize(TextUtils.TruncateAt.END); editView.setTag(1); - editView.setText(LocaleController.getString("PaintEdit", R.string.PaintEdit)); + editView.setText(LocaleController.getString(R.string.PaintEdit)); editView.setOnClickListener(v -> { editSelectedTextEntity(); @@ -2716,7 +2716,7 @@ private void showMenuForEntity(final EntityView entityView) { flipView.setPadding(dp(14), 0, dp(16), 0); flipView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); flipView.setTag(2); - flipView.setText(LocaleController.getString("Flip", R.string.Flip)); + flipView.setText(LocaleController.getString(R.string.Flip)); flipView.setOnClickListener(v -> { ((StickerView) entityView).mirror(true); @@ -2736,7 +2736,7 @@ private void showMenuForEntity(final EntityView entityView) { duplicateView.setPadding(dp(14), 0, dp(16), 0); duplicateView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); duplicateView.setTag(2); - duplicateView.setText(LocaleController.getString("PaintDuplicate", R.string.PaintDuplicate)); + duplicateView.setText(LocaleController.getString(R.string.PaintDuplicate)); duplicateView.setOnClickListener(v -> { duplicateSelectedEntity(); @@ -3609,10 +3609,10 @@ public void onCustomEmojiSelected(long documentId, TLRPC.Document document, Stri @Override public void onClearEmojiRecent() { AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), resourcesProvider); - builder.setTitle(LocaleController.getString("ClearRecentEmojiTitle", R.string.ClearRecentEmojiTitle)); - builder.setMessage(LocaleController.getString("ClearRecentEmojiText", R.string.ClearRecentEmojiText)); - builder.setPositiveButton(LocaleController.getString("ClearButton", R.string.ClearButton), (dialogInterface, i) -> emojiView.clearRecentEmoji()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.ClearRecentEmojiTitle)); + builder.setMessage(LocaleController.getString(R.string.ClearRecentEmojiText)); + builder.setPositiveButton(LocaleController.getString(R.string.ClearButton), (dialogInterface, i) -> emojiView.clearRecentEmoji()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.show(); } }); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/LinkPreview.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/LinkPreview.java index 7797322ffb..eb58e63b45 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/LinkPreview.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/LinkPreview.java @@ -102,6 +102,7 @@ public void setVideoTexture() { this.video = true; } + public int previewType; public int type, color; private WebPagePreview webpage; @@ -285,6 +286,15 @@ public void setType(int type, int color) { invalidate(); } + public void setPreviewType(int type) { + previewType = type; + invalidate(); + } + + public int getPreviewType() { + return previewType; + } + public void set(int currentAccount, WebPagePreview webpage) { set(currentAccount, webpage, false); } @@ -323,6 +333,7 @@ public static String fromUrlWithoutSchema(String url) { private final AnimatedFloat photoAlphaProgress = new AnimatedFloat(this, 0, 350, CubicBezierInterpolator.EASE_OUT_QUINT); private final AnimatedFloat photoSmallProgress = new AnimatedFloat(this, 0, 350, CubicBezierInterpolator.EASE_OUT_QUINT); private final AnimatedFloat previewProgress = new AnimatedFloat(this, 0, 350, CubicBezierInterpolator.EASE_OUT_QUINT); + private final AnimatedFloat previewTheme = new AnimatedFloat(this, 0, 350, CubicBezierInterpolator.EASE_OUT_QUINT); private final AnimatedFloat previewHeightProgress = new AnimatedFloat(this, 0, 350, CubicBezierInterpolator.EASE_OUT_QUINT); private final AnimatedFloat width = new AnimatedFloat(this, 0, 350, CubicBezierInterpolator.EASE_OUT_QUINT); private final AnimatedFloat height = new AnimatedFloat(this, 0, 350, CubicBezierInterpolator.EASE_OUT_QUINT); @@ -341,11 +352,12 @@ public void drawInternal(Canvas canvas) { final float w = width.set(this.w); final float h = height.set(this.h); + final float previewDark = previewTheme.set(previewType == 0); final float preview = previewProgress.set(withPreview()); final float r = AndroidUtilities.lerp(.2f * h, 16.66f * density, preview); bounds.set(padx, pady, padx + w, pady + h); - outlinePaint.setColor(ColorUtils.blendARGB(backgroundColor, 0xFF202429, preview)); + outlinePaint.setColor(ColorUtils.blendARGB(backgroundColor, ColorUtils.blendARGB(0xFFFFFFFF, 0xFF202429, previewDark), preview)); path2.rewind(); path2.addRoundRect(bounds, r, r, Path.Direction.CW); @@ -388,14 +400,14 @@ public void drawInternal(Canvas canvas) { if (hasTitle && titleText != null) { titleText - .draw(canvas, 20 * density, y + titleText.getHeight() / 2f, 0xFFFFFFFF, preview); + .draw(canvas, 20 * density, y + titleText.getHeight() / 2f, ColorUtils.blendARGB(0xFF333333, 0xFFFFFFFF, previewDark), preview); y += titleText.getHeight() + 2.66f * density; } if (hasDescription && descriptionLayout != null) { canvas.save(); canvas.translate(20 * density - descriptionLayoutLeft, y); - descriptionPaint.setColor(0xFFFFFFFF); + descriptionPaint.setColor(ColorUtils.blendARGB(0xFF333333, 0xFFFFFFFF, previewDark)); descriptionPaint.setAlpha((int) (0xFF * preview)); descriptionLayout.draw(canvas); canvas.restore(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/MessageEntityView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/MessageEntityView.java index a5d22456fa..7555d63082 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/MessageEntityView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Paint/Views/MessageEntityView.java @@ -329,6 +329,7 @@ private void drawChatForegroundElements(Canvas canvas) { canvas.translate(canvasOffsetX, canvasOffsetY); cell.setInvalidatesParent(true); cell.drawReactionsLayout(canvas, alpha, null); + cell.drawCommentLayout(canvas, alpha); cell.setInvalidatesParent(false); canvas.restore(); } 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 babbf7c76c..de8f7ed74b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PasscodeView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PasscodeView.java @@ -706,7 +706,7 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) { checkImage.setScaleType(ImageView.ScaleType.CENTER); checkImage.setBackgroundResource(R.drawable.bar_selector_lock); passwordFrameLayout.addView(checkImage, LayoutHelper.createFrame(BUTTON_SIZE, BUTTON_SIZE, Gravity.BOTTOM | Gravity.RIGHT, 0, 0, 10, 4)); - checkImage.setContentDescription(LocaleController.getString("Done", R.string.Done)); + checkImage.setContentDescription(LocaleController.getString(R.string.Done)); checkImage.setOnClickListener(v -> processDone(false)); fingerprintImage = new ImageView(context); @@ -714,7 +714,7 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) { fingerprintImage.setScaleType(ImageView.ScaleType.CENTER); fingerprintImage.setBackgroundResource(R.drawable.bar_selector_lock); passwordFrameLayout.addView(fingerprintImage, LayoutHelper.createFrame(BUTTON_SIZE, BUTTON_SIZE, Gravity.BOTTOM | Gravity.LEFT, 10, 0, 0, 4)); - fingerprintImage.setContentDescription(LocaleController.getString("AccDescrFingerprint", R.string.AccDescrFingerprint)); + fingerprintImage.setContentDescription(LocaleController.getString(R.string.AccDescrFingerprint)); fingerprintImage.setOnClickListener(v -> checkFingerprint()); border = new View(context); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PermanentLinkBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PermanentLinkBottomSheet.java index d5c12b30e2..02739bd8bd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PermanentLinkBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PermanentLinkBottomSheet.java @@ -78,21 +78,21 @@ public PermanentLinkBottomSheet(Context context, boolean needFocus, BaseFragment linkActionView.setDelegate(() -> generateLink(true)); titleView = new TextView(context); - titleView.setText(LocaleController.getString("InviteLink", R.string.InviteLink)); + titleView.setText(LocaleController.getString(R.string.InviteLink)); titleView.setTypeface(AndroidUtilities.bold()); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); titleView.setGravity(Gravity.CENTER_HORIZONTAL); titleView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); subtitle = new TextView(context); - subtitle.setText(isChannel ? LocaleController.getString("LinkInfoChannel", R.string.LinkInfoChannel) : LocaleController.getString("LinkInfo", R.string.LinkInfo)); + subtitle.setText(isChannel ? LocaleController.getString(R.string.LinkInfoChannel) : LocaleController.getString(R.string.LinkInfo)); subtitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); subtitle.setGravity(Gravity.CENTER_HORIZONTAL); subtitle.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); subtitle.setLineSpacing(subtitle.getLineSpacingExtra(), subtitle.getLineSpacingMultiplier() * 1.1f); manage = new TextView(context); - manage.setText(LocaleController.getString("ManageInviteLinks", R.string.ManageInviteLinks)); + manage.setText(LocaleController.getString(R.string.ManageInviteLinks)); manage.setGravity(Gravity.CENTER); manage.setEllipsize(TextUtils.TruncateAt.END); manage.setSingleLine(true); @@ -159,9 +159,9 @@ private void generateLink(boolean showDialog) { if (showDialog && fragment != null) { AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); - builder.setMessage(LocaleController.getString("RevokeAlertNewLink", R.string.RevokeAlertNewLink)); - builder.setTitle(LocaleController.getString("RevokeLink", R.string.RevokeLink)); - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); + builder.setMessage(LocaleController.getString(R.string.RevokeAlertNewLink)); + builder.setTitle(LocaleController.getString(R.string.RevokeLink)); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); fragment.showDialog(builder.create()); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PermissionRequest.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PermissionRequest.java new file mode 100644 index 0000000000..479ceea67a --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PermissionRequest.java @@ -0,0 +1,243 @@ +package org.telegram.ui.Components; + +import android.Manifest; +import android.app.Activity; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Build; +import android.provider.Settings; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.ApplicationLoader; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.LocaleController; +import org.telegram.messenger.NotificationCenter; +import org.telegram.messenger.R; +import org.telegram.messenger.Utilities; +import org.telegram.ui.ActionBar.AlertDialog; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.LaunchActivity; + +public class PermissionRequest { + + private static int lastId = 1500; + + public static void ensurePermission(int iconResId, int stringResId, String permission) { + ensurePermission(iconResId, stringResId, permission, null); + } + + public static void ensurePermission(int iconResId, int stringResId, String permission, Utilities.Callback whenDone) { + ensureEitherPermission(iconResId, stringResId, new String[] { permission }, new String[] { permission }, whenDone); + } + + public static void ensureEitherPermission(int iconResId, int stringResId, String[] permissions, Utilities.Callback whenDone) { + ensureEitherPermission(iconResId, stringResId, permissions, permissions, whenDone); + } + + public static void ensureEitherPermission(int iconResId, int stringResId, String[] checkPermissions, String[] requestPermissions, Utilities.Callback whenDone) { + Activity _activity = LaunchActivity.instance; + if (_activity == null) _activity = AndroidUtilities.findActivity(ApplicationLoader.applicationContext); + if (_activity == null) return; + final Activity activity = _activity; + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + boolean granted = false; + for (String permission : checkPermissions) { + if (activity.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED) { + granted = true; + break; + } + } + if (granted) { + if (whenDone != null) whenDone.run(true); + return; + } + boolean needsPermissionRationale = false; + for (String permission : checkPermissions) { + if (activity.shouldShowRequestPermissionRationale(permission)) { + needsPermissionRationale = true; + break; + } + } + if (needsPermissionRationale) { + new AlertDialog.Builder(activity, null) + .setTopAnimation(iconResId, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)) + .setMessage(AndroidUtilities.replaceTags(LocaleController.getString(stringResId))) + .setPositiveButton(LocaleController.getString(R.string.PermissionOpenSettings), (dialogInterface, i) -> { + try { + Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); + activity.startActivity(intent); + } catch (Exception e) { + FileLog.e(e); + } + }) + .setNegativeButton(LocaleController.getString(R.string.ContactsPermissionAlertNotNow), null) + .create() + .show(); + if (whenDone != null) whenDone.run(false); + return; + } + requestPermissions(requestPermissions, ids -> { + boolean now_granted = false; + for (String permission : requestPermissions) { + if (activity.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED) { + now_granted = true; + break; + } + } + if (whenDone != null) whenDone.run(now_granted); + }); + } else { + if (whenDone != null) whenDone.run(true); + } + } + + public static void ensureAllPermissions(int iconResId, int stringResId, String[] permissions, Utilities.Callback whenDone) { + ensureAllPermissions(iconResId, stringResId, permissions, permissions, whenDone); + } + + public static void ensureAllPermissions(int iconResId, int stringResId, String[] checkPermissions, String[] requestPermissions, Utilities.Callback whenDone) { + Activity _activity = LaunchActivity.instance; + if (_activity == null) _activity = AndroidUtilities.findActivity(ApplicationLoader.applicationContext); + if (_activity == null) return; + final Activity activity = _activity; + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + boolean granted = true; + for (String permission : checkPermissions) { + if (activity.checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) { + granted = false; + break; + } + } + if (granted) { + if (whenDone != null) whenDone.run(true); + return; + } + boolean needsPermissionRationale = false; + for (String permission : checkPermissions) { + if (activity.shouldShowRequestPermissionRationale(permission)) { + needsPermissionRationale = true; + break; + } + } + if (needsPermissionRationale) { + new AlertDialog.Builder(activity, null) + .setTopAnimation(iconResId, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)) + .setMessage(AndroidUtilities.replaceTags(LocaleController.getString(stringResId))) + .setPositiveButton(LocaleController.getString(R.string.PermissionOpenSettings), (dialogInterface, i) -> { + try { + Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); + activity.startActivity(intent); + } catch (Exception e) { + FileLog.e(e); + } + }) + .setNegativeButton(LocaleController.getString(R.string.ContactsPermissionAlertNotNow), null) + .create() + .show(); + if (whenDone != null) whenDone.run(false); + return; + } + requestPermissions(requestPermissions, ids -> { + boolean now_granted = true; + for (String permission : requestPermissions) { + if (activity.checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) { + now_granted = false; + break; + } + } + if (whenDone != null) whenDone.run(now_granted); + }); + } else { + if (whenDone != null) whenDone.run(true); + } + } + + public static void requestPermission(String permission, Utilities.Callback whenDone) { + requestPermissions(new String[] { permission }, whenDone != null ? res -> { + whenDone.run(res.length >= 1 && res[0] == PackageManager.PERMISSION_GRANTED); + } : null); + } + + public static void requestPermissions(String[] permissions, Utilities.Callback whenDone) { + Activity _activity = LaunchActivity.instance; + if (_activity == null) _activity = AndroidUtilities.findActivity(ApplicationLoader.applicationContext); + if (_activity == null) return; + final Activity activity = _activity; + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + final int code = lastId++; + NotificationCenter.NotificationCenterDelegate[] observer = new NotificationCenter.NotificationCenterDelegate[1]; + observer[0] = new NotificationCenter.NotificationCenterDelegate() { + @Override + public void didReceivedNotification(int id, int account, Object... args) { + if (id == NotificationCenter.activityPermissionsGranted) { + int requestCode = (int) args[0]; + String[] permissions = (String[]) args[1]; + int[] grantResults = (int[]) args[2]; + if (requestCode == code) { + if (whenDone != null) { + whenDone.run(grantResults); + } + NotificationCenter.getGlobalInstance().removeObserver(observer[0], NotificationCenter.activityPermissionsGranted); + } + } + } + }; + NotificationCenter.getGlobalInstance().addObserver(observer[0], NotificationCenter.activityPermissionsGranted); + activity.requestPermissions(permissions, code); + } else if (whenDone != null) { + int[] res = new int[ permissions.length ]; + for (int i = 0; i < permissions.length; ++i) { + res[i] = hasPermission(permissions[i]) ? PackageManager.PERMISSION_GRANTED : PackageManager.PERMISSION_DENIED; + } + whenDone.run(res); + } + } + + public static boolean hasPermission(String permission) { + Activity _activity = LaunchActivity.instance; + if (_activity == null) _activity = AndroidUtilities.findActivity(ApplicationLoader.applicationContext); + if (_activity == null) return false; + final Activity activity = _activity; + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + return activity.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED; + } else { + return true; + } + } + + public static boolean canAskPermission(String permission) { + Activity _activity = LaunchActivity.instance; + if (_activity == null) _activity = AndroidUtilities.findActivity(ApplicationLoader.applicationContext); + if (_activity == null) return false; + final Activity activity = _activity; + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + return activity.shouldShowRequestPermissionRationale(permission); + } else { + return false; + } + } + + public static void showPermissionSettings(String permission) { + Activity _activity = LaunchActivity.instance; + if (_activity == null) _activity = AndroidUtilities.findActivity(ApplicationLoader.applicationContext); + if (_activity == null) return; + final Activity activity = _activity; + + final Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); + try { + activity.startActivity(intent); + } catch (Exception x) { + FileLog.e(x); + } + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhonebookShareAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhonebookShareAlert.java index 807a3f55bf..d1c935dba5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhonebookShareAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhonebookShareAlert.java @@ -514,14 +514,14 @@ protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect) { Browser.openUrl(this.parentFragment.getParentActivity(), url); } else { AlertDialog.Builder builder = new AlertDialog.Builder(this.parentFragment.getParentActivity()); - builder.setItems(new CharSequence[]{LocaleController.getString("Copy", R.string.Copy)}, (dialogInterface, i) -> { + builder.setItems(new CharSequence[]{LocaleController.getString(R.string.Copy)}, (dialogInterface, i) -> { if (i == 0) { try { android.content.ClipboardManager clipboard = (android.content.ClipboardManager) ApplicationLoader.applicationContext.getSystemService(Context.CLIPBOARD_SERVICE); android.content.ClipData clip = android.content.ClipData.newPlainText("label", item.getValue(false)); clipboard.setPrimaryClip(clip); if (AndroidUtilities.shouldShowClipboardToast()) { - Toast.makeText(this.parentFragment.getParentActivity(), LocaleController.getString("TextCopied", R.string.TextCopied), Toast.LENGTH_SHORT).show(); + Toast.makeText(this.parentFragment.getParentActivity(), LocaleController.getString(R.string.TextCopied), Toast.LENGTH_SHORT).show(); } } catch (Exception e) { FileLog.e(e); @@ -569,13 +569,13 @@ protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect) { } else { final Bulletin.SimpleLayout layout = new Bulletin.SimpleLayout(context, resourcesProvider); if (item.type == 0) { - layout.textView.setText(LocaleController.getString("PhoneCopied", R.string.PhoneCopied)); + layout.textView.setText(LocaleController.getString(R.string.PhoneCopied)); layout.imageView.setImageResource(R.drawable.msg_calls); } else if (item.type == 1) { - layout.textView.setText(LocaleController.getString("EmailCopied", R.string.EmailCopied)); + layout.textView.setText(LocaleController.getString(R.string.EmailCopied)); layout.imageView.setImageResource(R.drawable.msg_mention); } else { - layout.textView.setText(LocaleController.getString("TextCopied", R.string.TextCopied)); + layout.textView.setText(LocaleController.getString(R.string.TextCopied)); layout.imageView.setImageResource(R.drawable.msg_info); } if (AndroidUtilities.shouldShowClipboardToast()) { @@ -603,9 +603,9 @@ public void setAlpha(float alpha) { actionBar.setOccupyStatusBar(false); actionBar.setAlpha(0.0f); if (isImport) { - actionBar.setTitle(LocaleController.getString("AddContactPhonebookTitle", R.string.AddContactPhonebookTitle)); + actionBar.setTitle(LocaleController.getString(R.string.AddContactPhonebookTitle)); } else { - actionBar.setTitle(LocaleController.getString("ShareContactTitle", R.string.ShareContactTitle)); + actionBar.setTitle(LocaleController.getString(R.string.ShareContactTitle)); } containerView.addView(actionBar, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @@ -633,9 +633,9 @@ public void onItemClick(int id) { buttonTextView.setTextColor(getThemedColor(Theme.key_featuredStickers_buttonText)); buttonTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); if (isImport) { - buttonTextView.setText(LocaleController.getString("AddContactPhonebookTitle", R.string.AddContactPhonebookTitle)); + buttonTextView.setText(LocaleController.getString(R.string.AddContactPhonebookTitle)); } else { - buttonTextView.setText(LocaleController.getString("ShareContactTitle", R.string.ShareContactTitle)); + buttonTextView.setText(LocaleController.getString(R.string.ShareContactTitle)); } buttonTextView.setTypeface(AndroidUtilities.bold()); buttonTextView.setBackground(Theme.createSimpleSelectorRoundRectDrawable(AndroidUtilities.dp(8), getThemedColor(Theme.key_featuredStickers_addButton), getThemedColor(Theme.key_featuredStickers_addButtonPressed))); @@ -643,11 +643,11 @@ public void onItemClick(int id) { buttonTextView.setOnClickListener(v -> { if (isImport) { AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); - builder.setTitle(LocaleController.getString("AddContactTitle", R.string.AddContactTitle)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.AddContactTitle)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.setItems(new CharSequence[]{ - LocaleController.getString("CreateNewContact", R.string.CreateNewContact), - LocaleController.getString("AddToExistingContact", R.string.AddToExistingContact) + LocaleController.getString(R.string.CreateNewContact), + LocaleController.getString(R.string.AddToExistingContact) }, new DialogInterface.OnClickListener() { private void fillRowWithType(String type, ContentValues row) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterView.java index 7ef8b89514..298d86b466 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterView.java @@ -501,7 +501,7 @@ public void onSurfaceTextureUpdated(SurfaceTexture surface) { cancelTextView.setGravity(Gravity.CENTER); cancelTextView.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.ACTION_BAR_PICKER_SELECTOR_COLOR, 0)); cancelTextView.setPadding(AndroidUtilities.dp(20), 0, AndroidUtilities.dp(20), 0); - cancelTextView.setText(LocaleController.getString("Cancel", R.string.Cancel).toUpperCase()); + cancelTextView.setText(LocaleController.getString(R.string.Cancel).toUpperCase()); cancelTextView.setTypeface(AndroidUtilities.bold()); frameLayout.addView(cancelTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); @@ -511,7 +511,7 @@ public void onSurfaceTextureUpdated(SurfaceTexture surface) { doneTextView.setGravity(Gravity.CENTER); doneTextView.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.ACTION_BAR_PICKER_SELECTOR_COLOR, 0)); doneTextView.setPadding(AndroidUtilities.dp(20), 0, AndroidUtilities.dp(20), 0); - doneTextView.setText(LocaleController.getString("Done", R.string.Done).toUpperCase()); + doneTextView.setText(LocaleController.getString(R.string.Done).toUpperCase()); doneTextView.setTypeface(AndroidUtilities.bold()); frameLayout.addView(doneTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.RIGHT)); @@ -590,22 +590,22 @@ public void onSurfaceTextureUpdated(SurfaceTexture surface) { curveTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12); curveTextView.setGravity(Gravity.CENTER_VERTICAL); if (a == 0) { - String str = LocaleController.getString("CurvesAll", R.string.CurvesAll); + String str = LocaleController.getString(R.string.CurvesAll); curveTextView.setText(str.substring(0, 1).toUpperCase() + str.substring(1).toLowerCase()); curveTextView.setTextColor(0xffffffff); curveRadioButton[a].setColor(0xffffffff, 0xffffffff); } else if (a == 1) { - String str = LocaleController.getString("CurvesRed", R.string.CurvesRed); + String str = LocaleController.getString(R.string.CurvesRed); curveTextView.setText(str.substring(0, 1).toUpperCase() + str.substring(1).toLowerCase()); curveTextView.setTextColor(0xffe64d4d); curveRadioButton[a].setColor(0xffe64d4d, 0xffe64d4d); } else if (a == 2) { - String str = LocaleController.getString("CurvesGreen", R.string.CurvesGreen); + String str = LocaleController.getString(R.string.CurvesGreen); curveTextView.setText(str.substring(0, 1).toUpperCase() + str.substring(1).toLowerCase()); curveTextView.setTextColor(0xff5abb5f); curveRadioButton[a].setColor(0xff5abb5f, 0xff5abb5f); } else if (a == 3) { - String str = LocaleController.getString("CurvesBlue", R.string.CurvesBlue); + String str = LocaleController.getString(R.string.CurvesBlue); curveTextView.setText(str.substring(0, 1).toUpperCase() + str.substring(1).toLowerCase()); curveTextView.setTextColor(0xff3dadee); curveRadioButton[a].setColor(0xff3dadee, 0xff3dadee); @@ -631,7 +631,7 @@ public void onSurfaceTextureUpdated(SurfaceTexture surface) { blurOffButton.setCompoundDrawablePadding(AndroidUtilities.dp(2)); blurOffButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); blurOffButton.setGravity(Gravity.CENTER_HORIZONTAL); - blurOffButton.setText(LocaleController.getString("BlurOff", R.string.BlurOff)); + blurOffButton.setText(LocaleController.getString(R.string.BlurOff)); blurLayout.addView(blurOffButton, LayoutHelper.createFrame(80, 60)); blurOffButton.setOnClickListener(v -> { blurType = 0; @@ -646,7 +646,7 @@ public void onSurfaceTextureUpdated(SurfaceTexture surface) { blurRadialButton.setCompoundDrawablePadding(AndroidUtilities.dp(2)); blurRadialButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); blurRadialButton.setGravity(Gravity.CENTER_HORIZONTAL); - blurRadialButton.setText(LocaleController.getString("BlurRadial", R.string.BlurRadial)); + blurRadialButton.setText(LocaleController.getString(R.string.BlurRadial)); blurLayout.addView(blurRadialButton, LayoutHelper.createFrame(80, 80, Gravity.LEFT | Gravity.TOP, 100, 0, 0, 0)); blurRadialButton.setOnClickListener(v -> { blurType = 1; @@ -662,7 +662,7 @@ public void onSurfaceTextureUpdated(SurfaceTexture surface) { blurLinearButton.setCompoundDrawablePadding(AndroidUtilities.dp(2)); blurLinearButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); blurLinearButton.setGravity(Gravity.CENTER_HORIZONTAL); - blurLinearButton.setText(LocaleController.getString("BlurLinear", R.string.BlurLinear)); + blurLinearButton.setText(LocaleController.getString(R.string.BlurLinear)); blurLayout.addView(blurLinearButton, LayoutHelper.createFrame(80, 80, Gravity.LEFT | Gravity.TOP, 200, 0, 0, 0)); blurLinearButton.setOnClickListener(v -> { blurType = 2; @@ -1201,7 +1201,7 @@ public void setEnhanceValue(float value) { for (int i = 0; i < recyclerListView.getChildCount(); ++i) { View child = recyclerListView.getChildAt(i); if (child instanceof PhotoEditToolCell && recyclerListView.getChildAdapterPosition(child) == enhanceTool) { - ((PhotoEditToolCell) child).setIconAndTextAndValue(LocaleController.getString("Enhance", R.string.Enhance), enhanceValue, 0, 100); + ((PhotoEditToolCell) child).setIconAndTextAndValue(LocaleController.getString(R.string.Enhance), enhanceValue, 0, 100); break; } } @@ -1296,29 +1296,29 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int i) { PhotoEditToolCell cell = (PhotoEditToolCell) holder.itemView; cell.setTag(i); if (i == enhanceTool) { - cell.setIconAndTextAndValue(LocaleController.getString("Enhance", R.string.Enhance), enhanceValue, 0, 100); + cell.setIconAndTextAndValue(LocaleController.getString(R.string.Enhance), enhanceValue, 0, 100); } else if (i == highlightsTool) { - cell.setIconAndTextAndValue(LocaleController.getString("Highlights", R.string.Highlights), highlightsValue, -100, 100); + cell.setIconAndTextAndValue(LocaleController.getString(R.string.Highlights), highlightsValue, -100, 100); } else if (i == contrastTool) { - cell.setIconAndTextAndValue(LocaleController.getString("Contrast", R.string.Contrast), contrastValue, -100, 100); + cell.setIconAndTextAndValue(LocaleController.getString(R.string.Contrast), contrastValue, -100, 100); } else if (i == exposureTool) { - cell.setIconAndTextAndValue(LocaleController.getString("Exposure", R.string.Exposure), exposureValue, -100, 100); + cell.setIconAndTextAndValue(LocaleController.getString(R.string.Exposure), exposureValue, -100, 100); } else if (i == warmthTool) { - cell.setIconAndTextAndValue(LocaleController.getString("Warmth", R.string.Warmth), warmthValue, -100, 100); + cell.setIconAndTextAndValue(LocaleController.getString(R.string.Warmth), warmthValue, -100, 100); } else if (i == saturationTool) { - cell.setIconAndTextAndValue(LocaleController.getString("Saturation", R.string.Saturation), saturationValue, -100, 100); + cell.setIconAndTextAndValue(LocaleController.getString(R.string.Saturation), saturationValue, -100, 100); } else if (i == vignetteTool) { - cell.setIconAndTextAndValue(LocaleController.getString("Vignette", R.string.Vignette), vignetteValue, 0, 100); + cell.setIconAndTextAndValue(LocaleController.getString(R.string.Vignette), vignetteValue, 0, 100); } else if (i == shadowsTool) { - cell.setIconAndTextAndValue(LocaleController.getString("Shadows", R.string.Shadows), shadowsValue, -100, 100); + cell.setIconAndTextAndValue(LocaleController.getString(R.string.Shadows), shadowsValue, -100, 100); } else if (i == grainTool) { - cell.setIconAndTextAndValue(LocaleController.getString("Grain", R.string.Grain), grainValue, 0, 100); + cell.setIconAndTextAndValue(LocaleController.getString(R.string.Grain), grainValue, 0, 100); } else if (i == sharpenTool) { - cell.setIconAndTextAndValue(LocaleController.getString("Sharpen", R.string.Sharpen), sharpenValue, 0, 100); + cell.setIconAndTextAndValue(LocaleController.getString(R.string.Sharpen), sharpenValue, 0, 100); } else if (i == fadeTool) { - cell.setIconAndTextAndValue(LocaleController.getString("Fade", R.string.Fade), fadeValue, 0, 100); + cell.setIconAndTextAndValue(LocaleController.getString(R.string.Fade), fadeValue, 0, 100); } else if (i == softenSkinTool) { - cell.setIconAndTextAndValue(LocaleController.getString("SoftenSkin", R.string.SoftenSkin), softenSkinValue, 0, 100); + cell.setIconAndTextAndValue(LocaleController.getString(R.string.SoftenSkin), softenSkinValue, 0, 100); } break; } @@ -1326,9 +1326,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int i) { PhotoEditRadioCell cell = (PhotoEditRadioCell) holder.itemView; cell.setTag(i); if (i == tintShadowsTool) { - cell.setIconAndTextAndValue(LocaleController.getString("TintShadows", R.string.TintShadows), 0, tintShadowsColor); + cell.setIconAndTextAndValue(LocaleController.getString(R.string.TintShadows), 0, tintShadowsColor); } else if (i == tintHighlightsTool) { - cell.setIconAndTextAndValue(LocaleController.getString("TintHighlights", R.string.TintHighlights), 0, tintHighlightsColor); + cell.setIconAndTextAndValue(LocaleController.getString(R.string.TintHighlights), 0, tintHighlightsColor); } break; } @@ -1390,7 +1390,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { bottomTextPaint.setTextSize(AndroidUtilities.dp(58)); if (topText == null) { - topText = new StaticLayout(LocaleController.getString("Enhance", R.string.Enhance), topTextPaint, getMeasuredWidth(), Layout.Alignment.ALIGN_NORMAL, 1f, 0f, false); + topText = new StaticLayout(LocaleController.getString(R.string.Enhance), topTextPaint, getMeasuredWidth(), Layout.Alignment.ALIGN_NORMAL, 1f, 0f, false); topTextWidth = topText.getLineCount() > 0 ? topText.getLineWidth(0) : 0; topTextLeft = topText.getLineCount() > 0 ? topText.getLineLeft(0) : 0; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoViewerCaptionEnterView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoViewerCaptionEnterView.java index 4983b120c1..32a0d2a993 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoViewerCaptionEnterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoViewerCaptionEnterView.java @@ -161,7 +161,7 @@ public PhotoViewerCaptionEnterView(PhotoViewer photoViewer, Context context, Siz openKeyboardInternal(); } }); - emojiButton.setContentDescription(LocaleController.getString("Emoji", R.string.Emoji)); + emojiButton.setContentDescription(LocaleController.getString(R.string.Emoji)); emojiButton.setImageDrawable(emojiIconDrawable = new ReplaceableIconDrawable(context)); emojiIconDrawable.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.MULTIPLY)); emojiIconDrawable.setIcon(R.drawable.input_smile, false); @@ -240,7 +240,7 @@ public long getCurrentChat() { } }); messageEditText.setWindowView(windowView); - messageEditText.setHint(LocaleController.getString("AddCaption", R.string.AddCaption)); + messageEditText.setHint(LocaleController.getString(R.string.AddCaption)); messageEditText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI); messageEditText.setLinkTextColor(0xff76c2f1); messageEditText.setInputType(messageEditText.getInputType() | EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES); @@ -406,7 +406,7 @@ public void onAnimationEnd(Animator animation) { } delegate.onCaptionEnter(); }); - doneButton.setContentDescription(LocaleController.getString("Done", R.string.Done)); + doneButton.setContentDescription(LocaleController.getString(R.string.Done)); captionLimitView = new NumberTextView(context); captionLimitView.setVisibility(View.GONE); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PickerBottomLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PickerBottomLayout.java index ca700bef3b..e532728ddf 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PickerBottomLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PickerBottomLayout.java @@ -52,7 +52,7 @@ public PickerBottomLayout(Context context, boolean darkTheme, Theme.ResourcesPro cancelButton.setGravity(Gravity.CENTER); cancelButton.setBackground(Theme.createSelectorDrawable(Theme.getColor(Theme.key_picker_enabledButton, resourcesProvider) & 0x0fffffff, 0)); cancelButton.setPadding(AndroidUtilities.dp(33), 0, AndroidUtilities.dp(33), 0); - cancelButton.setText(LocaleController.getString("Cancel", R.string.Cancel).toUpperCase()); + cancelButton.setText(LocaleController.getString(R.string.Cancel).toUpperCase()); cancelButton.setTypeface(AndroidUtilities.bold()); addView(cancelButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); @@ -98,7 +98,7 @@ public PickerBottomLayout(Context context, boolean darkTheme, Theme.ResourcesPro doneButtonTextView.setTextColor(Theme.getColor(Theme.key_picker_enabledButton, resourcesProvider)); doneButtonTextView.setGravity(Gravity.CENTER); doneButtonTextView.setCompoundDrawablePadding(AndroidUtilities.dp(8)); - doneButtonTextView.setText(LocaleController.getString("Send", R.string.Send).toUpperCase()); + doneButtonTextView.setText(LocaleController.getString(R.string.Send).toUpperCase()); doneButtonTextView.setTypeface(AndroidUtilities.bold()); doneButton.addView(doneButtonTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_VERTICAL)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PickerBottomLayoutViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PickerBottomLayoutViewer.java index 67a83f4f32..c755a5daec 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PickerBottomLayoutViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PickerBottomLayoutViewer.java @@ -44,7 +44,7 @@ public PickerBottomLayoutViewer(Context context, boolean darkTheme) { cancelButton.setGravity(Gravity.CENTER); cancelButton.setBackgroundDrawable(Theme.createSelectorDrawable(isDarkTheme ? Theme.ACTION_BAR_PICKER_SELECTOR_COLOR : Theme.ACTION_BAR_AUDIO_SELECTOR_COLOR, 0)); cancelButton.setPadding(AndroidUtilities.dp(20), 0, AndroidUtilities.dp(20), 0); - cancelButton.setText(LocaleController.getString("Cancel", R.string.Cancel).toUpperCase()); + cancelButton.setText(LocaleController.getString(R.string.Cancel).toUpperCase()); cancelButton.setTypeface(AndroidUtilities.bold()); addView(cancelButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); @@ -54,7 +54,7 @@ public PickerBottomLayoutViewer(Context context, boolean darkTheme) { doneButton.setGravity(Gravity.CENTER); doneButton.setBackgroundDrawable(Theme.createSelectorDrawable(isDarkTheme ? Theme.ACTION_BAR_PICKER_SELECTOR_COLOR : Theme.ACTION_BAR_AUDIO_SELECTOR_COLOR, 0)); doneButton.setPadding(AndroidUtilities.dp(20), 0, AndroidUtilities.dp(20), 0); - doneButton.setText(LocaleController.getString("Send", R.string.Send).toUpperCase()); + doneButton.setText(LocaleController.getString(R.string.Send).toUpperCase()); doneButton.setTypeface(AndroidUtilities.bold()); addView(doneButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.RIGHT)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PipRoundVideoView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PipRoundVideoView.java index 5ddb693e6e..9850386828 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PipRoundVideoView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PipRoundVideoView.java @@ -290,6 +290,7 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { windowLayoutParams.gravity = Gravity.TOP | Gravity.LEFT; windowLayoutParams.type = WindowManager.LayoutParams.LAST_APPLICATION_WINDOW; windowLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, windowView, windowLayoutParams); windowManager.addView(windowView, windowLayoutParams); } catch (Exception e) { FileLog.e(e); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PipVideoOverlay.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PipVideoOverlay.java index 2e55a79a99..70e5cd7c6f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PipVideoOverlay.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PipVideoOverlay.java @@ -928,6 +928,7 @@ public boolean dispatchTouchEvent(MotionEvent ev) { protected void onConfigurationChanged(Configuration newConfig) { AndroidUtilities.checkDisplaySize(getContext(), newConfig); pipConfig = null; + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, contentView, windowLayoutParams); if (pipWidth != getSuggestedWidth() * scaleFactor || pipHeight != getSuggestedHeight() * scaleFactor) { windowLayoutParams.width = pipWidth = (int) (getSuggestedWidth() * scaleFactor); @@ -1127,6 +1128,7 @@ protected void onDraw(Canvas canvas) { windowLayoutParams.dimAmount = 0f; windowLayoutParams.flags = FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, contentView, windowLayoutParams); // Animate is a flag for PhotoViewer transition, not ours if (animate) { windowManager.addView(contentView, windowLayoutParams); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PollVotesAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PollVotesAlert.java index 76d6607800..29f80cbb84 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PollVotesAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PollVotesAlert.java @@ -251,9 +251,9 @@ public void setText(CharSequence left, ArrayList entities, righTextView.setText(LocaleController.formatPluralString("Vote", votesCount), animated); } } else if (collapsed == 1) { - righTextView.setText(LocaleController.getString("PollExpand", R.string.PollExpand), animated); + righTextView.setText(LocaleController.getString(R.string.PollExpand), animated); } else { - righTextView.setText(LocaleController.getString("PollCollapse", R.string.PollCollapse), animated); + righTextView.setText(LocaleController.getString(R.string.PollCollapse), animated); } } } @@ -946,7 +946,7 @@ public void setAlpha(float alpha) { actionBar.setSubtitleColor(Theme.getColor(Theme.key_player_actionBarSubtitle)); actionBar.setOccupyStatusBar(false); actionBar.setAlpha(0.0f); - actionBar.setTitle(LocaleController.getString("PollResults", R.string.PollResults)); + actionBar.setTitle(LocaleController.getString(R.string.PollResults)); if (poll.quiz) { actionBar.setSubtitle(LocaleController.formatPluralString("Answer", mediaPoll.results.total_voters)); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/AboutPremiumView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/AboutPremiumView.java index 37fb049693..ecfff3027e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/AboutPremiumView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/AboutPremiumView.java @@ -24,19 +24,19 @@ public AboutPremiumView(@NonNull Context context) { textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); textView.setTypeface(AndroidUtilities.bold()); - textView.setText(LocaleController.getString("AboutPremiumTitle", R.string.AboutPremiumTitle)); + textView.setText(LocaleController.getString(R.string.AboutPremiumTitle)); addView(textView); TextView description = new TextView(context); description.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); description.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); - description.setText(AndroidUtilities.replaceTags(LocaleController.getString("AboutPremiumDescription", R.string.AboutPremiumDescription))); + description.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.AboutPremiumDescription))); addView(description, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 0, 0, 0, 0)); TextView description2 = new TextView(context); description2.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); description2.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); - description2.setText(AndroidUtilities.replaceTags(LocaleController.getString("AboutPremiumDescription2", R.string.AboutPremiumDescription2))); + description2.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.AboutPremiumDescription2))); addView(description2, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 0, 24, 0, 0)); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/DoubledLimitsBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/DoubledLimitsBottomSheet.java index 04e6e2dffb..b6e94fad15 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/DoubledLimitsBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/DoubledLimitsBottomSheet.java @@ -63,7 +63,7 @@ public DoubledLimitsBottomSheet(BaseFragment fragment, int currentAccount, Premi titleLayout = new FrameLayout(getContext()); titleView = new TextView(getContext()); - titleView.setText(LocaleController.getString("DoubledLimits", R.string.DoubledLimits)); + titleView.setText(LocaleController.getString(R.string.DoubledLimits)); titleView.setGravity(Gravity.CENTER); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); titleView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); @@ -105,7 +105,7 @@ protected void onDraw(Canvas canvas) { private void bindPremium(boolean hasPremium) { if (hasPremium) { - premiumButtonView.setOverlayText(LocaleController.getString("OK", R.string.OK), false, false); + premiumButtonView.setOverlayText(LocaleController.getString(R.string.OK), false, false); } } @@ -275,52 +275,52 @@ public Adapter(int currentAccount, boolean drawHeader, Theme.ResourcesProvider r MessagesController messagesController = MessagesController.getInstance(currentAccount); limits.add(new Limit( - LocaleController.getString("GroupsAndChannelsLimitTitle", R.string.GroupsAndChannelsLimitTitle), + LocaleController.getString(R.string.GroupsAndChannelsLimitTitle), LocaleController.formatString("GroupsAndChannelsLimitSubtitle", R.string.GroupsAndChannelsLimitSubtitle, messagesController.channelsLimitPremium), messagesController.channelsLimitDefault, messagesController.channelsLimitPremium )); limits.add(new Limit( - LocaleController.getString("PinChatsLimitTitle", R.string.PinChatsLimitTitle), + LocaleController.getString(R.string.PinChatsLimitTitle), LocaleController.formatString("PinChatsLimitSubtitle", R.string.PinChatsLimitSubtitle, messagesController.dialogFiltersPinnedLimitPremium), messagesController.dialogFiltersPinnedLimitDefault, messagesController.dialogFiltersPinnedLimitPremium )); limits.add(new Limit( - LocaleController.getString("PublicLinksLimitTitle", R.string.PublicLinksLimitTitle), + LocaleController.getString(R.string.PublicLinksLimitTitle), LocaleController.formatString("PublicLinksLimitSubtitle", R.string.PublicLinksLimitSubtitle, messagesController.publicLinksLimitPremium), messagesController.publicLinksLimitDefault, messagesController.publicLinksLimitPremium )); limits.add(new Limit( - LocaleController.getString("SavedGifsLimitTitle", R.string.SavedGifsLimitTitle), + LocaleController.getString(R.string.SavedGifsLimitTitle), LocaleController.formatString("SavedGifsLimitSubtitle", R.string.SavedGifsLimitSubtitle, messagesController.savedGifsLimitPremium), messagesController.savedGifsLimitDefault, messagesController.savedGifsLimitPremium )); limits.add(new Limit( - LocaleController.getString("FavoriteStickersLimitTitle", R.string.FavoriteStickersLimitTitle), + LocaleController.getString(R.string.FavoriteStickersLimitTitle), LocaleController.formatString("FavoriteStickersLimitSubtitle", R.string.FavoriteStickersLimitSubtitle, messagesController.stickersFavedLimitPremium), messagesController.stickersFavedLimitDefault, messagesController.stickersFavedLimitPremium )); limits.add(new Limit( - LocaleController.getString("BioLimitTitle", R.string.BioLimitTitle), + LocaleController.getString(R.string.BioLimitTitle), LocaleController.formatString("BioLimitSubtitle", R.string.BioLimitSubtitle, messagesController.stickersFavedLimitPremium), messagesController.aboutLengthLimitDefault, messagesController.aboutLengthLimitPremium )); limits.add(new Limit( - LocaleController.getString("CaptionsLimitTitle", R.string.CaptionsLimitTitle), + LocaleController.getString(R.string.CaptionsLimitTitle), LocaleController.formatString("CaptionsLimitSubtitle", R.string.CaptionsLimitSubtitle, messagesController.stickersFavedLimitPremium), messagesController.captionLengthLimitDefault, messagesController.captionLengthLimitPremium )); limits.add(new Limit( - LocaleController.getString("FoldersLimitTitle", R.string.FoldersLimitTitle), + LocaleController.getString(R.string.FoldersLimitTitle), LocaleController.formatString("FoldersLimitSubtitle", R.string.FoldersLimitSubtitle, messagesController.dialogFiltersLimitPremium), messagesController.dialogFiltersLimitDefault, messagesController.dialogFiltersLimitPremium )); limits.add(new Limit( - LocaleController.getString("ChatPerFolderLimitTitle", R.string.ChatPerFolderLimitTitle), + LocaleController.getString(R.string.ChatPerFolderLimitTitle), LocaleController.formatString("ChatPerFolderLimitSubtitle", R.string.ChatPerFolderLimitSubtitle, messagesController.dialogFiltersChatsLimitPremium), messagesController.dialogFiltersChatsLimitDefault, messagesController.dialogFiltersChatsLimitPremium )); limits.add(new Limit( - LocaleController.getString("ConnectedAccountsLimitTitle", R.string.ConnectedAccountsLimitTitle), + LocaleController.getString(R.string.ConnectedAccountsLimitTitle), LocaleController.formatString("ConnectedAccountsLimitSubtitle", R.string.ConnectedAccountsLimitSubtitle, 4), 16, 4 )); @@ -371,7 +371,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { linearLayout.addView(titleImage, LayoutHelper.createFrame(40, 28, Gravity.CENTER_VERTICAL, 0, 0, 8, 0)); TextView titleView = new TextView(context); - titleView.setText(LocaleController.getString("DoubledLimits", R.string.DoubledLimits)); + titleView.setText(LocaleController.getString(R.string.DoubledLimits)); titleView.setGravity(Gravity.CENTER); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); titleView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/FeaturesPageView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/FeaturesPageView.java index ba5f2f84ee..9584819065 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/FeaturesPageView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/FeaturesPageView.java @@ -69,13 +69,13 @@ public FeaturesPageView(Context context, int type, Theme.ResourcesProvider resou SparseIntArray order = null; if (type == FEATURES_STORIES) { itemsTmp.add(new Item(VIEW_TYPE_ITEM, R.drawable.msg_stories_order, - LocaleController.getString("PremiumStoriesPriority", R.string.PremiumStoriesPriority), - LocaleController.getString("PremiumStoriesPriorityDescription", R.string.PremiumStoriesPriorityDescription), + LocaleController.getString(R.string.PremiumStoriesPriority), + LocaleController.getString(R.string.PremiumStoriesPriorityDescription), PremiumPreviewFragment.PREMIUM_FEATURE_STORIES_PRIORITY_ORDER )); itemsTmp.add(new Item(VIEW_TYPE_ITEM, R.drawable.msg_stories_stealth, - LocaleController.getString("PremiumStoriesStealth", R.string.PremiumStoriesStealth), - LocaleController.getString("PremiumStoriesStealthDescription", R.string.PremiumStoriesStealthDescription), + LocaleController.getString(R.string.PremiumStoriesStealth), + LocaleController.getString(R.string.PremiumStoriesStealthDescription), PremiumPreviewFragment.PREMIUM_FEATURE_STORIES_STEALTH_MODE )); itemsTmp.add(new Item(VIEW_TYPE_ITEM, R.drawable.menu_quality_hd, @@ -84,28 +84,28 @@ public FeaturesPageView(Context context, int type, Theme.ResourcesProvider resou PremiumPreviewFragment.PREMIUM_FEATURE_STORIES_QUALITY )); itemsTmp.add(new Item(VIEW_TYPE_ITEM, R.drawable.msg_stories_views, - LocaleController.getString("PremiumStoriesViews", R.string.PremiumStoriesViews), - LocaleController.getString("PremiumStoriesViewsDescription", R.string.PremiumStoriesViewsDescription), + LocaleController.getString(R.string.PremiumStoriesViews), + LocaleController.getString(R.string.PremiumStoriesViewsDescription), PremiumPreviewFragment.PREMIUM_FEATURE_STORIES_VIEWS_HISTORY )); itemsTmp.add(new Item(VIEW_TYPE_ITEM, R.drawable.msg_stories_timer, - LocaleController.getString("PremiumStoriesExpiration", R.string.PremiumStoriesExpiration), - LocaleController.getString("PremiumStoriesExpirationDescription", R.string.PremiumStoriesExpirationDescription), + LocaleController.getString(R.string.PremiumStoriesExpiration), + LocaleController.getString(R.string.PremiumStoriesExpirationDescription), PremiumPreviewFragment.PREMIUM_FEATURE_STORIES_EXPIRATION_DURATION )); itemsTmp.add(new Item(VIEW_TYPE_ITEM, R.drawable.msg_stories_save, - LocaleController.getString("PremiumStoriesSaveToGallery", R.string.PremiumStoriesSaveToGallery), - LocaleController.getString("PremiumStoriesSaveToGalleryDescription", R.string.PremiumStoriesSaveToGalleryDescription), + LocaleController.getString(R.string.PremiumStoriesSaveToGallery), + LocaleController.getString(R.string.PremiumStoriesSaveToGalleryDescription), PremiumPreviewFragment.PREMIUM_FEATURE_STORIES_SAVE_TO_GALLERY )); itemsTmp.add(new Item(VIEW_TYPE_ITEM, R.drawable.msg_stories_caption, - LocaleController.getString("PremiumStoriesCaption", R.string.PremiumStoriesCaption), - LocaleController.getString("PremiumStoriesCaptionDescription", R.string.PremiumStoriesCaptionDescription), + LocaleController.getString(R.string.PremiumStoriesCaption), + LocaleController.getString(R.string.PremiumStoriesCaptionDescription), PremiumPreviewFragment.PREMIUM_FEATURE_STORIES_CAPTION )); itemsTmp.add(new Item(VIEW_TYPE_ITEM, R.drawable.msg_stories_link, - LocaleController.getString("PremiumStoriesFormatting", R.string.PremiumStoriesFormatting), - LocaleController.getString("PremiumStoriesFormattingDescription", R.string.PremiumStoriesFormattingDescription), + LocaleController.getString(R.string.PremiumStoriesFormatting), + LocaleController.getString(R.string.PremiumStoriesFormattingDescription), PremiumPreviewFragment.PREMIUM_FEATURE_STORIES_LINKS_AND_FORMATTING )); } else if (type == FEATURES_BUSINESS) { @@ -279,7 +279,7 @@ public HeaderView(Context context) { textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); textView.setTypeface(AndroidUtilities.bold()); textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); - textView.setText(LocaleController.getString("UpgradedStories", R.string.UpgradedStories)); + textView.setText(LocaleController.getString(R.string.UpgradedStories)); addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 0, 111, 0, 0)); gradientTools.isLinear = true; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GLIcon/GLIconRenderer.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GLIcon/GLIconRenderer.java index 60ba90c581..61c6bcdd40 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GLIcon/GLIconRenderer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GLIcon/GLIconRenderer.java @@ -20,8 +20,10 @@ public class GLIconRenderer implements GLSurfaceView.Renderer { public Icon3D model; public float angleX = 0; public float angleX2 = 0; + public float angleX3 = 0; public float angleY = 0; public float white = 0; + public float golden = 0; private static final float Z_NEAR = 1f; private static final float Z_FAR = 200f; @@ -47,6 +49,9 @@ public class GLIconRenderer implements GLSurfaceView.Renderer { public int colorKey1 = Theme.key_premiumStarGradient1; public int colorKey2 = Theme.key_premiumStarGradient2; + public int goldenColorKey1 = Theme.key_starsGradient1; + public int goldenColorKey2 = Theme.key_starsGradient2; + private final int style; private final int type; public final static int FRAGMENT_STYLE = 0; @@ -57,6 +62,9 @@ public GLIconRenderer(Context context, int style, int type) { this.context = context; this.style = style; this.type = type; + if (type == Icon3D.TYPE_GOLDEN_STAR) { + this.golden = 1f; + } updateColors(); } @@ -119,7 +127,7 @@ public void onDrawFrame(GL10 glUnused) { Matrix.translateM(mRotationMatrix, 0, 0, angleX2, 0); Matrix.rotateM(mRotationMatrix, 0, -angleY, 1f, 0, 0f); - Matrix.rotateM(mRotationMatrix, 0, -angleX, 0, 1.0f, 0); + Matrix.rotateM(mRotationMatrix, 0, -angleX - angleX3, 0, 1.0f, 0); Matrix.multiplyMM(mMVPMatrix, 0, mViewMatrix, 0, mRotationMatrix, 0); Matrix.multiplyMM(mMVPMatrix, 0, mProjectionMatrix, 0, mMVPMatrix, 0); @@ -128,7 +136,7 @@ public void onDrawFrame(GL10 glUnused) { model.night = night; model.gradientColor1 = color1; model.gradientColor2 = color2; - model.draw(mMVPMatrix, mRotationMatrix, mWidth, mHeight, gradientStartX, gradientScaleX, gradientStartY, gradientScaleY, white, dt); + model.draw(mMVPMatrix, mRotationMatrix, mWidth, mHeight, gradientStartX, gradientScaleX, gradientStartY, gradientScaleY, white, golden, dt); } } @@ -151,8 +159,8 @@ public void setBackground(Bitmap gradientTextureBitmap) { public void updateColors() { night = forceNight || ColorUtils.calculateLuminance(Theme.getColor(Theme.key_dialogBackground)) < 0.5f; - color1 = Theme.getColor(colorKey1); - color2 = Theme.getColor(colorKey2); + color1 = ColorUtils.blendARGB(Theme.getColor(colorKey1), Theme.getColor(goldenColorKey1), golden); + color2 = ColorUtils.blendARGB(Theme.getColor(colorKey2), Theme.getColor(goldenColorKey2), golden); isDarkBackground = style == DIALOG_STYLE && ColorUtils.calculateLuminance(Theme.getColor(Theme.key_dialogBackground)) < 0.5f; } } \ No newline at end of file diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GLIcon/GLIconTextureView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GLIcon/GLIconTextureView.java index 422ca0c40c..58772b2f78 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GLIcon/GLIconTextureView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GLIcon/GLIconTextureView.java @@ -283,7 +283,13 @@ private class RenderThread extends Thread { public void run() { isRunning = true; - initGL(); + try { + initGL(); + } catch (Exception e) { + FileLog.e(e); + isRunning = false; + return; + } checkGlError(); long lastFrameTime = System.currentTimeMillis(); @@ -302,16 +308,21 @@ public void run() { rendererChanged = false; } - if (!shouldSleep()) { - final long now = System.currentTimeMillis(); - float dt = (now - lastFrameTime) / 1000f; - lastFrameTime = now; - drawSingleFrame(dt); - if (!ready) { - ready = true; - AndroidUtilities.runOnUIThread(readyListener); - readyListener = null; + try { + if (!shouldSleep()) { + final long now = System.currentTimeMillis(); + float dt = (now - lastFrameTime) / 1000f; + lastFrameTime = now; + drawSingleFrame(dt); + if (!ready) { + ready = true; + AndroidUtilities.runOnUIThread(readyListener); + readyListener = null; + } } + } catch (Exception e) { + FileLog.e(e); + break; } try { @@ -486,7 +497,7 @@ public boolean onTouchEvent(MotionEvent event) { return gestureDetector.onTouchEvent(event); } - private void startBackAnimation() { + public void startBackAnimation() { cancelAnimatons(); float fromX = mRenderer.angleX; float fromY = mRenderer.angleY; @@ -509,7 +520,7 @@ private void startBackAnimation() { scheduleIdleAnimation(idleDelay); } - private void cancelAnimatons() { + public void cancelAnimatons() { if (backAnimation != null) { backAnimation.removeAllListeners(); backAnimation.cancel(); @@ -568,7 +579,7 @@ public void run() { mRenderer.angleY = (float) valueAnimator.getAnimatedValue(); }; - private void scheduleIdleAnimation(long time) { + public void scheduleIdleAnimation(long time) { AndroidUtilities.cancelRunOnUIThread(idleAnimation); if (dialogIsVisible) { return; @@ -576,6 +587,10 @@ private void scheduleIdleAnimation(long time) { AndroidUtilities.runOnUIThread(idleAnimation, time); } + public void cancelIdleAnimation() { + AndroidUtilities.cancelRunOnUIThread(idleAnimation); + } + protected void startIdleAnimation() { if (!attached) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GLIcon/Icon3D.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GLIcon/Icon3D.java index 46a0e1e19d..38621484b8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GLIcon/Icon3D.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/GLIcon/Icon3D.java @@ -45,6 +45,7 @@ public class Icon3D { private int alphaHandle; private int mTextureDataHandle; private int whiteHandle; + private int goldenHandle; float xOffset; int[] trianglesCount; @@ -137,12 +138,10 @@ public Icon3D(Context context, int type) { vertexShader = GLIconRenderer.loadShader(GLES20.GL_VERTEX_SHADER, loadFromAsset(context, "shaders/vertex2.glsl")); String fragmentShaderSource; - if (type == TYPE_STAR) { - fragmentShaderSource = "shaders/fragment2.glsl"; - } else if (type == TYPE_COIN) { - fragmentShaderSource = "shaders/fragment3.glsl"; - } else { + if (type == TYPE_STAR || type == TYPE_GOLDEN_STAR) { fragmentShaderSource = "shaders/fragment4.glsl"; + } else { + fragmentShaderSource = "shaders/fragment3.glsl"; } fragmentShader = GLIconRenderer.loadShader(GLES20.GL_FRAGMENT_SHADER, loadFromAsset(context, fragmentShaderSource)); @@ -174,6 +173,7 @@ private void init(Context context) { mMVPMatrixHandle = GLES20.glGetUniformLocation(mProgramObject, "uMVPMatrix"); mWorldMatrixHandle = GLES20.glGetUniformLocation(mProgramObject, "world"); whiteHandle = GLES20.glGetUniformLocation(mProgramObject, "white"); + goldenHandle = GLES20.glGetUniformLocation(mProgramObject, "golden"); specHandleTop = GLES20.glGetUniformLocation(mProgramObject, "spec1"); specHandleBottom = GLES20.glGetUniformLocation(mProgramObject, "spec2"); @@ -243,12 +243,12 @@ private void init(Context context) { if (type == TYPE_STAR || type == TYPE_GOLDEN_STAR) { Bitmap bitmap; - if (type == TYPE_GOLDEN_STAR) { +// if (type == TYPE_GOLDEN_STAR) { bitmap = SvgHelper.getBitmap(R.raw.start_texture, 240, 240, Color.WHITE); - } else { - bitmap = SvgHelper.getBitmap(R.raw.start_texture, 80, 80, Color.WHITE); - Utilities.stackBlurBitmap(bitmap, 3); - } +// } else { +// bitmap = SvgHelper.getBitmap(R.raw.start_texture, 80, 80, Color.WHITE); +// Utilities.stackBlurBitmap(bitmap, 3); +// } final int[] texture = new int[1]; GLES20.glGenTextures(1, texture, 0); @@ -314,7 +314,7 @@ private void generateTexture() { private float time = 0f; - public void draw(float[] mvpMatrix, float[] worldMatrix, int width, int height, float gradientStartX, float gradientScaleX, float gradientStartY, float gradientScaleY, float white, float dt) { + public void draw(float[] mvpMatrix, float[] worldMatrix, int width, int height, float gradientStartX, float gradientScaleX, float gradientStartY, float gradientScaleY, float white, float golden, float dt) { if (backgroundBitmap != null) { GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mBackgroundTextureHandle); GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, backgroundBitmap, 0); @@ -324,6 +324,7 @@ public void draw(float[] mvpMatrix, float[] worldMatrix, int width, int height, GLES20.glUniform1f(xOffsetHandle, xOffset); GLES20.glUniform1f(alphaHandle, enterAlpha); GLES20.glUniform1f(whiteHandle, white); + GLES20.glUniform1f(goldenHandle, golden); GLES20.glUniformMatrix4fv(mMVPMatrixHandle, 1, false, mvpMatrix, 0); GLES20.glUniformMatrix4fv(mWorldMatrixHandle, 1, false, worldMatrix, 0); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/LimitPreviewView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/LimitPreviewView.java index 657af38a21..a5c6380d7e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/LimitPreviewView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/LimitPreviewView.java @@ -30,6 +30,7 @@ import android.widget.LinearLayout; import android.widget.TextView; +import androidx.annotation.Keep; import androidx.annotation.NonNull; import androidx.core.math.MathUtils; @@ -118,7 +119,7 @@ public LimitPreviewView(@NonNull Context context, int icon, int currentValue, in defaultText = new TextView(context); defaultText.setTypeface(AndroidUtilities.bold()); - defaultText.setText(LocaleController.getString("LimitFree", R.string.LimitFree)); + defaultText.setText(LocaleController.getString(R.string.LimitFree)); defaultText.setGravity(Gravity.CENTER_VERTICAL); defaultText.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); @@ -140,7 +141,7 @@ public LimitPreviewView(@NonNull Context context, int icon, int currentValue, in premiumText = new TextView(context); premiumText.setTypeface(AndroidUtilities.bold()); - premiumText.setText(LocaleController.getString("LimitPremium", R.string.LimitPremium)); + premiumText.setText(LocaleController.getString(R.string.LimitPremium)); premiumText.setGravity(Gravity.CENTER_VERTICAL); premiumText.setTextColor(Color.WHITE); @@ -550,6 +551,7 @@ public void setBoosts(TL_stories.TL_premium_boostsStatus boosts, boolean boosted isBoostsStyle = true; } + @Keep public void setStatus(int currentLevel, int maxLevel, boolean animated) { if (currentValue == currentLevel) { animated = false; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/LimitReachedBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/LimitReachedBottomSheet.java index 847d94e176..cec3453ef9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/LimitReachedBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/LimitReachedBottomSheet.java @@ -502,14 +502,14 @@ protected void onDraw(Canvas canvas) { BoostDialogs.showMoreBoostsNeeded(dialogId, this); } else { AlertDialog.Builder builder = new AlertDialog.Builder(context, resourcesProvider); - builder.setTitle(LocaleController.getString("PremiumNeeded", R.string.PremiumNeeded)); + builder.setTitle(LocaleController.getString(R.string.PremiumNeeded)); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString(isGroup() ? R.string.PremiumNeededForBoostingGroup : R.string.PremiumNeededForBoosting))); - builder.setPositiveButton(LocaleController.getString("CheckPhoneNumberYes", R.string.CheckPhoneNumberYes), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.CheckPhoneNumberYes), (dialog, which) -> { parentFragment.presentFragment(new PremiumPreviewFragment(null)); LimitReachedBottomSheet.this.dismiss(); dialog.dismiss(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialog, which) -> dialog.dismiss()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> dialog.dismiss()); builder.show(); } } else if (canApplyBoost.canApply && canApplyBoost.replaceDialogId == 0) { @@ -587,11 +587,11 @@ protected void onDraw(Canvas canvas) { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setView(containerLayout); textView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("ReplaceBoostChannelDescription", R.string.ReplaceBoostChannelDescription, fromChat.title, chat.title))); - builder.setPositiveButton(LocaleController.getString("Replace", R.string.Replace), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Replace), (dialog, which) -> { dialog.dismiss(); boostChannel(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialog, which) -> dialog.dismiss()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> dialog.dismiss()); builder.show(); } else if (canApplyBoost.floodWait != 0) { BoostDialogs.showFloodWait(canApplyBoost.floodWait); @@ -854,10 +854,10 @@ public void updatePremiumButtonText() { if (type == TYPE_BOOSTS_FOR_USERS || type == TYPE_BOOSTS_FOR_REMOVE_RESTRICTIONS || isMiniBoostBtnForAdminAvailable()) { if (BoostRepository.isMultiBoostsAvailable()) { premiumButtonView.buttonTextView.setText(canApplyBoost != null && canApplyBoost.alreadyActive ? - LocaleController.getString("BoostingBoostAgain", R.string.BoostingBoostAgain) + LocaleController.getString(R.string.BoostingBoostAgain) : LocaleController.getString(isGroup() ? R.string.BoostGroup : R.string.BoostChannel)); if (canApplyBoost != null && canApplyBoost.isMaxLvl) { - premiumButtonView.buttonTextView.setText(LocaleController.getString("OK", R.string.OK)); + premiumButtonView.buttonTextView.setText(LocaleController.getString(R.string.OK)); } } else { premiumButtonView.buttonTextView.setText(LocaleController.getString(isGroup() ? R.string.BoostGroup : R.string.BoostChannel)); @@ -877,13 +877,13 @@ public void updatePremiumButtonText() { ) { SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder("d "); spannableStringBuilder.setSpan(new ColoredImageSpan(R.drawable.msg_copy_filled), 0, 1, 0); - spannableStringBuilder.append(LocaleController.getString("CopyLink", R.string.CopyLink)); + spannableStringBuilder.append(LocaleController.getString(R.string.CopyLink)); premiumButtonView.buttonTextView.setText(spannableStringBuilder); } else if (UserConfig.getInstance(currentAccount).isPremium() || MessagesController.getInstance(currentAccount).premiumFeaturesBlocked() || isVeryLargeFile) { - premiumButtonView.buttonTextView.setText(LocaleController.getString("OK", R.string.OK)); + premiumButtonView.buttonTextView.setText(LocaleController.getString(R.string.OK)); premiumButtonView.hideIcon(); } else { - premiumButtonView.buttonTextView.setText(LocaleController.getString("IncreaseLimit", R.string.IncreaseLimit)); + premiumButtonView.buttonTextView.setText(LocaleController.getString(R.string.IncreaseLimit)); if (limitParams != null) { if (limitParams.defaultLimit + 1 == limitParams.premiumLimit) { premiumButtonView.setIcon(R.raw.addone_icon); @@ -916,7 +916,7 @@ private void leaveFromSelectedGroups() { } else { builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("ChatsLeaveAlert", R.string.ChatsLeaveAlert))); } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.setPositiveButton(LocaleController.getString(R.string.VoipGroupLeave), (dialogInterface, interface2) -> { dismiss(); for (int i = 0; i < chats.size(); i++) { @@ -938,7 +938,7 @@ private void updateButton() { if (!canApplyBoost.canApply && !canApplyBoost.empty || canApplyBoost.boostedNow || canApplyBoost.alreadyActive) { if (canApplyBoost.canApply) { if (BoostRepository.isMultiBoostsAvailable()) { - premiumButtonView.setOverlayText(LocaleController.getString("BoostingBoostAgain", R.string.BoostingBoostAgain), true, true); + premiumButtonView.setOverlayText(LocaleController.getString(R.string.BoostingBoostAgain), true, true); } else { premiumButtonView.setOverlayText(LocaleController.getString(isGroup() ? R.string.BoostGroup : R.string.BoostChannel), true, true); } @@ -952,26 +952,26 @@ private void updateButton() { if (boostToUnlockGroupBtn != null) { boostToUnlockGroupBtn.setText(LocaleController.getString(R.string.OK), true); } - premiumButtonView.setOverlayText(LocaleController.getString("OK", R.string.OK), true, true); + premiumButtonView.setOverlayText(LocaleController.getString(R.string.OK), true, true); } else { if (BoostRepository.isMultiBoostsAvailable()) { if (boostToUnlockGroupBtn != null) { boostToUnlockGroupBtn.setText(LocaleController.getString(R.string.BoostGroup), true); } boostMiniBtn.setText(LocaleController.getString(R.string.BoostBtn), true); - premiumButtonView.setOverlayText(LocaleController.getString("BoostingBoostAgain", R.string.BoostingBoostAgain), true, true); + premiumButtonView.setOverlayText(LocaleController.getString(R.string.BoostingBoostAgain), true, true); } else { if (boostToUnlockGroupBtn != null) { boostToUnlockGroupBtn.setText(LocaleController.getString(R.string.OK), true); } boostMiniBtn.setText(LocaleController.getString(R.string.OK), true); - premiumButtonView.setOverlayText(LocaleController.getString("OK", R.string.OK), true, true); + premiumButtonView.setOverlayText(LocaleController.getString(R.string.OK), true, true); } } } } else { if (canApplyBoost.isMaxLvl) { - premiumButtonView.setOverlayText(LocaleController.getString("OK", R.string.OK), true, true); + premiumButtonView.setOverlayText(LocaleController.getString(R.string.OK), true, true); } else { premiumButtonView.clearOverlayText(); } @@ -979,11 +979,11 @@ private void updateButton() { } else if (type == TYPE_ADD_MEMBERS_RESTRICTED) { premiumButtonView.checkCounterView(); if (!canSendLink) { - premiumButtonView.setOverlayText(LocaleController.getString("Close", R.string.Close), true, true); + premiumButtonView.setOverlayText(LocaleController.getString(R.string.Close), true, true); } else if (selectedChats.size() > 0) { - premiumButtonView.setOverlayText(LocaleController.getString("SendInviteLink", R.string.SendInviteLink), true, true); + premiumButtonView.setOverlayText(LocaleController.getString(R.string.SendInviteLink), true, true); } else { - premiumButtonView.setOverlayText(LocaleController.getString("ActionSkip", R.string.ActionSkip), true, true); + premiumButtonView.setOverlayText(LocaleController.getString(R.string.ActionSkip), true, true); } premiumButtonView.counterView.setCount(selectedChats.size(), true); premiumButtonView.invalidate(); @@ -1218,7 +1218,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int LoginOrView orDividerView = new LoginOrView(context); TextView textView = new LinkSpanDrawable.LinksTextView(context); - SpannableStringBuilder text = AndroidUtilities.replaceTags(LocaleController.getString(isGroup() ? R.string.BoostingStoriesByGiftingGroup : R.string.BoostingStoriesByGiftingChannel)); + SpannableStringBuilder text = AndroidUtilities.replaceTags(LocaleController.getString(isGroup() ? R.string.BoostingStoriesByGiftingGroup2 : R.string.BoostingStoriesByGiftingChannel2)); SpannableStringBuilder link = new SpannableStringBuilder(LocaleController.getString(R.string.BoostingStoriesByGiftingLink)); link.setSpan(new ClickableSpan() { @Override @@ -1394,15 +1394,15 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi headerCell.setText(LocaleController.getString(R.string.ChannelInviteViaLink)); } else { if (restrictedUsers.size() == 1) { - headerCell.setText(LocaleController.getString("ChannelInviteViaLinkRestricted2", R.string.ChannelInviteViaLinkRestricted2)); + headerCell.setText(LocaleController.getString(R.string.ChannelInviteViaLinkRestricted2)); } else { - headerCell.setText(LocaleController.getString("ChannelInviteViaLinkRestricted3", R.string.ChannelInviteViaLinkRestricted3)); + headerCell.setText(LocaleController.getString(R.string.ChannelInviteViaLinkRestricted3)); } } } else if (type == TYPE_PUBLIC_LINKS) { - headerCell.setText(LocaleController.getString("YourPublicCommunities", R.string.YourPublicCommunities)); + headerCell.setText(LocaleController.getString(R.string.YourPublicCommunities)); } else { - headerCell.setText(LocaleController.getString("LastActiveCommunities", R.string.LastActiveCommunities)); + headerCell.setText(LocaleController.getString(R.string.LastActiveCommunities)); } break; case VIEW_TYPE_BOOST_FEATURE: @@ -1933,9 +1933,9 @@ public void invalidate() { title.setText(getBoostsTitleString()); } else if (type == TYPE_BOOSTS_FOR_POSTING) { if (boostsStatus.level == 0) { - title.setText(LocaleController.getString("BoostingEnableStories", R.string.BoostingEnableStories)); + title.setText(LocaleController.getString(R.string.BoostingEnableStories)); } else { - title.setText(LocaleController.getString("BoostingIncreaseLevel", R.string.BoostingIncreaseLevel)); + title.setText(LocaleController.getString(R.string.BoostingIncreaseLevel)); } } else if (type == TYPE_BOOSTS_FOR_REACTIONS) { title.setText(LocaleController.getString(R.string.ReactionCustomReactions)); @@ -1955,14 +1955,14 @@ public void invalidate() { title.setText(LocaleController.getString(R.string.BoostingEnableWallpaper)); } else if (type == TYPE_ADD_MEMBERS_RESTRICTED) { if (canSendLink) { - title.setText(LocaleController.getString("ChannelInviteViaLink", R.string.ChannelInviteViaLink)); + title.setText(LocaleController.getString(R.string.ChannelInviteViaLink)); } else { - title.setText(LocaleController.getString("ChannelInviteViaLinkRestricted", R.string.ChannelInviteViaLinkRestricted)); + title.setText(LocaleController.getString(R.string.ChannelInviteViaLinkRestricted)); } } else if (type == TYPE_LARGE_FILE) { - title.setText(LocaleController.getString("FileTooLarge", R.string.FileTooLarge)); + title.setText(LocaleController.getString(R.string.FileTooLarge)); } else { - title.setText(LocaleController.getString("LimitReached", R.string.LimitReached)); + title.setText(LocaleController.getString(R.string.LimitReached)); } title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); title.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); @@ -2512,8 +2512,8 @@ private void revokeLinks(ArrayList channels) { builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("RevokeLinksAlert", R.string.RevokeLinksAlert))); } } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("RevokeButton", R.string.RevokeButton), (dialogInterface, interface2) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.RevokeButton), (dialogInterface, interface2) -> { dismiss(); for (int i = 0; i < channels.size(); i++) { TLRPC.TL_channels_updateUsername req1 = new TLRPC.TL_channels_updateUsername(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumFeatureBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumFeatureBottomSheet.java index fe4b4a8774..648b1536ca 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumFeatureBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumFeatureBottomSheet.java @@ -45,7 +45,6 @@ import org.telegram.ui.Components.BottomPagesView; import org.telegram.ui.Components.CubicBezierInterpolator; import org.telegram.ui.Components.LayoutHelper; -import org.telegram.ui.Components.RLottieDrawable; import org.telegram.ui.LaunchActivity; import org.telegram.ui.PremiumPreviewFragment; import org.telegram.ui.ThemePreviewActivity; @@ -110,7 +109,7 @@ public PremiumFeatureBottomSheet(BaseFragment fragment, Context context, int cur this.startType = startType; this.onlySelectedType = onlySelectedType; - String svg = RLottieDrawable.readRes(null, R.raw.star_loader); + String svg = AndroidUtilities.readRes(R.raw.star_loader); svgIcon = SvgHelper.getDrawable(svg); FrameLayout frameLayout = new FrameLayout(getContext()) { @Override @@ -310,10 +309,10 @@ public void onPageScrolled(int position, float positionOffset, int positionOffse @Override public void onPageSelected(int i) { if (premiumFeatures.get(i).type == PremiumPreviewFragment.PREMIUM_FEATURE_LIMITS) { - actionBar.setTitle(LocaleController.getString("DoubledLimits", R.string.DoubledLimits)); + actionBar.setTitle(LocaleController.getString(R.string.DoubledLimits)); actionBar.requestLayout(); } else if (premiumFeatures.get(i).type == PremiumPreviewFragment.PREMIUM_FEATURE_STORIES) { - actionBar.setTitle(LocaleController.getString("UpgradedStories", R.string.UpgradedStories)); + actionBar.setTitle(LocaleController.getString(R.string.UpgradedStories)); actionBar.requestLayout(); } else if (premiumFeatures.get(i).type == PremiumPreviewFragment.PREMIUM_FEATURE_BUSINESS) { actionBar.setTitle(LocaleController.getString(R.string.TelegramBusiness)); @@ -427,7 +426,7 @@ public void onPageScrollStateChanged(int i) { linearLayout.addView(buttonContainer, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 68, Gravity.BOTTOM)); if (UserConfig.getInstance(currentAccount).isPremium()) { - premiumButtonView.setOverlayText(LocaleController.getString("OK", R.string.OK), false, false); + premiumButtonView.setOverlayText(LocaleController.getString(R.string.OK), false, false); } ScrollView scrollView = new ScrollView(getContext()); @@ -607,13 +606,13 @@ public void onItemClick(int id) { AndroidUtilities.updateViewVisibilityAnimated(actionBar, false, 1f, false); if (premiumFeatures.get(selectedPosition).type == PremiumPreviewFragment.PREMIUM_FEATURE_STORIES) { - actionBar.setTitle(LocaleController.getString("UpgradedStories", R.string.UpgradedStories)); + actionBar.setTitle(LocaleController.getString(R.string.UpgradedStories)); actionBar.requestLayout(); } else if (premiumFeatures.get(selectedPosition).type == PremiumPreviewFragment.PREMIUM_FEATURE_BUSINESS) { actionBar.setTitle(LocaleController.getString(R.string.TelegramBusiness)); actionBar.requestLayout(); } else { - actionBar.setTitle(LocaleController.getString("DoubledLimits", R.string.DoubledLimits)); + actionBar.setTitle(LocaleController.getString(R.string.DoubledLimits)); actionBar.requestLayout(); } } @@ -635,7 +634,7 @@ public void didReceivedNotification(int id, int account, Object... args) { setButtonText(); } else if (id == NotificationCenter.currentUserPremiumStatusChanged) { if (UserConfig.getInstance(currentAccount).isPremium()) { - premiumButtonView.setOverlayText(LocaleController.getString("OK", R.string.OK), false, true); + premiumButtonView.setOverlayText(LocaleController.getString(R.string.OK), false, true); } else { premiumButtonView.clearOverlayText(); } @@ -733,8 +732,8 @@ void setFeatureDate(PremiumPreviewFragment.PremiumFeatureData featureData) { topViewOnFullHeight = true; } else if (onlySelectedType) { if (startType == PremiumPreviewFragment.PREMIUM_FEATURE_REACTIONS) { - title.setText(LocaleController.getString("AdditionalReactions", R.string.AdditionalReactions)); - description.setText(AndroidUtilities.replaceTags(LocaleController.getString("AdditionalReactionsDescription", R.string.AdditionalReactionsDescription))); + title.setText(LocaleController.getString(R.string.AdditionalReactions)); + description.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.AdditionalReactionsDescription))); } else if (startType == PremiumPreviewFragment.PREMIUM_FEATURE_ADS) { title.setText(LocaleController.getString(R.string.PremiumPreviewNoAds)); description.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PremiumPreviewNoAdsDescription2))); @@ -742,8 +741,8 @@ void setFeatureDate(PremiumPreviewFragment.PremiumFeatureData featureData) { title.setText(LocaleController.getString(R.string.PremiumPreviewTags)); description.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PremiumPreviewTagsDescription))); } else if (startType == PremiumPreviewFragment.PREMIUM_FEATURE_APPLICATION_ICONS) { - title.setText(LocaleController.getString("PremiumPreviewAppIcon", R.string.PremiumPreviewAppIcon)); - description.setText(AndroidUtilities.replaceTags(LocaleController.getString("PremiumPreviewAppIconDescription2", R.string.PremiumPreviewAppIconDescription2))); + title.setText(LocaleController.getString(R.string.PremiumPreviewAppIcon)); + description.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PremiumPreviewAppIconDescription2))); } else if (startType == PremiumPreviewFragment.PREMIUM_FEATURE_DOWNLOAD_SPEED) { title.setText(LocaleController.getString(R.string.PremiumPreviewDownloadSpeed)); description.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PremiumPreviewDownloadSpeedDescription2))); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumPreviewBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumPreviewBottomSheet.java index 7f5ec18df4..7dac3f5a99 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumPreviewBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/PremiumPreviewBottomSheet.java @@ -417,7 +417,7 @@ protected void onCloseByLink() { @Override protected CharSequence getTitle() { - return LocaleController.getString("TelegramPremium", R.string.TelegramPremium); + return LocaleController.getString(R.string.TelegramPremium); } @Override @@ -601,12 +601,12 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { SpannableStringBuilder stringBuilder1 = AndroidUtilities.replaceSingleTag( terms1, Theme.key_chat_messageLinkIn, 0, - () -> Browser.openUrl(fragment.getParentActivity(), LocaleController.getString("TermsOfServiceUrl", R.string.TermsOfServiceUrl))); + () -> Browser.openUrl(fragment.getParentActivity(), LocaleController.getString(R.string.TermsOfServiceUrl))); String terms2 = getString("GiftPremiumPrivacyPolicy", R.string.GiftPremiumPrivacyPolicy); SpannableStringBuilder stringBuilder2 = AndroidUtilities.replaceSingleTag( terms2, Theme.key_chat_messageLinkIn, 0, - () -> Browser.openUrl(fragment.getParentActivity(), LocaleController.getString("PrivacyPolicyUrl", R.string.PrivacyPolicyUrl))); + () -> Browser.openUrl(fragment.getParentActivity(), LocaleController.getString(R.string.PrivacyPolicyUrl))); cell.setText(AndroidUtilities.replaceCharSequence("%1$s", stringBuilder1, stringBuilder2)); view = cell; break; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostDialogs.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostDialogs.java index 989e025211..f124c58f20 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostDialogs.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostDialogs.java @@ -3,6 +3,7 @@ import static org.telegram.messenger.AndroidUtilities.dp; import static org.telegram.messenger.AndroidUtilities.replaceTags; import static org.telegram.messenger.LocaleController.formatPluralString; +import static org.telegram.messenger.LocaleController.formatPluralStringComma; import static org.telegram.messenger.LocaleController.formatString; import static org.telegram.messenger.LocaleController.getString; import static org.telegram.ui.Components.Premium.boosts.SelectorBottomSheet.TYPE_CHANNEL; @@ -52,6 +53,7 @@ import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.NumberPicker; import org.telegram.ui.LaunchActivity; +import org.telegram.ui.Stars.StarsIntroActivity; import java.util.ArrayList; import java.util.Calendar; @@ -86,7 +88,7 @@ public static void processApplyGiftCodeError(TLRPC.TL_error error, FrameLayout c Theme.key_undo_cancelColor, 0, share); BulletinFactory.of(containerLayout, resourcesProvider).createSimpleBulletin(R.raw.chats_infotip, - LocaleController.getString("GiftPremiumActivateErrorTitle", R.string.GiftPremiumActivateErrorTitle), + LocaleController.getString(R.string.GiftPremiumActivateErrorTitle), AndroidUtilities.replaceCharSequence("%1$s", subTitleWithLink, replaceTags("**" + formattedDate + "**")) ).show(); try { @@ -118,7 +120,7 @@ private static void showBulletin(final BulletinFactory bulletinFactory, Theme.Re public static void showGiftLinkForwardedBulletin(long did) { CharSequence text; if (did == UserConfig.getInstance(UserConfig.selectedAccount).clientUserId) { - text = AndroidUtilities.replaceTags(LocaleController.getString("BoostingGiftLinkForwardedToSavedMsg", R.string.BoostingGiftLinkForwardedToSavedMsg)); + text = AndroidUtilities.replaceTags(LocaleController.getString(R.string.BoostingGiftLinkForwardedToSavedMsg)); } else { if (DialogObject.isChatDialog(did)) { TLRPC.Chat chat = MessagesController.getInstance(UserConfig.selectedAccount).getChat(-did); @@ -506,12 +508,17 @@ public static void showAbout(boolean isChannel, String from, long msgDate, TLRPC String fromTime = LocaleController.getInstance().getFormatterDay().format(new Date(giveawayInfo.start_date * 1000L)); String fromDate = LocaleController.getInstance().getFormatterGiveawayMonthDayYear().format(new Date(giveawayInfo.start_date * 1000L)); - boolean isSeveralChats = giveaway.channels.size() > 1; + final boolean isSeveralChats = giveaway.channels.size() > 1; + final boolean isStars = (giveaway.flags & 32) != 0; AlertDialog.Builder builder = new AlertDialog.Builder(context, resourcesProvider); builder.setTitle(getString("BoostingGiveAwayAbout", R.string.BoostingGiveAwayAbout)); SpannableStringBuilder stringBuilder = new SpannableStringBuilder(); - stringBuilder.append(replaceTags(formatPluralString(isChannel ? "BoostingGiveawayHowItWorksText" : "BoostingGiveawayHowItWorksTextGroup", quantity, from, quantity, months))); + if (isStars) { + stringBuilder.append(replaceTags(formatPluralStringComma(isChannel ? "BoostingStarsGiveawayHowItWorksText" : "BoostingStarsGiveawayHowItWorksTextGroup", (int) giveaway.stars, from))); + } else { + stringBuilder.append(replaceTags(formatPluralString(isChannel ? "BoostingGiveawayHowItWorksText" : "BoostingGiveawayHowItWorksTextGroup", quantity, from, quantity, months))); + } stringBuilder.append("\n\n"); if (giveaway.prize_description != null && !giveaway.prize_description.isEmpty()) { @@ -578,11 +585,16 @@ public static void showAboutEnd(boolean isChannel, String from, long msgDate, TL String fromTime = LocaleController.getInstance().getFormatterDay().format(new Date(giveawayInfo.start_date * 1000L)); String fromDate = LocaleController.getInstance().getFormatterGiveawayMonthDayYear().format(new Date(giveawayInfo.start_date * 1000L)); boolean isSeveralChats = giveaway.channels.size() > 1; + final boolean isStars = (giveaway.flags & 32) != 0; AlertDialog.Builder builder = new AlertDialog.Builder(context, resourcesProvider); builder.setTitle(getString("BoostingGiveawayEnd", R.string.BoostingGiveawayEnd)); SpannableStringBuilder stringBuilder = new SpannableStringBuilder(); - stringBuilder.append(replaceTags(formatPluralString(isChannel ? "BoostingGiveawayHowItWorksTextEnd" : "BoostingGiveawayHowItWorksTextEndGroup", quantity, from, quantity, months))); + if (isStars) { + stringBuilder.append(replaceTags(formatPluralString(isChannel ? "BoostingStarsGiveawayHowItWorksTextEnd" : "BoostingStarsGiveawayHowItWorksTextEndGroup", (int) giveaway.stars, from))); + } else { + stringBuilder.append(replaceTags(formatPluralString(isChannel ? "BoostingGiveawayHowItWorksTextEnd" : "BoostingGiveawayHowItWorksTextEndGroup", quantity, from, quantity, months))); + } stringBuilder.append("\n\n"); if (giveaway.prize_description != null && !giveaway.prize_description.isEmpty()) { @@ -631,14 +643,18 @@ public static void showAboutEnd(boolean isChannel, String from, long msgDate, TL builder.setMessage(stringBuilder); String str; if (giveawayInfo.winner) { - str = getString("BoostingGiveawayYouWon", R.string.BoostingGiveawayYouWon); - builder.setPositiveButton(getString("BoostingGiveawayViewPrize", R.string.BoostingGiveawayViewPrize), (dialogInterface, i) -> { - BaseFragment fragment = LaunchActivity.getLastFragment(); - if (fragment == null) { - return; - } - GiftInfoBottomSheet.show(fragment, giveawayInfo.gift_code_slug); - }); + str = getString(R.string.BoostingGiveawayYouWon); + if ((giveawayInfo.flags & 16) != 0) { + + } else { + builder.setPositiveButton(getString("BoostingGiveawayViewPrize", R.string.BoostingGiveawayViewPrize), (dialogInterface, i) -> { + BaseFragment fragment = LaunchActivity.getLastFragment(); + if (fragment == null) { + return; + } + GiftInfoBottomSheet.show(fragment, giveawayInfo.gift_code_slug); + }); + } builder.setNegativeButton(getString("Close", R.string.Close), (dialogInterface, i) -> { }); @@ -704,6 +720,8 @@ public static void openGiveAwayStatusDialog(MessageObject messageObject, Browser giveaway.quantity = giveawayResults.winners_count + giveawayResults.unclaimed_count; giveaway.only_new_subscribers = giveawayResults.only_new_subscribers; giveaway.until_date = giveawayResults.until_date; + giveaway.stars = giveawayResults.stars; + giveaway.flags = giveawayResults.flags; } else { giveaway = (TLRPC.TL_messageMediaGiveaway) messageObject.messageOwner.media; } @@ -770,6 +788,10 @@ public static void showBulletinAbout(MessageObject messageObject) { giveaway.quantity = giveawayResults.winners_count + giveawayResults.unclaimed_count; giveaway.only_new_subscribers = giveawayResults.only_new_subscribers; giveaway.until_date = giveawayResults.until_date; + if ((giveawayResults.flags & 32) != 0) { + giveaway.flags |= 32; + giveaway.stars = giveawayResults.stars; + } } else { giveaway = (TLRPC.TL_messageMediaGiveaway) messageObject.messageOwner.media; } @@ -784,15 +806,15 @@ public static void showBulletinAbout(MessageObject messageObject) { if (result instanceof TLRPC.TL_payments_giveawayInfoResults) { layout.setAnimation(R.raw.chats_infotip, 30, 30); - layout.textView.setText(LocaleController.getString("BoostingGiveawayShortStatusEnded", R.string.BoostingGiveawayShortStatusEnded)); + layout.textView.setText(LocaleController.getString(R.string.BoostingGiveawayShortStatusEnded)); } else if (result instanceof TLRPC.TL_payments_giveawayInfo) { TLRPC.TL_payments_giveawayInfo giveawayInfo = (TLRPC.TL_payments_giveawayInfo) result; if (giveawayInfo.participating) { layout.setAnimation(R.raw.forward, 30, 30); - layout.textView.setText(LocaleController.getString("BoostingGiveawayShortStatusParticipating", R.string.BoostingGiveawayShortStatusParticipating)); + layout.textView.setText(LocaleController.getString(R.string.BoostingGiveawayShortStatusParticipating)); } else { layout.setAnimation(R.raw.chats_infotip, 30, 30); - layout.textView.setText(LocaleController.getString("BoostingGiveawayShortStatusNotParticipating", R.string.BoostingGiveawayShortStatusNotParticipating)); + layout.textView.setText(LocaleController.getString(R.string.BoostingGiveawayShortStatusNotParticipating)); } } @@ -800,7 +822,7 @@ public static void showBulletinAbout(MessageObject messageObject) { layout.textView.setMaxLines(2); layout.setButton(new Bulletin.UndoButton(fragment.getParentActivity(), true, fragment.getResourceProvider()) - .setText(LocaleController.getString("LearnMore", R.string.LearnMore)) + .setText(LocaleController.getString(R.string.LearnMore)) .setUndoAction(() -> { if (result instanceof TLRPC.TL_payments_giveawayInfo) { TLRPC.TL_payments_giveawayInfo giveawayInfo = (TLRPC.TL_payments_giveawayInfo) result; @@ -823,7 +845,7 @@ public static void showMoreBoostsNeeded(long dialogId, BottomSheet bottomSheet) return; } AlertDialog.Builder builder = new AlertDialog.Builder(baseFragment.getContext(), baseFragment.getResourceProvider()); - builder.setTitle(LocaleController.getString("BoostingMoreBoostsNeeded", R.string.BoostingMoreBoostsNeeded)); + builder.setTitle(LocaleController.getString(R.string.BoostingMoreBoostsNeeded)); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatPluralString("BoostingGetMoreBoostByGiftingCount", BoostRepository.boostsPerSentGift(), chat.title))); builder.setNegativeButton(getString("GiftPremium", R.string.GiftPremium), (dialogInterface, i) -> { bottomSheet.dismiss(); @@ -851,9 +873,9 @@ public static void showFloodWait(int time) { timeString = LocaleController.formatPluralString("Hours", time / 60 / 60) + " " + LocaleController.formatPluralString("Minutes", time % 60); } AlertDialog.Builder builder = new AlertDialog.Builder(baseFragment.getContext(), baseFragment.getResourceProvider()); - builder.setTitle(LocaleController.getString("CantBoostTooOften", R.string.CantBoostTooOften)); + builder.setTitle(LocaleController.getString(R.string.CantBoostTooOften)); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("CantBoostTooOftenDescription", R.string.CantBoostTooOftenDescription, timeString))); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialog, which) -> { dialog.dismiss(); }); builder.show(); @@ -865,12 +887,12 @@ public static void showStartGiveawayDialog(Runnable onStart) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(baseFragment.getContext(), baseFragment.getResourceProvider()); - builder.setTitle(LocaleController.getString("BoostingStartGiveawayConfirmTitle", R.string.BoostingStartGiveawayConfirmTitle)); - builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString("BoostingStartGiveawayConfirmText", R.string.BoostingStartGiveawayConfirmText))); - builder.setPositiveButton(LocaleController.getString("Start", R.string.Start), (dialog, which) -> { + builder.setTitle(LocaleController.getString(R.string.BoostingStartGiveawayConfirmTitle)); + builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString(R.string.BoostingStartGiveawayConfirmText))); + builder.setPositiveButton(LocaleController.getString(R.string.Start), (dialog, which) -> { onStart.run(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> { dialog.dismiss(); }); builder.show(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostPagerBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostPagerBottomSheet.java index b131e0a80b..aa95846532 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostPagerBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostPagerBottomSheet.java @@ -40,7 +40,7 @@ public static void show(BaseFragment fragment, long dialogId, Theme.ResourcesPro show(fragment, resourcesProvider, dialogId, null); } - public static void show(BaseFragment fragment, Theme.ResourcesProvider resourcesProvider, long dialogId, TL_stories.TL_prepaidGiveaway prepaidGiveaway) { + public static void show(BaseFragment fragment, Theme.ResourcesProvider resourcesProvider, long dialogId, TL_stories.PrepaidGiveaway prepaidGiveaway) { if (instance != null) { return; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostRepository.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostRepository.java index 84d9b07adf..b28358e665 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostRepository.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostRepository.java @@ -233,41 +233,80 @@ public static void payGiftCodeByGoogle(List users, TLRPC.TL_premiumGif }); } - public static void launchPreparedGiveaway(TL_stories.TL_prepaidGiveaway prepaidGiveaway, List chats, List selectedCountries, - TLRPC.Chat chat, int date, boolean onlyNewSubscribers, boolean winnersVisible, boolean withAdditionPrize, String prizeDesc, + public static void launchPreparedGiveaway(TL_stories.PrepaidGiveaway prepaidGiveaway, List chats, List selectedCountries, + TLRPC.Chat chat, int date, boolean onlyNewSubscribers, boolean winnersVisible, boolean withAdditionPrize, int users, String prizeDesc, Utilities.Callback onSuccess, Utilities.Callback onError) { MessagesController controller = MessagesController.getInstance(UserConfig.selectedAccount); ConnectionsManager connection = ConnectionsManager.getInstance(UserConfig.selectedAccount); - TLRPC.TL_inputStorePaymentPremiumGiveaway purpose = new TLRPC.TL_inputStorePaymentPremiumGiveaway(); - purpose.only_new_subscribers = onlyNewSubscribers; - purpose.winners_are_visible = winnersVisible; - purpose.prize_description = prizeDesc; - purpose.until_date = date; - purpose.flags |= 2; - purpose.flags |= 4; - if (withAdditionPrize) { - purpose.flags |= 16; - } - purpose.random_id = System.currentTimeMillis(); - purpose.additional_peers = new ArrayList<>(); - purpose.boost_peer = controller.getInputPeer(-chat.id); - purpose.currency = ""; + TLRPC.InputStorePaymentPurpose finalPurpose; + if (prepaidGiveaway instanceof TL_stories.TL_prepaidGiveaway) { + TLRPC.TL_inputStorePaymentPremiumGiveaway purpose = new TLRPC.TL_inputStorePaymentPremiumGiveaway(); + purpose.only_new_subscribers = onlyNewSubscribers; + purpose.winners_are_visible = winnersVisible; + purpose.prize_description = prizeDesc; + purpose.until_date = date; + purpose.flags |= 2; + purpose.flags |= 4; + if (withAdditionPrize) { + purpose.flags |= 16; + } + purpose.random_id = System.currentTimeMillis(); + purpose.additional_peers = new ArrayList<>(); + purpose.boost_peer = controller.getInputPeer(-chat.id); + purpose.currency = ""; + + for (TLObject object : selectedCountries) { + TLRPC.TL_help_country country = (TLRPC.TL_help_country) object; + purpose.countries_iso2.add(country.iso2); + } - for (TLObject object : selectedCountries) { - TLRPC.TL_help_country country = (TLRPC.TL_help_country) object; - purpose.countries_iso2.add(country.iso2); - } + for (TLObject o : chats) { + if (o instanceof TLRPC.Chat) { + purpose.additional_peers.add(controller.getInputPeer(-((TLRPC.Chat) o).id)); + } + } - for (TLObject o : chats) { - if (o instanceof TLRPC.Chat) { - purpose.additional_peers.add(controller.getInputPeer(-((TLRPC.Chat) o).id)); + finalPurpose = purpose; + } else if (prepaidGiveaway instanceof TL_stories.TL_prepaidStarsGiveaway) { + TLRPC.TL_inputStorePaymentStarsGiveaway purpose = new TLRPC.TL_inputStorePaymentStarsGiveaway(); + purpose.only_new_subscribers = onlyNewSubscribers; + purpose.winners_are_visible = winnersVisible; + purpose.prize_description = prizeDesc; + purpose.until_date = date; + purpose.flags |= 2; + purpose.flags |= 4; + if (withAdditionPrize) { + purpose.flags |= 16; + } + purpose.random_id = System.currentTimeMillis(); + purpose.additional_peers = new ArrayList<>(); + purpose.boost_peer = controller.getInputPeer(-chat.id); + purpose.currency = ""; + + purpose.stars = ((TL_stories.TL_prepaidStarsGiveaway) prepaidGiveaway).stars; + purpose.users = prepaidGiveaway.quantity; + + for (TLObject object : selectedCountries) { + TLRPC.TL_help_country country = (TLRPC.TL_help_country) object; + purpose.countries_iso2.add(country.iso2); + } + + for (TLObject o : chats) { + if (o instanceof TLRPC.Chat) { + purpose.additional_peers.add(controller.getInputPeer(-((TLRPC.Chat) o).id)); + } } + + finalPurpose = purpose; + } else { + return; } + TLRPC.TL_payments_launchPrepaidGiveaway req = new TLRPC.TL_payments_launchPrepaidGiveaway(); req.giveaway_id = prepaidGiveaway.id; req.peer = controller.getInputPeer(-chat.id); - req.purpose = purpose; + req.purpose = finalPurpose; connection.sendRequest(req, (response, error) -> { if (error != null) { AndroidUtilities.runOnUIThread(() -> onError.run(error)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostViaGiftsBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostViaGiftsBottomSheet.java index 1d1cbffcb1..3812cb5d03 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostViaGiftsBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/BoostViaGiftsBottomSheet.java @@ -1,6 +1,11 @@ package org.telegram.ui.Components.Premium.boosts; +import static org.telegram.messenger.LocaleController.formatPluralString; +import static org.telegram.messenger.LocaleController.formatPluralStringComma; +import static org.telegram.messenger.LocaleController.getString; + import android.annotation.SuppressLint; +import android.app.Activity; import android.graphics.Canvas; import android.view.Gravity; import android.view.View; @@ -20,13 +25,18 @@ import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.R; import org.telegram.messenger.UserConfig; +import org.telegram.messenger.Utilities; import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; import org.telegram.tgnet.tl.TL_stories; import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.ChatActivity; import org.telegram.ui.Components.BottomSheetWithRecyclerListView; +import org.telegram.ui.Components.Bulletin; +import org.telegram.ui.Components.BulletinFactory; import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.FireworksOverlay; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.Premium.PremiumNotAvailableBottomSheet; import org.telegram.ui.Components.Premium.PremiumPreviewBottomSheet; @@ -38,15 +48,19 @@ import org.telegram.ui.Components.Premium.boosts.cells.ParticipantsTypeCell; import org.telegram.ui.Components.Premium.boosts.cells.BoostTypeCell; import org.telegram.ui.Components.Premium.boosts.cells.DurationCell; +import org.telegram.ui.Components.Premium.boosts.cells.StarGiveawayOptionCell; import org.telegram.ui.Components.Premium.boosts.cells.SwitcherCell; import org.telegram.ui.Components.RecyclerListView; import org.telegram.ui.Components.Premium.boosts.adapters.BoostAdapter.Item; +import org.telegram.ui.LaunchActivity; +import org.telegram.ui.Stars.StarsController; +import org.telegram.ui.Stars.StarsIntroActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -public class BoostViaGiftsBottomSheet extends BottomSheetWithRecyclerListView implements SelectorBottomSheet.SelectedObjectsListener { +public class BoostViaGiftsBottomSheet extends BottomSheetWithRecyclerListView implements SelectorBottomSheet.SelectedObjectsListener, NotificationCenter.NotificationCenterDelegate { private static final int BOTTOM_HEIGHT_DP = 68; @@ -59,47 +73,61 @@ public interface ActionListener { } private final ArrayList items = new ArrayList<>(); - private final List sliderValues = BoostRepository.isGoogleBillingAvailable() ? Arrays.asList(1, 3, 5, 7, 10, 25, 50) : Arrays.asList(1, 3, 5, 7, 10, 25, 50, 100); + private final List sliderValues = + BoostRepository.isGoogleBillingAvailable() ? + Arrays.asList(1, 3, 5, 7, 10, 25, 50) : + Arrays.asList(1, 3, 5, 7, 10, 25, 50, 100); + private final List sliderStarsValues = + BoostRepository.isGoogleBillingAvailable() ? + Arrays.asList(1, 3, 5, 7, 10, 25, 50) : + Arrays.asList(1, 3, 5, 7, 10, 25, 50, 100); + private final List starsNotExtended = Arrays.asList(750, 10_000, 50_000); private final TLRPC.Chat currentChat; private final List selectedChats = new ArrayList<>(); private final List selectedUsers = new ArrayList<>(); private final List selectedCountries = new ArrayList<>(); private final List giftCodeOptions = new ArrayList<>(); private BoostAdapter adapter; - private int selectedBoostType = BoostTypeCell.TYPE_GIVEAWAY; + private int selectedBoostType = BoostTypeCell.TYPE_PREMIUM; + private int selectedBoostSubType = BoostTypeCell.TYPE_GIVEAWAY; private int selectedParticipantsType = ParticipantsTypeCell.TYPE_ALL; + private boolean starOptionsExpanded; private int selectedMonths = 12; private long selectedEndDate = BoostDialogs.getThreeDaysAfterToday(); private int selectedSliderIndex = 2; + private int selectedStarsSliderIndex = 2; + private long selectedStars; private ActionBtnCell actionBtn; private ActionListener actionListener; private int top; private Runnable onCloseClick; - private final TL_stories.TL_prepaidGiveaway prepaidGiveaway; + private final TL_stories.PrepaidGiveaway prepaidGiveaway; private String additionalPrize = ""; private boolean isAdditionalPrizeSelected; private boolean isShowWinnersSelected = true; private final Runnable hideKeyboardRunnable = () -> AndroidUtilities.hideKeyboard(recyclerListView); - public BoostViaGiftsBottomSheet(BaseFragment fragment, boolean needFocus, boolean hasFixedSize, long dialogId, TL_stories.TL_prepaidGiveaway prepaidGiveaway) { + public BoostViaGiftsBottomSheet(BaseFragment fragment, boolean needFocus, boolean hasFixedSize, long dialogId, TL_stories.PrepaidGiveaway prepaidGiveaway) { super(fragment, needFocus, hasFixedSize); this.prepaidGiveaway = prepaidGiveaway; - this.topPadding = 0.3f; + this.topPadding = 0.15f; setApplyTopPadding(false); setApplyBottomPadding(false); useBackgroundTopPadding = false; backgroundPaddingLeft = 0; updateTitle(); + ((ViewGroup.MarginLayoutParams) actionBar.getLayoutParams()).leftMargin = 0; + ((ViewGroup.MarginLayoutParams) actionBar.getLayoutParams()).rightMargin = 0; + if (prepaidGiveaway instanceof TL_stories.TL_prepaidStarsGiveaway) { + selectedBoostType = BoostTypeCell.TYPE_STARS; + } DefaultItemAnimator itemAnimator = new DefaultItemAnimator(); itemAnimator.setDurations(350); itemAnimator.setInterpolator(CubicBezierInterpolator.EASE_OUT_QUINT); itemAnimator.setDelayAnimations(false); itemAnimator.setSupportsChangeAnimations(false); - ((ViewGroup.MarginLayoutParams) actionBar.getLayoutParams()).leftMargin = 0; - ((ViewGroup.MarginLayoutParams) actionBar.getLayoutParams()).rightMargin = 0; - - recyclerListView.setPadding(backgroundPaddingLeft, 0, backgroundPaddingLeft, AndroidUtilities.dp(BOTTOM_HEIGHT_DP)); recyclerListView.setItemAnimator(itemAnimator); + recyclerListView.setPadding(backgroundPaddingLeft, 0, backgroundPaddingLeft, AndroidUtilities.dp(BOTTOM_HEIGHT_DP)); recyclerListView.setOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) { @@ -133,13 +161,23 @@ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newStat if (view instanceof BaseCell) { if (view instanceof BoostTypeCell) { int boostType = ((BoostTypeCell) view).getSelectedType(); - if (boostType == BoostTypeCell.TYPE_SPECIFIC_USERS) { + if (boostType == BoostTypeCell.TYPE_PREMIUM || boostType == BoostTypeCell.TYPE_STARS) { + if (boostType == BoostTypeCell.TYPE_PREMIUM && selectedBoostType == boostType) { + if (actionListener != null) { + actionListener.onSelectUser(selectedUsers); + } + return; + } + selectedBoostType = boostType; + updateRows(true, true); + updateActionButton(true); + updateTitle(); + } else if (boostType == BoostTypeCell.TYPE_SPECIFIC_USERS) { if (actionListener != null) { actionListener.onSelectUser(selectedUsers); } } else { - ((BaseCell) view).markChecked(recyclerListView); - selectedBoostType = boostType; + selectedBoostSubType = boostType; updateRows(true, true); updateActionButton(true); updateTitle(); @@ -170,13 +208,34 @@ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newStat if (actionListener != null) { actionListener.onAddChat(selectedChats); } + } else if (view instanceof StarGiveawayOptionCell) { + StarGiveawayOptionCell cell = (StarGiveawayOptionCell) view; + TLRPC.TL_starsGiveawayOption option = cell.getOption(); + if (option != null) { + selectedStars = option.stars; + updateRows(true, true); + updateActionButton(true); + updateTitle(); + } + return; + } else if (view instanceof StarsIntroActivity.ExpandView) { + starOptionsExpanded = true; + updateRows(true, true); } }); this.currentChat = MessagesController.getInstance(currentAccount).getChat(-dialogId); this.adapter.setItems(currentChat, items, recyclerListView, sliderIndex -> { - selectedSliderIndex = sliderIndex; + if (selectedBoostType == BoostTypeCell.TYPE_PREMIUM) { + selectedSliderIndex = sliderIndex; + } else { + selectedStarsSliderIndex = sliderIndex; + } actionBtn.updateCounter(getSelectedSliderValueWithBoosts()); - updateRows(false, false); + if (selectedBoostType == BoostTypeCell.TYPE_STARS) { + updateRows(true, true); + } else { + updateRows(false, false); + } adapter.updateBoostCounter(getSelectedSliderValueWithBoosts()); }, deletedChat -> { selectedChats.remove(deletedChat); @@ -200,8 +259,92 @@ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newStat if (actionBtn.isLoading()) { return; } + if (isPreparedGiveaway()) { + final TL_stories.TL_prepaidStarsGiveaway starsGiveaway = prepaidGiveaway instanceof TL_stories.TL_prepaidStarsGiveaway ? (TL_stories.TL_prepaidStarsGiveaway) prepaidGiveaway : null; + final long stars = starsGiveaway != null ? starsGiveaway.stars : 0; + BoostDialogs.showStartGiveawayDialog(() -> { + int dateInt = BoostRepository.prepareServerDate(selectedEndDate); + boolean onlyNewSubscribers = selectedParticipantsType == ParticipantsTypeCell.TYPE_NEW; + actionBtn.updateLoading(true); + BoostRepository.launchPreparedGiveaway(prepaidGiveaway, selectedChats, selectedCountries, currentChat, dateInt, onlyNewSubscribers, isShowWinnersSelected, isAdditionalPrizeSelected, prepaidGiveaway.quantity, additionalPrize, + result -> { + dismiss(); + if (starsGiveaway != null) { + final BaseFragment lastFragment = LaunchActivity.getSafeLastFragment(); + if (lastFragment != null) { + final ChatActivity chatActivity = ChatActivity.of(dialogId); + chatActivity.whenFullyVisible(() -> { + BulletinFactory.of(chatActivity) + .createSimpleBulletin(R.raw.stars_topup, getString(R.string.StarsGiveawaySentPopup), AndroidUtilities.replaceTags(LocaleController.formatPluralStringComma("StarsGiveawaySentPopupInfo", (int) stars))) + .show(true); + }); + lastFragment.presentFragment(chatActivity); + } + } else { + AndroidUtilities.runOnUIThread(() -> NotificationCenter.getInstance(UserConfig.selectedAccount).postNotificationName(NotificationCenter.boostByChannelCreated, currentChat, true, prepaidGiveaway), 220); + } + }, error -> { + actionBtn.updateLoading(false); + BoostDialogs.showToastError(getContext(), error); + }); + }); + return; + } else if (selectedBoostType == BoostTypeCell.TYPE_STARS) { + Activity activity = AndroidUtilities.findActivity(getContext()); + if (activity == null) activity = LaunchActivity.instance; + if (activity == null || activity.isFinishing()) return; + + final TLRPC.TL_starsGiveawayOption option = getSelectedStarsOption(); + final int users = getSelectedSliderValue(); + if (option == null) return; + + actionBtn.button.setLoading(true); + final boolean onlyNewSubscribers = selectedParticipantsType == ParticipantsTypeCell.TYPE_NEW; + StarsController.getInstance(currentAccount).buyGiveaway( + activity, + currentChat, + selectedChats, + option, + users, + selectedCountries, + BoostRepository.prepareServerDate(selectedEndDate), + isShowWinnersSelected, + onlyNewSubscribers, + isAdditionalPrizeSelected, additionalPrize, + (success, error) -> { + actionBtn.button.setLoading(false); + if (getContext() == null) return; + BaseFragment lastFragment = LaunchActivity.getSafeLastFragment(); + FireworksOverlay fireworksOverlay = LaunchActivity.instance.getFireworksOverlay(); + if (lastFragment == null) return; + if (success) { + dismiss(); + ChatActivity chatActivity = ChatActivity.of(-currentChat.id); + lastFragment.presentFragment(chatActivity); + lastFragment.whenFullyVisible(() -> { + BulletinFactory.of(chatActivity) + .createSimpleBulletin( + R.raw.stars_send, + getString(R.string.StarsGiveawaySentPopup), + AndroidUtilities.replaceTags(formatPluralStringComma("StarsGiveawaySentPopupInfo", (int) option.stars)) + ) + .setDuration(Bulletin.DURATION_PROLONG) + .show(true); + }); + if (fireworksOverlay != null) { + fireworksOverlay.start(true); + } + } else if (error != null) { + dismiss(); + BulletinFactory.of(lastFragment).createSimpleBulletin(R.raw.error, LocaleController.formatString(R.string.UnknownErrorCode, error)).show(); + } + } + ); + + return; + } - if (selectedBoostType == BoostTypeCell.TYPE_SPECIFIC_USERS) { + if (selectedBoostSubType == BoostTypeCell.TYPE_SPECIFIC_USERS) { List options = BoostRepository.filterGiftOptions(giftCodeOptions, selectedUsers.size()); for (int i = 0; i < options.size(); i++) { TLRPC.TL_premiumGiftCodeOption option = options.get(i); @@ -222,43 +365,27 @@ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newStat } } else { List options = BoostRepository.filterGiftOptions(giftCodeOptions, getSelectedSliderValue()); - if (isPreparedGiveaway()) { - BoostDialogs.showStartGiveawayDialog(() -> { - int dateInt = BoostRepository.prepareServerDate(selectedEndDate); + for (int i = 0; i < options.size(); i++) { + TLRPC.TL_premiumGiftCodeOption option = options.get(i); + if (option.months == selectedMonths) { + if (BoostRepository.isGoogleBillingAvailable() && BoostDialogs.checkReduceQuantity(sliderValues, getContext(), resourcesProvider, giftCodeOptions, option, arg -> { + selectedSliderIndex = sliderValues.indexOf(arg.users); + updateRows(true, true); + updateActionButton(true); + })) { + return; + } boolean onlyNewSubscribers = selectedParticipantsType == ParticipantsTypeCell.TYPE_NEW; + int dateInt = BoostRepository.prepareServerDate(selectedEndDate); actionBtn.updateLoading(true); - BoostRepository.launchPreparedGiveaway(prepaidGiveaway, selectedChats, selectedCountries, currentChat, dateInt, onlyNewSubscribers, isShowWinnersSelected, isAdditionalPrizeSelected, additionalPrize, - result -> { - dismiss(); - AndroidUtilities.runOnUIThread(() -> NotificationCenter.getInstance(UserConfig.selectedAccount).postNotificationName(NotificationCenter.boostByChannelCreated, currentChat, true, prepaidGiveaway), 220); - }, error -> { - actionBtn.updateLoading(false); - BoostDialogs.showToastError(getContext(), error); - }); - }); - } else { - for (int i = 0; i < options.size(); i++) { - TLRPC.TL_premiumGiftCodeOption option = options.get(i); - if (option.months == selectedMonths) { - if (BoostRepository.isGoogleBillingAvailable() && BoostDialogs.checkReduceQuantity(sliderValues, getContext(), resourcesProvider, giftCodeOptions, option, arg -> { - selectedSliderIndex = sliderValues.indexOf(arg.users); - updateRows(true, true); - updateActionButton(true); - })) { - return; - } - boolean onlyNewSubscribers = selectedParticipantsType == ParticipantsTypeCell.TYPE_NEW; - int dateInt = BoostRepository.prepareServerDate(selectedEndDate); - actionBtn.updateLoading(true); - BoostRepository.payGiveAway(selectedChats, selectedCountries, option, currentChat, dateInt, onlyNewSubscribers, fragment, isShowWinnersSelected, isAdditionalPrizeSelected, additionalPrize, result -> { - dismiss(); - AndroidUtilities.runOnUIThread(() -> NotificationCenter.getInstance(UserConfig.selectedAccount).postNotificationName(NotificationCenter.boostByChannelCreated, currentChat, true), 220); - }, error -> { - actionBtn.updateLoading(false); - BoostDialogs.showToastError(getContext(), error); - }); - break; - } + BoostRepository.payGiveAway(selectedChats, selectedCountries, option, currentChat, dateInt, onlyNewSubscribers, fragment, isShowWinnersSelected, isAdditionalPrizeSelected, additionalPrize, result -> { + dismiss(); + AndroidUtilities.runOnUIThread(() -> NotificationCenter.getInstance(UserConfig.selectedAccount).postNotificationName(NotificationCenter.boostByChannelCreated, currentChat, true), 220); + }, error -> { + actionBtn.updateLoading(false); + BoostDialogs.showToastError(getContext(), error); + }); + break; } } } @@ -266,6 +393,17 @@ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newStat updateActionButton(false); containerView.addView(actionBtn, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, BOTTOM_HEIGHT_DP, Gravity.BOTTOM, 0, 0, 0, 0)); loadOptions(); + + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.starGiveawayOptionsLoaded); + } + + @Override + public void didReceivedNotification(int id, int account, Object... args) { + if (id == NotificationCenter.starGiveawayOptionsLoaded) { + if (recyclerListView != null && recyclerListView.isAttachedToWindow()) { + updateRows(true, true); + } + } } @Override @@ -282,6 +420,7 @@ public void dismiss() { if (onCloseClick != null) { onCloseClick.run(); } + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.starGiveawayOptionsLoaded); } private void loadOptions() { @@ -296,7 +435,7 @@ private void updateActionButton(boolean animated) { if (isPreparedGiveaway()) { actionBtn.setStartGiveAwayStyle(prepaidGiveaway.quantity * BoostRepository.giveawayBoostsPerPremium(), animated); } else { - if (selectedBoostType == BoostTypeCell.TYPE_GIVEAWAY) { + if (selectedBoostSubType == BoostTypeCell.TYPE_GIVEAWAY) { actionBtn.setStartGiveAwayStyle(getSelectedSliderValueWithBoosts(), animated); } else { actionBtn.setGiftPremiumStyle(selectedUsers.size() * BoostRepository.giveawayBoostsPerPremium(), animated, selectedUsers.size() > 0); @@ -305,7 +444,7 @@ private void updateActionButton(boolean animated) { } private boolean isGiveaway() { - return selectedBoostType == BoostTypeCell.TYPE_GIVEAWAY; + return selectedBoostSubType == BoostTypeCell.TYPE_GIVEAWAY; } public void setActionListener(ActionListener actionListener) { @@ -322,11 +461,108 @@ public int getTop() { } private int getSelectedSliderValue() { - return sliderValues.get(selectedSliderIndex); + if (selectedBoostType == BoostTypeCell.TYPE_PREMIUM) { + return sliderValues.get(selectedSliderIndex); + } else { + final List values = getSliderValues(); + if (selectedStarsSliderIndex < 0 || selectedStarsSliderIndex >= values.size()) + selectedStarsSliderIndex = 0; + if (selectedStarsSliderIndex >= values.size()) + return 0; + return values.get(selectedStarsSliderIndex); + } } private int getSelectedSliderValueWithBoosts() { - return sliderValues.get(selectedSliderIndex) * BoostRepository.giveawayBoostsPerPremium(); + if (selectedBoostType == BoostTypeCell.TYPE_PREMIUM) { + return sliderValues.get(selectedSliderIndex) * BoostRepository.giveawayBoostsPerPremium(); + } else { + TLRPC.TL_starsGiveawayOption selectedGiveawayOption = getSelectedStarsOption(); + return (selectedGiveawayOption != null ? selectedGiveawayOption.yearly_boosts : getSelectedSliderValue() * BoostRepository.giveawayBoostsPerPremium()); + } + } + + private long getSelectedPerUserStars() { + final List values = getPerUserStarsValues(); + if (selectedStarsSliderIndex < 0 || selectedStarsSliderIndex >= values.size()) + selectedStarsSliderIndex = 0; + if (selectedStarsSliderIndex >= values.size()) + return 1; + return values.get(selectedStarsSliderIndex); + } + + private long getSelectedPerUserStars(long stars) { + final List values = getPerUserStarsValues(stars); + if (values.isEmpty()) + return Math.round((float) stars / getSelectedPerUserStars()); + return values.get(Utilities.clamp(selectedStarsSliderIndex, values.size() - 1, 0)); + } + + public TLRPC.TL_starsGiveawayOption getSelectedStarsOption() { + return getSelectedStarsOption(selectedStars); + } + + public TLRPC.TL_starsGiveawayOption getSelectedStarsOption(long stars) { + final ArrayList options = StarsController.getInstance(currentAccount).getGiveawayOptions(); + if (options != null) { + for (int i = 0; i < options.size(); ++i) { + final TLRPC.TL_starsGiveawayOption option = options.get(i); + if (option != null && option.stars == stars) { + return option; + } + } + } + return null; + } + + private List getSliderValues() { + if (selectedBoostType == BoostTypeCell.TYPE_PREMIUM) { + return sliderValues; + } + final ArrayList possibleCounts = new ArrayList<>(); + TLRPC.TL_starsGiveawayOption option = getSelectedStarsOption(); + if (option != null) { + for (int i = 0; i < option.winners.size(); ++i) { + final TLRPC.TL_starsGiveawayWinnersOption winnersOption = option.winners.get(i); + if (option != null && !possibleCounts.contains(winnersOption.users)) { + possibleCounts.add(winnersOption.users); + } + } + } + return possibleCounts; + } + + private List getPerUserStarsValues() { + return getPerUserStarsValues(selectedStars); + } + private List getPerUserStarsValues(long selectedStars) { + final ArrayList possibleCounts = new ArrayList<>(); + final ArrayList stars = new ArrayList<>(); + TLRPC.TL_starsGiveawayOption option = getSelectedStarsOption(selectedStars); + if (option != null) { + for (int i = 0; i < option.winners.size(); ++i) { + final TLRPC.TL_starsGiveawayWinnersOption winnersOption = option.winners.get(i); + if (option != null && !possibleCounts.contains(winnersOption.users)) { + possibleCounts.add(winnersOption.users); + stars.add(winnersOption.per_user_stars); + } + } + } + return stars; + } + + private List getStarsOptions() { + final ArrayList options = StarsController.getInstance(currentAccount).getGiveawayOptions(); + final ArrayList possibleStars = new ArrayList<>(); + if (options != null) { + for (int i = 0; i < options.size(); ++i) { + final TLRPC.TL_starsGiveawayOption option = options.get(i); + if (option != null && !possibleStars.contains(option.stars)) { + possibleStars.add(option.stars); + } + } + } + return possibleStars; } private boolean isPreparedGiveaway() { @@ -337,22 +573,55 @@ private boolean isPreparedGiveaway() { private void updateRows(boolean animated, boolean notify) { ArrayList oldItems = new ArrayList<>(items); items.clear(); - items.add(Item.asHeader()); + items.add(Item.asHeader(selectedBoostType == BoostTypeCell.TYPE_STARS)); if (isPreparedGiveaway()) { items.add(Item.asSingleBoost(prepaidGiveaway)); } else { - items.add(Item.asBoost(BoostTypeCell.TYPE_GIVEAWAY, selectedUsers.size(), null, selectedBoostType)); - items.add(Item.asBoost(BoostTypeCell.TYPE_SPECIFIC_USERS, selectedUsers.size(), selectedUsers.size() > 0 ? selectedUsers.get(0) : null, selectedBoostType)); + items.add(Item.asBoost(BoostTypeCell.TYPE_PREMIUM, selectedUsers.size(), null, selectedBoostType)); + items.add(Item.asBoost(BoostTypeCell.TYPE_STARS, selectedUsers.size(), null, selectedBoostType)); } items.add(Item.asDivider()); boolean isChannel = ChatObject.isChannelAndNotMegaGroup(currentChat); - if (selectedBoostType == BoostTypeCell.TYPE_GIVEAWAY) { + if (selectedBoostType == BoostTypeCell.TYPE_STARS) { if (!isPreparedGiveaway()) { - items.add(Item.asSubTitleWithCounter(LocaleController.getString("BoostingQuantityPrizes", R.string.BoostingQuantityPrizes), getSelectedSliderValueWithBoosts())); - items.add(Item.asSlider(sliderValues, selectedSliderIndex)); - items.add(Item.asDivider(LocaleController.getString("BoostingChooseHowMany", R.string.BoostingChooseHowMany), false)); + BoostAdapter.Item header = Item.asSubTitleWithCounter(getString(R.string.BoostingStarsOptions), getSelectedSliderValueWithBoosts()); + items.add(header); + final List starOptions = getStarsOptions(); + int optionsCount = 0; + for (int i = 0; i < starOptions.size(); ++i) { + final long stars = starOptions.get(i); + TLRPC.TL_starsGiveawayOption option = getSelectedStarsOption(stars); + if (option.missingStorePrice) continue; + if (selectedStars == 0 && option.isDefault) { + selectedStars = option.stars; + } + if (option.extended && !starOptionsExpanded) continue; + optionsCount++; + items.add(Item.asOption(option, (starOptionsExpanded ? i : 2 + i), getSelectedPerUserStars(option.stars), selectedStars == option.stars, true)); + } + if (!starOptionsExpanded && optionsCount < starOptions.size()) { + items.add(Item.asExpandOptions()); + } + if (optionsCount <= 0) { + items.add(Item.asOption(null, 0, 1, false, true)); + items.add(Item.asOption(null, 1, 1, false, true)); + items.add(Item.asOption(null, 2, 1, false, false)); + } + header.intValue = getSelectedSliderValueWithBoosts(); + items.add(Item.asDivider(getString(R.string.BoostingStarsOptionsInfo), false)); + + final List values = getSliderValues(); + if (selectedStarsSliderIndex < 0 || selectedStarsSliderIndex >= values.size()) selectedStarsSliderIndex = 0; + if (values.size() > 1) { + items.add(Item.asSubTitle(getString(R.string.BoostingStarsQuantityPrizes))); + items.add(Item.asSlider(getSliderValues(), selectedStarsSliderIndex)); + items.add(Item.asDivider(getString(R.string.BoostingStarsQuantityPrizesInfo), false)); + } + } else if (prepaidGiveaway instanceof TL_stories.TL_prepaidStarsGiveaway) { + selectedStars = ((TL_stories.TL_prepaidStarsGiveaway) prepaidGiveaway).stars; } - items.add(Item.asSubTitle(LocaleController.getString("BoostingChannelsGroupsIncludedGiveaway", R.string.BoostingChannelsGroupsIncludedGiveaway))); + + items.add(Item.asSubTitle(getString(R.string.BoostingChannelsGroupsIncludedGiveaway))); if (isPreparedGiveaway()) { items.add(Item.asChat(currentChat, false, prepaidGiveaway.quantity * BoostRepository.giveawayBoostsPerPremium())); } else { @@ -369,61 +638,112 @@ private void updateRows(boolean animated, boolean notify) { if (selectedChats.size() < BoostRepository.giveawayAddPeersMax()) { items.add(Item.asAddChannel()); } - items.add(Item.asDivider(LocaleController.getString("BoostingChooseChannelsGroupsNeedToJoin", R.string.BoostingChooseChannelsGroupsNeedToJoin), false)); - items.add(Item.asSubTitle(LocaleController.getString("BoostingEligibleUsers", R.string.BoostingEligibleUsers))); + items.add(Item.asDivider(getString(R.string.BoostingChooseChannelsGroupsNeedToJoin), false)); + items.add(Item.asSubTitle(getString(R.string.BoostingEligibleUsers))); items.add(Item.asParticipants(ParticipantsTypeCell.TYPE_ALL, selectedParticipantsType, true, selectedCountries)); items.add(Item.asParticipants(ParticipantsTypeCell.TYPE_NEW, selectedParticipantsType, false, selectedCountries)); - items.add(Item.asDivider(LocaleController.getString(isChannel ? R.string.BoostingChooseLimitGiveaway : R.string.BoostingChooseLimitGiveawayGroups), false)); - } + items.add(Item.asDivider(getString(isChannel ? R.string.BoostingChooseLimitGiveaway : R.string.BoostingChooseLimitGiveawayGroups), false)); + } else { + if (selectedBoostSubType == BoostTypeCell.TYPE_GIVEAWAY) { + if (!isPreparedGiveaway()) { + items.add(Item.asSubTitleWithCounter(getString(R.string.BoostingQuantityPrizes), getSelectedSliderValueWithBoosts())); + items.add(Item.asSlider(sliderValues, selectedSliderIndex)); + items.add(Item.asDivider(getString(R.string.BoostingChooseHowMany), false)); + } + items.add(Item.asSubTitle(getString(R.string.BoostingChannelsGroupsIncludedGiveaway))); + if (isPreparedGiveaway()) { + items.add(Item.asChat(currentChat, false, prepaidGiveaway.quantity * BoostRepository.giveawayBoostsPerPremium())); + } else { + items.add(Item.asChat(currentChat, false, getSelectedSliderValueWithBoosts())); + } + for (TLObject selectedChat : selectedChats) { + if (selectedChat instanceof TLRPC.Chat) { + items.add(Item.asChat((TLRPC.Chat) selectedChat, true, getSelectedSliderValueWithBoosts())); + } + if (selectedChat instanceof TLRPC.InputPeer) { + items.add(Item.asPeer((TLRPC.InputPeer) selectedChat, true, getSelectedSliderValueWithBoosts())); + } + } + if (selectedChats.size() < BoostRepository.giveawayAddPeersMax()) { + items.add(Item.asAddChannel()); + } + items.add(Item.asDivider(getString(R.string.BoostingChooseChannelsGroupsNeedToJoin), false)); + items.add(Item.asSubTitle(getString(R.string.BoostingEligibleUsers))); + items.add(Item.asParticipants(ParticipantsTypeCell.TYPE_ALL, selectedParticipantsType, true, selectedCountries)); + items.add(Item.asParticipants(ParticipantsTypeCell.TYPE_NEW, selectedParticipantsType, false, selectedCountries)); + items.add(Item.asDivider(getString(isChannel ? R.string.BoostingChooseLimitGiveaway : R.string.BoostingChooseLimitGiveawayGroups), false)); + } - if (!isPreparedGiveaway()) { - items.add(Item.asSubTitle(LocaleController.getString("BoostingDurationOfPremium", R.string.BoostingDurationOfPremium))); - List options = BoostRepository.filterGiftOptions(giftCodeOptions, isGiveaway() ? getSelectedSliderValue() : selectedUsers.size()); - for (int i = 0; i < options.size(); i++) { - TLRPC.TL_premiumGiftCodeOption option = options.get(i); - items.add(Item.asDuration(option, option.months, isGiveaway() ? getSelectedSliderValue() : selectedUsers.size(), option.amount, selectedMonths, option.currency, i != options.size() - 1)); + if (!isPreparedGiveaway()) { + items.add(Item.asSubTitle(getString(R.string.BoostingDurationOfPremium))); + List options = BoostRepository.filterGiftOptions(giftCodeOptions, isGiveaway() ? getSelectedSliderValue() : selectedUsers.size()); + for (int i = 0; i < options.size(); i++) { + TLRPC.TL_premiumGiftCodeOption option = options.get(i); + items.add(Item.asDuration(option, option.months, isGiveaway() ? getSelectedSliderValue() : selectedUsers.size(), option.amount, selectedMonths, option.currency, i != options.size() - 1)); + } } - } - if (!isPreparedGiveaway()) { - items.add(Item.asDivider(AndroidUtilities.replaceSingleTag( - LocaleController.getString("BoostingStoriesFeaturesAndTerms", R.string.BoostingStoriesFeaturesAndTerms), - Theme.key_chat_messageLinkIn, 0, () -> { - PremiumPreviewBottomSheet previewBottomSheet = new PremiumPreviewBottomSheet(getBaseFragment(), currentAccount, null, resourcesProvider); - previewBottomSheet.setOnDismissListener(dialog -> adapter.setPausedStars(false)); - previewBottomSheet.setOnShowListener(dialog -> adapter.setPausedStars(true)); - previewBottomSheet.show(); - }, - resourcesProvider), true)); + if (!isPreparedGiveaway()) { + items.add(Item.asDivider(AndroidUtilities.replaceSingleTag( + getString(R.string.BoostingStoriesFeaturesAndTerms), + Theme.key_chat_messageLinkIn, 0, () -> { + PremiumPreviewBottomSheet previewBottomSheet = new PremiumPreviewBottomSheet(getBaseFragment(), currentAccount, null, resourcesProvider); + previewBottomSheet.setOnDismissListener(dialog -> adapter.setPausedStars(false)); + previewBottomSheet.setOnShowListener(dialog -> adapter.setPausedStars(true)); + previewBottomSheet.show(); + }, + resourcesProvider), true)); + } } - if (selectedBoostType == BoostTypeCell.TYPE_GIVEAWAY) { - items.add(Item.asSwitcher(LocaleController.getString("BoostingGiveawayAdditionalPrizes", R.string.BoostingGiveawayAdditionalPrizes), isAdditionalPrizeSelected, isAdditionalPrizeSelected, SwitcherCell.TYPE_ADDITION_PRIZE)); + if (selectedBoostType == BoostTypeCell.TYPE_STARS || selectedBoostSubType == BoostTypeCell.TYPE_GIVEAWAY) { + items.add(Item.asSwitcher(getString(R.string.BoostingGiveawayAdditionalPrizes), isAdditionalPrizeSelected, isAdditionalPrizeSelected, SwitcherCell.TYPE_ADDITION_PRIZE)); if (isAdditionalPrizeSelected) { int quantity = isPreparedGiveaway() ? prepaidGiveaway.quantity : getSelectedSliderValue(); items.add(Item.asEnterPrize(quantity)); String months = LocaleController.formatPluralString("BoldMonths", selectedMonths); - if (additionalPrize.isEmpty()) { - items.add(Item.asDivider(AndroidUtilities.replaceTags(LocaleController.formatPluralString("BoostingGiveawayAdditionPrizeCountHint", quantity, months)), false)); + if (selectedBoostType == BoostTypeCell.TYPE_STARS) { + if (additionalPrize.isEmpty()) { + items.add(Item.asDivider(AndroidUtilities.replaceTags(LocaleController.formatPluralString("BoostingStarsGiveawayAdditionPrizeCountHint", (int) selectedStars)), false)); + } else { + items.add(Item.asDivider(AndroidUtilities.replaceTags(LocaleController.formatPluralString("BoostingStarsGiveawayAdditionPrizeCountNameHint", (int) selectedStars, quantity, additionalPrize)), false)); + } } else { - items.add(Item.asDivider(AndroidUtilities.replaceTags(LocaleController.formatPluralString("BoostingGiveawayAdditionPrizeCountNameHint", quantity, additionalPrize, months)), false)); + if (additionalPrize.isEmpty()) { + items.add(Item.asDivider(AndroidUtilities.replaceTags(LocaleController.formatPluralString("BoostingGiveawayAdditionPrizeCountHint", quantity, months)), false)); + } else { + items.add(Item.asDivider(AndroidUtilities.replaceTags(LocaleController.formatPluralString("BoostingGiveawayAdditionPrizeCountNameHint", quantity, additionalPrize, months)), false)); + } } } else { - items.add(Item.asDivider(LocaleController.getString("BoostingGiveawayAdditionPrizeHint", R.string.BoostingGiveawayAdditionPrizeHint), false)); + items.add(Item.asDivider(getString(selectedBoostType == BoostTypeCell.TYPE_STARS ? R.string.BoostingStarsGiveawayAdditionPrizeHint : R.string.BoostingGiveawayAdditionPrizeHint), false)); } - items.add(Item.asSwitcher(LocaleController.getString("BoostingGiveawayShowWinners", R.string.BoostingGiveawayShowWinners), isShowWinnersSelected, false, SwitcherCell.TYPE_WINNERS)); - items.add(Item.asDivider(LocaleController.getString("BoostingGiveawayShowWinnersHint", R.string.BoostingGiveawayShowWinnersHint), false)); - - items.add(Item.asSubTitle(LocaleController.getString("BoostingDateWhenGiveawayEnds", R.string.BoostingDateWhenGiveawayEnds))); + items.add(Item.asSubTitle(getString(R.string.BoostingDateWhenGiveawayEnds))); items.add(Item.asDateEnd(selectedEndDate)); + if (selectedBoostType == BoostTypeCell.TYPE_STARS) { + if (!isPreparedGiveaway()) { + items.add(Item.asDivider(LocaleController.formatPluralString(isChannel ? "BoostingStarsChooseRandom" : "BoostingStarsChooseRandomGroup", getSelectedSliderValue(), LocaleController.formatPluralString("BoostingStarsChooseRandomStars", (int) selectedStars)), false)); + } else { + items.add(Item.asDivider(LocaleController.formatPluralString(isChannel ? "BoostingStarsChooseRandom" : "BoostingStarsChooseRandomGroup", prepaidGiveaway.quantity, LocaleController.formatPluralString("BoostingStarsChooseRandomStars", (int) selectedStars)), false)); + } + } else { + if (!isPreparedGiveaway()) { + items.add(Item.asDivider(LocaleController.formatPluralString(isChannel ? "BoostingChooseRandom" : "BoostingChooseRandomGroup", getSelectedSliderValue()), false)); + } else { + items.add(Item.asDivider(LocaleController.formatPluralString(isChannel ? "BoostingChooseRandom" : "BoostingChooseRandomGroup", prepaidGiveaway.quantity), false)); + } + } + + items.add(Item.asSwitcher(getString(R.string.BoostingGiveawayShowWinners), isShowWinnersSelected, false, SwitcherCell.TYPE_WINNERS)); + if (!isPreparedGiveaway()) { - items.add(Item.asDivider(LocaleController.formatPluralString(isChannel ? "BoostingChooseRandom" : "BoostingChooseRandomGroup", getSelectedSliderValue()), false)); + items.add(Item.asDivider(LocaleController.getString(R.string.BoostingGiveawayShowWinnersHint), false)); } else { items.add(Item.asDivider(AndroidUtilities.replaceSingleTag( - LocaleController.formatPluralString(isChannel ? "BoostingChooseRandom" : "BoostingChooseRandomGroup", prepaidGiveaway.quantity) + "\n\n" + LocaleController.getString("BoostingStoriesFeaturesAndTerms", R.string.BoostingStoriesFeaturesAndTerms), + LocaleController.getString(R.string.BoostingGiveawayShowWinnersHint) + (selectedBoostType != BoostTypeCell.TYPE_STARS ? "\n\n" + getString(R.string.BoostingStoriesFeaturesAndTerms) : ""), Theme.key_chat_messageLinkIn, 0, () -> { PremiumPreviewBottomSheet previewBottomSheet = new PremiumPreviewBottomSheet(getBaseFragment(), currentAccount, null, resourcesProvider); previewBottomSheet.setOnDismissListener(dialog -> adapter.setPausedStars(false)); @@ -449,8 +769,8 @@ private void updateRows(boolean animated, boolean notify) { @Override protected CharSequence getTitle() { - return selectedBoostType == BoostTypeCell.TYPE_SPECIFIC_USERS ? - LocaleController.getString("GiftPremium", R.string.GiftPremium) + return selectedBoostSubType == BoostTypeCell.TYPE_SPECIFIC_USERS ? + getString(R.string.GiftPremium) : LocaleController.formatString("BoostingStartGiveaway", R.string.BoostingStartGiveaway); } @@ -471,9 +791,9 @@ public void onUsersSelected(List users) { selectedUsers.clear(); selectedUsers.addAll(users); if (users.isEmpty()) { - selectedBoostType = BoostTypeCell.TYPE_GIVEAWAY; + selectedBoostSubType = BoostTypeCell.TYPE_GIVEAWAY; } else { - selectedBoostType = BoostTypeCell.TYPE_SPECIFIC_USERS; + selectedBoostSubType = BoostTypeCell.TYPE_SPECIFIC_USERS; } selectedSliderIndex = 0; updateRows(false, true); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/GiftInfoBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/GiftInfoBottomSheet.java index c61ad39466..85bfb838b7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/GiftInfoBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/GiftInfoBottomSheet.java @@ -141,8 +141,8 @@ public int getTopOffset(int tag) { @Override protected CharSequence getTitle() { - return isUnused ? LocaleController.getString("BoostingGiftLink", R.string.BoostingGiftLink) - : LocaleController.getString("BoostingUsedGiftLink", R.string.BoostingUsedGiftLink); + return isUnused ? LocaleController.getString(R.string.BoostingGiftLink) + : LocaleController.getString(R.string.BoostingUsedGiftLink); } @Override @@ -183,9 +183,9 @@ protected void onObjectClicked(TLObject object) { protected void onHiddenLinkClicked() { String text; if ((slug == null || slug.isEmpty()) && giftCode.to_id == NO_USER_ID) { - text = LocaleController.getString("BoostingOnlyGiveawayCreatorSeeLink", R.string.BoostingOnlyGiveawayCreatorSeeLink); + text = LocaleController.getString(R.string.BoostingOnlyGiveawayCreatorSeeLink); } else { - text = LocaleController.getString("BoostingOnlyRecipientCode", R.string.BoostingOnlyRecipientCode); + text = LocaleController.getString(R.string.BoostingOnlyRecipientCode); } BulletinFactory.of(container, resourcesProvider).createSimpleBulletin(R.raw.chats_infotip, text).show(true); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/PremiumPreviewGiftLinkBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/PremiumPreviewGiftLinkBottomSheet.java index 262722dc41..0848c36bcc 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/PremiumPreviewGiftLinkBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/PremiumPreviewGiftLinkBottomSheet.java @@ -13,7 +13,6 @@ import android.widget.FrameLayout; import org.telegram.messenger.AndroidUtilities; -import org.telegram.messenger.FileLog; import org.telegram.messenger.R; import org.telegram.messenger.SendMessagesHelper; import org.telegram.messenger.UserConfig; @@ -92,7 +91,7 @@ private void share() { args.putBoolean("onlySelect", true); args.putInt("dialogsType", DialogsActivity.DIALOGS_TYPE_FORWARD); DialogsActivity dialogFragment = new DialogsActivity(args); - dialogFragment.setDelegate((fragment1, dids, message, param, topicsFragment) -> { + dialogFragment.setDelegate((fragment1, dids, message, param, notify, scheduleDate, topicsFragment) -> { long did = 0; for (int a = 0; a < dids.size(); a++) { did = dids.get(a).dialogId; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/ReassignBoostBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/ReassignBoostBottomSheet.java index cb3a7f7d4e..1b3bfd4882 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/ReassignBoostBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/ReassignBoostBottomSheet.java @@ -212,9 +212,9 @@ public void onOpenAnimationEnd() { private void updateActionButton(boolean animated) { actionButton.setShowZero(false); if (selectedBoosts.size() > 1) { - actionButton.setText(LocaleController.getString("BoostingReassignBoosts", R.string.BoostingReassignBoosts), animated); + actionButton.setText(LocaleController.getString(R.string.BoostingReassignBoosts), animated); } else { - actionButton.setText(LocaleController.getString("BoostingReassignBoost", R.string.BoostingReassignBoost), animated); + actionButton.setText(LocaleController.getString(R.string.BoostingReassignBoost), animated); } actionButton.setCount(selectedBoosts.size(), animated); actionButton.setEnabled(selectedBoosts.size() > 0); @@ -222,7 +222,7 @@ private void updateActionButton(boolean animated) { @Override protected CharSequence getTitle() { - return LocaleController.getString("BoostingReassignBoost", R.string.BoostingReassignBoost); + return LocaleController.getString(R.string.BoostingReassignBoost); } @Override @@ -272,7 +272,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi HeaderCell cell = (HeaderCell) holder.itemView; cell.setTextSize(15); cell.setPadding(0, 0, 0, AndroidUtilities.dp(2)); - cell.setText(LocaleController.getString("BoostingRemoveBoostFrom", R.string.BoostingRemoveBoostFrom)); + cell.setText(LocaleController.getString(R.string.BoostingRemoveBoostFrom)); } else if (holder.getItemViewType() == HOLDER_TYPE_HEADER) { topCell = (TopCell) holder.itemView; topCell.setData(currentChat, ReassignBoostBottomSheet.this); @@ -331,7 +331,7 @@ public TopCell(Context context) { TextView title = new TextView(context); title.setTypeface(AndroidUtilities.bold()); - title.setText(LocaleController.getString("BoostingReassignBoost", R.string.BoostingReassignBoost)); + title.setText(LocaleController.getString(R.string.BoostingReassignBoost)); title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); title.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); addView(title, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 0, 15, 0, 7)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/SelectorBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/SelectorBottomSheet.java index 2f9f67ac31..a5f8f8b141 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/SelectorBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/SelectorBottomSheet.java @@ -2,6 +2,7 @@ import static org.telegram.messenger.AndroidUtilities.dp; import static org.telegram.messenger.AndroidUtilities.translitSafe; +import static org.telegram.messenger.LocaleController.getString; import android.annotation.SuppressLint; import android.content.res.Configuration; @@ -30,6 +31,7 @@ import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Cells.GraySectionCell; +import org.telegram.ui.Cells.TextCell; import org.telegram.ui.Components.AnimatedFloat; import org.telegram.ui.Components.BottomSheetWithRecyclerListView; import org.telegram.ui.Components.CubicBezierInterpolator; @@ -137,7 +139,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { containerView.addView(headerView, LayoutHelper.createFrameMarginPx(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL, backgroundPaddingLeft, 0, backgroundPaddingLeft, 0)); containerView.addView(searchField, LayoutHelper.createFrameMarginPx(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL, backgroundPaddingLeft, 0, backgroundPaddingLeft, 0)); - containerView.addView(sectionCell, LayoutHelper.createFrameMarginPx(LayoutHelper.MATCH_PARENT, 32, Gravity.TOP | Gravity.FILL_HORIZONTAL, backgroundPaddingLeft, 0, backgroundPaddingLeft, 0)); +// containerView.addView(sectionCell, LayoutHelper.createFrameMarginPx(LayoutHelper.MATCH_PARENT, 32, Gravity.TOP | Gravity.FILL_HORIZONTAL, backgroundPaddingLeft, 0, backgroundPaddingLeft, 0)); buttonContainer = new SelectorBtnCell(getContext(), resourcesProvider, null); buttonContainer.setClickable(true); @@ -160,7 +162,10 @@ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newStat } }); recyclerListView.setOnItemClickListener((view, position, x, y) -> { - if (view instanceof SelectorUserCell) { + if (view instanceof TextCell) { + allSelectedObjects.clear(); + save(true); + } else if (view instanceof SelectorUserCell) { TLRPC.User user = ((SelectorUserCell) view).getUser(); TLRPC.Chat chat = ((SelectorUserCell) view).getChat(); long id = user != null ? user.id : -chat.id; @@ -464,7 +469,7 @@ private void showMaximumUsersToast() { text = LocaleController.formatPluralString("BoostingSelectUpToWarningChannelsGroupsPlural", (int) BoostRepository.giveawayAddPeersMax()); break; case TYPE_USER: - text = LocaleController.getString("BoostingSelectUpToWarningUsers", R.string.BoostingSelectUpToWarningUsers); + text = LocaleController.getString(R.string.BoostingSelectUpToWarningUsers); break; case TYPE_COUNTRY: text = LocaleController.formatPluralString("BoostingSelectUpToWarningCountriesPlural", (int) BoostRepository.giveawayCountriesMax()); @@ -513,8 +518,8 @@ protected void onPreDraw(Canvas canvas, int top, float progressToFullView) { float fromY = Math.max(top, minTop); headerView.setTranslationY(fromY); searchField.setTranslationY(headerView.getTranslationY() + headerView.getMeasuredHeight()); - sectionCell.setTranslationY(searchField.getTranslationY() + searchField.getMeasuredHeight()); - recyclerListView.setTranslationY(headerView.getMeasuredHeight() + searchField.getMeasuredHeight() + sectionCell.getMeasuredHeight() - AndroidUtilities.dp(16)); +// sectionCell.setTranslationY(searchField.getTranslationY() + searchField.getMeasuredHeight()); + recyclerListView.setTranslationY(headerView.getMeasuredHeight() + searchField.getMeasuredHeight() - AndroidUtilities.dp(16)); drawFilledStatusBar(canvas, top); } @@ -533,10 +538,10 @@ private void updateActionButton(boolean animated) { switch (type) { case TYPE_COUNTRY: case TYPE_CHANNEL: - text = LocaleController.getString("Save", R.string.Save); + text = LocaleController.getString(R.string.Save); break; case TYPE_USER: - text = LocaleController.getString("BoostingSaveRecipients", R.string.BoostingSaveRecipients); + text = LocaleController.getString(R.string.BoostingSaveRecipients); break; default: text = ""; @@ -598,6 +603,12 @@ public void updateItems(boolean animated, boolean notify) { oldItems.addAll(items); items.clear(); + if (type == TYPE_USER) { + items.add(Item.asButton(1, R.drawable.menu_random, getString(R.string.GiveawayChooseUsersRandomly))); + } + + items.add(Item.asCustom(sectionCell)); + int h = 0; if (type == TYPE_COUNTRY) { for (String countriesLetter : countriesLetters) { @@ -672,11 +683,11 @@ public void onConfigurationChanged(Configuration newConfig) { protected CharSequence getTitle() { switch (type) { case TYPE_CHANNEL: - return LocaleController.getString("BoostingAddChannelOrGroup", R.string.BoostingAddChannelOrGroup); + return LocaleController.getString(R.string.BoostingAddChannelOrGroup); case TYPE_USER: - return LocaleController.getString("GiftPremium", R.string.GiftPremium); + return LocaleController.getString(R.string.GiftPremium); case TYPE_COUNTRY: - return LocaleController.getString("BoostingSelectCountry", R.string.BoostingSelectCountry); + return LocaleController.getString(R.string.BoostingSelectCountry); } return ""; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/BoostAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/BoostAdapter.java index e5067eeaec..e77c70dcdf 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/BoostAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/BoostAdapter.java @@ -10,7 +10,9 @@ import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; +import org.telegram.messenger.LocaleController; import org.telegram.messenger.MessagesController; +import org.telegram.messenger.R; import org.telegram.messenger.UserConfig; import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; @@ -29,11 +31,13 @@ import org.telegram.ui.Components.Premium.boosts.cells.ParticipantsTypeCell; import org.telegram.ui.Components.Premium.boosts.cells.DurationCell; import org.telegram.ui.Components.Premium.boosts.cells.SliderCell; +import org.telegram.ui.Components.Premium.boosts.cells.StarGiveawayOptionCell; import org.telegram.ui.Components.Premium.boosts.cells.SubtitleWithCounterCell; import org.telegram.ui.Components.Premium.boosts.cells.SwitcherCell; import org.telegram.ui.Components.Premium.boosts.cells.TextInfoCell; import org.telegram.ui.Components.RecyclerListView; import org.telegram.ui.Components.SlideChooseView; +import org.telegram.ui.Stars.StarsIntroActivity; import java.util.ArrayList; import java.util.HashMap; @@ -57,7 +61,9 @@ public class BoostAdapter extends AdapterWithDiffUtils { HOLDER_TYPE_SUBTITLE_WITH_COUNTER = 13, HOLDER_TYPE_SINGLE_BOOST_TYPE = 14, HOLDER_TYPE_SWITCHER = 15, - HOLDER_TYPE_ENTER_PRIZE = 16; + HOLDER_TYPE_ENTER_PRIZE = 16, + HOLDER_TYPE_STAR_OPTION = 17, + HOLDER_TYPE_EXPAND_OPTIONS = 18; private final Theme.ResourcesProvider resourcesProvider; private List items = new ArrayList<>(); @@ -146,56 +152,56 @@ private RecyclerListView.Adapter realAdapter() { return recyclerListView.getAdapter(); } - @Override - public void notifyItemChanged(int position) { - realAdapter().notifyItemChanged(position + 1); - } - - @Override - public void notifyItemChanged(int position, @Nullable Object payload) { - realAdapter().notifyItemChanged(position + 1, payload); - } - - @Override - public void notifyItemInserted(int position) { - realAdapter().notifyItemInserted(position + 1); - } - - @Override - public void notifyItemMoved(int fromPosition, int toPosition) { - realAdapter().notifyItemMoved(fromPosition + 1, toPosition); - } - - @Override - public void notifyItemRangeChanged(int positionStart, int itemCount) { - realAdapter().notifyItemRangeChanged(positionStart + 1, itemCount); - } - - @Override - public void notifyItemRangeChanged(int positionStart, int itemCount, @Nullable Object payload) { - realAdapter().notifyItemRangeChanged(positionStart + 1, itemCount, payload); - } - - @Override - public void notifyItemRangeInserted(int positionStart, int itemCount) { - realAdapter().notifyItemRangeInserted(positionStart + 1, itemCount); - } - - @Override - public void notifyItemRangeRemoved(int positionStart, int itemCount) { - realAdapter().notifyItemRangeRemoved(positionStart + 1, itemCount); - } - - @Override - public void notifyItemRemoved(int position) { - realAdapter().notifyItemRemoved(position + 1); - } - - @SuppressLint("NotifyDataSetChanged") - @Override - public void notifyDataSetChanged() { - realAdapter().notifyDataSetChanged(); - } +// @Override +// public void notifyItemChanged(int position) { +// realAdapter().notifyItemChanged(position + 1); +// } +// +// @Override +// public void notifyItemChanged(int position, @Nullable Object payload) { +// realAdapter().notifyItemChanged(position + 1, payload); +// } +// +// @Override +// public void notifyItemInserted(int position) { +// realAdapter().notifyItemInserted(position + 1); +// } +// +// @Override +// public void notifyItemMoved(int fromPosition, int toPosition) { +// realAdapter().notifyItemMoved(fromPosition + 1, toPosition); +// } +// +// @Override +// public void notifyItemRangeChanged(int positionStart, int itemCount) { +// realAdapter().notifyItemRangeChanged(positionStart + 1, itemCount); +// } +// +// @Override +// public void notifyItemRangeChanged(int positionStart, int itemCount, @Nullable Object payload) { +// realAdapter().notifyItemRangeChanged(positionStart + 1, itemCount, payload); +// } +// +// @Override +// public void notifyItemRangeInserted(int positionStart, int itemCount) { +// realAdapter().notifyItemRangeInserted(positionStart + 1, itemCount); +// } +// +// @Override +// public void notifyItemRangeRemoved(int positionStart, int itemCount) { +// realAdapter().notifyItemRangeRemoved(positionStart + 1, itemCount); +// } +// +// @Override +// public void notifyItemRemoved(int position) { +// realAdapter().notifyItemRemoved(position + 1); +// } +// +// @SuppressLint("NotifyDataSetChanged") +// @Override +// public void notifyDataSetChanged() { +// realAdapter().notifyDataSetChanged(); +// } @Override public boolean isEnabled(RecyclerView.ViewHolder holder) { @@ -205,7 +211,9 @@ public boolean isEnabled(RecyclerView.ViewHolder holder) { || itemViewType == HOLDER_TYPE_ADD_CHANNEL || itemViewType == HOLDER_TYPE_DATE_END || itemViewType == HOLDER_TYPE_SWITCHER - || itemViewType == HOLDER_TYPE_DURATION; + || itemViewType == HOLDER_TYPE_DURATION + || itemViewType == HOLDER_TYPE_STAR_OPTION + || itemViewType == HOLDER_TYPE_EXPAND_OPTIONS; } @NonNull @@ -244,6 +252,11 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int case HOLDER_TYPE_ADD_CHANNEL: view = new AddChannelCell(context, resourcesProvider); break; + case HOLDER_TYPE_EXPAND_OPTIONS: + StarsIntroActivity.ExpandView expandView = new StarsIntroActivity.ExpandView(context, resourcesProvider); + expandView.set(LocaleController.getString(R.string.NotifyMoreOptions), true, true, false); + view = expandView; + break; case HOLDER_TYPE_SLIDER: view = new SliderCell(context, resourcesProvider); break; @@ -267,6 +280,9 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int case HOLDER_TYPE_DURATION: view = new DurationCell(context, resourcesProvider); break; + case HOLDER_TYPE_STAR_OPTION: + view = new StarGiveawayOptionCell(context, resourcesProvider); + break; } view.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); return new RecyclerListView.Holder(view); @@ -280,6 +296,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi case HOLDER_TYPE_HEADER: { headerCell = (HeaderCell) holder.itemView; headerCell.setBoostViaGifsText(currentChat); + headerCell.setStars(item.boolValue); break; } case HOLDER_TYPE_BOOST_TYPE: { @@ -289,7 +306,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } case HOLDER_TYPE_SINGLE_BOOST_TYPE: { BoostTypeSingleCell cell = (BoostTypeSingleCell) holder.itemView; - cell.setGiveaway((TL_stories.TL_prepaidGiveaway) item.user); + cell.setGiveaway((TL_stories.PrepaidGiveaway) item.user); break; } case HOLDER_TYPE_SLIDER: { @@ -301,7 +318,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi case HOLDER_TYPE_SUBTITLE_WITH_COUNTER: { SubtitleWithCounterCell cell = (SubtitleWithCounterCell) holder.itemView; cell.setText(item.text); - cell.updateCounter(false, item.intValue); + cell.updateCounter(true, item.intValue); break; } case HOLDER_TYPE_SUBTITLE: { @@ -347,6 +364,11 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi cell.setDuration(item.object, item.intValue, item.intValue2, item.longValue, item.text, item.boolValue, item.selectable); break; } + case HOLDER_TYPE_STAR_OPTION: { + StarGiveawayOptionCell cell = (StarGiveawayOptionCell) holder.itemView; + cell.setOption(item.object == null ? null : (TLRPC.TL_starsGiveawayOption) item.object, item.intValue, item.longValue, item.selectable, item.boolValue); + break; + } case HOLDER_TYPE_SIMPLE_DIVIDER: { break; } @@ -397,6 +419,12 @@ public static Item asHeader() { return new Item(HOLDER_TYPE_HEADER, false); } + public static Item asHeader(boolean golden) { + Item item = new Item(HOLDER_TYPE_HEADER, false); + item.boolValue = golden; + return item; + } + public static Item asDivider() { return new Item(HOLDER_TYPE_SIMPLE_DIVIDER, false); } @@ -471,6 +499,10 @@ public static Item asAddChannel() { return new Item(HOLDER_TYPE_ADD_CHANNEL, false); } + public static Item asExpandOptions() { + return new Item(HOLDER_TYPE_EXPAND_OPTIONS, false); + } + public static Item asSubTitle(CharSequence text) { Item item = new Item(HOLDER_TYPE_SUBTITLE, false); item.text = text; @@ -495,6 +527,15 @@ public static Item asDuration(Object code, int months, int count, long price, in return item; } + public static Item asOption(TLRPC.TL_starsGiveawayOption option, int index, long starsPerUser, boolean selected, boolean needDivider) { + Item item = new Item(HOLDER_TYPE_STAR_OPTION, selected); + item.intValue = index; + item.longValue = starsPerUser; + item.object = option; + item.boolValue = needDivider; + return item; + } + public static Item asParticipants(int subType, int selectedSubType, boolean needDivider, List countries) { Item item = new Item(HOLDER_TYPE_PARTICIPANTS, selectedSubType == subType); item.subType = subType; @@ -511,9 +552,20 @@ public boolean equals(Object o) { if (viewType != i.viewType) { return false; } + if (viewType == HOLDER_TYPE_HEADER) { + return true; + } + if (viewType == HOLDER_TYPE_STAR_OPTION) { + return intValue == i.intValue && object == i.object; + } + if (viewType == HOLDER_TYPE_SLIDER) { + return eq(values, i.values); + } + if (viewType == HOLDER_TYPE_SUBTITLE_WITH_COUNTER) { + return TextUtils.equals(text, i.text); + } if (chat != i.chat || user != i.user || peer != i.peer || object != i.object || boolValue != i.boolValue - || values != i.values || intValue != i.intValue || intValue2 != i.intValue2 || intValue3 != i.intValue3 || longValue != i.longValue || subType != i.subType @@ -523,5 +575,37 @@ public boolean equals(Object o) { } return true; } + + public static boolean eq(List a, List b) { + if (a == null && b == null) return true; + if (a == null || b == null) return false; + if (a.size() != b.size()) return false; + for (int i = 0; i < a.size(); ++i) { + if ((int) a.get(i) != (int) b.get(i)) + return false; + } + return true; + } + + @Override + protected boolean contentsEquals(AdapterWithDiffUtils.Item item) { + if (this == item) return true; + if (item == null || getClass() != item.getClass()) return false; + Item i = (Item) item; + if (i.viewType != viewType) return false; + if (viewType == HOLDER_TYPE_HEADER) { + return boolValue == i.boolValue; + } + if (i.viewType == HOLDER_TYPE_STAR_OPTION) { + return intValue == i.intValue && longValue == i.longValue && object == i.object && boolValue == i.boolValue && selectable == i.selectable; + } + if (viewType == HOLDER_TYPE_SLIDER) { + return intValue == i.intValue && eq(values, i.values); + } + if (viewType == HOLDER_TYPE_SUBTITLE_WITH_COUNTER) { + return intValue == i.intValue && TextUtils.equals(text, i.text); + } + return false; + } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/GiftInfoAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/GiftInfoAdapter.java index e662ae645a..f9c7be5367 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/GiftInfoAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/GiftInfoAdapter.java @@ -3,7 +3,6 @@ import static org.telegram.tgnet.TLRPC.TL_payments_checkedGiftCode.NO_USER_ID; import android.content.Context; -import android.graphics.Color; import android.os.Bundle; import android.text.SpannableStringBuilder; import android.view.Gravity; @@ -169,7 +168,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi if (giftCode.boost != null) { if (slug == null || slug.isEmpty()) { //not activated link - cell.setText(LocaleController.getString("BoostingLinkNotActivated", R.string.BoostingLinkNotActivated)); + cell.setText(LocaleController.getString(R.string.BoostingLinkNotActivated)); } else { //activated link cell.setFixedSize(14); @@ -181,8 +180,8 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi if (isUnused) { SpannableStringBuilder text = AndroidUtilities.replaceSingleTag( giftCode.to_id == NO_USER_ID ? - LocaleController.getString("BoostingSendLinkToAnyone", R.string.BoostingSendLinkToAnyone) - : LocaleController.getString("BoostingSendLinkToFriends", R.string.BoostingSendLinkToFriends), + LocaleController.getString(R.string.BoostingSendLinkToAnyone) + : LocaleController.getString(R.string.BoostingSendLinkToFriends), Theme.key_chat_messageLinkIn, 0, this::share, resourcesProvider @@ -236,7 +235,7 @@ private void share() { args.putBoolean("onlySelect", true); args.putInt("dialogsType", DialogsActivity.DIALOGS_TYPE_FORWARD); DialogsActivity dialogFragment = new DialogsActivity(args); - dialogFragment.setDelegate((fragment1, dids, message, param, topicsFragment) -> { + dialogFragment.setDelegate((fragment1, dids, message, param, notify, scheduleDate, topicsFragment) -> { long did = 0; for (int a = 0; a < dids.size(); a++) { did = dids.get(a).dialogId; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/SelectorAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/SelectorAdapter.java index acf4e02d26..515a78307d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/SelectorAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/adapters/SelectorAdapter.java @@ -6,6 +6,7 @@ import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; +import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -22,6 +23,7 @@ import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Cells.GraySectionCell; import org.telegram.ui.Cells.TextCell; +import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.ListView.AdapterWithDiffUtils; import org.telegram.ui.Components.Premium.boosts.BoostRepository; import org.telegram.ui.Components.Premium.boosts.cells.selector.SelectorCountryCell; @@ -43,6 +45,7 @@ public class SelectorAdapter extends AdapterWithDiffUtils { public static final int VIEW_TYPE_LETTER = 7; public static final int VIEW_TYPE_TOP_SECTION = 8; public static final int VIEW_TYPE_BUTTON = 9; + public static final int VIEW_TYPE_CUSTOM = 10; private final Theme.ResourcesProvider resourcesProvider; private final Context context; @@ -100,8 +103,8 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int view = new SelectorUserCell(context, needChecks, resourcesProvider, isGreenSelector); } else if (viewType == VIEW_TYPE_NO_USERS) { StickerEmptyView searchEmptyView = new StickerEmptyView(context, null, StickerEmptyView.STICKER_TYPE_SEARCH, resourcesProvider); - searchEmptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); - searchEmptyView.subtitle.setText(LocaleController.getString("SearchEmptyViewFilteredSubtitle2", R.string.SearchEmptyViewFilteredSubtitle2)); + searchEmptyView.title.setText(LocaleController.getString(R.string.NoResult)); + searchEmptyView.subtitle.setText(LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitle2)); searchEmptyView.linearLayout.setTranslationY(AndroidUtilities.dp(24)); view = searchEmptyView; } else if (viewType == VIEW_TYPE_LETTER) { @@ -115,6 +118,8 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int cell.leftPadding = 23 - 7; cell.imageLeft = 19; view = cell; + } else if (viewType == VIEW_TYPE_CUSTOM) { + view = new FrameLayout(context); } else { view = new View(context); } @@ -204,6 +209,12 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi TextCell cell = (TextCell) holder.itemView; cell.setColors(Theme.key_windowBackgroundWhiteBlueIcon, Theme.key_windowBackgroundWhiteBlueButton); cell.setTextAndIcon(item.text, item.resId, false); + } else if (viewType == VIEW_TYPE_CUSTOM) { + FrameLayout frameLayout = (FrameLayout) holder.itemView; + if (frameLayout.getChildCount() != 1 || frameLayout.getChildAt(0) != item.view) { + AndroidUtilities.removeFromParent(item.view); + frameLayout.addView(item.view, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + } } } @@ -295,6 +306,7 @@ public static class Item extends AdapterWithDiffUtils.Item { public int padHeight = -1; public View.OnClickListener callback; public View.OnClickListener options; + public View view; private Item(int viewType, boolean selectable) { super(viewType, selectable); @@ -314,6 +326,12 @@ public static Item asButton(int id, int resId, String text) { return item; } + public static Item asCustom(View view) { + Item item = new Item(VIEW_TYPE_CUSTOM, false); + item.view = view; + return item; + } + public static Item asUser(TLRPC.User user, boolean checked) { Item item = new Item(VIEW_TYPE_USER, true); item.user = user; @@ -402,6 +420,8 @@ public boolean equals(Object o) { return false; } else if (viewType == VIEW_TYPE_BUTTON && (!TextUtils.equals(text, i.text) || id != i.id || resId != i.resId)) { return false; + } else if (viewType == VIEW_TYPE_CUSTOM && view != i.view) { + return false; } return true; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/ActionBtnCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/ActionBtnCell.java index 9d0e959126..55cf081c72 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/ActionBtnCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/ActionBtnCell.java @@ -21,7 +21,7 @@ @SuppressLint("ViewConstructor") public class ActionBtnCell extends FrameLayout { - private final ButtonWithCounterView button; + public final ButtonWithCounterView button; private final View backgroundView; private final Theme.ResourcesProvider resourcesProvider; private final Paint dividerPaint = new Paint(Paint.ANTI_ALIAS_FLAG); @@ -49,7 +49,7 @@ public void setStartGiveAwayStyle(int counter, boolean animated) { button.setShowZero(true); button.setEnabled(true); button.setCount(counter, animated); - button.setText(LocaleController.formatString("BoostingStartGiveaway", R.string.BoostingStartGiveaway), animated); + button.setText(LocaleController.getString(R.string.BoostingStartGiveaway), animated); backgroundView.setBackgroundColor(Theme.getColor(Theme.key_dialogBackground, resourcesProvider)); } @@ -59,14 +59,14 @@ public void setGiftPremiumStyle(int counter, boolean animated, boolean isEnabled button.setShowZero(true); button.setEnabled(isEnabled); button.setCount(counter, animated); - button.setText(LocaleController.formatString("GiftPremium", R.string.GiftPremium), animated); + button.setText(LocaleController.getString(R.string.GiftPremium), animated); backgroundView.setBackgroundColor(Theme.getColor(Theme.key_dialogBackground, resourcesProvider)); } public void setActivateForFreeStyle() { drawDivider = true; button.setEnabled(true); - button.setText(LocaleController.formatString("GiftPremiumActivateForFree", R.string.GiftPremiumActivateForFree), false); + button.setText(LocaleController.getString(R.string.GiftPremiumActivateForFree), false); backgroundView.setBackgroundColor(Theme.getColor(Theme.key_dialogBackground, resourcesProvider)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/AddChannelCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/AddChannelCell.java index d5113255d8..2638266cbc 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/AddChannelCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/AddChannelCell.java @@ -37,7 +37,7 @@ public AddChannelCell(Context context, Theme.ResourcesProvider resourcesProvider imageView.setScaleType(ImageView.ScaleType.CENTER); addView(imageView); - textView.setText(LocaleController.getString("BoostingAddChannelOrGroup", R.string.BoostingAddChannelOrGroup)); + textView.setText(LocaleController.getString(R.string.BoostingAddChannelOrGroup)); Drawable drawable1 = getResources().getDrawable(R.drawable.poll_add_circle); Drawable drawable2 = getResources().getDrawable(R.drawable.poll_add_plus); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/BoostTypeCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/BoostTypeCell.java index e6ccd47326..05a0297b40 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/BoostTypeCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/BoostTypeCell.java @@ -1,6 +1,7 @@ package org.telegram.ui.Components.Premium.boosts.cells; import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.getString; import android.annotation.SuppressLint; import android.content.Context; @@ -13,6 +14,7 @@ import org.telegram.messenger.UserObject; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Cells.TextCell; import org.telegram.ui.Components.AvatarDrawable; import org.telegram.ui.Components.LayoutHelper; @@ -22,6 +24,9 @@ public class BoostTypeCell extends BaseCell { public static int TYPE_GIVEAWAY = 0; public static int TYPE_SPECIFIC_USERS = 1; + public static int TYPE_PREMIUM = 2; + public static int TYPE_STARS = 3; + private int selectedType; public BoostTypeCell(Context context, Theme.ResourcesProvider resourcesProvider) { @@ -47,17 +52,18 @@ protected boolean needCheck() { } public void setType(int type, int count, TLRPC.User singleUser, boolean isSelected) { + final boolean animated = selectedType == type; selectedType = type; if (type == TYPE_GIVEAWAY) { - titleTextView.setText(LocaleController.formatString("BoostingCreateGiveaway", R.string.BoostingCreateGiveaway)); - setSubtitle(LocaleController.formatString("BoostingWinnersRandomly", R.string.BoostingWinnersRandomly)); + titleTextView.setText(getString(R.string.BoostingCreateGiveaway)); + setSubtitle(getString(R.string.BoostingWinnersRandomly)); subtitleTextView.setTextColor(Theme.getColor(Theme.key_dialogTextGray3, resourcesProvider)); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_GIFT); avatarDrawable.setColor(0xFF16A5F2, 0xFF1180F7); setDivider(true); setBackground(Theme.getThemedDrawableByKey(getContext(), R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); } else if (type == TYPE_SPECIFIC_USERS) { - titleTextView.setText(LocaleController.formatString("BoostingAwardSpecificUsers", R.string.BoostingAwardSpecificUsers)); + titleTextView.setText(LocaleController.getString(R.string.BoostingAwardSpecificUsers)); if (count == 1 && singleUser != null) { CharSequence text = UserObject.getUserName(singleUser); text = Emoji.replaceEmoji(text, subtitleTextView.getPaint().getFontMetricsInt(), false); @@ -65,15 +71,39 @@ public void setType(int type, int count, TLRPC.User singleUser, boolean isSelect } else if (count > 0) { setSubtitle(withArrow(LocaleController.formatPluralString("Recipient", count))); } else { - setSubtitle(withArrow(LocaleController.getString("BoostingSelectRecipients", R.string.BoostingSelectRecipients))); + setSubtitle(withArrow(getString(R.string.BoostingSelectRecipients))); } subtitleTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlue2, resourcesProvider)); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_FILTER_GROUPS); avatarDrawable.setColor(0xFFC468F2, 0xFF965CFA); setDivider(false); setBackground(Theme.getThemedDrawableByKey(getContext(), R.drawable.greydivider_top, Theme.key_windowBackgroundGrayShadow)); + } else if (type == TYPE_PREMIUM) { + titleTextView.setText(getString(R.string.BoostingPremium)); + if (count == 1 && singleUser != null) { + CharSequence text = UserObject.getUserName(singleUser); + text = Emoji.replaceEmoji(text, subtitleTextView.getPaint().getFontMetricsInt(), false); + setSubtitle(withArrow(text)); + } else if (count > 0) { + setSubtitle(withArrow(LocaleController.formatPluralString("Recipient", count))); + } else { + setSubtitle(withArrow(getString(R.string.BoostingWinnersRandomly))); + } + subtitleTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlue2, resourcesProvider)); + avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_PREMIUM); + avatarDrawable.setColor(0xFFC468F2, 0xFF965CFA); + setDivider(true); + setBackground(Theme.getThemedDrawableByKey(getContext(), R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); + } else if (type == TYPE_STARS) { + titleTextView.setText(TextCell.applyNewSpan(getString(R.string.BoostingStars))); + setSubtitle(getString(R.string.BoostingWinnersRandomly)); + subtitleTextView.setTextColor(Theme.getColor(Theme.key_dialogTextGray3, resourcesProvider)); + avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_STARS); + avatarDrawable.setColor(0xFFFDC21B, 0xFFF67447); + setDivider(false); + setBackground(Theme.getThemedDrawableByKey(getContext(), R.drawable.greydivider_top, Theme.key_windowBackgroundGrayShadow)); } - radioButton.setChecked(isSelected, false); + radioButton.setChecked(isSelected, animated); imageView.setImageDrawable(avatarDrawable); imageView.setRoundRadius(dp(20)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/BoostTypeSingleCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/BoostTypeSingleCell.java index 13e5c8febd..226f43040c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/BoostTypeSingleCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/BoostTypeSingleCell.java @@ -13,6 +13,7 @@ import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Components.AvatarDrawable; import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.Premium.boosts.BoostRepository; @SuppressLint("ViewConstructor") public class BoostTypeSingleCell extends BoostTypeCell { @@ -21,18 +22,26 @@ public BoostTypeSingleCell(Context context, Theme.ResourcesProvider resourcesPro super(context, resourcesProvider); } - public void setGiveaway(TL_stories.TL_prepaidGiveaway prepaidGiveaway) { + public void setGiveaway(TL_stories.PrepaidGiveaway prepaidGiveaway) { subtitleTextView.setTextColor(Theme.getColor(Theme.key_dialogTextGray3, resourcesProvider)); - avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_GIFT); - titleTextView.setText(LocaleController.formatString("BoostingPreparedGiveawayOne", R.string.BoostingPreparedGiveawayOne)); - String subtitle = LocaleController.formatPluralString("BoostingPreparedGiveawaySubscriptionsPlural", prepaidGiveaway.quantity, LocaleController.formatPluralString("Months", prepaidGiveaway.months)); - setSubtitle(subtitle); - if (prepaidGiveaway.months == 12) { - avatarDrawable.setColor(0xFFff8560, 0xFFd55246); - } else if (prepaidGiveaway.months == 6) { - avatarDrawable.setColor(0xFF5caefa, 0xFF418bd0); - } else { - avatarDrawable.setColor(0xFF9ad164, 0xFF49ba44); + if (prepaidGiveaway instanceof TL_stories.TL_prepaidStarsGiveaway) { + TL_stories.TL_prepaidStarsGiveaway prepaid = (TL_stories.TL_prepaidStarsGiveaway) prepaidGiveaway; + avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_STARS); + titleTextView.setText(LocaleController.formatPluralStringComma("BoostingStarsPreparedGiveawaySubscriptionsPlural", (int) prepaid.stars)); + setSubtitle(LocaleController.formatPluralString("AmongWinners", prepaid.quantity)); + } else if (prepaidGiveaway instanceof TL_stories.TL_prepaidGiveaway) { + titleTextView.setText(LocaleController.getString(R.string.BoostingPreparedGiveawayOne)); + avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_GIFT); + TL_stories.TL_prepaidGiveaway prepaid = (TL_stories.TL_prepaidGiveaway) prepaidGiveaway; + if (prepaid.months == 12) { + avatarDrawable.setColor(0xFFff8560, 0xFFd55246); + } else if (prepaid.months == 6) { + avatarDrawable.setColor(0xFF5caefa, 0xFF418bd0); + } else { + avatarDrawable.setColor(0xFF9ad164, 0xFF49ba44); + } + String subtitle = LocaleController.formatPluralString("BoostingPreparedGiveawaySubscriptionsPlural", prepaidGiveaway.quantity, LocaleController.formatPluralString("Months", prepaid.months)); + setSubtitle(subtitle); } imageView.setImageDrawable(avatarDrawable); imageView.setRoundRadius(dp(20)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/ChatCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/ChatCell.java index 3e95fe485a..0327ea7349 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/ChatCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/ChatCell.java @@ -37,7 +37,7 @@ public ChatCell(Context context, Theme.ResourcesProvider resourcesProvider) { deleteImageView.setBackground(Theme.createSelectorDrawable(Theme.getColor(Theme.key_stickers_menuSelector))); deleteImageView.setImageResource(R.drawable.poll_remove); deleteImageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayIcon), PorterDuff.Mode.MULTIPLY)); - deleteImageView.setContentDescription(LocaleController.getString("Delete", R.string.Delete)); + deleteImageView.setContentDescription(LocaleController.getString(R.string.Delete)); addView(deleteImageView, LayoutHelper.createFrame(48, 50, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER, LocaleController.isRTL ? 3 : 0, 0, LocaleController.isRTL ? 0 : 3, 0)); titleTextView.setPadding(AndroidUtilities.dp(LocaleController.isRTL ? 24 : 0), 0, AndroidUtilities.dp(LocaleController.isRTL ? 0 : 24), 0); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/EnterPrizeCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/EnterPrizeCell.java index 4c03f708b6..02cd54fa33 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/EnterPrizeCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/EnterPrizeCell.java @@ -68,7 +68,7 @@ public CharSequence filter(CharSequence source, int start, int end, Spanned dest editText.setCursorColor(Theme.getColor(Theme.key_chat_messagePanelCursor, resourcesProvider)); editText.setHandlesColor(Theme.getColor(Theme.key_chat_TextSelectionCursor, resourcesProvider)); editText.setBackground(null); - editText.setHint(LocaleController.getString("BoostingGiveawayEnterYourPrize", R.string.BoostingGiveawayEnterYourPrize)); + editText.setHint(LocaleController.getString(R.string.BoostingGiveawayEnterYourPrize)); editText.addTextChangedListener(new TextWatcher() { @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/HeaderCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/HeaderCell.java index bc3b801087..1ea3eac55d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/HeaderCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/HeaderCell.java @@ -1,12 +1,19 @@ package org.telegram.ui.Components.Premium.boosts.cells; import static org.telegram.messenger.AndroidUtilities.REPLACING_TAG_TYPE_LINKBOLD; +import static org.telegram.messenger.AndroidUtilities.lerp; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.ValueAnimator; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Outline; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; import android.os.Build; import android.text.SpannableStringBuilder; import android.text.method.LinkMovementMethod; @@ -32,6 +39,7 @@ import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.CubicBezierInterpolator; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.LinkSpanDrawable; import org.telegram.ui.Components.Premium.GLIcon.GLIconRenderer; @@ -49,6 +57,8 @@ public class HeaderCell extends FrameLayout { private final LinearLayout linearLayout; private LinkSpanDrawable.LinkCollector links; + private final Paint[] paints; + public HeaderCell(@NonNull Context context, Theme.ResourcesProvider resourcesProvider) { super(context); this.resourcesProvider = resourcesProvider; @@ -97,10 +107,14 @@ protected void onDetachedFromWindow() { } }; - starParticlesView.drawable.useGradient = true; + paints = new Paint[20]; + updatePaints(0); + + starParticlesView.drawable.useGradient = false; starParticlesView.drawable.useBlur = false; starParticlesView.drawable.forceMaxAlpha = true; starParticlesView.drawable.checkBounds = true; + starParticlesView.drawable.getPaint = i -> paints[i % paints.length]; starParticlesView.drawable.init(); iconTextureView.setStarParticlesView(starParticlesView); @@ -144,7 +158,7 @@ public void getOutline(View view, Outline outline) { setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray, resourcesProvider)); titleView.setText(LocaleController.formatString("BoostingBoostsViaGifts", R.string.BoostingBoostsViaGifts)); boolean isChannel = ChatObject.isChannelAndNotMegaGroup(currentChat); - subtitleView.setText(LocaleController.formatString(isChannel ? R.string.BoostingGetMoreBoost : R.string.BoostingGetMoreBoostGroup)); + subtitleView.setText(LocaleController.formatString(isChannel ? R.string.BoostingGetMoreBoost2 : R.string.BoostingGetMoreBoostGroup)); subtitleView.setTextColor(Theme.getColor(Theme.key_dialogTextGray3, resourcesProvider)); } @@ -166,7 +180,7 @@ public void setUnclaimedText() { public void setGiftLinkToUserText(long toUserId, Utilities.Callback onObjectClicked) { titleView.setText(LocaleController.formatString("BoostingGiftLink", R.string.BoostingGiftLink)); - CharSequence description = AndroidUtilities.replaceTags(LocaleController.getString("BoostingLinkAllowsToUser", R.string.BoostingLinkAllowsToUser)); + CharSequence description = AndroidUtilities.replaceTags(LocaleController.getString(R.string.BoostingLinkAllowsToUser)); TLRPC.User toUser = MessagesController.getInstance(UserConfig.selectedAccount).getUser(toUserId); SpannableStringBuilder link = AndroidUtilities.replaceSingleTag( @@ -190,6 +204,60 @@ public void setPaused(boolean value) { starParticlesView.setPaused(value); } + private ValueAnimator goldenAnimator; + public void setStars(boolean stars) { + if (goldenAnimator != null) { + goldenAnimator.cancel(); + } + final float from = iconTextureView.mRenderer.golden; + final float to = stars ? 1f : 0f; + goldenAnimator = ValueAnimator.ofFloat(0, 1f); + final float[] lastT = new float[] { 0 }; + iconTextureView.cancelIdleAnimation(); + iconTextureView.cancelAnimatons(); + iconTextureView.startBackAnimation(); + goldenAnimator.addUpdateListener(anm -> { + float t = (float) anm.getAnimatedValue(); + float dt = t - lastT[0]; + lastT[0] = t; + iconTextureView.mRenderer.golden = lerp(from, to, t); + iconTextureView.mRenderer.angleX3 += dt * 360f * (stars ? +1 : -1); + iconTextureView.mRenderer.updateColors(); + updatePaints(iconTextureView.mRenderer.golden); + }); + goldenAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + float t = 1f; + float dt = t - lastT[0]; + lastT[0] = t; + iconTextureView.mRenderer.golden = lerp(from, to, t); + iconTextureView.mRenderer.angleX3 += dt * 360f * (stars ? +1 : -1); + iconTextureView.mRenderer.updateColors(); + updatePaints(iconTextureView.mRenderer.golden); + + iconTextureView.scheduleIdleAnimation(750); + } + }); + goldenAnimator.setDuration(680); + goldenAnimator.setInterpolator(CubicBezierInterpolator.EASE_OUT_QUINT); + goldenAnimator.start(); + } + + private void updatePaints(float golden) { + final int premiumColor1 = Theme.getColor(Theme.key_premiumGradient1, resourcesProvider); + final int premiumColor2 = Theme.getColor(Theme.key_premiumGradient2, resourcesProvider); + final int color1 = ColorUtils.blendARGB(premiumColor1, 0xFFFA5416, golden); + final int color2 = ColorUtils.blendARGB(premiumColor2, 0xFFFFC837, golden); + for (int i = 0; i < paints.length; ++i) { + paints[i] = new Paint(Paint.ANTI_ALIAS_FLAG); + paints[i].setColorFilter(new PorterDuffColorFilter( + ColorUtils.blendARGB(color1, color2, i / (float) (paints.length - 1)), + PorterDuff.Mode.SRC_IN) + ); + } + } + @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/ParticipantsTypeCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/ParticipantsTypeCell.java index 415a7a7850..6e25b35dbd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/ParticipantsTypeCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/ParticipantsTypeCell.java @@ -46,7 +46,7 @@ public void setType(int type, boolean isSelected, boolean needDivider, List= 0; --i) { + final float alpha = Utilities.clamp(starsCount - i, 1f, 0f); + final float x = sx + (i - 1 - (1f - alpha)) * pad * rtl; + final float y = sy; + starDrawableOutline.setBounds((int) x, (int) y, (int) (x + wsize), (int) (y + hsize)); + starDrawableOutline.setAlpha((int) (0xFF * alpha)); + starDrawableOutline.draw(canvas); + starDrawable.setBounds((int) x, (int) y, (int) (x + wsize), (int) (y + hsize)); + starDrawable.setAlpha((int) (0xFF * alpha)); + starDrawable.draw(canvas); + } + titleView.setTranslationX(dp(22) + pad * starsCount); + + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/SubtitleWithCounterCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/SubtitleWithCounterCell.java index 79261dc1f5..0cf51e57a1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/SubtitleWithCounterCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/SubtitleWithCounterCell.java @@ -23,9 +23,9 @@ public class SubtitleWithCounterCell extends org.telegram.ui.Cells.HeaderCell { public SubtitleWithCounterCell(@NonNull Context context, Theme.ResourcesProvider resourcesProvider) { super(context, resourcesProvider); - counterTextView = new AnimatedTextView(context, false, true, true); + counterTextView = new AnimatedTextView(context, true, true, true); counterTextView.setAnimationProperties(.45f, 0, 240, CubicBezierInterpolator.EASE_OUT_QUINT); - counterTextView.setGravity(Gravity.CENTER_HORIZONTAL); + counterTextView.setGravity(LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT); counterTextView.setTextSize(dp(15)); counterTextView.setTypeface(AndroidUtilities.bold()); counterTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueHeader, resourcesProvider)); @@ -34,7 +34,8 @@ public SubtitleWithCounterCell(@NonNull Context context, Theme.ResourcesProvider } public void updateCounter(boolean animated, int count) { - CharSequence text = LocaleController.formatPluralString("BoostingBoostsCountTitle", count, count); + CharSequence text = count <= 0 ? "" : LocaleController.formatPluralString("BoostingBoostsCountTitle", count, count); + counterTextView.cancelAnimation(); counterTextView.setText(text, animated); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/TableCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/TableCell.java index 57726ee91a..5625a9d883 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/TableCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/TableCell.java @@ -1,7 +1,7 @@ package org.telegram.ui.Components.Premium.boosts.cells; import static org.telegram.messenger.AndroidUtilities.dp; -import static org.telegram.tgnet.tl.TL_stories.TL_boost.NO_USER_ID; +import static org.telegram.tgnet.tl.TL_stories.Boost.NO_USER_ID; import android.annotation.SuppressLint; import android.content.Context; @@ -78,11 +78,11 @@ public TableCell(@NonNull Context context, Theme.ResourcesProvider resourcesProv linePaint.setStyle(Paint.Style.STROKE); this.resourcesProvider = resourcesProvider; - fromNameTextView = createTextView(LocaleController.getString("BoostingFrom", R.string.BoostingFrom), false); - toNameTextView = createTextView(LocaleController.getString("BoostingTo", R.string.BoostingTo), false); - giftNameTextView = createTextView(LocaleController.getString("BoostingGift", R.string.BoostingGift), false); - reasonNameTextView = createTextView(LocaleController.getString("BoostingReason", R.string.BoostingReason), false); - dateNameTextView = createTextView(LocaleController.getString("BoostingDate", R.string.BoostingDate), false); + fromNameTextView = createTextView(LocaleController.getString(R.string.BoostingFrom), false); + toNameTextView = createTextView(LocaleController.getString(R.string.BoostingTo), false); + giftNameTextView = createTextView(LocaleController.getString(R.string.BoostingGift), false); + reasonNameTextView = createTextView(LocaleController.getString(R.string.BoostingReason), false); + dateNameTextView = createTextView(LocaleController.getString(R.string.BoostingDate), false); fromTextView = createTextView(true); toTextView = createTextView(true); @@ -213,7 +213,7 @@ public void setData(TLRPC.TL_payments_checkedGiftCode giftCode, Utilities.Callba if (giftCode.via_giveaway) { SpannableStringBuilder builder = new SpannableStringBuilder(); builder.append("**"); - builder.append(LocaleController.getString("BoostingGiveaway", R.string.BoostingGiveaway)); + builder.append(LocaleController.getString(R.string.BoostingGiveaway)); builder.append("**"); builder = AndroidUtilities.replaceSingleTag(builder.toString(), Theme.key_chat_messageLinkIn, 0, () -> onObjectClicked.run(giftCode), resourcesProvider); reasonTextView.setText(builder); @@ -245,11 +245,11 @@ public void setData(TLRPC.TL_payments_checkedGiftCode giftCode, Utilities.Callba if (giftCode.to_id == NO_USER_ID && giftCode.via_giveaway) { SpannableStringBuilder builder = new SpannableStringBuilder(); builder.append("**"); - builder.append(LocaleController.getString("BoostingIncompleteGiveaway", R.string.BoostingIncompleteGiveaway)); + builder.append(LocaleController.getString(R.string.BoostingIncompleteGiveaway)); builder.append("**"); builder = AndroidUtilities.replaceSingleTag(builder.toString(), Theme.key_chat_messageLinkIn, 0, () -> onObjectClicked.run(giftCode), resourcesProvider); reasonTextView.setText(builder); - toTextView.setText(LocaleController.getString("BoostingNoRecipient", R.string.BoostingNoRecipient)); + toTextView.setText(LocaleController.getString(R.string.BoostingNoRecipient)); toTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); ((MarginLayoutParams) toTextView.getLayoutParams()).leftMargin = 0; ((MarginLayoutParams) toTextView.getLayoutParams()).rightMargin = 0; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/msg/GiveawayMessageCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/msg/GiveawayMessageCell.java index a86d601cdc..69ff03dce9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/msg/GiveawayMessageCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/msg/GiveawayMessageCell.java @@ -29,6 +29,7 @@ import androidx.annotation.NonNull; import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.ApplicationLoader; import org.telegram.messenger.ChatObject; import org.telegram.messenger.DocumentObject; import org.telegram.messenger.Emoji; @@ -90,6 +91,7 @@ public class GiveawayMessageCell { private int topHeight; private int bottomHeight; private int countriesHeight; + private Drawable counterIcon; private String counterStr; private int diffTextWidth; @@ -100,6 +102,7 @@ public class GiveawayMessageCell { private StaticLayout countriesLayout; private TextPaint counterTextPaint; + private TextPaint counterStarsTextPaint; private TextPaint chatTextPaint; private TextPaint textPaint; private TextPaint textDividerPaint; @@ -119,6 +122,7 @@ public class GiveawayMessageCell { private int selectorColor; private Drawable selectorDrawable; private MessageObject messageObject; + private boolean isStars; private int pressedPos = -1; private boolean isButtonPressed = false; private boolean isContainerPressed = false; @@ -132,6 +136,7 @@ private void init() { return; } counterTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); + counterStarsTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); chatTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); textDividerPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); @@ -162,6 +167,10 @@ private void init() { counterTextPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT)); counterTextPaint.setTextSize(dp(12)); counterTextPaint.setTextAlign(Paint.Align.CENTER); + counterStarsTextPaint.setTypeface(AndroidUtilities.bold()); + counterStarsTextPaint.setTextSize(dp(12)); + counterStarsTextPaint.setTextAlign(Paint.Align.CENTER); + counterStarsTextPaint.setColor(0xFFFFFFFF); chatTextPaint.setTypeface(AndroidUtilities.bold()); chatTextPaint.setTextSize(dp(13)); countriesTextPaint.setTextSize(dp(13)); @@ -268,6 +277,7 @@ public void setMessageContent(MessageObject messageObject, int parentWidth, int createImages(); setGiftImage(messageObject); TLRPC.TL_messageMediaGiveaway giveaway = (TLRPC.TL_messageMediaGiveaway) messageObject.messageOwner.media; + isStars = (giveaway.flags & 32) != 0; checkArraysLimits(giveaway.channels.size()); int giftSize = AndroidUtilities.dp(148); @@ -281,14 +291,20 @@ public void setMessageContent(MessageObject messageObject, int parentWidth, int MessagesController controller = MessagesController.getInstance(UserConfig.selectedAccount); TLRPC.Chat fromChat = controller.getChat(-MessageObject.getPeerId(messageObject.isForwarded() ? messageObject.messageOwner.fwd_from.from_id : messageObject.messageOwner.peer_id)); boolean isChannel = ChatObject.isChannelAndNotMegaGroup(fromChat); - CharSequence giveawayPrizes = replaceTags(getString("BoostingGiveawayPrizes", R.string.BoostingGiveawayPrizes)); + CharSequence giveawayPrizes = replaceTags(getString(R.string.BoostingGiveawayPrizes)); SpannableStringBuilder titleStringBuilder = new SpannableStringBuilder(giveawayPrizes); titleStringBuilder.setSpan(new RelativeSizeSpan(1.05f), 0, giveawayPrizes.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); SpannableStringBuilder subTitleBuilder = new SpannableStringBuilder(); - subTitleBuilder.append(replaceTags(formatPluralStringComma("BoostingGiveawayMsgInfoPlural1", giveaway.quantity))); - subTitleBuilder.append("\n"); - subTitleBuilder.append(replaceTags(formatPluralString("BoostingGiveawayMsgInfoPlural2", giveaway.quantity, LocaleController.formatPluralString("BoldMonths", giveaway.months)))); + if (isStars) { + subTitleBuilder.append(replaceTags(formatPluralStringComma("BoostingStarsGiveawayMsgInfoPlural1", (int) giveaway.stars))); + subTitleBuilder.append("\n"); + subTitleBuilder.append(replaceTags(formatPluralString("BoostingStarsGiveawayMsgInfoPlural2", giveaway.quantity))); + } else { + subTitleBuilder.append(replaceTags(formatPluralStringComma("BoostingGiveawayMsgInfoPlural1", giveaway.quantity))); + subTitleBuilder.append("\n"); + subTitleBuilder.append(replaceTags(formatPluralString("BoostingGiveawayMsgInfoPlural2", giveaway.quantity, LocaleController.formatPluralString("BoldMonths", giveaway.months)))); + } SpannableStringBuilder topStringBuilder = new SpannableStringBuilder(); topStringBuilder.append(subTitleBuilder); @@ -339,7 +355,7 @@ public void setMessageContent(MessageObject messageObject, int parentWidth, int CharSequence txt = Emoji.replaceEmoji(AndroidUtilities.replaceTags(LocaleController.formatPluralString("BoostingGiveawayMsgPrizes", giveaway.quantity, giveaway.prize_description)), countriesTextPaint.getFontMetricsInt(), false); additionPrizeLayout = StaticLayoutEx.createStaticLayout(txt, textPaint, maxRowLength, Layout.Alignment.ALIGN_CENTER, 1.0f, AndroidUtilities.dp(2), false, TextUtils.TruncateAt.END, maxRowLength, 20); additionPrizeHeight = additionPrizeLayout.getLineBottom(additionPrizeLayout.getLineCount() - 1) + dp(22); - textDivider = LocaleController.getString("BoostingGiveawayMsgWithDivider", R.string.BoostingGiveawayMsgWithDivider); + textDivider = LocaleController.getString(R.string.BoostingGiveawayMsgWithDivider); textDividerWidth = textDividerPaint.measureText(textDivider, 0, textDivider.length()); } @@ -380,8 +396,19 @@ public void setMessageContent(MessageObject messageObject, int parentWidth, int measuredHeight += dp(32 + 96); //gift measuredWidth = maxWidth; - counterStr = "x" + giveaway.quantity; + if (isStars) { + if (counterIcon == null) { + counterIcon = ApplicationLoader.applicationContext.getResources().getDrawable(R.drawable.filled_giveaway_stars).mutate(); + } + counterStr = LocaleController.formatNumber((int) giveaway.stars, ','); + } else { + counterIcon = null; + counterStr = "x" + giveaway.quantity; + } counterTextPaint.getTextBounds(counterStr, 0, counterStr.length(), counterTextBounds); + if (giveaway.stars != 0) { + counterTextBounds.right += dp(20); + } Arrays.fill(avatarVisible, false); @@ -476,6 +503,10 @@ public void draw(Canvas canvas, int marginTop, int marginLeft, Theme.ResourcesPr chatBgPaint.setColor(Theme.getColor(Theme.key_chat_inReplyLine, resourcesProvider)); } + if (isStars) { + counterBgPaint.setColor(Theme.getColor(Theme.key_starsGradient1, resourcesProvider)); + } + int x = 0, y = 0; canvas.save(); x = marginLeft - dp(4); @@ -504,7 +535,12 @@ public void draw(Canvas canvas, int marginTop, int marginLeft, Theme.ResourcesPr centerY + ((textHeight) / 2f) ); canvas.drawRoundRect(countRect, dp(10), dp(10), counterBgPaint); - canvas.drawText(counterStr, countRect.centerX(), countRect.centerY() + dp(4), counterTextPaint); + if (counterIcon != null) { + final float s = .58f; + counterIcon.setBounds((int) countRect.left + dp(5), (int) countRect.centerY() - dp(12 * s), (int) countRect.left + dp(5 + 28 * s), (int) countRect.centerY() + dp(12 * s)); + counterIcon.draw(canvas); + } + canvas.drawText(counterStr, countRect.centerX() + dp(isStars ? 8 : 0), countRect.centerY() + dp(4), isStars ? counterStarsTextPaint : counterTextPaint); canvas.restore(); canvas.translate(0, dp(32 + 96)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/msg/GiveawayResultsMessageCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/msg/GiveawayResultsMessageCell.java index cecce71858..35969bedcf 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/msg/GiveawayResultsMessageCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/msg/GiveawayResultsMessageCell.java @@ -30,6 +30,7 @@ import androidx.annotation.NonNull; import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.ApplicationLoader; import org.telegram.messenger.Emoji; import org.telegram.messenger.FileLog; import org.telegram.messenger.ImageReceiver; @@ -76,6 +77,7 @@ public class GiveawayResultsMessageCell { private int topHeight; private int bottomHeight; private int countriesHeight; + private Drawable counterIcon; private String counterStr; private int diffTextWidth; @@ -85,6 +87,7 @@ public class GiveawayResultsMessageCell { private StaticLayout countriesLayout; private TextPaint counterTextPaint; + private TextPaint counterStarsTextPaint; private TextPaint chatTextPaint; private TextPaint textPaint; private TextPaint textDividerPaint; @@ -103,6 +106,7 @@ public class GiveawayResultsMessageCell { private int selectorColor; private Drawable selectorDrawable; private MessageObject messageObject; + private boolean isStars; private int pressedPos = -1; private boolean isButtonPressed = false; private boolean isContainerPressed = false; @@ -120,6 +124,7 @@ private void init() { return; } counterTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); + counterStarsTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); chatTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); textDividerPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); @@ -149,6 +154,10 @@ private void init() { counterTextPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT)); counterTextPaint.setTextSize(dp(12)); counterTextPaint.setTextAlign(Paint.Align.CENTER); + counterStarsTextPaint.setTypeface(AndroidUtilities.bold()); + counterStarsTextPaint.setTextSize(dp(12)); + counterStarsTextPaint.setTextAlign(Paint.Align.CENTER); + counterStarsTextPaint.setColor(0xFFFFFFFF); chatTextPaint.setTypeface(AndroidUtilities.bold()); chatTextPaint.setTextSize(dp(13)); countriesTextPaint.setTextSize(dp(13)); @@ -282,6 +291,7 @@ public void setMessageContent(MessageObject messageObject, int parentWidth, int countriesLayout = null; measuredHeight = 0; measuredWidth = 0; + isStars = false; if (!messageObject.isGiveawayResults()) { return; } @@ -330,7 +340,12 @@ public void setMessageContent(MessageObject messageObject, int parentWidth, int bottomStringBuilder.setSpan(new RelativeSizeSpan(1.05f), 0, bottomStringBuilder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); bottomStringBuilder.append("\n"); } - bottomStringBuilder.append(LocaleController.getString("BoostingGiveawayResultsMsgAllWinnersReceivedLinks", R.string.BoostingGiveawayResultsMsgAllWinnersReceivedLinks)); + isStars = (giveaway.flags & 32) != 0; + if (isStars) { + bottomStringBuilder.append(LocaleController.formatPluralStringSpaced("BoostingStarsGiveawayResultsMsgAllWinnersReceivedLinks", (int) giveaway.stars)); + } else { + bottomStringBuilder.append(LocaleController.getString(R.string.BoostingGiveawayResultsMsgAllWinnersReceivedLinks)); + } titleLayout = StaticLayoutEx.createStaticLayout(titleStringBuilder, textPaint, maxWidth, Layout.Alignment.ALIGN_CENTER, 1.0f, AndroidUtilities.dp(2), false, TextUtils.TruncateAt.END, maxWidth, 10); topLayout = StaticLayoutEx.createStaticLayout(topStringBuilder, textPaint, maxWidth, Layout.Alignment.ALIGN_CENTER, 1.0f, AndroidUtilities.dp(2), false, TextUtils.TruncateAt.END, maxWidth, 10); @@ -353,8 +368,19 @@ public void setMessageContent(MessageObject messageObject, int parentWidth, int measuredHeight += dp(32 + 96); //gift measuredWidth = maxWidth; - counterStr = "x" + giveaway.winners_count; + if (isStars) { + if (counterIcon == null) { + counterIcon = ApplicationLoader.applicationContext.getResources().getDrawable(R.drawable.filled_giveaway_stars).mutate(); + } + counterStr = LocaleController.formatNumber((int) giveaway.stars, ','); + } else { + counterIcon = null; + counterStr = "x" + giveaway.winners_count; + } counterTextPaint.getTextBounds(counterStr, 0, counterStr.length(), counterTextBounds); + if (isStars) { + counterTextBounds.right += dp(20); + } Arrays.fill(avatarVisible, false); @@ -448,6 +474,10 @@ public void draw(Canvas canvas, int marginTop, int marginLeft, Theme.ResourcesPr chatBgPaint.setColor(Theme.getColor(Theme.key_chat_inReplyLine, resourcesProvider)); } + if (isStars) { + counterBgPaint.setColor(Theme.getColor(Theme.key_starsGradient1, resourcesProvider)); + } + int x = 0, y = 0; canvas.save(); x = marginLeft - dp(4); @@ -476,7 +506,12 @@ public void draw(Canvas canvas, int marginTop, int marginLeft, Theme.ResourcesPr centerY + ((textHeight) / 2f) ); canvas.drawRoundRect(countRect, dp(10), dp(10), counterBgPaint); - canvas.drawText(counterStr, countRect.centerX(), countRect.centerY() + dp(4), counterTextPaint); + if (counterIcon != null) { + final float s = .58f; + counterIcon.setBounds((int) countRect.left + dp(5), (int) countRect.centerY() - dp(12 * s), (int) countRect.left + dp(5 + 28 * s), (int) countRect.centerY() + dp(12 * s)); + counterIcon.draw(canvas); + } + canvas.drawText(counterStr, countRect.centerX() + dp(isStars ? 8 : 0), countRect.centerY() + dp(4), isStars ? counterStarsTextPaint : counterTextPaint); canvas.restore(); canvas.translate(0, dp(32 + 96)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/selector/SelectorSearchCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/selector/SelectorSearchCell.java index 197eb665f4..34cda1be8c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/selector/SelectorSearchCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/selector/SelectorSearchCell.java @@ -115,8 +115,8 @@ public boolean onTouchEvent(MotionEvent event) { editText.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI); editText.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL); spansContainer.addView(editText); - editText.setHintText(LocaleController.getString("Search", R.string.Search)); - hintTextWidth = (int) editText.getPaint().measureText(LocaleController.getString("Search", R.string.Search)); + editText.setHintText(LocaleController.getString(R.string.Search)); + hintTextWidth = (int) editText.getPaint().measureText(LocaleController.getString(R.string.Search)); editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/statistics/GiftedUserCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/statistics/GiftedUserCell.java index e86017c62f..fc66be028a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/statistics/GiftedUserCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/statistics/GiftedUserCell.java @@ -1,6 +1,6 @@ package org.telegram.ui.Components.Premium.boosts.cells.statistics; -import static org.telegram.tgnet.tl.TL_stories.TL_boost.NO_USER_ID; +import static org.telegram.tgnet.tl.TL_stories.Boost.NO_USER_ID; import android.annotation.SuppressLint; import android.content.Context; @@ -30,7 +30,7 @@ public class GiftedUserCell extends UserCell { private FrameLayout badgeLayout; private Drawable giveawayDrawable; private Drawable giftDrawable; - private TL_stories.TL_boost boost; + private TL_stories.Boost boost; private CounterDrawable counterDrawable; public GiftedUserCell(Context context, int padding, int checkbox, boolean admin) { @@ -60,7 +60,7 @@ protected void onDraw(Canvas canvas) { } } - public TL_stories.TL_boost getBoost() { + public TL_stories.Boost getBoost() { return boost; } @@ -87,28 +87,36 @@ private void setAvatarColorByMonths(int months) { } } - public void setStatus(TL_stories.TL_boost boost) { + public void setStatus(TL_stories.Boost boost) { this.boost = boost; if ((boost.gift || boost.giveaway)) { badgeLayout.setVisibility(VISIBLE); int months = (boost.expires - boost.date) / 30 / 86400; - if (boost.unclaimed) { - nameTextView.setText(LocaleController.getString("BoostingUnclaimed", R.string.BoostingUnclaimed)); + if (boost.stars > 0) { + nameTextView.setText(LocaleController.formatPluralString("BoostingBoostStars", (int) boost.stars)); + avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_STARS); + avatarImageView.setForUserOrChat(null, avatarDrawable); + nameTextView.setRightDrawable(null); + } else if (boost.unclaimed) { + nameTextView.setText(LocaleController.getString(R.string.BoostingUnclaimed)); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_UNCLAIMED); setAvatarColorByMonths(months); avatarImageView.setForUserOrChat(null, avatarDrawable); nameTextView.setRightDrawable(null); } else if (boost.user_id == NO_USER_ID) { - nameTextView.setText(LocaleController.getString("BoostingToBeDistributed", R.string.BoostingToBeDistributed)); + nameTextView.setText(LocaleController.getString(R.string.BoostingToBeDistributed)); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_TO_BE_DISTRIBUTED); setAvatarColorByMonths(months); avatarImageView.setForUserOrChat(null, avatarDrawable); nameTextView.setRightDrawable(null); } - String date = LocaleController.getInstance().getFormatterScheduleDay().format(new Date(boost.expires * 1000L)); - String time = LocaleController.getInstance().getFormatterDay().format(new Date(boost.expires * 1000L)); - statusTextView.setText(LocaleController.formatString("BoostingShortMonths", R.string.BoostingShortMonths, months) + " • " + LocaleController.formatString("formatDateAtTime", R.string.formatDateAtTime, date, time)); + final String date = LocaleController.getInstance().getFormatterBoostExpired().format(new Date(boost.expires * 1000L)); + if (boost.stars > 0) { + statusTextView.setText(LocaleController.formatString(R.string.BoostingStarsExpires, date)); + } else { + statusTextView.setText(LocaleController.formatString(R.string.BoostingExpires, date)); + } if (boost.gift) { if (giftDrawable == null) { @@ -118,7 +126,7 @@ public void setStatus(TL_stories.TL_boost boost) { badgeTextView.setTextColor(0xFFce8e1f); badgeTextView.setCompoundDrawablesWithIntrinsicBounds(giftDrawable, null, null, null); badgeTextView.setCompoundDrawablePadding(AndroidUtilities.dp(4)); - badgeTextView.setText(LocaleController.getString("BoostingGift", R.string.BoostingGift)); + badgeTextView.setText(LocaleController.getString(R.string.BoostingGift)); badgeLayout.setBackground(Theme.createRoundRectDrawable(AndroidUtilities.dp(12), AndroidUtilities.dp(12), Theme.multAlpha(0xFFce8e1f, 0.2f))); } if (boost.giveaway) { @@ -129,7 +137,7 @@ public void setStatus(TL_stories.TL_boost boost) { badgeTextView.setTextColor(0XFF3391d4); badgeTextView.setCompoundDrawablesWithIntrinsicBounds(giveawayDrawable, null, null, null); badgeTextView.setCompoundDrawablePadding(AndroidUtilities.dp(4)); - badgeTextView.setText(LocaleController.getString("BoostingGiveaway", R.string.BoostingGiveaway)); + badgeTextView.setText(LocaleController.getString(R.string.BoostingGiveaway)); badgeLayout.setBackground(Theme.createRoundRectDrawable(AndroidUtilities.dp(12), AndroidUtilities.dp(12), Theme.multAlpha(0XFF3391d4, 0.2f))); } } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/statistics/GiveawayCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/statistics/GiveawayCell.java index 6cf58cd12a..fe36dbd949 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/statistics/GiveawayCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Premium/boosts/cells/statistics/GiveawayCell.java @@ -30,7 +30,7 @@ @SuppressLint("ViewConstructor") public class GiveawayCell extends UserCell { private CounterDrawable counterDrawable; - private TL_stories.TL_prepaidGiveaway prepaidGiveaway; + private TL_stories.PrepaidGiveaway prepaidGiveaway; public GiveawayCell(Context context, int padding, int checkbox, boolean admin) { super(context, padding, checkbox, admin); @@ -63,22 +63,30 @@ private void init(Context context) { counterDrawable = new CounterDrawable(context); } - public TL_stories.TL_prepaidGiveaway getPrepaidGiveaway() { + public TL_stories.PrepaidGiveaway getPrepaidGiveaway() { return prepaidGiveaway; } - public void setImage(TL_stories.TL_prepaidGiveaway prepaidGiveaway) { + public void setImage(TL_stories.PrepaidGiveaway prepaidGiveaway) { this.prepaidGiveaway = prepaidGiveaway; - avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_GIFT); - if (prepaidGiveaway.months == 12) { - avatarDrawable.setColor(0xFFff8560, 0xFFd55246); - } else if (prepaidGiveaway.months == 6) { - avatarDrawable.setColor(0xFF5caefa, 0xFF418bd0); - } else { - avatarDrawable.setColor(0xFF9ad164, 0xFF49ba44); + if (prepaidGiveaway instanceof TL_stories.TL_prepaidStarsGiveaway) { + avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_STARS); + TL_stories.TL_prepaidStarsGiveaway prepaid = (TL_stories.TL_prepaidStarsGiveaway) prepaidGiveaway; + String counterStr = String.valueOf(prepaid.stars / 500L); + counterDrawable.setText(counterStr); + } else if (prepaidGiveaway instanceof TL_stories.TL_prepaidGiveaway) { + avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_GIFT); + TL_stories.TL_prepaidGiveaway prepaid = (TL_stories.TL_prepaidGiveaway) prepaidGiveaway; + if (prepaid.months == 12) { + avatarDrawable.setColor(0xFFff8560, 0xFFd55246); + } else if (prepaid.months == 6) { + avatarDrawable.setColor(0xFF5caefa, 0xFF418bd0); + } else { + avatarDrawable.setColor(0xFF9ad164, 0xFF49ba44); + } + String counterStr = String.valueOf(prepaidGiveaway.quantity * BoostRepository.giveawayBoostsPerPremium()); + counterDrawable.setText(counterStr); } - String counterStr = String.valueOf(prepaidGiveaway.quantity * BoostRepository.giveawayBoostsPerPremium()); - counterDrawable.setText(counterStr); nameTextView.setRightDrawable(counterDrawable); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ProximitySheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ProximitySheet.java index 56adaa7aa4..493393905f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ProximitySheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ProximitySheet.java @@ -163,7 +163,7 @@ public void requestLayout() { customView.addView(titleLayout, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 22, 0, 0, 4)); TextView titleView = new TextView(context); - titleView.setText(LocaleController.getString("LocationNotifiation", R.string.LocationNotifiation)); + titleView.setText(LocaleController.getString(R.string.LocationNotifiation)); titleView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); titleView.setTypeface(AndroidUtilities.bold()); @@ -322,7 +322,7 @@ public void updateText(boolean move, boolean animated) { if (currentUser == null) { buttonTextView.setText(LocaleController.formatString("LocationNotifiationButtonGroup", R.string.LocationNotifiationButtonGroup, distance)); } else { - String format = LocaleController.getString("LocationNotifiationButtonUser", R.string.LocationNotifiationButtonUser); + String format = LocaleController.getString(R.string.LocationNotifiationButtonUser); int width = (int) Math.ceil(buttonTextView.getPaint().measureText(format)); int restWidth = (int) ((totalWidth - AndroidUtilities.dp(32 + 62)) * 1.5f - width); CharSequence name = TextUtils.ellipsize(UserObject.getFirstName(currentUser), buttonTextView.getPaint(), Math.max(AndroidUtilities.dp(10), restWidth), TextUtils.TruncateAt.END); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/QRCodeBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/QRCodeBottomSheet.java index f7616ca372..81bea24c5c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/QRCodeBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/QRCodeBottomSheet.java @@ -106,7 +106,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { buttonTextView.setGravity(Gravity.CENTER); buttonTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); buttonTextView.setTypeface(AndroidUtilities.bold()); - buttonTextView.setText(LocaleController.getString("ShareQrCode", R.string.ShareQrCode)); + buttonTextView.setText(LocaleController.getString(R.string.ShareQrCode)); buttonTextView.setOnClickListener(view -> { Uri uri = AndroidUtilities.getBitmapShareUri(qrCode, "qr_tmp.png", Bitmap.CompressFormat.PNG); if (uri != null) { @@ -129,12 +129,12 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { button2TextView.setGravity(Gravity.CENTER); button2TextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); // button2TextView.setTypeface(AndroidUtilities.medium()); - button2TextView.setText(LocaleController.getString("ShareLink", R.string.ShareLink)); + button2TextView.setText(LocaleController.getString(R.string.ShareLink)); button2TextView.setOnClickListener(view -> { Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("text/plain"); shareIntent.putExtra(Intent.EXTRA_TEXT, link); - Intent chooserIntent = Intent.createChooser(shareIntent, LocaleController.getString("ShareLink", R.string.ShareLink)); + Intent chooserIntent = Intent.createChooser(shareIntent, LocaleController.getString(R.string.ShareLink)); chooserIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(chooserIntent); }); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/RLottieDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/RLottieDrawable.java index 8664f6e31e..443f66f9d8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/RLottieDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/RLottieDrawable.java @@ -8,6 +8,8 @@ package org.telegram.ui.Components; +import static org.telegram.messenger.AndroidUtilities.readRes; + import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.ColorFilter; @@ -21,11 +23,10 @@ import android.os.Handler; import android.os.Looper; import android.text.TextUtils; +import android.util.JsonReader; import android.view.HapticFeedbackConstants; import android.view.View; -import com.google.gson.Gson; - import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.ApplicationLoader; import org.telegram.messenger.DispatchQueue; @@ -37,12 +38,8 @@ import org.telegram.messenger.Utilities; import org.telegram.messenger.utils.BitmapsCache; -import java.io.ByteArrayInputStream; import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileReader; -import java.io.InputStream; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.HashMap; @@ -83,7 +80,6 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable, Bitma private HashMap vibrationPattern; private boolean resetVibrationAfterRestart = false; private boolean allowVibration = true; - public static Gson gson; private WeakReference frameReadyCallback; protected WeakReference onFinishCallback; @@ -145,9 +141,6 @@ public class RLottieDrawable extends BitmapDrawable implements Animatable, Bitma private boolean isInvalid; private boolean doNotRemoveInvalidOnFrameReady; - private static ThreadLocal readBufferLocal = new ThreadLocal<>(); - private static ThreadLocal bufferLocal = new ThreadLocal<>(); - private static final DispatchQueuePool loadFrameRunnableQueue = new DispatchQueuePool(4); public static DispatchQueue lottieCacheGenerateQueue; @@ -581,24 +574,37 @@ public RLottieDrawable(File file, String json, int w, int h, BitmapsCache.CacheO } private void parseLottieMetadata(File file, String json, int[] metaData) { - if (gson == null) { - gson = new Gson(); - } try { - LottieMetadata lottieMetadata; - if (file != null) { - FileReader reader = new FileReader(file.getAbsolutePath()); - lottieMetadata = gson.fromJson(reader, LottieMetadata.class); - try { - reader.close(); - } catch (Exception e) { - + double fr = 30.0; + double ip = 0; + double op = 0; + try (JsonReader reader = new JsonReader(new FileReader(file.getAbsoluteFile()))) { + reader.beginObject(); + while (reader.hasNext()) { + String name = reader.nextName(); + switch (name) { + case "ip": { + ip = reader.nextDouble(); + break; + } + case "op": { + op = reader.nextDouble(); + break; + } + case "fr": { + fr = reader.nextDouble(); + break; + } + default: { + reader.skipValue(); + break; + } + } } - } else { - lottieMetadata = gson.fromJson(json, LottieMetadata.class); + reader.endObject(); } - metaData[0] = (int) (lottieMetadata.op - lottieMetadata.ip); - metaData[1] = (int) lottieMetadata.fr; + metaData[0] = (int) (op - ip); + metaData[1] = (int) fr; } catch (Exception e) { // ignore app center, try handle by old method FileLog.e(e, false); @@ -619,10 +625,10 @@ public RLottieDrawable(String diceEmoji, int w, int h) { isDice = 1; String jsonString; if ("\uD83C\uDFB2".equals(diceEmoji)) { - jsonString = readRes(null, R.raw.diceloop); + jsonString = readRes(R.raw.diceloop); diceSwitchFramesCount = 60; } else if ("\uD83C\uDFAF".equals(diceEmoji)) { - jsonString = readRes(null, R.raw.dartloop); + jsonString = readRes(R.raw.dartloop); } else { jsonString = null; } @@ -654,7 +660,7 @@ public boolean setBaseDice(File path) { if (nativePtr != 0 || loadingInBackground) { return true; } - String jsonString = readRes(path, 0); + String jsonString = readRes(path); if (TextUtils.isEmpty(jsonString)) { return false; } @@ -684,7 +690,7 @@ public boolean setDiceNumber(File path, boolean instant) { if (secondNativePtr != 0 || secondLoadingInBackground) { return true; } - String jsonString = readRes(path, 0); + String jsonString = readRes(path); if (TextUtils.isEmpty(jsonString)) { return false; } @@ -724,7 +730,7 @@ public RLottieDrawable(int rawRes, String name, int w, int h, boolean startDecod width = w; height = h; autoRepeat = 0; - String jsonString = readRes(null, rawRes); + String jsonString = readRes(rawRes); if (TextUtils.isEmpty(jsonString)) { return; } @@ -740,53 +746,6 @@ public void multiplySpeed(float multiplier) { timeBetweenFrames *= (1f / multiplier); } - public static String readRes(File path, int rawRes) { - int totalRead = 0; - byte[] readBuffer = readBufferLocal.get(); - if (readBuffer == null) { - readBuffer = new byte[64 * 1024]; - readBufferLocal.set(readBuffer); - } - InputStream inputStream = null; - try { - if (path != null) { - inputStream = new FileInputStream(path); - } else { - inputStream = ApplicationLoader.applicationContext.getResources().openRawResource(rawRes); - } - int readLen; - byte[] buffer = bufferLocal.get(); - if (buffer == null) { - buffer = new byte[4096]; - bufferLocal.set(buffer); - } - while ((readLen = inputStream.read(buffer, 0, buffer.length)) >= 0) { - if (readBuffer.length < totalRead + readLen) { - byte[] newBuffer = new byte[readBuffer.length * 2]; - System.arraycopy(readBuffer, 0, newBuffer, 0, totalRead); - readBuffer = newBuffer; - readBufferLocal.set(readBuffer); - } - if (readLen > 0) { - System.arraycopy(buffer, 0, readBuffer, totalRead, readLen); - totalRead += readLen; - } - } - } catch (Throwable e) { - return null; - } finally { - try { - if (inputStream != null) { - inputStream.close(); - } - } catch (Throwable ignore) { - - } - } - - return new String(readBuffer, 0, totalRead); - } - public int getCurrentFrame() { return currentFrame; } @@ -1493,10 +1452,4 @@ public void checkCache(Runnable onReady) { public void setAllowDrawFramesWhileCacheGenerating(boolean allow) { allowDrawFramesWhileCacheGenerating = allow; } - - private class LottieMetadata { - float fr; - float op; - float ip; - } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/RadialProgress2.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/RadialProgress2.java index 011d52bf42..939e4b2030 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/RadialProgress2.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/RadialProgress2.java @@ -52,7 +52,7 @@ public class RadialProgress2 { private int circlePressedColorKey = -1; public int iconColorKey = -1; private int iconPressedColorKey = -1; - private ImageReceiver overlayImageView; + public ImageReceiver overlayImageView; private int circleRadius; private boolean isPressed; private boolean isPressedMini; @@ -134,9 +134,15 @@ public void setBackgroundGradientDrawable(LinearGradient drawable) { } public void setImageOverlay(TLRPC.PhotoSize image, TLRPC.Document document, Object parentObject) { + final String filter = String.format(Locale.US, "%d_%d", circleRadius * 2, circleRadius * 2); overlayImageView.setImage(ImageLocation.getForDocument(image, document), String.format(Locale.US, "%d_%d", circleRadius * 2, circleRadius * 2), null, null, parentObject, 1); } + public void setImageOverlay(TLRPC.PhotoSize image, TLRPC.PhotoSize thumb, TLRPC.Document document, Object parentObject) { + final String filter = String.format(Locale.US, "%d_%d", circleRadius * 2, circleRadius * 2); + overlayImageView.setImage(image == null ? null : ImageLocation.getForDocument(image, document), filter, thumb == null ? null : ImageLocation.getForDocument(thumb, document), filter, null, 0, null, parentObject, 1); + } + public void setImageOverlay(String url) { overlayImageView.setImage(url, url != null ? String.format(Locale.US, "%d_%d", circleRadius * 2, circleRadius * 2) : null, null, null, -1); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/AddReactionsSpan.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/AddReactionsSpan.java index 12fb4c64b7..343f87915d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/AddReactionsSpan.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/AddReactionsSpan.java @@ -38,7 +38,7 @@ public AddReactionsSpan(float textSize, Theme.ResourcesProvider resourcesProvide public void makeLayout() { if (layout == null) { - layout = new StaticLayout(LocaleController.getString("ReactionAddReactionsHint", R.string.ReactionAddReactionsHint), textPaint, AndroidUtilities.displaySize.x, LocaleController.isRTL ? Layout.Alignment.ALIGN_OPPOSITE : Layout.Alignment.ALIGN_NORMAL, 1, 0, false); + layout = new StaticLayout(LocaleController.getString(R.string.ReactionAddReactionsHint), textPaint, AndroidUtilities.displaySize.x, LocaleController.isRTL ? Layout.Alignment.ALIGN_OPPOSITE : Layout.Alignment.ALIGN_NORMAL, 1, 0, false); width = layout.getLineWidth(0); height = layout.getHeight(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/BackSpaceButtonView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/BackSpaceButtonView.java index cddb46a996..17823abe61 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/BackSpaceButtonView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/BackSpaceButtonView.java @@ -67,7 +67,7 @@ public boolean onTouchEvent(MotionEvent event) { backspaceButton.setImageResource(R.drawable.smiles_tab_clear); backspaceButton.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_chat_emojiPanelBackspace), PorterDuff.Mode.MULTIPLY)); backspaceButton.setScaleType(ImageView.ScaleType.CENTER); - backspaceButton.setContentDescription(LocaleController.getString("AccDescrBackspace", R.string.AccDescrBackspace)); + backspaceButton.setContentDescription(LocaleController.getString(R.string.AccDescrBackspace)); backspaceButton.setFocusable(true); backspaceButton.setOnClickListener(v -> { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ChatCustomReactionsEditActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ChatCustomReactionsEditActivity.java index 0ea984f0fe..b1dfe856db 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ChatCustomReactionsEditActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ChatCustomReactionsEditActivity.java @@ -138,7 +138,7 @@ public boolean onFragmentCreate() { @SuppressLint("ClickableViewAccessibility") @Override public View createView(Context context) { - actionBar.setTitle(LocaleController.getString("Reactions", R.string.Reactions)); + actionBar.setTitle(LocaleController.getString(R.string.Reactions)); actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); @@ -179,11 +179,11 @@ public void onItemClick(int id) { infoCell.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText4)); infoCell.setTopPadding(12); infoCell.setBottomPadding(16); - infoCell.setText(LocaleController.getString("ReactionAddEmojiFromAnyPack", R.string.ReactionAddEmojiFromAnyPack)); + infoCell.setText(LocaleController.getString(R.string.ReactionAddEmojiFromAnyPack)); contentLayout.addView(infoCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); HeaderCell headerCell = new HeaderCell(context); - headerCell.setText(LocaleController.getString("AvailableReactions", R.string.AvailableReactions)); + headerCell.setText(LocaleController.getString(R.string.AvailableReactions)); headerCell.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); headerCell.setTextSize(15); headerCell.setTopMargin(14); @@ -384,7 +384,7 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto setCheckedEnableReactionCell(SELECT_TYPE_NONE, paid, false); } - enableReactionsCell.setTextAndCheck(LocaleController.getString("EnableReactions", R.string.EnableReactions), selectedType != SELECT_TYPE_NONE || paid, false); + enableReactionsCell.setTextAndCheck(LocaleController.getString(R.string.EnableReactions), selectedType != SELECT_TYPE_NONE || paid, false); editText.addReactionsSpan(); if (info.paid_media_allowed && info.paid_reactions_available) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/CustomEmojiReactionsWindow.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/CustomEmojiReactionsWindow.java index de44736f4d..d658d14307 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/CustomEmojiReactionsWindow.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/CustomEmojiReactionsWindow.java @@ -209,8 +209,8 @@ protected void onEmojiSelected(View emojiView, Long documentId, TLRPC.Document d windowView.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP); BulletinFactory.of(windowView, null).createEmojiBulletin( document, - AndroidUtilities.replaceTags(LocaleController.getString("UnlockPremiumEmojiReaction", R.string.UnlockPremiumEmojiReaction)), - LocaleController.getString("PremiumMore", R.string.PremiumMore), + AndroidUtilities.replaceTags(LocaleController.getString(R.string.UnlockPremiumEmojiReaction)), + LocaleController.getString(R.string.PremiumMore), () -> showUnlockPremiumAlert() ).show(); return; @@ -291,6 +291,7 @@ public void onRecentCleared() { } else { WindowManager.LayoutParams lp = createLayoutParams(false); windowManager = AndroidUtilities.findActivity(context).getWindowManager(); + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, windowView, lp); windowManager.addView(windowView, lp); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/CustomReactionEditText.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/CustomReactionEditText.java index d63a1d51ba..fbcda2f397 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/CustomReactionEditText.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/CustomReactionEditText.java @@ -111,7 +111,7 @@ protected void onSelectionChanged(int selStart, int selEnd) { @Override protected void extendActionMode(ActionMode actionMode, Menu menu) { menu.clear(); - menu.add(R.id.menu_delete, R.id.menu_delete, 0, LocaleController.getString("Delete", R.string.Delete)); + menu.add(R.id.menu_delete, R.id.menu_delete, 0, LocaleController.getString(R.string.Delete)); } public void setOnFocused(Runnable onFocused) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ReactionsEffectOverlay.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ReactionsEffectOverlay.java index ea15f3b452..bc5caa796e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ReactionsEffectOverlay.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ReactionsEffectOverlay.java @@ -756,6 +756,7 @@ public static void show(BaseFragment baseFragment, ReactionsContainerLayout reac lp.format = PixelFormat.TRANSLUCENT; reactionsEffectOverlay.windowManager = baseFragment.getParentActivity().getWindowManager(); + AndroidUtilities.setPreferredMaxRefreshRate(reactionsEffectOverlay.windowManager, reactionsEffectOverlay.windowView, lp); reactionsEffectOverlay.windowManager.addView(reactionsEffectOverlay.windowView, lp); } else { reactionsEffectOverlay.decorView = (FrameLayout) baseFragment.getParentActivity().getWindow().getDecorView(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ReactionsLayoutInBubble.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ReactionsLayoutInBubble.java index 6afe35560b..ced770f603 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ReactionsLayoutInBubble.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/ReactionsLayoutInBubble.java @@ -32,11 +32,13 @@ import org.telegram.messenger.Emoji; import org.telegram.messenger.ImageLocation; import org.telegram.messenger.ImageReceiver; +import org.telegram.messenger.LiteMode; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MediaDataController; import org.telegram.messenger.MessageObject; import org.telegram.messenger.MessagesController; import org.telegram.messenger.R; +import org.telegram.messenger.SharedConfig; import org.telegram.messenger.SvgHelper; import org.telegram.messenger.UserConfig; import org.telegram.messenger.UserObject; @@ -122,6 +124,7 @@ public static void initPaints(Theme.ResourcesProvider resourcesProvider) { private int lastDrawTotalHeight; private int animateFromTotalHeight; public boolean hasUnreadReactions; + public boolean hasPaidReaction; private static int pointer = 1; @@ -162,6 +165,7 @@ public void setMessage(MessageObject messageObject, boolean isSmall, boolean isT this.messageObject = messageObject; ArrayList oldButtons = new ArrayList<>(reactionButtons); hasUnreadReactions = false; + hasPaidReaction = false; reactionButtons.clear(); if (messageObject != null) { comparator.dialogId = messageObject.getDialogId(); @@ -182,6 +186,7 @@ public void setMessage(MessageObject messageObject, boolean isSmall, boolean isT } ReactionButton button = new ReactionLayoutButton(old, reactionCount, isSmall, isTag); reactionButtons.add(button); + hasPaidReaction = hasPaidReaction || button.paid; if (!isSmall && !isTag && messageObject.messageOwner.reactions.recent_reactions != null) { ArrayList users = null; @@ -398,6 +403,53 @@ public void draw(Canvas canvas, float animationProgress, Integer drawOnlyReactio } } + public boolean hasOverlay() { + return hasPaidReaction && !(isEmpty && outButtons.isEmpty()) && LiteMode.isEnabled(LiteMode.FLAG_ANIMATED_EMOJI_REACTIONS); + } + + public void drawOverlay(Canvas canvas, float animationProgress) { + if (isEmpty && outButtons.isEmpty()) { + return; + } + float totalX = this.x; + float totalY = this.y; + if (isEmpty) { + totalX = lastDrawnX; + totalY = lastDrawnY; + } else if (animateMove) { + totalX = totalX * (animationProgress) + fromX * (1f - animationProgress); + totalY = totalY * (animationProgress) + fromY * (1f - animationProgress); + } + for (int i = 0; i < reactionButtons.size(); i++) { + ReactionButton reactionButton = reactionButtons.get(i); + if (!reactionButton.paid) continue; + canvas.save(); + float x = reactionButton.x; + float y = reactionButton.y; + if (animationProgress != 1f && reactionButton.animationType == ANIMATION_TYPE_MOVE) { + x = reactionButton.x * animationProgress + reactionButton.animateFromX * (1f - animationProgress); + y = reactionButton.y * animationProgress + reactionButton.animateFromY * (1f - animationProgress); + } + float alpha = 1f; + if (animationProgress != 1f && reactionButton.animationType == ANIMATION_TYPE_IN) { + float s = 0.5f + 0.5f * animationProgress; + alpha = animationProgress; + canvas.scale(s, s, totalX + x + reactionButton.width / 2f, totalY + y + reactionButton.height / 2f); + } + reactionButton.drawOverlay(canvas, totalX + x, totalY + y, reactionButton.animationType == ANIMATION_TYPE_MOVE ? animationProgress : 1f, alpha, false); + canvas.restore(); + } + for (int i = 0; i < outButtons.size(); i++) { + ReactionButton reactionButton = outButtons.get(i); + if (!reactionButton.paid) continue; + float s = 0.5f + 0.5f * (1f - animationProgress); + canvas.save(); + canvas.scale(s, s, totalX + reactionButton.x + reactionButton.width / 2f, totalY + reactionButton.y + reactionButton.height / 2f); + outButtons.get(i).drawOverlay(canvas, totalX + reactionButton.x, totalY + reactionButton.y, 1f, (1f - animationProgress), false); + canvas.restore(); + } + } + public void drawPreview(View view, Canvas canvas, int offset, Integer drawOnlyReaction) { if (isEmpty && outButtons.isEmpty()) { return; @@ -742,14 +794,18 @@ public ReactionButton(ReactionButton reuseFrom, int currentAccount, View parentV if (reaction != null) { if (visibleReaction.isStar) { paid = true; - RLottieDrawable drawable = new RLottieDrawable(R.raw.star_reaction_click, "star_reaction_click", dp(40), dp(40)); - imageReceiver.setImageBitmap(drawable); + if (LiteMode.isEnabled(LiteMode.FLAG_ANIMATED_EMOJI_REACTIONS)) { + RLottieDrawable drawable = new RLottieDrawable(R.raw.star_reaction_click, "star_reaction_click", dp(40), dp(40)); + imageReceiver.setImageBitmap(drawable); + } else { + imageReceiver.setImageBitmap(ApplicationLoader.applicationContext.getResources().getDrawable(R.drawable.star_reaction).mutate()); + } // if (reuseFrom != null) { // imageReceiver.setImageBitmap(reuseFrom.imageReceiver.getImageDrawable()); // } else { // imageReceiver.setImageBitmap(ApplicationLoader.applicationContext.getResources().getDrawable(R.drawable.star_small_inner)); // } - particles = reuseFrom != null && reuseFrom.particles != null ? reuseFrom.particles : new StarsReactionsSheet.Particles(StarsReactionsSheet.Particles.TYPE_RADIAL, 30); + particles = reuseFrom != null && reuseFrom.particles != null ? reuseFrom.particles : new StarsReactionsSheet.Particles(StarsReactionsSheet.Particles.TYPE_RADIAL, SharedConfig.getDevicePerformanceClass() == SharedConfig.PERFORMANCE_CLASS_HIGH ? 25 : 8); } else if (visibleReaction.emojicon != null) { TLRPC.TL_availableReaction r = MediaDataController.getInstance(currentAccount).getReactionsMap().get(visibleReaction.emojicon); if (r != null) { @@ -814,6 +870,31 @@ protected boolean drawTextWithCounter() { return false; } + public void drawOverlay(Canvas canvas, float x, float y, float progress, float alpha, boolean drawOverlayScrim) { + if (particles == null) return; + if (!LiteMode.isEnabled(LiteMode.FLAG_ANIMATED_EMOJI_REACTIONS)) return; + + AndroidUtilities.rectTmp.set(x, y, x + width, y + height); + float rad = height / 2f; + + tagPath.rewind(); + tagPath.addRoundRect(AndroidUtilities.rectTmp, rad, rad, Path.Direction.CW); + + particles.bounds.set(AndroidUtilities.rectTmp); + particles.bounds.inset(-dp(4), -dp(4)); + particles.setBounds(particles.bounds); + particles.process(); + if (parentView != null) { + parentView.invalidate(); + } + particles.draw(canvas, ColorUtils.blendARGB(ColorUtils.setAlphaComponent(backgroundColor, 0xFF), ColorUtils.blendARGB(serviceTextColor, ColorUtils.setAlphaComponent(backgroundColor, 0xFF), .4f), getDrawServiceShaderBackground())); + + canvas.save(); + canvas.clipPath(tagPath); + particles.draw(canvas, textColor); + canvas.restore(); + } + public void draw(Canvas canvas, float x, float y, float progress, float alpha, boolean drawOverlayScrim) { wasDrawn = true; ImageReceiver imageReceiver = animatedEmojiDrawable != null ? animatedEmojiDrawable.getImageReceiver() : this.imageReceiver; @@ -869,12 +950,14 @@ public void draw(Canvas canvas, float x, float y, float progress, float alpha, b } final float bounceScale = bounce.getScale(0.1f); + boolean restore = false; int w = width; if (progress != 1f && animationType == ANIMATION_TYPE_MOVE) { w = (int) (width * progress + animateFromWidth * (1f - progress)); } AndroidUtilities.rectTmp.set(x, y, x + w, y + height); if (bounceScale != 1f) { + restore = true; canvas.save(); canvas.scale(bounceScale, bounceScale, x + w / 2f, y + height / 2f); } @@ -904,25 +987,8 @@ public void draw(Canvas canvas, float x, float y, float progress, float alpha, b canvas.saveLayerAlpha(AndroidUtilities.rectTmp, 0xFF, Canvas.ALL_SAVE_FLAG); AndroidUtilities.rectTmp.right -= dp(4); } - if (particles != null) { - particles.bounds.set(AndroidUtilities.rectTmp); - particles.bounds.inset(-dp(4), -dp(4)); - particles.setBounds(particles.bounds); - particles.process(); - if (parentView != null) { - parentView.invalidate(); - } - particles.draw(canvas, ColorUtils.blendARGB(ColorUtils.setAlphaComponent(backgroundColor, 0xFF), ColorUtils.blendARGB(serviceTextColor, ColorUtils.setAlphaComponent(backgroundColor, 0xFF), .4f), getDrawServiceShaderBackground())); - } + final boolean particlesEnabled = particles != null && LiteMode.isEnabled(LiteMode.FLAG_ANIMATED_EMOJI_REACTIONS); drawRoundRect(canvas, AndroidUtilities.rectTmp, rad, paint); - if (particles != null) { - canvas.save(); - tagPath.rewind(); - tagPath.addRoundRect(AndroidUtilities.rectTmp, rad, rad, Path.Direction.CW); - canvas.clipPath(tagPath); - particles.draw(canvas, textColor); - canvas.restore(); - } if (isTag && drawTagDot()) { Paint paint; if (cutTagCircle) { @@ -988,7 +1054,7 @@ public void draw(Canvas canvas, float x, float y, float progress, float alpha, b } } - if (bounceScale != 1f) { + if (restore) { canvas.restore(); } } @@ -1024,8 +1090,8 @@ protected boolean drawTagDot() { } private void drawImage(Canvas canvas, Rect bounds, float alpha) { - ImageReceiver imageReceiver = animatedEmojiDrawable != null ? animatedEmojiDrawable.getImageReceiver() : this.imageReceiver; - if (bounds != null) { + ImageReceiver imageReceiver = animatedEmojiDrawable != null && animatedEmojiDrawable.getImageReceiver() != null ? animatedEmojiDrawable.getImageReceiver() : this.imageReceiver; + if (imageReceiver != null && bounds != null) { imageReceiver.setImageCoords(bounds); } if (animatedEmojiDrawable != null && animatedEmojiDrawableColor != lastDrawnTextColor) { @@ -1150,6 +1216,25 @@ public void startAnimation() { } } + public void stopAnimation() { + ImageReceiver imageReceiver; + if (animatedEmojiDrawable != null && animatedEmojiDrawable.getImageReceiver() != null) { + imageReceiver = animatedEmojiDrawable.getImageReceiver(); + } else { + imageReceiver = this.imageReceiver; + } + if (imageReceiver != null) { + RLottieDrawable rLottieDrawable = imageReceiver.getLottieAnimation(); + if (rLottieDrawable != null) { + rLottieDrawable.stop(); + } else { + AnimatedFileDrawable animatedFileDrawable = imageReceiver.getAnimation(); + if (animatedFileDrawable != null) { + animatedFileDrawable.stop(); + } + } + } + } public ImageReceiver previewImageReceiver; public AnimatedEmojiDrawable previewAnimatedEmojiDrawable; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/UpdateReactionsButton.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/UpdateReactionsButton.java index 861cb02d19..e1ab4c9b27 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/UpdateReactionsButton.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Reactions/UpdateReactionsButton.java @@ -25,7 +25,7 @@ public UpdateReactionsButton(Context context, boolean filled, Theme.ResourcesPro } public void setDefaultState() { - setText(new SpannableStringBuilder(LocaleController.getString("ReactionUpdateReactionsBtn", R.string.ReactionUpdateReactionsBtn)), false); + setText(new SpannableStringBuilder(LocaleController.getString(R.string.ReactionUpdateReactionsBtn)), false); lock = new SpannableStringBuilder("l"); ColoredImageSpan coloredImageSpan = new ColoredImageSpan(R.drawable.mini_switch_lock); coloredImageSpan.setTopOffset(1); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ReactionsContainerLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ReactionsContainerLayout.java index 5e2c0a5196..d73f709572 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ReactionsContainerLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ReactionsContainerLayout.java @@ -13,6 +13,7 @@ import android.graphics.Canvas; import android.graphics.Color; import android.graphics.LinearGradient; +import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Path; import android.graphics.PorterDuff; @@ -180,8 +181,9 @@ public boolean equals(Object o) { private Adapter listAdapter; RectF rectF = new RectF(); - HashSet selectedReactions = new HashSet<>(); - HashSet alwaysSelectedReactions = new HashSet<>(); + private boolean hasStar = false; + final HashSet selectedReactions = new HashSet<>(); + final HashSet alwaysSelectedReactions = new HashSet<>(); private int[] location = new int[2]; @@ -217,7 +219,8 @@ public boolean equals(Object o) { private boolean allReactionsAvailable; private boolean showExpandableReactions; private boolean allReactionsIsDefault; - private Paint selectedPaint; + private final Paint selectedPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + private final Paint starSelectedPaint = new Paint(Paint.ANTI_ALIAS_FLAG); ChatScrimPopupContainerLayout parentLayout; private boolean animatePopup; public final AnimationNotificationsLocker notificationsLocker = new AnimationNotificationsLocker(); @@ -235,8 +238,8 @@ public ReactionsContainerLayout(int type, BaseFragment fragment, @NonNull Contex super(context); this.type = type; durationScale = Settings.Global.getFloat(context.getContentResolver(), Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f); - selectedPaint = new Paint(Paint.ANTI_ALIAS_FLAG); selectedPaint.setColor(Theme.getColor(Theme.key_listSelector, resourcesProvider)); + starSelectedPaint.setColor(Theme.getColor(Theme.key_reactionStarSelector, resourcesProvider)); this.resourcesProvider = resourcesProvider; this.currentAccount = currentAccount; this.fragment = fragment; @@ -694,6 +697,19 @@ protected void dispatchDraw(Canvas canvas) { canvas.drawRoundRect(rect, radius, radius, bgPaint); } + if (hasStar) { + boolean isStarSelected = false; + for (ReactionsLayoutInBubble.VisibleReaction r : selectedReactions) { + if (r.isStar) { + isStarSelected = true; + break; + } + } + if (!isStarSelected) { + canvas.drawRoundRect(rect, radius, radius, getStarGradientPaint(rect, Utilities.clamp01(1f - getPullingLeftProgress()))); + } + } + canvas.restoreToCount(s); } @@ -1045,6 +1061,7 @@ public void setMessage(MessageObject message, TLRPC.ChatFull chatFull, boolean a return; } } + hasStar = false; if (type == TYPE_TAGS) { allReactionsAvailable = UserConfig.getInstance(currentAccount).isPremium(); fillRecentReactionsList(visibleReactions); @@ -1054,6 +1071,7 @@ public void setMessage(MessageObject message, TLRPC.ChatFull chatFull, boolean a } else if (hitLimit) { allReactionsAvailable = false; if (reactionsChat != null && reactionsChat.paid_reactions_available) { + hasStar = true; visibleReactions.add(ReactionsLayoutInBubble.VisibleReaction.asStar()); } for (TLRPC.ReactionCount result : messageObject.messageOwner.reactions.results) { @@ -1061,6 +1079,7 @@ public void setMessage(MessageObject message, TLRPC.ChatFull chatFull, boolean a } } else if (reactionsChat != null) { if (reactionsChat != null && reactionsChat.paid_reactions_available) { + hasStar = true; visibleReactions.add(ReactionsLayoutInBubble.VisibleReaction.asStar()); } if (reactionsChat.available_reactions instanceof TLRPC.TL_chatReactionsAll) { @@ -2005,7 +2024,7 @@ private void updateImage(ReactionsLayoutInBubble.VisibleReaction react) { enterImageView.getImageReceiver().setImageBitmap(new RLottieDrawable(R.raw.star_reaction, "star_reaction", dp(30), dp(30))); loopImageView.getImageReceiver().setImageBitmap(getContext().getResources().getDrawable(R.drawable.star_reaction)); if (particles == null) { - particles = new StarsReactionsSheet.Particles(StarsReactionsSheet.Particles.TYPE_RADIAL, 45); + particles = new StarsReactionsSheet.Particles(StarsReactionsSheet.Particles.TYPE_RADIAL, SharedConfig.getDevicePerformanceClass() == SharedConfig.PERFORMANCE_CLASS_HIGH ? 45 : 18); } } else if (type == TYPE_STICKER_SET_EMOJI && react != null && react.emojicon != null) { enterImageView.getImageReceiver().setImageBitmap(Emoji.getEmojiDrawable(react.emojicon)); @@ -2196,7 +2215,7 @@ public boolean onTouchEvent(MotionEvent event) { @Override protected void dispatchDraw(Canvas canvas) { if (selected && drawSelected) { - canvas.drawCircle(getMeasuredWidth() >> 1, getMeasuredHeight() >> 1, (getMeasuredWidth() >> 1) - dp(1), selectedPaint); + canvas.drawCircle(getMeasuredWidth() >> 1, getMeasuredHeight() >> 1, (getMeasuredWidth() >> 1) - dp(1), currentReaction != null && currentReaction.isStar ? starSelectedPaint : selectedPaint); } if (loopImageView.animatedEmojiDrawable != null && loopImageView.animatedEmojiDrawable.getImageReceiver() != null) { if (position == 0) { @@ -2205,7 +2224,7 @@ protected void dispatchDraw(Canvas canvas) { loopImageView.animatedEmojiDrawable.getImageReceiver().setRoundRadius(selected ? dp(6) : 0); } } - if (currentReaction != null && currentReaction.isStar && particles != null) { + if (currentReaction != null && currentReaction.isStar && particles != null && LiteMode.isEnabled(LiteMode.FLAG_ANIMATED_EMOJI_REACTIONS)) { final int sz = (int) (getHeight() * .7f); AndroidUtilities.rectTmp.set(getWidth() / 2f - sz / 2f, getHeight() / 2f - sz / 2f, getWidth() / 2f + sz / 2f, getHeight() / 2f + sz / 2f); RLottieDrawable lottieDrawable = enterImageView.getImageReceiver().getLottieAnimation(); @@ -2570,4 +2589,23 @@ public void setPaused(boolean paused, boolean exceptSelected) { } } + + private Paint starSelectedGradientPaint; + private Matrix starSelectedGradientMatrix; + private LinearGradient starSelectedGradient; + private Paint getStarGradientPaint(RectF bounds, float alpha) { + if (starSelectedGradientPaint == null) starSelectedGradientPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + if (starSelectedGradientMatrix == null) starSelectedGradientMatrix = new Matrix(); + if (starSelectedGradient == null) { + final int color = Theme.getColor(Theme.key_reactionStarSelector, resourcesProvider); + starSelectedGradient = new LinearGradient(0, 0, dp(64), 0, new int[] { color, Theme.multAlpha(color, 0) }, new float[] { 0, 1 }, Shader.TileMode.CLAMP); + starSelectedGradientPaint.setShader(starSelectedGradient); + } + starSelectedGradientMatrix.reset(); + starSelectedGradientMatrix.postTranslate(bounds.left, bounds.top); + starSelectedGradient.setLocalMatrix(starSelectedGradientMatrix); + starSelectedGradientPaint.setAlpha((int) (0xFF * alpha)); + return starSelectedGradientPaint; + } + } \ No newline at end of file diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ReportAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ReportAlert.java index c392cb0c7a..c9ad2bdd87 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ReportAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ReportAlert.java @@ -88,17 +88,17 @@ public ReportAlert(final Context context, int type, Theme.ResourcesProvider reso percentTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 24); percentTextView.setTextColor(getThemedColor(Theme.key_dialogTextBlack)); if (type == AlertsCreator.REPORT_TYPE_SPAM) { - percentTextView.setText(LocaleController.getString("ReportTitleSpam", R.string.ReportTitleSpam)); + percentTextView.setText(LocaleController.getString(R.string.ReportTitleSpam)); } else if (type == AlertsCreator.REPORT_TYPE_FAKE_ACCOUNT) { - percentTextView.setText(LocaleController.getString("ReportTitleFake", R.string.ReportTitleFake)); + percentTextView.setText(LocaleController.getString(R.string.ReportTitleFake)); } else if (type == AlertsCreator.REPORT_TYPE_VIOLENCE) { - percentTextView.setText(LocaleController.getString("ReportTitleViolence", R.string.ReportTitleViolence)); + percentTextView.setText(LocaleController.getString(R.string.ReportTitleViolence)); } else if (type == AlertsCreator.REPORT_TYPE_CHILD_ABUSE) { - percentTextView.setText(LocaleController.getString("ReportTitleChild", R.string.ReportTitleChild)); + percentTextView.setText(LocaleController.getString(R.string.ReportTitleChild)); } else if (type == AlertsCreator.REPORT_TYPE_PORNOGRAPHY) { - percentTextView.setText(LocaleController.getString("ReportTitlePornography", R.string.ReportTitlePornography)); + percentTextView.setText(LocaleController.getString(R.string.ReportTitlePornography)); } else if (type == AlertsCreator.REPORT_TYPE_OTHER) { - percentTextView.setText(LocaleController.getString("ReportChat", R.string.ReportChat)); + percentTextView.setText(LocaleController.getString(R.string.ReportChat)); } frameLayout.addView(percentTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 17, 197, 17, 0)); @@ -106,7 +106,7 @@ public ReportAlert(final Context context, int type, Theme.ResourcesProvider reso infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); infoTextView.setTextColor(getThemedColor(Theme.key_dialogTextGray3)); infoTextView.setGravity(Gravity.CENTER_HORIZONTAL); - infoTextView.setText(LocaleController.getString("ReportInfo", R.string.ReportInfo)); + infoTextView.setText(LocaleController.getString(R.string.ReportInfo)); frameLayout.addView(infoTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 30, 235, 30, 44)); editText = new EditTextBoldCursor(context); @@ -122,7 +122,7 @@ public ReportAlert(final Context context, int type, Theme.ResourcesProvider reso editText.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); editText.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); editText.setImeOptions(EditorInfo.IME_ACTION_DONE); - editText.setHint(LocaleController.getString("ReportHint", R.string.ReportHint)); + editText.setHint(LocaleController.getString(R.string.ReportHint)); editText.setCursorColor(getThemedColor(Theme.key_windowBackgroundWhiteBlackText)); editText.setCursorSize(AndroidUtilities.dp(20)); editText.setCursorWidth(1.5f); @@ -137,7 +137,7 @@ public ReportAlert(final Context context, int type, Theme.ResourcesProvider reso clearButton = new BottomSheetCell(context, resourcesProvider); clearButton.setBackground(null); - clearButton.setText(LocaleController.getString("ReportSend", R.string.ReportSend)); + clearButton.setText(LocaleController.getString(R.string.ReportSend)); clearButton.background.setOnClickListener(v -> { AndroidUtilities.hideKeyboard(editText); onSend(type, editText.getText().toString()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ScamDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ScamDrawable.java index 3fcf1b837b..1184e6b871 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ScamDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ScamDrawable.java @@ -34,9 +34,9 @@ public ScamDrawable(int textSize, int type) { paint.setStrokeWidth(AndroidUtilities.dp(1)); if (type == 0) { - text = LocaleController.getString("ScamMessage", R.string.ScamMessage); + text = LocaleController.getString(R.string.ScamMessage); } else { - text = LocaleController.getString("FakeMessage", R.string.FakeMessage); + text = LocaleController.getString(R.string.FakeMessage); } textWidth = (int) Math.ceil(textPaint.measureText(text)); } @@ -44,9 +44,9 @@ public ScamDrawable(int textSize, int type) { public void checkText() { String newText; if (currentType == 0) { - newText = LocaleController.getString("ScamMessage", R.string.ScamMessage); + newText = LocaleController.getString(R.string.ScamMessage); } else { - newText = LocaleController.getString("FakeMessage", R.string.FakeMessage); + newText = LocaleController.getString(R.string.FakeMessage); } if (!newText.equals(text)) { text = newText; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ScrimOptions.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ScrimOptions.java index f16c09bdbb..7c44c41af1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ScrimOptions.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ScrimOptions.java @@ -423,6 +423,35 @@ public void setScrim(ChatMessageCell cell, CharacterStyle link, CharSequence rep layoutOriginalWidth = textblock.originalWidth; } + if (blockNum == -1 && cell.getDescriptionlayout() != null) { + StaticLayout textlayout = cell.getDescriptionlayout(); + for (int i = 0; i == 0; ++i) { + if (textlayout == null) continue; + if (!(textlayout.getText() instanceof Spanned)) continue; + + CharacterStyle[] spans = ((Spanned) textlayout.getText()).getSpans(0, textlayout.getText().length(), CharacterStyle.class); + if (spans == null) continue; + boolean found = false; + for (int j = 0; j < spans.length; ++j) { + if (spans[j] == link) { + found = true; + break; + } + } + if (!found) continue; + + layout = textlayout; + + start = ((Spanned) textlayout.getText()).getSpanStart(link); + end = ((Spanned) textlayout.getText()).getSpanEnd(link); + + x = cell.getDescriptionLayoutX(); + y = cell.getDescriptionLayoutY(); + + layoutOriginalWidth = textlayout.getWidth(); + } + } + if (layout == null) return; RectF realPathBounds = null; @@ -512,7 +541,6 @@ public void setScrim(ChatMessageCell cell, CharacterStyle link, CharSequence rep } } final StaticLayout finalLayout = MessageObject.makeStaticLayout(text, paint, layoutOriginalWidth, 1f, messageObject.totalAnimatedEmojiCount >= 4 ? -1 : 0, false); - final int finalBlockNum = blockNum; final int[] pos = new int[2]; cell.getLocationOnScreen(pos); final int[] pos2 = new int[2]; @@ -555,13 +583,7 @@ public void draw(@NonNull Canvas canvas) { } canvas.clipPath(path); - canvas.save(); finalLayout.draw(canvas); -// if (cell != null && cell.linkBlockNum == finalBlockNum) { -// cell.links.draw(canvas); -// } -// cell.drawProgressLoadingLink(canvas, finalBlockNum); - canvas.restore(); canvas.restore(); } @@ -586,8 +608,8 @@ public int getOpacity() { if (left + pathBounds.width() > AndroidUtilities.displaySize.x - dp(8)) { scrimDrawableTx2 -= (left + pathBounds.width()) - (AndroidUtilities.displaySize.x - dp(8)); } - if (top + pathBounds.height() > AndroidUtilities.displaySize.y - AndroidUtilities.navigationBarHeight - dp(8)) { - scrimDrawableTy2 -= (top + pathBounds.height()) - (AndroidUtilities.displaySize.y - AndroidUtilities.navigationBarHeight - dp(8)); + if (top + pathBounds.height() > AndroidUtilities.displaySize.y - AndroidUtilities.statusBarHeight - AndroidUtilities.navigationBarHeight - dp(8)) { + scrimDrawableTy2 -= (top + pathBounds.height()) - (AndroidUtilities.displaySize.y - AndroidUtilities.statusBarHeight - AndroidUtilities.navigationBarHeight - dp(8)); } if (realPathBounds != null) { scrimDrawableSw = realPathBounds.width() / pathBounds.width(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchDownloadsContainer.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchDownloadsContainer.java index aece2235f5..b84123257d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchDownloadsContainer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchDownloadsContainer.java @@ -274,7 +274,7 @@ public void update(boolean animated) { updateListInternal(animated, currentLoadingFilesTmp, recentLoadingFilesTmp); if (rowCount == 0) { emptyView.showProgress(false, false); - emptyView.title.setText(LocaleController.getString("SearchEmptyViewDownloads", R.string.SearchEmptyViewDownloads)); + emptyView.title.setText(LocaleController.getString(R.string.SearchEmptyViewDownloads)); emptyView.subtitle.setVisibility(View.GONE); } emptyView.setStickerType(9); @@ -321,9 +321,9 @@ public void update(boolean animated) { if (rowCount == 0) { emptyView.showProgress(false, true); - emptyView.title.setText(LocaleController.getString("SearchEmptyViewTitle2", R.string.SearchEmptyViewTitle2)); + emptyView.title.setText(LocaleController.getString(R.string.SearchEmptyViewTitle2)); emptyView.subtitle.setVisibility(View.VISIBLE); - emptyView.subtitle.setText(LocaleController.getString("SearchEmptyViewFilteredSubtitle2", R.string.SearchEmptyViewFilteredSubtitle2)); + emptyView.subtitle.setText(LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitle2)); } } }); @@ -511,11 +511,11 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi if (type == 0) { GraySectionCell graySectionCell = (GraySectionCell) holder.itemView; if (position == downloadingFilesHeader) { - String header = LocaleController.getString("Downloading", R.string.Downloading); + String header = LocaleController.getString(R.string.Downloading); if (graySectionCell.getText().equals(header)) { - graySectionCell.setRightText(hasCurrentDownload ? LocaleController.getString("PauseAll", R.string.PauseAll) : LocaleController.getString("ResumeAll", R.string.ResumeAll), hasCurrentDownload); + graySectionCell.setRightText(hasCurrentDownload ? LocaleController.getString(R.string.PauseAll) : LocaleController.getString(R.string.ResumeAll), hasCurrentDownload); } else { - graySectionCell.setText(header, hasCurrentDownload ? LocaleController.getString("PauseAll", R.string.PauseAll) : LocaleController.getString("ResumeAll", R.string.ResumeAll), new OnClickListener() { + graySectionCell.setText(header, hasCurrentDownload ? LocaleController.getString(R.string.PauseAll) : LocaleController.getString(R.string.ResumeAll), new OnClickListener() { @Override public void onClick(View view) { for (int i = 0; i < currentLoadingFiles.size(); i++) { @@ -532,7 +532,7 @@ public void onClick(View view) { }); } } else if (position == recentFilesHeader) { - graySectionCell.setText(LocaleController.getString("RecentlyDownloaded", R.string.RecentlyDownloaded), LocaleController.getString("Settings", R.string.Settings), + graySectionCell.setText(LocaleController.getString(R.string.RecentlyDownloaded), LocaleController.getString(R.string.Settings), view -> DownloadsInfoBottomSheet.show(parentActivity, parentFragment) ); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchTagsList.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchTagsList.java index d523d2a333..ebdd612dcd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchTagsList.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchTagsList.java @@ -491,7 +491,7 @@ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { MessagesController.getInstance(currentAccount).renameSavedReactionTag(ReactionsLayoutInBubble.VisibleReaction.fromTL(reaction), text); dialogInterface.dismiss(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialogInterface, i) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialogInterface, i) -> { dialogInterface.dismiss(); }); if (adaptive) { 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 489aca8e80..3f5d15286d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchViewPager.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchViewPager.java @@ -247,7 +247,7 @@ public void setVisibility(int visibility) { super.setVisibility(visibility); } }; - emptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); + emptyView.title.setText(LocaleController.getString(R.string.NoResult)); emptyView.subtitle.setVisibility(View.GONE); emptyView.setVisibility(View.GONE); emptyView.addView(loadingView, 0); @@ -301,7 +301,7 @@ public void setVisibility(int visibility) { super.setVisibility(visibility); } }; - channelsEmptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); + channelsEmptyView.title.setText(LocaleController.getString(R.string.NoResult)); channelsEmptyView.subtitle.setVisibility(View.GONE); channelsEmptyView.setVisibility(View.GONE); channelsEmptyView.addView(loadingView, 0); @@ -319,7 +319,7 @@ public void update(boolean animated) { channelsEmptyView.subtitle.setVisibility(View.VISIBLE); channelsEmptyView.subtitle.setText(LocaleController.getString(R.string.NoChannelsMessage)); } else { - channelsEmptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); + channelsEmptyView.title.setText(LocaleController.getString(R.string.NoResult)); channelsEmptyView.subtitle.setVisibility(View.GONE); } } @@ -378,7 +378,7 @@ public void setVisibility(int visibility) { super.setVisibility(visibility); } }; - botsEmptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); + botsEmptyView.title.setText(LocaleController.getString(R.string.NoResult)); botsEmptyView.subtitle.setVisibility(View.GONE); botsEmptyView.setVisibility(View.GONE); botsEmptyView.addView(loadingView, 0); @@ -391,7 +391,7 @@ public void setVisibility(int visibility) { public void update(boolean animated) { super.update(animated); botsEmptyView.showProgress(loadingMessages || loadingBots || searchMessages == null || !searchMessages.isEmpty(), animated); - botsEmptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); + botsEmptyView.title.setText(LocaleController.getString(R.string.NoResult)); botsEmptyView.subtitle.setVisibility(View.GONE); } @@ -481,6 +481,9 @@ private void search(View view, int position, String query, boolean reset) { // MessagesController.getInstance(currentAccount).getChannelRecommendations(0); botsSearchAdapter.search(query); botsEmptyView.setKeyboardHeight(keyboardSize, false); + if (TextUtils.isEmpty(query)) { + botsSearchAdapter.checkBottom(); + } } else if (view == searchContainer) { if (dialogId == 0 && minDate == 0 && maxDate == 0 || forumDialogId != 0) { lastSearchScrolledToTop = false; @@ -584,11 +587,11 @@ private void showActionMode(boolean show) { actionMode.addView(selectedMessagesCountTextView, LayoutHelper.createLinear(0, LayoutHelper.MATCH_PARENT, 1.0f, 72, 0, 0, 0)); selectedMessagesCountTextView.setOnTouchListener((v, event) -> true); - speedItem = actionMode.addItemWithWidth(speedItemId, R.drawable.avd_speed, AndroidUtilities.dp(54), LocaleController.getString("AccDescrPremiumSpeed", R.string.AccDescrPremiumSpeed)); + speedItem = actionMode.addItemWithWidth(speedItemId, R.drawable.avd_speed, AndroidUtilities.dp(54), LocaleController.getString(R.string.AccDescrPremiumSpeed)); speedItem.getIconView().setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarActionModeDefaultIcon), PorterDuff.Mode.SRC_IN)); - gotoItem = actionMode.addItemWithWidth(gotoItemId, R.drawable.msg_message, AndroidUtilities.dp(54), LocaleController.getString("AccDescrGoToMessage", R.string.AccDescrGoToMessage)); - forwardItem = actionMode.addItemWithWidth(forwardItemId, R.drawable.msg_forward, AndroidUtilities.dp(54), LocaleController.getString("Forward", R.string.Forward)); - deleteItem = actionMode.addItemWithWidth(deleteItemId, R.drawable.msg_delete, AndroidUtilities.dp(54), LocaleController.getString("Delete", R.string.Delete)); + gotoItem = actionMode.addItemWithWidth(gotoItemId, R.drawable.msg_message, AndroidUtilities.dp(54), LocaleController.getString(R.string.AccDescrGoToMessage)); + forwardItem = actionMode.addItemWithWidth(forwardItemId, R.drawable.msg_forward, AndroidUtilities.dp(54), LocaleController.getString(R.string.Forward)); + deleteItem = actionMode.addItemWithWidth(deleteItemId, R.drawable.msg_delete, AndroidUtilities.dp(54), LocaleController.getString(R.string.Delete)); } if (selectedMessagesCountTextView != null) { boolean isForumSearch = dialogsSearchAdapter != null && dialogsSearchAdapter.delegate != null && dialogsSearchAdapter.delegate.getSearchForumDialogId() != 0; @@ -658,11 +661,11 @@ public void onActionBarItemClick(int id) { spannableStringBuilder .append(AndroidUtilities.replaceTags(LocaleController.formatPluralString("RemoveDocumentsMessage", selectedFiles.size()))) .append("\n\n") - .append(LocaleController.getString("RemoveDocumentsAlertMessage", R.string.RemoveDocumentsAlertMessage)); + .append(LocaleController.getString(R.string.RemoveDocumentsAlertMessage)); builder.setMessage(spannableStringBuilder); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialogInterface, i) -> dialogInterface.dismiss()); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialogInterface, i) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialogInterface, i) -> dialogInterface.dismiss()); + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialogInterface, i) -> { dialogInterface.dismiss(); parent.getDownloadController().deleteRecentFiles(messageObjects); hideActionMode(); @@ -690,7 +693,7 @@ public void onActionBarItemClick(int id) { args.putBoolean("onlySelect", true); args.putInt("dialogsType", DialogsActivity.DIALOGS_TYPE_FORWARD); DialogsActivity fragment = new DialogsActivity(args); - fragment.setDelegate((fragment1, dids, message, param, topicsFragment) -> { + fragment.setDelegate((fragment1, dids, message, param, notify, scheduleDate, topicsFragment) -> { ArrayList fmessages = new ArrayList<>(); Iterator idIterator = selectedFiles.keySet().iterator(); while (idIterator.hasNext()) { 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 e6fa2f42cc..9fd1c8eeb6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SenderSelectPopup.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SenderSelectPopup.java @@ -136,7 +136,7 @@ protected int getSuggestedMinimumWidth() { headerText = new TextView(context); headerText.setTextColor(Theme.getColor(Theme.key_dialogTextBlue)); headerText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); - headerText.setText(LocaleController.getString("SendMessageAsTitle", R.string.SendMessageAsTitle)); + headerText.setText(LocaleController.getString(R.string.SendMessageAsTitle)); headerText.setTypeface(AndroidUtilities.bold(), Typeface.BOLD); int dp = AndroidUtilities.dp(18); headerText.setPadding(dp, AndroidUtilities.dp(12), dp, AndroidUtilities.dp(12)); @@ -218,7 +218,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi TLRPC.User user = messagesController.getUser(peerId); if (user != null) { senderView.title.setText(UserObject.getUserName(user)); - senderView.subtitle.setText(LocaleController.getString("VoipGroupPersonalAccount", R.string.VoipGroupPersonalAccount)); + senderView.subtitle.setText(LocaleController.getString(R.string.VoipGroupPersonalAccount)); senderView.avatar.setAvatar(user); } senderView.avatar.setSelected(chatFull.default_send_as != null ? chatFull.default_send_as.user_id == peer.user_id : position == 0, false); @@ -298,6 +298,7 @@ public boolean onTouchEvent(MotionEvent event) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { params.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; } + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, bulletinContainer, params); windowManager.addView(bulletinContainer, params); } 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 94d08a1522..6c025a6357 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareAlert.java @@ -272,7 +272,7 @@ protected void onDraw(Canvas canvas) { leftTab.setTextColor(getThemedColor(Theme.key_voipgroup_nameText)); leftTab.setTextSize(13); leftTab.setLeftDrawable(R.drawable.msg_tabs_mic1); - leftTab.setText(LocaleController.getString("VoipGroupInviteCanSpeak", R.string.VoipGroupInviteCanSpeak)); + leftTab.setText(LocaleController.getString(R.string.VoipGroupInviteCanSpeak)); leftTab.setGravity(Gravity.CENTER); addView(leftTab, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.LEFT | Gravity.TOP, 14, 0, 0, 0)); leftTab.setOnClickListener(v -> switchToTab(0)); @@ -281,7 +281,7 @@ protected void onDraw(Canvas canvas) { rightTab.setTextColor(getThemedColor(Theme.key_voipgroup_nameText)); rightTab.setTextSize(13); rightTab.setLeftDrawable(R.drawable.msg_tabs_mic2); - rightTab.setText(LocaleController.getString("VoipGroupInviteListenOnly", R.string.VoipGroupInviteListenOnly)); + rightTab.setText(LocaleController.getString(R.string.VoipGroupInviteListenOnly)); rightTab.setGravity(Gravity.CENTER); addView(rightTab, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.LEFT | Gravity.TOP, 0, 0, 14, 0)); rightTab.setOnClickListener(v -> switchToTab(1)); @@ -386,7 +386,7 @@ protected int getCurrentColor() { searchEditText.setLines(1); searchEditText.setSingleLine(true); searchEditText.setImeOptions(EditorInfo.IME_ACTION_SEARCH | EditorInfo.IME_FLAG_NO_EXTRACT_UI); - searchEditText.setHint(LocaleController.getString("ShareSendTo", R.string.ShareSendTo)); + searchEditText.setHint(LocaleController.getString(R.string.ShareSendTo)); searchEditText.setCursorColor(getThemedColor(darkTheme ? Theme.key_voipgroup_searchText : Theme.key_featuredStickers_addedIcon)); searchEditText.setCursorSize(dp(20)); searchEditText.setCursorWidth(1.5f); @@ -424,12 +424,12 @@ public void afterTextChanged(Editable s) { String text = searchEditText.getText().toString(); if (text.length() != 0) { if (searchEmptyView != null) { - searchEmptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); + searchEmptyView.title.setText(LocaleController.getString(R.string.NoResult)); } } else { if (gridView.getAdapter() != listAdapter) { int top = getCurrentTop(); - searchEmptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); + searchEmptyView.title.setText(LocaleController.getString(R.string.NoResult)); searchEmptyView.showProgress(false, true); checkCurrentList(false); listAdapter.notifyDataSetChanged(); @@ -966,9 +966,9 @@ protected void onTabSwitch(int num) { return; } if (num == 0) { - pickerBottomLayout.setText(LocaleController.getString("VoipGroupCopySpeakerLink", R.string.VoipGroupCopySpeakerLink).toUpperCase()); + pickerBottomLayout.setText(LocaleController.getString(R.string.VoipGroupCopySpeakerLink).toUpperCase()); } else { - pickerBottomLayout.setText(LocaleController.getString("VoipGroupCopyListenLink", R.string.VoipGroupCopyListenLink).toUpperCase()); + pickerBottomLayout.setText(LocaleController.getString(R.string.VoipGroupCopyListenLink).toUpperCase()); } } }; @@ -1241,7 +1241,7 @@ public void getItemOffsets(android.graphics.Rect outRect, View view, RecyclerVie if (darkTheme) { searchEmptyView.title.setTextColor(getThemedColor(Theme.key_voipgroup_nameText)); } - searchEmptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); + searchEmptyView.title.setText(LocaleController.getString(R.string.NoResult)); searchGridView.setEmptyView(searchEmptyView); searchGridView.setHideIfEmpty(false); searchGridView.setAnimateEmptyView(true, RecyclerListView.EMPTY_VIEW_ANIMATION_TYPE_ALPHA); @@ -1273,16 +1273,16 @@ public void getItemOffsets(android.graphics.Rect outRect, View view, RecyclerVie pickerBottomLayout.setTypeface(AndroidUtilities.bold()); pickerBottomLayout.setGravity(Gravity.CENTER); if (darkTheme && linkToCopy[1] != null) { - pickerBottomLayout.setText(LocaleController.getString("VoipGroupCopySpeakerLink", R.string.VoipGroupCopySpeakerLink).toUpperCase()); + pickerBottomLayout.setText(LocaleController.getString(R.string.VoipGroupCopySpeakerLink).toUpperCase()); } else { - pickerBottomLayout.setText(LocaleController.getString("CopyLink", R.string.CopyLink).toUpperCase()); + pickerBottomLayout.setText(LocaleController.getString(R.string.CopyLink).toUpperCase()); } pickerBottomLayout.setOnClickListener(v -> { if (selectedDialogs.size() == 0 && (isChannel || linkToCopy[0] != null)) { dismiss(); if (linkToCopy[0] == null && loadingLink) { copyLinkOnEnd = true; - Toast.makeText(ShareAlert.this.getContext(), LocaleController.getString("Loading", R.string.Loading), Toast.LENGTH_SHORT).show(); + Toast.makeText(ShareAlert.this.getContext(), LocaleController.getString(R.string.Loading), Toast.LENGTH_SHORT).show(); } else { copyLink(ShareAlert.this.getContext()); } @@ -1456,7 +1456,7 @@ public void hidePopup(boolean byBackButton) { commentTextView.getEditText().setCursorColor(getThemedColor(Theme.key_voipgroup_nameText)); } commentTextView.setBackgroundColor(backgroundColor); - commentTextView.setHint(LocaleController.getString("ShareComment", R.string.ShareComment)); + commentTextView.setHint(LocaleController.getString(R.string.ShareComment)); commentTextView.onResume(); commentTextView.setPadding(0, 0, dp(84), 0); frameLayout2.addView(commentTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT)); @@ -1634,31 +1634,31 @@ private void selectDialog(View cell, TLRPC.Dialog dialog) { TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-dialog.id); if (ChatObject.isChannel(chat) && !chat.megagroup && (!ChatObject.isCanWriteToChannel(-dialog.id, currentAccount) || hasPoll == 2)) { AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity); - builder.setTitle(LocaleController.getString("SendMessageTitle", R.string.SendMessageTitle)); + builder.setTitle(LocaleController.getString(R.string.SendMessageTitle)); if (hasPoll == 2) { if (isChannel) { - builder.setMessage(LocaleController.getString("PublicPollCantForward", R.string.PublicPollCantForward)); + builder.setMessage(LocaleController.getString(R.string.PublicPollCantForward)); } else if (ChatObject.isActionBannedByDefault(chat, ChatObject.ACTION_SEND_POLLS)) { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedPollsAll", R.string.ErrorSendRestrictedPollsAll)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedPollsAll)); } else { - builder.setMessage(LocaleController.getString("ErrorSendRestrictedPolls", R.string.ErrorSendRestrictedPolls)); + builder.setMessage(LocaleController.getString(R.string.ErrorSendRestrictedPolls)); } } else { - builder.setMessage(LocaleController.getString("ChannelCantSendMessage", R.string.ChannelCantSendMessage)); + builder.setMessage(LocaleController.getString(R.string.ChannelCantSendMessage)); } - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); builder.show(); return; } } else if (DialogObject.isEncryptedDialog(dialog.id) && (hasPoll != 0)) { AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity); - builder.setTitle(LocaleController.getString("SendMessageTitle", R.string.SendMessageTitle)); + builder.setTitle(LocaleController.getString(R.string.SendMessageTitle)); if (hasPoll != 0) { - builder.setMessage(LocaleController.getString("PollCantForwardSecretChat", R.string.PollCantForwardSecretChat)); + builder.setMessage(LocaleController.getString(R.string.PollCantForwardSecretChat)); } else { - builder.setMessage(LocaleController.getString("InvoiceCantForwardSecretChat", R.string.InvoiceCantForwardSecretChat)); + builder.setMessage(LocaleController.getString(R.string.InvoiceCantForwardSecretChat)); } - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); builder.show(); return; } @@ -1932,7 +1932,7 @@ public boolean onTouch(View v, MotionEvent event) { showSendersNameView.setTextColor(getThemedColor(Theme.key_voipgroup_nameText)); } sendPopupLayout1.addView(showSendersNameView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); - showSendersNameView.setTextAndIcon(LocaleController.getString("ShowSendersName", R.string.ShowSendersName), 0); + showSendersNameView.setTextAndIcon(false ? LocaleController.getString(R.string.ShowSenderNames) : LocaleController.getString(R.string.ShowSendersName), 0); showSendersNameView.setChecked(showSendersName = true); ActionBarMenuSubItem hideSendersNameView = new ActionBarMenuSubItem(getContext(), true, false, true, resourcesProvider); @@ -1940,7 +1940,7 @@ public boolean onTouch(View v, MotionEvent event) { hideSendersNameView.setTextColor(getThemedColor(Theme.key_voipgroup_nameText)); } sendPopupLayout1.addView(hideSendersNameView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); - hideSendersNameView.setTextAndIcon(LocaleController.getString("HideSendersName", R.string.HideSendersName), 0); + hideSendersNameView.setTextAndIcon(false ? LocaleController.getString(R.string.HideSenderNames) : LocaleController.getString(R.string.HideSendersName), 0); hideSendersNameView.setChecked(!showSendersName); showSendersNameView.setOnClickListener(e -> { showSendersNameView.setChecked(showSendersName = true); @@ -1988,7 +1988,7 @@ public boolean onTouch(View v, MotionEvent event) { sendWithoutSound.setTextColor(getThemedColor(Theme.key_voipgroup_nameText)); sendWithoutSound.setIconColor(getThemedColor(Theme.key_windowBackgroundWhiteHintText)); } - sendWithoutSound.setTextAndIcon(LocaleController.getString("SendWithoutSound", R.string.SendWithoutSound), R.drawable.input_notify_off); + sendWithoutSound.setTextAndIcon(LocaleController.getString(R.string.SendWithoutSound), R.drawable.input_notify_off); sendWithoutSound.setMinimumWidth(dp(196)); sendPopupLayout2.addView(sendWithoutSound, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); sendWithoutSound.setOnClickListener(v -> { @@ -2002,7 +2002,7 @@ public boolean onTouch(View v, MotionEvent event) { sendMessage.setTextColor(getThemedColor(Theme.key_voipgroup_nameText)); sendMessage.setIconColor(getThemedColor(Theme.key_windowBackgroundWhiteHintText)); } - sendMessage.setTextAndIcon(LocaleController.getString("SendMessage", R.string.SendMessage), R.drawable.msg_send); + sendMessage.setTextAndIcon(LocaleController.getString(R.string.SendMessage), R.drawable.msg_send); sendMessage.setMinimumWidth(dp(196)); sendPopupLayout2.addView(sendMessage, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); sendMessage.setOnClickListener(v -> { @@ -2111,15 +2111,15 @@ protected void sendInternal(boolean withSound) { SendMessagesHelper.SendMessageParams params; if (storyItem == null) { if (frameLayout2.getTag() != null && commentTextView.length() > 0) { - params = SendMessagesHelper.SendMessageParams.of(text[0] == null ? null : text[0].toString(), key, null, replyTopMsg, null, true, entities, null, null, withSound, 0, null, false); + params = SendMessagesHelper.SendMessageParams.of(text[0] == null ? null : text[0].toString(), key, replyTopMsg, replyTopMsg, null, true, entities, null, null, withSound, 0, null, false); } else { - params = SendMessagesHelper.SendMessageParams.of(sendingText[num], key, null, replyTopMsg, null, true, null, null, null, withSound, 0, null, false); + params = SendMessagesHelper.SendMessageParams.of(sendingText[num], key, replyTopMsg, replyTopMsg, null, true, null, null, null, withSound, 0, null, false); } } else { if (frameLayout2.getTag() != null && commentTextView.length() > 0 && text[0] != null) { SendMessagesHelper.getInstance(currentAccount).sendMessage(SendMessagesHelper.SendMessageParams.of(text[0].toString(), key, null, replyTopMsg, null, true, null, null, null, withSound, 0, null, false)); } - params = SendMessagesHelper.SendMessageParams.of(null, key, null, replyTopMsg, null, true, null, null, null, withSound, 0, null, false); + params = SendMessagesHelper.SendMessageParams.of(null, key, replyTopMsg, replyTopMsg, null, true, null, null, null, withSound, 0, null, false); params.sendingStory = storyItem; } SendMessagesHelper.getInstance(currentAccount).sendMessage(params); @@ -2130,13 +2130,13 @@ protected void sendInternal(boolean withSound) { TLRPC.TL_forumTopic topic = selectedDialogTopics.get(selectedDialogs.get(key)); MessageObject replyTopMsg = topic != null ? new MessageObject(currentAccount, topic.topicStartMessage, false, false) : null; if (NekoConfig.sendCommentAfterForward.Bool()) { - SendMessagesHelper.getInstance(currentAccount).sendMessage(SendMessagesHelper.SendMessageParams.of(sendingText[num], key, null, replyTopMsg, null, true, null, null, null, withSound, 0, null, false)); + SendMessagesHelper.getInstance(currentAccount).sendMessage(SendMessagesHelper.SendMessageParams.of(sendingText[num], key, replyTopMsg, replyTopMsg, null, true, null, null, null, withSound, 0, null, false)); } if (frameLayout2.getTag() != null && commentTextView.length() > 0) { - SendMessagesHelper.getInstance(currentAccount).sendMessage(SendMessagesHelper.SendMessageParams.of(text[0] == null ? null : text[0].toString(), key, null, replyTopMsg, null, true, entities, null, null, withSound, 0, null, false)); + SendMessagesHelper.getInstance(currentAccount).sendMessage(SendMessagesHelper.SendMessageParams.of(text[0] == null ? null : text[0].toString(), key, replyTopMsg, replyTopMsg, null, true, entities, null, null, withSound, 0, null, false)); } if (!NekoConfig.sendCommentAfterForward.Bool()) { - SendMessagesHelper.getInstance(currentAccount).sendMessage(SendMessagesHelper.SendMessageParams.of(sendingText[num], key, null, replyTopMsg, null, true, null, null, null, withSound, 0, null, false)); + SendMessagesHelper.getInstance(currentAccount).sendMessage(SendMessagesHelper.SendMessageParams.of(sendingText[num], key, replyTopMsg, replyTopMsg, null, true, null, null, null, withSound, 0, null, false)); } } onSend(selectedDialogs, 1, selectedDialogTopics.get(selectedDialogs.valueAt(0))); @@ -3180,7 +3180,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { GraySectionCell graySectionCell = new GraySectionCell(context, resourcesProvider); graySectionCell.setTextColor(darkTheme ? Theme.key_voipgroup_nameText : Theme.key_graySectionText); graySectionCell.setBackgroundColor(getThemedColor(darkTheme ? Theme.key_voipgroup_searchBackground : Theme.key_graySection)); - graySectionCell.setText(LocaleController.getString("Recent", R.string.Recent)); + graySectionCell.setText(LocaleController.getString(R.string.Recent)); view = graySectionCell; break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareLocationDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareLocationDrawable.java index c0218ad441..f0c001b750 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareLocationDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareLocationDrawable.java @@ -39,14 +39,6 @@ public ShareLocationDrawable(Context context, int type) { drawable = context.getResources().getDrawable(R.drawable.filled_stop_location).mutate(); drawableLeft = context.getResources().getDrawable(R.drawable.smallanimationpinleft).mutate(); drawableRight = context.getResources().getDrawable(R.drawable.smallanimationpinright).mutate(); - } else if (type == 3) { - drawable = context.getResources().getDrawable(R.drawable.nearby_l).mutate(); - drawableLeft = context.getResources().getDrawable(R.drawable.animationpinleft).mutate(); - drawableRight = context.getResources().getDrawable(R.drawable.animationpinright).mutate(); - } else if (type == 2) { - drawable = context.getResources().getDrawable(R.drawable.nearby_m).mutate(); - drawableLeft = context.getResources().getDrawable(R.drawable.animationpinleft).mutate(); - drawableRight = context.getResources().getDrawable(R.drawable.animationpinright).mutate(); } else if (type == 1) { drawable = context.getResources().getDrawable(R.drawable.smallanimationpin).mutate(); drawableLeft = context.getResources().getDrawable(R.drawable.smallanimationpinleft).mutate(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaFastScrollTooltip.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaFastScrollTooltip.java index 304c2668fa..3516d184ef 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaFastScrollTooltip.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaFastScrollTooltip.java @@ -29,7 +29,7 @@ public class SharedMediaFastScrollTooltip extends FrameLayout { public SharedMediaFastScrollTooltip(Context context) { super(context); TextView textView = new TextView(context); - textView.setText(LocaleController.getString("SharedMediaFastScrollHint", R.string.SharedMediaFastScrollHint)); + textView.setText(LocaleController.getString(R.string.SharedMediaFastScrollHint)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); textView.setMaxLines(3); textView.setTextColor(Theme.getColor(Theme.key_chat_gifSaveHintText)); 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 24bc2118de..152c4e0580 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java @@ -35,7 +35,6 @@ import android.text.TextPaint; import android.text.TextUtils; import android.text.style.ForegroundColorSpan; -import android.transition.ChangeBounds; import android.transition.TransitionManager; import android.transition.TransitionSet; import android.transition.TransitionValues; @@ -4317,7 +4316,7 @@ public void onActionBarItemClick(View v, int id) { AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), resourcesProvider); builder.setTitle(medias.size() > 1 ? LocaleController.getString(R.string.DeleteBotPreviewsTitle) : LocaleController.getString(R.string.DeleteBotPreviewTitle)); builder.setMessage(LocaleController.formatPluralString("DeleteBotPreviewsSubtitle", medias.size())); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), new DialogInterface.OnClickListener() { + builder.setPositiveButton(LocaleController.getString(R.string.Delete), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { list.delete(medias); @@ -4325,7 +4324,7 @@ public void onClick(DialogInterface dialog, int which) { closeActionMode(false); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (DialogInterface.OnClickListener) (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (DialogInterface.OnClickListener) (dialog, which) -> { dialog.dismiss(); }); AlertDialog dialog = builder.create(); @@ -4344,7 +4343,7 @@ public void onClick(DialogInterface dialog, int which) { AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), resourcesProvider); builder.setTitle(storyItems.size() > 1 ? LocaleController.getString(R.string.DeleteStoriesTitle) : LocaleController.getString(R.string.DeleteStoryTitle)); builder.setMessage(LocaleController.formatPluralString("DeleteStoriesSubtitle", storyItems.size())); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), new DialogInterface.OnClickListener() { + builder.setPositiveButton(LocaleController.getString(R.string.Delete), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { profileActivity.getMessagesController().getStoriesController().deleteStories(dialog_id, storyItems); @@ -4352,7 +4351,7 @@ public void onClick(DialogInterface dialog, int which) { closeActionMode(false); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (DialogInterface.OnClickListener) (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (DialogInterface.OnClickListener) (dialog, which) -> { dialog.dismiss(); }); AlertDialog dialog = builder.create(); @@ -4451,7 +4450,7 @@ public void onClick(DialogInterface dialog, int which) { args.putBoolean("canSelectTopics", true); args.putInt("dialogsType", DialogsActivity.DIALOGS_TYPE_FORWARD); DialogsActivity fragment = new DialogsActivity(args); - fragment.setDelegate((fragment1, dids, message, param, topicsFragment) -> { + fragment.setDelegate((fragment1, dids, message, param, notify, scheduleDate, topicsFragment) -> { ArrayList fmessages = new ArrayList<>(); for (int a = 1; a >= 0; a--) { ArrayList ids = new ArrayList<>(); @@ -5471,7 +5470,9 @@ public void didReceivedNotification(int id, int account, Object... args) { page.fastScrollEnabled = list.getCount() > 0; updateFastScrollVisibility(page, true); } - storiesAdapter.notifyDataSetChanged(); + if (page != null) { + AndroidUtilities.notifyDataSetChanged(page.listView); + } if (delegate != null) { delegate.updateSelectedMediaTabText(); } @@ -5482,7 +5483,9 @@ public void didReceivedNotification(int id, int account, Object... args) { page.fastScrollEnabled = list.getCount() > 0; updateFastScrollVisibility(page, true); } - archivedStoriesAdapter.notifyDataSetChanged(); + if (page != null) { + AndroidUtilities.notifyDataSetChanged(page.listView); + } if (delegate != null) { delegate.updateSelectedMediaTabText(); } @@ -5491,7 +5494,7 @@ public void didReceivedNotification(int id, int account, Object... args) { for (int i = 0; i < mediaPages.length; ++i) { if (mediaPages[i] != null && mediaPages[i].listView != null && (mediaPages[i].selectedType == TAB_STORIES || mediaPages[i].selectedType == TAB_ARCHIVED_STORIES)) { if (isBot() && mediaPages[i].listView.getAdapter() != null) { - mediaPages[i].listView.getAdapter().notifyDataSetChanged(); + AndroidUtilities.notifyDataSetChanged(mediaPages[i].listView); } else { for (int j = 0; j < mediaPages[i].listView.getChildCount(); ++j) { View child = mediaPages[i].listView.getChildAt(j); @@ -5758,12 +5761,11 @@ public void setChatUsers(ArrayList sortedUsers, TLRPC.ChatFull chatInfo updateTabs(true); for (int a = 0; a < mediaPages.length; a++) { if (mediaPages[a].selectedType == TAB_GROUPUSERS && mediaPages[a].listView.getAdapter() != null) { - mediaPages[a].listView.getAdapter().notifyDataSetChanged(); + AndroidUtilities.notifyDataSetChanged(mediaPages[a].listView); } } } - public void updateAdapters() { if (photoVideoAdapter != null) { photoVideoAdapter.notifyDataSetChanged(); @@ -5969,7 +5971,7 @@ public Animator onDisappear(ViewGroup sceneRoot, View view, TransitionValues sta if (!scrollSlidingTextTabStrip.hasTab(0)) { OnLongClickListener longClickListener = view -> { ArrayList entries = new ArrayList<>(); - entries.add(LocaleController.getString("SharedPhotosAndVideos", R.string.SharedPhotosAndVideos)); + entries.add(LocaleController.getString(R.string.SharedPhotosAndVideos)); entries.add(LocaleController.getString("AllVideos", R.string.AllVideos)); AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); builder.setTitle(LocaleController.getString("SharedMediaTabFull2", R.string.SharedMediaTabFull2)); @@ -7095,43 +7097,43 @@ public static View createEmptyStubView(Context context, int currentType, long di EmptyStubView emptyStubView = new EmptyStubView(context, resourcesProvider); if (currentType == 0) { if (DialogObject.isEncryptedDialog(dialog_id)) { - emptyStubView.emptyTextView.setText(getString("NoMediaSecret", R.string.NoMediaSecret)); + emptyStubView.emptyTextView.setText(getString(R.string.NoMediaSecret)); } else { - emptyStubView.emptyTextView.setText(getString("NoMedia", R.string.NoMedia)); + emptyStubView.emptyTextView.setText(getString(R.string.NoMedia)); } } else if (currentType == 1) { if (DialogObject.isEncryptedDialog(dialog_id)) { - emptyStubView.emptyTextView.setText(getString("NoSharedFilesSecret", R.string.NoSharedFilesSecret)); + emptyStubView.emptyTextView.setText(getString(R.string.NoSharedFilesSecret)); } else { - emptyStubView.emptyTextView.setText(getString("NoSharedFiles", R.string.NoSharedFiles)); + emptyStubView.emptyTextView.setText(getString(R.string.NoSharedFiles)); } } else if (currentType == 2) { if (DialogObject.isEncryptedDialog(dialog_id)) { - emptyStubView.emptyTextView.setText(getString("NoSharedVoiceSecret", R.string.NoSharedVoiceSecret)); + emptyStubView.emptyTextView.setText(getString(R.string.NoSharedVoiceSecret)); } else { - emptyStubView.emptyTextView.setText(getString("NoSharedVoice", R.string.NoSharedVoice)); + emptyStubView.emptyTextView.setText(getString(R.string.NoSharedVoice)); } } else if (currentType == 3) { if (DialogObject.isEncryptedDialog(dialog_id)) { - emptyStubView.emptyTextView.setText(getString("NoSharedLinksSecret", R.string.NoSharedLinksSecret)); + emptyStubView.emptyTextView.setText(getString(R.string.NoSharedLinksSecret)); } else { - emptyStubView.emptyTextView.setText(getString("NoSharedLinks", R.string.NoSharedLinks)); + emptyStubView.emptyTextView.setText(getString(R.string.NoSharedLinks)); } } else if (currentType == 4) { if (DialogObject.isEncryptedDialog(dialog_id)) { - emptyStubView.emptyTextView.setText(getString("NoSharedAudioSecret", R.string.NoSharedAudioSecret)); + emptyStubView.emptyTextView.setText(getString(R.string.NoSharedAudioSecret)); } else { - emptyStubView.emptyTextView.setText(getString("NoSharedAudio", R.string.NoSharedAudio)); + emptyStubView.emptyTextView.setText(getString(R.string.NoSharedAudio)); } } else if (currentType == 5) { if (DialogObject.isEncryptedDialog(dialog_id)) { - emptyStubView.emptyTextView.setText(getString("NoSharedGifSecret", R.string.NoSharedGifSecret)); + emptyStubView.emptyTextView.setText(getString(R.string.NoSharedGifSecret)); } else { - emptyStubView.emptyTextView.setText(getString("NoGIFs", R.string.NoGIFs)); + emptyStubView.emptyTextView.setText(getString(R.string.NoGIFs)); } } else if (currentType == 6) { emptyStubView.emptyImageView.setImageDrawable(null); - emptyStubView.emptyTextView.setText(getString("NoGroupsInCommon", R.string.NoGroupsInCommon)); + emptyStubView.emptyTextView.setText(getString(R.string.NoGroupsInCommon)); } else if (currentType == 7) { emptyStubView.emptyImageView.setImageDrawable(null); emptyStubView.emptyTextView.setText(""); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SharingLocationsAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SharingLocationsAlert.java index ebef41627d..3ce35c55e7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SharingLocationsAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SharingLocationsAlert.java @@ -180,7 +180,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { containerView.addView(pickerBottomLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.BOTTOM)); pickerBottomLayout.cancelButton.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); pickerBottomLayout.cancelButton.setTextColor(getThemedColor(Theme.key_text_RedBold)); - pickerBottomLayout.cancelButton.setText(LocaleController.getString("StopAllLocationSharings", R.string.StopAllLocationSharings)); + pickerBottomLayout.cancelButton.setText(LocaleController.getString(R.string.StopAllLocationSharings)); pickerBottomLayout.cancelButton.setOnClickListener(view -> { for (int a : SharedConfig.activeAccounts) { LocationController.getInstance(a).removeAllLocationSharings(); @@ -188,7 +188,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { dismiss(); }); pickerBottomLayout.doneButtonTextView.setTextColor(getThemedColor(Theme.key_dialogTextBlue2)); - pickerBottomLayout.doneButtonTextView.setText(LocaleController.getString("Close", R.string.Close).toUpperCase()); + pickerBottomLayout.doneButtonTextView.setText(LocaleController.getString(R.string.Close).toUpperCase()); pickerBottomLayout.doneButton.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); pickerBottomLayout.doneButton.setOnClickListener(view -> dismiss()); pickerBottomLayout.doneButtonBadgeTextView.setVisibility(View.GONE); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ShutterButton.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ShutterButton.java index d9dd6becb4..3017d4ec49 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ShutterButton.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ShutterButton.java @@ -218,8 +218,8 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { info.setClickable(true); info.setLongClickable(true); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_CLICK.getId(), LocaleController.getString("AccActionTakePicture", R.string.AccActionTakePicture))); - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_LONG_CLICK.getId(), LocaleController.getString("AccActionRecordVideo", R.string.AccActionRecordVideo))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_CLICK.getId(), LocaleController.getString(R.string.AccActionTakePicture))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_LONG_CLICK.getId(), LocaleController.getString(R.string.AccActionRecordVideo))); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Size.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Size.java index 0090008919..e18eeb99e7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Size.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Size.java @@ -11,6 +11,7 @@ public class Size { public float width; public float height; + public boolean full; public Size() { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SizeNotifierFrameLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SizeNotifierFrameLayout.java index 6c701b50c7..fd95a5a10b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SizeNotifierFrameLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SizeNotifierFrameLayout.java @@ -192,6 +192,9 @@ protected void onDraw(Canvas canvas) { backgroundMotion = newMotion; themeAnimationValue = 0f; checkMotion(); + } else if (backgroundMotion != newMotion) { + backgroundMotion = newMotion; + checkMotion(); } themeAnimationValue = Utilities.clamp(themeAnimationValue + AndroidUtilities.screenRefreshTime / 200, 1f, 0); for (int a = 0; a < 2; a++) { @@ -638,7 +641,7 @@ public void startBlur() { float sX = (float) finalBitmap.topBitmap.getWidth() / (float) lastW; float sY = (float) (finalBitmap.topBitmap.getHeight() - TOP_CLIP_OFFSET) / (float) lastH; - finalBitmap.topCanvas.save(); + int saveCount = finalBitmap.topCanvas.save(); finalBitmap.pixelFixOffset = getScrollOffset() % (int) (DOWN_SCALE * 2); finalBitmap.topCanvas.clipRect(1, 10 * sY, finalBitmap.topBitmap.getWidth(), finalBitmap.topBitmap.getHeight() - 1); @@ -649,7 +652,11 @@ public void startBlur() { finalBitmap.topScaleY = 1f / sY; drawList(finalBitmap.topCanvas, true, null); - finalBitmap.topCanvas.restore(); + try { + finalBitmap.topCanvas.restoreToCount(saveCount); + } catch (Exception e) { + FileLog.e(e); + } if (needBlurBottom) { sX = (float) finalBitmap.bottomBitmap.getWidth() / (float) lastW; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SlideChooseView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SlideChooseView.java index a68b4f10f6..f4d97f1fd3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SlideChooseView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SlideChooseView.java @@ -197,7 +197,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { circleSize = AndroidUtilities.dp(6); gapSize = AndroidUtilities.dp(2); sideSide = AndroidUtilities.dp(22); - lineSize = (getMeasuredWidth() - circleSize * optionsStr.length - gapSize * 2 * (optionsStr.length - 1) - sideSide * 2) / (optionsStr.length - 1); + lineSize = (getMeasuredWidth() - circleSize * optionsStr.length - gapSize * 2 * (optionsStr.length - 1) - sideSide * 2) / Math.max(1, optionsStr.length - 1); } @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SlotsDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SlotsDrawable.java index e2043b417b..3bd8dfe904 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SlotsDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SlotsDrawable.java @@ -220,7 +220,7 @@ public boolean setBaseDice(ChatMessageCell messageCell, TLRPC.TL_messages_sticke } TLRPC.Document document = stickerSet.documents.get(num); File path = FileLoader.getInstance(UserConfig.selectedAccount).getPathToAttach(document, true); - String json = readRes(path, 0); + String json = AndroidUtilities.readRes(path, 0); if (TextUtils.isEmpty(json)) { loading = true; AndroidUtilities.runOnUIThread(() -> { @@ -330,7 +330,7 @@ public boolean setDiceNumber(ChatMessageCell messageCell, int number, TLRPC.TL_m } TLRPC.Document document = stickerSet.documents.get(num); File path = FileLoader.getInstance(UserConfig.selectedAccount).getPathToAttach(document, true); - String json = readRes(path, 0); + String json = AndroidUtilities.readRes(path, 0); if (TextUtils.isEmpty(json)) { loading = true; AndroidUtilities.runOnUIThread(() -> { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerMasksAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerMasksAlert.java index 66e20d4097..d2605cddc9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerMasksAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerMasksAlert.java @@ -243,11 +243,11 @@ public boolean onTouchEvent(MotionEvent event) { searchEditText.setSingleLine(true); searchEditText.setImeOptions(EditorInfo.IME_ACTION_SEARCH | EditorInfo.IME_FLAG_NO_EXTRACT_UI); if (type == 0) { - searchEditText.setHint(LocaleController.getString("SearchStickersHint", R.string.SearchStickersHint)); + searchEditText.setHint(LocaleController.getString(R.string.SearchStickersHint)); } else if (type == 1) { - searchEditText.setHint(LocaleController.getString("SearchEmojiHint", R.string.SearchEmojiHint)); + searchEditText.setHint(LocaleController.getString(R.string.SearchEmojiHint)); } else if (type == 2) { - searchEditText.setHint(LocaleController.getString("SearchGifsTitle", R.string.SearchGifsTitle)); + searchEditText.setHint(LocaleController.getString(R.string.SearchGifsTitle)); } searchEditText.setCursorColor(0xffffffff); searchEditText.setCursorSize(AndroidUtilities.dp(20)); @@ -1133,13 +1133,13 @@ private void updateStickerTabs() { if (currentType == MediaDataController.TYPE_IMAGE && !favouriteStickers.isEmpty()) { favTabBum = stickersTabOffset; stickersTabOffset++; - stickersTab.addIconTab(1, stickerIcons[1]).setContentDescription(LocaleController.getString("FavoriteStickers", R.string.FavoriteStickers)); + stickersTab.addIconTab(1, stickerIcons[1]).setContentDescription(LocaleController.getString(R.string.FavoriteStickers)); } if (!recentStickers[typeIndex(currentType)].isEmpty()) { recentTabBum = stickersTabOffset; stickersTabOffset++; - stickersTab.addIconTab(0, stickerIcons[0]).setContentDescription(LocaleController.getString("RecentStickers", R.string.RecentStickers)); + stickersTab.addIconTab(0, stickerIcons[0]).setContentDescription(LocaleController.getString(R.string.RecentStickers)); } stickerSets[typeIndex(currentType)].clear(); @@ -1158,7 +1158,7 @@ private void updateStickerTabs() { if (thumb == null) { thumb = document; } - stickersTab.addStickerTab(thumb, document, stickerSet).setContentDescription(stickerSet.set.title + ", " + LocaleController.getString("AccDescrStickerSet", R.string.AccDescrStickerSet)); + stickersTab.addStickerTab(thumb, document, stickerSet).setContentDescription(stickerSet.set.title + ", " + LocaleController.getString(R.string.AccDescrStickerSet)); } stickersTab.commitUpdate(); stickersTab.updateTabStyles(); @@ -1479,9 +1479,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { cell.setText(set.set.title, 0); } } else if (object == recentStickers[typeIndex(currentType)]) { - cell.setText(LocaleController.getString("RecentStickers", R.string.RecentStickers), 0); + cell.setText(LocaleController.getString(R.string.RecentStickers), 0); } else if (object == favouriteStickers) { - cell.setText(LocaleController.getString("FavoriteStickers", R.string.FavoriteStickers), 0); + cell.setText(LocaleController.getString(R.string.FavoriteStickers), 0); } break; } @@ -1955,7 +1955,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { frameLayout.addView(imageView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 0, 0, 50)); TextView textView = new TextView(context); - textView.setText(LocaleController.getString("NoStickersFound", R.string.NoStickersFound)); + textView.setText(LocaleController.getString(R.string.NoStickersFound)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); textView.setTextColor(0xff949ba1); frameLayout.addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 0, 0, 0)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerSetBulletinLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerSetBulletinLayout.java index 054eddab85..6f5d9e504d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerSetBulletinLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickerSetBulletinLayout.java @@ -133,17 +133,17 @@ public StickerSetBulletinLayout(@NonNull Context context, TLObject setObject, in case TYPE_ADDED: if (stickerSet != null) { if (stickerSet.masks) { - titleTextView.setText(LocaleController.getString("AddMasksInstalled", R.string.AddMasksInstalled)); + titleTextView.setText(LocaleController.getString(R.string.AddMasksInstalled)); subtitleTextView.setText(LocaleController.formatString("AddMasksInstalledInfo", R.string.AddMasksInstalledInfo, stickerSet.title)); } else if (stickerSet.emojis) { - titleTextView.setText(LocaleController.getString("AddEmojiInstalled", R.string.AddEmojiInstalled)); + titleTextView.setText(LocaleController.getString(R.string.AddEmojiInstalled)); if (count > 1) { subtitleTextView.setText(LocaleController.formatPluralString("AddEmojiMultipleInstalledInfo", count)); } else { subtitleTextView.setText(LocaleController.formatString("AddEmojiInstalledInfo", R.string.AddEmojiInstalledInfo, stickerSet.title)); } } else { - titleTextView.setText(LocaleController.getString("AddStickersInstalled", R.string.AddStickersInstalled)); + titleTextView.setText(LocaleController.getString(R.string.AddStickersInstalled)); subtitleTextView.setText(LocaleController.formatString("AddStickersInstalledInfo", R.string.AddStickersInstalledInfo, stickerSet.title)); } } @@ -151,17 +151,17 @@ public StickerSetBulletinLayout(@NonNull Context context, TLObject setObject, in case TYPE_REMOVED: if (stickerSet != null) { if (stickerSet.masks) { - titleTextView.setText(LocaleController.getString("MasksRemoved", R.string.MasksRemoved)); + titleTextView.setText(LocaleController.getString(R.string.MasksRemoved)); subtitleTextView.setText(LocaleController.formatString("MasksRemovedInfo", R.string.MasksRemovedInfo, stickerSet.title)); } else if (stickerSet.emojis) { - titleTextView.setText(LocaleController.getString("EmojiRemoved", R.string.EmojiRemoved)); + titleTextView.setText(LocaleController.getString(R.string.EmojiRemoved)); if (count > 1) { subtitleTextView.setText(LocaleController.formatPluralString("EmojiRemovedMultipleInfo", count)); } else { subtitleTextView.setText(LocaleController.formatString("EmojiRemovedInfo", R.string.EmojiRemovedInfo, stickerSet.title)); } } else { - titleTextView.setText(LocaleController.getString("StickersRemoved", R.string.StickersRemoved)); + titleTextView.setText(LocaleController.getString(R.string.StickersRemoved)); subtitleTextView.setText(LocaleController.formatString("StickersRemovedInfo", R.string.StickersRemovedInfo, stickerSet.title)); } } @@ -169,23 +169,23 @@ public StickerSetBulletinLayout(@NonNull Context context, TLObject setObject, in case TYPE_ARCHIVED: if (stickerSet != null) { if (stickerSet.masks) { - titleTextView.setText(LocaleController.getString("MasksArchived", R.string.MasksArchived)); + titleTextView.setText(LocaleController.getString(R.string.MasksArchived)); subtitleTextView.setText(LocaleController.formatString("MasksArchivedInfo", R.string.MasksArchivedInfo, stickerSet.title)); } else if (stickerSet.emojis) { - titleTextView.setText(LocaleController.getString("EmojiArchived", R.string.EmojiArchived)); + titleTextView.setText(LocaleController.getString(R.string.EmojiArchived)); subtitleTextView.setText(LocaleController.formatString("EmojiArchivedInfo", R.string.EmojiArchivedInfo, stickerSet.title)); } else { - titleTextView.setText(LocaleController.getString("StickersArchived", R.string.StickersArchived)); + titleTextView.setText(LocaleController.getString(R.string.StickersArchived)); subtitleTextView.setText(LocaleController.formatString("StickersArchivedInfo", R.string.StickersArchivedInfo, stickerSet.title)); } } break; case TYPE_REMOVED_FROM_FAVORITES: - titleTextView.setText(LocaleController.getString("RemovedFromFavorites", R.string.RemovedFromFavorites)); + titleTextView.setText(LocaleController.getString(R.string.RemovedFromFavorites)); subtitleTextView.setVisibility(ViewPagerFixed.GONE); break; case TYPE_ADDED_TO_FAVORITES: - titleTextView.setText(LocaleController.getString("AddedToFavorites", R.string.AddedToFavorites)); + titleTextView.setText(LocaleController.getString(R.string.AddedToFavorites)); subtitleTextView.setVisibility(ViewPagerFixed.GONE); break; case TYPE_REPLACED_TO_FAVORITES: @@ -220,7 +220,7 @@ public StickerSetBulletinLayout(@NonNull Context context, TLObject setObject, in } break; case TYPE_REMOVED_FROM_RECENT: - titleTextView.setText(LocaleController.getString("RemovedFromRecent", R.string.RemovedFromRecent)); + titleTextView.setText(LocaleController.getString(R.string.RemovedFromRecent)); subtitleTextView.setVisibility(ViewPagerFixed.GONE); break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersAlert.java index 2968f548a8..1c1fb1dd72 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersAlert.java @@ -187,6 +187,7 @@ public interface StickersAlertCustomButtonDelegate { private final int menuDeleteExternalCache = 101; private final int menu_copy_sticker_set = 103; private final int menu_qrcode = 104; + private final int menu_user_profile = 105; public TLRPC.TL_messages_stickerSet stickerSet; private TLRPC.Document selectedSticker; @@ -677,7 +678,7 @@ public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues } else { dismiss(); if (parentFragment != null) { - BulletinFactory.of(parentFragment).createErrorBulletin(LocaleController.getString("AddStickersNotFound", R.string.AddStickersNotFound)).show(); + BulletinFactory.of(parentFragment).createErrorBulletin(LocaleController.getString(R.string.AddStickersNotFound)).show(); } } })); @@ -1138,22 +1139,23 @@ public void requestLayout() { optionsButton.setIcon(R.drawable.ic_ab_other); optionsButton.setBackgroundDrawable(Theme.createSelectorDrawable(getThemedColor(Theme.key_player_actionBarSelector), 1)); containerView.addView(optionsButton, LayoutHelper.createFrame(40, 40, Gravity.TOP | Gravity.RIGHT, 0, 5, 5, 0)); - optionsButton.addSubItem(1, R.drawable.msg_share, LocaleController.getString("StickersShare", R.string.StickersShare)); - optionsButton.addSubItem(2, R.drawable.msg_link, LocaleController.getString("CopyLink", R.string.CopyLink)); - optionsButton.addSubItem(menu_qrcode, R.drawable.msg_qrcode, LocaleController.getString("ShareQRCode", R.string.ShareQRCode)); - optionsButton.addSubItem(menu_archive, R.drawable.msg_archive, LocaleController.getString("Archive", R.string.Archive)); + optionsButton.addSubItem(1, R.drawable.msg_share, LocaleController.getString(R.string.StickersShare)); + optionsButton.addSubItem(2, R.drawable.msg_link, LocaleController.getString(R.string.CopyLink)); + optionsButton.addSubItem(menu_qrcode, R.drawable.msg_qrcode, LocaleController.getString(R.string.ShareQRCode)); + optionsButton.addSubItem(menu_archive, R.drawable.msg_archive, LocaleController.getString(R.string.Archive)); if (!NaConfig.INSTANCE.getExternalStickerCache().String().isBlank()) { optionsButton.addSubItem(menuRefreshExternalCache, R.drawable.menu_views_reposts, LocaleController.getString(R.string.ExternalStickerCacheRefresh)); optionsButton.addSubItem(menuDeleteExternalCache, R.drawable.msg_delete, LocaleController.getString(R.string.ExternalStickerCacheDelete)); } optionsButton.addSubItem(menu_copy_sticker_set, R.drawable.msg_copy, LocaleController.getString(R.string.StickersCopyStickerSet)); + optionsButton.addSubItem(menu_user_profile, R.drawable.msg_openprofile, LocaleController.getString(R.string.ChannelAdmin)); optionsButton.setOnClickListener(v -> { checkOptions(); optionsButton.toggleSubMenu(); }); optionsButton.setDelegate(this::onSubItemClick); - optionsButton.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + optionsButton.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); optionsButton.setVisibility(inputStickerSet != null ? View.VISIBLE : View.GONE); RadialProgressView progressView = new RadialProgressView(context); @@ -1246,7 +1248,7 @@ private void updateDescription() { // descriptionTextView.setTextColor(getThemedColor(Theme.key_chat_emojiPanelTrendingDescription)); // descriptionTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); // descriptionTextView.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); -// descriptionTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("PremiumPreviewEmojiPack", R.string.PremiumPreviewEmojiPack))); +// descriptionTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PremiumPreviewEmojiPack))); // containerView.addView(descriptionTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 0, 50, 40, 0)); } } @@ -1308,20 +1310,20 @@ private void checkOptions() { private void updateSendButton() { int size = (int) (Math.min(AndroidUtilities.displaySize.x, AndroidUtilities.displaySize.y) / 2 / AndroidUtilities.density); if (importingStickers != null) { - previewSendButton.setText(LocaleController.getString("ImportStickersRemove", R.string.ImportStickersRemove)); + previewSendButton.setText(LocaleController.getString(R.string.ImportStickersRemove)); previewSendButton.setTextColor(getThemedColor(Theme.key_text_RedBold)); stickerImageView.setLayoutParams(LayoutHelper.createFrame(size, size, Gravity.CENTER, 0, 0, 0, 30)); stickerEmojiTextView.setLayoutParams(LayoutHelper.createFrame(size, size, Gravity.CENTER, 0, 0, 0, 30)); previewSendButton.setVisibility(View.VISIBLE); previewSendButtonShadow.setVisibility(View.VISIBLE); } else if (delegate != null && (stickerSet == null || !stickerSet.set.masks)) { - previewSendButton.setText(LocaleController.getString("SendSticker", R.string.SendSticker)); + previewSendButton.setText(LocaleController.getString(R.string.SendSticker)); stickerImageView.setLayoutParams(LayoutHelper.createFrame(size, size, Gravity.CENTER, 0, 0, 0, 30)); stickerEmojiTextView.setLayoutParams(LayoutHelper.createFrame(size, size, Gravity.CENTER, 0, 0, 0, 30)); previewSendButton.setVisibility(View.VISIBLE); previewSendButtonShadow.setVisibility(View.VISIBLE); } else { - previewSendButton.setText(LocaleController.getString("Close", R.string.Close)); + previewSendButton.setText(LocaleController.getString(R.string.Close)); stickerImageView.setLayoutParams(LayoutHelper.createFrame(size, size, Gravity.CENTER)); stickerEmojiTextView.setLayoutParams(LayoutHelper.createFrame(size, size, Gravity.CENTER)); previewSendButton.setVisibility(View.GONE); @@ -1479,6 +1481,25 @@ protected void onSend(LongSparseArray dids, int count, TLRPC.TL_fo } }); }); + } else if (id == menu_user_profile) { + // Na: open sticker's admin user profile or copy admin userId + long userId = stickerSet.set.id >> 32; + if ((stickerSet.set.id >> 24 & 0xff) != 0) { + userId += 0x100000000L; + } + if (parentFragment != null) { + TLRPC.User user = parentFragment.getMessagesController().getUser(userId); + if (user != null) { + MessagesController.getInstance(currentAccount).openChatOrProfileWith(user, null, parentFragment, 0, false); + return; + } + } + try { + AndroidUtilities.addToClipboard("" + userId); + BulletinFactory.of((FrameLayout) containerView, resourcesProvider).createCopyLinkBulletin().show(); + } catch (Exception e) { + FileLog.e(e); + } } } @@ -1635,7 +1656,7 @@ public void onClick(View widget) { MediaDataController.getInstance(currentAccount).processStickerSetInstallResultArchive(parentFragment, true, type, (TLRPC.TL_messages_stickerSetInstallResultArchive) response); } } else { - Toast.makeText(getContext(), LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred), Toast.LENGTH_SHORT).show(); + Toast.makeText(getContext(), LocaleController.getString(R.string.ErrorOccurred), Toast.LENGTH_SHORT).show(); } } catch (Exception e) { FileLog.e(e); @@ -1689,11 +1710,11 @@ public void onClick(View widget) { setButton(v -> showNameEnterAlert(), LocaleController.formatString("ImportStickers", R.string.ImportStickers, LocaleController.formatPluralString("Stickers", importingStickersPaths != null ? importingStickersPaths.size() : importingStickers.size())), Theme.key_dialogTextBlue2); pickerBottomLayout.setEnabled(true); } else { - setButton(null, LocaleController.getString("ImportStickersProcessing", R.string.ImportStickersProcessing), Theme.key_dialogTextGray2); + setButton(null, LocaleController.getString(R.string.ImportStickersProcessing), Theme.key_dialogTextGray2); pickerBottomLayout.setEnabled(false); } } else { - String text = LocaleController.getString("Close", R.string.Close); + String text = LocaleController.getString(R.string.Close); setButton((v) -> dismiss(), text, Theme.key_dialogTextBlue2); } } @@ -1705,8 +1726,8 @@ private void showNameEnterAlert() { FrameLayout fieldLayout = new FrameLayout(context); AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(LocaleController.getString("ImportStickersEnterName", R.string.ImportStickersEnterName)); - builder.setPositiveButton(LocaleController.getString("Next", R.string.Next), (dialog, which) -> { + builder.setTitle(LocaleController.getString(R.string.ImportStickersEnterName)); + builder.setPositiveButton(LocaleController.getString(R.string.Next), (dialog, which) -> { }); @@ -1776,9 +1797,9 @@ public void afterTextChanged(Editable s) { }); editText.setSelection(editText.length()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialog, which) -> AndroidUtilities.hideKeyboard(editText)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> AndroidUtilities.hideKeyboard(editText)); - message.setText(AndroidUtilities.replaceTags(LocaleController.getString("ImportStickersEnterNameInfo", R.string.ImportStickersEnterNameInfo))); + message.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.ImportStickersEnterNameInfo))); message.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); message.setPadding(dp(23), dp(12), dp(23), dp(6)); message.setTextColor(getThemedColor(Theme.key_dialogTextGray2)); @@ -1841,7 +1862,7 @@ public void afterTextChanged(Editable s) { private String setTitle; private void checkUrlAvailable(TextView message, String text, boolean forceAvailable) { if (forceAvailable) { - message.setText(LocaleController.getString("ImportStickersLinkAvailable", R.string.ImportStickersLinkAvailable)); + message.setText(LocaleController.getString(R.string.ImportStickersLinkAvailable)); message.setTextColor(getThemedColor(Theme.key_windowBackgroundWhiteGreenText)); lastNameAvailable = true; lastCheckName = text; @@ -1856,38 +1877,38 @@ private void checkUrlAvailable(TextView message, String text, boolean forceAvail } } if (TextUtils.isEmpty(text)) { - message.setText(LocaleController.getString("ImportStickersEnterUrlInfo", R.string.ImportStickersEnterUrlInfo)); + message.setText(LocaleController.getString(R.string.ImportStickersEnterUrlInfo)); message.setTextColor(getThemedColor(Theme.key_dialogTextGray2)); return; } lastNameAvailable = false; if (text != null) { if (text.startsWith("_") || text.endsWith("_")) { - message.setText(LocaleController.getString("ImportStickersLinkInvalid", R.string.ImportStickersLinkInvalid)); + message.setText(LocaleController.getString(R.string.ImportStickersLinkInvalid)); message.setTextColor(getThemedColor(Theme.key_text_RedRegular)); return; } for (int a = 0, N = text.length(); a < N; a++) { char ch = text.charAt(a); if (!(ch >= '0' && ch <= '9' || ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z' || ch == '_')) { - message.setText(LocaleController.getString("ImportStickersEnterUrlInfo", R.string.ImportStickersEnterUrlInfo)); + message.setText(LocaleController.getString(R.string.ImportStickersEnterUrlInfo)); message.setTextColor(getThemedColor(Theme.key_text_RedRegular)); return; } } } if (text == null || text.length() < 5) { - message.setText(LocaleController.getString("ImportStickersLinkInvalidShort", R.string.ImportStickersLinkInvalidShort)); + message.setText(LocaleController.getString(R.string.ImportStickersLinkInvalidShort)); message.setTextColor(getThemedColor(Theme.key_text_RedRegular)); return; } if (text.length() > 32) { - message.setText(LocaleController.getString("ImportStickersLinkInvalidLong", R.string.ImportStickersLinkInvalidLong)); + message.setText(LocaleController.getString(R.string.ImportStickersLinkInvalidLong)); message.setTextColor(getThemedColor(Theme.key_text_RedRegular)); return; } - message.setText(LocaleController.getString("ImportStickersLinkChecking", R.string.ImportStickersLinkChecking)); + message.setText(LocaleController.getString(R.string.ImportStickersLinkChecking)); message.setTextColor(getThemedColor(Theme.key_windowBackgroundWhiteGrayText8)); lastCheckName = text; checkRunnable = () -> { @@ -1897,11 +1918,11 @@ private void checkUrlAvailable(TextView message, String text, boolean forceAvail checkReqId = 0; if (lastCheckName != null && lastCheckName.equals(text)) { if (error == null && response instanceof TLRPC.TL_boolTrue) { - message.setText(LocaleController.getString("ImportStickersLinkAvailable", R.string.ImportStickersLinkAvailable)); + message.setText(LocaleController.getString(R.string.ImportStickersLinkAvailable)); message.setTextColor(getThemedColor(Theme.key_windowBackgroundWhiteGreenText)); lastNameAvailable = true; } else { - message.setText(LocaleController.getString("ImportStickersLinkTaken", R.string.ImportStickersLinkTaken)); + message.setText(LocaleController.getString(R.string.ImportStickersLinkTaken)); message.setTextColor(getThemedColor(Theme.key_text_RedRegular)); lastNameAvailable = false; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersArchiveAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersArchiveAlert.java index 1f494b1515..5df64f9e8a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersArchiveAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/StickersArchiveAlert.java @@ -47,10 +47,10 @@ public StickersArchiveAlert(Context context, BaseFragment baseFragment, ArrayLis TLRPC.StickerSetCovered set = sets.get(0); if (set.set.masks) { currentType = MediaDataController.TYPE_MASK; - setTitle(LocaleController.getString("ArchivedMasksAlertTitle", R.string.ArchivedMasksAlertTitle)); + setTitle(LocaleController.getString(R.string.ArchivedMasksAlertTitle)); } else { currentType = MediaDataController.TYPE_IMAGE; - setTitle(LocaleController.getString("ArchivedStickersAlertTitle", R.string.ArchivedStickersAlertTitle)); + setTitle(LocaleController.getString(R.string.ArchivedStickersAlertTitle)); } stickerSets = new ArrayList<>(sets); parentFragment = baseFragment; @@ -65,9 +65,9 @@ public StickersArchiveAlert(Context context, BaseFragment baseFragment, ArrayLis textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); textView.setPadding(AndroidUtilities.dp(23), AndroidUtilities.dp(10), AndroidUtilities.dp(23), 0); if (set.set.masks) { - textView.setText(LocaleController.getString("ArchivedMasksAlertInfo", R.string.ArchivedMasksAlertInfo)); + textView.setText(LocaleController.getString(R.string.ArchivedMasksAlertInfo)); } else { - textView.setText(LocaleController.getString("ArchivedStickersAlertInfo", R.string.ArchivedStickersAlertInfo)); + textView.setText(LocaleController.getString(R.string.ArchivedStickersAlertInfo)); } container.addView(textView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); @@ -79,9 +79,9 @@ public StickersArchiveAlert(Context context, BaseFragment baseFragment, ArrayLis listView.setGlowColor(0xfff5f6f7); container.addView(listView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 10, 0, 0)); - setNegativeButton(LocaleController.getString("Close", R.string.Close), (dialog, which) -> dialog.dismiss()); + setNegativeButton(LocaleController.getString(R.string.Close), (dialog, which) -> dialog.dismiss()); if (parentFragment != null) { - setPositiveButton(LocaleController.getString("Settings", R.string.Settings), (dialog, which) -> { + setPositiveButton(LocaleController.getString(R.string.Settings), (dialog, which) -> { parentFragment.presentFragment(new StickersActivity(currentType, null)); dialog.dismiss(); }); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/StorageDiagramView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/StorageDiagramView.java index ad55462eee..6923fab479 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/StorageDiagramView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/StorageDiagramView.java @@ -80,7 +80,7 @@ public StorageDiagramView(Context context, long dialogId) { avatarImageReceiver.setParentView(this); if (dialogId == CacheControlActivity.UNKNOWN_CHATS_DIALOG_ID) { - dialogText = LocaleController.getString("CacheOtherChats", R.string.CacheOtherChats); + dialogText = LocaleController.getString(R.string.CacheOtherChats); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_OTHER_CHATS); avatarImageReceiver.setForUserOrChat(null, avatarDrawable); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/StorageUsageView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/StorageUsageView.java index 6931f60472..8fa3abc3a2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/StorageUsageView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/StorageUsageView.java @@ -217,7 +217,7 @@ public void setStorageUsage(boolean calculating, long database, long totalSize, textSettingsCell.setVisibility(VISIBLE); telegramCacheTextView.setVisibility(View.VISIBLE); telegramDatabaseTextView.setVisibility(GONE); - textSettingsCell.setTextAndValue(LocaleController.getString("ClearTelegramCache", R.string.ClearTelegramCache), AndroidUtilities.formatFileSize(totalSize), true); + textSettingsCell.setTextAndValue(LocaleController.getString(R.string.ClearTelegramCache), AndroidUtilities.formatFileSize(totalSize), true); telegramCacheTextView.setText(LocaleController.formatString("TelegramCacheSize", R.string.TelegramCacheSize, AndroidUtilities.formatFileSize(totalSize + database))); } else { telegramCacheTextView.setVisibility(View.GONE); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SuggestEmojiView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SuggestEmojiView.java index 337a5b753b..b0d10aa0aa 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SuggestEmojiView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SuggestEmojiView.java @@ -125,7 +125,7 @@ public void copyEmoji(TLRPC.Document document) { Spannable spannable = SpannableStringBuilder.valueOf(MessageObject.findAnimatedEmojiEmoticon(document)); spannable.setSpan(new AnimatedEmojiSpan(document, null), 0, spannable.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); if (AndroidUtilities.addToClipboard(spannable) && enterView != null) { - BulletinFactory.of(enterView.getParentFragment()).createCopyBulletin(LocaleController.getString("EmojiCopied", R.string.EmojiCopied)).show(); + BulletinFactory.of(enterView.getParentFragment()).createCopyBulletin(LocaleController.getString(R.string.EmojiCopied)).show(); } } @@ -167,14 +167,14 @@ public void setAsEmojiStatus(TLRPC.Document document, Integer until) { if (fragment != null) { if (document == null) { final Bulletin.SimpleLayout layout = new Bulletin.SimpleLayout(getContext(), resourcesProvider); - layout.textView.setText(LocaleController.getString("RemoveStatusInfo", R.string.RemoveStatusInfo)); + layout.textView.setText(LocaleController.getString(R.string.RemoveStatusInfo)); layout.imageView.setImageResource(R.drawable.msg_settings_premium); Bulletin.UndoButton undoButton = new Bulletin.UndoButton(getContext(), true, resourcesProvider); undoButton.setUndoAction(undoAction); layout.setButton(undoButton); Bulletin.make(fragment, layout, Bulletin.DURATION_SHORT).show(); } else { - BulletinFactory.of(fragment).createEmojiBulletin(document, LocaleController.getString("SetAsEmojiStatusInfo", R.string.SetAsEmojiStatusInfo), LocaleController.getString("Undo", R.string.Undo), undoAction).show(); + BulletinFactory.of(fragment).createEmojiBulletin(document, LocaleController.getString(R.string.SetAsEmojiStatusInfo), LocaleController.getString(R.string.Undo), undoAction).show(); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SwipeGestureSettingsView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SwipeGestureSettingsView.java index 51e5138936..3a7df8a077 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SwipeGestureSettingsView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SwipeGestureSettingsView.java @@ -60,12 +60,12 @@ public class SwipeGestureSettingsView extends FrameLayout { public SwipeGestureSettingsView(Context context, int currentAccount) { super(context); - strings[SWIPE_GESTURE_PIN] = LocaleController.getString("SwipeSettingsPin", R.string.SwipeSettingsPin); - strings[SWIPE_GESTURE_READ] = LocaleController.getString("SwipeSettingsRead", R.string.SwipeSettingsRead); - strings[SWIPE_GESTURE_ARCHIVE] = LocaleController.getString("SwipeSettingsArchive", R.string.SwipeSettingsArchive); - strings[SWIPE_GESTURE_MUTE] = LocaleController.getString("SwipeSettingsMute", R.string.SwipeSettingsMute); - strings[SWIPE_GESTURE_DELETE] = LocaleController.getString("SwipeSettingsDelete", R.string.SwipeSettingsDelete); - strings[SWIPE_GESTURE_FOLDERS] = LocaleController.getString("SwipeSettingsFolders", R.string.SwipeSettingsFolders); + strings[SWIPE_GESTURE_PIN] = LocaleController.getString(R.string.SwipeSettingsPin); + strings[SWIPE_GESTURE_READ] = LocaleController.getString(R.string.SwipeSettingsRead); + strings[SWIPE_GESTURE_ARCHIVE] = LocaleController.getString(R.string.SwipeSettingsArchive); + strings[SWIPE_GESTURE_MUTE] = LocaleController.getString(R.string.SwipeSettingsMute); + strings[SWIPE_GESTURE_DELETE] = LocaleController.getString(R.string.SwipeSettingsDelete); + strings[SWIPE_GESTURE_FOLDERS] = LocaleController.getString(R.string.SwipeSettingsFolders); backgroundKeys[SWIPE_GESTURE_PIN] = Theme.key_chats_archiveBackground; backgroundKeys[SWIPE_GESTURE_READ] = Theme.key_chats_archiveBackground; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/Switch.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/Switch.java index 68fd1a5125..52c97b6927 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/Switch.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/Switch.java @@ -545,7 +545,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { info.setClassName("android.widget.Switch"); info.setCheckable(true); info.setChecked(isChecked); - //info.setContentDescription(isChecked ? LocaleController.getString("NotificationsOn", R.string.NotificationsOn) : LocaleController.getString("NotificationsOff", R.string.NotificationsOff)); + //info.setContentDescription(isChecked ? LocaleController.getString(R.string.NotificationsOn) : LocaleController.getString(R.string.NotificationsOff)); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/TableView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/TableView.java index a29751f39d..ab345bacdb 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/TableView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/TableView.java @@ -1,11 +1,18 @@ package org.telegram.ui.Components; import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.getString; +import static org.telegram.ui.Stars.StarsIntroActivity.StarsTransactionView.getPlatformDrawable; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Path; +import android.text.SpannableStringBuilder; +import android.text.Spanned; +import android.text.TextPaint; +import android.text.TextUtils; +import android.text.style.ClickableSpan; import android.util.TypedValue; import android.view.View; import android.view.ViewGroup; @@ -14,8 +21,20 @@ import android.widget.TableRow; import android.widget.TextView; +import androidx.annotation.NonNull; + import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.R; +import org.telegram.messenger.UserObject; +import org.telegram.messenger.Utilities; +import org.telegram.messenger.browser.Browser; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.AvatarSpan; +import org.telegram.ui.ChatActivity; +import org.telegram.ui.LaunchActivity; public class TableView extends TableLayout { @@ -56,6 +75,85 @@ public void addRowUnpadded(CharSequence title, View content) { addView(row); } + public void addRowUser(CharSequence title, final int currentAccount, final long did, Runnable onClick) { + final LinkSpanDrawable.LinksTextView textView = new LinkSpanDrawable.LinksTextView(getContext(), resourcesProvider); + textView.setPadding(dp(12.66f), dp(9.33f), dp(12.66f), dp(9.33f)); + textView.setEllipsize(TextUtils.TruncateAt.END); + textView.setTextColor(Theme.getColor(Theme.key_chat_messageLinkIn, resourcesProvider)); + textView.setLinkTextColor(Theme.getColor(Theme.key_chat_messageLinkIn, resourcesProvider)); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + textView.setSingleLine(true); + ((LinkSpanDrawable.LinksTextView) textView).setDisablePaddingsOffsetY(true); + AvatarSpan avatarSpan = new AvatarSpan(textView, currentAccount, 24); + CharSequence username; + boolean deleted = false; + final boolean unknown; + if (UserObject.isService(did)) { + deleted = false; + unknown = true; + username = getString(R.string.StarsTransactionUnknown); + CombinedDrawable iconDrawable = getPlatformDrawable("fragment"); + iconDrawable.setIconSize(dp(16), dp(16)); + avatarSpan.setImageDrawable(iconDrawable); + } else if (did >= 0) { + unknown = false; + TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(did); + deleted = user == null; + username = UserObject.getUserName(user); + avatarSpan.setUser(user); + } else { + unknown = false; + TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-did); + deleted = chat == null; + username = chat == null ? "" : chat.title; + avatarSpan.setChat(chat); + } + SpannableStringBuilder ssb = new SpannableStringBuilder("x " + username); + ssb.setSpan(avatarSpan, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + ssb.setSpan(new ClickableSpan() { + @Override + public void onClick(@NonNull View widget) { + if (onClick != null) { + onClick.run(); + } + } + @Override + public void updateDrawState(@NonNull TextPaint ds) { + ds.setUnderlineText(false); + } + }, 3, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + textView.setText(ssb); + if (!deleted) { + addRowUnpadded(title, textView); + } + } + + public void addRowLink(CharSequence title, CharSequence value, Runnable onClick) { + final LinkSpanDrawable.LinksTextView textView = new LinkSpanDrawable.LinksTextView(getContext(), resourcesProvider); + textView.setPadding(dp(12.66f), dp(9.33f), dp(12.66f), dp(9.33f)); + textView.setEllipsize(TextUtils.TruncateAt.END); + textView.setTextColor(Theme.getColor(Theme.key_chat_messageLinkIn, resourcesProvider)); + textView.setLinkTextColor(Theme.getColor(Theme.key_chat_messageLinkIn, resourcesProvider)); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + textView.setSingleLine(true); + ((LinkSpanDrawable.LinksTextView) textView).setDisablePaddingsOffsetY(true); + SpannableStringBuilder ssb = new SpannableStringBuilder(value); + ssb.setSpan(new ClickableSpan() { + @Override + public void onClick(@NonNull View widget) { + if (onClick != null) { + onClick.run(); + } + } + @Override + public void updateDrawState(@NonNull TextPaint ds) { + ds.setUnderlineText(false); + } + }, 0, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + textView.setText(ssb); + addRowUnpadded(title, textView); + } + public void addRow(CharSequence title, CharSequence text) { TextView textView = new TextView(getContext()); textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/TermsOfServiceView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/TermsOfServiceView.java index b7b4b9e6cb..7cbc89c8e0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/TermsOfServiceView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/TermsOfServiceView.java @@ -64,7 +64,7 @@ public TermsOfServiceView(final Context context) { titleTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 17); titleTextView.setTypeface(AndroidUtilities.bold()); - titleTextView.setText(LocaleController.getString("PrivacyPolicyAndTerms", R.string.PrivacyPolicyAndTerms)); + titleTextView.setText(LocaleController.getString(R.string.PrivacyPolicyAndTerms)); linearLayout.addView(titleTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT, 0, 20, 0, 0)); textView = new TextView(context); @@ -84,7 +84,7 @@ public TermsOfServiceView(final Context context) { addView(scrollView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); TextView declineTextView = new TextView(context); - declineTextView.setText(LocaleController.getString("Decline", R.string.Decline).toUpperCase()); + declineTextView.setText(LocaleController.getString(R.string.Decline).toUpperCase()); declineTextView.setGravity(Gravity.CENTER); declineTextView.setTypeface(AndroidUtilities.bold()); declineTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText)); @@ -94,12 +94,12 @@ public TermsOfServiceView(final Context context) { addView(declineTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.BOTTOM, 16, 0, 16, 16)); declineTextView.setOnClickListener(view -> { AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext()); - builder.setTitle(LocaleController.getString("TermsOfService", R.string.TermsOfService)); - builder.setPositiveButton(LocaleController.getString("DeclineDeactivate", R.string.DeclineDeactivate), (dialog, which) -> { + builder.setTitle(LocaleController.getString(R.string.TermsOfService)); + builder.setPositiveButton(LocaleController.getString(R.string.DeclineDeactivate), (dialog, which) -> { AlertDialog.Builder builder12 = new AlertDialog.Builder(getContext()); - builder12.setMessage(LocaleController.getString("TosDeclineDeleteAccount", R.string.TosDeclineDeleteAccount)); - builder12.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder12.setPositiveButton(LocaleController.getString("Deactivate", R.string.Deactivate), (dialogInterface, i) -> { + builder12.setMessage(LocaleController.getString(R.string.TosDeclineDeleteAccount)); + builder12.setTitle(LocaleController.getString(R.string.AppName)); + builder12.setPositiveButton(LocaleController.getString(R.string.Deactivate), (dialogInterface, i) -> { final AlertDialog progressDialog = new AlertDialog(getContext(), AlertDialog.ALERT_TYPE_SPINNER); progressDialog.setCanCancel(false); @@ -114,29 +114,29 @@ public TermsOfServiceView(final Context context) { if (response instanceof TLRPC.TL_boolTrue) { MessagesController.getInstance(currentAccount).performLogout(0); } else if (error == null || error.code != -1000) { - String errorText = LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred); + String errorText = LocaleController.getString(R.string.ErrorOccurred); if (error != null) { errorText += "\n" + error.text; } AlertDialog.Builder builder1 = new AlertDialog.Builder(getContext()); - builder1.setTitle(LocaleController.getString("AppName", R.string.AppName)); + builder1.setTitle(LocaleController.getString(R.string.AppName)); builder1.setMessage(errorText); - builder1.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder1.setPositiveButton(LocaleController.getString(R.string.OK), null); builder1.show(); } })); progressDialog.show(); }); - builder12.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder12.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder12.show(); }); - builder.setNegativeButton(LocaleController.getString("Back", R.string.Back), null); - builder.setMessage(LocaleController.getString("TosUpdateDecline", R.string.TosUpdateDecline)); + builder.setNegativeButton(LocaleController.getString(R.string.Back), null); + builder.setMessage(LocaleController.getString(R.string.TosUpdateDecline)); builder.show(); }); TextView acceptTextView = new TextView(context); - acceptTextView.setText(LocaleController.getString("Accept", R.string.Accept)); + acceptTextView.setText(LocaleController.getString(R.string.Accept)); acceptTextView.setGravity(Gravity.CENTER); acceptTextView.setTypeface(AndroidUtilities.bold()); acceptTextView.setTextColor(0xffffffff); @@ -147,9 +147,9 @@ public TermsOfServiceView(final Context context) { acceptTextView.setOnClickListener(view -> { if (currentTos.min_age_confirm != 0) { AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext()); - builder.setTitle(LocaleController.getString("TosAgeTitle", R.string.TosAgeTitle)); - builder.setPositiveButton(LocaleController.getString("Agree", R.string.Agree), (dialog, which) -> accept()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.TosAgeTitle)); + builder.setPositiveButton(LocaleController.getString(R.string.Agree), (dialog, which) -> accept()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.setMessage(LocaleController.formatString("TosAgeText", R.string.TosAgeText, LocaleController.formatPluralString("Years", currentTos.min_age_confirm))); builder.show(); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/TextPaintImageReceiverSpan.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/TextPaintImageReceiverSpan.java index 0ae1cea782..d5d73465e1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/TextPaintImageReceiverSpan.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/TextPaintImageReceiverSpan.java @@ -19,6 +19,7 @@ import org.telegram.messenger.ImageLocation; import org.telegram.messenger.ImageReceiver; import org.telegram.tgnet.TLRPC; +import org.telegram.ui.web.WebInstantView; import java.util.Locale; @@ -54,6 +55,30 @@ public TextPaintImageReceiverSpan(View parentView, TLRPC.Document document, Obje alignTop = top; } + public TextPaintImageReceiverSpan(View parentView, WebInstantView.WebPhoto webPhoto, Object parentObject, int w, int h, boolean top, boolean invert) { + String filter = String.format(Locale.US, "%d_%d_i", w, h); + width = w; + height = h; + imageReceiver = new ImageReceiver(parentView); + imageReceiver.setInvalidateAll(true); + if (invert) { + imageReceiver.setDelegate((imageReceiver, set, thumb, memCache) -> { + if (!imageReceiver.canInvertBitmap()) { + return; + } + float[] NEGATIVE = { + -1.0f, 0, 0, 0, 255, + 0, -1.0f, 0, 0, 255, + 0, 0, -1.0f, 0, 255, + 0, 0, 0, 1.0f, 0 + }; + imageReceiver.setColorFilter(new ColorMatrixColorFilter(NEGATIVE)); + }); + } + WebInstantView.loadPhoto(webPhoto, imageReceiver, () -> {}); + alignTop = top; + } + @Override public int getSize(Paint paint, CharSequence text, int start, int end, Paint.FontMetricsInt fm) { if (fm != null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ThanosEffect.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ThanosEffect.java index bba9d3a305..1f57140775 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ThanosEffect.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ThanosEffect.java @@ -512,7 +512,7 @@ private void init() { killInternal(); return; } - GLES31.glShaderSource(vertexShader, RLottieDrawable.readRes(null, R.raw.thanos_vertex) + "\n// " + Math.random()); + GLES31.glShaderSource(vertexShader, AndroidUtilities.readRes(R.raw.thanos_vertex) + "\n// " + Math.random()); GLES31.glCompileShader(vertexShader); int[] status = new int[1]; GLES31.glGetShaderiv(vertexShader, GLES31.GL_COMPILE_STATUS, status, 0); @@ -522,7 +522,7 @@ private void init() { killInternal(); return; } - GLES31.glShaderSource(fragmentShader, RLottieDrawable.readRes(null, R.raw.thanos_fragment) + "\n// " + Math.random()); + GLES31.glShaderSource(fragmentShader, AndroidUtilities.readRes(R.raw.thanos_fragment) + "\n// " + Math.random()); GLES31.glCompileShader(fragmentShader); GLES31.glGetShaderiv(fragmentShader, GLES31.GL_COMPILE_STATUS, status, 0); if (status[0] != GLES31.GL_TRUE) { @@ -868,7 +868,7 @@ public Animation(ArrayList views, Runnable whenDone) { ArrayList drawNamesAfter = new ArrayList<>(); ArrayList drawCaptionAfter = new ArrayList<>(); ArrayList drawReactionsAfter = new ArrayList<>(); - canvas.save(); + int saveCount = canvas.save(); for (int k = 0; k < 3; k++) { drawingGroups.clear(); if (k == 2 && !chatListView.isFastScrollAnimationRunning()) { @@ -1063,7 +1063,11 @@ public Animation(ArrayList views, Runnable whenDone) { } drawReactionsAfter.clear(); } - canvas.restore(); + try { + canvas.restoreToCount(saveCount); + } catch (Exception e) { + FileLog.e(e); + } for (int i = 0; i < views.size(); ++i) { if (views.get(i) instanceof ChatMessageCell) { @@ -1086,6 +1090,7 @@ private void drawChildElement(View chatListView, ChatActivity chatActivity, Canv cell.drawCaptionLayout(canvas, cell.getCurrentPosition() != null && (cell.getCurrentPosition().flags & MessageObject.POSITION_FLAG_LEFT) == 0, alpha); } else if (!(cell.getCurrentPosition() != null && (cell.getCurrentPosition().flags & MessageObject.POSITION_FLAG_LEFT) == 0)) { cell.drawReactionsLayout(canvas, alpha, null); + cell.drawCommentLayout(canvas, alpha); } cell.setInvalidatesParent(false); canvas.restore(); @@ -1160,7 +1165,7 @@ public Animation(View view, float durationMultipier, Runnable whenDone) { bitmap = Bitmap.createBitmap(viewWidth, viewHeight, Bitmap.Config.ARGB_8888); final Canvas canvas = new Canvas(bitmap); - canvas.save(); + int saveCount = canvas.save(); canvas.translate(-left, 0); if (view instanceof ChatMessageCell) { ((ChatMessageCell) view).drawingToBitmap = true; @@ -1186,7 +1191,11 @@ public Animation(View view, float durationMultipier, Runnable whenDone) { } else if (view instanceof ChatActionCell) { ((ChatActionCell) view).drawOutboundsContent(canvas); } - canvas.restore(); + try { + canvas.restoreToCount(saveCount); + } catch (Exception e) { + FileLog.e(e); + } left += view.getX(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ThemeEditorView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ThemeEditorView.java index 53ba37f018..cddf0def55 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ThemeEditorView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ThemeEditorView.java @@ -214,7 +214,7 @@ public boolean dispatchTouchEvent(MotionEvent event) { searchEditText.setLines(1); searchEditText.setSingleLine(true); searchEditText.setImeOptions(EditorInfo.IME_ACTION_SEARCH | EditorInfo.IME_FLAG_NO_EXTRACT_UI); - searchEditText.setHint(LocaleController.getString("Search", R.string.Search)); + searchEditText.setHint(LocaleController.getString(R.string.Search)); searchEditText.setCursorColor(0xff50a8eb); searchEditText.setCursorSize(AndroidUtilities.dp(20)); searchEditText.setCursorWidth(1.5f); @@ -245,12 +245,12 @@ public void afterTextChanged(Editable s) { String text = searchEditText.getText().toString(); if (text.length() != 0) { if (searchEmptyView != null) { - searchEmptyView.setText(LocaleController.getString("NoResult", R.string.NoResult)); + searchEmptyView.setText(LocaleController.getString(R.string.NoResult)); } } else { if (listView.getAdapter() != listAdapter) { int top = getCurrentTop(); - searchEmptyView.setText(LocaleController.getString("NoChats", R.string.NoChats)); + searchEmptyView.setText(LocaleController.getString(R.string.NoChats)); searchEmptyView.showTextView(); listView.setAdapter(listAdapter); listAdapter.notifyDataSetChanged(); @@ -822,7 +822,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { searchEmptyView = new EmptyTextProgressView(context); searchEmptyView.setShowAtCenter(true); searchEmptyView.showTextView(); - searchEmptyView.setText(LocaleController.getString("NoResult", R.string.NoResult)); + searchEmptyView.setText(LocaleController.getString(R.string.NoResult)); listView.setEmptyView(searchEmptyView); containerView.addView(searchEmptyView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT, 0, 52, 0, 0)); @@ -856,7 +856,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { closeButton.setGravity(Gravity.CENTER); closeButton.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.ACTION_BAR_AUDIO_SELECTOR_COLOR, 0)); closeButton.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); - closeButton.setText(LocaleController.getString("CloseEditor", R.string.CloseEditor).toUpperCase()); + closeButton.setText(LocaleController.getString(R.string.CloseEditor).toUpperCase()); closeButton.setTypeface(AndroidUtilities.bold()); bottomSaveLayout.addView(closeButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); closeButton.setOnClickListener(v -> dismiss()); @@ -867,7 +867,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { saveButton.setGravity(Gravity.CENTER); saveButton.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.ACTION_BAR_AUDIO_SELECTOR_COLOR, 0)); saveButton.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); - saveButton.setText(LocaleController.getString("SaveTheme", R.string.SaveTheme).toUpperCase()); + saveButton.setText(LocaleController.getString(R.string.SaveTheme).toUpperCase()); saveButton.setTypeface(AndroidUtilities.bold()); bottomSaveLayout.addView(saveButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.RIGHT)); saveButton.setOnClickListener(v -> { @@ -888,7 +888,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { cancelButton.setGravity(Gravity.CENTER); cancelButton.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.ACTION_BAR_AUDIO_SELECTOR_COLOR, 0)); cancelButton.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); - cancelButton.setText(LocaleController.getString("Cancel", R.string.Cancel).toUpperCase()); + cancelButton.setText(LocaleController.getString(R.string.Cancel).toUpperCase()); cancelButton.setTypeface(AndroidUtilities.bold()); bottomLayout.addView(cancelButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); cancelButton.setOnClickListener(v -> { @@ -908,7 +908,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { defaultButtom.setGravity(Gravity.CENTER); defaultButtom.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.ACTION_BAR_AUDIO_SELECTOR_COLOR, 0)); defaultButtom.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); - defaultButtom.setText(LocaleController.getString("Default", R.string.Default).toUpperCase()); + defaultButtom.setText(LocaleController.getString(R.string.Default).toUpperCase()); defaultButtom.setTypeface(AndroidUtilities.bold()); linearLayout.addView(defaultButtom, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); defaultButtom.setOnClickListener(v -> { @@ -924,7 +924,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { saveButton.setGravity(Gravity.CENTER); saveButton.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.ACTION_BAR_AUDIO_SELECTOR_COLOR, 0)); saveButton.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0); - saveButton.setText(LocaleController.getString("Save", R.string.Save).toUpperCase()); + saveButton.setText(LocaleController.getString(R.string.Save).toUpperCase()); saveButton.setTypeface(AndroidUtilities.bold()); linearLayout.addView(saveButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); saveButton.setOnClickListener(v -> setColorPickerVisible(false)); @@ -1517,6 +1517,7 @@ public boolean onTouchEvent(MotionEvent event) { windowLayoutParams.gravity = Gravity.TOP | Gravity.LEFT; windowLayoutParams.type = WindowManager.LayoutParams.LAST_APPLICATION_WINDOW; windowLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, windowView, windowLayoutParams); windowManager.addView(windowView, windowLayoutParams); } catch (Exception e) { FileLog.e(e); @@ -1608,6 +1609,7 @@ private void show() { if (parentActivity == null) { return; } + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, windowView, windowLayoutParams); try { windowManager.addView(windowView, windowLayoutParams); hidden = false; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/TimerDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/TimerDrawable.java index ccc423a2f4..0c67415cb8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/TimerDrawable.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/TimerDrawable.java @@ -73,39 +73,39 @@ public void setTime(int value) { if (time >= 1 && time < 60) { timeString = "" + value; if (timeString.length() < 2) { - timeString += LocaleController.getString("SecretChatTimerSeconds", R.string.SecretChatTimerSeconds); + timeString += LocaleController.getString(R.string.SecretChatTimerSeconds); } } else if (time >= 60 && time < 60 * 60) { timeString = "" + value / 60; if (timeString.length() < 2) { - timeString += LocaleController.getString("SecretChatTimerMinutes", R.string.SecretChatTimerMinutes); + timeString += LocaleController.getString(R.string.SecretChatTimerMinutes); } } else if (time >= 60 * 60 && time < 60 * 60 * 24) { timeString = "" + value / 60 / 60; if (timeString.length() < 2) { - timeString += LocaleController.getString("SecretChatTimerHours", R.string.SecretChatTimerHours); + timeString += LocaleController.getString(R.string.SecretChatTimerHours); } } else if (time >= 60 * 60 * 24 && time < 60 * 60 * 24 * 7) { timeString = "" + value / 60 / 60 / 24; if (timeString.length() < 2) { - timeString += LocaleController.getString("SecretChatTimerDays", R.string.SecretChatTimerDays); + timeString += LocaleController.getString(R.string.SecretChatTimerDays); } } else if (time < 60 * 60 * 24 * 31) { timeString = "" + value / 60 / 60 / 24 / 7; if (timeString.length() < 2) { - timeString += LocaleController.getString("SecretChatTimerWeeks", R.string.SecretChatTimerWeeks); + timeString += LocaleController.getString(R.string.SecretChatTimerWeeks); } else if (timeString.length() > 2) { timeString = "c"; } } else if (time < 60 * 60 * 24 * 364){ timeString = "" + value / 60 / 60 / 24 / 30; if (timeString.length() < 2) { - timeString += LocaleController.getString("SecretChatTimerMonths", R.string.SecretChatTimerMonths); + timeString += LocaleController.getString(R.string.SecretChatTimerMonths); } } else { timeString = "" + value / 60 / 60 / 24 / 364; if (timeString.length() < 2) { - timeString += LocaleController.getString("SecretChatTimerYears", R.string.SecretChatTimerYears); + timeString += LocaleController.getString(R.string.SecretChatTimerYears); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/TranslateAlert2.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/TranslateAlert2.java index 62a70f3101..4d43d1e0e3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/TranslateAlert2.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/TranslateAlert2.java @@ -233,7 +233,7 @@ protected void onMoveAnimationUpdate(RecyclerView.ViewHolder holder) { buttonTextView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); buttonTextView.setTypeface(AndroidUtilities.bold()); buttonTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - buttonTextView.setText(LocaleController.getString("CloseTranslation", R.string.CloseTranslation)); + buttonTextView.setText(LocaleController.getString(R.string.CloseTranslation)); buttonTextView.setBackground(Theme.AdaptiveRipple.filledRect(Theme.getColor(Theme.key_featuredStickers_addButton), 6)); buttonTextView.setOnClickListener(e -> dismiss()); buttonView.addView(buttonTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.BOTTOM | Gravity.FILL_HORIZONTAL, 16, 16, 16, 16)); @@ -301,9 +301,9 @@ public void translate() { adapter.updateMainView(textViewContainer); } else if (firstTranslation) { dismiss(); - NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.showBulletin, Bulletin.TYPE_ERROR, LocaleController.getString("TranslationFailedAlert2", R.string.TranslationFailedAlert2)); + NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.showBulletin, Bulletin.TYPE_ERROR, LocaleController.getString(R.string.TranslationFailedAlert2)); } else { - BulletinFactory.of((FrameLayout) containerView, resourcesProvider).createErrorBulletin(LocaleController.getString("TranslationFailedAlert2", R.string.TranslationFailedAlert2)).show(); + BulletinFactory.of((FrameLayout) containerView, resourcesProvider).createErrorBulletin(LocaleController.getString(R.string.TranslationFailedAlert2)).show(); headerView.toLanguageTextView.setText(languageName(toLanguage = prevToLanguage)); adapter.updateMainView(textViewContainer); } @@ -688,7 +688,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { titleTextView.setTextColor(getThemedColor(Theme.key_dialogTextBlack)); titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); titleTextView.setTypeface(AndroidUtilities.bold()); - titleTextView.setText(LocaleController.getString("AutomaticTranslation", R.string.AutomaticTranslation)); + titleTextView.setText(LocaleController.getString(R.string.AutomaticTranslation)); titleTextView.setPivotX(0); titleTextView.setPivotY(0); addView(titleTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL, 22, 20, 22, 0)); @@ -1134,6 +1134,9 @@ public void dismiss() { } public static TranslateAlert2 showAlert(Context context, BaseFragment fragment, int currentAccount, String fromLanguage, String toLanguage, CharSequence text, ArrayList entities, boolean noforwards, Utilities.CallbackReturn onLinkPress, Runnable onDismiss) { + if (context == null) { + return null; + } TranslateAlert2 alert = new TranslateAlert2(context, fromLanguage, toLanguage, text, entities, null) { @Override public void dismiss() { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/TranslateButton.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/TranslateButton.java index b619dca40b..22b07e69d5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/TranslateButton.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/TranslateButton.java @@ -159,14 +159,14 @@ protected void dispatchDraw(Canvas canvas) { final int swipeBackIndex = popupLayout.addViewToSwipeBack(swipeBack); ActionBarMenuSubItem translateToButton = new ActionBarMenuSubItem(getContext(), true, false, resourcesProvider); - translateToButton.setTextAndIcon(LocaleController.getString("TranslateTo", R.string.TranslateTo), R.drawable.msg_translate); + translateToButton.setTextAndIcon(LocaleController.getString(R.string.TranslateTo), R.drawable.msg_translate); translateToButton.setSubtext(TranslateAlert2.capitalFirst(TranslateAlert2.languageName(translateController.getDialogTranslateTo(dialogId)))); translateToButton.setItemHeight(56); translateToButton.setOnClickListener(e -> popupLayout.getSwipeBack().openForeground(swipeBackIndex)); popupLayout.addView(translateToButton); ActionBarMenuSubItem backButton = new ActionBarMenuSubItem(getContext(), true, false, resourcesProvider); - backButton.setTextAndIcon(LocaleController.getString("Back", R.string.Back), R.drawable.ic_ab_back); + backButton.setTextAndIcon(LocaleController.getString(R.string.Back), R.drawable.ic_ab_back); backButton.setOnClickListener(e -> popupLayout.getSwipeBack().closeForeground()); swipeBack.addView(backButton); @@ -231,7 +231,7 @@ protected void dispatchDraw(Canvas canvas) { // if (detectedLanguage != null) { // ActionBarMenuSubItem translateFromButton = new ActionBarMenuSubItem(getContext(), true, false, resourcesProvider); -// translateFromButton.setTextAndIcon(LocaleController.getString("DetectedLanguage", R.string.DetectedLanguage), R.drawable.msg_language); +// translateFromButton.setTextAndIcon(LocaleController.getString(R.string.DetectedLanguage), R.drawable.msg_language); // translateFromButton.setSubtext(TranslateAlert2.languageName(detectedLanguage)); // translateFromButton.setItemHeight(56); // popupLayout.addView(translateFromButton); @@ -263,7 +263,7 @@ protected void dispatchDraw(Canvas canvas) { BulletinFactory.of(fragment).createSimpleBulletin( R.raw.msg_translate, bulletinText, - LocaleController.getString("Settings", R.string.Settings), + LocaleController.getString(R.string.Settings), () -> fragment.presentFragment(new RestrictedLanguagesSelectActivity()) ).show(); popupWindow.dismiss(); @@ -272,19 +272,19 @@ protected void dispatchDraw(Canvas canvas) { } ActionBarMenuSubItem hideButton = new ActionBarMenuSubItem(getContext(), true, false, resourcesProvider); - hideButton.setTextAndIcon(LocaleController.getString("Hide", R.string.Hide), R.drawable.msg_cancel); + hideButton.setTextAndIcon(LocaleController.getString(R.string.Hide), R.drawable.msg_cancel); hideButton.setOnClickListener(e -> { translateController.setHideTranslateDialog(dialogId, true); TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-dialogId); final boolean isChannel = chat != null && ChatObject.isChannelAndNotMegaGroup(chat); final CharSequence message = AndroidUtilities.replaceTags( isChannel ? - LocaleController.getString("TranslationBarHiddenForChannel", R.string.TranslationBarHiddenForChannel) : + LocaleController.getString(R.string.TranslationBarHiddenForChannel) : chat != null ? - LocaleController.getString("TranslationBarHiddenForGroup", R.string.TranslationBarHiddenForGroup) : - LocaleController.getString("TranslationBarHiddenForChat", R.string.TranslationBarHiddenForChat) + LocaleController.getString(R.string.TranslationBarHiddenForGroup) : + LocaleController.getString(R.string.TranslationBarHiddenForChat) ); - BulletinFactory.of(fragment).createSimpleBulletin(R.raw.msg_translate, message, LocaleController.getString("Undo", R.string.Undo), () -> { + BulletinFactory.of(fragment).createSimpleBulletin(R.raw.msg_translate, message, LocaleController.getString(R.string.Undo), () -> { translateController.setHideTranslateDialog(dialogId, false); }).show(); popupWindow.dismiss(); @@ -305,7 +305,7 @@ protected void dispatchDraw(Canvas canvas) { public void updateText() { TranslateController translateController = MessagesController.getInstance(currentAccount).getTranslateController(); if (translateController.isTranslatingDialog(dialogId)) { - textView.setText(TextUtils.concat(translateIcon, " ", LocaleController.getString("ShowOriginalButton", R.string.ShowOriginalButton))); + textView.setText(TextUtils.concat(translateIcon, " ", LocaleController.getString(R.string.ShowOriginalButton))); } else { String lng = translateController.getDialogTranslateTo(dialogId); if (lng == null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/TrendingStickersLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/TrendingStickersLayout.java index b84b3dbdef..c78a302240 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/TrendingStickersLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/TrendingStickersLayout.java @@ -194,7 +194,7 @@ public void onTextChange(String text) { searchAdapter.search(text); } }; - searchView.setHint(LocaleController.getString("SearchTrendingStickersHint", R.string.SearchTrendingStickersHint)); + searchView.setHint(LocaleController.getString(R.string.SearchTrendingStickersHint)); searchLayout.addView(searchView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP)); listView = new RecyclerListView(context) { @@ -763,7 +763,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { bindStickerSetCell(holder.itemView, position, false); break; case 4: - ((GraySectionCell) holder.itemView).setText(LocaleController.getString("OtherStickers", R.string.OtherStickers)); + ((GraySectionCell) holder.itemView).setText(LocaleController.getString(R.string.OtherStickers)); break; } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/UItem.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/UItem.java index 17602d39e6..e3a6cd585a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/UItem.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/UItem.java @@ -588,6 +588,16 @@ public boolean itemContentEquals(UItem item) { public static int factoryViewTypeStartsWith = 10_000; private static int factoryViewType = 10_000; public static abstract class UItemFactory { + public static void setup(UItemFactory factory) { + if (factoryInstances == null) factoryInstances = new HashMap<>(); + if (factories == null) factories = new LongSparseArray<>(); + final Class factoryClass = factory.getClass(); + if (!factoryInstances.containsKey(factoryClass)) { + factoryInstances.put(factoryClass, factory); + factories.put(factory.viewType, factory); + } + }; + public final int viewType; private ArrayList cache; @@ -656,15 +666,7 @@ public static > UItemFactory getFactory(Class fa if (factoryInstances == null) factoryInstances = new HashMap<>(); if (factories == null) factories = new LongSparseArray<>(); UItemFactory factory = factoryInstances.get(factoryClass); - if (factory == null) { - try { - factoryInstances.put(factoryClass, factory = factoryClass.getDeclaredConstructor().newInstance()); - factories.put(factory.viewType, factory); - } catch (Exception e) { - FileLog.e(e); - } - } - if (factory == null) throw new RuntimeException("couldnt create factory of " + factoryClass); + if (factory == null) throw new RuntimeException("UItemFactory was not setuped: " + factoryClass); return factory; } } 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 c54820e437..77cc6360c4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/UndoView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/UndoView.java @@ -309,7 +309,7 @@ public UndoView(Context context, BaseFragment parent, boolean top, Theme.Resourc undoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); undoTextView.setTypeface(AndroidUtilities.bold()); undoTextView.setTextColor(getThemedColor(Theme.key_undo_cancelColor)); - undoTextView.setText(LocaleController.getString("Undo", R.string.Undo)); + undoTextView.setText(LocaleController.getString(R.string.Undo)); undoButton.addView(undoTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_VERTICAL | Gravity.LEFT, 6, 4, 8, 4)); rect = new RectF(AndroidUtilities.dp(15), AndroidUtilities.dp(15), AndroidUtilities.dp(15 + 18), AndroidUtilities.dp(15 + 18)); @@ -485,7 +485,7 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj currentInfoObject2 = infoObject2; lastUpdateTime = SystemClock.elapsedRealtime(); - undoTextView.setText(LocaleController.getString("Undo", R.string.Undo)); + undoTextView.setText(LocaleController.getString(R.string.Undo)); undoImageView.setVisibility(VISIBLE); leftImageView.setPadding(0, 0, 0, 0); leftImageView.setScaleX(1); @@ -557,14 +557,14 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj if (action == ACTION_RINGTONE_ADDED) { subinfoTextView.setSingleLine(false); - infoText = LocaleController.getString("SoundAdded", R.string.SoundAdded); - subInfoText = AndroidUtilities.replaceSingleTag(LocaleController.getString("SoundAddedSubtitle", R.string.SoundAddedSubtitle), actionRunnable); + infoText = LocaleController.getString(R.string.SoundAdded); + subInfoText = AndroidUtilities.replaceSingleTag(LocaleController.getString(R.string.SoundAddedSubtitle), actionRunnable); currentActionRunnable = null; icon = R.raw.sound_download; timeLeft = 4000; } else if (action == ACTION_REPORT_SENT) { subinfoTextView.setSingleLine(false); - infoText = LocaleController.getString("ReportChatSent", R.string.ReportChatSent); + infoText = LocaleController.getString(R.string.ReportChatSent); subInfoText = LocaleController.formatString("ReportSentInfo", R.string.ReportSentInfo); icon = R.raw.ic_admin; timeLeft = 4000; @@ -635,7 +635,7 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj avatarImageView.setVisibility(VISIBLE); timeLeft = 3000; } else if (action == ACTION_VOIP_LINK_COPIED) { - infoText = LocaleController.getString("VoipGroupCopyInviteLinkCopied", R.string.VoipGroupCopyInviteLinkCopied); + infoText = LocaleController.getString(R.string.VoipGroupCopyInviteLinkCopied); subInfoText = null; icon = R.raw.voip_invite; timeLeft = 3000; @@ -706,7 +706,7 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj TLRPC.Chat chat = (TLRPC.Chat) infoObject; infoText = AndroidUtilities.replaceTags(LocaleController.formatString("VoipGroupYouCanNowSpeakIn", R.string.VoipGroupYouCanNowSpeakIn, chat.title)); } else { - infoText = AndroidUtilities.replaceTags(LocaleController.getString("VoipGroupYouCanNowSpeak", R.string.VoipGroupYouCanNowSpeak)); + infoText = AndroidUtilities.replaceTags(LocaleController.getString(R.string.VoipGroupYouCanNowSpeak)); } subInfoText = null; icon = R.raw.voip_allow_talk; @@ -714,9 +714,9 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj } else if (action == ACTION_VOIP_SOUND_MUTED) { TLRPC.Chat chat = (TLRPC.Chat) infoObject; if (ChatObject.isChannelOrGiga(chat)) { - infoText = AndroidUtilities.replaceTags(LocaleController.getString("VoipChannelSoundMuted", R.string.VoipChannelSoundMuted)); + infoText = AndroidUtilities.replaceTags(LocaleController.getString(R.string.VoipChannelSoundMuted)); } else { - infoText = AndroidUtilities.replaceTags(LocaleController.getString("VoipGroupSoundMuted", R.string.VoipGroupSoundMuted)); + infoText = AndroidUtilities.replaceTags(LocaleController.getString(R.string.VoipGroupSoundMuted)); } subInfoText = null; icon = R.raw.ic_mute; @@ -724,20 +724,20 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj } else if (action == ACTION_VOIP_SOUND_UNMUTED) { TLRPC.Chat chat = (TLRPC.Chat) infoObject; if (ChatObject.isChannelOrGiga(chat)) { - infoText = AndroidUtilities.replaceTags(LocaleController.getString("VoipChannelSoundUnmuted", R.string.VoipChannelSoundUnmuted)); + infoText = AndroidUtilities.replaceTags(LocaleController.getString(R.string.VoipChannelSoundUnmuted)); } else { - infoText = AndroidUtilities.replaceTags(LocaleController.getString("VoipGroupSoundUnmuted", R.string.VoipGroupSoundUnmuted)); + infoText = AndroidUtilities.replaceTags(LocaleController.getString(R.string.VoipGroupSoundUnmuted)); } subInfoText = null; icon = R.raw.ic_unmute; timeLeft = 3000; } else if (currentAction == ACTION_VOIP_RECORDING_STARTED || currentAction == ACTION_VOIP_VIDEO_RECORDING_STARTED) { - infoText = AndroidUtilities.replaceTags(currentAction == ACTION_VOIP_RECORDING_STARTED ? LocaleController.getString("VoipGroupAudioRecordStarted", R.string.VoipGroupAudioRecordStarted) : LocaleController.getString("VoipGroupVideoRecordStarted", R.string.VoipGroupVideoRecordStarted)); + infoText = AndroidUtilities.replaceTags(currentAction == ACTION_VOIP_RECORDING_STARTED ? LocaleController.getString(R.string.VoipGroupAudioRecordStarted) : LocaleController.getString(R.string.VoipGroupVideoRecordStarted)); subInfoText = null; icon = R.raw.voip_record_start; timeLeft = 3000; } else if (currentAction == ACTION_VOIP_RECORDING_FINISHED || currentAction == ACTION_VOIP_VIDEO_RECORDING_FINISHED) { - String text = currentAction == ACTION_VOIP_RECORDING_FINISHED ? LocaleController.getString("VoipGroupAudioRecordSaved", R.string.VoipGroupAudioRecordSaved) : LocaleController.getString("VoipGroupVideoRecordSaved", R.string.VoipGroupVideoRecordSaved); + String text = currentAction == ACTION_VOIP_RECORDING_FINISHED ? LocaleController.getString(R.string.VoipGroupAudioRecordSaved) : LocaleController.getString(R.string.VoipGroupVideoRecordSaved); subInfoText = null; icon = R.raw.voip_record_saved; timeLeft = 4000; @@ -802,51 +802,51 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj } else if (action == ACTION_PROFILE_PHOTO_CHANGED) { if (DialogObject.isUserDialog(did)) { if (infoObject == null) { - infoText = LocaleController.getString("MainProfilePhotoSetHint", R.string.MainProfilePhotoSetHint); + infoText = LocaleController.getString(R.string.MainProfilePhotoSetHint); } else { - infoText = LocaleController.getString("MainProfileVideoSetHint", R.string.MainProfileVideoSetHint); + infoText = LocaleController.getString(R.string.MainProfileVideoSetHint); } } else { TLRPC.Chat chat = MessagesController.getInstance(UserConfig.selectedAccount).getChat(-did); if (ChatObject.isChannel(chat) && !chat.megagroup) { if (infoObject == null) { - infoText = LocaleController.getString("MainChannelProfilePhotoSetHint", R.string.MainChannelProfilePhotoSetHint); + infoText = LocaleController.getString(R.string.MainChannelProfilePhotoSetHint); } else { - infoText = LocaleController.getString("MainChannelProfileVideoSetHint", R.string.MainChannelProfileVideoSetHint); + infoText = LocaleController.getString(R.string.MainChannelProfileVideoSetHint); } } else { if (infoObject == null) { - infoText = LocaleController.getString("MainGroupProfilePhotoSetHint", R.string.MainGroupProfilePhotoSetHint); + infoText = LocaleController.getString(R.string.MainGroupProfilePhotoSetHint); } else { - infoText = LocaleController.getString("MainGroupProfileVideoSetHint", R.string.MainGroupProfileVideoSetHint); + infoText = LocaleController.getString(R.string.MainGroupProfileVideoSetHint); } } } subInfoText = null; icon = R.raw.contact_check; } else if (action == ACTION_CHAT_UNARCHIVED) { - infoText = LocaleController.getString("ChatWasMovedToMainList", R.string.ChatWasMovedToMainList); + infoText = LocaleController.getString(R.string.ChatWasMovedToMainList); subInfoText = null; icon = R.raw.contact_check; } else if (action == ACTION_ARCHIVE_HIDDEN) { - infoText = LocaleController.getString("ArchiveHidden", R.string.ArchiveHidden); - subInfoText = LocaleController.getString("ArchiveHiddenInfo", R.string.ArchiveHiddenInfo); + infoText = LocaleController.getString(R.string.ArchiveHidden); + subInfoText = LocaleController.getString(R.string.ArchiveHiddenInfo); icon = R.raw.chats_swipearchive; size = 48; } else if (currentAction == ACTION_QUIZ_CORRECT) { - infoText = LocaleController.getString("QuizWellDone", R.string.QuizWellDone); - subInfoText = LocaleController.getString("QuizWellDoneInfo", R.string.QuizWellDoneInfo); + infoText = LocaleController.getString(R.string.QuizWellDone); + subInfoText = LocaleController.getString(R.string.QuizWellDoneInfo); icon = R.raw.wallet_congrats; size = 44; } else if (currentAction == ACTION_QUIZ_INCORRECT) { - infoText = LocaleController.getString("QuizWrongAnswer", R.string.QuizWrongAnswer); - subInfoText = LocaleController.getString("QuizWrongAnswerInfo", R.string.QuizWrongAnswerInfo); + infoText = LocaleController.getString(R.string.QuizWrongAnswer); + subInfoText = LocaleController.getString(R.string.QuizWrongAnswerInfo); icon = R.raw.wallet_science; size = 44; } else if (action == ACTION_ARCHIVE_PINNED) { - infoText = LocaleController.getString("ArchivePinned", R.string.ArchivePinned); + infoText = LocaleController.getString(R.string.ArchivePinned); if (MessagesController.getInstance(currentAccount).dialogFilters.isEmpty()) { - subInfoText = LocaleController.getString("ArchivePinnedInfo", R.string.ArchivePinnedInfo); + subInfoText = LocaleController.getString(R.string.ArchivePinnedInfo); } else { subInfoText = null; } @@ -895,7 +895,7 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj icon = R.raw.ic_delete; } else if (action == ACTION_PREVIEW_MEDIA_DESELECTED) { MediaController.PhotoEntry photo = (MediaController.PhotoEntry) infoObject; - infoText = photo.isVideo ? LocaleController.getString("AttachMediaVideoDeselected", R.string.AttachMediaVideoDeselected) : LocaleController.getString("AttachMediaPhotoDeselected", R.string.AttachMediaPhotoDeselected); + infoText = photo.isVideo ? LocaleController.getString(R.string.AttachMediaVideoDeselected) : LocaleController.getString(R.string.AttachMediaPhotoDeselected); subInfoText = null; icon = 0; } else if (action == ACTION_PIN_DIALOGS || action == ACTION_UNPIN_DIALOGS) { @@ -912,12 +912,12 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj } } else { if (action == ACTION_ARCHIVE_HINT) { - infoText = LocaleController.getString("ChatArchived", R.string.ChatArchived); + infoText = LocaleController.getString(R.string.ChatArchived); } else { - infoText = LocaleController.getString("ChatsArchived", R.string.ChatsArchived); + infoText = LocaleController.getString(R.string.ChatsArchived); } if (MessagesController.getInstance(currentAccount).dialogFilters.isEmpty()) { - subInfoText = LocaleController.getString("ChatArchivedInfo", R.string.ChatArchivedInfo); + subInfoText = LocaleController.getString(R.string.ChatArchivedInfo); } else { subInfoText = null; } @@ -975,13 +975,13 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj infoTextView.setTypeface(Typeface.DEFAULT); long hapticDelay = -1; if (currentAction == ACTION_GIGAGROUP_SUCCESS) { - infoTextView.setText(LocaleController.getString("BroadcastGroupConvertSuccess", R.string.BroadcastGroupConvertSuccess)); + infoTextView.setText(LocaleController.getString(R.string.BroadcastGroupConvertSuccess)); leftImageView.setAnimation(R.raw.gigagroup_convert, 36, 36); infoOnly = true; layoutParams.topMargin = AndroidUtilities.dp(9); infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); } else if (currentAction == ACTION_GIGAGROUP_CANCEL) { - infoTextView.setText(LocaleController.getString("GigagroupConvertCancelHint", R.string.GigagroupConvertCancelHint)); + infoTextView.setText(LocaleController.getString(R.string.GigagroupConvertCancelHint)); leftImageView.setAnimation(R.raw.chats_infotip, 36, 36); infoOnly = true; layoutParams.topMargin = AndroidUtilities.dp(9); @@ -998,25 +998,25 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj infoOnly = true; leftImageView.setPadding(0, 0, 0, AndroidUtilities.dp(3)); } else if (currentAction == ACTION_AUTO_DELETE_OFF) { - infoTextView.setText(LocaleController.getString("AutoDeleteHintOffText", R.string.AutoDeleteHintOffText)); + infoTextView.setText(LocaleController.getString(R.string.AutoDeleteHintOffText)); leftImageView.setAnimation(R.raw.fire_off, 36, 36); infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); timeLeft = 3000; leftImageView.setPadding(0, 0, 0, AndroidUtilities.dp(4)); } else if (currentAction == ACTION_IMPORT_NOT_MUTUAL) { - infoTextView.setText(LocaleController.getString("ImportMutualError", R.string.ImportMutualError)); + infoTextView.setText(LocaleController.getString(R.string.ImportMutualError)); leftImageView.setAnimation(R.raw.error, 36, 36); infoOnly = true; layoutParams.topMargin = AndroidUtilities.dp(9); infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); } else if (currentAction == ACTION_IMPORT_GROUP_NOT_ADMIN) { - infoTextView.setText(LocaleController.getString("ImportNotAdmin", R.string.ImportNotAdmin)); + infoTextView.setText(LocaleController.getString(R.string.ImportNotAdmin)); leftImageView.setAnimation(R.raw.error, 36, 36); infoOnly = true; layoutParams.topMargin = AndroidUtilities.dp(9); infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); } else if (currentAction == ACTION_IMPORT_INFO) { - infoTextView.setText(LocaleController.getString("ImportedInfo", R.string.ImportedInfo)); + infoTextView.setText(LocaleController.getString(R.string.ImportedInfo)); leftImageView.setAnimation(R.raw.imported, 36, 36); leftImageView.setPadding(0, 0, 0, AndroidUtilities.dp(5)); infoOnly = true; @@ -1028,38 +1028,38 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj } int iconRawId = R.raw.copy; if (currentAction == ACTION_EMAIL_COPIED) { - infoTextView.setText(LocaleController.getString("EmailCopied", R.string.EmailCopied)); + infoTextView.setText(LocaleController.getString(R.string.EmailCopied)); } else if (currentAction == ACTION_PHONE_COPIED) { - infoTextView.setText(LocaleController.getString("PhoneCopied", R.string.PhoneCopied)); + infoTextView.setText(LocaleController.getString(R.string.PhoneCopied)); } else if (currentAction == ACTION_USERNAME_COPIED) { - infoTextView.setText(LocaleController.getString("UsernameCopied", R.string.UsernameCopied)); + infoTextView.setText(LocaleController.getString(R.string.UsernameCopied)); } else if (currentAction == ACTION_HASHTAG_COPIED) { - infoTextView.setText(LocaleController.getString("HashtagCopied", R.string.HashtagCopied)); + infoTextView.setText(LocaleController.getString(R.string.HashtagCopied)); } else if (currentAction == ACTION_MESSAGE_COPIED) { - infoTextView.setText(LocaleController.getString("MessageCopied", R.string.MessageCopied)); + infoTextView.setText(LocaleController.getString(R.string.MessageCopied)); } else if (currentAction == ACTION_LINK_COPIED) { iconRawId = R.raw.voip_invite; - infoTextView.setText(LocaleController.getString("LinkCopied", R.string.LinkCopied)); + infoTextView.setText(LocaleController.getString(R.string.LinkCopied)); } else { - infoTextView.setText(LocaleController.getString("TextCopied", R.string.TextCopied)); + infoTextView.setText(LocaleController.getString(R.string.TextCopied)); } leftImageView.setAnimation(iconRawId, 30, 30); timeLeft = 3000; infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); } else if (currentAction == ACTION_NOTIFY_ON) { - infoTextView.setText(LocaleController.getString("ChannelNotifyMembersInfoOn", R.string.ChannelNotifyMembersInfoOn)); + infoTextView.setText(LocaleController.getString(R.string.ChannelNotifyMembersInfoOn)); leftImageView.setAnimation(R.raw.silent_unmute, 30, 30); timeLeft = 3000; infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); } else if (currentAction == ACTION_NOTIFY_OFF) { - infoTextView.setText(LocaleController.getString("ChannelNotifyMembersInfoOff", R.string.ChannelNotifyMembersInfoOff)); + infoTextView.setText(LocaleController.getString(R.string.ChannelNotifyMembersInfoOff)); leftImageView.setAnimation(R.raw.silent_mute, 30, 30); timeLeft = 3000; infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); } else if (currentAction == ACTION_VOIP_INVITE_LINK_SENT) { if (infoObject2 == null) { if (did == UserConfig.getInstance(currentAccount).clientUserId) { - infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("InvLinkToSavedMessages", R.string.InvLinkToSavedMessages))); + infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.InvLinkToSavedMessages))); } else { if (DialogObject.isChatDialog(did)) { TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-did); @@ -1080,9 +1080,9 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj if (infoObject2 == null || infoObject2 instanceof TLRPC.TL_forumTopic) { if (did == UserConfig.getInstance(currentAccount).clientUserId) { if (count == 1) { - infoTextView.setText(AndroidUtilities.replaceSingleTag(LocaleController.getString("FwdMessageToSavedMessages", R.string.FwdMessageToSavedMessages), SavedMessagesController::openSavedMessages)); + infoTextView.setText(AndroidUtilities.replaceSingleTag(LocaleController.getString(R.string.FwdMessageToSavedMessages), SavedMessagesController::openSavedMessages)); } else { - infoTextView.setText(AndroidUtilities.replaceSingleTag(LocaleController.getString("FwdMessagesToSavedMessages", R.string.FwdMessagesToSavedMessages), SavedMessagesController::openSavedMessages)); + infoTextView.setText(AndroidUtilities.replaceSingleTag(LocaleController.getString(R.string.FwdMessagesToSavedMessages), SavedMessagesController::openSavedMessages)); } leftImageView.setAnimation(R.raw.saved_messages, 30, 30); } else { @@ -1120,7 +1120,7 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj Integer count = (Integer) infoObject; if (infoObject2 == null) { if (did == UserConfig.getInstance(currentAccount).clientUserId) { - infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("BackgroundToSavedMessages", R.string.BackgroundToSavedMessages))); + infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.BackgroundToSavedMessages))); leftImageView.setAnimation(R.raw.saved_messages, 30, 30); } else { if (DialogObject.isChatDialog(did)) { @@ -1170,7 +1170,7 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj leftImageView.setLayerColor("Wibe Big 3.**", getThemedColor(Theme.key_undo_infoColor)); leftImageView.setLayerColor("Wibe Small.**", getThemedColor(Theme.key_undo_infoColor)); - infoTextView.setText(LocaleController.getString("ProximityAlertSet", R.string.ProximityAlertSet)); + infoTextView.setText(LocaleController.getString(R.string.ProximityAlertSet)); leftImageView.setAnimation(R.raw.ic_unmute, 28, 28); subinfoTextView.setVisibility(VISIBLE); subinfoTextView.setSingleLine(false); @@ -1196,7 +1196,7 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj layoutParams.topMargin = AndroidUtilities.dp(14); - infoTextView.setText(LocaleController.getString("ProximityAlertCancelled", R.string.ProximityAlertCancelled)); + infoTextView.setText(LocaleController.getString(R.string.ProximityAlertCancelled)); leftImageView.setAnimation(R.raw.ic_mute, 28, 28); subinfoTextView.setVisibility(GONE); undoTextView.setTextColor(getThemedColor(Theme.key_undo_cancelColor)); @@ -1210,7 +1210,7 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj } else if (currentAction == ACTION_QR_SESSION_ACCEPTED) { TLRPC.TL_authorization authorization = (TLRPC.TL_authorization) infoObject; - infoTextView.setText(LocaleController.getString("AuthAnotherClientOk", R.string.AuthAnotherClientOk)); + infoTextView.setText(LocaleController.getString(R.string.AuthAnotherClientOk)); leftImageView.setAnimation(R.raw.contact_check, 36, 36); layoutParams.leftMargin = AndroidUtilities.dp(58); @@ -1229,8 +1229,8 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj leftImageView.playAnimation(); } else if (currentAction == ACTION_FILTERS_AVAILABLE) { timeLeft = 10000; - undoTextView.setText(LocaleController.getString("Open", R.string.Open)); - infoTextView.setText(LocaleController.getString("FilterAvailableTitle", R.string.FilterAvailableTitle)); + undoTextView.setText(LocaleController.getString(R.string.Open)); + infoTextView.setText(LocaleController.getString(R.string.FilterAvailableTitle)); leftImageView.setAnimation(R.raw.filter_new, 36, 36); int margin = (int) Math.ceil(undoTextView.getPaint().measureText(undoTextView.getText().toString())) + AndroidUtilities.dp(26); @@ -1241,7 +1241,7 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj layoutParams = (FrameLayout.LayoutParams) subinfoTextView.getLayoutParams(); layoutParams.rightMargin = margin; - String text = LocaleController.getString("FilterAvailableText", R.string.FilterAvailableText); + String text = LocaleController.getString(R.string.FilterAvailableText); SpannableStringBuilder builder = new SpannableStringBuilder(text); int index1 = text.indexOf('*'); int index2 = text.lastIndexOf('*'); @@ -1267,11 +1267,11 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj infoTextView.setMinHeight(AndroidUtilities.dp(30)); String emoji = (String) infoObject; if ("\uD83C\uDFB2".equals(emoji)) { - infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("DiceInfo2", R.string.DiceInfo2))); + infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.DiceInfo2))); leftImageView.setImageResource(R.drawable.dice); } else { if ("\uD83C\uDFAF".equals(emoji)) { - infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("DartInfo", R.string.DartInfo))); + infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.DartInfo))); } else { String info = LocaleController.getServerString("DiceEmojiInfo_" + emoji); if (!TextUtils.isEmpty(info)) { @@ -1288,7 +1288,7 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj layoutParams2.width = AndroidUtilities.dp(26); layoutParams2.height = AndroidUtilities.dp(26); } - undoTextView.setText(LocaleController.getString("SendDice", R.string.SendDice)); + undoTextView.setText(LocaleController.getString(R.string.SendDice)); int margin; if (currentAction == ACTION_DICE_INFO) { @@ -1336,7 +1336,7 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj infoTextView.setMovementMethod(new AndroidUtilities.LinkMovementMethodMy()); } else if (currentAction == ACTION_THEME_CHANGED) { - infoTextView.setText(LocaleController.getString("ColorThemeChanged", R.string.ColorThemeChanged)); + infoTextView.setText(LocaleController.getString(R.string.ColorThemeChanged)); leftImageView.setImageResource(R.drawable.toast_pallete); layoutParams.leftMargin = AndroidUtilities.dp(58); @@ -1346,7 +1346,7 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj layoutParams = (FrameLayout.LayoutParams) subinfoTextView.getLayoutParams(); layoutParams.rightMargin = AndroidUtilities.dp(48); - String text = LocaleController.getString("ColorThemeChangedInfo", R.string.ColorThemeChangedInfo); + String text = LocaleController.getString(R.string.ColorThemeChangedInfo); SpannableStringBuilder builder = new SpannableStringBuilder(text); int index1 = text.indexOf('*'); int index2 = text.lastIndexOf('*'); @@ -1366,13 +1366,13 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj infoTextView.setVisibility(VISIBLE); infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); infoTextView.setTypeface(Typeface.DEFAULT); - infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("UnlockPremiumTranscriptionHint", R.string.UnlockPremiumTranscriptionHint))); + infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.UnlockPremiumTranscriptionHint))); leftImageView.setVisibility(VISIBLE); leftImageView.setAnimation(R.raw.voice_to_text, 36, 36); leftImageView.setProgress(0); leftImageView.playAnimation(); - undoTextView.setText(LocaleController.getString("PremiumMore", R.string.PremiumMore)); + undoTextView.setText(LocaleController.getString(R.string.PremiumMore)); layoutParams.leftMargin = AndroidUtilities.dp(58); layoutParams.rightMargin = (int) Math.ceil(undoTextView.getPaint().measureText(undoTextView.getText().toString())) + AndroidUtilities.dp(26); layoutParams.topMargin = layoutParams.bottomMargin = AndroidUtilities.dp(6); @@ -1387,14 +1387,14 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj infoTextView.setVisibility(VISIBLE); infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); infoTextView.setTypeface(AndroidUtilities.bold()); - infoTextView.setText(LocaleController.getString("SwipeToReplyHint", R.string.SwipeToReplyHint)); + infoTextView.setText(LocaleController.getString(R.string.SwipeToReplyHint)); leftImageView.setVisibility(VISIBLE); leftImageView.setAnimation(R.raw.hint_swipe_reply, (int) (36 * 1.8f), (int) (36 * 1.8f)); leftImageView.setProgress(0); leftImageView.playAnimation(); subinfoTextView.setVisibility(VISIBLE); - subinfoTextView.setText(LocaleController.getString("SwipeToReplyHintMessage", R.string.SwipeToReplyHintMessage)); + subinfoTextView.setText(LocaleController.getString(R.string.SwipeToReplyHintMessage)); layoutParams.leftMargin = AndroidUtilities.dp(58); layoutParams.rightMargin = (int) Math.ceil(undoTextView.getPaint().measureText(undoTextView.getText().toString())) + AndroidUtilities.dp(26); @@ -1411,10 +1411,10 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj ) { switch (currentAction) { case ACTION_BOOSTING_ONLY_RECIPIENT_CODE: - infoTextView.setText(LocaleController.getString("BoostingOnlyRecipientCode", R.string.BoostingOnlyRecipientCode)); + infoTextView.setText(LocaleController.getString(R.string.BoostingOnlyRecipientCode)); break; case ACTION_BOOSTING_SELECTOR_WARNING_USERS: - infoTextView.setText(LocaleController.getString("BoostingSelectUpToWarningUsers", R.string.BoostingSelectUpToWarningUsers)); + infoTextView.setText(LocaleController.getString(R.string.BoostingSelectUpToWarningUsers)); break; case ACTION_BOOSTING_SELECTOR_WARNING_CHANNEL: infoTextView.setText(LocaleController.formatPluralString("BoostingSelectUpToWarningChannelsGroupsPlural", (int) BoostRepository.giveawayAddPeersMax())); @@ -1439,9 +1439,9 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj leftImageView.playAnimation(); } else if (currentAction == ACTION_ARCHIVE || currentAction == ACTION_ARCHIVE_FEW) { if (action == ACTION_ARCHIVE) { - infoTextView.setText(LocaleController.getString("ChatArchived", R.string.ChatArchived)); + infoTextView.setText(LocaleController.getString(R.string.ChatArchived)); } else { - infoTextView.setText(LocaleController.getString("ChatsArchived", R.string.ChatsArchived)); + infoTextView.setText(LocaleController.getString(R.string.ChatsArchived)); } layoutParams.leftMargin = AndroidUtilities.dp(58); @@ -1461,7 +1461,7 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj layoutParams.leftMargin = AndroidUtilities.dp(58); MediaController.PhotoEntry photoEntry = (MediaController.PhotoEntry) infoObject; - infoTextView.setText(photoEntry.isVideo ? LocaleController.getString("AttachMediaVideoDeselected", R.string.AttachMediaVideoDeselected) : LocaleController.getString("AttachMediaPhotoDeselected", R.string.AttachMediaPhotoDeselected)); + infoTextView.setText(photoEntry.isVideo ? LocaleController.getString(R.string.AttachMediaVideoDeselected) : LocaleController.getString(R.string.AttachMediaPhotoDeselected)); undoButton.setVisibility(VISIBLE); infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); infoTextView.setTypeface(Typeface.DEFAULT); @@ -1516,19 +1516,19 @@ public void showWithAction(ArrayList dialogIds, int action, Object infoObj infoTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("FolderLinkDeleted", R.string.FolderLinkDeleted, (folderName == null ? "" : folderName).replace('*', '✱')))); } } else if (currentAction == ACTION_CLEAR_DATES || currentAction == ACTION_CLEAR || currentAction == ACTION_CLEAR_FEW) { - infoTextView.setText(LocaleController.getString("HistoryClearedUndo", R.string.HistoryClearedUndo)); + infoTextView.setText(LocaleController.getString(R.string.HistoryClearedUndo)); } else if (currentAction == ACTION_DELETE_FEW) { - infoTextView.setText(LocaleController.getString("ChatsDeletedUndo", R.string.ChatsDeletedUndo)); + infoTextView.setText(LocaleController.getString(R.string.ChatsDeletedUndo)); } else { if (DialogObject.isChatDialog(did)) { TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-did); if (ChatObject.isChannel(chat) && !chat.megagroup) { - infoTextView.setText(LocaleController.getString("ChannelDeletedUndo", R.string.ChannelDeletedUndo)); + infoTextView.setText(LocaleController.getString(R.string.ChannelDeletedUndo)); } else { - infoTextView.setText(LocaleController.getString("GroupDeletedUndo", R.string.GroupDeletedUndo)); + infoTextView.setText(LocaleController.getString(R.string.GroupDeletedUndo)); } } else { - infoTextView.setText(LocaleController.getString("ChatDeletedUndo", R.string.ChatDeletedUndo)); + infoTextView.setText(LocaleController.getString(R.string.ChatDeletedUndo)); } } if (currentAction != ACTION_CLEAR_DATES) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalAdapter.java index 305a93afb9..6793a03284 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/UniversalAdapter.java @@ -846,7 +846,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi if (item.accent && object instanceof TLRPC.User && ((TLRPC.User) object).bot_active_users != 0) { // show bot dau TLRPC.User user = (TLRPC.User) object; if (user.bot_active_users != 0) { - s = LocaleController.formatPluralStringComma("BotUsers", user.bot_active_users, ' '); + s = LocaleController.formatPluralStringSpaced("BotUsers", user.bot_active_users); } } else if (item.withUsername) { String username = null; @@ -865,9 +865,9 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi if (chat.participants_count != 0) { String membersString; if (ChatObject.isChannel(chat) && !chat.megagroup) { - membersString = LocaleController.formatPluralStringComma("Subscribers", chat.participants_count, ' '); + membersString = LocaleController.formatPluralStringSpaced("Subscribers", chat.participants_count); } else { - membersString = LocaleController.formatPluralStringComma("Members", chat.participants_count, ' '); + membersString = LocaleController.formatPluralStringSpaced("Members", chat.participants_count); } if (s instanceof SpannableStringBuilder) { ((SpannableStringBuilder) s).append(", ").append(membersString); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/UsersAlertBase.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/UsersAlertBase.java index b9bb1f7338..aa0ee9d6a5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/UsersAlertBase.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/UsersAlertBase.java @@ -112,8 +112,8 @@ public UsersAlertBase(Context context, boolean needFocus, int account, Theme.Res emptyView = new StickerEmptyView(context, flickerLoadingView, StickerEmptyView.STICKER_TYPE_SEARCH); emptyView.addView(flickerLoadingView, 0, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, 0, 0, 2, 0, 0)); - emptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); - emptyView.subtitle.setText(LocaleController.getString("SearchEmptyViewFilteredSubtitle2", R.string.SearchEmptyViewFilteredSubtitle2)); + emptyView.title.setText(LocaleController.getString(R.string.NoResult)); + emptyView.subtitle.setText(LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitle2)); emptyView.setVisibility(View.GONE); emptyView.setAnimateLayoutChange(true); emptyView.showProgress(true, false); @@ -261,7 +261,7 @@ public boolean dispatchTouchEvent(MotionEvent event) { searchEditText.setLines(1); searchEditText.setSingleLine(true); searchEditText.setImeOptions(EditorInfo.IME_ACTION_SEARCH | EditorInfo.IME_FLAG_NO_EXTRACT_UI); - searchEditText.setHint(LocaleController.getString("VoipGroupSearchMembers", R.string.VoipGroupSearchMembers)); + searchEditText.setHint(LocaleController.getString(R.string.VoipGroupSearchMembers)); searchEditText.setCursorColor(Theme.getColor(keySearchText)); searchEditText.setCursorSize(AndroidUtilities.dp(20)); searchEditText.setCursorWidth(1.5f); 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 fd3c8011bb..662ad62f7d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/WallpaperUpdater.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/WallpaperUpdater.java @@ -63,15 +63,15 @@ public WallpaperUpdater(Activity activity, BaseFragment fragment, WallpaperUpdat public void showAlert(final boolean fromTheme) { BottomBuilder builder = new BottomBuilder(parentActivity); - builder.addTitle(LocaleController.getString("ChoosePhoto", R.string.ChoosePhoto), true); + builder.addTitle(LocaleController.getString(R.string.ChoosePhoto), true); - String[] items; + CharSequence[] items; int[] icons; if (fromTheme) { - items = new String[]{LocaleController.getString("ChooseTakePhoto", R.string.ChooseTakePhoto), LocaleController.getString("SelectFromGallery", R.string.SelectFromGallery), LocaleController.getString("SelectColor", R.string.SelectColor), LocaleController.getString("Default", R.string.Default)}; + items = new CharSequence[]{LocaleController.getString(R.string.ChooseTakePhoto), LocaleController.getString(R.string.SelectFromGallery), LocaleController.getString(R.string.SelectColor), LocaleController.getString(R.string.Default)}; icons = null; } else { - items = new String[]{LocaleController.getString("ChooseTakePhoto", R.string.ChooseTakePhoto), LocaleController.getString("SelectFromGallery", R.string.SelectFromGallery)}; + items = new CharSequence[]{LocaleController.getString(R.string.ChooseTakePhoto), LocaleController.getString(R.string.SelectFromGallery)}; icons = new int[]{R.drawable.menu_camera, R.drawable.profile_photos}; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/spoilers/SpoilerEffect2.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/spoilers/SpoilerEffect2.java index 6e63555941..539cc0003f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/spoilers/SpoilerEffect2.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/spoilers/SpoilerEffect2.java @@ -1,40 +1,31 @@ package org.telegram.ui.Components.spoilers; -import static org.telegram.messenger.AndroidUtilities.dpf2; - import android.app.Activity; -import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.SurfaceTexture; -import android.hardware.HardwareBuffer; import android.opengl.EGL14; import android.opengl.EGLExt; import android.opengl.GLES20; import android.opengl.GLES31; import android.os.Build; -import android.util.Log; import android.view.TextureView; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import androidx.annotation.NonNull; -import androidx.collection.LongSparseArray; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.FileLog; import org.telegram.messenger.R; import org.telegram.messenger.SharedConfig; import org.telegram.messenger.Utilities; -import org.telegram.ui.Components.RLottieDrawable; import java.util.ArrayList; import java.util.HashMap; -import java.util.Map; -import java.util.Objects; import javax.microedition.khronos.egl.EGL10; import javax.microedition.khronos.egl.EGLConfig; @@ -219,12 +210,10 @@ public void draw(Canvas canvas, View view, int w, int h, float alpha, boolean to if ((index % 4) == 3) { canvas.scale(1, -1, ow / 2f, oh / 2f); } - canvas.translate(w / 2f, h / 2f); if (w > ow || h > oh) { final float scale = Math.max(w / (float) ow, h / (float) oh); canvas.scale(scale, scale); } - canvas.translate(-w / 2f, -h / 2f); if (toBitmap) { Bitmap bitmap = textureView.getBitmap(); if (bitmap != null) { @@ -468,7 +457,7 @@ private void init() { running = false; return; } - GLES31.glShaderSource(vertexShader, RLottieDrawable.readRes(null, R.raw.spoiler_vertex) + "\n// " + Math.random()); + GLES31.glShaderSource(vertexShader, AndroidUtilities.readRes(R.raw.spoiler_vertex) + "\n// " + Math.random()); GLES31.glCompileShader(vertexShader); int[] status = new int[1]; GLES31.glGetShaderiv(vertexShader, GLES31.GL_COMPILE_STATUS, status, 0); @@ -478,7 +467,7 @@ private void init() { running = false; return; } - GLES31.glShaderSource(fragmentShader, RLottieDrawable.readRes(null, R.raw.spoiler_fragment) + "\n// " + Math.random()); + GLES31.glShaderSource(fragmentShader, AndroidUtilities.readRes(R.raw.spoiler_fragment) + "\n// " + Math.random()); GLES31.glCompileShader(fragmentShader); GLES31.glGetShaderiv(fragmentShader, GLES31.GL_COMPILE_STATUS, status, 0); if (status[0] == 0) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/AcceptDeclineView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/AcceptDeclineView.java index 416044e96b..a715744585 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/AcceptDeclineView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/AcceptDeclineView.java @@ -111,9 +111,9 @@ public AcceptDeclineView(@NonNull Context context) { textPaint.setTextSize(AndroidUtilities.dp(11)); textPaint.setColor(Color.WHITE); - String acceptStr = LocaleController.getString("AcceptCall", R.string.AcceptCall); - String declineStr = LocaleController.getString("DeclineCall", R.string.DeclineCall); - String retryStr = LocaleController.getString("RetryCall", R.string.RetryCall); + String acceptStr = LocaleController.getString(R.string.AcceptCall); + String declineStr = LocaleController.getString(R.string.DeclineCall); + String retryStr = LocaleController.getString(R.string.RetryCall); acceptLayout = new StaticLayout(acceptStr, textPaint, (int) textPaint.measureText(acceptStr), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); declineLayout = new StaticLayout(declineStr, textPaint, (int) textPaint.measureText(declineStr), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/EndCloseLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/EndCloseLayout.java index 90ac59d5ba..c5d7611fcd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/EndCloseLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/EndCloseLayout.java @@ -186,7 +186,7 @@ public EndCloseView(@NonNull Context context) { textPaint.setColor(Color.BLACK); setLayerType(View.LAYER_TYPE_HARDWARE, null); setClickable(true); - closeText = LocaleController.getString("Close", R.string.Close); + closeText = LocaleController.getString(R.string.Close); } @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/GroupCallMiniTextureView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/GroupCallMiniTextureView.java index 17e3c88fac..dba657d81f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/GroupCallMiniTextureView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/GroupCallMiniTextureView.java @@ -187,12 +187,12 @@ public GroupCallMiniTextureView(GroupCallRenderersContainer parentContainer, Arr textPaint2.setTextSize(AndroidUtilities.dp(15)); textPaint2.setColor(Color.WHITE); - String videoOnPauseString = LocaleController.getString("VoipVideoOnPause", R.string.VoipVideoOnPause); - StaticLayout staticLayout = new StaticLayout(LocaleController.getString("VoipVideoScreenSharingTwoLines", R.string.VoipVideoScreenSharingTwoLines), textPaint, AndroidUtilities.dp(400), Layout.Alignment.ALIGN_CENTER, 1.0f, 0, false); + String videoOnPauseString = LocaleController.getString(R.string.VoipVideoOnPause); + StaticLayout staticLayout = new StaticLayout(LocaleController.getString(R.string.VoipVideoScreenSharingTwoLines), textPaint, AndroidUtilities.dp(400), Layout.Alignment.ALIGN_CENTER, 1.0f, 0, false); TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(call.chatId); String text = LocaleController.formatPluralString("Participants", MessagesController.getInstance(currentAccount).groupCallVideoMaxParticipants); StaticLayout noVideoLayout = new StaticLayout(LocaleController.formatString("VoipVideoNotAvailable", R.string.VoipVideoNotAvailable, text), textPaint, AndroidUtilities.dp(400), Layout.Alignment.ALIGN_CENTER, 1.0f, 0, false); - String sharingScreenString = LocaleController.getString("VoipVideoScreenSharing", R.string.VoipVideoScreenSharing); + String sharingScreenString = LocaleController.getString(R.string.VoipVideoScreenSharing); float textW = textPaint.measureText(videoOnPauseString); float textW3 = textPaint2.measureText(sharingScreenString); @@ -543,7 +543,7 @@ public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); } }; - stopSharingTextView.setText(LocaleController.getString("VoipVideoScreenStopSharing", R.string.VoipVideoScreenStopSharing)); + stopSharingTextView.setText(LocaleController.getString(R.string.VoipVideoScreenStopSharing)); stopSharingTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); stopSharingTextView.setTypeface(AndroidUtilities.bold()); stopSharingTextView.setPadding(AndroidUtilities.dp(21), 0, AndroidUtilities.dp(21), 0); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/GroupCallRenderersContainer.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/GroupCallRenderersContainer.java index be0da56660..dbf917f2b6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/GroupCallRenderersContainer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/GroupCallRenderersContainer.java @@ -265,13 +265,13 @@ protected void dispatchDraw(Canvas canvas) { pinTextView.setTextColor(Color.WHITE); pinTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); pinTextView.setTypeface(AndroidUtilities.bold()); - pinTextView.setText(LocaleController.getString("CallVideoPin", R.string.CallVideoPin)); + pinTextView.setText(LocaleController.getString(R.string.CallVideoPin)); unpinTextView = new TextView(context); unpinTextView.setTextColor(Color.WHITE); unpinTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); unpinTextView.setTypeface(AndroidUtilities.bold()); - unpinTextView.setText(LocaleController.getString("CallVideoUnpin", R.string.CallVideoUnpin)); + unpinTextView.setText(LocaleController.getString(R.string.CallVideoUnpin)); addView(pinTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/HideEmojiTextView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/HideEmojiTextView.java index 0a349c877e..45481b2949 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/HideEmojiTextView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/HideEmojiTextView.java @@ -24,8 +24,8 @@ public HideEmojiTextView(Context context, VoIPBackgroundProvider backgroundProvi super(context); this.backgroundProvider = backgroundProvider; backgroundProvider.attach(this); - setText(LocaleController.getString("VoipHideEmoji", R.string.VoipHideEmoji)); - setContentDescription(LocaleController.getString("VoipHideEmoji", R.string.VoipHideEmoji)); + setText(LocaleController.getString(R.string.VoipHideEmoji)); + setContentDescription(LocaleController.getString(R.string.VoipHideEmoji)); setTextColor(Color.WHITE); setTypeface(AndroidUtilities.bold()); setPadding(AndroidUtilities.dp(14), AndroidUtilities.dp(4), AndroidUtilities.dp(14), AndroidUtilities.dp(4)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/PrivateVideoPreviewDialog.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/PrivateVideoPreviewDialog.java index 7dfcaa0309..7c93715df2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/PrivateVideoPreviewDialog.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/PrivateVideoPreviewDialog.java @@ -208,7 +208,7 @@ protected void onDraw(Canvas canvas) { positiveButton.setTextColor(Theme.getColor(Theme.key_voipgroup_nameText)); positiveButton.setGravity(Gravity.CENTER); positiveButton.setTypeface(AndroidUtilities.bold()); - positiveButton.setText(LocaleController.getString("VoipShareVideo", R.string.VoipShareVideo)); + positiveButton.setText(LocaleController.getString(R.string.VoipShareVideo)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { positiveButton.setForeground(Theme.createSimpleSelectorRoundRectDrawable(AndroidUtilities.dp(6), Color.TRANSPARENT, ColorUtils.setAlphaComponent(Theme.getColor(Theme.key_voipgroup_nameText), (int) (255 * 0.3f)))); } @@ -240,11 +240,11 @@ protected void onDraw(Canvas canvas) { titles[a].setSingleLine(true); titlesLayout.addView(titles[a], LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT)); if (a == 0 && needScreencast) { - titles[a].setText(LocaleController.getString("VoipPhoneScreen", R.string.VoipPhoneScreen)); + titles[a].setText(LocaleController.getString(R.string.VoipPhoneScreen)); } else if (a == 0 || a == 1 && needScreencast) { - titles[a].setText(LocaleController.getString("VoipFrontCamera", R.string.VoipFrontCamera)); + titles[a].setText(LocaleController.getString(R.string.VoipFrontCamera)); } else { - titles[a].setText(LocaleController.getString("VoipBackCamera", R.string.VoipBackCamera)); + titles[a].setText(LocaleController.getString(R.string.VoipBackCamera)); } int num = a; titles[a].setOnClickListener(view -> viewPager.setCurrentItem(num, true)); @@ -519,7 +519,7 @@ public Object instantiateItem(ViewGroup container, int position) { frameLayout.addView(imageView, LayoutHelper.createFrame(82, 82, Gravity.CENTER, 0, 0, 0, 60)); TextView textView = new TextView(getContext()); - textView.setText(LocaleController.getString("VoipVideoPrivateScreenSharing", R.string.VoipVideoPrivateScreenSharing)); + textView.setText(LocaleController.getString(R.string.VoipVideoPrivateScreenSharing)); textView.setGravity(Gravity.CENTER); textView.setLineSpacing(AndroidUtilities.dp(2), 1.0f); textView.setTextColor(0xffffffff); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/PrivateVideoPreviewDialogNew.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/PrivateVideoPreviewDialogNew.java index 37ed264dd9..a48ac9e872 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/PrivateVideoPreviewDialogNew.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/PrivateVideoPreviewDialogNew.java @@ -225,7 +225,7 @@ protected void onDraw(Canvas canvas) { if (positiveButtonDrawText) { int xPos = (getWidth() / 2); int yPos = (int) ((getHeight() / 2) - ((positiveButton.getPaint().descent() + positiveButton.getPaint().ascent()) / 2)); - canvas.drawText(LocaleController.getString("VoipShareVideo", R.string.VoipShareVideo), xPos, yPos, positiveButton.getPaint()); + canvas.drawText(LocaleController.getString(R.string.VoipShareVideo), xPos, yPos, positiveButton.getPaint()); } } }; @@ -238,7 +238,7 @@ protected void onDraw(Canvas canvas) { positiveButton.setGravity(Gravity.CENTER); positiveButton.setTypeface(AndroidUtilities.bold()); positiveButton.getPaint().setTextAlign(Paint.Align.CENTER); - positiveButton.setContentDescription(LocaleController.getString("VoipShareVideo", R.string.VoipShareVideo)); + positiveButton.setContentDescription(LocaleController.getString(R.string.VoipShareVideo)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { positiveButton.setForeground(Theme.createSimpleSelectorRoundRectDrawable(AndroidUtilities.dp(8), Color.TRANSPARENT, ColorUtils.setAlphaComponent(Theme.getColor(Theme.key_voipgroup_nameText), (int) (255 * 0.3f)))); @@ -296,11 +296,11 @@ protected void dispatchDraw(Canvas canvas) { for (int i = 0; i < titles.length; i++) { String text; if (i == 0) { - text = LocaleController.getString("VoipPhoneScreen", R.string.VoipPhoneScreen); + text = LocaleController.getString(R.string.VoipPhoneScreen); } else if (i == 1) { - text = LocaleController.getString("VoipFrontCamera", R.string.VoipFrontCamera); + text = LocaleController.getString(R.string.VoipFrontCamera); } else { - text = LocaleController.getString("VoipBackCamera", R.string.VoipBackCamera); + text = LocaleController.getString(R.string.VoipBackCamera); } titles[i] = new VoIpBitmapTextView(context, text); titles[i].setContentDescription(text); @@ -497,7 +497,7 @@ private void createPages(FrameLayout container) { frameLayout.addView(imageView, LayoutHelper.createFrame(82, 82, Gravity.CENTER, 0, 0, 0, 60)); TextView textView = new TextView(getContext()); - textView.setText(LocaleController.getString("VoipVideoPrivateScreenSharing", R.string.VoipVideoPrivateScreenSharing)); + textView.setText(LocaleController.getString(R.string.VoipVideoPrivateScreenSharing)); textView.setGravity(Gravity.CENTER); textView.setLineSpacing(AndroidUtilities.dp(2), 1.0f); textView.setTextColor(0xffffffff); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/RTMPStreamPipOverlay.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/RTMPStreamPipOverlay.java index 53d5547e5d..3246dd3cfa 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/RTMPStreamPipOverlay.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/RTMPStreamPipOverlay.java @@ -462,6 +462,7 @@ public boolean dispatchTouchEvent(MotionEvent ev) { @Override protected void onConfigurationChanged(Configuration newConfig) { AndroidUtilities.checkDisplaySize(getContext(), newConfig); + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, contentView, windowLayoutParams); bindTextureView(); } @@ -612,6 +613,7 @@ protected void onSizeChanged(int w, int h, int oldw, int oldh) { contentView.setAlpha(0f); contentView.setScaleX(0.1f); contentView.setScaleY(0.1f); + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, contentView, windowLayoutParams); windowManager.addView(contentView, windowLayoutParams); AnimatorSet set = new AnimatorSet(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/RateCallLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/RateCallLayout.java index 6926dfb4ce..00a44271b0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/RateCallLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/RateCallLayout.java @@ -249,7 +249,7 @@ public RateCallContainer(@NonNull Context context, VoIPBackgroundProvider backgr setWillNotDraw(false); titleTextView = new TextView(context); titleTextView.setTextColor(Color.WHITE); - titleTextView.setText(LocaleController.getString("VoipRateCallTitle", R.string.VoipRateCallTitle)); + titleTextView.setText(LocaleController.getString(R.string.VoipRateCallTitle)); titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); titleTextView.setGravity(Gravity.CENTER_HORIZONTAL); titleTextView.setTypeface(AndroidUtilities.bold()); @@ -257,7 +257,7 @@ public RateCallContainer(@NonNull Context context, VoIPBackgroundProvider backgr messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); messageTextView.setTextColor(Color.WHITE); messageTextView.setGravity(Gravity.CENTER_HORIZONTAL); - messageTextView.setText(LocaleController.getString("VoipRateCallDescription", R.string.VoipRateCallDescription)); + messageTextView.setText(LocaleController.getString(R.string.VoipRateCallDescription)); addView(titleTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT, 0, 24, 0, 0)); addView(messageTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT, 0, 50, 0, 0)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPHelper.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPHelper.java index 2454f51240..70fb57d8f6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPHelper.java @@ -1,5 +1,7 @@ package org.telegram.ui.Components.voip; +import static org.telegram.messenger.R.*; + import android.Manifest; import android.annotation.TargetApi; import android.app.Activity; @@ -77,23 +79,23 @@ public static void startCall(TLRPC.User user, boolean videoCall, boolean canVide public static void startCall(TLRPC.User user, boolean videoCall, boolean canVideoCall, final Activity activity, TLRPC.UserFull userFull, AccountInstance accountInstance, boolean confirmed) { if (userFull != null && userFull.phone_calls_private) { new AlertDialog.Builder(activity) - .setTitle(LocaleController.getString("VoipFailed", R.string.VoipFailed)) + .setTitle(LocaleController.getString(R.string.VoipFailed)) .setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("CallNotAvailable", R.string.CallNotAvailable, ContactsController.formatName(user.first_name, user.last_name)))) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), null) + .setPositiveButton(LocaleController.getString(R.string.OK), null) .show(); return; } if (ConnectionsManager.getInstance(UserConfig.selectedAccount).getConnectionState() != ConnectionsManager.ConnectionStateConnected) { boolean isAirplaneMode = Settings.System.getInt(activity.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0; AlertDialog.Builder bldr = new AlertDialog.Builder(activity) - .setTitle(isAirplaneMode ? LocaleController.getString("VoipOfflineAirplaneTitle", R.string.VoipOfflineAirplaneTitle) : LocaleController.getString("VoipOfflineTitle", R.string.VoipOfflineTitle)) - .setMessage(isAirplaneMode ? LocaleController.getString("VoipOfflineAirplane", R.string.VoipOfflineAirplane) : LocaleController.getString("VoipOffline", R.string.VoipOffline)) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + .setTitle(isAirplaneMode ? LocaleController.getString(R.string.VoipOfflineAirplaneTitle) : LocaleController.getString(R.string.VoipOfflineTitle)) + .setMessage(isAirplaneMode ? LocaleController.getString(R.string.VoipOfflineAirplane) : LocaleController.getString(R.string.VoipOffline)) + .setPositiveButton(LocaleController.getString(R.string.OK), null); if (isAirplaneMode) { final Intent settingsIntent = new Intent(Settings.ACTION_AIRPLANE_MODE_SETTINGS); if (settingsIntent.resolveActivity(activity.getPackageManager()) != null) { - bldr.setNeutralButton(LocaleController.getString("VoipOfflineOpenSettings", R.string.VoipOfflineOpenSettings), (dialog, which) -> activity.startActivity(settingsIntent)); + bldr.setNeutralButton(LocaleController.getString(R.string.VoipOfflineOpenSettings), (dialog, which) -> activity.startActivity(settingsIntent)); } } try { @@ -106,11 +108,11 @@ public static void startCall(TLRPC.User user, boolean videoCall, boolean canVide if (!confirmed && NekoConfig.askBeforeCall.Bool()) { new AlertDialog.Builder(activity) - .setTitle(LocaleController.getString("ConfirmCall", R.string.ConfirmCall)) + .setTitle(LocaleController.getString(R.string.ConfirmCall)) .setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("CallTo", R.string.CallTo, ContactsController.formatName(user.first_name, user.last_name)))) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialog, which) -> startCall(user, videoCall, canVideoCall, activity, userFull, accountInstance, true)) - .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null) + .setPositiveButton(LocaleController.getString(R.string.OK), (dialog, which) -> startCall(user, videoCall, canVideoCall, activity, userFull, accountInstance, true)) + .setNegativeButton(LocaleController.getString(R.string.Cancel), null) .show(); return; } @@ -144,13 +146,13 @@ public static void startCall(TLRPC.Chat chat, TLRPC.InputPeer peer, String hash, if (ConnectionsManager.getInstance(UserConfig.selectedAccount).getConnectionState() != ConnectionsManager.ConnectionStateConnected) { boolean isAirplaneMode = Settings.System.getInt(activity.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0; AlertDialog.Builder bldr = new AlertDialog.Builder(activity) - .setTitle(isAirplaneMode ? LocaleController.getString("VoipOfflineAirplaneTitle", R.string.VoipOfflineAirplaneTitle) : LocaleController.getString("VoipOfflineTitle", R.string.VoipOfflineTitle)) - .setMessage(isAirplaneMode ? LocaleController.getString("VoipGroupOfflineAirplane", R.string.VoipGroupOfflineAirplane) : LocaleController.getString("VoipGroupOffline", R.string.VoipGroupOffline)) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + .setTitle(isAirplaneMode ? LocaleController.getString(R.string.VoipOfflineAirplaneTitle) : LocaleController.getString(R.string.VoipOfflineTitle)) + .setMessage(isAirplaneMode ? LocaleController.getString(R.string.VoipGroupOfflineAirplane) : LocaleController.getString(R.string.VoipGroupOffline)) + .setPositiveButton(LocaleController.getString(R.string.OK), null); if (isAirplaneMode) { final Intent settingsIntent = new Intent(Settings.ACTION_AIRPLANE_MODE_SETTINGS); if (settingsIntent.resolveActivity(activity.getPackageManager()) != null) { - bldr.setNeutralButton(LocaleController.getString("VoipOfflineOpenSettings", R.string.VoipOfflineOpenSettings), (dialog, which) -> activity.startActivity(settingsIntent)); + bldr.setNeutralButton(LocaleController.getString(R.string.VoipOfflineOpenSettings), (dialog, which) -> activity.startActivity(settingsIntent)); } } try { @@ -218,9 +220,9 @@ private static void initiateCall(TLRPC.User user, TLRPC.Chat chat, String hash, } new AlertDialog.Builder(activity) - .setTitle(callerId < 0 ? LocaleController.getString("VoipOngoingChatAlertTitle", R.string.VoipOngoingChatAlertTitle) : LocaleController.getString("VoipOngoingAlertTitle", R.string.VoipOngoingAlertTitle)) + .setTitle(callerId < 0 ? LocaleController.getString(R.string.VoipOngoingChatAlertTitle) : LocaleController.getString(R.string.VoipOngoingAlertTitle)) .setMessage(AndroidUtilities.replaceTags(LocaleController.formatString(key1, key2, oldName, newName))) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialog, which) -> { + .setPositiveButton(LocaleController.getString(R.string.OK), (dialog, which) -> { if (VoIPService.getSharedInstance() != null) { VoIPService.getSharedInstance().hangUp(() -> { lastCallTime = 0; @@ -230,7 +232,7 @@ private static void initiateCall(TLRPC.User user, TLRPC.Chat chat, String hash, doInitiateCall(user, chat, hash, null, false, videoCall, canVideoCall, createCall, activity, fragment, accountInstance, true, true); } }) - .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null) + .setNegativeButton(LocaleController.getString(R.string.Cancel), null) .show(); } else { if (user != null || !(activity instanceof LaunchActivity)) { @@ -299,10 +301,10 @@ protected void onJoin() { } if (checkAnonymous && !hasFewPeers && peer instanceof TLRPC.TL_inputPeerUser && ChatObject.shouldSendAnonymously(chat) && (!ChatObject.isChannel(chat) || chat.megagroup)) { new AlertDialog.Builder(activity) - .setTitle(ChatObject.isChannelOrGiga(chat) ? LocaleController.getString("VoipChannelVoiceChat", R.string.VoipChannelVoiceChat) : LocaleController.getString("VoipGroupVoiceChat", R.string.VoipGroupVoiceChat)) - .setMessage(ChatObject.isChannelOrGiga(chat) ? LocaleController.getString("VoipChannelJoinAnonymouseAlert", R.string.VoipChannelJoinAnonymouseAlert) : LocaleController.getString("VoipGroupJoinAnonymouseAlert", R.string.VoipGroupJoinAnonymouseAlert)) - .setPositiveButton(LocaleController.getString("VoipChatJoin", R.string.VoipChatJoin), (dialog, which) -> doInitiateCall(user, chat, hash, peer, false, videoCall, canVideoCall, createCall, activity, fragment, accountInstance, false, false)) - .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null) + .setTitle(ChatObject.isChannelOrGiga(chat) ? LocaleController.getString(R.string.VoipChannelVoiceChat) : LocaleController.getString(R.string.VoipGroupVoiceChat)) + .setMessage(ChatObject.isChannelOrGiga(chat) ? LocaleController.getString(R.string.VoipChannelJoinAnonymouseAlert) : LocaleController.getString(R.string.VoipGroupJoinAnonymouseAlert)) + .setPositiveButton(LocaleController.getString(R.string.VoipChatJoin), (dialog, which) -> doInitiateCall(user, chat, hash, peer, false, videoCall, canVideoCall, createCall, activity, fragment, accountInstance, false, false)) + .setNegativeButton(LocaleController.getString(R.string.Cancel), null) .show(); return; } @@ -366,20 +368,20 @@ protected void onJoin() { public static void permissionDenied(final Activity activity, final Runnable onFinish, int code) { boolean mergedRequest = code == 102; if (!activity.shouldShowRequestPermissionRationale(Manifest.permission.RECORD_AUDIO) || mergedRequest && !activity.shouldShowRequestPermissionRationale(Manifest.permission.CAMERA)) { - AlertDialog.Builder dlg = new AlertDialog.Builder(activity) - - .setMessage(AndroidUtilities.replaceTags(mergedRequest ? LocaleController.getString("VoipNeedMicCameraPermissionWithHint", R.string.VoipNeedMicCameraPermissionWithHint) : LocaleController.getString("VoipNeedMicPermissionWithHint", R.string.VoipNeedMicPermissionWithHint))) - .setPositiveButton(LocaleController.getString("Settings", R.string.Settings), (dialog, which) -> { - Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); - Uri uri = Uri.fromParts("package", activity.getPackageName(), null); - intent.setData(uri); - activity.startActivity(intent); - }) - .setNegativeButton(LocaleController.getString("ContactsPermissionAlertNotNow", R.string.ContactsPermissionAlertNotNow), null) - .setOnDismissListener(dialog -> { - if (onFinish != null) - onFinish.run(); - }).setTopAnimation(mergedRequest ? R.raw.permission_request_camera : R.raw.permission_request_microphone, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)); + AlertDialog.Builder dlg = new AlertDialog.Builder(activity) + .setMessage(AndroidUtilities.replaceTags(mergedRequest ? LocaleController.getString(R.string.VoipNeedMicCameraPermissionWithHint) : LocaleController.getString(R.string.VoipNeedMicPermissionWithHint))) + .setPositiveButton(LocaleController.getString(R.string.Settings), (dialog, which) -> { + Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + Uri uri = Uri.fromParts("package", activity.getPackageName(), null); + intent.setData(uri); + activity.startActivity(intent); + }) + .setNegativeButton(LocaleController.getString(R.string.ContactsPermissionAlertNotNow), null) + .setOnDismissListener(dialog -> { + if (onFinish != null) + onFinish.run(); + }) + .setTopAnimation(mergedRequest ? R.raw.permission_request_camera : R.raw.permission_request_microphone, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)); dlg.show(); } @@ -454,12 +456,12 @@ public static void showRateAlert(final Context context, final Runnable onDismiss int pad = AndroidUtilities.dp(16); alertView.setPadding(pad, pad, pad, 0); - TextView text = new TextView(context); - text.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16); - text.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); - text.setGravity(Gravity.CENTER); - text.setText(LocaleController.getString("VoipRateCallAlert", R.string.VoipRateCallAlert)); - alertView.addView(text); + TextView text = new TextView(context); + text.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16); + text.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); + text.setGravity(Gravity.CENTER); + text.setText(LocaleController.getString(R.string.VoipRateCallAlert)); + alertView.addView(text); final BetterRatingView bar = new BetterRatingView(context); alertView.addView(bar, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 0, 16, 0, 0)); @@ -472,54 +474,54 @@ public static void showRateAlert(final Context context, final Runnable onDismiss check.setChecked(!check.isChecked(), true); }; - final String[] problems = {isVideo ? "distorted_video" : null, isVideo ? "pixelated_video" : null, "echo", "noise", "interruptions", "distorted_speech", "silent_local", "silent_remote", "dropped"}; - for (int i = 0; i < problems.length; i++) { - if (problems[i] == null) { - continue; - } - CheckBoxCell check = new CheckBoxCell(context, 1); - check.setClipToPadding(false); - check.setTag(problems[i]); - String label = null; - switch (i) { - case 0: - label = LocaleController.getString("RateCallVideoDistorted", R.string.RateCallVideoDistorted); - break; - case 1: - label = LocaleController.getString("RateCallVideoPixelated", R.string.RateCallVideoPixelated); - break; - case 2: - label = LocaleController.getString("RateCallEcho", R.string.RateCallEcho); - break; - case 3: - label = LocaleController.getString("RateCallNoise", R.string.RateCallNoise); - break; - case 4: - label = LocaleController.getString("RateCallInterruptions", R.string.RateCallInterruptions); - break; - case 5: - label = LocaleController.getString("RateCallDistorted", R.string.RateCallDistorted); - break; - case 6: - label = LocaleController.getString("RateCallSilentLocal", R.string.RateCallSilentLocal); - break; - case 7: - label = LocaleController.getString("RateCallSilentRemote", R.string.RateCallSilentRemote); - break; - case 8: - label = LocaleController.getString("RateCallDropped", R.string.RateCallDropped); - break; - } - check.setText(label, null, false, false); - check.setOnClickListener(problemCheckboxClickListener); - check.setTag(problems[i]); - problemsWrap.addView(check); - } - alertView.addView(problemsWrap, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, -8, 0, -8, 0)); - problemsWrap.setVisibility(View.GONE); + final String[] problems = {isVideo ? "distorted_video" : null, isVideo ? "pixelated_video" : null, "echo", "noise", "interruptions", "distorted_speech", "silent_local", "silent_remote", "dropped"}; + for (int i = 0; i < problems.length; i++) { + if (problems[i] == null) { + continue; + } + CheckBoxCell check = new CheckBoxCell(context, 1); + check.setClipToPadding(false); + check.setTag(problems[i]); + String label = null; + switch (i) { + case 0: + label = LocaleController.getString(R.string.RateCallVideoDistorted); + break; + case 1: + label = LocaleController.getString(R.string.RateCallVideoPixelated); + break; + case 2: + label = LocaleController.getString(R.string.RateCallEcho); + break; + case 3: + label = LocaleController.getString(R.string.RateCallNoise); + break; + case 4: + label = LocaleController.getString(R.string.RateCallInterruptions); + break; + case 5: + label = LocaleController.getString(R.string.RateCallDistorted); + break; + case 6: + label = LocaleController.getString(R.string.RateCallSilentLocal); + break; + case 7: + label = LocaleController.getString(R.string.RateCallSilentRemote); + break; + case 8: + label = LocaleController.getString(R.string.RateCallDropped); + break; + } + check.setText(label, null, false, false); + check.setOnClickListener(problemCheckboxClickListener); + check.setTag(problems[i]); + problemsWrap.addView(check); + } + alertView.addView(problemsWrap, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, -8, 0, -8, 0)); + problemsWrap.setVisibility(View.GONE); final EditTextBoldCursor commentBox = new EditTextBoldCursor(context); - commentBox.setHint(LocaleController.getString("VoipFeedbackCommentHint", R.string.VoipFeedbackCommentHint)); + commentBox.setHint(LocaleController.getString(R.string.VoipFeedbackCommentHint)); commentBox.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_MULTI_LINE); commentBox.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); commentBox.setHintTextColor(Theme.getColor(Theme.key_dialogTextHint)); @@ -530,24 +532,24 @@ public static void showRateAlert(final Context context, final Runnable onDismiss commentBox.setVisibility(View.GONE); alertView.addView(commentBox, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 8, 8, 8, 0)); - final boolean[] includeLogs = {true}; - final CheckBoxCell checkbox = new CheckBoxCell(context, 1); - View.OnClickListener checkClickListener = v -> { - includeLogs[0] = !includeLogs[0]; - checkbox.setChecked(includeLogs[0], true); - }; - checkbox.setText(LocaleController.getString("CallReportIncludeLogs", R.string.CallReportIncludeLogs), null, true, false); - checkbox.setClipToPadding(false); - checkbox.setOnClickListener(checkClickListener); - alertView.addView(checkbox, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, -8, 0, -8, 0)); - - final TextView logsText = new TextView(context); - logsText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14); - logsText.setTextColor(Theme.getColor(Theme.key_dialogTextGray3)); - logsText.setText(LocaleController.getString("CallReportLogsExplain", R.string.CallReportLogsExplain)); - logsText.setPadding(AndroidUtilities.dp(8), 0, AndroidUtilities.dp(8), 0); - logsText.setOnClickListener(checkClickListener); - alertView.addView(logsText); + final boolean[] includeLogs = {true}; + final CheckBoxCell checkbox = new CheckBoxCell(context, 1); + View.OnClickListener checkClickListener = v -> { + includeLogs[0] = !includeLogs[0]; + checkbox.setChecked(includeLogs[0], true); + }; + checkbox.setText(LocaleController.getString(R.string.CallReportIncludeLogs), null, true, false); + checkbox.setClipToPadding(false); + checkbox.setOnClickListener(checkClickListener); + alertView.addView(checkbox, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, -8, 0, -8, 0)); + + final TextView logsText = new TextView(context); + logsText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14); + logsText.setTextColor(Theme.getColor(Theme.key_dialogTextGray3)); + logsText.setText(LocaleController.getString(R.string.CallReportLogsExplain)); + logsText.setPadding(AndroidUtilities.dp(8), 0, AndroidUtilities.dp(8), 0); + logsText.setOnClickListener(checkClickListener); + alertView.addView(logsText); checkbox.setVisibility(View.GONE); logsText.setVisibility(View.GONE); @@ -555,53 +557,53 @@ public static void showRateAlert(final Context context, final Runnable onDismiss includeLogs[0] = false; } - final AlertDialog alert = new AlertDialog.Builder(context) - .setTitle(LocaleController.getString("CallMessageReportProblem", R.string.CallMessageReportProblem)) - .setView(alertView) - .setPositiveButton(LocaleController.getString("Send", R.string.Send), (dialog, which) -> { - //SendMessagesHelper.getInstance(currentAccount).sendMessage(commentBox.getText().toString(), VOIP_SUPPORT_ID, null, null, true, null, null, null); - }) - .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null) - .setOnDismissListener(dialog -> { - if (onDismiss != null) - onDismiss.run(); - }) - .create(); - if (BuildVars.LOGS_ENABLED && log.exists()) { - alert.setNeutralButton("Send log", (dialog, which) -> { - Intent intent = new Intent(context, LaunchActivity.class); - intent.setAction(Intent.ACTION_SEND); - intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(log)); - context.startActivity(intent); - }); - } - alert.show(); - alert.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); - - final View btn = alert.getButton(DialogInterface.BUTTON_POSITIVE); - btn.setEnabled(false); - bar.setOnRatingChangeListener(rating -> { - btn.setEnabled(rating > 0); - /*commentBox.setHint(rating<4 ? LocaleController.getString("CallReportHint", R.string.CallReportHint) : LocaleController.getString("VoipFeedbackCommentHint", R.string.VoipFeedbackCommentHint)); + final AlertDialog alert = new AlertDialog.Builder(context) + .setTitle(LocaleController.getString(R.string.CallMessageReportProblem)) + .setView(alertView) + .setPositiveButton(LocaleController.getString(R.string.Send), (dialog, which) -> { + //SendMessagesHelper.getInstance(currentAccount).sendMessage(commentBox.getText().toString(), VOIP_SUPPORT_ID, null, null, true, null, null, null); + }) + .setNegativeButton(LocaleController.getString(R.string.Cancel), null) + .setOnDismissListener(dialog -> { + if (onDismiss != null) + onDismiss.run(); + }) + .create(); + if (BuildVars.LOGS_ENABLED && log.exists()) { + alert.setNeutralButton("Send log", (dialog, which) -> { + Intent intent = new Intent(context, LaunchActivity.class); + intent.setAction(Intent.ACTION_SEND); + intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(log)); + context.startActivity(intent); + }); + } + alert.show(); + alert.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); + + final View btn = alert.getButton(DialogInterface.BUTTON_POSITIVE); + btn.setEnabled(false); + bar.setOnRatingChangeListener(rating -> { + btn.setEnabled(rating > 0); + /*commentBox.setHint(rating<4 ? LocaleController.getString(R.string.CallReportHint) : LocaleController.getString(R.string.VoipFeedbackCommentHint)); commentBox.setVisibility(rating < 5 && rating > 0 ? View.VISIBLE : View.GONE); if (commentBox.getVisibility() == View.GONE) { ((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(commentBox.getWindowToken(), 0); } */ - ((TextView) btn).setText((rating < 4 ? LocaleController.getString("Next", R.string.Next) : LocaleController.getString("Send", R.string.Send)).toUpperCase()); - }); - btn.setOnClickListener(v -> { - int rating = bar.getRating(); - if (rating >= 4 || page[0] == 1) { - final int currentAccount = UserConfig.selectedAccount; - final TLRPC.TL_phone_setCallRating req = new TLRPC.TL_phone_setCallRating(); - req.rating = bar.getRating(); - ArrayList problemTags = new ArrayList<>(); - for (int i = 0; i < problemsWrap.getChildCount(); i++) { - CheckBoxCell check = (CheckBoxCell) problemsWrap.getChildAt(i); - if (check.isChecked()) - problemTags.add("#" + check.getTag()); - } + ((TextView) btn).setText((rating < 4 ? LocaleController.getString(R.string.Next) : LocaleController.getString(R.string.Send)).toUpperCase()); + }); + btn.setOnClickListener(v -> { + int rating = bar.getRating(); + if (rating >= 4 || page[0] == 1) { + final int currentAccount = UserConfig.selectedAccount; + final TLRPC.TL_phone_setCallRating req = new TLRPC.TL_phone_setCallRating(); + req.rating = bar.getRating(); + ArrayList problemTags = new ArrayList<>(); + for (int i = 0; i < problemsWrap.getChildCount(); i++) { + CheckBoxCell check = (CheckBoxCell) problemsWrap.getChildAt(i); + if (check.isChecked()) + problemTags.add("#" + check.getTag()); + } if (req.rating < 5) { req.comment = commentBox.getText().toString(); @@ -623,23 +625,23 @@ public static void showRateAlert(final Context context, final Runnable onDismiss if (includeLogs[0] && log.exists() && req.rating < 4) { AccountInstance accountInstance = AccountInstance.getInstance(UserConfig.selectedAccount); SendMessagesHelper.prepareSendingDocument(accountInstance, log.getAbsolutePath(), log.getAbsolutePath(), null, TextUtils.join(" ", problemTags), "text/plain", VOIP_SUPPORT_ID, null, null, null, null, null, true, 0, null, null, 0, false); - Toast.makeText(context, LocaleController.getString("CallReportSent", R.string.CallReportSent), Toast.LENGTH_LONG).show(); + Toast.makeText(context, LocaleController.getString(R.string.CallReportSent), Toast.LENGTH_LONG).show(); } }); alert.dismiss(); } else { page[0] = 1; bar.setVisibility(View.GONE); - //text.setText(LocaleController.getString("CallReportHint", R.string.CallReportHint)); + //text.setText(LocaleController.getString(R.string.CallReportHint)); text.setVisibility(View.GONE); - alert.setTitle(LocaleController.getString("CallReportHint", R.string.CallReportHint)); + alert.setTitle(LocaleController.getString(R.string.CallReportHint)); commentBox.setVisibility(View.VISIBLE); if (log.exists()) { checkbox.setVisibility(View.VISIBLE); logsText.setVisibility(View.VISIBLE); } problemsWrap.setVisibility(View.VISIBLE); - ((TextView) btn).setText(LocaleController.getString("Send", R.string.Send).toUpperCase()); + ((TextView) btn).setText(LocaleController.getString(R.string.Send).toUpperCase()); } }); } @@ -707,11 +709,11 @@ public static void showCallDebugSettings(final Context context) { ll.addView(connectionServiceCell); } - new AlertDialog.Builder(context) - .setTitle(LocaleController.getString("DebugMenuCallSettings", R.string.DebugMenuCallSettings)) - .setView(ll) - .show(); - } + new AlertDialog.Builder(context) + .setTitle(LocaleController.getString(R.string.DebugMenuCallSettings)) + .setView(ll) + .show(); + } public static int getDataSavingDefault() { boolean low = DownloadController.getInstance(0).lowPreset.lessCallData, diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPPiPView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPPiPView.java index dd39c2dab5..a764d08690 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPPiPView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPPiPView.java @@ -320,13 +320,13 @@ protected void onDraw(Canvas canvas) { closeIcon = new ImageView(context); closeIcon.setImageResource(R.drawable.pip_close); closeIcon.setPadding(AndroidUtilities.dp(8), AndroidUtilities.dp(8), AndroidUtilities.dp(8), AndroidUtilities.dp(8)); - closeIcon.setContentDescription(LocaleController.getString("Close", R.string.Close)); + closeIcon.setContentDescription(LocaleController.getString(R.string.Close)); floatingView.addView(closeIcon, LayoutHelper.createFrame(40, 40, Gravity.TOP | Gravity.RIGHT, 4, 4, 4, 0)); enlargeIcon = new ImageView(context); enlargeIcon.setImageResource(R.drawable.pip_enlarge); enlargeIcon.setPadding(AndroidUtilities.dp(8), AndroidUtilities.dp(8), AndroidUtilities.dp(8), AndroidUtilities.dp(8)); - enlargeIcon.setContentDescription(LocaleController.getString("Open", R.string.Open)); + enlargeIcon.setContentDescription(LocaleController.getString(R.string.Open)); floatingView.addView(enlargeIcon, LayoutHelper.createFrame(40, 40, Gravity.TOP | Gravity.LEFT, 4, 4, 4, 0)); closeIcon.setOnClickListener((v) -> { @@ -687,6 +687,7 @@ private void expand(boolean expanded) { layoutParams.x = (int) (windowLayoutParams.x - (widthExpanded - widthNormal) * cX); layoutParams.y = (int) (windowLayoutParams.y - (heightExpanded - heightNormal) * cY); + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, pipViewExpanded.windowView, layoutParams); windowManager.addView(pipViewExpanded.windowView, layoutParams); pipViewExpanded.windowView.setAlpha(1f); pipViewExpanded.windowLayoutParams = layoutParams; @@ -784,6 +785,7 @@ public void onAnimationEnd(Animator animation) { } swapRender(expandedInstance, instance); instance.windowView.setAlpha(1f); + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, instance.windowView, instance.windowLayoutParams); windowManager.addView(instance.windowView, instance.windowLayoutParams); AndroidUtilities.runOnUIThread(() -> { if (instance == null || expandedInstance == null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPStatusTextView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPStatusTextView.java index a023efd707..c60b5caa96 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPStatusTextView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPStatusTextView.java @@ -80,7 +80,7 @@ protected void onDraw(Canvas canvas) { badConnectionTextView.setTextColor(Color.WHITE); badConnectionTextView.setGravity(Gravity.CENTER_HORIZONTAL); badConnectionTextView.setPadding(AndroidUtilities.dp(12), AndroidUtilities.dp(2), AndroidUtilities.dp(12), AndroidUtilities.dp(2)); - badConnectionTextView.setText(LocaleController.getString("VoipWeakNetwork", R.string.VoipWeakNetwork)); + badConnectionTextView.setText(LocaleController.getString(R.string.VoipWeakNetwork)); badConnectionLayer.addView(badConnectionTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 0, 0, 0, 0)); badConnectionLayer.setVisibility(View.GONE); addView(badConnectionLayer, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 44, 0, 0)); @@ -91,7 +91,7 @@ protected void onDraw(Canvas canvas) { reconnectTextView.setGravity(Gravity.CENTER_HORIZONTAL); addView(reconnectTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 22, 0, 0)); - SpannableStringBuilder ssb = new SpannableStringBuilder(LocaleController.getString("VoipReconnecting", R.string.VoipReconnecting)); + SpannableStringBuilder ssb = new SpannableStringBuilder(LocaleController.getString(R.string.VoipReconnecting)); SpannableString ell = new SpannableString("."); ell.setSpan(new VoIPEllipsizeSpan(reconnectTextView), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); ssb.append(ell); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPTextureView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPTextureView.java index 9507ec6705..8f69532067 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPTextureView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPTextureView.java @@ -167,7 +167,7 @@ protected void onSizeChanged(int w, int h, int oldw, int oldh) { screencastView.addView(screencastImage, LayoutHelper.createFrame(82, 82, Gravity.CENTER, 0, 0, 0, 60)); screencastText = new TextView(getContext()); - screencastText.setText(LocaleController.getString("VoipVideoScreenSharing", R.string.VoipVideoScreenSharing)); + screencastText.setText(LocaleController.getString(R.string.VoipVideoScreenSharing)); screencastText.setGravity(Gravity.CENTER); screencastText.setLineSpacing(AndroidUtilities.dp(2), 1.0f); screencastText.setTextColor(0xffffffff); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIpGradientLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIpGradientLayout.java index 0dd78bb059..f6388be534 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIpGradientLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIpGradientLayout.java @@ -328,7 +328,8 @@ protected void onDraw(Canvas canvas) { float halfWidth = getWidth() / 2f; float halfHeight = getHeight() / 2f; canvas.save(); - canvas.scale(backgroundProvider.scale, backgroundProvider.scale, halfWidth, halfHeight); + final float scale = (float) Math.sqrt(halfWidth * halfWidth + halfHeight * halfWidth) / Math.min(halfHeight, halfWidth); + canvas.scale(scale, scale, halfWidth, halfHeight); canvas.rotate(backgroundProvider.getDegree(), halfWidth, halfHeight); backgroundProvider.getLightCanvas().drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIpSwitchLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIpSwitchLayout.java index 40a786b537..42ee95fa03 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIpSwitchLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIpSwitchLayout.java @@ -78,26 +78,26 @@ private void setText(Type type, boolean isSelectedState) { switch (type) { case MICRO: if (isSelectedState) { - newText = LocaleController.getString("VoipUnmute", R.string.VoipUnmute); + newText = LocaleController.getString(R.string.VoipUnmute); } else { - newText = LocaleController.getString("VoipMute", R.string.VoipMute); + newText = LocaleController.getString(R.string.VoipMute); } break; case CAMERA: - newText = LocaleController.getString("VoipFlip", R.string.VoipFlip); + newText = LocaleController.getString(R.string.VoipFlip); break; case VIDEO: if (isSelectedState) { - newText = LocaleController.getString("VoipStartVideo", R.string.VoipStartVideo); + newText = LocaleController.getString(R.string.VoipStartVideo); } else { - newText = LocaleController.getString("VoipStopVideo", R.string.VoipStopVideo); + newText = LocaleController.getString(R.string.VoipStopVideo); } break; case BLUETOOTH: - newText = LocaleController.getString("VoipAudioRoutingBluetooth", R.string.VoipAudioRoutingBluetooth); + newText = LocaleController.getString(R.string.VoipAudioRoutingBluetooth); break; case SPEAKER: - newText = LocaleController.getString("VoipSpeaker", R.string.VoipSpeaker); + newText = LocaleController.getString(R.string.VoipSpeaker); break; default: newText = ""; @@ -272,6 +272,11 @@ public static class VoIpButtonView extends View { private final VoIPBackgroundProvider backgroundProvider; public void setSelectedState(boolean selectedState, boolean animate, Type type) { + if (animator != null && animator.isRunning()) { + animator.removeAllUpdateListeners(); + animator.cancel(); + animate = false; + } if (animate) { if (singleIcon != null) { if (animator != null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ContactAddActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ContactAddActivity.java index 11789ed70f..0d308b07f9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ContactAddActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ContactAddActivity.java @@ -171,9 +171,9 @@ public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); if (addContact) { - actionBar.setTitle(LocaleController.getString("NewContact", R.string.NewContact)); + actionBar.setTitle(LocaleController.getString(R.string.NewContact)); } else { - actionBar.setTitle(LocaleController.getString("EditContact", R.string.EditContact)); + actionBar.setTitle(LocaleController.getString(R.string.EditContact)); } actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -202,7 +202,7 @@ public void onItemClick(int id) { }); ActionBarMenu menu = actionBar.createMenu(); - doneButton = menu.addItem(done_button, LocaleController.getString("Done", R.string.Done).toUpperCase()); + doneButton = menu.addItem(done_button, LocaleController.getString(R.string.Done).toUpperCase()); fragmentView = new ScrollView(context); fragmentView.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); @@ -279,7 +279,7 @@ protected Theme.ResourcesProvider getResourcesProvider() { firstNameField.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); firstNameField.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); firstNameField.setImeOptions(EditorInfo.IME_ACTION_NEXT); - firstNameField.setHint(LocaleController.getString("FirstName", R.string.FirstName)); + firstNameField.setHint(LocaleController.getString(R.string.FirstName)); firstNameField.setCursorColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); firstNameField.setCursorSize(AndroidUtilities.dp(20)); firstNameField.setCursorWidth(1.5f); @@ -321,7 +321,7 @@ protected Theme.ResourcesProvider getResourcesProvider() { lastNameField.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); lastNameField.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); lastNameField.setImeOptions(EditorInfo.IME_ACTION_DONE); - lastNameField.setHint(LocaleController.getString("LastName", R.string.LastName)); + lastNameField.setHint(LocaleController.getString(R.string.LastName)); lastNameField.setCursorColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); lastNameField.setCursorSize(AndroidUtilities.dp(20)); lastNameField.setCursorWidth(1.5f); @@ -361,7 +361,7 @@ protected Theme.ResourcesProvider getResourcesProvider() { checkBoxCell.setBackgroundDrawable(Theme.getSelectorDrawable(false)); CharSequence firstName = UserObject.getFirstName(user); firstName = Emoji.replaceEmoji(firstName, infoTextView.getPaint().getFontMetricsInt(), AndroidUtilities.dp(12), false); - checkBoxCell.setText(AndroidUtilities.replaceCharSequence("%1$s", AndroidUtilities.replaceTags(LocaleController.getString("SharePhoneNumberWith", R.string.SharePhoneNumberWith)), firstName), "", true, false); + checkBoxCell.setText(AndroidUtilities.replaceCharSequence("%1$s", AndroidUtilities.replaceTags(LocaleController.getString(R.string.SharePhoneNumberWith)), firstName), "", true, false); checkBoxCell.setPadding(AndroidUtilities.dp(7), 0, AndroidUtilities.dp(7), 0); checkBoxCell.setOnClickListener(v -> checkBoxCell.setChecked(!checkBoxCell.isChecked(), true)); checkBoxCell.setChecked(!NaConfig.INSTANCE.getDoNotShareMyPhoneNumber().Bool(), false); @@ -447,15 +447,15 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto } oldAvatarView.setForUserOrChat(user.photo, avatarDrawable); oldPhotoCell.addView(oldAvatarView, LayoutHelper.createFrame(30, 30, Gravity.CENTER_VERTICAL, 21, 0, 21, 0)); - oldPhotoCell.setText(LocaleController.getString("ResetToOriginalPhoto", R.string.ResetToOriginalPhoto), false); + oldPhotoCell.setText(LocaleController.getString(R.string.ResetToOriginalPhoto), false); oldPhotoCell.getImageView().setVisibility(View.VISIBLE); oldPhotoCell.setBackgroundDrawable(Theme.getSelectorDrawable(false)); oldPhotoCell.setColors(Theme.key_windowBackgroundWhiteBlueIcon, Theme.key_windowBackgroundWhiteBlueButton); oldPhotoCell.setOnClickListener(v -> { AlertsCreator.createSimpleAlert(context, - LocaleController.getString("ResetToOriginalPhotoTitle", R.string.ResetToOriginalPhotoTitle), + LocaleController.getString(R.string.ResetToOriginalPhotoTitle), LocaleController.formatString("ResetToOriginalPhotoMessage", R.string.ResetToOriginalPhotoMessage, user.first_name), - LocaleController.getString("Reset", R.string.Reset), () -> { + LocaleController.getString(R.string.Reset), () -> { avatar = null; sendPhotoChangedRequest(null, null,null, null, null, 0, TYPE_SET); @@ -575,10 +575,10 @@ private void updateAvatarLayout() { return; } if (TextUtils.isEmpty(getPhone())) { - nameTextView.setText(LocaleController.getString("MobileHidden", R.string.MobileHidden)); + nameTextView.setText(LocaleController.getString(R.string.MobileHidden)); CharSequence firstName = UserObject.getFirstName(user); firstName = Emoji.replaceEmoji(firstName, infoTextView.getPaint().getFontMetricsInt(), AndroidUtilities.dp(12), false); - infoTextView.setText(AndroidUtilities.replaceCharSequence("%1$s", AndroidUtilities.replaceTags(LocaleController.getString("MobileHiddenExceptionInfo", R.string.MobileHiddenExceptionInfo)), firstName)); + infoTextView.setText(AndroidUtilities.replaceCharSequence("%1$s", AndroidUtilities.replaceTags(LocaleController.getString(R.string.MobileHiddenExceptionInfo)), firstName)); } else { nameTextView.setText(PhoneFormat.getInstance().format("+" + getPhone())); if (needAddException) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ContactsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ContactsActivity.java index 2d4431209d..08ed03f389 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ContactsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ContactsActivity.java @@ -127,7 +127,6 @@ public class ContactsActivity extends BaseFragment implements NotificationCenter private boolean scrollUpdated; private boolean floatingHidden; - private boolean hasGps; private boolean searchWas; private boolean searching; private boolean onlyUsers; @@ -252,16 +251,16 @@ public View createView(Context context) { actionBar.setAllowOverlayTitle(true); if (destroyAfterSelect) { if (returnAsResult) { - actionBar.setTitle(LocaleController.getString("SelectContact", R.string.SelectContact)); + actionBar.setTitle(LocaleController.getString(R.string.SelectContact)); } else { if (createSecretChat) { - actionBar.setTitle(LocaleController.getString("NewSecretChat", R.string.NewSecretChat)); + actionBar.setTitle(LocaleController.getString(R.string.NewSecretChat)); } else { - actionBar.setTitle(LocaleController.getString("NewMessageTitle", R.string.NewMessageTitle)); + actionBar.setTitle(LocaleController.getString(R.string.NewMessageTitle)); } } } else { - actionBar.setTitle(LocaleController.getString("Contacts", R.string.Contacts)); + actionBar.setTitle(LocaleController.getString(R.string.Contacts)); } actionBar.setBackButtonDrawable(backDrawable = new BackDrawable(false)); @@ -277,7 +276,7 @@ public View createView(Context context) { actionMode.addView(selectedContactsCountTextView, LayoutHelper.createLinear(0, LayoutHelper.MATCH_PARENT, 1.0f, 72, 0, 0, 0)); selectedContactsCountTextView.setOnTouchListener((v, event) -> true); - deleteItem = actionMode.addItemWithWidth(delete, R.drawable.msg_delete, AndroidUtilities.dp(54), LocaleController.getString("Delete", R.string.Delete)); + deleteItem = actionMode.addItemWithWidth(delete, R.drawable.msg_delete, AndroidUtilities.dp(54), LocaleController.getString(R.string.Delete)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -323,7 +322,7 @@ public void onSearchCollapse() { listView.setFastScrollVisible(true); listView.setVerticalScrollBarEnabled(false); listView.getFastScroll().topOffset = AndroidUtilities.dp(90); - // emptyView.setText(LocaleController.getString("NoContacts", R.string.NoContacts)); + // emptyView.setText(LocaleController.getString(R.string.NoContacts)); if (floatingButtonContainer != null) { floatingButtonContainer.setVisibility(View.VISIBLE); floatingHidden = true; @@ -361,11 +360,11 @@ public void onTextChanged(EditText editText) { } } }); - item.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); - item.setContentDescription(LocaleController.getString("Search", R.string.Search)); + item.setSearchFieldHint(LocaleController.getString(R.string.Search)); + item.setContentDescription(LocaleController.getString(R.string.Search)); if (!createSecretChat && !returnAsResult) { sortItem = menu.addItem(sort_button, sortByName ? R.drawable.msg_contacts_time : R.drawable.msg_contacts_name); - sortItem.setContentDescription(LocaleController.getString("AccDescrContactSorting", R.string.AccDescrContactSorting)); + sortItem.setContentDescription(LocaleController.getString(R.string.AccDescrContactSorting)); } searchListViewAdapter = new SearchAdapter(context, ignoreUsers, selectedContacts, allowUsernameSearch, false, false, allowBots, allowSelf, true, 0) { @@ -388,12 +387,7 @@ protected void onSearchProgressChanged() { } else { inviteViaLink = 0; } - try { - hasGps = ApplicationLoader.applicationContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS); - } catch (Throwable e) { - hasGps = false; - } - listViewAdapter = new ContactsAdapter(context, this, onlyUsers ? 1 : 0, needPhonebook, ignoreUsers, selectedContacts, inviteViaLink, hasGps) { + listViewAdapter = new ContactsAdapter(context, this, onlyUsers ? 1 : 0, needPhonebook, ignoreUsers, selectedContacts, inviteViaLink, false) { @Override public void notifyDataSetChanged() { super.notifyDataSetChanged(); @@ -455,8 +449,8 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto emptyView.addView(flickerLoadingView, 0); emptyView.setAnimateLayoutChange(true); emptyView.showProgress(true, false); - emptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); - emptyView.subtitle.setText(LocaleController.getString("SearchEmptyViewFilteredSubtitle2", R.string.SearchEmptyViewFilteredSubtitle2)); + emptyView.title.setText(LocaleController.getString(R.string.NoResult)); + emptyView.subtitle.setText(LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitle2)); frameLayout.addView(emptyView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); listView = new RecyclerListView(context) { @@ -564,33 +558,6 @@ public void setPadding(int left, int top, int right, int bottom) { if (needPhonebook) { if (row == 0) { presentFragment(new InviteContactsActivity()); - } else if (row == 1 && hasGps) { - if (Build.VERSION.SDK_INT >= 23) { - Activity activity = getParentActivity(); - if (activity != null) { - if (activity.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { - presentFragment(new ActionIntroActivity(ActionIntroActivity.ACTION_TYPE_NEARBY_LOCATION_ACCESS)); - return; - } - } - } - boolean enabled = true; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - LocationManager lm = (LocationManager) ApplicationLoader.applicationContext.getSystemService(Context.LOCATION_SERVICE); - enabled = lm.isLocationEnabled(); - } else if (Build.VERSION.SDK_INT >= 19) { - try { - int mode = Settings.Secure.getInt(ApplicationLoader.applicationContext.getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF); - enabled = (mode != Settings.Secure.LOCATION_MODE_OFF); - } catch (Throwable e) { - FileLog.e(e); - } - } - if (!enabled) { - presentFragment(new ActionIntroActivity(ActionIntroActivity.ACTION_TYPE_NEARBY_LOCATION_ENABLED)); - return; - } - presentFragment(new PeopleNearbyActivity()); } } else if (inviteViaLink != 0) { if (row == 0) { @@ -601,13 +568,14 @@ public void setPadding(int left, int top, int right, int bottom) { Bundle args = new Bundle(); presentFragment(new GroupCreateActivity(args), false); } else if (row == 1) { - Bundle args = new Bundle(); - args.putBoolean("onlyUsers", true); - args.putBoolean("destroyAfterSelect", true); - args.putBoolean("createSecretChat", true); - args.putBoolean("allowBots", false); - args.putBoolean("allowSelf", false); - presentFragment(new ContactsActivity(args), false); + AndroidUtilities.requestAdjustNothing(getParentActivity(), getClassGuid()); + new NewContactBottomSheet(ContactsActivity.this, getContext()) { + @Override + public void dismissInternal() { + super.dismissInternal(); + AndroidUtilities.requestAdjustResize(getParentActivity(), classGuid); + } + }.show(); } else if (row == 2) { SharedPreferences preferences = MessagesController.getGlobalMainSettings(); if (!BuildVars.DEBUG_VERSION && preferences.getBoolean("channel_intro", false)) { @@ -654,10 +622,10 @@ public void setPadding(int left, int top, int right, int bottom) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setMessage(LocaleController.getString("InviteUser", R.string.InviteUser)); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); + builder.setMessage(LocaleController.getString(R.string.InviteUser)); + builder.setTitle(LocaleController.getString(R.string.AppName)); final String arg1 = usePhone; - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> { try { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", arg1, null)); intent.putExtra("sms_body", ContactsController.getInstance(currentAccount).getInviteText(1)); @@ -666,7 +634,7 @@ public void setPadding(int left, int top, int right, int bottom) { FileLog.e(e); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); } } @@ -693,13 +661,13 @@ public boolean onItemClick(View view, int position) { ItemOptions filterOptions = ItemOptions.makeOptions(ContactsActivity.this, view) //.setViewAdditionalOffsets(0, AndroidUtilities.dp(8), 0, 0) .setScrimViewBackground(Theme.createRoundRectDrawable(0, 0, Theme.getColor(Theme.key_windowBackgroundWhite))) - .add(R.drawable.msg_discussion, LocaleController.getString("SendMessage", R.string.SendMessage), () -> { + .add(R.drawable.msg_discussion, LocaleController.getString(R.string.SendMessage), () -> { presentFragment(ChatActivity.of(dialogId)); }) - .add(R.drawable.msg_openprofile, LocaleController.getString("OpenProfile", R.string.OpenProfile), () -> { + .add(R.drawable.msg_openprofile, LocaleController.getString(R.string.OpenProfile), () -> { presentFragment(ProfileActivity.of(dialogId)); }) - .addIf(!muted, R.drawable.msg_mute, LocaleController.getString("NotificationsStoryMute", R.string.NotificationsStoryMute), () -> { + .addIf(!muted, R.drawable.msg_mute, LocaleController.getString(R.string.NotificationsStoryMute), () -> { MessagesController.getNotificationsSettings(currentAccount).edit().putBoolean("stories_" + key, false).apply(); getNotificationsController().updateServerNotificationsSettings(dialogId, 0); String name = user == null ? "" : user.first_name.trim(); @@ -709,7 +677,7 @@ public boolean onItemClick(View view, int position) { } BulletinFactory.of(ContactsActivity.this).createUsersBulletin(Arrays.asList(user), AndroidUtilities.replaceTags(LocaleController.formatString("NotificationsStoryMutedHint", R.string.NotificationsStoryMutedHint, name))).show(); }) - .addIf(muted, R.drawable.msg_unmute, LocaleController.getString("NotificationsStoryUnmute", R.string.NotificationsStoryUnmute), () -> { + .addIf(muted, R.drawable.msg_unmute, LocaleController.getString(R.string.NotificationsStoryUnmute), () -> { MessagesController.getNotificationsSettings(currentAccount).edit().putBoolean("stories_" + key, true).apply(); getNotificationsController().updateServerNotificationsSettings(dialogId, 0); String name = user == null ? "" : user.first_name.trim(); @@ -720,7 +688,7 @@ public boolean onItemClick(View view, int position) { BulletinFactory.of(ContactsActivity.this).createUsersBulletin(Arrays.asList(user), AndroidUtilities.replaceTags(LocaleController.formatString("NotificationsStoryUnmutedHint", R.string.NotificationsStoryUnmutedHint, name))).show(); }); // if (user.stories_hidden) { - filterOptions.add(R.drawable.msg_viewintopic, LocaleController.getString("ShowInChats", R.string.ShowInChats), () -> { + filterOptions.add(R.drawable.msg_viewintopic, LocaleController.getString(R.string.ShowInChats), () -> { // listViewAdapter.removeStory(dialogId); getMessagesController().getStoriesController().toggleHidden(dialogId, false, false, true); BulletinFactory.UndoObject undoObject = new BulletinFactory.UndoObject(); @@ -739,7 +707,7 @@ public boolean onItemClick(View view, int position) { }); // } else { -// filterOptions.add(R.drawable.msg_cancel, LocaleController.getString("Hide", R.string.Hide), () -> { +// filterOptions.add(R.drawable.msg_cancel, LocaleController.getString(R.string.Hide), () -> { // BulletinFactory.global().createUndoBulletin( // AndroidUtilities.replaceTags(LocaleController.formatString("StoriesMovedToContacts", R.string.StoriesMovedToContacts, user.first_name)), // () -> { @@ -854,7 +822,7 @@ public void dismissInternal() { } else { floatingButton.setAnimation(configAnimationsEnabled ? R.raw.write_contacts_fab_icon : R.raw.write_contacts_fab_icon_reverse, 52, 52); } - floatingButtonContainer.setContentDescription(LocaleController.getString("CreateNewContact", R.string.CreateNewContact)); + floatingButtonContainer.setContentDescription(LocaleController.getString(R.string.CreateNewContact)); if (Build.VERSION.SDK_INT >= 21) { StateListAnimator animator = new StateListAnimator(); animator.addState(new int[]{android.R.attr.state_pressed}, ObjectAnimator.ofFloat(floatingButton, View.TRANSLATION_Z, AndroidUtilities.dp(2), AndroidUtilities.dp(4)).setDuration(200)); @@ -975,13 +943,13 @@ private void hideActionMode() { private void performSelectedContactsDelete() { AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), getResourceProvider()); if (selectedContacts.size() == 1) { - builder.setTitle(LocaleController.getString("DeleteContactTitle", R.string.DeleteContactTitle)); - builder.setMessage(LocaleController.getString("DeleteContactSubtitle", R.string.DeleteContactSubtitle)); + builder.setTitle(LocaleController.getString(R.string.DeleteContactTitle)); + builder.setMessage(LocaleController.getString(R.string.DeleteContactSubtitle)); } else { builder.setTitle(LocaleController.formatPluralString("DeleteContactsTitle", selectedContacts.size())); - builder.setMessage(LocaleController.getString("DeleteContactsSubtitle", R.string.DeleteContactsSubtitle)); + builder.setMessage(LocaleController.getString(R.string.DeleteContactsSubtitle)); } - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialog, which) -> { ArrayList contacts = new ArrayList<>(selectedContacts.size()); for (int i = 0; i < selectedContacts.size(); i++) { long key = selectedContacts.keyAt(i); @@ -993,7 +961,7 @@ private void performSelectedContactsDelete() { hideActionMode(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> { dialog.dismiss(); }); AlertDialog dialog = builder.create(); @@ -1009,7 +977,7 @@ private void didSelectResult(final TLRPC.User user, boolean useAlert, String par if (user.bot) { if (user.bot_nochats) { try { - BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("BotCantJoinGroups", R.string.BotCantJoinGroups)).show(); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.BotCantJoinGroups)).show(); } catch (Exception e) { FileLog.e(e); } @@ -1019,29 +987,29 @@ private void didSelectResult(final TLRPC.User user, boolean useAlert, String par TLRPC.Chat chat = getMessagesController().getChat(channelId); AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); if (ChatObject.canAddAdmins(chat)) { - builder.setTitle(LocaleController.getString("AddBotAdminAlert", R.string.AddBotAdminAlert)); - builder.setMessage(LocaleController.getString("AddBotAsAdmin", R.string.AddBotAsAdmin)); - builder.setPositiveButton(LocaleController.getString("AddAsAdmin", R.string.AddAsAdmin), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.AddBotAdminAlert)); + builder.setMessage(LocaleController.getString(R.string.AddBotAsAdmin)); + builder.setPositiveButton(LocaleController.getString(R.string.AddAsAdmin), (dialogInterface, i) -> { if (delegate != null) { delegate.didSelectContact(user, param, this); delegate = null; } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); } else { - builder.setMessage(LocaleController.getString("CantAddBotAsAdmin", R.string.CantAddBotAsAdmin)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setMessage(LocaleController.getString(R.string.CantAddBotAsAdmin)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); } showDialog(builder.create()); return; } } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); + builder.setTitle(LocaleController.getString(R.string.AppName)); String message = LocaleController.formatStringSimple(selectAlertString, UserObject.getUserName(user)); EditTextBoldCursor editText = null; if (!user.bot && needForwardCount) { - message = String.format("%s\n\n%s", message, LocaleController.getString("AddToTheGroupForwardCount", R.string.AddToTheGroupForwardCount)); + message = String.format("%s\n\n%s", message, LocaleController.getString(R.string.AddToTheGroupForwardCount)); editText = new EditTextBoldCursor(getParentActivity()); editText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); editText.setText("50"); @@ -1089,8 +1057,8 @@ public void afterTextChanged(Editable s) { } builder.setMessage(message); final EditText finalEditText = editText; - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> didSelectResult(user, false, finalEditText != null ? finalEditText.getText().toString() : "0")); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> didSelectResult(user, false, finalEditText != null ? finalEditText.getText().toString() : "0")); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); if (editText != null) { ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) editText.getLayoutParams(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ContentPreviewViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/ContentPreviewViewer.java index dca21e77fb..86e6573ef4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ContentPreviewViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ContentPreviewViewer.java @@ -350,11 +350,11 @@ public void run() { icons.add(R.drawable.menu_sticker_add); actions.add(0); } else { - items.add(LocaleController.getString("SendStickerPreview", R.string.SendStickerPreview)); + items.add(LocaleController.getString(R.string.SendStickerPreview)); icons.add(R.drawable.msg_send); actions.add(0); - items.add(LocaleController.getString("AddToFavorites", R.string.AddToFavorites)); + items.add(LocaleController.getString(R.string.AddToFavorites)); icons.add(R.drawable.msg_fave); actions.add(1); } @@ -368,7 +368,7 @@ public void run() { ActionBarMenuSubItem backCell = new ActionBarMenuSubItem(parentActivity, true, false, resourcesProvider); backCell.setItemHeight(44); - backCell.setTextAndIcon(LocaleController.getString("Back", R.string.Back), R.drawable.msg_arrow_back); + backCell.setTextAndIcon(LocaleController.getString(R.string.Back), R.drawable.msg_arrow_back); backCell.getTextView().setPadding(LocaleController.isRTL ? 0 : AndroidUtilities.dp(40), 0, LocaleController.isRTL ? AndroidUtilities.dp(40) : 0, 0); FrameLayout backContainer = new FrameLayout(containerView.getContext()); @@ -514,18 +514,18 @@ public void run() { ArrayList icons = new ArrayList<>(); if (delegate != null) { if (delegate.needSend(currentContentType) && !delegate.isInScheduleMode()) { - items.add(LocaleController.getString("SendStickerPreview", R.string.SendStickerPreview)); - icons.add(R.drawable.outline_send); + items.add(LocaleController.getString(R.string.SendStickerPreview)); + icons.add(R.drawable.msg_send); actions.add(0); } if (delegate.needSend(currentContentType) && !delegate.isInScheduleMode()) { - items.add(LocaleController.getString("SendWithoutSound", R.string.SendWithoutSound)); + items.add(LocaleController.getString(R.string.SendWithoutSound)); icons.add(R.drawable.input_notify_off); actions.add(nkbtn_send_without_sound); } if (delegate.canSchedule()) { - items.add(LocaleController.getString("Schedule", R.string.Schedule)); - icons.add(R.drawable.msg_timer); + items.add(LocaleController.getString(R.string.Schedule)); + icons.add(R.drawable.msg_autodelete); actions.add(3); } if (currentStickerSet != null && !(currentStickerSet instanceof TLRPC.TL_inputStickerSetEmpty) && delegate.needOpen()) { @@ -534,7 +534,7 @@ public void run() { actions.add(1); } if (delegate.needRemove()) { - items.add(LocaleController.getString("ImportStickersRemoveMenu", R.string.ImportStickersRemoveMenu)); + items.add(LocaleController.getString(R.string.ImportStickersRemoveMenu)); icons.add(R.drawable.msg_delete); actions.add(5); } @@ -551,12 +551,12 @@ public void run() { } } if (!MessageObject.isMaskDocument(currentDocument) && (inFavs || MediaDataController.getInstance(currentAccount).canAddStickerToFavorites() && MessageObject.isStickerHasSet(currentDocument))) { - items.add(inFavs ? LocaleController.getString("DeleteFromFavorites", R.string.DeleteFromFavorites) : LocaleController.getString("AddToFavorites", R.string.AddToFavorites)); + items.add(inFavs ? LocaleController.getString(R.string.DeleteFromFavorites) : LocaleController.getString(R.string.AddToFavorites)); icons.add(inFavs ? R.drawable.msg_unfave : R.drawable.msg_fave); actions.add(2); } if (isRecentSticker) { - items.add(LocaleController.getString("DeleteFromRecent", R.string.DeleteFromRecent)); + items.add(LocaleController.getString(R.string.DeleteFromRecent)); icons.add(R.drawable.msg_delete); actions.add(4); } @@ -710,35 +710,35 @@ public void dismiss() { ArrayList icons = new ArrayList<>(); if (delegate.needSend(currentContentType)) { - items.add(LocaleController.getString("SendEmojiPreview", R.string.SendEmojiPreview)); + items.add(LocaleController.getString(R.string.SendEmojiPreview)); icons.add(R.drawable.msg_send); actions.add(0); } Boolean canSetAsStatus = delegate.canSetAsStatus(currentDocument); if (canSetAsStatus != null) { if (canSetAsStatus) { - items.add(LocaleController.getString("SetAsEmojiStatus", R.string.SetAsEmojiStatus)); + items.add(LocaleController.getString(R.string.SetAsEmojiStatus)); icons.add(R.drawable.msg_smile_status); actions.add(1); } else { - items.add(LocaleController.getString("RemoveStatus", R.string.RemoveStatus)); + items.add(LocaleController.getString(R.string.RemoveStatus)); icons.add(R.drawable.msg_smile_status); actions.add(2); } } if (delegate.needCopy(currentDocument)) { - items.add(LocaleController.getString("CopyEmojiPreview", R.string.CopyEmojiPreview)); + items.add(LocaleController.getString(R.string.CopyEmojiPreview)); icons.add(R.drawable.msg_copy); actions.add(3); } if (delegate.needRemoveFromRecent(currentDocument)) { - items.add(LocaleController.getString("RemoveFromRecent", R.string.RemoveFromRecent)); + items.add(LocaleController.getString(R.string.RemoveFromRecent)); icons.add(R.drawable.msg_delete); actions.add(4); } final boolean inFavs = MediaDataController.getInstance(currentAccount).isStickerInFavorites(currentDocument); if (!MessageObject.isAnimatedEmoji(currentDocument) && !MessageObject.isMaskDocument(currentDocument) && (inFavs || MediaDataController.getInstance(currentAccount).canAddStickerToFavorites() && MessageObject.isStickerHasSet(currentDocument))) { - items.add(inFavs ? LocaleController.getString("DeleteFromFavorites", R.string.DeleteFromFavorites) : LocaleController.getString("AddToFavorites", R.string.AddToFavorites)); + items.add(inFavs ? LocaleController.getString(R.string.DeleteFromFavorites) : LocaleController.getString(R.string.AddToFavorites)); icons.add(inFavs ? R.drawable.msg_unfave : R.drawable.msg_fave); actions.add(5); } @@ -845,18 +845,18 @@ public void dismiss() { ArrayList icons = new ArrayList<>(); if (delegate.needSend(currentContentType) && !delegate.isInScheduleMode()) { - items.add(LocaleController.getString("SendGifPreview", R.string.SendGifPreview)); - icons.add(R.drawable.outline_send); + items.add(LocaleController.getString(R.string.SendGifPreview)); + icons.add(R.drawable.msg_send); actions.add(0); } if (delegate.needSend(currentContentType) && !delegate.isInScheduleMode()) { - items.add(LocaleController.getString("SendWithoutSound", R.string.SendWithoutSound)); + items.add(LocaleController.getString(R.string.SendWithoutSound)); icons.add(R.drawable.input_notify_off); actions.add(4); } if (delegate.canSchedule()) { - items.add(LocaleController.getString("Schedule", R.string.Schedule)); - icons.add(R.drawable.msg_timer); + items.add(LocaleController.getString(R.string.Schedule)); + icons.add(R.drawable.msg_autodelete); actions.add(3); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/CountrySelectActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/CountrySelectActivity.java index 89e67d0c0d..6d76e3c6d2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/CountrySelectActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/CountrySelectActivity.java @@ -118,7 +118,7 @@ public boolean isLightStatusBar() { public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(false); - actionBar.setTitle(LocaleController.getString("ChooseCountry", R.string.ChooseCountry)); + actionBar.setTitle(LocaleController.getString(R.string.ChooseCountry)); actionBar.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); actionBar.setItemsColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText), false); @@ -167,7 +167,7 @@ public void onTextChanged(EditText editText) { } } }); - item.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); + item.setSearchFieldHint(LocaleController.getString(R.string.Search)); actionBar.setSearchTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText), true); actionBar.setSearchTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText), false); @@ -185,7 +185,7 @@ public void onTextChanged(EditText editText) { emptyView = new EmptyTextProgressView(context); emptyView.showTextView(); emptyView.setShowAtCenter(true); - emptyView.setText(LocaleController.getString("NoResult", R.string.NoResult)); + emptyView.setText(LocaleController.getString(R.string.NoResult)); frameLayout.addView(emptyView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); listView = new RecyclerListView(context); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DataAutoDownloadActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/DataAutoDownloadActivity.java index 0f043f47c1..70f35ac853 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DataAutoDownloadActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DataAutoDownloadActivity.java @@ -134,11 +134,11 @@ public boolean onFragmentCreate() { public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); if (currentType == 0) { - actionBar.setTitle(LocaleController.getString("AutoDownloadOnMobileData", R.string.AutoDownloadOnMobileData)); + actionBar.setTitle(LocaleController.getString(R.string.AutoDownloadOnMobileData)); } else if (currentType == 1) { - actionBar.setTitle(LocaleController.getString("AutoDownloadOnWiFiData", R.string.AutoDownloadOnWiFiData)); + actionBar.setTitle(LocaleController.getString(R.string.AutoDownloadOnWiFiData)); } else if (currentType == 2) { - actionBar.setTitle(LocaleController.getString("AutoDownloadOnRoamingData", R.string.AutoDownloadOnRoamingData)); + actionBar.setTitle(LocaleController.getString(R.string.AutoDownloadOnRoamingData)); } if (AndroidUtilities.isTablet()) { actionBar.setOccupyStatusBar(false); @@ -308,11 +308,11 @@ public void onItemClick(int id) { HeaderCell headerCell = new HeaderCell(getParentActivity(), Theme.key_dialogTextBlue2, 21, 15, false); if (position == photosRow) { - headerCell.setText(LocaleController.getString("AutoDownloadPhotosTitle", R.string.AutoDownloadPhotosTitle)); + headerCell.setText(LocaleController.getString(R.string.AutoDownloadPhotosTitle)); } else if (position == videosRow) { - headerCell.setText(LocaleController.getString("AutoDownloadVideosTitle", R.string.AutoDownloadVideosTitle)); + headerCell.setText(LocaleController.getString(R.string.AutoDownloadVideosTitle)); } else { - headerCell.setText(LocaleController.getString("AutoDownloadFilesTitle", R.string.AutoDownloadFilesTitle)); + headerCell.setText(LocaleController.getString(R.string.AutoDownloadFilesTitle)); } linearLayout.addView(headerCell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -324,13 +324,13 @@ public void onItemClick(int id) { for (int a = 0; a < 4; a++) { TextCheckBoxCell checkBoxCell = cells[a] = new TextCheckBoxCell(getParentActivity(), true, false); if (a == 0) { - cells[a].setTextAndCheck(LocaleController.getString("AutodownloadContacts", R.string.AutodownloadContacts), (currentPreset.mask[DownloadController.PRESET_NUM_CONTACT] & type) != 0, true); + cells[a].setTextAndCheck(LocaleController.getString(R.string.AutodownloadContacts), (currentPreset.mask[DownloadController.PRESET_NUM_CONTACT] & type) != 0, true); } else if (a == 1) { - cells[a].setTextAndCheck(LocaleController.getString("AutodownloadPrivateChats", R.string.AutodownloadPrivateChats), (currentPreset.mask[DownloadController.PRESET_NUM_PM] & type) != 0, true); + cells[a].setTextAndCheck(LocaleController.getString(R.string.AutodownloadPrivateChats), (currentPreset.mask[DownloadController.PRESET_NUM_PM] & type) != 0, true); } else if (a == 2) { - cells[a].setTextAndCheck(LocaleController.getString("AutodownloadGroupChats", R.string.AutodownloadGroupChats), (currentPreset.mask[DownloadController.PRESET_NUM_GROUP] & type) != 0, true); + cells[a].setTextAndCheck(LocaleController.getString(R.string.AutodownloadGroupChats), (currentPreset.mask[DownloadController.PRESET_NUM_GROUP] & type) != 0, true); } else { - cells[a].setTextAndCheck(LocaleController.getString("AutodownloadChannels", R.string.AutodownloadChannels), (currentPreset.mask[DownloadController.PRESET_NUM_CHANNEL] & type) != 0, position != photosRow); + cells[a].setTextAndCheck(LocaleController.getString(R.string.AutodownloadChannels), (currentPreset.mask[DownloadController.PRESET_NUM_CHANNEL] & type) != 0, position != photosRow); } cells[a].setBackgroundDrawable(Theme.getSelectorDrawable(false)); cells[a].setOnClickListener(v -> { @@ -420,13 +420,13 @@ public void onAnimationEnd(Animator animator) { linearLayout.addView(infoCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); if (position == videosRow) { - sizeCell[0].setText(LocaleController.getString("AutoDownloadMaxVideoSize", R.string.AutoDownloadMaxVideoSize)); - checkCell[0].setTextAndCheck(LocaleController.getString("AutoDownloadPreloadVideo", R.string.AutoDownloadPreloadVideo), currentPreset.preloadVideo, false); + sizeCell[0].setText(LocaleController.getString(R.string.AutoDownloadMaxVideoSize)); + checkCell[0].setTextAndCheck(LocaleController.getString(R.string.AutoDownloadPreloadVideo), currentPreset.preloadVideo, false); infoCell.setText(LocaleController.formatString("AutoDownloadPreloadVideoInfo", R.string.AutoDownloadPreloadVideoInfo, AndroidUtilities.formatFileSize(currentPreset.sizes[index]))); } else { - sizeCell[0].setText(LocaleController.getString("AutoDownloadMaxFileSize", R.string.AutoDownloadMaxFileSize)); - checkCell[0].setTextAndCheck(LocaleController.getString("AutoDownloadPreloadMusic", R.string.AutoDownloadPreloadMusic), currentPreset.preloadMusic, false); - infoCell.setText(LocaleController.getString("AutoDownloadPreloadMusicInfo", R.string.AutoDownloadPreloadMusicInfo)); + sizeCell[0].setText(LocaleController.getString(R.string.AutoDownloadMaxFileSize)); + checkCell[0].setTextAndCheck(LocaleController.getString(R.string.AutoDownloadPreloadMusic), currentPreset.preloadMusic, false); + infoCell.setText(LocaleController.getString(R.string.AutoDownloadPreloadMusicInfo)); } } else { sizeCell[0] = null; @@ -462,7 +462,7 @@ public void onAnimationEnd(Animator animator) { textView.setTextColor(Theme.getColor(Theme.key_dialogTextBlue2)); textView.setGravity(Gravity.CENTER); textView.setTypeface(AndroidUtilities.bold()); - textView.setText(LocaleController.getString("Cancel", R.string.Cancel).toUpperCase()); + textView.setText(LocaleController.getString(R.string.Cancel).toUpperCase()); textView.setPadding(AndroidUtilities.dp(10), 0, AndroidUtilities.dp(10), 0); buttonsLayout.addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 36, Gravity.TOP | Gravity.LEFT)); textView.setOnClickListener(v14 -> builder.getDismissRunnable().run()); @@ -472,7 +472,7 @@ public void onAnimationEnd(Animator animator) { textView.setTextColor(Theme.getColor(Theme.key_dialogTextBlue2)); textView.setGravity(Gravity.CENTER); textView.setTypeface(AndroidUtilities.bold()); - textView.setText(LocaleController.getString("Save", R.string.Save).toUpperCase()); + textView.setText(LocaleController.getString(R.string.Save).toUpperCase()); textView.setPadding(AndroidUtilities.dp(10), 0, AndroidUtilities.dp(10), 0); buttonsLayout.addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 36, Gravity.TOP | Gravity.RIGHT)); textView.setOnClickListener(v1 -> { @@ -664,7 +664,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TextCheckCell view = (TextCheckCell) holder.itemView; if (position == autoDownloadRow) { view.setDrawCheckRipple(true); - view.setTextAndCheck(LocaleController.getString("AutoDownloadMedia", R.string.AutoDownloadMedia), typePreset.enabled, false); + view.setTextAndCheck(LocaleController.getString(R.string.AutoDownloadMedia), typePreset.enabled, false); view.setTag(typePreset.enabled ? Theme.key_windowBackgroundChecked : Theme.key_windowBackgroundUnchecked); view.setBackgroundColor(Theme.getColor(typePreset.enabled ? Theme.key_windowBackgroundChecked : Theme.key_windowBackgroundUnchecked)); } @@ -673,9 +673,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 2: { HeaderCell view = (HeaderCell) holder.itemView; if (position == usageHeaderRow) { - view.setText(LocaleController.getString("AutoDownloadDataUsage", R.string.AutoDownloadDataUsage)); + view.setText(LocaleController.getString(R.string.AutoDownloadDataUsage)); } else if (position == typeHeaderRow) { - view.setText(LocaleController.getString("AutoDownloadTypes", R.string.AutoDownloadTypes)); + view.setText(LocaleController.getString(R.string.AutoDownloadTypes)); } break; } @@ -691,17 +691,17 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { int type; view.setDrawLine(true); if (position == photosRow) { - text = LocaleController.getString("AutoDownloadPhotos", R.string.AutoDownloadPhotos); + text = LocaleController.getString(R.string.AutoDownloadPhotos); type = DownloadController.AUTODOWNLOAD_TYPE_PHOTO; } else if (position == videosRow) { - text = LocaleController.getString("AutoDownloadVideos", R.string.AutoDownloadVideos); + text = LocaleController.getString(R.string.AutoDownloadVideos); type = DownloadController.AUTODOWNLOAD_TYPE_VIDEO; } else if (position == storiesRow) { - text = LocaleController.getString("AutoDownloadStories", R.string.AutoDownloadStories); + text = LocaleController.getString(R.string.AutoDownloadStories); type = -1; view.setDrawLine(false); } else { - text = LocaleController.getString("AutoDownloadFiles", R.string.AutoDownloadFiles); + text = LocaleController.getString(R.string.AutoDownloadFiles); type = DownloadController.AUTODOWNLOAD_TYPE_DOCUMENT; } if (currentType == 0) { @@ -731,16 +731,16 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } switch (a) { case 0: - builder.append(LocaleController.getString("AutoDownloadContacts", R.string.AutoDownloadContacts)); + builder.append(LocaleController.getString(R.string.AutoDownloadContacts)); break; case 1: - builder.append(LocaleController.getString("AutoDownloadPm", R.string.AutoDownloadPm)); + builder.append(LocaleController.getString(R.string.AutoDownloadPm)); break; case 2: - builder.append(LocaleController.getString("AutoDownloadGroups", R.string.AutoDownloadGroups)); + builder.append(LocaleController.getString(R.string.AutoDownloadGroups)); break; case 3: - builder.append(LocaleController.getString("AutoDownloadChannels", R.string.AutoDownloadChannels)); + builder.append(LocaleController.getString(R.string.AutoDownloadChannels)); break; } count++; @@ -749,12 +749,12 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (count == 4) { builder.setLength(0); if (position == photosRow) { - builder.append(LocaleController.getString("AutoDownloadOnAllChats", R.string.AutoDownloadOnAllChats)); + builder.append(LocaleController.getString(R.string.AutoDownloadOnAllChats)); } else { builder.append(LocaleController.formatString("AutoDownloadUpToOnAllChats", R.string.AutoDownloadUpToOnAllChats, AndroidUtilities.formatFileSize(maxSize))); } } else if (count == 0) { - builder.append(LocaleController.getString("AutoDownloadOff", R.string.AutoDownloadOff)); + builder.append(LocaleController.getString(R.string.AutoDownloadOff)); } else { if (position == photosRow) { builder = new StringBuilder(LocaleController.formatString("AutoDownloadOnFor", R.string.AutoDownloadOnFor, builder.toString())); @@ -772,7 +772,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 5: { TextInfoPrivacyCell view = (TextInfoPrivacyCell) holder.itemView; if (position == typeSectionRow) { - view.setText(LocaleController.getString("AutoDownloadAudioInfo", R.string.AutoDownloadAudioInfo)); + view.setText(LocaleController.getString(R.string.AutoDownloadAudioInfo)); view.setBackgroundDrawable(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); view.setFixedSize(0); view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); @@ -780,11 +780,11 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (usageHeaderRow == -1) { view.setBackgroundDrawable(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); if (currentType == 0) { - view.setText(LocaleController.getString("AutoDownloadOnMobileDataInfo", R.string.AutoDownloadOnMobileDataInfo)); + view.setText(LocaleController.getString(R.string.AutoDownloadOnMobileDataInfo)); } else if (currentType == 1) { - view.setText(LocaleController.getString("AutoDownloadOnWiFiDataInfo", R.string.AutoDownloadOnWiFiDataInfo)); + view.setText(LocaleController.getString(R.string.AutoDownloadOnWiFiDataInfo)); } else if (currentType == 2) { - view.setText(LocaleController.getString("AutoDownloadOnRoamingDataInfo", R.string.AutoDownloadOnRoamingDataInfo)); + view.setText(LocaleController.getString(R.string.AutoDownloadOnRoamingDataInfo)); } view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); } else { @@ -904,13 +904,13 @@ private void updatePresetChoseView(SlideChooseView slideChooseView) { for (int i = 0; i < presets.size(); i++) { DownloadController.Preset preset = presets.get(i); if (preset == lowPreset) { - presetsStr[i] = LocaleController.getString("AutoDownloadLow", R.string.AutoDownloadLow); + presetsStr[i] = LocaleController.getString(R.string.AutoDownloadLow); } else if (preset == mediumPreset) { - presetsStr[i] = LocaleController.getString("AutoDownloadMedium", R.string.AutoDownloadMedium); + presetsStr[i] = LocaleController.getString(R.string.AutoDownloadMedium); } else if (preset == highPreset) { - presetsStr[i] = LocaleController.getString("AutoDownloadHigh", R.string.AutoDownloadHigh); + presetsStr[i] = LocaleController.getString(R.string.AutoDownloadHigh); } else { - presetsStr[i] = LocaleController.getString("AutoDownloadCustom", R.string.AutoDownloadCustom); + presetsStr[i] = LocaleController.getString(R.string.AutoDownloadCustom); } } slideChooseView.setOptions(selectedPreset, presetsStr); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DataSettingsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/DataSettingsActivity.java index 3b4ffb3dd3..c9487f5cd2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DataSettingsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DataSettingsActivity.java @@ -256,7 +256,7 @@ public void onFragmentDestroy() { @Override public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); - actionBar.setTitle(LocaleController.getString("DataSettings", R.string.DataSettings)); + actionBar.setTitle(LocaleController.getString(R.string.DataSettings)); if (AndroidUtilities.isTablet()) { actionBar.setOccupyStatusBar(false); } @@ -373,9 +373,9 @@ public Integer getSelectorColor(int position) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("ResetAutomaticMediaDownloadAlertTitle", R.string.ResetAutomaticMediaDownloadAlertTitle)); - builder.setMessage(LocaleController.getString("ResetAutomaticMediaDownloadAlert", R.string.ResetAutomaticMediaDownloadAlert)); - builder.setPositiveButton(LocaleController.getString("Reset", R.string.Reset), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.ResetAutomaticMediaDownloadAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.ResetAutomaticMediaDownloadAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.Reset), (dialogInterface, i) -> { DownloadController.Preset preset; DownloadController.Preset defaultPreset; String key; @@ -410,7 +410,7 @@ public Integer getSelectorColor(int position) { listAdapter.notifyItemRangeChanged(mobileRow, 4); updateRows(false); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -437,11 +437,11 @@ public Integer getSelectorColor(int position) { break; } Dialog dlg = AlertsCreator.createSingleChoiceDialog(getParentActivity(), new String[]{ - LocaleController.getString("UseLessDataNever", R.string.UseLessDataNever), - LocaleController.getString("UseLessDataOnRoaming", R.string.UseLessDataOnRoaming), - LocaleController.getString("UseLessDataOnMobile", R.string.UseLessDataOnMobile), - LocaleController.getString("UseLessDataAlways", R.string.UseLessDataAlways)}, - LocaleController.getString("VoipUseLessData", R.string.VoipUseLessData), selected, (dialog, which) -> { + LocaleController.getString(R.string.UseLessDataNever), + LocaleController.getString(R.string.UseLessDataOnRoaming), + LocaleController.getString(R.string.UseLessDataOnMobile), + LocaleController.getString(R.string.UseLessDataAlways)}, + LocaleController.getString(R.string.VoipUseLessData), selected, (dialog, which) -> { int val = -1; switch (which) { case 0: @@ -472,7 +472,7 @@ public Integer getSelectorColor(int position) { } else if (position == storageNumRow) { BottomBuilder builder = new BottomBuilder(getParentActivity()); - builder.addTitle(LocaleController.getString("StoragePath", R.string.StoragePath)); + builder.addTitle(LocaleController.getString(R.string.StoragePath)); AtomicReference target = new AtomicReference<>(); @@ -534,13 +534,13 @@ public Integer getSelectorColor(int position) { } } else if (position == clearDraftsRow) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("AreYouSureClearDraftsTitle", R.string.AreYouSureClearDraftsTitle)); - builder.setMessage(LocaleController.getString("AreYouSureClearDrafts", R.string.AreYouSureClearDrafts)); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.AreYouSureClearDraftsTitle)); + builder.setMessage(LocaleController.getString(R.string.AreYouSureClearDrafts)); + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialogInterface, i) -> { TLRPC.TL_messages_clearAllDrafts req = new TLRPC.TL_messages_clearAllDrafts(); getConnectionsManager().sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> getMediaDataController().clearAllDrafts(true))); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -613,10 +613,10 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TextCell textCell = (TextCell) holder.itemView; if (position == storageUsageRow) { if (storageUsageLoading) { - textCell.setTextAndValueAndColorfulIcon(LocaleController.getString("StorageUsage", R.string.StorageUsage), "", false, R.drawable.msg_filled_storageusage, getThemedColor(Theme.key_color_lightblue), true); + textCell.setTextAndValueAndColorfulIcon(LocaleController.getString(R.string.StorageUsage), "", false, R.drawable.msg_filled_storageusage, getThemedColor(Theme.key_color_lightblue), true); textCell.setDrawLoading(true, 45, updateStorageUsageAnimated); } else { - textCell.setTextAndValueAndColorfulIcon(LocaleController.getString("StorageUsage", R.string.StorageUsage), storageUsageSize <= 0 ? "" : AndroidUtilities.formatFileSize(storageUsageSize), true, R.drawable.msg_filled_storageusage, getThemedColor(Theme.key_color_lightblue), true); + textCell.setTextAndValueAndColorfulIcon(LocaleController.getString(R.string.StorageUsage), storageUsageSize <= 0 ? "" : AndroidUtilities.formatFileSize(storageUsageSize), true, R.drawable.msg_filled_storageusage, getThemedColor(Theme.key_color_lightblue), true); textCell.setDrawLoading(false, 45, updateStorageUsageAnimated); } updateStorageUsageAnimated = false; @@ -630,10 +630,10 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { statsController.getSentBytesCount(1, StatsController.TYPE_TOTAL) + statsController.getSentBytesCount(2, StatsController.TYPE_TOTAL) ); - textCell.setTextAndValueAndColorfulIcon(LocaleController.getString("NetworkUsage", R.string.NetworkUsage), AndroidUtilities.formatFileSize(size), true, R.drawable.msg_filled_datausage, getThemedColor(Theme.key_color_green), storageNumRow != -1); + textCell.setTextAndValueAndColorfulIcon(LocaleController.getString(R.string.NetworkUsage), AndroidUtilities.formatFileSize(size), true, R.drawable.msg_filled_datausage, getThemedColor(Theme.key_color_green), storageNumRow != -1); } else if (position == storageNumRow) { String value = NekoConfig.cachePath.String(); - textCell.setTextAndValueAndColorfulIcon(LocaleController.getString("StoragePath", R.string.StoragePath), value, true, R.drawable.msg_filled_sdcard, getThemedColor(Theme.key_color_yellow), false); + textCell.setTextAndValueAndColorfulIcon(LocaleController.getString(R.string.StoragePath), value, true, R.drawable.msg_filled_sdcard, getThemedColor(Theme.key_color_yellow), false); } break; } @@ -647,77 +647,77 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { String value = null; switch (preferences.getInt("VoipDataSaving", VoIPHelper.getDataSavingDefault())) { case Instance.DATA_SAVING_NEVER: - value = LocaleController.getString("UseLessDataNever", R.string.UseLessDataNever); + value = LocaleController.getString(R.string.UseLessDataNever); break; case Instance.DATA_SAVING_MOBILE: - value = LocaleController.getString("UseLessDataOnMobile", R.string.UseLessDataOnMobile); + value = LocaleController.getString(R.string.UseLessDataOnMobile); break; case Instance.DATA_SAVING_ROAMING: - value = LocaleController.getString("UseLessDataOnRoaming", R.string.UseLessDataOnRoaming); + value = LocaleController.getString(R.string.UseLessDataOnRoaming); break; case Instance.DATA_SAVING_ALWAYS: - value = LocaleController.getString("UseLessDataAlways", R.string.UseLessDataAlways); + value = LocaleController.getString(R.string.UseLessDataAlways); break; } - textCell.setTextAndValue(LocaleController.getString("VoipUseLessData", R.string.VoipUseLessData), value, updateVoipUseLessData, true); + textCell.setTextAndValue(LocaleController.getString(R.string.VoipUseLessData), value, updateVoipUseLessData, true); updateVoipUseLessData = false; } else if (position == proxyRow) { textCell.setIcon(0); - textCell.setText(LocaleController.getString("ProxySettings", R.string.ProxySettings), false); + textCell.setText(LocaleController.getString(R.string.ProxySettings), false); } else if (position == resetDownloadRow) { textCell.setIcon(0); textCell.setCanDisable(true); textCell.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); - textCell.setText(LocaleController.getString("ResetAutomaticMediaDownload", R.string.ResetAutomaticMediaDownload), false); - } else if (position == quickRepliesRow) { + textCell.setText(LocaleController.getString(R.string.ResetAutomaticMediaDownload), false); + } else if (position == quickRepliesRow){ textCell.setIcon(0); - textCell.setText(LocaleController.getString("VoipQuickReplies", R.string.VoipQuickReplies), false); + textCell.setText(LocaleController.getString(R.string.VoipQuickReplies), false); } else if (position == clearDraftsRow) { textCell.setIcon(0); - textCell.setText(LocaleController.getString("PrivacyDeleteCloudDrafts", R.string.PrivacyDeleteCloudDrafts), false); + textCell.setText(LocaleController.getString(R.string.PrivacyDeleteCloudDrafts), false); } break; } case 2: { HeaderCell headerCell = (HeaderCell) holder.itemView; if (position == mediaDownloadSectionRow) { - headerCell.setText(LocaleController.getString("AutomaticMediaDownload", R.string.AutomaticMediaDownload)); + headerCell.setText(LocaleController.getString(R.string.AutomaticMediaDownload)); } else if (position == usageSectionRow) { - headerCell.setText(LocaleController.getString("DataUsage", R.string.DataUsage)); + headerCell.setText(LocaleController.getString(R.string.DataUsage)); } else if (position == callsSectionRow) { - headerCell.setText(LocaleController.getString("Calls", R.string.Calls)); + headerCell.setText(LocaleController.getString(R.string.Calls)); } else if (position == proxySectionRow) { - headerCell.setText(LocaleController.getString("Proxy", R.string.Proxy)); + headerCell.setText(LocaleController.getString(R.string.Proxy)); } else if (position == streamSectionRow) { - headerCell.setText(LocaleController.getString("Streaming", R.string.Streaming)); + headerCell.setText(LocaleController.getString(R.string.Streaming)); } else if (position == autoplayHeaderRow) { - headerCell.setText(LocaleController.getString("AutoplayMedia", R.string.AutoplayMedia)); + headerCell.setText(LocaleController.getString(R.string.AutoplayMedia)); } else if (position == saveToGallerySectionRow) { - headerCell.setText(LocaleController.getString("SaveToGallerySettings", R.string.SaveToGallerySettings)); + headerCell.setText(LocaleController.getString(R.string.SaveToGallerySettings)); } break; } case 3: { TextCheckCell checkCell = (TextCheckCell) holder.itemView; if (position == enableStreamRow) { - checkCell.setTextAndCheck(LocaleController.getString("EnableStreaming", R.string.EnableStreaming), SharedConfig.streamMedia, enableAllStreamRow != -1); + checkCell.setTextAndCheck(LocaleController.getString(R.string.EnableStreaming), SharedConfig.streamMedia, enableAllStreamRow != -1); } else if (position == enableCacheStreamRow) { - //checkCell.setTextAndCheck(LocaleController.getString("CacheStreamFile", R.string.CacheStreamFile), SharedConfig.saveStreamMedia, true); + //checkCell.setTextAndCheck(LocaleController.getString(R.string.CacheStreamFile), SharedConfig.saveStreamMedia, true); } else if (position == enableMkvRow) { checkCell.setTextAndCheck("(beta only) Show MKV as Video", SharedConfig.streamMkv, true); } else if (position == enableAllStreamRow) { checkCell.setTextAndCheck("(beta only) Stream All Videos", SharedConfig.streamAllVideo, false); } else if (position == autoplayGifsRow) { - checkCell.setTextAndCheck(LocaleController.getString("AutoplayGIF", R.string.AutoplayGIF), SharedConfig.isAutoplayGifs(), true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.AutoplayGIF), SharedConfig.isAutoplayGifs(), true); } else if (position == autoplayVideoRow) { - checkCell.setTextAndCheck(LocaleController.getString("AutoplayVideo", R.string.AutoplayVideo), SharedConfig.isAutoplayVideo(), false); + checkCell.setTextAndCheck(LocaleController.getString(R.string.AutoplayVideo), SharedConfig.isAutoplayVideo(), false); } break; } case 4: { TextInfoPrivacyCell cell = (TextInfoPrivacyCell) holder.itemView; if (position == enableAllStreamInfoRow) { - cell.setText(LocaleController.getString("EnableAllStreamingInfo", R.string.EnableAllStreamingInfo)); + cell.setText(LocaleController.getString(R.string.EnableAllStreamingInfo)); } break; } @@ -729,28 +729,28 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { DownloadController.Preset preset = null; boolean enabled, divider = true; if (position == saveToGalleryPeerRow) { - text = LocaleController.getString("SaveToGalleryPrivate", R.string.SaveToGalleryPrivate); + text = LocaleController.getString(R.string.SaveToGalleryPrivate); description = SaveToGallerySettingsHelper.user.createDescription(currentAccount); enabled = SaveToGallerySettingsHelper.user.enabled(); } else if (position == saveToGalleryGroupsRow) { - text = LocaleController.getString("SaveToGalleryGroups", R.string.SaveToGalleryGroups); + text = LocaleController.getString(R.string.SaveToGalleryGroups); description = SaveToGallerySettingsHelper.groups.createDescription(currentAccount); enabled = SaveToGallerySettingsHelper.groups.enabled(); } else if (position == saveToGalleryChannelsRow) { - text = LocaleController.getString("SaveToGalleryChannels", R.string.SaveToGalleryChannels); + text = LocaleController.getString(R.string.SaveToGalleryChannels); description = SaveToGallerySettingsHelper.channels.createDescription(currentAccount); enabled = SaveToGallerySettingsHelper.channels.enabled(); divider = false; } else if (position == mobileRow) { - text = LocaleController.getString("WhenUsingMobileData", R.string.WhenUsingMobileData); + text = LocaleController.getString(R.string.WhenUsingMobileData); enabled = DownloadController.getInstance(currentAccount).mobilePreset.enabled; preset = DownloadController.getInstance(currentAccount).getCurrentMobilePreset(); } else if (position == wifiRow) { - text = LocaleController.getString("WhenConnectedOnWiFi", R.string.WhenConnectedOnWiFi); + text = LocaleController.getString(R.string.WhenConnectedOnWiFi); enabled = DownloadController.getInstance(currentAccount).wifiPreset.enabled; preset = DownloadController.getInstance(currentAccount).getCurrentWiFiPreset(); } else { - text = LocaleController.getString("WhenRoaming", R.string.WhenRoaming); + text = LocaleController.getString(R.string.WhenRoaming); enabled = DownloadController.getInstance(currentAccount).roamingPreset.enabled; preset = DownloadController.getInstance(currentAccount).getCurrentRoamingPreset(); divider = resetDownloadRow >= 0; @@ -778,24 +778,24 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } if (preset.enabled && count != 0) { if (photos) { - builder.append(LocaleController.getString("AutoDownloadPhotosOn", R.string.AutoDownloadPhotosOn)); + builder.append(LocaleController.getString(R.string.AutoDownloadPhotosOn)); } if (videos) { if (builder.length() > 0) { builder.append(", "); } - builder.append(LocaleController.getString("AutoDownloadVideosOn", R.string.AutoDownloadVideosOn)); + builder.append(LocaleController.getString(R.string.AutoDownloadVideosOn)); builder.append(String.format(" (%1$s)", AndroidUtilities.formatFileSize(preset.sizes[DownloadController.typeToIndex(DownloadController.AUTODOWNLOAD_TYPE_VIDEO)], true, false))); } if (files) { if (builder.length() > 0) { builder.append(", "); } - builder.append(LocaleController.getString("AutoDownloadFilesOn", R.string.AutoDownloadFilesOn)); + builder.append(LocaleController.getString(R.string.AutoDownloadFilesOn)); builder.append(String.format(" (%1$s)", AndroidUtilities.formatFileSize(preset.sizes[DownloadController.typeToIndex(DownloadController.AUTODOWNLOAD_TYPE_DOCUMENT)], true, false))); } } else { - builder.append(LocaleController.getString("NoMediaAutoDownload", R.string.NoMediaAutoDownload)); + builder.append(LocaleController.getString(R.string.NoMediaAutoDownload)); } checked = (photos || videos || files) && enabled; description = builder; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DataUsage2Activity.java b/TMessagesProj/src/main/java/org/telegram/ui/DataUsage2Activity.java index ce4c7f9408..236d2f4d6c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DataUsage2Activity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DataUsage2Activity.java @@ -77,7 +77,7 @@ public DataUsage2Activity(Theme.ResourcesProvider resourcesProvider) { @Override public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); - actionBar.setTitle(LocaleController.getString("NetworkUsage", R.string.NetworkUsage)); + actionBar.setTitle(LocaleController.getString(R.string.NetworkUsage)); actionBar.setBackgroundColor(getThemedColor(Theme.key_actionBarActionModeDefault)); actionBar.setTitleColor(getThemedColor(Theme.key_windowBackgroundWhiteBlackText)); actionBar.setItemsColor(getThemedColor(Theme.key_windowBackgroundWhiteBlackText), false); @@ -147,10 +147,10 @@ public void bindView(View view, int position, int viewType) { @Override public String getItemTitle(int position) { switch (position) { - case ListView.TYPE_ALL: return LocaleController.getString("NetworkUsageAllTab", R.string.NetworkUsageAllTab); - case ListView.TYPE_MOBILE: return LocaleController.getString("NetworkUsageMobileTab", R.string.NetworkUsageMobileTab); - case ListView.TYPE_WIFI: return LocaleController.getString("NetworkUsageWiFiTab", R.string.NetworkUsageWiFiTab); - case ListView.TYPE_ROAMING: return LocaleController.getString("NetworkUsageRoamingTab", R.string.NetworkUsageRoamingTab); + case ListView.TYPE_ALL: return LocaleController.getString(R.string.NetworkUsageAllTab); + case ListView.TYPE_MOBILE: return LocaleController.getString(R.string.NetworkUsageMobileTab); + case ListView.TYPE_WIFI: return LocaleController.getString(R.string.NetworkUsageWiFiTab); + case ListView.TYPE_ROAMING: return LocaleController.getString(R.string.NetworkUsageRoamingTab); default: return ""; } } @@ -228,9 +228,9 @@ public ListView(Context context) { } } else if (view instanceof TextCell) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("ResetStatisticsAlertTitle", R.string.ResetStatisticsAlertTitle)); - builder.setMessage(LocaleController.getString("ResetStatisticsAlert", R.string.ResetStatisticsAlert)); - builder.setPositiveButton(LocaleController.getString("Reset", R.string.Reset), (dialogInterface, j) -> { + builder.setTitle(LocaleController.getString(R.string.ResetStatisticsAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.ResetStatisticsAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.Reset), (dialogInterface, j) -> { removedSegments.clear(); for (int i = 0; i < segments.length; ++i) { long size = segments[i].size; @@ -247,7 +247,7 @@ public ListView(Context context) { setup(); updateRows(true); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -425,14 +425,14 @@ private void updateRows(boolean animated) { if (size.outSize > 0 || size.outCount > 0) { sections.add(++i, ItemInner.asCell( -1, 0, 0, - TextUtils.concat(sentIcon, " ", LocaleController.getString("BytesSent", R.string.BytesSent)), + TextUtils.concat(sentIcon, " ", LocaleController.getString(R.string.BytesSent)), AndroidUtilities.formatFileSize(size.outSize) )); } if (size.inSize > 0 || size.inCount > 0) { sections.add(++i, ItemInner.asCell( -1, 0, 0, - TextUtils.concat(receivedIcon, " ", LocaleController.getString("BytesReceived", R.string.BytesReceived)), + TextUtils.concat(receivedIcon, " ", LocaleController.getString(R.string.BytesReceived)), AndroidUtilities.formatFileSize(size.inSize) )); } @@ -443,24 +443,24 @@ private void updateRows(boolean animated) { itemInners.addAll(sections); // itemInners.add(new ItemInner(VIEW_TYPE_END)); if (!empty) { - itemInners.add(ItemInner.asSeparator(LocaleController.getString("DataUsageSectionsInfo", R.string.DataUsageSectionsInfo))); + itemInners.add(ItemInner.asSeparator(LocaleController.getString(R.string.DataUsageSectionsInfo))); } } if (!empty) { - itemInners.add(ItemInner.asHeader(LocaleController.getString("TotalNetworkUsage", R.string.TotalNetworkUsage))); + itemInners.add(ItemInner.asHeader(LocaleController.getString(R.string.TotalNetworkUsage))); itemInners.add(ItemInner.asCell( -1, R.drawable.msg_filled_data_sent, getThemedColor(Theme.key_statisticChartLine_lightblue), - LocaleController.getString("BytesSent", R.string.BytesSent), + LocaleController.getString(R.string.BytesSent), AndroidUtilities.formatFileSize(totalSizeOut) )); itemInners.add(ItemInner.asCell( -1, R.drawable.msg_filled_data_received, getThemedColor(Theme.key_statisticChartLine_green), - LocaleController.getString("BytesReceived", R.string.BytesReceived), + LocaleController.getString(R.string.BytesReceived), AndroidUtilities.formatFileSize(totalSizeIn) )); } @@ -477,27 +477,27 @@ private void updateRows(boolean animated) { -2, R.drawable.msg_download_settings, getThemedColor(Theme.key_statisticChartLine_lightblue), - LocaleController.getString("AutomaticDownloadSettings", R.string.AutomaticDownloadSettings), + LocaleController.getString(R.string.AutomaticDownloadSettings), null )); String info; switch (currentType) { case TYPE_MOBILE: - info = LocaleController.getString("AutomaticDownloadSettingsInfoMobile", R.string.AutomaticDownloadSettingsInfoMobile); + info = LocaleController.getString(R.string.AutomaticDownloadSettingsInfoMobile); break; case TYPE_ROAMING: - info = LocaleController.getString("AutomaticDownloadSettingsInfoRoaming", R.string.AutomaticDownloadSettingsInfoRoaming); + info = LocaleController.getString(R.string.AutomaticDownloadSettingsInfoRoaming); break; default: case TYPE_WIFI: - info = LocaleController.getString("AutomaticDownloadSettingsInfoWiFi", R.string.AutomaticDownloadSettingsInfoWiFi); + info = LocaleController.getString(R.string.AutomaticDownloadSettingsInfoWiFi); break; } itemInners.add(ItemInner.asSeparator(info)); } if (!sections.isEmpty()) { - itemInners.add(new ItemInner(VIEW_TYPE_RESET_BUTTON, LocaleController.getString("ResetStatistics", R.string.ResetStatistics))); + itemInners.add(new ItemInner(VIEW_TYPE_RESET_BUTTON, LocaleController.getString(R.string.ResetStatistics))); } itemInners.add(ItemInner.asSeparator()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DataUsageActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/DataUsageActivity.java index c4c8aca787..b3d26b33ef 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DataUsageActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DataUsageActivity.java @@ -88,7 +88,7 @@ public DataUsageActivity() { @Override public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); - actionBar.setTitle(LocaleController.getString("NetworkUsage", R.string.NetworkUsage)); + actionBar.setTitle(LocaleController.getString(R.string.NetworkUsage)); if (AndroidUtilities.isTablet()) { actionBar.setOccupyStatusBar(false); } @@ -472,13 +472,13 @@ public boolean supportsPredictiveItemAnimations() { ListAdapter adapter = (ListAdapter) listView.getAdapter(); if (position == adapter.resetRow) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("ResetStatisticsAlertTitle", R.string.ResetStatisticsAlertTitle)); - builder.setMessage(LocaleController.getString("ResetStatisticsAlert", R.string.ResetStatisticsAlert)); - builder.setPositiveButton(LocaleController.getString("Reset", R.string.Reset), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.ResetStatisticsAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.ResetStatisticsAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.Reset), (dialogInterface, i) -> { StatsController.getInstance(currentAccount).resetStats(adapter.currentType); adapter.notifyDataSetChanged(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -568,9 +568,9 @@ private void updateTabs() { if (scrollSlidingTextTabStrip == null) { return; } - scrollSlidingTextTabStrip.addTextTab(0, LocaleController.getString("NetworkUsageMobileTab", R.string.NetworkUsageMobileTab)); - scrollSlidingTextTabStrip.addTextTab(1, LocaleController.getString("NetworkUsageWiFiTab", R.string.NetworkUsageWiFiTab)); - scrollSlidingTextTabStrip.addTextTab(2, LocaleController.getString("NetworkUsageRoamingTab", R.string.NetworkUsageRoamingTab)); + scrollSlidingTextTabStrip.addTextTab(0, LocaleController.getString(R.string.NetworkUsageMobileTab)); + scrollSlidingTextTabStrip.addTextTab(1, LocaleController.getString(R.string.NetworkUsageWiFiTab)); + scrollSlidingTextTabStrip.addTextTab(2, LocaleController.getString(R.string.NetworkUsageRoamingTab)); scrollSlidingTextTabStrip.setVisibility(View.VISIBLE); actionBar.setExtraHeight(AndroidUtilities.dp(44)); int id = scrollSlidingTextTabStrip.getCurrentTabId(); @@ -745,7 +745,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TextSettingsCell textCell = (TextSettingsCell) holder.itemView; if (position == resetRow) { textCell.setTag(Theme.key_text_RedRegular); - textCell.setText(LocaleController.getString("ResetStatistics", R.string.ResetStatistics), false); + textCell.setText(LocaleController.getString(R.string.ResetStatistics), false); textCell.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); } else { int type; @@ -767,20 +767,20 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { type = StatsController.TYPE_TOTAL; } if (position == callsSentRow) { - textCell.setTextAndValue(LocaleController.getString("OutgoingCalls", R.string.OutgoingCalls), String.format("%d", StatsController.getInstance(currentAccount).getSentItemsCount(currentType, type)), true); + textCell.setTextAndValue(LocaleController.getString(R.string.OutgoingCalls), String.format("%d", StatsController.getInstance(currentAccount).getSentItemsCount(currentType, type)), true); } else if (position == callsReceivedRow) { - textCell.setTextAndValue(LocaleController.getString("IncomingCalls", R.string.IncomingCalls), String.format("%d", StatsController.getInstance(currentAccount).getRecivedItemsCount(currentType, type)), true); + textCell.setTextAndValue(LocaleController.getString(R.string.IncomingCalls), String.format("%d", StatsController.getInstance(currentAccount).getRecivedItemsCount(currentType, type)), true); } else if (position == callsTotalTimeRow) { String time = AndroidUtilities.formatShortDuration(StatsController.getInstance(currentAccount).getCallsTotalTime(currentType)); - textCell.setTextAndValue(LocaleController.getString("CallsTotalTime", R.string.CallsTotalTime), time, false); + textCell.setTextAndValue(LocaleController.getString(R.string.CallsTotalTime), time, false); } else if (position == messagesSentRow || position == photosSentRow || position == videosSentRow || position == audiosSentRow || position == filesSentRow) { - textCell.setTextAndValue(LocaleController.getString("CountSent", R.string.CountSent), String.format("%d", StatsController.getInstance(currentAccount).getSentItemsCount(currentType, type)), true); + textCell.setTextAndValue(LocaleController.getString(R.string.CountSent), String.format("%d", StatsController.getInstance(currentAccount).getSentItemsCount(currentType, type)), true); } else if (position == messagesReceivedRow || position == photosReceivedRow || position == videosReceivedRow || position == audiosReceivedRow || position == filesReceivedRow) { - textCell.setTextAndValue(LocaleController.getString("CountReceived", R.string.CountReceived), String.format("%d", StatsController.getInstance(currentAccount).getRecivedItemsCount(currentType, type)), true); + textCell.setTextAndValue(LocaleController.getString(R.string.CountReceived), String.format("%d", StatsController.getInstance(currentAccount).getRecivedItemsCount(currentType, type)), true); } else if (position == messagesBytesSentRow || position == photosBytesSentRow || position == videosBytesSentRow || position == audiosBytesSentRow || position == filesBytesSentRow || position == callsBytesSentRow || position == totalBytesSentRow) { - textCell.setTextAndValue(LocaleController.getString("BytesSent", R.string.BytesSent), AndroidUtilities.formatFileSize(StatsController.getInstance(currentAccount).getSentBytesCount(currentType, type)), true); + textCell.setTextAndValue(LocaleController.getString(R.string.BytesSent), AndroidUtilities.formatFileSize(StatsController.getInstance(currentAccount).getSentBytesCount(currentType, type)), true); } else if (position == messagesBytesReceivedRow || position == photosBytesReceivedRow || position == videosBytesReceivedRow || position == audiosBytesReceivedRow || position == filesBytesReceivedRow || position == callsBytesReceivedRow || position == totalBytesReceivedRow) { - textCell.setTextAndValue(LocaleController.getString("BytesReceived", R.string.BytesReceived), AndroidUtilities.formatFileSize(StatsController.getInstance(currentAccount).getReceivedBytesCount(currentType, type)), position == callsBytesReceivedRow); + textCell.setTextAndValue(LocaleController.getString(R.string.BytesReceived), AndroidUtilities.formatFileSize(StatsController.getInstance(currentAccount).getReceivedBytesCount(currentType, type)), position == callsBytesReceivedRow); } } break; @@ -788,19 +788,19 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 2: { HeaderCell headerCell = (HeaderCell) holder.itemView; if (position == totalSectionRow) { - headerCell.setText(LocaleController.getString("TotalDataUsage", R.string.TotalDataUsage)); + headerCell.setText(LocaleController.getString(R.string.TotalDataUsage)); } else if (position == callsSectionRow) { - headerCell.setText(LocaleController.getString("CallsDataUsage", R.string.CallsDataUsage)); + headerCell.setText(LocaleController.getString(R.string.CallsDataUsage)); } else if (position == filesSectionRow) { - headerCell.setText(LocaleController.getString("FilesDataUsage", R.string.FilesDataUsage)); + headerCell.setText(LocaleController.getString(R.string.FilesDataUsage)); } else if (position == audiosSectionRow) { - headerCell.setText(LocaleController.getString("LocalAudioCache", R.string.LocalAudioCache)); + headerCell.setText(LocaleController.getString(R.string.LocalAudioCache)); } else if (position == videosSectionRow) { - headerCell.setText(LocaleController.getString("LocalVideoCache", R.string.LocalVideoCache)); + headerCell.setText(LocaleController.getString(R.string.LocalVideoCache)); } else if (position == photosSectionRow) { - headerCell.setText(LocaleController.getString("LocalPhotoCache", R.string.LocalPhotoCache)); + headerCell.setText(LocaleController.getString(R.string.LocalPhotoCache)); } else if (position == messagesSectionRow) { - headerCell.setText(LocaleController.getString("MessagesDataUsage", R.string.MessagesDataUsage)); + headerCell.setText(LocaleController.getString(R.string.MessagesDataUsage)); } break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DatabaseMigrationHint.java b/TMessagesProj/src/main/java/org/telegram/ui/DatabaseMigrationHint.java index 2744d13ced..07754e57aa 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DatabaseMigrationHint.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DatabaseMigrationHint.java @@ -47,7 +47,7 @@ public DatabaseMigrationHint(Context context, int currentAccount) { title = new TextView(context); title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 24); - title.setText(LocaleController.getString("OptimizingTelegram", R.string.OptimizingTelegram)); + title.setText(LocaleController.getString(R.string.OptimizingTelegram)); title.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); title.setGravity(Gravity.CENTER_HORIZONTAL); container.addView(title, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 50, 32, 50, 0)); @@ -55,14 +55,14 @@ public DatabaseMigrationHint(Context context, int currentAccount) { description1 = new TextView(context); description1.setLineSpacing(AndroidUtilities.dp(2), 1.0f); description1.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - description1.setText(LocaleController.getString("OptimizingTelegramDescription1", R.string.OptimizingTelegramDescription1)); + description1.setText(LocaleController.getString(R.string.OptimizingTelegramDescription1)); description1.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); description1.setGravity(Gravity.CENTER_HORIZONTAL); container.addView(description1, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 36, 20, 36, 0)); description2 = new TextView(context); description2.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - description2.setText(LocaleController.getString("OptimizingTelegramDescription2", R.string.OptimizingTelegramDescription2)); + description2.setText(LocaleController.getString(R.string.OptimizingTelegramDescription2)); description2.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); description2.setGravity(Gravity.CENTER_HORIZONTAL); container.addView(description2, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 36, 24, 36, 0)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DefaultThemesPreviewCell.java b/TMessagesProj/src/main/java/org/telegram/ui/DefaultThemesPreviewCell.java index 9b4af25497..5ffb01068e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DefaultThemesPreviewCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DefaultThemesPreviewCell.java @@ -168,7 +168,7 @@ public Integer getSelectorColor(int position) { addView(dayNightCell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); browseThemesCell = new TextCell(context); - browseThemesCell.setTextAndIcon(LocaleController.getString("SettingsBrowseThemes", R.string.SettingsBrowseThemes), R.drawable.msg_colors, false); + browseThemesCell.setTextAndIcon(LocaleController.getString(R.string.SettingsBrowseThemes), R.drawable.msg_colors, false); addView(browseThemesCell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -269,9 +269,9 @@ public void onAnimationEnd(Animator animation) { } if (Theme.isCurrentThemeDay()) { - dayNightCell.setTextAndIcon(LocaleController.getString("SettingsSwitchToNightMode", R.string.SettingsSwitchToNightMode), darkThemeDrawable, true); + dayNightCell.setTextAndIcon(LocaleController.getString(R.string.SettingsSwitchToNightMode), darkThemeDrawable, true); } else { - dayNightCell.setTextAndIcon(LocaleController.getString("SettingsSwitchToDayMode", R.string.SettingsSwitchToDayMode), darkThemeDrawable, true); + dayNightCell.setTextAndIcon(LocaleController.getString(R.string.SettingsSwitchToDayMode), darkThemeDrawable, true); } Theme.turnOffAutoNight(parentFragment); @@ -288,9 +288,9 @@ public void onAnimationEnd(Animator animation) { if (!Theme.isCurrentThemeDay()) { darkThemeDrawable.setCurrentFrame(darkThemeDrawable.getFramesCount() - 1); - dayNightCell.setTextAndIcon(LocaleController.getString("SettingsSwitchToDayMode", R.string.SettingsSwitchToDayMode), darkThemeDrawable, true); + dayNightCell.setTextAndIcon(LocaleController.getString(R.string.SettingsSwitchToDayMode), darkThemeDrawable, true); } else { - dayNightCell.setTextAndIcon(LocaleController.getString("SettingsSwitchToNightMode", R.string.SettingsSwitchToNightMode), darkThemeDrawable, true); + dayNightCell.setTextAndIcon(LocaleController.getString(R.string.SettingsSwitchToNightMode), darkThemeDrawable, true); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Delegates/ChatActivityMemberRequestsDelegate.java b/TMessagesProj/src/main/java/org/telegram/ui/Delegates/ChatActivityMemberRequestsDelegate.java index d70110ec75..0ba6278cb4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Delegates/ChatActivityMemberRequestsDelegate.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Delegates/ChatActivityMemberRequestsDelegate.java @@ -105,7 +105,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { closeView.setBackground(Theme.createSelectorDrawable(fragment.getThemedColor(Theme.key_inappPlayerClose) & 0x19ffffff, 1, AndroidUtilities.dp(14))); } closeView.setColorFilter(new PorterDuffColorFilter(fragment.getThemedColor(Theme.key_chat_topPanelClose), PorterDuff.Mode.MULTIPLY)); - closeView.setContentDescription(LocaleController.getString("Close", R.string.Close)); + closeView.setContentDescription(LocaleController.getString(R.string.Close)); closeView.setImageResource(R.drawable.miniplayer_close); closeView.setScaleType(ImageView.ScaleType.CENTER); closeView.setOnClickListener((v) -> { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Delegates/MemberRequestsDelegate.java b/TMessagesProj/src/main/java/org/telegram/ui/Delegates/MemberRequestsDelegate.java index 57e15b9521..239ec15808 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Delegates/MemberRequestsDelegate.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Delegates/MemberRequestsDelegate.java @@ -184,8 +184,8 @@ public FlickerLoadingView getLoadingView() { public StickerEmptyView getEmptyView() { if (emptyView == null) { emptyView = new StickerEmptyView(fragment.getParentActivity(), null, StickerEmptyView.STICKER_TYPE_DONE, fragment.getResourceProvider()); - emptyView.title.setText(isChannel ? LocaleController.getString("NoSubscribeRequests", R.string.NoSubscribeRequests) : LocaleController.getString("NoMemberRequests", R.string.NoMemberRequests)); - emptyView.subtitle.setText(isChannel ? LocaleController.getString("NoSubscribeRequestsDescription", R.string.NoSubscribeRequestsDescription) : LocaleController.getString("NoMemberRequestsDescription", R.string.NoMemberRequestsDescription)); + emptyView.title.setText(isChannel ? LocaleController.getString(R.string.NoSubscribeRequests) : LocaleController.getString(R.string.NoMemberRequests)); + emptyView.subtitle.setText(isChannel ? LocaleController.getString(R.string.NoSubscribeRequestsDescription) : LocaleController.getString(R.string.NoMemberRequestsDescription)); emptyView.setAnimateLayoutChange(true); emptyView.setVisibility(GONE); } @@ -198,8 +198,8 @@ public StickerEmptyView getSearchEmptyView() { if (isShowLastItemDivider) { searchEmptyView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite, fragment.getResourceProvider())); } - searchEmptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); - searchEmptyView.subtitle.setText(LocaleController.getString("SearchEmptyViewFilteredSubtitle2", R.string.SearchEmptyViewFilteredSubtitle2)); + searchEmptyView.title.setText(LocaleController.getString(R.string.NoResult)); + searchEmptyView.subtitle.setText(LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitle2)); searchEmptyView.setAnimateLayoutChange(true); searchEmptyView.setVisibility(GONE); } @@ -796,7 +796,7 @@ protected void onDraw(Canvas canvas) { ActionBarMenuSubItem addCell = new ActionBarMenuSubItem(context, true, false); addCell.setColors(Theme.getColor(Theme.key_actionBarDefaultSubmenuItem, resourcesProvider), Theme.getColor(Theme.key_actionBarDefaultSubmenuItemIcon, resourcesProvider)); addCell.setSelectorColor(Theme.getColor(Theme.key_dialogButtonSelector, resourcesProvider)); - addCell.setTextAndIcon(isChannel ? LocaleController.getString("AddToChannel", R.string.AddToChannel) : LocaleController.getString("AddToGroup", R.string.AddToGroup), R.drawable.msg_requests); + addCell.setTextAndIcon(isChannel ? LocaleController.getString(R.string.AddToChannel) : LocaleController.getString(R.string.AddToGroup), R.drawable.msg_requests); addCell.setOnClickListener((v) -> { if (importer != null) { onAddClicked(importer); @@ -808,7 +808,7 @@ protected void onDraw(Canvas canvas) { ActionBarMenuSubItem sendMsgCell = new ActionBarMenuSubItem(context, false, false); sendMsgCell.setColors(Theme.getColor(Theme.key_actionBarDefaultSubmenuItem, resourcesProvider), Theme.getColor(Theme.key_actionBarDefaultSubmenuItemIcon, resourcesProvider)); sendMsgCell.setSelectorColor(Theme.getColor(Theme.key_dialogButtonSelector, resourcesProvider)); - sendMsgCell.setTextAndIcon(LocaleController.getString("SendMessage", R.string.SendMessage), R.drawable.msg_msgbubble3); + sendMsgCell.setTextAndIcon(LocaleController.getString(R.string.SendMessage), R.drawable.msg_msgbubble3); sendMsgCell.setOnClickListener((v) -> { if (importer != null) { isNeedRestoreList = true; @@ -825,7 +825,7 @@ protected void onDraw(Canvas canvas) { ActionBarMenuSubItem dismissCell = new ActionBarMenuSubItem(context, false, true); dismissCell.setColors(Theme.getColor(Theme.key_text_RedBold, resourcesProvider), Theme.getColor(Theme.key_text_RedRegular, resourcesProvider)); dismissCell.setSelectorColor(Theme.getColor(Theme.key_dialogButtonSelector, resourcesProvider)); - dismissCell.setTextAndIcon(LocaleController.getString("DismissRequest", R.string.DismissRequest), R.drawable.msg_remove); + dismissCell.setTextAndIcon(LocaleController.getString(R.string.DismissRequest), R.drawable.msg_remove); dismissCell.setOnClickListener((v) -> { if (importer != null) { onDismissClicked(importer); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DialogOrContactPickerActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/DialogOrContactPickerActivity.java index b0b573d60b..93dd7f33b3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DialogOrContactPickerActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DialogOrContactPickerActivity.java @@ -89,7 +89,7 @@ public DialogOrContactPickerActivity() { args.putBoolean("resetDelegate", false); args.putInt("dialogsType", DialogsActivity.DIALOGS_TYPE_BLOCK); dialogsActivity = new DialogsActivity(args); - dialogsActivity.setDelegate((fragment, dids, message, param, topicsFragment) -> { + dialogsActivity.setDelegate((fragment, dids, message, param, notify, scheduleDate, topicsFragment) -> { if (dids.isEmpty()) { return true; } @@ -119,7 +119,7 @@ public DialogOrContactPickerActivity() { @Override public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); - actionBar.setTitle(LocaleController.getString("BlockUserMultiTitle", R.string.BlockUserMultiTitle)); + actionBar.setTitle(LocaleController.getString(R.string.BlockUserMultiTitle)); if (AndroidUtilities.isTablet()) { actionBar.setOccupyStatusBar(false); } @@ -159,7 +159,7 @@ public void onTextChanged(EditText editText) { contactsActivity.getActionBar().setSearchFieldText(editText.getText().toString()); } }); - searchItem.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.Search)); scrollSlidingTextTabStrip = new ScrollSlidingTextTabStrip(context); scrollSlidingTextTabStrip.setUseSameWidth(true); @@ -623,18 +623,18 @@ private void showBlockAlert(TLRPC.User user) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("BlockUser", R.string.BlockUser)); + builder.setTitle(LocaleController.getString(R.string.BlockUser)); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("AreYouSureBlockContact2", R.string.AreYouSureBlockContact2, ContactsController.formatName(user.first_name, user.last_name)))); - builder.setPositiveButton(LocaleController.getString("BlockContact", R.string.BlockContact), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.BlockContact), (dialogInterface, i) -> { if (MessagesController.isSupportUser(user)) { - AlertsCreator.showSimpleToast(DialogOrContactPickerActivity.this, LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred)); + AlertsCreator.showSimpleToast(DialogOrContactPickerActivity.this, LocaleController.getString(R.string.ErrorOccurred)); } else { MessagesController.getInstance(currentAccount).blockPeer(user.id); - AlertsCreator.showSimpleToast(DialogOrContactPickerActivity.this, LocaleController.getString("UserBlocked", R.string.UserBlocked)); + AlertsCreator.showSimpleToast(DialogOrContactPickerActivity.this, LocaleController.getString(R.string.UserBlocked)); } finishFragment(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -647,8 +647,8 @@ private void updateTabs() { if (scrollSlidingTextTabStrip == null) { return; } - scrollSlidingTextTabStrip.addTextTab(0, LocaleController.getString("BlockUserChatsTitle", R.string.BlockUserChatsTitle)); - scrollSlidingTextTabStrip.addTextTab(1, LocaleController.getString("BlockUserContactsTitle", R.string.BlockUserContactsTitle)); + scrollSlidingTextTabStrip.addTextTab(0, LocaleController.getString(R.string.BlockUserChatsTitle)); + scrollSlidingTextTabStrip.addTextTab(1, LocaleController.getString(R.string.BlockUserContactsTitle)); scrollSlidingTextTabStrip.setVisibility(View.VISIBLE); actionBar.setExtraHeight(AndroidUtilities.dp(44)); int id = scrollSlidingTextTabStrip.getCurrentTabId(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java index a0c4e477b7..0b64a4ce10 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java @@ -9,6 +9,7 @@ package org.telegram.ui; import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.formatPluralStringComma; import static org.telegram.messenger.LocaleController.formatString; import static org.telegram.messenger.LocaleController.getString; @@ -23,6 +24,7 @@ import android.annotation.TargetApi; import android.app.Activity; import android.app.Dialog; +import android.app.NotificationManager; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -48,6 +50,7 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.provider.Settings; import android.text.SpannableStringBuilder; import android.text.TextPaint; import android.text.TextUtils; @@ -180,6 +183,7 @@ import org.telegram.ui.Components.BackButtonMenu; import org.telegram.ui.Components.BackupImageView; import org.telegram.ui.Components.BlurredRecyclerView; +import org.telegram.ui.Components.PermissionRequest; import org.telegram.ui.Stars.StarsController; import org.telegram.ui.Stars.StarsIntroActivity; import org.telegram.ui.Stories.StealthModeAlert; @@ -595,6 +599,7 @@ public void updateList(boolean animated) { private ArrayList selectedDialogs = new ArrayList<>(); public boolean notify = true; + public int scheduleDate; private int canReadCount; private int canPinCount; @@ -2578,6 +2583,9 @@ public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { } if (folderId == 0) { if (added == 2) { + if (SharedConfig.archiveHidden) { + SharedConfig.toggleArchiveHidden(); + } parentPage.dialogsItemAnimator.prepareForRemove(); if (position == 0) { setDialogsListFrozen(true); @@ -2592,6 +2600,8 @@ public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { } ArrayList dialogs = getDialogsArray(currentAccount, parentPage.dialogsType, folderId, false); frozenDialogsList.add(0, dialogs.get(0)); + parentPage.updateList(true); + AndroidUtilities.runOnUIThread(() -> setDialogsListFrozen(false), 300); } else if (added == 1) { RecyclerView.ViewHolder holder = parentPage.listView.findViewHolderForAdapterPosition(0); if (holder != null && holder.itemView instanceof DialogCell) { @@ -2706,7 +2716,7 @@ public float getSwipeVelocityThreshold(float defaultValue) { } public interface DialogsActivityDelegate { - boolean didSelectDialogs(DialogsActivity fragment, ArrayList dids, CharSequence message, boolean param, TopicsFragment topicsFragment); + boolean didSelectDialogs(DialogsActivity fragment, ArrayList dids, CharSequence message, boolean param, boolean notify, int scheduleDate, TopicsFragment topicsFragment); } public DialogsActivity(Bundle args) { @@ -3082,7 +3092,7 @@ public View createView(final Context context) { ActionBarMenu menu = actionBar.createMenu(); doneItem = new ActionBarMenuItem(context, null, Theme.getColor(Theme.key_actionBarDefaultSelector), Theme.getColor(Theme.key_actionBarDefaultIcon), true); - doneItem.setText(LocaleController.getString("Done", R.string.Done).toUpperCase()); + doneItem.setText(LocaleController.getString(R.string.Done).toUpperCase()); actionBar.addView(doneItem, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.RIGHT, 0, 0, 10, 0)); doneItem.setOnClickListener(v -> { filterTabsView.setIsEditing(false); @@ -3093,15 +3103,15 @@ public View createView(final Context context) { if (!onlySelect && searchString == null && folderId == 0) { proxyDrawable = new ProxyDrawable(context); proxyItem = menu.addItem(2, proxyDrawable); - proxyItem.setContentDescription(LocaleController.getString("ProxySettings", R.string.ProxySettings)); + proxyItem.setContentDescription(getString(R.string.ProxySettings)); passcodeDrawable = new RLottieDrawable(R.raw.passcode_lock, "passcode_lock", dp(28), dp(28), true, null); passcodeItem = menu.addItem(1, passcodeDrawable); - passcodeItem.setContentDescription(LocaleController.getString(R.string.AccDescrPasscodeLock)); + passcodeItem.setContentDescription(getString(R.string.AccDescrPasscodeLock)); downloadsItem = menu.addItem(3, new ColorDrawable(Color.TRANSPARENT)); downloadsItem.addView(new DownloadProgressIcon(currentAccount, context)); - downloadsItem.setContentDescription(LocaleController.getString("DownloadsTabs", R.string.DownloadsTabs)); + downloadsItem.setContentDescription(getString(R.string.DownloadsTabs)); downloadsItem.setVisibility(View.GONE); updatePasscodeButton(); @@ -3178,7 +3188,7 @@ public void onSearchExpand() { } updatePasscodeButton(); updateProxyButton(false, false); - actionBar.setBackButtonContentDescription(LocaleController.getString("AccDescrGoBack", R.string.AccDescrGoBack)); + actionBar.setBackButtonContentDescription(getString(R.string.AccDescrGoBack)); NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.needCheckSystemBarColors); ((SizeNotifierFrameLayout) fragmentView).invalidateBlur(); if (optionsItem != null) { @@ -3232,7 +3242,7 @@ public void onSearchCollapse() { actionBar.setBackButtonDrawable(menuDrawable); menuDrawable.setRotation(0, true); } - actionBar.setBackButtonContentDescription(LocaleController.getString("AccDescrOpenMenu", R.string.AccDescrOpenMenu)); + actionBar.setBackButtonContentDescription(getString(R.string.AccDescrOpenMenu)); } NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.needCheckSystemBarColors, true); ((SizeNotifierFrameLayout) fragmentView).invalidateBlur(); @@ -3278,8 +3288,8 @@ public boolean canToggleSearch() { } if (isArchive()) { optionsItem = menu.addItem(4, R.drawable.ic_ab_other); - optionsItem.addSubItem(5, R.drawable.msg_customize, LocaleController.getString("ArchiveSettings")).setColors(getThemedColor(Theme.key_actionBarDefaultSubmenuItem), getThemedColor(Theme.key_actionBarDefaultSubmenuItem)); - optionsItem.addSubItem(6, R.drawable.msg_help, LocaleController.getString("HowDoesItWork")).setColors(getThemedColor(Theme.key_actionBarDefaultSubmenuItem), getThemedColor(Theme.key_actionBarDefaultSubmenuItem)); + optionsItem.addSubItem(5, R.drawable.msg_customize, getString(R.string.ArchiveSettings)).setColors(getThemedColor(Theme.key_actionBarDefaultSubmenuItem), getThemedColor(Theme.key_actionBarDefaultSubmenuItem)); + optionsItem.addSubItem(6, R.drawable.msg_help, getString(R.string.HowDoesItWork)).setColors(getThemedColor(Theme.key_actionBarDefaultSubmenuItem), getThemedColor(Theme.key_actionBarDefaultSubmenuItem)); optionsItem.setOnClickListener(v -> { getContactsController().loadGlobalPrivacySetting(); optionsItem.toggleSubMenu(); @@ -3303,46 +3313,46 @@ public boolean canToggleSearch() { return true; }); - searchItem.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); - searchItem.setContentDescription(LocaleController.getString("Search", R.string.Search)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.Search)); + searchItem.setContentDescription(LocaleController.getString(R.string.Search)); if (onlySelect) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); if (isReplyTo) { actionBar.setTitle(LocaleController.getString(R.string.ReplyToDialog)); } else if (isQuote) { - actionBar.setTitle(LocaleController.getString(R.string.QuoteTo)); + actionBar.setTitle(getString(R.string.QuoteTo)); } else if (initialDialogsType == DIALOGS_TYPE_FORWARD && selectAlertString == null) { - actionBar.setTitle(LocaleController.getString("ForwardTo", R.string.ForwardTo)); + actionBar.setTitle(getString(R.string.ForwardTo)); } else if (initialDialogsType == DIALOGS_TYPE_WIDGET) { - actionBar.setTitle(LocaleController.getString("SelectChats", R.string.SelectChats)); + actionBar.setTitle(getString(R.string.SelectChats)); } else if (initialDialogsType == DIALOGS_TYPE_START_ATTACH_BOT) { if (allowBots && !allowUsers && !allowGroups && !allowChannels) { - actionBar.setTitle(LocaleController.getString("ChooseBot", R.string.ChooseBot)); + actionBar.setTitle(getString(R.string.ChooseBot)); } else if (allowUsers && !allowBots && !allowGroups && !allowChannels) { - actionBar.setTitle(LocaleController.getString("ChooseUser", R.string.ChooseUser)); + actionBar.setTitle(getString(R.string.ChooseUser)); } else if (allowGroups && !allowUsers && !allowBots && !allowChannels) { - actionBar.setTitle(LocaleController.getString("ChooseGroup", R.string.ChooseGroup)); + actionBar.setTitle(getString(R.string.ChooseGroup)); } else if (allowChannels && !allowUsers && !allowBots && !allowGroups) { - actionBar.setTitle(LocaleController.getString("ChooseChannel", R.string.ChooseChannel)); + actionBar.setTitle(getString(R.string.ChooseChannel)); } else { - actionBar.setTitle(LocaleController.getString("SelectChat", R.string.SelectChat)); + actionBar.setTitle(getString(R.string.SelectChat)); } } else if (requestPeerType instanceof TLRPC.TL_requestPeerTypeUser) { if (((TLRPC.TL_requestPeerTypeUser) requestPeerType).bot != null) { if (((TLRPC.TL_requestPeerTypeUser) requestPeerType).bot) { - actionBar.setTitle(LocaleController.getString("ChooseBot", R.string.ChooseBot)); + actionBar.setTitle(getString(R.string.ChooseBot)); } else { - actionBar.setTitle(LocaleController.getString("ChooseUser", R.string.ChooseUser)); + actionBar.setTitle(getString(R.string.ChooseUser)); } } else { - actionBar.setTitle(LocaleController.getString("ChooseUser", R.string.ChooseUser)); + actionBar.setTitle(getString(R.string.ChooseUser)); } } else if (requestPeerType instanceof TLRPC.TL_requestPeerTypeBroadcast) { - actionBar.setTitle(LocaleController.getString("ChooseChannel", R.string.ChooseChannel)); + actionBar.setTitle(getString(R.string.ChooseChannel)); } else if (requestPeerType instanceof TLRPC.TL_requestPeerTypeChat) { - actionBar.setTitle(LocaleController.getString("ChooseGroup", R.string.ChooseGroup)); + actionBar.setTitle(getString(R.string.ChooseGroup)); } else { - actionBar.setTitle(LocaleController.getString("SelectChat", R.string.SelectChat)); + actionBar.setTitle(getString(R.string.SelectChat)); } actionBar.setBackgroundColor(Theme.getColor(Theme.key_actionBarDefault)); actionBar.setOnLongClickListener(v -> { @@ -3358,10 +3368,10 @@ public boolean canToggleSearch() { } else { actionBar.setBackButtonDrawable(menuDrawable = new MenuDrawable()); menuDrawable.setRoundCap(); - actionBar.setBackButtonContentDescription(LocaleController.getString("AccDescrOpenMenu", R.string.AccDescrOpenMenu)); + actionBar.setBackButtonContentDescription(getString(R.string.AccDescrOpenMenu)); } if (folderId != 0) { - actionBar.setTitle(LocaleController.getString("ArchivedChats", R.string.ArchivedChats)); + actionBar.setTitle(getString(R.string.ArchivedChats)); } else { statusDrawable = new AnimatedEmojiDrawable.SwapAnimatedEmojiDrawable(null, dp(26)); statusDrawable.center = true; @@ -3397,8 +3407,8 @@ public boolean canToggleSearch() { }); if ( - (initialDialogsType == DIALOGS_TYPE_DEFAULT && !onlySelect || initialDialogsType == DIALOGS_TYPE_FORWARD) && - folderId == 0 && TextUtils.isEmpty(searchString) + (initialDialogsType == DIALOGS_TYPE_DEFAULT && !onlySelect || initialDialogsType == DIALOGS_TYPE_FORWARD) && + folderId == 0 && TextUtils.isEmpty(searchString) ) { filterTabsView = new FilterTabsView(context) { @Override @@ -3427,7 +3437,7 @@ protected void onDefaultTabMoved() { performHapticFeedback(HapticFeedbackConstants.KEYBOARD_PRESS, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); } catch (Exception ignore) { } - topBulletin = BulletinFactory.of(DialogsActivity.this).createSimpleBulletin(R.raw.filter_reorder, AndroidUtilities.replaceTags(LocaleController.formatString("LimitReachedReorderFolder", R.string.LimitReachedReorderFolder, LocaleController.getString(R.string.FilterAllChats))), LocaleController.getString("PremiumMore", R.string.PremiumMore), Bulletin.DURATION_PROLONG, () -> { + topBulletin = BulletinFactory.of(DialogsActivity.this).createSimpleBulletin(R.raw.filter_reorder, AndroidUtilities.replaceTags(LocaleController.formatString(R.string.LimitReachedReorderFolder, LocaleController.getString(R.string.FilterAllChats))), LocaleController.getString(R.string.PremiumMore), Bulletin.DURATION_PROLONG, () -> { showDialog(new PremiumFeatureBottomSheet(DialogsActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_ADVANCED_CHAT_MANAGEMENT, true)); filterTabsView.setIsEditing(false); showDoneItem(false); @@ -3436,6 +3446,7 @@ protected void onDefaultTabMoved() { } }; + filterTabsViewIsVisible = false; filterTabsView.setVisibility(View.GONE); canShowFilterTabsView = false; filterTabsView.setDelegate(new FilterTabsView.FilterTabsViewDelegate() { @@ -3445,10 +3456,10 @@ private void showDeleteAlert(MessagesController.DialogFilter dialogFilter) { FolderBottomSheet.showForDeletion(DialogsActivity.this, dialogFilter.id, null); } else { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("FilterDelete", R.string.FilterDelete)); - builder.setMessage(LocaleController.getString("FilterDeleteAlert", R.string.FilterDeleteAlert)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialog2, which2) -> { + builder.setTitle(LocaleController.getString(R.string.FilterDelete)); + builder.setMessage(LocaleController.getString(R.string.FilterDeleteAlert)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialog2, which2) -> { TLRPC.TL_messages_updateDialogFilter req = new TLRPC.TL_messages_updateDialogFilter(); req.id = dialogFilter.id; getConnectionsManager().sendRequest(req, null); @@ -3638,15 +3649,15 @@ public boolean didSelectTab(FilterTabsView.TabView tabView, boolean selected) { filterOptions = ItemOptions.makeOptions(DialogsActivity.this, tabView) .setScrimViewBackground(Theme.createRoundRectDrawable(dp(6), 0, Theme.getColor(Theme.key_actionBarDefault))) - .addIf(getMessagesController().getDialogFilters().size() > 1, R.drawable.tabs_reorder, LocaleController.getString("FilterReorder", R.string.FilterReorder), () -> { + .addIf(getMessagesController().getDialogFilters().size() > 1, R.drawable.tabs_reorder, LocaleController.getString(R.string.FilterReorder), () -> { resetScroll(); filterTabsView.setIsEditing(true); showDoneItem(true); }) - .add(R.drawable.msg_edit, defaultTab ? LocaleController.getString("FilterEditAll", R.string.FilterEditAll) : LocaleController.getString("FilterEdit", R.string.FilterEdit), () -> { + .add(R.drawable.msg_edit, defaultTab ? LocaleController.getString(R.string.FilterEditAll) : LocaleController.getString(R.string.FilterEdit), () -> { presentFragment(defaultTab ? new FiltersSetupActivity() : new FilterCreateActivity(dialogFilter)); }) - .addIf(!NaConfig.INSTANCE.getHideFilterMuteAll().Bool() && dialogFilter != null && !dialogs.isEmpty(), muteAll ? R.drawable.msg_mute : R.drawable.msg_unmute, muteAll ? LocaleController.getString("FilterMuteAll", R.string.FilterMuteAll) : LocaleController.getString("FilterUnmuteAll", R.string.FilterUnmuteAll), () -> { + .addIf(!NaConfig.INSTANCE.getHideFilterMuteAll().Bool() && dialogFilter != null && !dialogs.isEmpty(), muteAll ? R.drawable.msg_mute : R.drawable.msg_unmute, muteAll ? LocaleController.getString(R.string.FilterMuteAll) : LocaleController.getString(R.string.FilterUnmuteAll), () -> { int count = 0; for (int i = 0; i < dialogs.size(); ++i) { TLRPC.Dialog dialog = dialogs.get(i); @@ -3657,17 +3668,17 @@ public boolean didSelectTab(FilterTabsView.TabView tabView, boolean selected) { } BulletinFactory.createMuteBulletin(DialogsActivity.this, finalMuteAll, count, null).show(); }) - .addIf(hasUnread, R.drawable.msg_markread, LocaleController.getString("MarkAllAsRead", R.string.MarkAllAsRead), () -> { + .addIf(hasUnread, R.drawable.msg_markread, LocaleController.getString(R.string.MarkAllAsRead), () -> { markDialogsAsRead(dialogs); }) - .addIf(hasShare, R.drawable.msg_share, FilterCreateActivity.withNew(filter != null && filter.isMyChatlist() ? -1 : 0, LocaleController.getString("LinkActionShare", R.string.LinkActionShare), true), () -> { + .addIf(hasShare, R.drawable.msg_share, FilterCreateActivity.withNew(filter != null && filter.isMyChatlist() ? -1 : 0, LocaleController.getString(R.string.LinkActionShare), true), () -> { if (shareEmpty[0]) { presentFragment(new FilterChatlistActivity(finalFilter, null)); } else { FilterCreateActivity.FilterInvitesBottomSheet.show(DialogsActivity.this, finalFilter, null); } }) - .addIf(!defaultTab, R.drawable.msg_delete, LocaleController.getString("FilterDeleteItem", R.string.FilterDeleteItem), true, () -> { + .addIf(!defaultTab, R.drawable.msg_delete, LocaleController.getString(R.string.FilterDeleteItem), true, () -> { showDeleteAlert(dialogFilter); }) .setGravity(Gravity.LEFT) @@ -3882,7 +3893,7 @@ public boolean processQr(String text, Runnable onLoadEnd) { currentCount = 0; } if (currentCount + neverShow.size() > 100) { - showDialog(AlertsCreator.createSimpleAlert(getParentActivity(), LocaleController.getString("FilterAddToAlertFullTitle", R.string.FilterAddToAlertFullTitle), LocaleController.getString("FilterAddToAlertFullText", R.string.FilterAddToAlertFullText)).create()); + showDialog(AlertsCreator.createSimpleAlert(getParentActivity(), LocaleController.getString(R.string.FilterAddToAlertFullTitle), LocaleController.getString(R.string.FilterAddToAlertFullText)).create()); return; } if (!neverShow.isEmpty()) { @@ -4276,7 +4287,7 @@ public void didFinishChatCreation(GroupCreateFinalActivity fragment, long chatId if (closeFragment) { removeSelfFromStack(); } - dialogsActivityDelegate.didSelectDialogs(DialogsActivity.this, arrayList, null, true, null); + dialogsActivityDelegate.didSelectDialogs(DialogsActivity.this, arrayList, null, true, notify, scheduleDate, null); } @Override @@ -4473,7 +4484,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { viewPage.archivePullViewState = SharedConfig.archiveHidden ? ARCHIVE_ITEM_STATE_HIDDEN : ARCHIVE_ITEM_STATE_PINNED; if (viewPage.pullForegroundDrawable == null && folderId == 0) { - viewPage.pullForegroundDrawable = new PullForegroundDrawable(LocaleController.getString("AccSwipeForArchive", R.string.AccSwipeForArchive), LocaleController.getString("AccReleaseForArchive", R.string.AccReleaseForArchive)) { + viewPage.pullForegroundDrawable = new PullForegroundDrawable(LocaleController.getString(R.string.AccSwipeForArchive), LocaleController.getString(R.string.AccReleaseForArchive)) { @Override protected float getViewOffset() { return viewPage.listView.getViewOffset(); @@ -4598,7 +4609,7 @@ public void getOutline(View view, Outline outline) { floatingButton2.setScaleType(ImageView.ScaleType.CENTER); floatingButton2.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayIcon), PorterDuff.Mode.MULTIPLY)); floatingButton2.setImageResource(R.drawable.fab_compose_small); - floatingButton2Container.setContentDescription(LocaleController.getString("NewMessageTitle", R.string.NewMessageTitle)); + floatingButton2Container.setContentDescription(LocaleController.getString(R.string.NewMessageTitle)); floatingButton2Container.addView(floatingButton2, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); floating2ProgressView = new RadialProgressView(context); @@ -4627,7 +4638,7 @@ public void getOutline(View view, Outline outline) { for (int i = 0; i < selectedDialogs.size(); i++) { topicKeys.add(MessagesStorage.TopicKey.of(selectedDialogs.get(i), 0)); } - delegate.didSelectDialogs(DialogsActivity.this, topicKeys, null, false, null); + delegate.didSelectDialogs(DialogsActivity.this, topicKeys, null, false, notify, scheduleDate, null); } else { if (floatingButton.getVisibility() != View.VISIBLE) { return; @@ -4808,7 +4819,7 @@ public void onMessageSend(CharSequence message, boolean notify, int scheduleDate for (int i = 0; i < selectedDialogs.size(); i++) { topicKeys.add(MessagesStorage.TopicKey.of(selectedDialogs.get(i), 0)); } - delegate.didSelectDialogs(DialogsActivity.this, topicKeys, message, false, null); + delegate.didSelectDialogs(DialogsActivity.this, topicKeys, message, false, notify, scheduleDate, null); } @Override @@ -5006,7 +5017,7 @@ public void getOutline(View view, Outline outline) { for (int i = 0; i < selectedDialogs.size(); i++) { topicKeys.add(MessagesStorage.TopicKey.of(selectedDialogs.get(i), 0)); } - delegate.didSelectDialogs(DialogsActivity.this, topicKeys, commentView.getFieldText(), false, null); + delegate.didSelectDialogs(DialogsActivity.this, topicKeys, commentView.getFieldText(), false, notify, scheduleDate, null); }); writeButtonBackground.setOnLongClickListener(v -> { if (isNextButton) { @@ -5057,10 +5068,10 @@ public void onUserLongPressed(View view, long dialogId) { } return; } - filterOptions.add(R.drawable.msg_stories_add, LocaleController.getString("AddStory", R.string.AddStory), Theme.key_actionBarDefaultSubmenuItemIcon, Theme.key_actionBarDefaultSubmenuItem, () -> { + filterOptions.add(R.drawable.msg_stories_add, LocaleController.getString(R.string.AddStory), Theme.key_actionBarDefaultSubmenuItemIcon, Theme.key_actionBarDefaultSubmenuItem, () -> { dialogStoriesCell.openStoryRecorder(); }); - filterOptions.add(R.drawable.msg_stories_archive, LocaleController.getString("ArchivedStories", R.string.ArchivedStories), Theme.key_actionBarDefaultSubmenuItemIcon, Theme.key_actionBarDefaultSubmenuItem, () -> { + filterOptions.add(R.drawable.msg_stories_archive, LocaleController.getString(R.string.ArchivedStories), Theme.key_actionBarDefaultSubmenuItemIcon, Theme.key_actionBarDefaultSubmenuItem, () -> { Bundle args = new Bundle(); args.putLong("dialog_id", UserConfig.getInstance(currentAccount).getClientUserId()); args.putInt("type", MediaActivity.TYPE_STORIES); @@ -5068,7 +5079,7 @@ public void onUserLongPressed(View view, long dialogId) { MediaActivity mediaActivity = new MediaActivity(args, null); presentFragment(mediaActivity); }); - filterOptions.add(R.drawable.msg_stories_saved, LocaleController.getString("SavedStories", R.string.SavedStories), Theme.key_actionBarDefaultSubmenuItemIcon, Theme.key_actionBarDefaultSubmenuItem, () -> { + filterOptions.add(R.drawable.msg_stories_saved, LocaleController.getString(R.string.SavedStories), Theme.key_actionBarDefaultSubmenuItemIcon, Theme.key_actionBarDefaultSubmenuItem, () -> { Bundle args = new Bundle(); args.putLong("dialog_id", UserConfig.getInstance(currentAccount).getClientUserId()); args.putInt("type", MediaActivity.TYPE_STORIES); @@ -5095,21 +5106,21 @@ public void onUserLongPressed(View view, long dialogId) { } } if (dialogId < 0 && getStoriesController().canPostStories(dialogId)) { - filterOptions.add(R.drawable.msg_stories_add, LocaleController.getString("AddStory", R.string.AddStory), Theme.key_actionBarDefaultSubmenuItemIcon, Theme.key_actionBarDefaultSubmenuItem, () -> { + filterOptions.add(R.drawable.msg_stories_add, LocaleController.getString(R.string.AddStory), Theme.key_actionBarDefaultSubmenuItemIcon, Theme.key_actionBarDefaultSubmenuItem, () -> { dialogStoriesCell.openStoryRecorder(dialogId); }); } filterOptions - .addIf(dialogId > 0, R.drawable.msg_discussion, LocaleController.getString("SendMessage", R.string.SendMessage), () -> { + .addIf(dialogId > 0, R.drawable.msg_discussion, LocaleController.getString(R.string.SendMessage), () -> { presentFragment(ChatActivity.of(dialogId)); }) - .addIf(dialogId > 0, R.drawable.msg_openprofile, LocaleController.getString("OpenProfile", R.string.OpenProfile), () -> { + .addIf(dialogId > 0, R.drawable.msg_openprofile, LocaleController.getString(R.string.OpenProfile), () -> { presentFragment(ProfileActivity.of(dialogId)); }) .addIf(dialogId < 0, R.drawable.msg_channel, LocaleController.getString(ChatObject.isChannelAndNotMegaGroup(chat) ? R.string.OpenChannel2 : R.string.OpenGroup2), () -> { presentFragment(ChatActivity.of(dialogId)); - }).addIf(!muted && dialogId > 0, R.drawable.msg_mute, LocaleController.getString("NotificationsStoryMute2", R.string.NotificationsStoryMute2), () -> { + }).addIf(!muted && dialogId > 0, R.drawable.msg_mute, LocaleController.getString(R.string.NotificationsStoryMute2), () -> { MessagesController.getNotificationsSettings(currentAccount).edit().putBoolean("stories_" + key, false).apply(); getNotificationsController().updateServerNotificationsSettings(dialogId, 0); TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(dialogId); @@ -5119,7 +5130,7 @@ public void onUserLongPressed(View view, long dialogId) { name = name.substring(0, index); } BulletinFactory.of(DialogsActivity.this).createUsersBulletin(Arrays.asList(user), AndroidUtilities.replaceTags(LocaleController.formatString("NotificationsStoryMutedHint", R.string.NotificationsStoryMutedHint, name))).show(); - }).makeMultiline(false).addIf(muted && dialogId > 0, R.drawable.msg_unmute, LocaleController.getString("NotificationsStoryUnmute2", R.string.NotificationsStoryUnmute2), () -> { + }).makeMultiline(false).addIf(muted && dialogId > 0, R.drawable.msg_unmute, LocaleController.getString(R.string.NotificationsStoryUnmute2), () -> { MessagesController.getNotificationsSettings(currentAccount).edit().putBoolean("stories_" + key, true).apply(); getNotificationsController().updateServerNotificationsSettings(dialogId, 0); TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(dialogId); @@ -5158,9 +5169,9 @@ public void onUserLongPressed(View view, long dialogId) { } }); showDialog(stealthModeAlert); - }).makeMultiline(false).addIf(!isArchive(), R.drawable.msg_archive, LocaleController.getString("ArchivePeerStories", R.string.ArchivePeerStories), () -> { + }).makeMultiline(false).addIf(!isArchive(), R.drawable.msg_archive, LocaleController.getString(R.string.ArchivePeerStories), () -> { toggleArciveForStory(dialogId); - }).makeMultiline(false).addIf(isArchive(), R.drawable.msg_unarchive, LocaleController.getString("UnarchiveStories", R.string.UnarchiveStories), () -> { + }).makeMultiline(false).addIf(isArchive(), R.drawable.msg_unarchive, LocaleController.getString(R.string.UnarchiveStories), () -> { toggleArciveForStory(dialogId); }).makeMultiline(false); } @@ -5263,7 +5274,6 @@ public void setAlpha(float alpha) { } searchIsShowed = false; - updateFilterTabs(true, false); if (searchString != null) { showSearch(true, false, false); @@ -5470,6 +5480,7 @@ void setOpenProgress(float progress) { } } }; + updateFilterTabs(true, false); rightSlidingDialogContainer.setOpenProgress(0f); contentView.addView(rightSlidingDialogContainer, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); contentView.addView(dialogStoriesCell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, DialogStoriesCell.HEIGHT_IN_DP)); @@ -5912,7 +5923,7 @@ private void updateDialogsHint() { updateDialogsHint(); }).show(); }); - dialogsHintCell.setText(StarsIntroActivity.replaceStarsWithPlain(formatString(R.string.StarsSubscriptionExpiredHintTitle, starsNeeded - c.balance <= 0 ? starsNeeded : starsNeeded - c.balance, starsNeededName), .72f), LocaleController.getString(R.string.StarsSubscriptionExpiredHintText)); + dialogsHintCell.setText(StarsIntroActivity.replaceStarsWithPlain(formatPluralStringComma("StarsSubscriptionExpiredHintTitle2", (int) (starsNeeded - c.balance <= 0 ? starsNeeded : starsNeeded - c.balance), starsNeededName), .72f), LocaleController.getString(R.string.StarsSubscriptionExpiredHintText)); dialogsHintCell.setOnCloseListener(v -> { MessagesController.getInstance(currentAccount).removeSuggestion(0, "STARS_SUBSCRIPTION_LOW_BALANCE"); ChangeBounds transition = new ChangeBounds(); @@ -5947,7 +5958,7 @@ private void updateDialogsHint() { TransitionManager.beginDelayedTransition((ViewGroup) dialogsHintCell.getParent(), transition); updateDialogsHint(); BulletinFactory.of(this) - .createSimpleBulletin(R.raw.chats_infotip, LocaleController.getString("BoostingPremiumChristmasToast", R.string.BoostingPremiumChristmasToast), 4) + .createSimpleBulletin(R.raw.chats_infotip, LocaleController.getString(R.string.BoostingPremiumChristmasToast), 4) .setDuration(Bulletin.DURATION_PROLONG) .show(); }); @@ -6039,7 +6050,7 @@ private void updateDialogsHint() { dialogsHintCell.setCompact(false); dialogsHintCell.setOnClickListener(v -> UserSelectorBottomSheet.open()); dialogsHintCell.setText(Emoji.replaceEmoji(AndroidUtilities.replaceSingleTag( - LocaleController.getString("GiftPremiumEventAdsTitle", R.string.GiftPremiumEventAdsTitle), + LocaleController.getString(R.string.GiftPremiumEventAdsTitle), Theme.key_windowBackgroundWhiteValueText, AndroidUtilities.REPLACING_TAG_TYPE_LINKBOLD, null @@ -6051,7 +6062,7 @@ private void updateDialogsHint() { TransitionManager.beginDelayedTransition((ViewGroup) dialogsHintCell.getParent(), transition); updateDialogsHint(); BulletinFactory.of(this) - .createSimpleBulletin(R.raw.chats_infotip, LocaleController.getString("BoostingPremiumChristmasToast", R.string.BoostingPremiumChristmasToast), 4) + .createSimpleBulletin(R.raw.chats_infotip, LocaleController.getString(R.string.BoostingPremiumChristmasToast), 4) .setDuration(Bulletin.DURATION_PROLONG) .show(); }); @@ -6241,7 +6252,7 @@ private void createGroupForThis() { if (delegate != null) { ArrayList keys = new ArrayList<>(); keys.add(MessagesStorage.TopicKey.of(-chatId, 0)); - delegate.didSelectDialogs(DialogsActivity.this, keys, null, false, null); + delegate.didSelectDialogs(DialogsActivity.this, keys, null, false, notify, scheduleDate, null); } } ); @@ -6346,7 +6357,7 @@ public void didFinishChatCreation(GroupCreateFinalActivity fragment, long chatId if (delegate != null) { ArrayList keys = new ArrayList<>(); keys.add(MessagesStorage.TopicKey.of(-chatId, 0)); - delegate.didSelectDialogs(DialogsActivity.this, keys, null, false, null); + delegate.didSelectDialogs(DialogsActivity.this, keys, null, false, notify, scheduleDate, null); } } ); @@ -6581,15 +6592,15 @@ private void createActionMode(String tag) { pinItem = actionMode.addItemWithWidth(pin, R.drawable.msg_pin, dp(54)); muteItem = actionMode.addItemWithWidth(mute, R.drawable.msg_mute, dp(54)); archive2Item = actionMode.addItemWithWidth(archive2, R.drawable.msg_archive, dp(54)); - deleteItem = actionMode.addItemWithWidth(delete, R.drawable.msg_delete, dp(54), LocaleController.getString("Delete", R.string.Delete)); - ActionBarMenuItem otherItem = actionMode.addItemWithWidth(0, R.drawable.ic_ab_other, dp(54), LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); - archiveItem = otherItem.addSubItem(archive, R.drawable.msg_archive, LocaleController.getString("Archive", R.string.Archive)); - pin2Item = otherItem.addSubItem(pin2, R.drawable.msg_pin, LocaleController.getString("DialogPin", R.string.DialogPin)); - addToFolderItem = otherItem.addSubItem(add_to_folder, R.drawable.msg_addfolder, LocaleController.getString("FilterAddTo", R.string.FilterAddTo)); - removeFromFolderItem = otherItem.addSubItem(remove_from_folder, R.drawable.msg_removefolder, LocaleController.getString("FilterRemoveFrom", R.string.FilterRemoveFrom)); - readItem = otherItem.addSubItem(read, R.drawable.msg_markread, LocaleController.getString("MarkAsRead", R.string.MarkAsRead)); - clearItem = otherItem.addSubItem(clear, R.drawable.msg_clear, LocaleController.getString("ClearHistory", R.string.ClearHistory)); - blockItem = otherItem.addSubItem(block, R.drawable.msg_block, LocaleController.getString("BlockUser", R.string.BlockUser)); + deleteItem = actionMode.addItemWithWidth(delete, R.drawable.msg_delete, dp(54), LocaleController.getString(R.string.Delete)); + ActionBarMenuItem otherItem = actionMode.addItemWithWidth(0, R.drawable.ic_ab_other, dp(54), LocaleController.getString(R.string.AccDescrMoreOptions)); + archiveItem = otherItem.addSubItem(archive, R.drawable.msg_archive, LocaleController.getString(R.string.Archive)); + pin2Item = otherItem.addSubItem(pin2, R.drawable.msg_pin, LocaleController.getString(R.string.DialogPin)); + addToFolderItem = otherItem.addSubItem(add_to_folder, R.drawable.msg_addfolder, LocaleController.getString(R.string.FilterAddTo)); + removeFromFolderItem = otherItem.addSubItem(remove_from_folder, R.drawable.msg_removefolder, LocaleController.getString(R.string.FilterRemoveFrom)); + readItem = otherItem.addSubItem(read, R.drawable.msg_markread, LocaleController.getString(R.string.MarkAsRead)); + clearItem = otherItem.addSubItem(clear, R.drawable.msg_clear, LocaleController.getString(R.string.ClearHistory)); + blockItem = otherItem.addSubItem(block, R.drawable.msg_block, LocaleController.getString(R.string.BlockUser)); muteItem.setOnLongClickListener(e -> { performSelectedDialogsAction(selectedDialogs, mute, true, true); @@ -6712,7 +6723,7 @@ private void updateFilterTabs(boolean force, boolean animated) { MessagesController.DialogFilter dialogFilter = filters.get(a); if (filters.get(a).isDefault()) { if (filterTabsView.showAllChatsTab) - filterTabsView.addTab(a, 0, LocaleController.getString("FilterAllChats", R.string.FilterAllChats), "\uD83D\uDCAC", true, filters.get(a).locked); + filterTabsView.addTab(a, 0, LocaleController.getString(R.string.FilterAllChats), "\uD83D\uDCAC", true, filters.get(a).locked); } else { filterTabsView.addTab(a, filters.get(a).localId, filters.get(a).name, filters.get(a).emoticon == null ? "\uD83D\uDCAC" : filters.get(a).emoticon, false, filters.get(a).locked); } @@ -6900,6 +6911,7 @@ public void onResume() { } else { tosAccepted = true; } + final NotificationManager notificationManager = (NotificationManager) getContext().getSystemService(Context.NOTIFICATION_SERVICE); if (tosAccepted && folderId == 0 && checkPermission && !onlySelect && Build.VERSION.SDK_INT >= 23) { Activity activity = getParentActivity(); if (activity != null) { @@ -6915,18 +6927,18 @@ public void onResume() { if (hasNotNotificationsPermission || hasNotContactsPermission || hasNotStoragePermission) { askingForPermissions = true; if (hasNotNotificationsPermission && NotificationPermissionDialog.shouldAsk(activity)) { - NotificationPermissionDialog sheet = new NotificationPermissionDialog(activity, granted -> { - if (granted) { - activity.requestPermissions(new String[] { Manifest.permission.POST_NOTIFICATIONS }, 1); + PermissionRequest.requestPermission(Manifest.permission.POST_NOTIFICATIONS, granted -> { + if (!granted) { + showDialog(new NotificationPermissionDialog(activity, !PermissionRequest.canAskPermission(Manifest.permission.POST_NOTIFICATIONS), granted2 -> { + if (!granted2) return; + if (!PermissionRequest.canAskPermission(Manifest.permission.POST_NOTIFICATIONS)) { + PermissionRequest.showPermissionSettings(Manifest.permission.POST_NOTIFICATIONS); + } else { + activity.requestPermissions(new String[] { Manifest.permission.POST_NOTIFICATIONS }, 1); + } + })); } }); - if (showDialog(sheet) == null) { - try { - sheet.show(); - } catch (Throwable throwable) { - FileLog.e(throwable); - } - } } else if (hasNotContactsPermission && askAboutContacts && getUserConfig().syncContacts && activity.shouldShowRequestPermissionRationale(Manifest.permission.READ_CONTACTS)) { AlertDialog.Builder builder = AlertsCreator.createContactsPermissionDialog(activity, param -> { askAboutContacts = param != 0; @@ -6937,7 +6949,7 @@ public void onResume() { } else if (hasNotStoragePermission && activity.shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)) { if (activity instanceof BasePermissionsActivity) { BasePermissionsActivity basePermissionsActivity = (BasePermissionsActivity) activity; - showDialog(permissionDialog = basePermissionsActivity.createPermissionErrorAlert(R.raw.permission_request_folder, LocaleController.getString(R.string.PermissionStorageWithHint))); + showDialog(permissionDialog = basePermissionsActivity.createPermissionErrorAlert(R.raw.permission_request_folder, getString(R.string.PermissionStorageWithHint))); } } else { askForPermissons(true); @@ -6945,7 +6957,7 @@ public void onResume() { } }, afterSignup && (hasNotContactsPermission || hasNotNotificationsPermission) ? 4000 : 0); } - } else if (!onlySelect && XiaomiUtilities.isMIUI() && Build.VERSION.SDK_INT >= 19 && !XiaomiUtilities.isCustomPermissionGranted(XiaomiUtilities.OP_SHOW_WHEN_LOCKED)) { + } else if (!onlySelect && folderId == 0 && XiaomiUtilities.isMIUI() && Build.VERSION.SDK_INT >= 19 && !XiaomiUtilities.isCustomPermissionGranted(XiaomiUtilities.OP_SHOW_WHEN_LOCKED)) { if (getParentActivity() == null) { return; } @@ -6954,15 +6966,15 @@ public void onResume() { } showDialog(new AlertDialog.Builder(getParentActivity()) .setTopAnimation(R.raw.permission_request_apk, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)) - .setMessage(LocaleController.getString("PermissionXiaomiLockscreen", R.string.PermissionXiaomiLockscreen)) - .setPositiveButton(LocaleController.getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialog, which) -> { + .setMessage(getString(R.string.PermissionXiaomiLockscreen)) + .setPositiveButton(getString(R.string.PermissionOpenSettings), (dialog, which) -> { Intent intent = XiaomiUtilities.getPermissionManagerIntent(); if (intent != null) { try { getParentActivity().startActivity(intent); } catch (Exception x) { try { - intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); getParentActivity().startActivity(intent); } catch (Exception xx) { @@ -6971,8 +6983,31 @@ public void onResume() { } } }) - .setNegativeButton(LocaleController.getString("ContactsPermissionAlertNotNow", R.string.ContactsPermissionAlertNotNow), (dialog, which) -> MessagesController.getGlobalNotificationsSettings().edit().putBoolean("askedAboutMiuiLockscreen", true).commit()) + .setNegativeButton(getString(R.string.ContactsPermissionAlertNotNow), (dialog, which) -> MessagesController.getGlobalNotificationsSettings().edit().putBoolean("askedAboutMiuiLockscreen", true).commit()) .create()); + } else if (folderId == 0 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE && !notificationManager.canUseFullScreenIntent()) { + if (getParentActivity() == null) { + return; + } + if (MessagesController.getGlobalNotificationsSettings().getBoolean("askedAboutFSILockscreen", false)) { + return; + } + showDialog(new AlertDialog.Builder(getParentActivity()) + .setTopAnimation(R.raw.permission_request_apk, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)) + .setMessage(getString(R.string.PermissionFSILockscreen)) + .setPositiveButton(getString(R.string.PermissionOpenSettings), (dialog, which) -> { + Intent intent = new Intent(Settings.ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT); + intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); + if (intent != null) { + try { + getParentActivity().startActivity(intent); + } catch (Exception x) { + FileLog.e(x); + } + } + }) + .setNegativeButton(getString(R.string.ContactsPermissionAlertNotNow), (dialog, which) -> MessagesController.getGlobalNotificationsSettings().edit().putBoolean("askedAboutFSILockscreen", true).commit()) + .create()); } showFiltersHint(); if (viewPages != null) { @@ -7032,6 +7067,15 @@ public int getTopOffset(int tag) { hideFloatingButton(true); } checkSuggestClearDatabase(); + if (filterTabsView != null && viewPages[0] != null && viewPages[0].dialogsAdapter != null) { + int dialogsType = viewPages[0].dialogsAdapter.getDialogsType(); + if (dialogsType == DIALOGS_TYPE_FOLDER1 || dialogsType == DIALOGS_TYPE_FOLDER2) { + MessagesController.DialogFilter dialogFilter = getMessagesController().selectedDialogFilter[dialogsType == DIALOGS_TYPE_FOLDER1 ? 0 : 1]; + if (dialogFilter != null) { + filterTabsView.selectTabWithStableId(dialogFilter.localId); + } + } + } } @Override @@ -7871,7 +7915,7 @@ private void onItemClick(View view, int position, RecyclerListView.Adapter adapt int dialogsType = dialogsAdapter.getDialogsType(); if (dialogsType == DIALOGS_TYPE_FOLDER1 || dialogsType == DIALOGS_TYPE_FOLDER2) { MessagesController.DialogFilter dialogFilter = getMessagesController().selectedDialogFilter[dialogsType == DIALOGS_TYPE_FOLDER1 ? 0 : 1]; - filterId = dialogFilter.id; + filterId = dialogFilter == null ? 0 : dialogFilter.id; } TLObject object = dialogsAdapter.getItem(position); if (object instanceof TLRPC.User) { @@ -8230,7 +8274,7 @@ private boolean onItemLongClick(RecyclerListView listView, View view, int positi Object item = searchViewPager.dialogsSearchAdapter.getItem(position); if (!searchViewPager.dialogsSearchAdapter.isSearchWas()) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("ClearSearchSingleAlertTitle", R.string.ClearSearchSingleAlertTitle)); + builder.setTitle(LocaleController.getString(R.string.ClearSearchSingleAlertTitle)); long did; if (item instanceof TLRPC.Chat) { TLRPC.Chat chat = (TLRPC.Chat) item; @@ -8239,7 +8283,7 @@ private boolean onItemLongClick(RecyclerListView listView, View view, int positi } else if (item instanceof TLRPC.User) { TLRPC.User user = (TLRPC.User) item; if (user.id == getUserConfig().clientUserId) { - builder.setMessage(LocaleController.formatString("ClearSearchSingleChatAlertText", R.string.ClearSearchSingleChatAlertText, LocaleController.getString("SavedMessages", R.string.SavedMessages))); + builder.setMessage(LocaleController.formatString("ClearSearchSingleChatAlertText", R.string.ClearSearchSingleChatAlertText, LocaleController.getString(R.string.SavedMessages))); } else { builder.setMessage(LocaleController.formatString("ClearSearchSingleUserAlertText", R.string.ClearSearchSingleUserAlertText, ContactsController.formatName(user.first_name, user.last_name))); } @@ -8252,8 +8296,8 @@ private boolean onItemLongClick(RecyclerListView listView, View view, int positi } else { return false; } - builder.setPositiveButton(LocaleController.getString("ClearSearchRemove", R.string.ClearSearchRemove), (dialogInterface, i) -> searchViewPager.dialogsSearchAdapter.removeRecentSearch(did)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.ClearSearchRemove), (dialogInterface, i) -> searchViewPager.dialogsSearchAdapter.removeRecentSearch(did)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -8326,9 +8370,9 @@ private void onArchiveLongPress(View view) { hasUnread ? R.drawable.msg_markread : 0, SharedConfig.archiveHidden ? R.drawable.chats_pin : R.drawable.chats_unpin, }; - String[] items = new String[]{ - hasUnread ? LocaleController.getString("MarkAllAsRead", R.string.MarkAllAsRead) : null, - SharedConfig.archiveHidden ? LocaleController.getString("PinInTheList", R.string.PinInTheList) : LocaleController.getString("HideAboveTheList", R.string.HideAboveTheList) + CharSequence[] items = new CharSequence[]{ + hasUnread ? LocaleController.getString(R.string.MarkAllAsRead) : null, + SharedConfig.archiveHidden ? LocaleController.getString(R.string.PinInTheList) : LocaleController.getString(R.string.HideAboveTheList) }; builder.setItems(items, icons, (d, which) -> { if (which == 0) { @@ -8466,7 +8510,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { ActionBarPopupWindow.GapView gap = new ActionBarPopupWindow.GapView(getParentActivity(), getResourceProvider(), Theme.key_actionBarDefaultSubmenuSeparator); gap.setTag(R.id.fit_width_tag, 1); ActionBarMenuSubItem backItem = new ActionBarMenuSubItem(getParentActivity(), backButtonAtTop, !backButtonAtTop); - backItem.setTextAndIcon(LocaleController.getString("Back", R.string.Back), R.drawable.ic_ab_back); + backItem.setTextAndIcon(LocaleController.getString(R.string.Back), R.drawable.ic_ab_back); backItem.setMinimumWidth(160); backItem.setOnClickListener(e -> { if (previewMenu[0] != null) { @@ -8496,7 +8540,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (hasFolders) { foldersMenu[0] = previewMenu[0].addViewToSwipeBack(foldersMenuView); ActionBarMenuSubItem addToFolderItem = new ActionBarMenuSubItem(getParentActivity(), true, false); - addToFolderItem.setTextAndIcon(LocaleController.getString("FilterAddTo", R.string.FilterAddTo), R.drawable.msg_addfolder); + addToFolderItem.setTextAndIcon(LocaleController.getString(R.string.FilterAddTo), R.drawable.msg_addfolder); addToFolderItem.setMinimumWidth(160); addToFolderItem.setOnClickListener(e -> previewMenu[0].getSwipeBack().openForeground(foldersMenu[0]) @@ -8516,9 +8560,9 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { ActionBarMenuSubItem markAsUnreadItem = new ActionBarMenuSubItem(getParentActivity(), true, false); if (cell.getHasUnread()) { - markAsUnreadItem.setTextAndIcon(LocaleController.getString("MarkAsRead", R.string.MarkAsRead), R.drawable.msg_markread); + markAsUnreadItem.setTextAndIcon(LocaleController.getString(R.string.MarkAsRead), R.drawable.msg_markread); } else { - markAsUnreadItem.setTextAndIcon(LocaleController.getString("MarkAsUnread", R.string.MarkAsUnread), R.drawable.msg_markunread); + markAsUnreadItem.setTextAndIcon(LocaleController.getString(R.string.MarkAsUnread), R.drawable.msg_markunread); } markAsUnreadItem.setMinimumWidth(160); markAsUnreadItem.setOnClickListener(e -> { @@ -8593,9 +8637,9 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (hasPinAction[0]) { ActionBarMenuSubItem unpinItem = new ActionBarMenuSubItem(getParentActivity(), false, false); if (isDialogPinned(dialog)) { - unpinItem.setTextAndIcon(LocaleController.getString("UnpinMessage", R.string.UnpinMessage), R.drawable.msg_unpin); + unpinItem.setTextAndIcon(LocaleController.getString(R.string.UnpinMessage), R.drawable.msg_unpin); } else { - unpinItem.setTextAndIcon(LocaleController.getString("PinMessage", R.string.PinMessage), R.drawable.msg_pin); + unpinItem.setTextAndIcon(LocaleController.getString(R.string.PinMessage), R.drawable.msg_pin); } unpinItem.setMinimumWidth(160); unpinItem.setOnClickListener(e -> { @@ -8654,9 +8698,9 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (!DialogObject.isUserDialog(dialogId) || !UserObject.isUserSelf(getMessagesController().getUser(dialogId))) { ActionBarMenuSubItem muteItem = new ActionBarMenuSubItem(getParentActivity(), false, false); if (!getMessagesController().isDialogMuted(dialogId, 0)) { - muteItem.setTextAndIcon(LocaleController.getString("Mute", R.string.Mute), R.drawable.msg_mute); + muteItem.setTextAndIcon(LocaleController.getString(R.string.Mute), R.drawable.msg_mute); } else { - muteItem.setTextAndIcon(LocaleController.getString("Unmute", R.string.Unmute), R.drawable.msg_unmute); + muteItem.setTextAndIcon(LocaleController.getString(R.string.Unmute), R.drawable.msg_unmute); } muteItem.setMinimumWidth(160); muteItem.setOnClickListener(e -> { @@ -8676,7 +8720,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { deleteItem.setIconColor(getThemedColor(Theme.key_text_RedRegular)); deleteItem.setTextColor(getThemedColor(Theme.key_text_RedBold)); deleteItem.setSelectorColor(Theme.multAlpha(getThemedColor(Theme.key_text_RedBold), .12f)); - deleteItem.setTextAndIcon(LocaleController.getString("Delete", R.string.Delete), R.drawable.msg_delete); + deleteItem.setTextAndIcon(LocaleController.getString(R.string.Delete), R.drawable.msg_delete); deleteItem.setMinimumWidth(160); deleteItem.setOnClickListener(e -> { performSelectedDialogsAction(dialogIdArray, delete, false, false); @@ -8739,13 +8783,13 @@ private void updateStoriesPosting() { if (initialDialogsType == DIALOGS_TYPE_WIDGET) { floatingButton.setImageResource(R.drawable.floating_check); - floatingButtonContainer.setContentDescription(LocaleController.getString("Done", R.string.Done)); + floatingButtonContainer.setContentDescription(LocaleController.getString(R.string.Done)); } else if (storiesEnabled) { floatingButton.setAnimation(R.raw.write_contacts_fab_icon_camera, 56, 56); - floatingButtonContainer.setContentDescription(LocaleController.getString("AccDescrCaptureStory", R.string.AccDescrCaptureStory)); + floatingButtonContainer.setContentDescription(LocaleController.getString(R.string.AccDescrCaptureStory)); } else { floatingButton.setAnimation(R.raw.write_contacts_fab_icon, 52, 52); - floatingButtonContainer.setContentDescription(LocaleController.getString("NewMessageTitle", R.string.NewMessageTitle)); + floatingButtonContainer.setContentDescription(LocaleController.getString(R.string.NewMessageTitle)); } } @@ -8857,7 +8901,7 @@ private void resetScroll() { private void hideActionMode(boolean animateCheck) { actionBar.hideActionMode(); if (menuDrawable != null) { - actionBar.setBackButtonContentDescription(LocaleController.getString("AccDescrOpenMenu", R.string.AccDescrOpenMenu)); + actionBar.setBackButtonContentDescription(LocaleController.getString(R.string.AccDescrOpenMenu)); } selectedDialogs.clear(); if (menuDrawable != null) { @@ -9090,19 +9134,19 @@ private void performSelectedDialogsAction(ArrayList selectedDialogs, int a AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); if (action == delete) { builder.setTitle(LocaleController.formatString("DeleteFewChatsTitle", R.string.DeleteFewChatsTitle, LocaleController.formatPluralString("ChatsSelected", count))); - builder.setMessage(LocaleController.getString("AreYouSureDeleteFewChats", R.string.AreYouSureDeleteFewChats)); + builder.setMessage(LocaleController.getString(R.string.AreYouSureDeleteFewChats)); } else { if (canClearCacheCount != 0) { builder.setTitle(LocaleController.formatString("ClearCacheFewChatsTitle", R.string.ClearCacheFewChatsTitle, LocaleController.formatPluralString("ChatsSelectedClearCache", count))); - builder.setMessage(LocaleController.getString("AreYouSureClearHistoryCacheFewChats", R.string.AreYouSureClearHistoryCacheFewChats)); + builder.setMessage(LocaleController.getString(R.string.AreYouSureClearHistoryCacheFewChats)); } else { builder.setTitle(LocaleController.formatString("ClearFewChatsTitle", R.string.ClearFewChatsTitle, LocaleController.formatPluralString("ChatsSelectedClear", count))); - builder.setMessage(LocaleController.getString("AreYouSureClearHistoryFewChats", R.string.AreYouSureClearHistoryFewChats)); + builder.setMessage(LocaleController.getString(R.string.AreYouSureClearHistoryFewChats)); } } - builder.setPositiveButton(action == delete ? LocaleController.getString("Delete", R.string.Delete) - : canClearCacheCount != 0 ? LocaleController.getString("ClearHistoryCache", R.string.ClearHistoryCache) - : LocaleController.getString("ClearHistory", R.string.ClearHistory), (dialog1, which) -> { + builder.setPositiveButton(action == delete ? LocaleController.getString(R.string.Delete) + : canClearCacheCount != 0 ? LocaleController.getString(R.string.ClearHistoryCache) + : LocaleController.getString(R.string.ClearHistory), (dialog1, which) -> { if (selectedDialogs.isEmpty()) { return; } @@ -9127,7 +9171,7 @@ private void performSelectedDialogsAction(ArrayList selectedDialogs, int a } hideActionMode(action == clear); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -9231,13 +9275,13 @@ private void performSelectedDialogsAction(ArrayList selectedDialogs, int a if (count == 1) { if (action == delete && canDeletePsaSelected) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("PsaHideChatAlertTitle", R.string.PsaHideChatAlertTitle)); - builder.setMessage(LocaleController.getString("PsaHideChatAlertText", R.string.PsaHideChatAlertText)); - builder.setPositiveButton(LocaleController.getString("PsaHide", R.string.PsaHide), (dialog1, which) -> { + builder.setTitle(LocaleController.getString(R.string.PsaHideChatAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.PsaHideChatAlertText)); + builder.setPositiveButton(LocaleController.getString(R.string.PsaHide), (dialog1, which) -> { getMessagesController().hidePromoDialog(); hideActionMode(false); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); } else { AlertsCreator.createClearOrDeleteDialogAlert(DialogsActivity.this, action == clear, chat, user, DialogObject.isEncryptedDialog(dialog.id), action == delete, (param) -> { @@ -9669,15 +9713,15 @@ private void updateCounters(boolean hide) { } else { clearItem.setVisibility(View.VISIBLE); if (canClearCacheCount != 0) { - clearItem.setText(LocaleController.getString("ClearHistoryCache", R.string.ClearHistoryCache)); + clearItem.setText(LocaleController.getString(R.string.ClearHistoryCache)); } else { - clearItem.setText(LocaleController.getString("ClearHistory", R.string.ClearHistory)); + clearItem.setText(LocaleController.getString(R.string.ClearHistory)); } } } if (archiveItem != null && archive2Item != null) { if (canUnarchiveCount != 0) { - final String contentDescription = LocaleController.getString("Unarchive", R.string.Unarchive); + final String contentDescription = LocaleController.getString(R.string.Unarchive); archiveItem.setTextAndIcon(contentDescription, R.drawable.msg_unarchive); archive2Item.setIcon(R.drawable.msg_unarchive); archive2Item.setContentDescription(contentDescription); @@ -9689,7 +9733,7 @@ private void updateCounters(boolean hide) { archive2Item.setVisibility(View.GONE); } } else if (canArchiveCount != 0) { - final String contentDescription = LocaleController.getString("Archive", R.string.Archive); + final String contentDescription = LocaleController.getString(R.string.Archive); archiveItem.setTextAndIcon(contentDescription, R.drawable.msg_archive); archive2Item.setIcon(R.drawable.msg_archive); archive2Item.setContentDescription(contentDescription); @@ -9751,19 +9795,19 @@ private void updateCounters(boolean hide) { if (muteItem != null) { if (canUnmuteCount != 0) { muteItem.setIcon(R.drawable.msg_unmute); - muteItem.setContentDescription(LocaleController.getString("ChatsUnmute", R.string.ChatsUnmute)); + muteItem.setContentDescription(LocaleController.getString(R.string.ChatsUnmute)); } else { muteItem.setIcon(R.drawable.msg_mute); - muteItem.setContentDescription(LocaleController.getString("ChatsMute", R.string.ChatsMute)); + muteItem.setContentDescription(LocaleController.getString(R.string.ChatsMute)); } } if (readItem != null) { if (canReadCount != 0) { - readItem.setTextAndIcon(LocaleController.getString("MarkAsRead", R.string.MarkAsRead), R.drawable.msg_markread); + readItem.setTextAndIcon(LocaleController.getString(R.string.MarkAsRead), R.drawable.msg_markread); readItem.setVisibility(View.VISIBLE); } else { if (forumCount == 0) { - readItem.setTextAndIcon(LocaleController.getString("MarkAsUnread", R.string.MarkAsUnread), R.drawable.msg_markunread); + readItem.setTextAndIcon(LocaleController.getString(R.string.MarkAsUnread), R.drawable.msg_markunread); readItem.setVisibility(View.VISIBLE); } else { readItem.setVisibility(View.GONE); @@ -9773,12 +9817,12 @@ private void updateCounters(boolean hide) { if (pinItem != null && pin2Item != null) { if (canPinCount != 0) { pinItem.setIcon(R.drawable.msg_pin); - pinItem.setContentDescription(LocaleController.getString("PinToTop", R.string.PinToTop)); - pin2Item.setText(LocaleController.getString("DialogPin", R.string.DialogPin)); + pinItem.setContentDescription(LocaleController.getString(R.string.PinToTop)); + pin2Item.setText(LocaleController.getString(R.string.DialogPin)); } else { pinItem.setIcon(R.drawable.msg_unpin); - pinItem.setContentDescription(LocaleController.getString("UnpinFromTop", R.string.UnpinFromTop)); - pin2Item.setText(LocaleController.getString("DialogUnpin", R.string.DialogUnpin)); + pinItem.setContentDescription(LocaleController.getString(R.string.UnpinFromTop)); + pin2Item.setText(LocaleController.getString(R.string.DialogUnpin)); } } } @@ -9792,7 +9836,7 @@ private boolean validateSlowModeDialog(long dialogId) { } TLRPC.Chat chat = getMessagesController().getChat(-dialogId); if (chat != null && !ChatObject.hasAdminRights(chat) && chat.slowmode_enabled) { - AlertsCreator.showSimpleAlert(DialogsActivity.this, LocaleController.getString("Slowmode", R.string.Slowmode), LocaleController.getString("SlowmodeSendError", R.string.SlowmodeSendError)); + AlertsCreator.showSimpleAlert(DialogsActivity.this, LocaleController.getString(R.string.Slowmode), LocaleController.getString(R.string.SlowmodeSendError)); return false; } return true; @@ -9823,7 +9867,7 @@ private void showOrUpdateActionMode(long dialogId, View cell) { resetScroll(); } if (menuDrawable != null) { - actionBar.setBackButtonContentDescription(LocaleController.getString("AccDescrGoBack", R.string.AccDescrGoBack)); + actionBar.setBackButtonContentDescription(LocaleController.getString(R.string.AccDescrGoBack)); } if (getPinnedCount() > 1) { if (viewPages != null) { @@ -10148,9 +10192,9 @@ private void updateSelectedCount() { if (commentView != null) { if (selectedDialogs.isEmpty()) { if (initialDialogsType == 3 && selectAlertString == null) { - actionBar.setTitle(LocaleController.getString("ForwardTo", R.string.ForwardTo)); + actionBar.setTitle(LocaleController.getString(R.string.ForwardTo)); } else { - actionBar.setTitle(LocaleController.getString("SelectChat", R.string.SelectChat)); + actionBar.setTitle(LocaleController.getString(R.string.SelectChat)); } if (commentView.getTag() != null) { commentView.hidePopup(false); @@ -10231,10 +10275,13 @@ private void askForPermissons(boolean alert) { return; } ArrayList permissons = new ArrayList<>(); - if (Build.VERSION.SDK_INT >= 33 && NotificationPermissionDialog.shouldAsk(activity)) { + if (folderId == 0 && Build.VERSION.SDK_INT >= 33 && NotificationPermissionDialog.shouldAsk(activity)) { if (alert) { - showDialog(new NotificationPermissionDialog(activity, granted -> { - if (granted) { + showDialog(new NotificationPermissionDialog(activity, !PermissionRequest.canAskPermission(Manifest.permission.POST_NOTIFICATIONS), granted2 -> { + if (!granted2) return; + if (!PermissionRequest.canAskPermission(Manifest.permission.POST_NOTIFICATIONS)) { + PermissionRequest.showPermissionSettings(Manifest.permission.POST_NOTIFICATIONS); + } else { activity.requestPermissions(new String[] { Manifest.permission.POST_NOTIFICATIONS }, 1); } })); @@ -10287,7 +10334,7 @@ private void askForPermissons(boolean alert) { @Override protected void onDialogDismiss(Dialog dialog) { super.onDialogDismiss(dialog); - if (permissionDialog != null && dialog == permissionDialog && getParentActivity() != null) { + if (folderId == 0 && permissionDialog != null && dialog == permissionDialog && getParentActivity() != null) { askForPermissons(false); } } @@ -10787,10 +10834,10 @@ private void onSuggestionDismiss() { private boolean showSuggestion(String suggestion) { if ("AUTOARCHIVE_POPULAR".equals(suggestion)) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("HideNewChatsAlertTitle", R.string.HideNewChatsAlertTitle)); - builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString("HideNewChatsAlertText", R.string.HideNewChatsAlertText))); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("GoToSettings", R.string.GoToSettings), (dialog, which) -> { + builder.setTitle(LocaleController.getString(R.string.HideNewChatsAlertTitle)); + builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString(R.string.HideNewChatsAlertText))); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.GoToSettings), (dialog, which) -> { presentFragment(new PrivacySettingsActivity()); AndroidUtilities.scrollToFragmentRow(parentLayout, "newChatsRow"); }); @@ -11364,25 +11411,25 @@ private boolean checkCanWrite(final long dialogId) { TLRPC.Chat chat = getMessagesController().getChat(-dialogId); if (ChatObject.isChannel(chat) && !chat.megagroup && ((cantSendToChannels || !ChatObject.isCanWriteToChannel(-dialogId, currentAccount)) || hasPoll == 2)) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("SendMessageTitle", R.string.SendMessageTitle)); + builder.setTitle(LocaleController.getString(R.string.SendMessageTitle)); if (hasPoll == 2) { - builder.setMessage(LocaleController.getString("PublicPollCantForward", R.string.PublicPollCantForward)); + builder.setMessage(LocaleController.getString(R.string.PublicPollCantForward)); } else { - builder.setMessage(LocaleController.getString("ChannelCantSendMessage", R.string.ChannelCantSendMessage)); + builder.setMessage(LocaleController.getString(R.string.ChannelCantSendMessage)); } - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); showDialog(builder.create()); return false; } } else if (DialogObject.isEncryptedDialog(dialogId) && (hasPoll != 0 || hasInvoice)) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("SendMessageTitle", R.string.SendMessageTitle)); + builder.setTitle(LocaleController.getString(R.string.SendMessageTitle)); if (hasPoll != 0) { - builder.setMessage(LocaleController.getString("PollCantForwardSecretChat", R.string.PollCantForwardSecretChat)); + builder.setMessage(LocaleController.getString(R.string.PollCantForwardSecretChat)); } else { - builder.setMessage(LocaleController.getString("InvoiceCantForwardSecretChat", R.string.InvoiceCantForwardSecretChat)); + builder.setMessage(LocaleController.getString(R.string.InvoiceCantForwardSecretChat)); } - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); showDialog(builder.create()); return false; } @@ -11441,7 +11488,7 @@ public void didSelectResult(final long dialogId, int topicId, boolean useAlert, setDialogsListFrozen(true); ArrayList dids = new ArrayList<>(); dids.add(MessagesStorage.TopicKey.of(dialogId, 0)); - delegate.didSelectDialogs(DialogsActivity.this, dids, null, param, null); + delegate.didSelectDialogs(DialogsActivity.this, dids, null, param, notify, scheduleDate, null); }); } else { AlertsCreator.processError(currentAccount, error, this, req); @@ -11467,22 +11514,22 @@ public void didSelectResult(final long dialogId, int topicId, boolean useAlert, if (user == null) { return; } - title = LocaleController.getString("SendMessageTitle", R.string.SendMessageTitle); + title = LocaleController.getString(R.string.SendMessageTitle); message = LocaleController.formatStringSimple(selectAlertString, UserObject.getUserName(user)); - buttonText = LocaleController.getString("Send", R.string.Send); + buttonText = LocaleController.getString(R.string.Send); } else if (DialogObject.isUserDialog(dialogId)) { if (dialogId == getUserConfig().getClientUserId()) { - title = LocaleController.getString("SendMessageTitle", R.string.SendMessageTitle); - message = LocaleController.formatStringSimple(selectAlertStringGroup, LocaleController.getString("SavedMessages", R.string.SavedMessages)); - buttonText = LocaleController.getString("Send", R.string.Send); + title = LocaleController.getString(R.string.SendMessageTitle); + message = LocaleController.formatStringSimple(selectAlertStringGroup, LocaleController.getString(R.string.SavedMessages)); + buttonText = LocaleController.getString(R.string.Send); } else { TLRPC.User user = getMessagesController().getUser(dialogId); if (user == null || selectAlertString == null) { return; } - title = LocaleController.getString("SendMessageTitle", R.string.SendMessageTitle); + title = LocaleController.getString(R.string.SendMessageTitle); message = LocaleController.formatStringSimple(selectAlertString, UserObject.getUserName(user)); - buttonText = LocaleController.getString("Send", R.string.Send); + buttonText = LocaleController.getString(R.string.Send); } } else { TLRPC.Chat chat = getMessagesController().getChat(-dialogId); @@ -11498,19 +11545,19 @@ public void didSelectResult(final long dialogId, int topicId, boolean useAlert, } if (addToGroupAlertString != null) { - title = LocaleController.getString("AddToTheGroupAlertTitle", R.string.AddToTheGroupAlertTitle); + title = LocaleController.getString(R.string.AddToTheGroupAlertTitle); message = LocaleController.formatStringSimple(addToGroupAlertString, chatTitle); - buttonText = LocaleController.getString("Add", R.string.Add); + buttonText = LocaleController.getString(R.string.Add); } else { - title = LocaleController.getString("SendMessageTitle", R.string.SendMessageTitle); + title = LocaleController.getString(R.string.SendMessageTitle); message = LocaleController.formatStringSimple(selectAlertStringGroup, chatTitle); - buttonText = LocaleController.getString("Send", R.string.Send); + buttonText = LocaleController.getString(R.string.Send); } } builder.setTitle(title); builder.setMessage(AndroidUtilities.replaceTags(message)); builder.setPositiveButton(buttonText, (dialogInterface, i) -> didSelectResult(dialogId, topicId, false, false, topicsFragment)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); Dialog dialog = builder.create(); if (showDialog(dialog) == null) { dialog.show(); @@ -11520,7 +11567,7 @@ public void didSelectResult(final long dialogId, int topicId, boolean useAlert, if (delegate != null) { ArrayList dids = new ArrayList<>(); dids.add(MessagesStorage.TopicKey.of(dialogId, topicId)); - delegate.didSelectDialogs(DialogsActivity.this, dids, null, param, topicsFragment); + delegate.didSelectDialogs(DialogsActivity.this, dids, null, param, notify, scheduleDate, topicsFragment); if (resetDelegate) { delegate = null; } @@ -11548,7 +11595,7 @@ public void didSelectResult(final long dialogId, int topicId, boolean useAlert, if (delegate != null) { ArrayList dids = new ArrayList<>(); dids.add(MessagesStorage.TopicKey.of(dialogId, topicId)); - boolean res = delegate.didSelectDialogs(DialogsActivity.this, dids, null, param, topicsFragment); + boolean res = delegate.didSelectDialogs(DialogsActivity.this, dids, null, param, notify, scheduleDate, topicsFragment); if (res && resetDelegate) { delegate = null; } @@ -11647,7 +11694,7 @@ public boolean onTouch(View v, MotionEvent event) { sendPopupLayout2.setupRadialSelectors(getThemedColor(Theme.key_dialogButtonSelector)); ActionBarMenuSubItem sendWithoutSound = new ActionBarMenuSubItem(parentActivity, true, true, resourcesProvider); - sendWithoutSound.setTextAndIcon(LocaleController.getString("SendWithoutSound", R.string.SendWithoutSound), R.drawable.input_notify_off); + sendWithoutSound.setTextAndIcon(LocaleController.getString(R.string.SendWithoutSound), R.drawable.input_notify_off); sendWithoutSound.setMinimumWidth(dp(196)); sendWithoutSound.setOnClickListener(v -> { if (sendPopupWindow != null && sendPopupWindow.isShowing()) { @@ -11661,7 +11708,7 @@ public boolean onTouch(View v, MotionEvent event) { for (int i = 0; i < selectedDialogs.size(); i++) { topicKeys.add(MessagesStorage.TopicKey.of(selectedDialogs.get(i), 0)); } - delegate.didSelectDialogs(DialogsActivity.this, topicKeys, commentView.getFieldText(), false, null); + delegate.didSelectDialogs(DialogsActivity.this, topicKeys, commentView.getFieldText(), false, notify, scheduleDate, null); }); ActionBarMenuSubItem showSendersNameView = new ActionBarMenuSubItem(parentActivity, true, true, false, resourcesProvider); @@ -11690,6 +11737,47 @@ public boolean onTouch(View v, MotionEvent event) { sendPopupLayout2.addView(hideSendersNameView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); sendPopupLayout2.addView(sendWithoutSound, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); + boolean onlyMyself = false; + boolean canSchedule = true; + for (int i = 0; i < selectedDialogs.size(); ++i) { + final long did = selectedDialogs.get(i); + if (onlyMyself && did != getUserConfig().getClientUserId()) + onlyMyself = false; + if (DialogObject.isEncryptedDialog(did)) { + canSchedule = false; + } + TLRPC.Chat chat = getMessagesController().getChat(-did); + if (chat != null && !ChatObject.canWriteToChat(chat)) { + canSchedule = false; + } + } + final boolean onlyMyselfFinal = onlyMyself; + if (canSchedule) { + ActionBarMenuSubItem scheduleMessages = new ActionBarMenuSubItem(parentActivity, true, true, resourcesProvider); + scheduleMessages.setTextAndIcon(LocaleController.getString(R.string.ScheduleMessage), R.drawable.msg_calendar2); + scheduleMessages.setMinimumWidth(dp(196)); + sendPopupLayout2.addView(scheduleMessages, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); + scheduleMessages.setOnClickListener(v -> { + if (sendPopupWindow != null && sendPopupWindow.isShowing()) { + sendPopupWindow.dismiss(); + } + AlertsCreator.createScheduleDatePickerDialog(parentActivity, onlyMyselfFinal ? getUserConfig().getClientUserId() : -1, new AlertsCreator.ScheduleDatePickerDelegate() { + @Override + public void didSelectDate(boolean notify, int scheduleDate) { + DialogsActivity.this.scheduleDate = scheduleDate; + if (delegate == null || selectedDialogs.isEmpty()) { + return; + } + ArrayList topicKeys = new ArrayList<>(); + for (int i = 0; i < selectedDialogs.size(); i++) { + topicKeys.add(MessagesStorage.TopicKey.of(selectedDialogs.get(i), 0)); + } + delegate.didSelectDialogs(DialogsActivity.this, topicKeys, commentView.getFieldText(), false, notify, scheduleDate, null); + } + }, resourcesProvider); + }); + } + layout.addView(sendPopupLayout2, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); sendPopupWindow = new ActionBarPopupWindow(layout, LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT); @@ -12861,10 +12949,10 @@ public void needRemoveHint(long did) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("ChatHintsDeleteAlertTitle", R.string.ChatHintsDeleteAlertTitle)); + builder.setTitle(LocaleController.getString(R.string.ChatHintsDeleteAlertTitle)); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("ChatHintsDeleteAlert", R.string.ChatHintsDeleteAlert, ContactsController.formatName(user.first_name, user.last_name)))); - builder.setPositiveButton(LocaleController.getString("StickersRemove", R.string.StickersRemove), (dialogInterface, i) -> getMediaDataController().removePeer(did)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.StickersRemove), (dialogInterface, i) -> getMediaDataController().removePeer(did)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -12877,15 +12965,15 @@ public void needRemoveHint(long did) { public void needClearList() { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); if (searchViewPager.dialogsSearchAdapter.isSearchWas() && searchViewPager.dialogsSearchAdapter.isRecentSearchDisplayed()) { - builder.setTitle(LocaleController.getString("ClearSearchAlertPartialTitle", R.string.ClearSearchAlertPartialTitle)); + builder.setTitle(LocaleController.getString(R.string.ClearSearchAlertPartialTitle)); builder.setMessage(LocaleController.formatPluralString("ClearSearchAlertPartial", searchViewPager.dialogsSearchAdapter.getRecentResultsCount())); - builder.setPositiveButton(LocaleController.getString("Clear", R.string.Clear), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Clear), (dialogInterface, i) -> { searchViewPager.dialogsSearchAdapter.clearRecentSearch(); }); } else { - builder.setTitle(LocaleController.getString("ClearSearchAlertTitle", R.string.ClearSearchAlertTitle)); - builder.setMessage(LocaleController.getString("ClearSearchAlert", R.string.ClearSearchAlert)); - builder.setPositiveButton(LocaleController.getString("ClearButton", R.string.ClearButton), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.ClearSearchAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.ClearSearchAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.ClearButton), (dialogInterface, i) -> { if (searchViewPager.dialogsSearchAdapter.isRecentSearchDisplayed()) { searchViewPager.dialogsSearchAdapter.clearRecentSearch(); } else { @@ -12893,7 +12981,7 @@ public void needClearList() { } }); } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DilogCacheBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/DilogCacheBottomSheet.java index 05e23a71dd..5aaa8ab599 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DilogCacheBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DilogCacheBottomSheet.java @@ -137,28 +137,28 @@ protected void onAvatarClick() { int color; if (a == CacheControlActivity.TYPE_PHOTOS) { - name = LocaleController.getString("LocalPhotoCache", R.string.LocalPhotoCache); + name = LocaleController.getString(R.string.LocalPhotoCache); color = Theme.key_statisticChartLine_lightblue; } else if (a == CacheControlActivity.TYPE_VIDEOS) { - name = LocaleController.getString("LocalVideoCache", R.string.LocalVideoCache); + name = LocaleController.getString(R.string.LocalVideoCache); color = Theme.key_statisticChartLine_blue; } else if (a == CacheControlActivity.TYPE_DOCUMENTS) { - name = LocaleController.getString("LocalDocumentCache", R.string.LocalDocumentCache); + name = LocaleController.getString(R.string.LocalDocumentCache); color = Theme.key_statisticChartLine_green; } else if (a == CacheControlActivity.TYPE_MUSIC) { - name = LocaleController.getString("LocalMusicCache", R.string.LocalMusicCache); + name = LocaleController.getString(R.string.LocalMusicCache); color = Theme.key_statisticChartLine_red; } else if (a == CacheControlActivity.TYPE_VOICE) { - name = LocaleController.getString("LocalAudioCache", R.string.LocalAudioCache); + name = LocaleController.getString(R.string.LocalAudioCache); color = Theme.key_statisticChartLine_lightgreen; } else if (a == CacheControlActivity.TYPE_ANIMATED_STICKERS_CACHE) { - name = LocaleController.getString("LocalStickersCache", R.string.LocalStickersCache); + name = LocaleController.getString(R.string.LocalStickersCache); color = Theme.key_statisticChartLine_orange; } else if (a == CacheControlActivity.TYPE_STORIES) { - name = LocaleController.getString("LocalStoriesCache", R.string.LocalStoriesCache); + name = LocaleController.getString(R.string.LocalStoriesCache); color = Theme.key_statisticChartLine_indigo; } else { - name = LocaleController.getString("LocalMiscellaneousCache", R.string.LocalMiscellaneousCache); + name = LocaleController.getString(R.string.LocalMiscellaneousCache); color = Theme.key_statisticChartLine_purple; } if (entities != null) { @@ -303,12 +303,12 @@ private void createButton() { button = new CacheControlActivity.ClearCacheButton(getContext()); button.button.setOnClickListener(v -> { AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); - builder.setTitle(LocaleController.getString("ClearCache", R.string.ClearCache)); - builder.setMessage(LocaleController.getString("ClearCacheForChat", R.string.ClearCacheForChat)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (di, which) -> { + builder.setTitle(LocaleController.getString(R.string.ClearCache)); + builder.setMessage(LocaleController.getString(R.string.ClearCacheForChat)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (di, which) -> { dismiss(); }); - builder.setPositiveButton(LocaleController.getString("Clear", R.string.Clear), (di, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Clear), (di, which) -> { dismiss(); cacheDelegate.cleanupDialogFiles(entities, clearViewData, cacheModel); }); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DocumentSelectActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/DocumentSelectActivity.java index 281e5feb69..1879973e6f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DocumentSelectActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DocumentSelectActivity.java @@ -1167,13 +1167,13 @@ public void onResume() { private void updateEmptyView() { if (searching) { - emptyTitleTextView.setText(LocaleController.getString("NoFilesFound", R.string.NoFilesFound)); + emptyTitleTextView.setText(LocaleController.getString(R.string.NoResult)); emptyView.setGravity(Gravity.CENTER_HORIZONTAL); emptyView.setPadding(0, AndroidUtilities.dp(60), 0, 0); emptySubtitleTextView.setPadding(AndroidUtilities.dp(40), 0, AndroidUtilities.dp(40), 0); } else { - emptyTitleTextView.setText(LocaleController.getString("NoFilesFound", R.string.NoFilesFound)); - emptySubtitleTextView.setText(LocaleController.getString("NoFilesInfo", R.string.NoFilesInfo)); + emptyTitleTextView.setText(LocaleController.getString(R.string.NoResult)); + emptySubtitleTextView.setText(LocaleController.getString(R.string.NoFilesInfo)); emptyView.setGravity(Gravity.CENTER); emptyView.setPadding(0, 0, 0, 0); emptySubtitleTextView.setPadding(AndroidUtilities.dp(40), 0, AndroidUtilities.dp(40), AndroidUtilities.dp(128)); @@ -1187,9 +1187,9 @@ private void updateSearchButton() { } searchItem.setVisibility(hasFiles ? View.VISIBLE : View.GONE); if (history.isEmpty()) { - searchItem.setSearchFieldHint(LocaleController.getString("SearchRecentFiles", R.string.SearchRecentFiles)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.SearchRecentFiles)); } else { - searchItem.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.Search)); } } @@ -1635,7 +1635,7 @@ private void updateSearchResults(final ArrayList result, String query) listView.setAdapter(searchAdapter); updateEmptyView(); } - emptySubtitleTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("NoFilesFoundInfo", R.string.NoFilesFoundInfo, query))); + emptySubtitleTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString(R.string.NoFilesFoundInfo, query))); } searchWas = true; searchResult = result; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/EditWidgetActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/EditWidgetActivity.java index 18f0406625..62ed8d0a47 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/EditWidgetActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/EditWidgetActivity.java @@ -203,7 +203,7 @@ public WidgetPreviewCell(Context context) { addView(linearLayout, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); ChatActionCell chatActionCell = new ChatActionCell(context); - chatActionCell.setCustomText(LocaleController.getString("WidgetPreview", R.string.WidgetPreview)); + chatActionCell.setCustomText(LocaleController.getString(R.string.WidgetPreview)); linearLayout.addView(chatActionCell, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 0, 0, 4)); LinearLayout widgetPreview = new LinearLayout(context); @@ -264,11 +264,11 @@ public void updateDialogs() { user = getMessagesController().getUser(dialog.id); if (user != null) { if (UserObject.isUserSelf(user)) { - name = LocaleController.getString("SavedMessages", R.string.SavedMessages); + name = LocaleController.getString(R.string.SavedMessages); } else if (UserObject.isReplyUser(user)) { - name = LocaleController.getString("RepliesTitle", R.string.RepliesTitle); + name = LocaleController.getString(R.string.RepliesTitle); } else if (UserObject.isDeleted(user)) { - name = LocaleController.getString("HiddenName", R.string.HiddenName); + name = LocaleController.getString(R.string.HiddenName); } else { name = ContactsController.formatName(user.first_name, user.last_name); } @@ -358,7 +358,7 @@ public void updateDialogs() { boolean needEmoji = true; if (chat != null && chat.id > 0 && fromChat == null && (!ChatObject.isChannel(chat) || ChatObject.isMegagroup(chat))) { if (message.isOutOwner()) { - messageNameString = LocaleController.getString("FromYou", R.string.FromYou); + messageNameString = LocaleController.getString(R.string.FromYou); } else if (fromUser != null) { messageNameString = UserObject.getFirstName(fromUser).replace("\n", ""); } else { @@ -434,9 +434,9 @@ public void updateDialogs() { messageString = stringBuilder; } else { if (message.messageOwner.media instanceof TLRPC.TL_messageMediaPhoto && message.messageOwner.media.photo instanceof TLRPC.TL_photoEmpty && message.messageOwner.media.ttl_seconds != 0) { - messageString = LocaleController.getString("AttachPhotoExpired", R.string.AttachPhotoExpired); + messageString = LocaleController.getString(R.string.AttachPhotoExpired); } else if (message.messageOwner.media instanceof TLRPC.TL_messageMediaDocument && message.messageOwner.media.document instanceof TLRPC.TL_documentEmpty && message.messageOwner.media.ttl_seconds != 0) { - messageString = LocaleController.getString("AttachVideoExpired", R.string.AttachVideoExpired); + messageString = LocaleController.getString(R.string.AttachVideoExpired); } else if (message.caption != null) { String emoji; if (message.isVideo()) { @@ -542,11 +542,11 @@ public void updateDialogs() { if (DialogObject.isUserDialog(dialog.id)) { user = getMessagesController().getUser(dialog.id); if (UserObject.isUserSelf(user)) { - name = LocaleController.getString("SavedMessages", R.string.SavedMessages); + name = LocaleController.getString(R.string.SavedMessages); } else if (UserObject.isReplyUser(user)) { - name = LocaleController.getString("RepliesTitle", R.string.RepliesTitle); + name = LocaleController.getString(R.string.RepliesTitle); } else if (UserObject.isDeleted(user)) { - name = LocaleController.getString("HiddenName", R.string.HiddenName); + name = LocaleController.getString(R.string.HiddenName); } else { name = UserObject.getFirstName(user); } @@ -782,12 +782,12 @@ public View createView(Context context) { } if (widgetType == TYPE_CHATS) { - actionBar.setTitle(LocaleController.getString("WidgetChats", R.string.WidgetChats)); + actionBar.setTitle(LocaleController.getString(R.string.WidgetChats)); } else { - actionBar.setTitle(LocaleController.getString("WidgetShortcuts", R.string.WidgetShortcuts)); + actionBar.setTitle(LocaleController.getString(R.string.WidgetShortcuts)); } ActionBarMenu menu = actionBar.createMenu(); - menu.addItem(done_item, LocaleController.getString("Done", R.string.Done).toUpperCase()); + menu.addItem(done_item, LocaleController.getString(R.string.Done).toUpperCase()); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -872,7 +872,7 @@ public boolean onItemClick(View view, int position, float x, float y) { imageView.getHitRect(rect); if (!rect.contains((int) x, (int) y)) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - CharSequence[] items = new CharSequence[]{LocaleController.getString("Delete", R.string.Delete)}; + CharSequence[] items = new CharSequence[]{LocaleController.getString(R.string.Delete)}; builder.setItems(items, (dialogInterface, i) -> { if (i == 0) { selectedDialogs.remove(position - chatsStartRow); @@ -973,12 +973,12 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (position == infoRow) { SpannableStringBuilder builder = new SpannableStringBuilder(); if (widgetType == TYPE_CHATS) { - builder.append(LocaleController.getString("EditWidgetChatsInfo", R.string.EditWidgetChatsInfo)); + builder.append(LocaleController.getString(R.string.EditWidgetChatsInfo)); } else if (widgetType == TYPE_CONTACTS) { - builder.append(LocaleController.getString("EditWidgetContactsInfo", R.string.EditWidgetContactsInfo)); + builder.append(LocaleController.getString(R.string.EditWidgetContactsInfo)); } if (SharedConfig.passcodeHash.length() > 0) { - builder.append("\n\n").append(AndroidUtilities.replaceTags(LocaleController.getString("WidgetPasscode2", R.string.WidgetPasscode2))); + builder.append("\n\n").append(AndroidUtilities.replaceTags(LocaleController.getString(R.string.WidgetPasscode2))); } cell.setText(builder); } @@ -992,7 +992,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { drawable1.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_switchTrackChecked), PorterDuff.Mode.MULTIPLY)); drawable2.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_checkboxCheck), PorterDuff.Mode.MULTIPLY)); CombinedDrawable combinedDrawable = new CombinedDrawable(drawable1, drawable2); - cell.setTextAndIcon(LocaleController.getString("SelectChats", R.string.SelectChats), combinedDrawable, chatsStartRow != -1); + cell.setTextAndIcon(LocaleController.getString(R.string.SelectChats), combinedDrawable, chatsStartRow != -1); cell.getImageView().setPadding(0, AndroidUtilities.dp(7), 0, 0); break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/EmojiAnimationsOverlay.java b/TMessagesProj/src/main/java/org/telegram/ui/EmojiAnimationsOverlay.java index 4723d02a3b..d07c2ec326 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/EmojiAnimationsOverlay.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/EmojiAnimationsOverlay.java @@ -850,7 +850,7 @@ private void showStickerSetBulletin(TLRPC.TL_messages_stickerSet stickerSet, Mes } StickerSetBulletinLayout layout = new StickerSetBulletinLayout(contentLayout.getContext(), null, StickerSetBulletinLayout.TYPE_EMPTY, messageObject.getDocument(), chatActivity.getResourceProvider()); layout.titleTextView.setText(stickerSet.set.title); - layout.subtitleTextView.setText(LocaleController.getString("PremiumStickerTooltip", R.string.PremiumStickerTooltip)); + layout.subtitleTextView.setText(LocaleController.getString(R.string.PremiumStickerTooltip)); Bulletin.UndoButton viewButton = new Bulletin.UndoButton(chatActivity.getParentActivity(), true, chatActivity.getResourceProvider()); layout.setButton(viewButton); @@ -859,7 +859,7 @@ private void showStickerSetBulletin(TLRPC.TL_messages_stickerSet stickerSet, Mes alert.setCalcMandatoryInsets(chatActivity.isKeyboardVisible()); chatActivity.showDialog(alert); }); - viewButton.setText(LocaleController.getString("ViewAction", R.string.ViewAction)); + viewButton.setText(LocaleController.getString(R.string.ViewAction)); Bulletin bulletin = Bulletin.make(chatActivity, layout, Bulletin.DURATION_LONG); bulletin.hash = messageObject.getId(); bulletin.show(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ExternalActionActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ExternalActionActivity.java index 338c265f58..68cfe3c285 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ExternalActionActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ExternalActionActivity.java @@ -287,9 +287,9 @@ protected boolean handleIntent(final Intent intent, final boolean isNew, final b } AlertDialog.Builder builder = new AlertDialog.Builder(ExternalActionActivity.this); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setMessage(LocaleController.getString("PleaseLoginPassport", R.string.PleaseLoginPassport)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setMessage(LocaleController.getString(R.string.PleaseLoginPassport)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); builder.show(); return true; @@ -363,7 +363,7 @@ protected boolean handleIntent(final Intent intent, final boolean isNew, final b try { progressDialog.dismiss(); if ("APP_VERSION_OUTDATED".equals(error.text)) { - AlertDialog dialog = AlertsCreator.showUpdateAppAlert(ExternalActionActivity.this, LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + AlertDialog dialog = AlertsCreator.showUpdateAppAlert(ExternalActionActivity.this, LocaleController.getString(R.string.UpdateAppAlert), true); if (dialog != null) { dialog.setOnDismissListener(dialog1 -> { setResult(RESULT_FIRST_USER, new Intent().putExtra("error", error.text)); @@ -603,6 +603,7 @@ private void onPasscodeResume() { @Override public void onConfigurationChanged(android.content.res.Configuration newConfig) { AndroidUtilities.checkDisplaySize(this, newConfig); + AndroidUtilities.setPreferredMaxRefreshRate(getWindow()); super.onConfigurationChanged(newConfig); fixLayout(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/FeaturedStickersActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/FeaturedStickersActivity.java index 4a4bd938a9..91b87170d1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/FeaturedStickersActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/FeaturedStickersActivity.java @@ -73,7 +73,7 @@ public void onFragmentDestroy() { public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("FeaturedStickers", R.string.FeaturedStickers)); + actionBar.setTitle(LocaleController.getString(R.string.FeaturedStickers)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/FeedWidgetConfigActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/FeedWidgetConfigActivity.java index bf19667a53..fbeeca83f2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/FeedWidgetConfigActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/FeedWidgetConfigActivity.java @@ -31,7 +31,7 @@ protected boolean handleIntent(Intent intent, boolean isNew, boolean restore, bo args.putBoolean("allowSwitchAccount", true); args.putBoolean("checkCanWrite", false); DialogsActivity fragment = new DialogsActivity(args); - fragment.setDelegate((fragment1, dids, message, param, topicsFragment) -> { + fragment.setDelegate((fragment1, dids, message, param, notify, scheduleDate, topicsFragment) -> { AccountInstance.getInstance(fragment1.getCurrentAccount()).getMessagesStorage().putWidgetDialogs(creatingAppWidgetId, dids); SharedPreferences preferences = FeedWidgetConfigActivity.this.getSharedPreferences("shortcut_widget", Activity.MODE_PRIVATE); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/FilterChatlistActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/FilterChatlistActivity.java index f56b6b8aaf..c4cc52d66e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/FilterChatlistActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/FilterChatlistActivity.java @@ -129,7 +129,7 @@ public void setOnEdit(Utilities.Callback } private void updateActionBarTitle(boolean animated) { - String title = TextUtils.isEmpty(invite == null ? null : invite.title) ? LocaleController.getString("FilterShare", R.string.FilterShare) : invite.title; + String title = TextUtils.isEmpty(invite == null ? null : invite.title) ? LocaleController.getString(R.string.FilterShare) : invite.title; if (animated) { actionBar.setTitleAnimated(title, false, 220); } else { @@ -163,7 +163,7 @@ public void onItemClick(int id) { Drawable checkmark = context.getResources().getDrawable(R.drawable.ic_ab_done).mutate(); checkmark.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultIcon), PorterDuff.Mode.MULTIPLY)); doneButtonDrawable = new CrossfadeDrawable(checkmark, new CircularProgressDrawable(Theme.getColor(Theme.key_actionBarDefaultIcon))); - doneButton = menu.addItemWithWidth(1, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + doneButton = menu.addItemWithWidth(1, doneButtonDrawable, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); checkDoneButton(); fragmentView = new FrameLayout(context); @@ -210,23 +210,23 @@ public boolean requestFocus(int direction, Rect previouslyFocusedRect) { array.add(getMessagesController().getUser(did)); TLRPC.User user = getMessagesController().getUser(did); if (user != null && user.bot) { - text = LocaleController.getString("FilterInviteBotToast", R.string.FilterInviteBotToast); + text = LocaleController.getString(R.string.FilterInviteBotToast); } else { - text = LocaleController.getString("FilterInviteUserToast", R.string.FilterInviteUserToast); + text = LocaleController.getString(R.string.FilterInviteUserToast); } } else { TLRPC.Chat chat = getMessagesController().getChat(-did); if (ChatObject.isChannelAndNotMegaGroup(chat)) { if (ChatObject.isPublic(chat)) { - text = LocaleController.getString("FilterInviteChannelToast", R.string.FilterInviteChannelToast); + text = LocaleController.getString(R.string.FilterInviteChannelToast); } else { - text = LocaleController.getString("FilterInvitePrivateChannelToast", R.string.FilterInvitePrivateChannelToast); + text = LocaleController.getString(R.string.FilterInvitePrivateChannelToast); } } else { if (ChatObject.isPublic(chat)) { - text = LocaleController.getString("FilterInviteGroupToast", R.string.FilterInviteGroupToast); + text = LocaleController.getString(R.string.FilterInviteGroupToast); } else { - text = LocaleController.getString("FilterInvitePrivateGroupToast", R.string.FilterInvitePrivateGroupToast); + text = LocaleController.getString(R.string.FilterInvitePrivateGroupToast); } } array.add(chat); @@ -369,7 +369,7 @@ private void saveTitle() { savingTitleReqId = getConnectionsManager().sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { savingTitleReqId = 0; if (err == null) { - BulletinFactory.of(this).createSimpleBulletin(R.raw.contact_check, LocaleController.getString("FilterInviteNameEdited", R.string.FilterInviteNameEdited)).show(); + BulletinFactory.of(this).createSimpleBulletin(R.raw.contact_check, LocaleController.getString(R.string.FilterInviteNameEdited)).show(); } })); @@ -410,7 +410,7 @@ private void updateHintCell(boolean animated) { } if (invite == null) { - hintCountCell.setText(LocaleController.getString("FilterInviteHeaderNo", R.string.FilterInviteHeaderNo), animated); + hintCountCell.setText(LocaleController.getString(R.string.FilterInviteHeaderNo), animated); } else { hintCountCell.setText(AndroidUtilities.replaceTags(LocaleController.formatPluralString("FilterInviteHeader", selectedPeers.size(), filter.name)), animated); } @@ -535,9 +535,9 @@ public void editname() { AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); builder.setDialogButtonColorKey(Theme.key_dialogButton); - builder.setTitle(LocaleController.getString("FilterInviteEditName", R.string.FilterInviteEditName)); + builder.setTitle(LocaleController.getString(R.string.FilterInviteEditName)); // builder.setCheckFocusable(false); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialog, which) -> AndroidUtilities.hideKeyboard(editText)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> AndroidUtilities.hideKeyboard(editText)); LinearLayout linearLayout = new LinearLayout(getContext()); linearLayout.setOrientation(LinearLayout.VERTICAL); @@ -589,7 +589,7 @@ public void afterTextChanged(Editable s) { editText.setText(invite.title); editText.setSelection(editText.length()); } - builder.setPositiveButton(LocaleController.getString("Save", R.string.Save), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Save), (dialog, which) -> { AndroidUtilities.hideKeyboard(editText); // call.setTitle(editText.getText().toString()); builder.getDismissRunnable().run(); @@ -643,9 +643,9 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi if (position == chatsSectionRow) { cell.setFixedSize(0); if (invite == null || allowedPeers.isEmpty()) { - cell.setText(LocaleController.getString("FilterInviteHintNo", R.string.FilterInviteHintNo)); + cell.setText(LocaleController.getString(R.string.FilterInviteHintNo)); } else { - cell.setText(LocaleController.getString("FilterInviteHint", R.string.FilterInviteHint)); + cell.setText(LocaleController.getString(R.string.FilterInviteHint)); } } else { cell.setFixedSize(12); @@ -692,15 +692,15 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi userCell.setChecked(false, false); if (object instanceof TLRPC.User) { if (((TLRPC.User) object).bot) { - status = LocaleController.getString("FilterInviteBot", R.string.FilterInviteBot); + status = LocaleController.getString(R.string.FilterInviteBot); } else { - status = LocaleController.getString("FilterInviteUser", R.string.FilterInviteUser); + status = LocaleController.getString(R.string.FilterInviteUser); } } else if (object instanceof TLRPC.Chat) { if (ChatObject.isChannelAndNotMegaGroup((TLRPC.Chat) object)) { - status = LocaleController.getString("FilterInviteChannel", R.string.FilterInviteChannel); + status = LocaleController.getString(R.string.FilterInviteChannel); } else { - status = LocaleController.getString("FilterInviteGroup", R.string.FilterInviteGroup); + status = LocaleController.getString(R.string.FilterInviteGroup); } } } @@ -712,12 +712,12 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi headerCountCell = null; } if (position == linkHeaderRow) { - headerCell.setText(LocaleController.getString("InviteLink", R.string.InviteLink), false); + headerCell.setText(LocaleController.getString(R.string.InviteLink), false); headerCell.setAction("", null); } else { headerCountCell = headerCell; if (invite == null || allowedPeers.isEmpty()) { - headerCell.setText(LocaleController.getString("FilterInviteHeaderChatsNo", R.string.FilterInviteHeaderChatsNo), false); + headerCell.setText(LocaleController.getString(R.string.FilterInviteHeaderChatsNo), false); headerCell.setAction("", null); } else { updateHeaderCell(false); @@ -869,10 +869,10 @@ private boolean checkDiscard() { } if (peersChanged) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("UnsavedChanges", R.string.UnsavedChanges)); - builder.setMessage(LocaleController.getString("UnsavedChangesMessage", R.string.UnsavedChangesMessage)); - builder.setPositiveButton(LocaleController.getString("ApplyTheme", R.string.ApplyTheme), (dialogInterface, i) -> save()); - builder.setNegativeButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialog, which) -> finishFragment()); + builder.setTitle(LocaleController.getString(R.string.UnsavedChanges)); + builder.setMessage(LocaleController.getString(R.string.UnsavedChangesMessage)); + builder.setPositiveButton(LocaleController.getString(R.string.ApplyTheme), (dialogInterface, i) -> save()); + builder.setNegativeButton(LocaleController.getString(R.string.PassportDiscard), (dialog, which) -> finishFragment()); showDialog(builder.create()); return false; } @@ -968,7 +968,7 @@ public InviteLinkCell(Context context, BaseFragment fragment) { optionsIcon.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_dialogTextGray3), PorterDuff.Mode.SRC_IN)); optionsIcon.setAlpha(0f); optionsIcon.setVisibility(GONE); - optionsIcon.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + optionsIcon.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); optionsIcon.setOnClickListener(e -> { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && linkBox.getBackground() instanceof RippleDrawable) { linkBox.getBackground().setState(new int[] { android.R.attr.state_pressed, android.R.attr.state_enabled }); @@ -998,7 +998,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(); spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.msg_copy_filled)), 0, 1, 0); spannableStringBuilder.setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(8)), 1, 2, 0); - spannableStringBuilder.append(LocaleController.getString("LinkActionCopy", R.string.LinkActionCopy)); + spannableStringBuilder.append(LocaleController.getString(R.string.LinkActionCopy)); spannableStringBuilder.append(".").setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(5)), spannableStringBuilder.length() - 1, spannableStringBuilder.length(), 0); copyButton.setText(spannableStringBuilder); copyButton.setOnClickListener(e -> copy()); @@ -1023,7 +1023,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { spannableStringBuilder = new SpannableStringBuilder(); spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.msg_share_filled)), 0, 1, 0); spannableStringBuilder.setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(8)), 1, 2, 0); - spannableStringBuilder.append(LocaleController.getString("LinkActionShare", R.string.LinkActionShare)); + spannableStringBuilder.append(LocaleController.getString(R.string.LinkActionShare)); spannableStringBuilder.append(".").setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(5)), spannableStringBuilder.length() - 1, spannableStringBuilder.length(), 0); shareButton.setText(spannableStringBuilder); shareButton.setOnClickListener(e -> share()); @@ -1153,7 +1153,7 @@ public void options() { ActionBarMenuSubItem subItem; subItem = new ActionBarMenuSubItem(getContext(), true, false); - subItem.setTextAndIcon(LocaleController.getString("EditName", R.string.EditName), R.drawable.msg_edit); + subItem.setTextAndIcon(LocaleController.getString(R.string.EditName), R.drawable.msg_edit); layout.addView(subItem, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); subItem.setOnClickListener(view12 -> { if (actionBarPopupWindow != null) { @@ -1163,7 +1163,7 @@ public void options() { }); subItem = new ActionBarMenuSubItem(getContext(), false, false); - subItem.setTextAndIcon(LocaleController.getString("GetQRCode", R.string.GetQRCode), R.drawable.msg_qrcode); + subItem.setTextAndIcon(LocaleController.getString(R.string.GetQRCode), R.drawable.msg_qrcode); layout.addView(subItem, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48)); subItem.setOnClickListener(view12 -> { if (actionBarPopupWindow != null) { @@ -1174,7 +1174,7 @@ public void options() { subItem = new ActionBarMenuSubItem(getContext(), false, true); // if (!isRevoked()) { -// subItem.setTextAndIcon(LocaleController.getString("RevokeLink", R.string.RevokeLink), R.drawable.msg_delete); +// subItem.setTextAndIcon(LocaleController.getString(R.string.RevokeLink), R.drawable.msg_delete); // subItem.setColors(Theme.getColor(Theme.key_text_RedRegular), Theme.getColor(Theme.key_text_RedRegular)); // subItem.setSelectorColor(Theme.multAlpha(Theme.getColor(Theme.key_text_RedRegular), .12f)); // subItem.setOnClickListener(view1 -> { @@ -1193,7 +1193,7 @@ public void options() { // revoke(false); // }); // } - subItem.setTextAndIcon(LocaleController.getString("DeleteLink", R.string.DeleteLink), R.drawable.msg_delete); + subItem.setTextAndIcon(LocaleController.getString(R.string.DeleteLink), R.drawable.msg_delete); subItem.setColors(Theme.getColor(Theme.key_text_RedRegular), Theme.getColor(Theme.key_text_RedRegular)); subItem.setSelectorColor(Theme.multAlpha(Theme.getColor(Theme.key_text_RedRegular), .12f)); subItem.setOnClickListener(view1 -> { @@ -1289,7 +1289,7 @@ public void copy() { } AndroidUtilities.addToClipboard(lastUrl); - BulletinFactory.of(parentFragment).createCopyBulletin(LocaleController.getString("LinkCopied", R.string.LinkCopied)).show(); + BulletinFactory.of(parentFragment).createCopyBulletin(LocaleController.getString(R.string.LinkCopied)).show(); } protected void share() { @@ -1301,7 +1301,7 @@ protected void share() { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, lastUrl); - parentFragment.startActivityForResult(Intent.createChooser(intent, LocaleController.getString("InviteToGroupByLink", R.string.InviteToGroupByLink)), 500); + parentFragment.startActivityForResult(Intent.createChooser(intent, LocaleController.getString(R.string.InviteToGroupByLink)), 500); } catch (Exception e) { FileLog.e(e); } @@ -1318,7 +1318,7 @@ public void qrcode() { return; } - QRCodeBottomSheet qrCodeBottomSheet = new QRCodeBottomSheet(getContext(), LocaleController.getString("InviteByQRCode", R.string.InviteByQRCode), lastUrl, LocaleController.getString("QRCodeLinkHelpFolder", R.string.QRCodeLinkHelpFolder), false); + QRCodeBottomSheet qrCodeBottomSheet = new QRCodeBottomSheet(getContext(), LocaleController.getString(R.string.InviteByQRCode), lastUrl, LocaleController.getString(R.string.QRCodeLinkHelpFolder), false); qrCodeBottomSheet.setCenterAnimation(R.raw.qr_code_logo); qrCodeBottomSheet.show(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java index 4c188af37d..f54b239376 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java @@ -262,23 +262,23 @@ private void updateRows(boolean animated) { nameRow = items.size(); items.add(ItemInner.asEdit()); items.add(ItemInner.asShadow(null)); - items.add(ItemInner.asHeader(LocaleController.getString("FilterInclude", R.string.FilterInclude))); - items.add(ItemInner.asButton(R.drawable.msg2_chats_add, LocaleController.getString("FilterAddChats", R.string.FilterAddChats), false).whenClicked(v -> selectChatsFor(true))); + items.add(ItemInner.asHeader(LocaleController.getString(R.string.FilterInclude))); + items.add(ItemInner.asButton(R.drawable.msg2_chats_add, LocaleController.getString(R.string.FilterAddChats), false).whenClicked(v -> selectChatsFor(true))); if ((newFilterFlags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) != 0) { - items.add(ItemInner.asChat(true, LocaleController.getString("FilterContacts", R.string.FilterContacts), "contacts", MessagesController.DIALOG_FILTER_FLAG_CONTACTS)); + items.add(ItemInner.asChat(true, LocaleController.getString(R.string.FilterContacts), "contacts", MessagesController.DIALOG_FILTER_FLAG_CONTACTS)); } if ((newFilterFlags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) != 0) { - items.add(ItemInner.asChat(true, LocaleController.getString("FilterNonContacts", R.string.FilterNonContacts), "non_contacts", MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS)); + items.add(ItemInner.asChat(true, LocaleController.getString(R.string.FilterNonContacts), "non_contacts", MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS)); } if ((newFilterFlags & MessagesController.DIALOG_FILTER_FLAG_GROUPS) != 0) { - items.add(ItemInner.asChat(true, LocaleController.getString("FilterGroups", R.string.FilterGroups), "groups", MessagesController.DIALOG_FILTER_FLAG_GROUPS)); + items.add(ItemInner.asChat(true, LocaleController.getString(R.string.FilterGroups), "groups", MessagesController.DIALOG_FILTER_FLAG_GROUPS)); } if ((newFilterFlags & MessagesController.DIALOG_FILTER_FLAG_CHANNELS) != 0) { - items.add(ItemInner.asChat(true, LocaleController.getString("FilterChannels", R.string.FilterChannels), "channels", MessagesController.DIALOG_FILTER_FLAG_CHANNELS)); + items.add(ItemInner.asChat(true, LocaleController.getString(R.string.FilterChannels), "channels", MessagesController.DIALOG_FILTER_FLAG_CHANNELS)); } if ((newFilterFlags & MessagesController.DIALOG_FILTER_FLAG_BOTS) != 0) { - items.add(ItemInner.asChat(true, LocaleController.getString("FilterBots", R.string.FilterBots), "bots", MessagesController.DIALOG_FILTER_FLAG_BOTS)); + items.add(ItemInner.asChat(true, LocaleController.getString(R.string.FilterBots), "bots", MessagesController.DIALOG_FILTER_FLAG_BOTS)); } if (!newAlwaysShow.isEmpty()) { @@ -296,9 +296,9 @@ private void updateRows(boolean animated) { ); } } - items.add(ItemInner.asShadow(LocaleController.getString("FilterIncludeInfo", R.string.FilterIncludeInfo))); + items.add(ItemInner.asShadow(LocaleController.getString(R.string.FilterIncludeInfo))); if (!filter.isChatlist()) { - items.add(ItemInner.asHeader(LocaleController.getString("FilterExclude", R.string.FilterExclude))); + items.add(ItemInner.asHeader(LocaleController.getString(R.string.FilterExclude))); items.add(ItemInner.asButton(R.drawable.msg2_chats_add, LocaleController.getString(R.string.FilterRemoveChats), false).whenClicked(v -> selectChatsFor(false))); if ((newFilterFlags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) != 0) { items.add(ItemInner.asChat(false, LocaleController.getString(R.string.FilterMuted), "muted", MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED)); @@ -324,7 +324,7 @@ private void updateRows(boolean animated) { ); } } - items.add(ItemInner.asShadow(LocaleController.getString("FilterExcludeInfo", R.string.FilterExcludeInfo))); + items.add(ItemInner.asShadow(LocaleController.getString(R.string.FilterExcludeInfo))); } if (getMessagesController().folderTags || !getUserConfig().isPremium()) { @@ -334,24 +334,24 @@ private void updateRows(boolean animated) { } if (invites.isEmpty()) { - items.add(ItemInner.asHeader(LocaleController.getString("FilterShareFolder", R.string.FilterShareFolder), true)); - items.add(ItemInner.asButton(R.drawable.msg2_link2, LocaleController.getString("FilterShareFolderButton", R.string.FilterShareFolderButton), false)); - items.add(ItemInner.asShadow(LocaleController.getString("FilterInviteLinksHintNew", R.string.FilterInviteLinksHintNew))); + items.add(ItemInner.asHeader(LocaleController.getString(R.string.FilterShareFolder), true)); + items.add(ItemInner.asButton(R.drawable.msg2_link2, LocaleController.getString(R.string.FilterShareFolderButton), false)); + items.add(ItemInner.asShadow(LocaleController.getString(R.string.FilterInviteLinksHintNew))); } else { - items.add(ItemInner.asHeader(LocaleController.getString("FilterInviteLinks", R.string.FilterInviteLinks), true)); + items.add(ItemInner.asHeader(LocaleController.getString(R.string.FilterInviteLinks), true)); items.add(ItemInner.asCreateLink()); for (int i = 0; i < invites.size(); ++i) { items.add(ItemInner.asLink(invites.get(i))); } items.add(ItemInner.asShadow( - filter != null && filter.isChatlist() ? - LocaleController.getString("FilterInviteLinksHintNew", R.string.FilterInviteLinksHintNew) : - LocaleController.getString("FilterInviteLinksHint", R.string.FilterInviteLinksHint) + filter != null && filter.isChatlist() ? + LocaleController.getString(R.string.FilterInviteLinksHintNew) : + LocaleController.getString(R.string.FilterInviteLinksHint) )); } if (!creatingNew) { - items.add(ItemInner.asButton(0, LocaleController.getString("FilterDelete", R.string.FilterDelete), true).whenClicked(this::deleteFolder)); + items.add(ItemInner.asButton(0, LocaleController.getString(R.string.FilterDelete), true).whenClicked(this::deleteFolder)); items.add(ItemInner.asShadow(null)); } @@ -372,7 +372,7 @@ public View createView(Context context) { actionBar.setAllowOverlayTitle(true); ActionBarMenu menu = actionBar.createMenu(); if (creatingNew) { - actionBar.setTitle(LocaleController.getString("FilterNew", R.string.FilterNew)); + actionBar.setTitle(LocaleController.getString(R.string.FilterNew)); } else { TextPaint paint = new TextPaint(Paint.ANTI_ALIAS_FLAG); paint.setTextSize(dp(20)); @@ -390,7 +390,7 @@ public void onItemClick(int id) { } } }); - doneItem = menu.addItem(done_button, LocaleController.getString("Save", R.string.Save).toUpperCase()); + doneItem = menu.addItem(done_button, LocaleController.getString(R.string.Save).toUpperCase()); fragmentView = new FrameLayout(context); FrameLayout frameLayout = (FrameLayout) fragmentView; @@ -497,17 +497,17 @@ private void onClickCreateLink(View view) { AndroidUtilities.shakeViewSpring(view, shiftDp = -shiftDp); BotWebViewVibrationEffect.APP_ERROR.vibrate(); if (TextUtils.isEmpty(newFilterName) && TextUtils.isEmpty(filter.name)) { - BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("FilterInviteErrorEmptyName", R.string.FilterInviteErrorEmptyName)).show(); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.FilterInviteErrorEmptyName)).show(); } else if ((newFilterFlags & ~(MessagesController.DIALOG_FILTER_FLAG_CHATLIST | MessagesController.DIALOG_FILTER_FLAG_CHATLIST_ADMIN)) != 0) { if (!newNeverShow.isEmpty()) { - BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("FilterInviteErrorTypesExcluded", R.string.FilterInviteErrorTypesExcluded)).show(); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.FilterInviteErrorTypesExcluded)).show(); } else { - BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("FilterInviteErrorTypes", R.string.FilterInviteErrorTypes)).show(); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.FilterInviteErrorTypes)).show(); } } else if (newAlwaysShow.isEmpty()) { - BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("FilterInviteErrorEmpty", R.string.FilterInviteErrorEmpty)).show(); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.FilterInviteErrorEmpty)).show(); } else { - BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("FilterInviteErrorExcluded", R.string.FilterInviteErrorExcluded)).show(); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.FilterInviteErrorExcluded)).show(); } return; } @@ -582,7 +582,7 @@ public void setVisibility(int visibility) { }; saveHintView.textView.setMaxWidth(AndroidUtilities.displaySize.x); saveHintView.setExtraTranslationY(AndroidUtilities.dp(-16)); - saveHintView.setText(LocaleController.getString("FilterFinishCreating", R.string.FilterFinishCreating)); + saveHintView.setText(LocaleController.getString(R.string.FilterFinishCreating)); ViewGroup.MarginLayoutParams params = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.rightMargin = AndroidUtilities.dp(3); getParentLayout().getOverlayContainerView().addView(saveHintView, params); @@ -647,10 +647,10 @@ private void deleteFolder(View view) { }); } else { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("FilterDelete", R.string.FilterDelete)); - builder.setMessage(LocaleController.getString("FilterDeleteAlert", R.string.FilterDeleteAlert)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialog, which) -> { + builder.setTitle(LocaleController.getString(R.string.FilterDelete)); + builder.setMessage(LocaleController.getString(R.string.FilterDeleteAlert)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialog, which) -> { AlertDialog progressDialog = null; if (getParentActivity() != null) { progressDialog = new AlertDialog(getParentActivity(), AlertDialog.ALERT_TYPE_SPINNER); @@ -794,15 +794,15 @@ private boolean checkDiscard() { if (doneItem.getAlpha() == 1.0f) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); if (creatingNew) { - builder.setTitle(LocaleController.getString("FilterDiscardNewTitle", R.string.FilterDiscardNewTitle)); - builder.setMessage(LocaleController.getString("FilterDiscardNewAlert", R.string.FilterDiscardNewAlert)); - builder.setPositiveButton(LocaleController.getString("FilterDiscardNewSave", R.string.FilterDiscardNewSave), (dialogInterface, i) -> processDone()); + builder.setTitle(LocaleController.getString(R.string.FilterDiscardNewTitle)); + builder.setMessage(LocaleController.getString(R.string.FilterDiscardNewAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.FilterDiscardNewSave), (dialogInterface, i) -> processDone()); } else { - builder.setTitle(LocaleController.getString("FilterDiscardTitle", R.string.FilterDiscardTitle)); - builder.setMessage(LocaleController.getString("FilterDiscardAlert", R.string.FilterDiscardAlert)); - builder.setPositiveButton(LocaleController.getString("ApplyTheme", R.string.ApplyTheme), (dialogInterface, i) -> processDone()); + builder.setTitle(LocaleController.getString(R.string.FilterDiscardTitle)); + builder.setMessage(LocaleController.getString(R.string.FilterDiscardAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.ApplyTheme), (dialogInterface, i) -> processDone()); } - builder.setNegativeButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialog, which) -> finishFragment()); + builder.setNegativeButton(LocaleController.getString(R.string.PassportDiscard), (dialog, which) -> finishFragment()); showDialog(builder.create()); return false; } @@ -812,7 +812,7 @@ private boolean checkDiscard() { private void showRemoveAlert(ItemInner item, CharSequence name, Object object, boolean include) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); if (include) { - builder.setTitle(LocaleController.getString("FilterRemoveInclusionTitle", R.string.FilterRemoveInclusionTitle)); + builder.setTitle(LocaleController.getString(R.string.FilterRemoveInclusionTitle)); if (object instanceof String) { builder.setMessage(LocaleController.formatString("FilterRemoveInclusionText", R.string.FilterRemoveInclusionText, name)); } else if (object instanceof TLRPC.User) { @@ -821,7 +821,7 @@ private void showRemoveAlert(ItemInner item, CharSequence name, Object object, b builder.setMessage(LocaleController.formatString("FilterRemoveInclusionChatText", R.string.FilterRemoveInclusionChatText, name)); } } else { - builder.setTitle(LocaleController.getString("FilterRemoveExclusionTitle", R.string.FilterRemoveExclusionTitle)); + builder.setTitle(LocaleController.getString(R.string.FilterRemoveExclusionTitle)); if (object instanceof String) { builder.setMessage(LocaleController.formatString("FilterRemoveExclusionText", R.string.FilterRemoveExclusionText, name)); } else if (object instanceof TLRPC.User) { @@ -830,8 +830,8 @@ private void showRemoveAlert(ItemInner item, CharSequence name, Object object, b builder.setMessage(LocaleController.formatString("FilterRemoveExclusionChatText", R.string.FilterRemoveExclusionChatText, name)); } } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("StickersRemove", R.string.StickersRemove), (dialogInterface, i) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.StickersRemove), (dialogInterface, i) -> { if (item.flags > 0) { newFilterFlags &=~ item.flags; } else { @@ -1389,7 +1389,7 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { setTextLeft(holder.itemView); PollEditTextCell textCell = (PollEditTextCell) holder.itemView; textCell.setTag(1); - textCell.setTextAndHint(newFilterName != null ? newFilterName : "", LocaleController.getString("FilterNameHint", R.string.FilterNameHint), false); + textCell.setTextAndHint(newFilterName != null ? newFilterName : "", LocaleController.getString(R.string.FilterNameHint), false); textCell.setTag(null); } } @@ -1435,11 +1435,11 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (user != null) { String status; if (user.bot) { - status = LocaleController.getString("Bot", R.string.Bot); + status = LocaleController.getString(R.string.Bot); } else if (user.contact) { - status = LocaleController.getString("FilterContact", R.string.FilterContact); + status = LocaleController.getString(R.string.FilterContact); } else { - status = LocaleController.getString("FilterNonContact", R.string.FilterNonContact); + status = LocaleController.getString(R.string.FilterNonContact); } userCell.setData(user, null, status, 0, divider); } @@ -1455,15 +1455,15 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } } else if (!ChatObject.isPublic(chat)) { if (ChatObject.isChannel(chat) && !chat.megagroup) { - status = LocaleController.getString("ChannelPrivate", R.string.ChannelPrivate); + status = LocaleController.getString(R.string.ChannelPrivate); } else { - status = LocaleController.getString("MegaPrivate", R.string.MegaPrivate); + status = LocaleController.getString(R.string.MegaPrivate); } } else { if (ChatObject.isChannel(chat) && !chat.megagroup) { - status = LocaleController.getString("ChannelPublic", R.string.ChannelPublic); + status = LocaleController.getString(R.string.ChannelPublic); } else { - status = LocaleController.getString("MegaPublic", R.string.MegaPublic); + status = LocaleController.getString(R.string.MegaPublic); } } userCell.setData(chat, null, status, 0, divider); @@ -1681,7 +1681,7 @@ public CreateLinkCell(Context context) { textView = new TextView(context); textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText4)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); - textView.setText(LocaleController.getString("CreateNewLink", R.string.CreateNewLink)); + textView.setText(LocaleController.getString(R.string.CreateNewLink)); textView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); textView.setPadding(LocaleController.isRTL ? 16 : 0, 0, LocaleController.isRTL ? 0 : 16, 0); addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.FILL_HORIZONTAL | Gravity.CENTER_VERTICAL, LocaleController.isRTL ? 0 : 64, 0, LocaleController.isRTL ? 64 : 0, 0)); @@ -1776,7 +1776,7 @@ public LinkCell(Context context, BaseFragment fragment, int currentAccount, int optionsIcon.setBackground(Theme.createSelectorDrawable(Theme.getColor(Theme.key_listSelector))); optionsIcon.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_stickers_menu), PorterDuff.Mode.SRC_IN)); optionsIcon.setOnClickListener(e -> options()); - optionsIcon.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + optionsIcon.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); addView(optionsIcon, LayoutHelper.createFrame(40, 40, Gravity.CENTER_VERTICAL | (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT), LocaleController.isRTL ? 8 : 4, 4, LocaleController.isRTL ? 4 : 8, 4)); paint = new Paint(); @@ -1885,8 +1885,8 @@ public void options() { return; } ItemOptions options = ItemOptions.makeOptions(fragment, this); - options.add(R.drawable.msg_qrcode, LocaleController.getString("GetQRCode", R.string.GetQRCode), this::qrcode); - options.add(R.drawable.msg_delete, LocaleController.getString("DeleteLink", R.string.DeleteLink), true, this::deleteLink); + options.add(R.drawable.msg_qrcode, LocaleController.getString(R.string.GetQRCode), this::qrcode); + options.add(R.drawable.msg_delete, LocaleController.getString(R.string.DeleteLink), true, this::deleteLink); if (LocaleController.isRTL) { options.setGravity(Gravity.LEFT); } @@ -1935,7 +1935,7 @@ public void deleteLink() { Runnable update = () -> onDelete(lastInvite); ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { if (err != null) { - BulletinFactory.of(fragment).createErrorBulletin(LocaleController.getString("UnknownError", R.string.UnknownError)).show(); + BulletinFactory.of(fragment).createErrorBulletin(LocaleController.getString(R.string.UnknownError)).show(); AndroidUtilities.cancelRunOnUIThread(update); } })); @@ -1956,7 +1956,7 @@ public void qrcode() { return; } - QRCodeBottomSheet qrCodeBottomSheet = new QRCodeBottomSheet(getContext(), LocaleController.getString("InviteByQRCode", R.string.InviteByQRCode), lastUrl, LocaleController.getString("QRCodeLinkHelpFolder", R.string.QRCodeLinkHelpFolder), false); + QRCodeBottomSheet qrCodeBottomSheet = new QRCodeBottomSheet(getContext(), LocaleController.getString(R.string.InviteByQRCode), lastUrl, LocaleController.getString(R.string.QRCodeLinkHelpFolder), false); qrCodeBottomSheet.setCenterAnimation(R.raw.qr_code_logo); qrCodeBottomSheet.show(); } @@ -1965,9 +1965,9 @@ public void qrcode() { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); info.setContentDescription( - (lastInvite != null && !TextUtils.isEmpty(lastInvite.title) ? lastInvite.title + "\n " : "") + - LocaleController.getString("InviteLink", R.string.InviteLink) + ", " + subtitleTextView.getText() + - (lastInvite != null && TextUtils.isEmpty(lastInvite.title) ? "\n\n" + lastInvite.url : "") + (lastInvite != null && !TextUtils.isEmpty(lastInvite.title) ? lastInvite.title + "\n " : "") + + LocaleController.getString(R.string.InviteLink) + ", " + subtitleTextView.getText() + + (lastInvite != null && TextUtils.isEmpty(lastInvite.title) ? "\n\n" + lastInvite.url : "") ); } } @@ -1987,7 +1987,7 @@ public static CharSequence withNew(int type, CharSequence string, boolean outlin SpannableStringBuilder text = new SpannableStringBuilder(string); text.append(" "); - SpannableString newText = new SpannableString("NEW"); // new SpannableString(LocaleController.getString("New", R.string.New)); + SpannableString newText = new SpannableString("NEW"); // new SpannableString(LocaleController.getString(R.string.New)); if (outline) { Drawable drawable = context.getResources().getDrawable(R.drawable.msg_other_new_outline).mutate(); drawable.setBounds(0, -dp(8), drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight() - dp(8)); @@ -2068,7 +2068,7 @@ public void setColor(int color) { public StaticLayout makeLayout() { if (layout == null) { - layout = new StaticLayout("NEW"/*LocaleController.getString("New", R.string.New)*/, textPaint, AndroidUtilities.displaySize.x, Layout.Alignment.ALIGN_NORMAL, 1, 0, false); + layout = new StaticLayout("NEW"/*LocaleController.getString(R.string.New)*/, textPaint, AndroidUtilities.displaySize.x, Layout.Alignment.ALIGN_NORMAL, 1, 0, false); width = layout.getLineWidth(0); height = layout.getHeight(); } @@ -2130,11 +2130,11 @@ private void onUpdate(boolean add, int count) { showedUpdateBulletin = true; showBulletinOnResume = () -> { BulletinFactory.of(this).createSimpleBulletin( - add ? R.raw.folder_in : R.raw.folder_out, - add ? - LocaleController.formatPluralString("FolderLinkAddedChats", count) : - LocaleController.formatPluralString("FolderLinkRemovedChats", count), - LocaleController.getString("FolderLinkChatlistUpdate", R.string.FolderLinkChatlistUpdate) + add ? R.raw.folder_in : R.raw.folder_out, + add ? + LocaleController.formatPluralString("FolderLinkAddedChats", count) : + LocaleController.formatPluralString("FolderLinkRemovedChats", count), + LocaleController.getString(R.string.FolderLinkChatlistUpdate) ).setDuration(Bulletin.DURATION_PROLONG).show(); }; if (getLayoutContainer() != null) { @@ -2163,7 +2163,7 @@ public static void show(BaseFragment fragment, MessagesController.DialogFilter f } else if (err != null && "FILTER_ID_INVALID".equals(err.text) && !filter.isDefault()) { new FilterCreateActivity.FilterInvitesBottomSheet(fragment, filter, null).show(); } else { - BulletinFactory.of(fragment).createErrorBulletin(LocaleController.getString("UnknownError", R.string.UnknownError)).show(); + BulletinFactory.of(fragment).createErrorBulletin(LocaleController.getString(R.string.UnknownError)).show(); } if (onLoaded != null) { AndroidUtilities.runOnUIThread(onLoaded, Math.max(0, 200 - (System.currentTimeMillis() - start))); @@ -2199,7 +2199,7 @@ public FilterInvitesBottomSheet(BaseFragment fragment, MessagesController.Dialog button.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); button.setTypeface(AndroidUtilities.bold()); button.setBackground(Theme.AdaptiveRipple.filledRectByKey(Theme.key_featuredStickers_addButton, 8)); - button.setText(LocaleController.getString("FolderLinkShareButton", R.string.FolderLinkShareButton)); + button.setText(LocaleController.getString(R.string.FolderLinkShareButton)); button.setGravity(Gravity.CENTER); button.setOnClickListener(e -> createLink()); containerView.addView(button, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.BOTTOM | Gravity.FILL_HORIZONTAL, 16, 10, 16, 10)); @@ -2323,9 +2323,9 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int @Override public void options() { ItemOptions options = ItemOptions.makeOptions(container, this); - options.add(R.drawable.msg_copy, LocaleController.getString("CopyLink", R.string.CopyLink), this::copy); - options.add(R.drawable.msg_qrcode, LocaleController.getString("GetQRCode", R.string.GetQRCode), this::qrcode); - options.add(R.drawable.msg_delete, LocaleController.getString("DeleteLink", R.string.DeleteLink), true, this::deleteLink); + options.add(R.drawable.msg_copy, LocaleController.getString(R.string.CopyLink), this::copy); + options.add(R.drawable.msg_qrcode, LocaleController.getString(R.string.GetQRCode), this::qrcode); + options.add(R.drawable.msg_delete, LocaleController.getString(R.string.DeleteLink), true, this::deleteLink); if (LocaleController.isRTL) { options.setGravity(Gravity.LEFT); } @@ -2393,7 +2393,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi // textView.setText(item.text); } else if (viewType == VIEW_TYPE_CREATE_LINK) { CreateLinkCell createLinkCell = (CreateLinkCell) holder.itemView; - createLinkCell.setText(LocaleController.getString("CreateNewInviteLink", R.string.CreateNewInviteLink)); + createLinkCell.setText(LocaleController.getString(R.string.CreateNewInviteLink)); createLinkCell.setDivider(divider); } } @@ -2432,8 +2432,8 @@ public HeaderView(Context context) { subtitleView = new TextView(context); subtitleView.setText(invites.isEmpty() ? - LocaleController.getString("FolderLinkShareSubtitleEmpty", R.string.FolderLinkShareSubtitleEmpty) : - LocaleController.getString("FolderLinkShareSubtitle", R.string.FolderLinkShareSubtitle) + LocaleController.getString(R.string.FolderLinkShareSubtitleEmpty) : + LocaleController.getString(R.string.FolderLinkShareSubtitle) ); subtitleView.setLines(2); subtitleView.setGravity(Gravity.CENTER_HORIZONTAL); @@ -2529,9 +2529,9 @@ public static boolean processErrors(TLRPC.TL_error err, BaseFragment fragment, B if ("INVITE_PEERS_TOO_MUCH".equals(err.text)) { new LimitReachedBottomSheet(fragment, fragment.getContext(), LimitReachedBottomSheet.TYPE_CHATS_IN_FOLDER, fragment.getCurrentAccount(), null).show(); } else if ("PEERS_LIST_EMPTY".equals(err.text)) { - factory.createErrorBulletin(LocaleController.getString("FolderLinkNoChatsError", R.string.FolderLinkNoChatsError)).show(); + factory.createErrorBulletin(LocaleController.getString(R.string.FolderLinkNoChatsError)).show(); } else if ("USER_CHANNELS_TOO_MUCH".equals(err.text)) { - factory.createErrorBulletin(LocaleController.getString("FolderLinkOtherAdminLimitError", R.string.FolderLinkOtherAdminLimitError)).show(); + factory.createErrorBulletin(LocaleController.getString(R.string.FolderLinkOtherAdminLimitError)).show(); } else if ("CHANNELS_TOO_MUCH".equals(err.text)) { new LimitReachedBottomSheet(fragment, fragment.getContext(), LimitReachedBottomSheet.TYPE_TO0_MANY_COMMUNITIES, fragment.getCurrentAccount(), null).show(); } else if ("INVITES_TOO_MUCH".equals(err.text)) { @@ -2539,13 +2539,13 @@ public static boolean processErrors(TLRPC.TL_error err, BaseFragment fragment, B } else if ("CHATLISTS_TOO_MUCH".equals(err.text)) { new LimitReachedBottomSheet(fragment, fragment.getContext(), LimitReachedBottomSheet.TYPE_SHARED_FOLDERS, fragment.getCurrentAccount(), null).show(); } else if ("INVITE_SLUG_EXPIRED".equals(err.text)) { - factory.createErrorBulletin(LocaleController.getString("NoFolderFound", R.string.NoFolderFound)).show(); + factory.createErrorBulletin(LocaleController.getString(R.string.NoFolderFound)).show(); } else if ("FILTER_INCLUDE_TOO_MUCH".equals(err.text)) { new LimitReachedBottomSheet(fragment, fragment.getContext(), LimitReachedBottomSheet.TYPE_CHATS_IN_FOLDER, fragment.getCurrentAccount(), null).show(); } else if ("DIALOG_FILTERS_TOO_MUCH".equals(err.text)) { new LimitReachedBottomSheet(fragment, fragment.getContext(), LimitReachedBottomSheet.TYPE_FOLDERS, fragment.getCurrentAccount(), null).show(); } else { - factory.createErrorBulletin(LocaleController.getString("UnknownError", R.string.UnknownError)).show(); + factory.createErrorBulletin(LocaleController.getString(R.string.UnknownError)).show(); } return true; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/FilteredSearchView.java b/TMessagesProj/src/main/java/org/telegram/ui/FilteredSearchView.java index fcd8c97e28..0ca0d7b97a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/FilteredSearchView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/FilteredSearchView.java @@ -675,9 +675,9 @@ public void search(long dialogId, long minDate, long maxDate, FiltersView.MediaF } isLoading = false; if (error != null) { - emptyView.title.setText(LocaleController.getString("SearchEmptyViewTitle2", R.string.SearchEmptyViewTitle2)); + emptyView.title.setText(LocaleController.getString(R.string.SearchEmptyViewTitle2)); emptyView.subtitle.setVisibility(View.VISIBLE); - emptyView.subtitle.setText(LocaleController.getString("SearchEmptyViewFilteredSubtitle2", R.string.SearchEmptyViewFilteredSubtitle2)); + emptyView.subtitle.setText(LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitle2)); emptyView.showProgress(false, true); return; } @@ -722,28 +722,28 @@ public void search(long dialogId, long minDate, long maxDate, FiltersView.MediaF if (messages.isEmpty()) { if (currentSearchFilter != null) { if (TextUtils.isEmpty(currentDataQuery) && dialogId == 0 && minDate == 0) { - emptyView.title.setText(LocaleController.getString("SearchEmptyViewTitle", R.string.SearchEmptyViewTitle)); + emptyView.title.setText(LocaleController.getString(R.string.SearchEmptyViewTitle)); String str; if (currentSearchFilter.filterType == FiltersView.FILTER_TYPE_FILES) { - str = LocaleController.getString("SearchEmptyViewFilteredSubtitleFiles", R.string.SearchEmptyViewFilteredSubtitleFiles); + str = LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitleFiles); } else if (currentSearchFilter.filterType == FiltersView.FILTER_TYPE_MEDIA) { - str = LocaleController.getString("SearchEmptyViewFilteredSubtitleMedia", R.string.SearchEmptyViewFilteredSubtitleMedia); + str = LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitleMedia); } else if (currentSearchFilter.filterType == FiltersView.FILTER_TYPE_LINKS) { - str = LocaleController.getString("SearchEmptyViewFilteredSubtitleLinks", R.string.SearchEmptyViewFilteredSubtitleLinks); + str = LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitleLinks); } else if (currentSearchFilter.filterType == FiltersView.FILTER_TYPE_MUSIC) { - str = LocaleController.getString("SearchEmptyViewFilteredSubtitleMusic", R.string.SearchEmptyViewFilteredSubtitleMusic); + str = LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitleMusic); } else { - str = LocaleController.getString("SearchEmptyViewFilteredSubtitleVoice", R.string.SearchEmptyViewFilteredSubtitleVoice); + str = LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitleVoice); } emptyView.subtitle.setVisibility(View.VISIBLE); emptyView.subtitle.setText(str); } else { - emptyView.title.setText(LocaleController.getString("SearchEmptyViewTitle2", R.string.SearchEmptyViewTitle2)); + emptyView.title.setText(LocaleController.getString(R.string.SearchEmptyViewTitle2)); emptyView.subtitle.setVisibility(View.VISIBLE); - emptyView.subtitle.setText(LocaleController.getString("SearchEmptyViewFilteredSubtitle2", R.string.SearchEmptyViewFilteredSubtitle2)); + emptyView.subtitle.setText(LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitle2)); } } else { - emptyView.title.setText(LocaleController.getString("SearchEmptyViewTitle2", R.string.SearchEmptyViewTitle2)); + emptyView.title.setText(LocaleController.getString(R.string.SearchEmptyViewTitle2)); emptyView.subtitle.setVisibility(View.GONE); } } @@ -782,7 +782,7 @@ public void search(long dialogId, long minDate, long maxDate, FiltersView.MediaF if (finalResultArray != null) { localTipChats.addAll(finalResultArray); } - if (query != null && query.length() >= 3 && (LocaleController.getString("SavedMessages", R.string.SavedMessages).toLowerCase().startsWith(query) || + if (query != null && query.length() >= 3 && (LocaleController.getString(R.string.SavedMessages).toLowerCase().startsWith(query) || "saved messages".startsWith(query))) { boolean found = false; for (int i = 0; i < localTipChats.size(); i++) { @@ -799,7 +799,7 @@ public void search(long dialogId, long minDate, long maxDate, FiltersView.MediaF localTipDates.clear(); localTipDates.addAll(dateData); localTipArchive = false; - if (query != null && query.length() >= 3 && (LocaleController.getString("ArchiveSearchFilter", R.string.ArchiveSearchFilter).toLowerCase().startsWith(query) || + if (query != null && query.length() >= 3 && (LocaleController.getString(R.string.ArchiveSearchFilter).toLowerCase().startsWith(query) || "archive".startsWith(query))) { localTipArchive = true; } @@ -1163,7 +1163,7 @@ public void onLinkPress(String urlFinal, boolean longPress) { BottomBuilder builder = new BottomBuilder(parentActivity); builder.addTitle(urlFinal); builder.addItems( - new String[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy), LocaleController.getString("ShareQRCode", R.string.ShareQRCode)}, + new String[]{LocaleController.getString(R.string.Open), LocaleController.getString(R.string.Copy), LocaleController.getString(R.string.ShareQRCode)}, new int[]{R.drawable.msg_openin, R.drawable.msg_copy, R.drawable.msg_qrcode}, (which, text, __) -> { if (which == 0 || which == 2) { if (which == 0) { @@ -1179,7 +1179,7 @@ public void onLinkPress(String urlFinal, boolean longPress) { url1 = url1.substring(4); } AndroidUtilities.addToClipboard(url1); - AlertUtil.showToast(LocaleController.getString("LinkCopied", R.string.LinkCopied)); + AlertUtil.showToast(LocaleController.getString( R.string.LinkCopied)); } return Unit.INSTANCE; }); @@ -1628,7 +1628,7 @@ public boolean isForumCell() { default: case 2: GraySectionCell cell = new GraySectionCell(parent.getContext()); - cell.setText(LocaleController.getString("SearchMessages", R.string.SearchMessages)); + cell.setText(LocaleController.getString(R.string.SearchMessages)); view = cell; break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java index 87649da078..52442a8fa6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java @@ -175,7 +175,7 @@ public SuggestedFilterCell(Context context) { addView(valueTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT, 22, 35, 22, 0)); addButton = new ProgressButton(context); - addButton.setText(LocaleController.getString("Add", R.string.Add)); + addButton.setText(LocaleController.getString(R.string.Add)); addButton.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); addButton.setProgressColor(Theme.getColor(Theme.key_featuredStickers_buttonProgress)); addButton.setBackgroundRoundRect(Theme.getColor(Theme.key_featuredStickers_addButton), Theme.getColor(Theme.key_featuredStickers_addButtonPressed)); @@ -283,8 +283,8 @@ public FilterCell(Context context) { moveImageView.setFocusable(false); moveImageView.setScaleType(ImageView.ScaleType.CENTER); moveImageView.setImageResource(R.drawable.list_reorder); - moveImageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_stickers_menu), PorterDuff.Mode.SRC_IN)); - moveImageView.setContentDescription(LocaleController.getString("FilterReorder", R.string.FilterReorder)); + moveImageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_stickers_menu), PorterDuff.Mode.MULTIPLY)); + moveImageView.setContentDescription(LocaleController.getString(R.string.FilterReorder)); moveImageView.setClickable(true); addView(moveImageView, LayoutHelper.createFrame(48, 48, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL, 7, 0, 6, 0)); @@ -346,7 +346,7 @@ protected boolean verifyDrawable(@NonNull Drawable dr) { shareImageView.setScaleType(ImageView.ScaleType.CENTER); shareImageView.setBackground(Theme.createSelectorDrawable(selector)); shareImageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_stickers_menu), PorterDuff.Mode.MULTIPLY)); - shareImageView.setContentDescription(LocaleController.getString("FilterShare", R.string.FilterShare)); + shareImageView.setContentDescription(LocaleController.getString(R.string.FilterShare)); shareImageView.setVisibility(View.GONE); shareImageView.setImageResource(R.drawable.msg_link_folder); shareImageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_stickers_menu), PorterDuff.Mode.MULTIPLY)); @@ -372,7 +372,7 @@ protected boolean verifyDrawable(@NonNull Drawable dr) { optionsImageView.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.getColor(Theme.key_listSelector))); optionsImageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_stickers_menu), PorterDuff.Mode.MULTIPLY)); optionsImageView.setImageResource(R.drawable.msg_actions); - optionsImageView.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + optionsImageView.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); addView(optionsImageView, LayoutHelper.createFrame(40, 40, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.CENTER_VERTICAL, 6, 0, 6, 0)); } @@ -427,37 +427,37 @@ public void setFilter(MessagesController.DialogFilter filter, boolean divider, i StringBuilder info = new StringBuilder(); if (filter.isDefault() || (filter.flags & MessagesController.DIALOG_FILTER_FLAG_ALL_CHATS) == MessagesController.DIALOG_FILTER_FLAG_ALL_CHATS) { - info.append(LocaleController.getString("FilterAllChats", R.string.FilterAllChats)); + info.append(LocaleController.getString(R.string.FilterAllChats)); } else { if ((filter.flags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) != 0) { if (info.length() != 0) { info.append(", "); } - info.append(LocaleController.getString("FilterContacts", R.string.FilterContacts)); + info.append(LocaleController.getString(R.string.FilterContacts)); } if ((filter.flags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) != 0) { if (info.length() != 0) { info.append(", "); } - info.append(LocaleController.getString("FilterNonContacts", R.string.FilterNonContacts)); + info.append(LocaleController.getString(R.string.FilterNonContacts)); } if ((filter.flags & MessagesController.DIALOG_FILTER_FLAG_GROUPS) != 0) { if (info.length() != 0) { info.append(", "); } - info.append(LocaleController.getString("FilterGroups", R.string.FilterGroups)); + info.append(LocaleController.getString(R.string.FilterGroups)); } if ((filter.flags & MessagesController.DIALOG_FILTER_FLAG_CHANNELS) != 0) { if (info.length() != 0) { info.append(", "); } - info.append(LocaleController.getString("FilterChannels", R.string.FilterChannels)); + info.append(LocaleController.getString(R.string.FilterChannels)); } if ((filter.flags & MessagesController.DIALOG_FILTER_FLAG_BOTS) != 0) { if (info.length() != 0) { info.append(", "); } - info.append(LocaleController.getString("FilterBots", R.string.FilterBots)); + info.append(LocaleController.getString(R.string.FilterBots)); } } if (!filter.alwaysShow.isEmpty() || !filter.neverShow.isEmpty()) { @@ -467,12 +467,12 @@ public void setFilter(MessagesController.DialogFilter filter, boolean divider, i info.append(LocaleController.formatPluralString("Exception", filter.alwaysShow.size() + filter.neverShow.size())); } if (info.length() == 0) { - info.append(LocaleController.getString("FilterNoChats", R.string.FilterNoChats)); + info.append(LocaleController.getString(R.string.FilterNoChats)); } String name = filter.name; if (filter.isDefault()) { - name = LocaleController.getString("FilterAllChats", R.string.FilterAllChats); + name = LocaleController.getString(R.string.FilterAllChats); } if (!animated) { progressToLock = currentFilter.locked ? 1f : 0; @@ -551,7 +551,7 @@ private void updateRows(boolean animated) { ArrayList dialogFilters = getMessagesController().getDialogFilters(); items.add(ItemInner.asHint()); if (!suggestedFilters.isEmpty() && dialogFilters.size() < 10) { - items.add(ItemInner.asHeader(LocaleController.getString("FilterRecommended", R.string.FilterRecommended))); + items.add(ItemInner.asHeader(LocaleController.getString(R.string.FilterRecommended))); for (int i = 0; i < suggestedFilters.size(); ++i) { items.add(ItemInner.asSuggested(suggestedFilters.get(i))); } @@ -559,7 +559,7 @@ private void updateRows(boolean animated) { } if (!dialogFilters.isEmpty()) { filtersSectionStart = items.size(); - items.add(ItemInner.asHeader(LocaleController.getString("Filters", R.string.Filters))); + items.add(ItemInner.asHeader(LocaleController.getString(R.string.Filters))); filtersStartPosition = items.size(); for (int i = 0; i < dialogFilters.size(); ++i) { items.add(ItemInner.asFilter(dialogFilters.get(i))); @@ -572,7 +572,7 @@ private void updateRows(boolean animated) { filtersSectionStart = filtersSectionEnd = -1; } if (dialogFilters.size() < getMessagesController().dialogFiltersLimitPremium) { - items.add(ItemInner.asButton(LocaleController.getString("CreateNewFilter", R.string.CreateNewFilter))); + items.add(ItemInner.asButton(LocaleController.getString(R.string.CreateNewFilter))); } items.add(ItemInner.asShadow(null)); folderTagsPosition = items.size(); @@ -614,7 +614,7 @@ public void onFragmentDestroy() { public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("Filters", R.string.Filters)); + actionBar.setTitle(LocaleController.getString(R.string.Filters)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { @@ -887,14 +887,14 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType FilterCell cell = (FilterCell) v.getParent(); MessagesController.DialogFilter filter = cell.getCurrentFilter(); ItemOptions options = ItemOptions.makeOptions(FiltersSetupActivity.this, cell); - options.add(R.drawable.msg_edit, LocaleController.getString("FilterEditItem", R.string.FilterEditItem), () -> { + options.add(R.drawable.msg_edit, LocaleController.getString(R.string.FilterEditItem), () -> { if (filter.locked) { showDialog(new LimitReachedBottomSheet(FiltersSetupActivity.this, mContext, LimitReachedBottomSheet.TYPE_FOLDERS, currentAccount, null)); } else { presentFragment(new FilterCreateActivity(filter)); } }); - options.add(R.drawable.msg_delete, LocaleController.getString("FilterDeleteItem", R.string.FilterDeleteItem), true, () -> { + options.add(R.drawable.msg_delete, LocaleController.getString(R.string.FilterDeleteItem), true, () -> { if (filter.isChatlist()) { FolderBottomSheet.showForDeletion(FiltersSetupActivity.this, filter.id, success -> { updateRows(true); @@ -903,10 +903,10 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("FilterDelete", R.string.FilterDelete)); - builder.setMessage(LocaleController.getString("FilterDeleteAlert", R.string.FilterDeleteAlert)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialog2, which2) -> { + builder.setTitle(LocaleController.getString(R.string.FilterDelete)); + builder.setMessage(LocaleController.getString(R.string.FilterDeleteAlert)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialog2, which2) -> { AlertDialog progressDialog = null; if (getParentActivity() != null) { progressDialog = new AlertDialog(getParentActivity(), AlertDialog.ALERT_TYPE_SPINNER); @@ -1198,7 +1198,7 @@ protected void onDefaultTabMoved() { if (!NekoConfig.disableVibration.Bool()) fragmentView.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_PRESS, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); } catch (Exception ignore) {} - BulletinFactory.of(this).createSimpleBulletin(R.raw.filter_reorder, AndroidUtilities.replaceTags(LocaleController.formatString("LimitReachedReorderFolder", R.string.LimitReachedReorderFolder, LocaleController.getString(R.string.FilterAllChats))), LocaleController.getString("PremiumMore", R.string.PremiumMore), Bulletin.DURATION_PROLONG, () -> { + BulletinFactory.of(this).createSimpleBulletin(R.raw.filter_reorder, AndroidUtilities.replaceTags(LocaleController.formatString("LimitReachedReorderFolder", R.string.LimitReachedReorderFolder, LocaleController.getString(R.string.FilterAllChats))), LocaleController.getString(R.string.PremiumMore), Bulletin.DURATION_PROLONG, () -> { showDialog(new PremiumFeatureBottomSheet(FiltersSetupActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_ADVANCED_CHAT_MANAGEMENT, true)); }).show(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/GroupCallActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/GroupCallActivity.java index f0625674ba..01ecf826d0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/GroupCallActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/GroupCallActivity.java @@ -411,7 +411,7 @@ public void run() { scheduleTimeTextView.setText(AndroidUtilities.formatFullDuration(Math.abs(diff))); if (diff < 0 && scheduleStartInTextView.getTag() == null) { scheduleStartInTextView.setTag(1); - scheduleStartInTextView.setText(LocaleController.getString("VoipChatLateBy", R.string.VoipChatLateBy)); + scheduleStartInTextView.setText(LocaleController.getString(R.string.VoipChatLateBy)); } } scheduleStartAtTextView.setText(LocaleController.formatStartsTime(time, 3)); @@ -1225,21 +1225,21 @@ public void didReceivedNotification(int id, int account, Object... args) { String error; if ("GROUPCALL_PARTICIPANTS_TOO_MUCH".equals(text)) { if (ChatObject.isChannelOrGiga(currentChat)) { - error = LocaleController.getString("VoipChannelTooMuch", R.string.VoipChannelTooMuch); + error = LocaleController.getString(R.string.VoipChannelTooMuch); } else { - error = LocaleController.getString("VoipGroupTooMuch", R.string.VoipGroupTooMuch); + error = LocaleController.getString(R.string.VoipGroupTooMuch); } } else if ("ANONYMOUS_CALLS_DISABLED".equals(text) || "GROUPCALL_ANONYMOUS_FORBIDDEN".equals(text)) { if (ChatObject.isChannelOrGiga(currentChat)) { - error = LocaleController.getString("VoipChannelJoinAnonymousAdmin", R.string.VoipChannelJoinAnonymousAdmin); + error = LocaleController.getString(R.string.VoipChannelJoinAnonymousAdmin); } else { - error = LocaleController.getString("VoipGroupJoinAnonymousAdmin", R.string.VoipGroupJoinAnonymousAdmin); + error = LocaleController.getString(R.string.VoipGroupJoinAnonymousAdmin); } } else { - error = LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred) + "\n" + text; + error = LocaleController.getString(R.string.ErrorOccurred) + "\n" + text; } - AlertDialog.Builder builder = AlertsCreator.createSimpleAlert(getContext(), LocaleController.getString("VoipGroupVoiceChat", R.string.VoipGroupVoiceChat), error); + AlertDialog.Builder builder = AlertsCreator.createSimpleAlert(getContext(), LocaleController.getString(R.string.VoipGroupVoiceChat), error); builder.setOnDismissListener(dialog -> dismiss()); try { builder.show(); @@ -1270,7 +1270,7 @@ public void didReceivedNotification(int id, int account, Object... args) { View child = currentOptionsLayout.getChildAt(i); if (child instanceof ActionBarMenuSubItem && child.getTag() != null && (Integer) child.getTag() == 10) { ((ActionBarMenuSubItem) child).setTextAndIcon( - TextUtils.isEmpty(participant.about) ? LocaleController.getString("VoipAddDescription", R.string.VoipAddDescription) : LocaleController.getString("VoipEditDescription", R.string.VoipEditDescription), + TextUtils.isEmpty(participant.about) ? LocaleController.getString(R.string.VoipAddDescription) : LocaleController.getString(R.string.VoipEditDescription), TextUtils.isEmpty(participant.about) ? R.drawable.msg_addbio : R.drawable.msg_info ); } @@ -1313,7 +1313,7 @@ public void didReceivedNotification(int id, int account, Object... args) { View child = currentOptionsLayout.getChildAt(i); if (child instanceof ActionBarMenuSubItem && child.getTag() != null && (Integer) child.getTag() == 10) { ((ActionBarMenuSubItem) child).setTextAndIcon( - TextUtils.isEmpty(participant.about) ? LocaleController.getString("VoipAddBio", R.string.VoipAddBio) : LocaleController.getString("VoipEditBio", R.string.VoipEditBio), + TextUtils.isEmpty(participant.about) ? LocaleController.getString(R.string.VoipAddBio) : LocaleController.getString(R.string.VoipEditBio), TextUtils.isEmpty(participant.about) ? R.drawable.msg_addbio : R.drawable.msg_info ); } @@ -1544,7 +1544,7 @@ private void updateItems() { noiseItem.setVisibility(View.VISIBLE); } noiseItem.setIcon(SharedConfig.noiseSupression ? R.drawable.msg_noise_on : R.drawable.msg_noise_off); - noiseItem.setSubtext(SharedConfig.noiseSupression ? LocaleController.getString("VoipNoiseCancellationEnabled", R.string.VoipNoiseCancellationEnabled) : LocaleController.getString("VoipNoiseCancellationDisabled", R.string.VoipNoiseCancellationDisabled)); + noiseItem.setSubtext(SharedConfig.noiseSupression ? LocaleController.getString(R.string.VoipNoiseCancellationEnabled) : LocaleController.getString(R.string.VoipNoiseCancellationDisabled)); if (ChatObject.canManageCalls(currentChat)) { leaveItem.setVisibility(View.VISIBLE); @@ -1574,18 +1574,18 @@ private void updateItems() { AndroidUtilities.runOnUIThread(updateCallRecordRunnable, 1000); }, 1000); } - recordItem.setText(LocaleController.getString("VoipGroupStopRecordCall", R.string.VoipGroupStopRecordCall)); + recordItem.setText(LocaleController.getString(R.string.VoipGroupStopRecordCall)); } else { if (updateCallRecordRunnable != null) { AndroidUtilities.cancelRunOnUIThread(updateCallRecordRunnable); updateCallRecordRunnable = null; } - recordItem.setText(LocaleController.getString("VoipGroupRecordCall", R.string.VoipGroupRecordCall)); + recordItem.setText(LocaleController.getString(R.string.VoipGroupRecordCall)); } if (VoIPService.getSharedInstance() != null && VoIPService.getSharedInstance().getVideoState(true) == Instance.VIDEO_STATE_ACTIVE) { - screenItem.setTextAndIcon(LocaleController.getString("VoipChatStopScreenCapture", R.string.VoipChatStopScreenCapture), R.drawable.msg_screencast_off); + screenItem.setTextAndIcon(LocaleController.getString(R.string.VoipChatStopScreenCapture), R.drawable.msg_screencast_off); } else { - screenItem.setTextAndIcon(LocaleController.getString("VoipChatStartScreenCapture", R.string.VoipChatStartScreenCapture), R.drawable.msg_screencast); + screenItem.setTextAndIcon(LocaleController.getString(R.string.VoipChatStartScreenCapture), R.drawable.msg_screencast); } updateRecordCallText(); } else { @@ -1595,11 +1595,11 @@ private void updateItems() { if (sharingScreen) { screenShareItem.setVisibility(View.GONE); screenItem.setVisibility(View.VISIBLE); - screenItem.setTextAndIcon(LocaleController.getString("VoipChatStopScreenCapture", R.string.VoipChatStopScreenCapture), R.drawable.msg_screencast_off); - screenItem.setContentDescription(LocaleController.getString("VoipChatStopScreenCapture", R.string.VoipChatStopScreenCapture)); + screenItem.setTextAndIcon(LocaleController.getString(R.string.VoipChatStopScreenCapture), R.drawable.msg_screencast_off); + screenItem.setContentDescription(LocaleController.getString(R.string.VoipChatStopScreenCapture)); } else { - screenItem.setTextAndIcon(LocaleController.getString("VoipChatStartScreenCapture", R.string.VoipChatStartScreenCapture), R.drawable.msg_screencast); - screenItem.setContentDescription(LocaleController.getString("VoipChatStartScreenCapture", R.string.VoipChatStartScreenCapture)); + screenItem.setTextAndIcon(LocaleController.getString(R.string.VoipChatStartScreenCapture), R.drawable.msg_screencast); + screenItem.setContentDescription(LocaleController.getString(R.string.VoipChatStartScreenCapture)); screenShareItem.setVisibility(View.GONE); screenItem.setVisibility(View.VISIBLE); } @@ -1853,15 +1853,15 @@ public void onItemClick(int id) { AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); if (ChatObject.isChannelOrGiga(currentChat)) { - builder.setTitle(LocaleController.getString("VoipChannelEndAlertTitle", R.string.VoipChannelEndAlertTitle)); - builder.setMessage(LocaleController.getString("VoipChannelEndAlertText", R.string.VoipChannelEndAlertText)); + builder.setTitle(LocaleController.getString(R.string.VoipChannelEndAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.VoipChannelEndAlertText)); } else { - builder.setTitle(LocaleController.getString("VoipGroupEndAlertTitle", R.string.VoipGroupEndAlertTitle)); - builder.setMessage(LocaleController.getString("VoipGroupEndAlertText", R.string.VoipGroupEndAlertText)); + builder.setTitle(LocaleController.getString(R.string.VoipGroupEndAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.VoipGroupEndAlertText)); } builder.setDialogButtonColorKey(Theme.key_voipgroup_listeningText); - builder.setPositiveButton(LocaleController.getString("VoipGroupEnd", R.string.VoipGroupEnd), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.VoipGroupEnd), (dialogInterface, i) -> { if (call.isScheduled()) { TLRPC.ChatFull chatFull = accountInstance.getMessagesController().getChatFull(currentChat.id); if (chatFull != null) { @@ -1883,7 +1883,7 @@ public void onItemClick(int id) { dismiss(); NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.didStartedCall); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); dialog.setBackgroundColor(Theme.getColor(Theme.key_voipgroup_dialogBackground)); @@ -1900,17 +1900,17 @@ public void onItemClick(int id) { boolean video = call.call.record_video_active; AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); builder.setDialogButtonColorKey(Theme.key_voipgroup_listeningText); - builder.setTitle(LocaleController.getString("VoipGroupStopRecordingTitle", R.string.VoipGroupStopRecordingTitle)); + builder.setTitle(LocaleController.getString(R.string.VoipGroupStopRecordingTitle)); if (ChatObject.isChannelOrGiga(currentChat)) { - builder.setMessage(LocaleController.getString("VoipChannelStopRecordingText", R.string.VoipChannelStopRecordingText)); + builder.setMessage(LocaleController.getString(R.string.VoipChannelStopRecordingText)); } else { - builder.setMessage(LocaleController.getString("VoipGroupStopRecordingText", R.string.VoipGroupStopRecordingText)); + builder.setMessage(LocaleController.getString(R.string.VoipGroupStopRecordingText)); } - builder.setPositiveButton(LocaleController.getString("Stop", R.string.Stop), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Stop), (dialogInterface, i) -> { call.toggleRecord(null, ChatObject.Call.RECORD_TYPE_AUDIO); getUndoView().showWithAction(0, video ? UndoView.ACTION_VOIP_VIDEO_RECORDING_FINISHED : UndoView.ACTION_VOIP_RECORDING_FINISHED, null); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); dialog.setBackgroundColor(Theme.getColor(Theme.key_voipgroup_dialogBackground)); dialog.show(); @@ -1923,7 +1923,7 @@ public void onStartRecord(@ChatObject.Call.RecordType int type) { builder.setDialogButtonColorKey(Theme.key_voipgroup_listeningText); enterEventSent = false; - builder.setTitle(LocaleController.getString("VoipGroupStartRecordingTitle", R.string.VoipGroupStartRecordingTitle)); + builder.setTitle(LocaleController.getString(R.string.VoipGroupStartRecordingTitle)); if (type == 0) { builder.setMessage(LocaleController.getString(call.call.rtmp_stream ? R.string.VoipGroupStartRecordingRtmpText : R.string.VoipGroupStartRecordingText)); } else { @@ -1949,7 +1949,7 @@ public void onStartRecord(@ChatObject.Call.RecordType int type) { editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); editText.setGravity(Gravity.LEFT | Gravity.TOP); editText.setSingleLine(true); - editText.setHint(LocaleController.getString("VoipGroupSaveFileHint", R.string.VoipGroupSaveFileHint)); + editText.setHint(LocaleController.getString(R.string.VoipGroupSaveFileHint)); editText.setImeOptions(EditorInfo.IME_ACTION_DONE); editText.setHintTextColor(Theme.getColor(Theme.key_voipgroup_lastSeenText)); editText.setCursorColor(Theme.getColor(Theme.key_voipgroup_nameText)); @@ -1968,7 +1968,7 @@ public void onStartRecord(@ChatObject.Call.RecordType int type) { alertDialog.setOnShowListener(dialog -> makeFocusable(null, alertDialog, editText, true)); alertDialog.setOnDismissListener(dialog -> AndroidUtilities.hideKeyboard(editText)); - builder.setPositiveButton(LocaleController.getString("Start", R.string.Start), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Start), (dialogInterface, i) -> { call.toggleRecord(editText.getText().toString(), type); AndroidUtilities.hideKeyboard(editText); getUndoView().showWithAction(0, type == ChatObject.Call.RECORD_TYPE_AUDIO ? UndoView.ACTION_VOIP_RECORDING_STARTED : UndoView.ACTION_VOIP_VIDEO_RECORDING_STARTED, null); @@ -1976,7 +1976,7 @@ public void onStartRecord(@ChatObject.Call.RecordType int type) { VoIPService.getSharedInstance().playStartRecordSound(); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialog, which) -> AndroidUtilities.hideKeyboard(editText)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> AndroidUtilities.hideKeyboard(editText)); AlertDialog dialog = builder.create(); dialog.setBackgroundColor(Theme.getColor(Theme.key_voipgroup_dialogBackground)); dialog.show(); @@ -2016,12 +2016,12 @@ public void onStartRecord(@ChatObject.Call.RecordType int type) { AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); builder.setDialogButtonColorKey(Theme.key_voipgroup_listeningText); if (ChatObject.isChannelOrGiga(currentChat)) { - builder.setTitle(LocaleController.getString("VoipChannelTitle", R.string.VoipChannelTitle)); + builder.setTitle(LocaleController.getString(R.string.VoipChannelTitle)); } else { - builder.setTitle(LocaleController.getString("VoipGroupTitle", R.string.VoipGroupTitle)); + builder.setTitle(LocaleController.getString(R.string.VoipGroupTitle)); } builder.setCheckFocusable(false); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialog, which) -> AndroidUtilities.hideKeyboard(editText)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> AndroidUtilities.hideKeyboard(editText)); LinearLayout linearLayout = new LinearLayout(getContext()); linearLayout.setOrientation(LinearLayout.VERTICAL); @@ -2080,7 +2080,7 @@ public void afterTextChanged(Editable s) { editText.setText(call.call.title); editText.setSelection(editText.length()); } - builder.setPositiveButton(LocaleController.getString("Save", R.string.Save), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Save), (dialog, which) -> { AndroidUtilities.hideKeyboard(editText); call.setTitle(editText.getText().toString()); builder.getDismissRunnable().run(); @@ -2160,18 +2160,18 @@ public void afterTextChanged(Editable s) { ArrayList icons = new ArrayList<>(); ArrayList options = new ArrayList<>(); - names.add(LocaleController.getString("VoipAudioRoutingSpeaker", R.string.VoipAudioRoutingSpeaker)); + names.add(LocaleController.getString(R.string.VoipAudioRoutingSpeaker)); icons.add(R.drawable.msg_voice_speaker); options.add(0); if (service.hasEarpiece()) { - names.add(service.isHeadsetPlugged() ? LocaleController.getString("VoipAudioRoutingHeadset", R.string.VoipAudioRoutingHeadset) : LocaleController.getString("VoipAudioRoutingPhone", R.string.VoipAudioRoutingPhone)); + names.add(service.isHeadsetPlugged() ? LocaleController.getString(R.string.VoipAudioRoutingHeadset) : LocaleController.getString(R.string.VoipAudioRoutingPhone)); icons.add(service.isHeadsetPlugged() ? R.drawable.msg_voice_headphones : R.drawable.msg_voice_phone); options.add(1); } if (service.isBluetoothHeadsetConnected()) { - names.add(service.currentBluetoothDeviceName != null ? service.currentBluetoothDeviceName : LocaleController.getString("VoipAudioRoutingBluetooth", R.string.VoipAudioRoutingBluetooth)); + names.add(service.currentBluetoothDeviceName != null ? service.currentBluetoothDeviceName : LocaleController.getString(R.string.VoipAudioRoutingBluetooth)); icons.add(R.drawable.msg_voice_bluetooth); options.add(2); } @@ -2185,7 +2185,7 @@ public void afterTextChanged(Editable s) { } BottomSheet.Builder builder = new BottomSheet.Builder(context) - .setTitle(LocaleController.getString("VoipSelectAudioOutput", R.string.VoipSelectAudioOutput), true) + .setTitle(LocaleController.getString(R.string.VoipSelectAudioOutput), true) .setItems(itemsArray, iconsArray, (dialog, which) -> { if (VoIPService.getSharedInstance() == null) { return; @@ -3061,7 +3061,7 @@ public boolean onKeyDown(int keyCode, KeyEvent event) { scheduleStartInTextView.setTextColor(0xffffffff); scheduleStartInTextView.setTypeface(AndroidUtilities.bold()); scheduleStartInTextView.setTextSize(18); - scheduleStartInTextView.setText(LocaleController.getString("VoipChatStartsIn", R.string.VoipChatStartsIn)); + scheduleStartInTextView.setText(LocaleController.getString(R.string.VoipChatStartsIn)); containerView.addView(scheduleStartInTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 21, 0, 21, 231 + 80)); //-80 scheduleTimeTextView = new SimpleTextView(context) { @@ -4145,7 +4145,7 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { leaveButton = new VoIPToggleButton(context); leaveButton.setDrawBackground(false); leaveButton.setTextSize(12); - leaveButton.setData((call != null && isRtmpStream()) ? R.drawable.msg_voiceclose : R.drawable.calls_decline, 0xffffffff, Theme.getColor(Theme.key_voipgroup_leaveButton), 0.3f, false, LocaleController.getString("VoipGroupLeave", R.string.VoipGroupLeave), false, false); + leaveButton.setData((call != null && isRtmpStream()) ? R.drawable.msg_voiceclose : R.drawable.calls_decline, 0xffffffff, Theme.getColor(Theme.key_voipgroup_leaveButton), 0.3f, false, LocaleController.getString(R.string.VoipGroupLeave), false, false); buttonsContainer.addView(leaveButton, LayoutHelper.createFrame(68, 80)); leaveButton.setOnClickListener(v -> { renderersContainer.delayHideUi(); @@ -4204,7 +4204,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { info.setEnabled(muteButtonState == MUTE_BUTTON_STATE_UNMUTE || muteButtonState == MUTE_BUTTON_STATE_MUTE); if (muteButtonState == MUTE_BUTTON_STATE_MUTE && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, LocaleController.getString("VoipMute", R.string.VoipMute))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, LocaleController.getString(R.string.VoipMute))); } } }; @@ -4402,7 +4402,7 @@ public void onClick(View v) { otherItem = new ActionBarMenuItem(context, null, 0, Theme.getColor(Theme.key_voipgroup_actionBarItems)); otherItem.setLongClickEnabled(false); otherItem.setIcon(R.drawable.ic_ab_other); - otherItem.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + otherItem.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); otherItem.setSubMenuOpenSide(2); otherItem.setDelegate(id -> actionBar.getActionBarMenuOnItemClick().onItemClick(id)); otherItem.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.getColor(Theme.key_voipgroup_actionBarItemsSelector), 6)); @@ -4429,18 +4429,18 @@ public void onClick(View v) { int rout = VoIPService.getSharedInstance().getCurrentAudioRoute(); if (rout == VoIPService.AUDIO_ROUTE_BLUETOOTH) { soundItem.setIcon(R.drawable.msg_voice_bluetooth); - soundItem.setSubtext(VoIPService.getSharedInstance().currentBluetoothDeviceName != null ? VoIPService.getSharedInstance().currentBluetoothDeviceName : LocaleController.getString("VoipAudioRoutingBluetooth", R.string.VoipAudioRoutingBluetooth)); + soundItem.setSubtext(VoIPService.getSharedInstance().currentBluetoothDeviceName != null ? VoIPService.getSharedInstance().currentBluetoothDeviceName : LocaleController.getString(R.string.VoipAudioRoutingBluetooth)); } else if (rout == VoIPService.AUDIO_ROUTE_EARPIECE) { soundItem.setIcon(VoIPService.getSharedInstance().isHeadsetPlugged() ? R.drawable.msg_voice_headphones : R.drawable.msg_voice_phone); - soundItem.setSubtext(VoIPService.getSharedInstance().isHeadsetPlugged() ? LocaleController.getString("VoipAudioRoutingHeadset", R.string.VoipAudioRoutingHeadset) : LocaleController.getString("VoipAudioRoutingPhone", R.string.VoipAudioRoutingPhone)); + soundItem.setSubtext(VoIPService.getSharedInstance().isHeadsetPlugged() ? LocaleController.getString(R.string.VoipAudioRoutingHeadset) : LocaleController.getString(R.string.VoipAudioRoutingPhone)); } else if (rout == VoIPService.AUDIO_ROUTE_SPEAKER) { VoipAudioManager vam = VoipAudioManager.get(); if (vam.isSpeakerphoneOn()) { soundItem.setIcon(R.drawable.msg_voice_speaker); - soundItem.setSubtext(LocaleController.getString("VoipAudioRoutingSpeaker", R.string.VoipAudioRoutingSpeaker)); + soundItem.setSubtext(LocaleController.getString(R.string.VoipAudioRoutingSpeaker)); } else { soundItem.setIcon(R.drawable.msg_voice_phone); - soundItem.setSubtext(LocaleController.getString("VoipAudioRoutingPhone", R.string.VoipAudioRoutingPhone)); + soundItem.setSubtext(LocaleController.getString(R.string.VoipAudioRoutingPhone)); } } } @@ -4453,7 +4453,7 @@ public void onClick(View v) { pipItem = new ActionBarMenuItem(context, null, 0, Theme.getColor(Theme.key_voipgroup_actionBarItems)); pipItem.setLongClickEnabled(false); pipItem.setIcon((call != null && isRtmpStream()) ? R.drawable.ic_goinline : R.drawable.msg_voice_pip); - pipItem.setContentDescription(LocaleController.getString("AccDescrPipMode", R.string.AccDescrPipMode)); + pipItem.setContentDescription(LocaleController.getString(R.string.AccDescrPipMode)); pipItem.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.getColor(Theme.key_voipgroup_actionBarItemsSelector), 6)); pipItem.setOnClickListener(v -> { if (isRtmpStream()) { @@ -4476,7 +4476,7 @@ public void onClick(View v) { screenShareItem = new ActionBarMenuItem(context, null, 0, Theme.getColor(Theme.key_voipgroup_actionBarItems)); screenShareItem.setLongClickEnabled(false); screenShareItem.setIcon(R.drawable.msg_screencast); - screenShareItem.setContentDescription(LocaleController.getString("AccDescrPipMode", R.string.AccDescrPipMode)); + screenShareItem.setContentDescription(LocaleController.getString(R.string.AccDescrPipMode)); screenShareItem.setBackgroundDrawable(Theme.createSelectorDrawable(Theme.getColor(Theme.key_voipgroup_actionBarItemsSelector), 6)); screenShareItem.setOnClickListener(v -> { VoIPService voIPService = VoIPService.getSharedInstance(); @@ -4556,9 +4556,9 @@ public void showWithAction(long did, int action, Object infoObject, Object infoO otherItem.setShowSubmenuByMove(false); accountSelectCell.setBackground(Theme.createRadSelectorDrawable(Theme.getColor(Theme.key_voipgroup_listSelector), 6, 6)); accountGap = otherItem.addGap(user_item_gap); - everyoneItem = otherItem.addSubItem(eveyone_can_speak_item, 0, LocaleController.getString("VoipGroupAllCanSpeak", R.string.VoipGroupAllCanSpeak), true); + everyoneItem = otherItem.addSubItem(eveyone_can_speak_item, 0, LocaleController.getString(R.string.VoipGroupAllCanSpeak), true); everyoneItem.updateSelectorBackground(true, false); - adminItem = otherItem.addSubItem(admin_can_speak_item, 0, LocaleController.getString("VoipGroupOnlyAdminsCanSpeak", R.string.VoipGroupOnlyAdminsCanSpeak), true); + adminItem = otherItem.addSubItem(admin_can_speak_item, 0, LocaleController.getString(R.string.VoipGroupOnlyAdminsCanSpeak), true); adminItem.updateSelectorBackground(false, true); everyoneItem.setCheckColor(Theme.key_voipgroup_checkMenu); @@ -4571,23 +4571,23 @@ public void showWithAction(long did, int action, Object infoObject, Object infoO soundDrawablePaint.setStyle(Paint.Style.STROKE); soundDrawablePaint.setStrokeWidth(AndroidUtilities.dp(1.5f)); soundDrawablePaint.setStrokeCap(Paint.Cap.ROUND); - soundItem = otherItem.addSubItem(sound_item, R.drawable.msg_voice_speaker, null, LocaleController.getString("VoipGroupAudio", R.string.VoipGroupAudio), true, false); + soundItem = otherItem.addSubItem(sound_item, R.drawable.msg_voice_speaker, null, LocaleController.getString(R.string.VoipGroupAudio), true, false); soundItem.setItemHeight(56); - noiseItem = otherItem.addSubItem(noise_item, R.drawable.msg_noise_on, null, LocaleController.getString("VoipNoiseCancellation", R.string.VoipNoiseCancellation), true, false); + noiseItem = otherItem.addSubItem(noise_item, R.drawable.msg_noise_on, null, LocaleController.getString(R.string.VoipNoiseCancellation), true, false); noiseItem.setItemHeight(56); soundItemDivider = otherItem.addDivider(ColorUtils.blendARGB(Theme.getColor(Theme.key_voipgroup_actionBar), Color.BLACK, 0.3f)); ((ViewGroup.MarginLayoutParams) soundItemDivider.getLayoutParams()).topMargin = 0; ((ViewGroup.MarginLayoutParams) soundItemDivider.getLayoutParams()).bottomMargin = 0; - editTitleItem = otherItem.addSubItem(edit_item, R.drawable.msg_edit, recordCallDrawable, ChatObject.isChannelOrGiga(currentChat) ? LocaleController.getString("VoipChannelEditTitle", R.string.VoipChannelEditTitle) : LocaleController.getString("VoipGroupEditTitle", R.string.VoipGroupEditTitle), true, false); - permissionItem = otherItem.addSubItem(permission_item, R.drawable.msg_permissions, recordCallDrawable, LocaleController.getString("VoipGroupEditPermissions", R.string.VoipGroupEditPermissions), false, false); - inviteItem = otherItem.addSubItem(share_invite_link_item, R.drawable.msg_link, LocaleController.getString("VoipGroupShareInviteLink", R.string.VoipGroupShareInviteLink)); + editTitleItem = otherItem.addSubItem(edit_item, R.drawable.msg_edit, recordCallDrawable, ChatObject.isChannelOrGiga(currentChat) ? LocaleController.getString(R.string.VoipChannelEditTitle) : LocaleController.getString(R.string.VoipGroupEditTitle), true, false); + permissionItem = otherItem.addSubItem(permission_item, R.drawable.msg_permissions, recordCallDrawable, LocaleController.getString(R.string.VoipGroupEditPermissions), false, false); + inviteItem = otherItem.addSubItem(share_invite_link_item, R.drawable.msg_link, LocaleController.getString(R.string.VoipGroupShareInviteLink)); recordCallDrawable = new RecordCallDrawable(); - screenItem = otherItem.addSubItem(screen_capture_item, R.drawable.msg_screencast, LocaleController.getString("VoipChatStartScreenCapture", R.string.VoipChatStartScreenCapture)); - recordItem = otherItem.addSubItem(start_record_item, 0, recordCallDrawable, LocaleController.getString("VoipGroupRecordCall", R.string.VoipGroupRecordCall), true, false); + screenItem = otherItem.addSubItem(screen_capture_item, R.drawable.msg_screencast, LocaleController.getString(R.string.VoipChatStartScreenCapture)); + recordItem = otherItem.addSubItem(start_record_item, 0, recordCallDrawable, LocaleController.getString(R.string.VoipGroupRecordCall), true, false); recordCallDrawable.setParentView(recordItem.getImageView()); - leaveItem = otherItem.addSubItem(leave_item, R.drawable.msg_endcall, ChatObject.isChannelOrGiga(currentChat) ? LocaleController.getString("VoipChannelEndChat", R.string.VoipChannelEndChat) : LocaleController.getString("VoipGroupEndChat", R.string.VoipGroupEndChat)); + leaveItem = otherItem.addSubItem(leave_item, R.drawable.msg_endcall, ChatObject.isChannelOrGiga(currentChat) ? LocaleController.getString(R.string.VoipChannelEndChat) : LocaleController.getString(R.string.VoipGroupEndChat)); otherItem.setPopupItemsSelectorColor(Theme.getColor(Theme.key_voipgroup_listSelector)); otherItem.getPopupLayout().setFitItems(true); @@ -5037,9 +5037,9 @@ public void onAnimationEnd(Animator animation) { }); scheduleAnimator.start(); if (ChatObject.isChannelOrGiga(currentChat)) { - titleTextView.setText(LocaleController.getString("VoipChannelVoiceChat", R.string.VoipChannelVoiceChat), true); + titleTextView.setText(LocaleController.getString(R.string.VoipChannelVoiceChat), true); } else { - titleTextView.setText(LocaleController.getString("VoipGroupVoiceChat", R.string.VoipGroupVoiceChat), true); + titleTextView.setText(LocaleController.getString(R.string.VoipGroupVoiceChat), true); } Calendar calendar = Calendar.getInstance(); boolean setSeconds = AlertsCreator.checkScheduleDate(null, null, 7 * 24 * 60 * 60, 3, dayPicker, hourPicker, minutePicker); @@ -5139,7 +5139,7 @@ public void requestLayout() { dayPicker.setWrapSelectorWheel(false); dayPicker.setFormatter(value -> { if (value == 0) { - return LocaleController.getString("MessageScheduleToday", R.string.MessageScheduleToday); + return LocaleController.getString(R.string.MessageScheduleToday); } else { long date = currentTime + (long) value * 86400000L; calendar.setTimeInMillis(date); @@ -5534,9 +5534,9 @@ private void updateScheduleUI(boolean animation) { listView.setVisibility(View.VISIBLE); } if (ChatObject.isChannelOrGiga(currentChat)) { - leaveItem.setText(LocaleController.getString("VoipChannelCancelChat", R.string.VoipChannelCancelChat)); + leaveItem.setText(LocaleController.getString(R.string.VoipChannelCancelChat)); } else { - leaveItem.setText(LocaleController.getString("VoipGroupCancelChat", R.string.VoipGroupCancelChat)); + leaveItem.setText(LocaleController.getString(R.string.VoipGroupCancelChat)); } } float scheduleButtonsScale2; @@ -5612,9 +5612,9 @@ private void initCreatedGroupCall() { call.saveActiveDates(); VoIPService.getSharedInstance().registerStateListener(this); if (scheduleTimeTextView != null && scheduleTimeTextView.getVisibility() == View.VISIBLE) { - leaveButton.setData(isRtmpStream() ? R.drawable.msg_voiceclose : R.drawable.calls_decline, 0xffffffff, Theme.getColor(Theme.key_voipgroup_leaveButton), 0.3f, false, LocaleController.getString("VoipGroupLeave", R.string.VoipGroupLeave), false, true); + leaveButton.setData(isRtmpStream() ? R.drawable.msg_voiceclose : R.drawable.calls_decline, 0xffffffff, Theme.getColor(Theme.key_voipgroup_leaveButton), 0.3f, false, LocaleController.getString(R.string.VoipGroupLeave), false, true); updateSpeakerPhoneIcon(true); - leaveItem.setText(ChatObject.isChannelOrGiga(currentChat) ? LocaleController.getString("VoipChannelEndChat", R.string.VoipChannelEndChat) : LocaleController.getString("VoipGroupEndChat", R.string.VoipGroupEndChat)); + leaveItem.setText(ChatObject.isChannelOrGiga(currentChat) ? LocaleController.getString(R.string.VoipChannelEndChat) : LocaleController.getString(R.string.VoipGroupEndChat)); listView.setVisibility(View.VISIBLE); pipItem.setVisibility(View.VISIBLE); AnimatorSet animatorSet = new AnimatorSet(); @@ -5803,9 +5803,9 @@ private float getColorProgress() { private void updateTitle(boolean animated) { if (call == null) { if (ChatObject.isChannelOrGiga(currentChat)) { - titleTextView.setText(LocaleController.getString("VoipChannelScheduleVoiceChat", R.string.VoipChannelScheduleVoiceChat), animated); + titleTextView.setText(LocaleController.getString(R.string.VoipChannelScheduleVoiceChat), animated); } else { - titleTextView.setText(LocaleController.getString("VoipGroupScheduleVoiceChat", R.string.VoipGroupScheduleVoiceChat), animated); + titleTextView.setText(LocaleController.getString(R.string.VoipGroupScheduleVoiceChat), animated); } return; } @@ -5836,9 +5836,9 @@ private void updateTitle(boolean animated) { actionBar.setTitle(currentChat.title); } if (ChatObject.isChannelOrGiga(currentChat)) { - titleTextView.setText(LocaleController.getString("VoipChannelVoiceChat", R.string.VoipChannelVoiceChat), animated); + titleTextView.setText(LocaleController.getString(R.string.VoipChannelVoiceChat), animated); } else { - titleTextView.setText(LocaleController.getString("VoipGroupVoiceChat", R.string.VoipGroupVoiceChat), animated); + titleTextView.setText(LocaleController.getString(R.string.VoipGroupVoiceChat), animated); } } } @@ -6252,7 +6252,7 @@ private void updateState(boolean animated, boolean selfUpdated) { state = call.call.schedule_start_subscribed ? MUTE_BUTTON_STATE_CANCEL_REMINDER : MUTE_BUTTON_STATE_SET_REMINDER; } updateMuteButton(state, animated); - leaveButton.setData(isRtmpStream() ? R.drawable.msg_voiceclose : R.drawable.calls_decline, 0xffffffff, Theme.getColor(Theme.key_voipgroup_leaveButton), 0.3f, false, LocaleController.getString("Close", R.string.Close), false, false); + leaveButton.setData(isRtmpStream() ? R.drawable.msg_voiceclose : R.drawable.calls_decline, 0xffffffff, Theme.getColor(Theme.key_voipgroup_leaveButton), 0.3f, false, LocaleController.getString(R.string.Close), false, false); updateScheduleUI(false); return; } @@ -6336,14 +6336,14 @@ private void updateState(boolean animated, boolean selfUpdated) { buttonsVisibility = newButtonsVisibility; if (cameraButtonVisible) { - cameraButton.setData(R.drawable.calls_video, Color.WHITE, 0, 1f, true, LocaleController.getString("VoipCamera", R.string.VoipCamera), !outgoingVideoIsActive, animated); + cameraButton.setData(R.drawable.calls_video, Color.WHITE, 0, 1f, true, LocaleController.getString(R.string.VoipCamera), !outgoingVideoIsActive, animated); cameraButton.setChecked(true, false); } else { cameraButton.setVisibility(View.GONE); } if (flipButtonVisible) { - flipButton.setData(0, Color.WHITE, 0, 1f, true, LocaleController.getString("VoipFlip", R.string.VoipFlip), false, false); + flipButton.setData(0, Color.WHITE, 0, 1f, true, LocaleController.getString(R.string.VoipFlip), false, false); flipButton.setChecked(true, false); } else { flipButton.setVisibility(View.GONE); @@ -6447,7 +6447,7 @@ private void updateSpeakerPhoneIcon(boolean animated) { } VoIPService service = VoIPService.getSharedInstance(); if (service == null || isRtmpStream()) { - soundButton.setData(R.drawable.msg_voiceshare, Color.WHITE, 0, 0.3f, true, LocaleController.getString("VoipChatShare", R.string.VoipChatShare), false, animated); + soundButton.setData(R.drawable.msg_voiceshare, Color.WHITE, 0, 0.3f, true, LocaleController.getString(R.string.VoipChatShare), false, animated); soundButton.setEnabled(ChatObject.isPublic(currentChat) || ChatObject.hasAdminRights(currentChat) && ChatObject.canAddUsers(currentChat), false); soundButton.setChecked(true, false); return; @@ -6459,14 +6459,14 @@ private void updateSpeakerPhoneIcon(boolean animated) { boolean checked = !bluetooth && service.isSpeakerphoneOn(); if (bluetooth) { - soundButton.setData(R.drawable.calls_bluetooth, Color.WHITE, 0, 0.1f, true, LocaleController.getString("VoipAudioRoutingBluetooth", R.string.VoipAudioRoutingBluetooth), false, animated); + soundButton.setData(R.drawable.calls_bluetooth, Color.WHITE, 0, 0.1f, true, LocaleController.getString(R.string.VoipAudioRoutingBluetooth), false, animated); } else if (checked) { - soundButton.setData(R.drawable.calls_speaker, Color.WHITE, 0, 0.3f, true, LocaleController.getString("VoipSpeaker", R.string.VoipSpeaker), false, animated); + soundButton.setData(R.drawable.calls_speaker, Color.WHITE, 0, 0.3f, true, LocaleController.getString(R.string.VoipSpeaker), false, animated); } else { if (service.isHeadsetPlugged()) { - soundButton.setData(R.drawable.calls_headphones, Color.WHITE, 0, 0.1f, true, LocaleController.getString("VoipAudioRoutingHeadset", R.string.VoipAudioRoutingHeadset), false, animated); + soundButton.setData(R.drawable.calls_headphones, Color.WHITE, 0, 0.1f, true, LocaleController.getString(R.string.VoipAudioRoutingHeadset), false, animated); } else { - soundButton.setData(R.drawable.calls_speaker, Color.WHITE, 0, 0.1f, true, LocaleController.getString("VoipSpeaker", R.string.VoipSpeaker), false, animated); + soundButton.setData(R.drawable.calls_speaker, Color.WHITE, 0, 0.1f, true, LocaleController.getString(R.string.VoipSpeaker), false, animated); } } soundButton.setChecked(checked, animated); @@ -6492,20 +6492,20 @@ private void updateMuteButton(int state, boolean animated) { boolean changed; boolean mutedByAdmin = false; if (state == MUTE_BUTTON_STATE_CANCEL_REMINDER) { - newText = LocaleController.getString("VoipGroupCancelReminder", R.string.VoipGroupCancelReminder); + newText = LocaleController.getString(R.string.VoipGroupCancelReminder); newSubtext = ""; changed = bigMicDrawable.setCustomEndFrame(202); } else if (state == MUTE_BUTTON_STATE_SET_REMINDER) { - newText = LocaleController.getString("VoipGroupSetReminder", R.string.VoipGroupSetReminder); + newText = LocaleController.getString(R.string.VoipGroupSetReminder); newSubtext = ""; changed = bigMicDrawable.setCustomEndFrame(344); } else if (state == MUTE_BUTTON_STATE_START_NOW) { - newText = LocaleController.getString("VoipGroupStartNow", R.string.VoipGroupStartNow); + newText = LocaleController.getString(R.string.VoipGroupStartNow); newSubtext = ""; changed = bigMicDrawable.setCustomEndFrame(377); } else if (state == MUTE_BUTTON_STATE_UNMUTE) { - newText = LocaleController.getString("VoipGroupUnmute", R.string.VoipGroupUnmute); - newSubtext = LocaleController.getString("VoipHoldAndTalk", R.string.VoipHoldAndTalk); + newText = LocaleController.getString(R.string.VoipGroupUnmute); + newSubtext = LocaleController.getString(R.string.VoipHoldAndTalk); if (muteButtonState == MUTE_BUTTON_STATE_CONNECTING) { int endFrame = bigMicDrawable.getCustomEndFrame(); if (endFrame == 136 || endFrame == 173 || endFrame == 274 || endFrame == 311) { @@ -6525,12 +6525,12 @@ private void updateMuteButton(int state, boolean animated) { changed = bigMicDrawable.setCustomEndFrame(99); } } else if (state == MUTE_BUTTON_STATE_MUTE) { - newText = LocaleController.getString("VoipTapToMute", R.string.VoipTapToMute); + newText = LocaleController.getString(R.string.VoipTapToMute); newSubtext = ""; changed = bigMicDrawable.setCustomEndFrame(muteButtonState == MUTE_BUTTON_STATE_RAISED_HAND ? 99 : 69); } else if (state == MUTE_BUTTON_STATE_RAISED_HAND) { - newText = LocaleController.getString("VoipMutedTapedForSpeak", R.string.VoipMutedTapedForSpeak); - newSubtext = LocaleController.getString("VoipMutedTapedForSpeakInfo", R.string.VoipMutedTapedForSpeakInfo); + newText = LocaleController.getString(R.string.VoipMutedTapedForSpeak); + newSubtext = LocaleController.getString(R.string.VoipMutedTapedForSpeakInfo); changed = bigMicDrawable.setCustomEndFrame(136); } else { TLRPC.TL_groupCallParticipant participant = call.participants.get(MessageObject.getPeerId(selfPeer)); @@ -6558,11 +6558,11 @@ private void updateMuteButton(int state, boolean animated) { } } if (state == MUTE_BUTTON_STATE_CONNECTING) { - newText = LocaleController.getString("Connecting", R.string.Connecting); + newText = LocaleController.getString(R.string.Connecting); newSubtext = ""; } else { - newText = LocaleController.getString("VoipMutedByAdmin", R.string.VoipMutedByAdmin); - newSubtext = LocaleController.getString("VoipMutedTapForSpeak", R.string.VoipMutedTapForSpeak); + newText = LocaleController.getString(R.string.VoipMutedByAdmin); + newSubtext = LocaleController.getString(R.string.VoipMutedTapForSpeak); } } if (isRtmpStream() && state != MUTE_BUTTON_STATE_CONNECTING && !call.isScheduled()) { @@ -6801,9 +6801,9 @@ private void showRecordHint(View view) { recordHintView.setShowingDuration(3000); containerView.addView(recordHintView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 19, 0, 19, 0)); if (ChatObject.isChannelOrGiga(currentChat)) { - recordHintView.setText(LocaleController.getString("VoipChannelRecording", R.string.VoipChannelRecording)); + recordHintView.setText(LocaleController.getString(R.string.VoipChannelRecording)); } else { - recordHintView.setText(LocaleController.getString("VoipGroupRecording", R.string.VoipGroupRecording)); + recordHintView.setText(LocaleController.getString(R.string.VoipGroupRecording)); } recordHintView.setBackgroundColor(0xea272f38, 0xffffffff); } @@ -6823,7 +6823,7 @@ private void showReminderHint() { reminderHintView.setVisibility(View.INVISIBLE); reminderHintView.setShowingDuration(4000); containerView.addView(reminderHintView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 19, 0, 19, 0)); - reminderHintView.setText(LocaleController.getString("VoipChatReminderHint", R.string.VoipChatReminderHint)); + reminderHintView.setText(LocaleController.getString(R.string.VoipChatReminderHint)); reminderHintView.setBackgroundColor(0xea272f38, 0xffffffff); } reminderHintView.setExtraTranslationY(-AndroidUtilities.statusBarHeight); @@ -6919,11 +6919,11 @@ public static void onLeaveClick(Context context, Runnable onLeave, boolean fromO AlertDialog.Builder builder = new AlertDialog.Builder(context); if (ChatObject.isChannelOrGiga(currentChat)) { - builder.setTitle(LocaleController.getString("VoipChannelLeaveAlertTitle", R.string.VoipChannelLeaveAlertTitle)); - builder.setMessage(LocaleController.getString("VoipChannelLeaveAlertText", R.string.VoipChannelLeaveAlertText)); + builder.setTitle(LocaleController.getString(R.string.VoipChannelLeaveAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.VoipChannelLeaveAlertText)); } else { - builder.setTitle(LocaleController.getString("VoipGroupLeaveAlertTitle", R.string.VoipGroupLeaveAlertTitle)); - builder.setMessage(LocaleController.getString("VoipGroupLeaveAlertText", R.string.VoipGroupLeaveAlertText)); + builder.setTitle(LocaleController.getString(R.string.VoipGroupLeaveAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.VoipGroupLeaveAlertText)); } int currentAccount = service.getAccount(); @@ -6944,9 +6944,9 @@ public static void onLeaveClick(Context context, Runnable onLeave, boolean fromO } cells[0].setTag(0); if (ChatObject.isChannelOrGiga(currentChat)) { - cells[0].setText(LocaleController.getString("VoipChannelLeaveAlertEndChat", R.string.VoipChannelLeaveAlertEndChat), "", false, false); + cells[0].setText(LocaleController.getString(R.string.VoipChannelLeaveAlertEndChat), "", false, false); } else { - cells[0].setText(LocaleController.getString("VoipGroupLeaveAlertEndChat", R.string.VoipGroupLeaveAlertEndChat), "", false, false); + cells[0].setText(LocaleController.getString(R.string.VoipGroupLeaveAlertEndChat), "", false, false); } cells[0].setPadding(LocaleController.isRTL ? AndroidUtilities.dp(16) : AndroidUtilities.dp(8), 0, LocaleController.isRTL ? AndroidUtilities.dp(8) : AndroidUtilities.dp(16), 0); @@ -6958,8 +6958,8 @@ public static void onLeaveClick(Context context, Runnable onLeave, boolean fromO builder.setView(linearLayout); builder.setDialogButtonColorKey(Theme.key_voipgroup_listeningText); - builder.setPositiveButton(LocaleController.getString("VoipGroupLeave", R.string.VoipGroupLeave), (dialogInterface, position) -> processOnLeave(call, cells[0].isChecked(), selfId, onLeave)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.VoipGroupLeave), (dialogInterface, position) -> processOnLeave(call, cells[0].isChecked(), selfId, onLeave)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); if (fromOverlayWindow) { builder.setDimEnabled(false); } @@ -7057,14 +7057,14 @@ private void processSelectedOption(TLRPC.TL_groupCallParticipant participant, lo textView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL); textView.setEllipsize(TextUtils.TruncateAt.END); if (option == 2) { - textView.setText(LocaleController.getString("VoipGroupRemoveMemberAlertTitle2", R.string.VoipGroupRemoveMemberAlertTitle2)); + textView.setText(LocaleController.getString(R.string.VoipGroupRemoveMemberAlertTitle2)); if (ChatObject.isChannelOrGiga(currentChat)) { messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("VoipChannelRemoveMemberAlertText2", R.string.VoipChannelRemoveMemberAlertText2, name, currentChat.title))); } else { messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("VoipGroupRemoveMemberAlertText2", R.string.VoipGroupRemoveMemberAlertText2, name, currentChat.title))); } } else { - textView.setText(LocaleController.getString("VoipGroupAddMemberTitle", R.string.VoipGroupAddMemberTitle)); + textView.setText(LocaleController.getString(R.string.VoipGroupAddMemberTitle)); messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("VoipGroupAddMemberText", R.string.VoipGroupAddMemberText, name, currentChat.title))); } @@ -7072,7 +7072,7 @@ private void processSelectedOption(TLRPC.TL_groupCallParticipant participant, lo frameLayout.addView(messageTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 24, 57, 24, 9)); if (option == 2) { - builder.setPositiveButton(LocaleController.getString("VoipGroupUserRemove", R.string.VoipGroupUserRemove), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.VoipGroupUserRemove), (dialogInterface, i) -> { if (object instanceof TLRPC.User) { TLRPC.User user = (TLRPC.User) object; accountInstance.getMessagesController().deleteParticipantFromChat(currentChat.id, user); @@ -7085,12 +7085,12 @@ private void processSelectedOption(TLRPC.TL_groupCallParticipant participant, lo }); } else if (object instanceof TLRPC.User) { TLRPC.User user = (TLRPC.User) object; - builder.setPositiveButton(LocaleController.getString("VoipGroupAdd", R.string.VoipGroupAdd), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.VoipGroupAdd), (dialogInterface, i) -> { BaseFragment fragment = parentActivity.getActionBarLayout().getFragmentStack().get(parentActivity.getActionBarLayout().getFragmentStack().size() - 1); accountInstance.getMessagesController().addUserToChat(currentChat.id, user, 0, null, fragment, () -> inviteUserToCall(peerId, false)); }); } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); dialog.setBackgroundColor(Theme.getColor(Theme.key_voipgroup_dialogBackground)); dialog.show(); @@ -7356,34 +7356,34 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } if (view.isSelfUser()) { if (view.isHandRaised()) { - items.add(LocaleController.getString("VoipGroupCancelRaiseHand", R.string.VoipGroupCancelRaiseHand)); + items.add(LocaleController.getString(R.string.VoipGroupCancelRaiseHand)); icons.add(R.drawable.msg_handdown); options.add(7); } - items.add(view.hasAvatarSet() ? LocaleController.getString("VoipAddPhoto", R.string.VoipAddPhoto) : LocaleController.getString("VoipSetNewPhoto", R.string.VoipSetNewPhoto)); + items.add(view.hasAvatarSet() ? LocaleController.getString(R.string.VoipAddPhoto) : LocaleController.getString(R.string.VoipSetNewPhoto)); icons.add(R.drawable.msg_addphoto); options.add(9); if (peerId > 0) { - items.add(TextUtils.isEmpty(participant.about) ? LocaleController.getString("VoipAddBio", R.string.VoipAddBio) : LocaleController.getString("VoipEditBio", R.string.VoipEditBio)); + items.add(TextUtils.isEmpty(participant.about) ? LocaleController.getString(R.string.VoipAddBio) : LocaleController.getString(R.string.VoipEditBio)); } else { - items.add(TextUtils.isEmpty(participant.about) ? LocaleController.getString("VoipAddDescription", R.string.VoipAddDescription) : LocaleController.getString("VoipEditDescription", R.string.VoipEditDescription)); + items.add(TextUtils.isEmpty(participant.about) ? LocaleController.getString(R.string.VoipAddDescription) : LocaleController.getString(R.string.VoipEditDescription)); } icons.add(TextUtils.isEmpty(participant.about) ? R.drawable.msg_addbio : R.drawable.msg_info); options.add(10); - items.add(peerId > 0 ? LocaleController.getString("VoipEditName", R.string.VoipEditName) : LocaleController.getString("VoipEditTitle", R.string.VoipEditTitle)); + items.add(peerId > 0 ? LocaleController.getString(R.string.VoipEditName) : LocaleController.getString(R.string.VoipEditTitle)); icons.add(R.drawable.msg_edit); options.add(11); } else if (ChatObject.canManageCalls(currentChat)) { if (!isAdmin || !participant.muted) { if (!participant.muted || participant.can_self_unmute) { - items.add(LocaleController.getString("VoipGroupMute", R.string.VoipGroupMute)); + items.add(LocaleController.getString(R.string.VoipGroupMute)); icons.add(R.drawable.msg_voice_muted); options.add(0); } else { - items.add(LocaleController.getString("VoipGroupAllowToSpeak", R.string.VoipGroupAllowToSpeak)); + items.add(LocaleController.getString(R.string.VoipGroupAllowToSpeak)); if (participant.raise_hand_rating != 0) { icons.add(R.drawable.msg_allowspeak); } else { @@ -7393,36 +7393,36 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } } if (participant.peer != null && participant.peer.channel_id != 0 && !ChatObject.isMegagroup(currentAccount, participant.peer.channel_id)) { - items.add(LocaleController.getString("VoipGroupOpenChannel", R.string.VoipGroupOpenChannel)); + items.add(LocaleController.getString(R.string.VoipGroupOpenChannel)); icons.add(R.drawable.msg_channel); options.add(8); } else { - items.add(LocaleController.getString("VoipGroupOpenProfile", R.string.VoipGroupOpenProfile)); + items.add(LocaleController.getString(R.string.VoipGroupOpenProfile)); icons.add(R.drawable.msg_openprofile); options.add(6); } if (!isAdmin && ChatObject.canBlockUsers(currentChat)) { - items.add(LocaleController.getString("VoipGroupUserRemove", R.string.VoipGroupUserRemove)); + items.add(LocaleController.getString(R.string.VoipGroupUserRemove)); icons.add(R.drawable.msg_block2); options.add(2); } } else { if (participant.muted_by_you) { - items.add(LocaleController.getString("VoipGroupUnmuteForMe", R.string.VoipGroupUnmuteForMe)); + items.add(LocaleController.getString(R.string.VoipGroupUnmuteForMe)); icons.add(R.drawable.msg_voice_unmuted); options.add(4); } else { - items.add(LocaleController.getString("VoipGroupMuteForMe", R.string.VoipGroupMuteForMe)); + items.add(LocaleController.getString(R.string.VoipGroupMuteForMe)); icons.add(R.drawable.msg_voice_muted); options.add(5); } if (participant.peer != null && participant.peer.channel_id != 0 && !ChatObject.isMegagroup(currentAccount, participant.peer.channel_id)) { - items.add(LocaleController.getString("VoipGroupOpenChannel", R.string.VoipGroupOpenChannel)); + items.add(LocaleController.getString(R.string.VoipGroupOpenChannel)); icons.add(R.drawable.msg_msgbubble3); options.add(8); } else { - items.add(LocaleController.getString("VoipGroupOpenChat", R.string.VoipGroupOpenChat)); + items.add(LocaleController.getString(R.string.VoipGroupOpenChat)); icons.add(R.drawable.msg_msgbubble3); options.add(6); } @@ -8006,9 +8006,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { int color = AndroidUtilities.getOffsetColor(Theme.getColor(Theme.key_voipgroup_lastSeenTextUnscrolled), Theme.getColor(Theme.key_voipgroup_lastSeenText), actionBar.getTag() != null ? 1.0f : 0.0f, 1.0f); textCell.setColors(color, color); if (ChatObject.isChannel(currentChat) && !currentChat.megagroup && ChatObject.isPublic(currentChat)) { - textCell.setTextAndIcon(LocaleController.getString("VoipGroupShareLink", R.string.VoipGroupShareLink), R.drawable.msg_link, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.VoipGroupShareLink), R.drawable.msg_link, false); } else { - textCell.setTextAndIcon(LocaleController.getString("VoipGroupInviteMember", R.string.VoipGroupInviteMember), R.drawable.msg_contact_add, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.VoipGroupInviteMember), R.drawable.msg_contact_add, false); } break; case VIEW_TYPE_PARTICIPANT: { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java index 12a3749c5c..22adff4192 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java @@ -522,32 +522,32 @@ public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); if (chatType == ChatObject.CHAT_TYPE_CHANNEL) { - actionBar.setTitle(LocaleController.getString("ChannelAddSubscribers", R.string.ChannelAddSubscribers)); + actionBar.setTitle(LocaleController.getString(R.string.ChannelAddSubscribers)); } else { if (addToGroup) { if (channelId != 0) { - actionBar.setTitle(LocaleController.getString("ChannelAddSubscribers", R.string.ChannelAddSubscribers)); + actionBar.setTitle(LocaleController.getString(R.string.ChannelAddSubscribers)); } else { - actionBar.setTitle(LocaleController.getString("GroupAddMembers", R.string.GroupAddMembers)); + actionBar.setTitle(LocaleController.getString(R.string.GroupAddMembers)); } } else if (isAlwaysShare) { if (chatAddType == 2) { - actionBar.setTitle(LocaleController.getString("FilterAlwaysShow", R.string.FilterAlwaysShow)); + actionBar.setTitle(LocaleController.getString(R.string.FilterAlwaysShow)); } else if (chatAddType == 1) { - actionBar.setTitle(LocaleController.getString("AlwaysAllow", R.string.AlwaysAllow)); + actionBar.setTitle(LocaleController.getString(R.string.AlwaysAllow)); } else { - actionBar.setTitle(LocaleController.getString("AlwaysShareWithTitle", R.string.AlwaysShareWithTitle)); + actionBar.setTitle(LocaleController.getString(R.string.AlwaysShareWithTitle)); } } else if (isNeverShare) { if (chatAddType == 2) { - actionBar.setTitle(LocaleController.getString("FilterNeverShow", R.string.FilterNeverShow)); + actionBar.setTitle(LocaleController.getString(R.string.FilterNeverShow)); } else if (chatAddType == 1) { - actionBar.setTitle(LocaleController.getString("NeverAllow", R.string.NeverAllow)); + actionBar.setTitle(LocaleController.getString(R.string.NeverAllow)); } else { - actionBar.setTitle(LocaleController.getString("NeverShareWithTitle", R.string.NeverShareWithTitle)); + actionBar.setTitle(LocaleController.getString(R.string.NeverShareWithTitle)); } } else { - actionBar.setTitle(chatType == ChatObject.CHAT_TYPE_CHAT ? LocaleController.getString("NewGroup", R.string.NewGroup) : LocaleController.getString("NewBroadcastList", R.string.NewBroadcastList)); + actionBar.setTitle(chatType == ChatObject.CHAT_TYPE_CHAT ? LocaleController.getString(R.string.NewGroup) : LocaleController.getString(R.string.NewBroadcastList)); } } @@ -780,7 +780,7 @@ public void afterTextChanged(Editable editable) { emptyView = new StickerEmptyView(context, flickerLoadingView, StickerEmptyView.STICKER_TYPE_SEARCH); emptyView.addView(flickerLoadingView); emptyView.showProgress(true, false); - emptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); + emptyView.title.setText(LocaleController.getString(R.string.NoResult)); frameLayout.addView(emptyView); @@ -839,9 +839,9 @@ public void afterTextChanged(Editable editable) { } if (chatType == ChatObject.CHAT_TYPE_CHAT && selectedContacts.size() == getMessagesController().maxGroupCount) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setMessage(LocaleController.getString("SoftUserLimitAlert", R.string.SoftUserLimitAlert)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setMessage(LocaleController.getString(R.string.SoftUserLimitAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); showDialog(builder.create()); return; } @@ -850,7 +850,7 @@ public void afterTextChanged(Editable editable) { if (addToGroup && user.bot) { if (channelId == 0 && user.bot_nochats) { try { - BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("BotCantJoinGroups", R.string.BotCantJoinGroups)).show(); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.BotCantJoinGroups)).show(); } catch (Exception e) { FileLog.e(e); } @@ -860,18 +860,18 @@ public void afterTextChanged(Editable editable) { TLRPC.Chat chat = getMessagesController().getChat(channelId); AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); if (ChatObject.canAddAdmins(chat)) { - builder.setTitle(LocaleController.getString("AddBotAdminAlert", R.string.AddBotAdminAlert)); - builder.setMessage(LocaleController.getString("AddBotAsAdmin", R.string.AddBotAsAdmin)); - builder.setPositiveButton(LocaleController.getString("AddAsAdmin", R.string.AddAsAdmin), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.AddBotAdminAlert)); + builder.setMessage(LocaleController.getString(R.string.AddBotAsAdmin)); + builder.setPositiveButton(LocaleController.getString(R.string.AddAsAdmin), (dialogInterface, i) -> { delegate2.needAddBot(user); if (editText.length() > 0) { editText.setText(null); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); } else { - builder.setMessage(LocaleController.getString("CantAddBotAsAdmin", R.string.CantAddBotAsAdmin)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setMessage(LocaleController.getString(R.string.CantAddBotAsAdmin)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); } showDialog(builder.create()); return; @@ -949,7 +949,7 @@ public void getOutline(View view, Outline outline) { floatingButton.setScaleY(0.0f); floatingButton.setAlpha(0.0f); } - floatingButton.setContentDescription(LocaleController.getString("Next", R.string.Next)); + floatingButton.setContentDescription(LocaleController.getString(R.string.Next)); updateHint(); return fragmentView; @@ -979,14 +979,14 @@ private void updateEditTextHint() { return; } if (chatType == ChatObject.CHAT_TYPE_CHANNEL) { - editText.setHintText(LocaleController.getString("AddMutual", R.string.AddMutual)); + editText.setHintText(LocaleController.getString(R.string.AddMutual)); } else { if (addToGroup || (adapter != null && adapter.noContactsStubRow == 0)) { - editText.setHintText(LocaleController.getString("SearchForPeople", R.string.SearchForPeople)); + editText.setHintText(LocaleController.getString(R.string.SearchForPeople)); } else if (isAlwaysShare || isNeverShare) { - editText.setHintText(LocaleController.getString("SearchForPeopleAndGroups", R.string.SearchForPeopleAndGroups)); + editText.setHintText(LocaleController.getString(R.string.SearchForPeopleAndGroups)); } else { - editText.setHintText(LocaleController.getString("SendMessageTo", R.string.SendMessageTo)); + editText.setHintText(LocaleController.getString(R.string.SendMessageTo)); } } } @@ -1183,8 +1183,8 @@ private boolean onDonePressed(boolean alert) { builder.setView(linearLayout); } - builder.setPositiveButton(LocaleController.getString("Add", R.string.Add), (dialogInterface, i) -> onAddToGroupDone(cells[0] != null && cells[0].isChecked() ? 100 : 0)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Add), (dialogInterface, i) -> onAddToGroupDone(cells[0] != null && cells[0].isChecked() ? 100 : 0)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); } else { if (chatType == ChatObject.CHAT_TYPE_CHANNEL) { @@ -1505,7 +1505,7 @@ protected void onAttachedToWindow() { }; stickerEmptyView.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); stickerEmptyView.subtitle.setVisibility(View.GONE); - stickerEmptyView.title.setText(LocaleController.getString("NoContacts", R.string.NoContacts)); + stickerEmptyView.title.setText(LocaleController.getString(R.string.NoContacts)); stickerEmptyView.setAnimateLayoutChange(true); view = stickerEmptyView; break; @@ -1523,7 +1523,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 0: { GraySectionCell cell = (GraySectionCell) holder.itemView; if (searching) { - cell.setText(LocaleController.getString("GlobalSearch", R.string.GlobalSearch)); + cell.setText(LocaleController.getString(R.string.GlobalSearch)); } else if (position == userTypesHeaderRow) { cell.setText(LocaleController.getString(R.string.PrivacyUserTypes)); } else if (position - usersStartRow >= 0 && position - usersStartRow < contacts.size()) { @@ -1635,9 +1635,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 2: { TextCell textCell = (TextCell) holder.itemView; if (inviteViaLink == 2) { - textCell.setTextAndIcon(LocaleController.getString("ChannelInviteViaLink", R.string.ChannelInviteViaLink), R.drawable.msg_link2, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.ChannelInviteViaLink), R.drawable.msg_link2, false); } else { - textCell.setTextAndIcon(LocaleController.getString("InviteToGroupByLink", R.string.InviteToGroupByLink), R.drawable.msg_link2, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.InviteToGroupByLink), R.drawable.msg_link2, false); } break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateFinalActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateFinalActivity.java index b9dfea3d1b..71ce1d704f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateFinalActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateFinalActivity.java @@ -343,7 +343,7 @@ public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("NewGroup", R.string.NewGroup)); + actionBar.setTitle(LocaleController.getString(R.string.NewGroup)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -517,7 +517,7 @@ public void invalidate(int l, int t, int r, int b) { avatarImage.setRoundRadius(AndroidUtilities.dp(chatType == ChatObject.CHAT_TYPE_FORUM ? 16 : 32)); avatarDrawable.setInfo(5, null, null); avatarImage.setImageDrawable(avatarDrawable); - avatarImage.setContentDescription(LocaleController.getString("ChoosePhoto", R.string.ChoosePhoto)); + avatarImage.setContentDescription(LocaleController.getString(R.string.ChoosePhoto)); editTextContainer.addView(avatarImage, LayoutHelper.createFrame(64, 64, Gravity.TOP | (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT), LocaleController.isRTL ? 0 : 16, 16, LocaleController.isRTL ? 16 : 0, 16)); Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); @@ -596,7 +596,7 @@ public void setAlpha(float alpha) { showAvatarProgress(false, false); editText = new EditTextEmoji(context, sizeNotifierFrameLayout, this, EditTextEmoji.STYLE_FRAGMENT, false); - editText.setHint(chatType == ChatObject.CHAT_TYPE_CHAT || chatType == ChatObject.CHAT_TYPE_MEGAGROUP || chatType == ChatObject.CHAT_TYPE_FORUM ? LocaleController.getString("EnterGroupNamePlaceholder", R.string.EnterGroupNamePlaceholder) : LocaleController.getString("EnterListName", R.string.EnterListName)); + editText.setHint(chatType == ChatObject.CHAT_TYPE_CHAT || chatType == ChatObject.CHAT_TYPE_MEGAGROUP || chatType == ChatObject.CHAT_TYPE_FORUM ? LocaleController.getString(R.string.EnterGroupNamePlaceholder) : LocaleController.getString(R.string.EnterListName)); if (nameToSet != null) { editText.setText(nameToSet); editText.setSelection(editText.getText().length()); @@ -725,7 +725,7 @@ public void getOutline(View view, Outline outline) { floatingButtonIcon.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chats_actionIcon), PorterDuff.Mode.SRC_IN)); floatingButtonIcon.setImageResource(R.drawable.checkbig); floatingButtonIcon.setPadding(0, AndroidUtilities.dp(2), 0, 0); - floatingButtonContainer.setContentDescription(LocaleController.getString("Done", R.string.Done)); + floatingButtonContainer.setContentDescription(LocaleController.getString(R.string.Done)); floatingButtonContainer.addView(floatingButtonIcon, LayoutHelper.createFrame(Build.VERSION.SDK_INT >= 21 ? 56 : 60, Build.VERSION.SDK_INT >= 21 ? 56 : 60)); progressView = new ContextProgressView(context, 1); @@ -1008,10 +1008,10 @@ public void notifyDataSetChanged() { items.add(new InnerItem(VIEW_TYPE_SHADOW_SECTION_CELL)); if (chatType == ChatObject.CHAT_TYPE_FORUM) { items.add(new InnerItem(VIEW_TYPE_TOPICS)); - items.add(new InnerItem(VIEW_TYPE_TEXT_INFO_CELL, LocaleController.getString("ForumToggleDescription", R.string.ForumToggleDescription))); + items.add(new InnerItem(VIEW_TYPE_TEXT_INFO_CELL, LocaleController.getString(R.string.ForumToggleDescription))); } else { items.add(new InnerItem(VIEW_TYPE_AUTO_DELETE)); - items.add(new InnerItem(VIEW_TYPE_TEXT_INFO_CELL, LocaleController.getString("GroupCreateAutodeleteDescription", R.string.GroupCreateAutodeleteDescription))); + items.add(new InnerItem(VIEW_TYPE_TEXT_INFO_CELL, LocaleController.getString(R.string.GroupCreateAutodeleteDescription))); } if (currentGroupCreateAddress != null) { items.add(new InnerItem(VIEW_TYPE_HEADER_CELL)); @@ -1093,7 +1093,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case VIEW_TYPE_HEADER_CELL: { HeaderCell cell = (HeaderCell) holder.itemView; if (currentGroupCreateAddress != null && position == 1) { - cell.setText(LocaleController.getString("AttachLocation", R.string.AttachLocation)); + cell.setText(LocaleController.getString(R.string.AttachLocation)); } else { cell.setText(LocaleController.formatPluralString("Members", selectedContacts.size())); } @@ -1115,16 +1115,16 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TextCell textCell = (TextCell) holder.itemView; String value; if (ttlPeriod == 0) { - value = LocaleController.getString("PasswordOff", R.string.PasswordOff); + value = LocaleController.getString(R.string.PasswordOff); } else { value = LocaleController.formatTTLString(ttlPeriod); } - textCell.setTextAndValueAndIcon(LocaleController.getString("AutoDeleteMessages", R.string.AutoDeleteMessages), value, fragmentBeginToShow, R.drawable.msg_autodelete, false); + textCell.setTextAndValueAndIcon(LocaleController.getString(R.string.AutoDeleteMessages), value, fragmentBeginToShow, R.drawable.msg_autodelete, false); break; } case VIEW_TYPE_TOPICS: { TextCell textCell = (TextCell) holder.itemView; - textCell.setTextAndCheckAndIcon(LocaleController.getString("ChannelTopics", R.string.ChannelTopics), true, R.drawable.msg_topics, false); + textCell.setTextAndCheckAndIcon(LocaleController.getString(R.string.ChannelTopics), true, R.drawable.msg_topics, false); textCell.getCheckBox().setAlpha(.75f); break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/GroupInviteActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/GroupInviteActivity.java index 77b6b501c5..70915496a5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/GroupInviteActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/GroupInviteActivity.java @@ -98,7 +98,7 @@ public void onFragmentDestroy() { public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("InviteLink", R.string.InviteLink)); + actionBar.setTitle(LocaleController.getString(R.string.InviteLink)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { @@ -148,7 +148,7 @@ public void onItemClick(int id) { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, invite.link); - getParentActivity().startActivityForResult(Intent.createChooser(intent, LocaleController.getString("InviteToGroupByLink", R.string.InviteToGroupByLink)), 500); + getParentActivity().startActivityForResult(Intent.createChooser(intent, LocaleController.getString(R.string.InviteToGroupByLink)), 500); } catch (Exception e) { FileLog.e(e); } @@ -159,10 +159,10 @@ public void onItemClick(int id) { ProxyUtil.showQrDialog(getParentActivity(),invite.link); } else if (position == revokeLinkRow) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setMessage(LocaleController.getString("RevokeAlert", R.string.RevokeAlert)); - builder.setTitle(LocaleController.getString("RevokeLink", R.string.RevokeLink)); - builder.setPositiveButton(LocaleController.getString("RevokeButton", R.string.RevokeButton), (dialogInterface, i) -> generateLink(true)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setMessage(LocaleController.getString(R.string.RevokeAlert)); + builder.setTitle(LocaleController.getString(R.string.RevokeLink)); + builder.setPositiveButton(LocaleController.getString(R.string.RevokeButton), (dialogInterface, i) -> generateLink(true)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); } }); @@ -209,9 +209,9 @@ private void generateLink(final boolean newRequest) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setMessage(LocaleController.getString("RevokeAlertNewLink", R.string.RevokeAlertNewLink)); - builder.setTitle(LocaleController.getString("RevokeLink", R.string.RevokeLink)); - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); + builder.setMessage(LocaleController.getString(R.string.RevokeAlertNewLink)); + builder.setTitle(LocaleController.getString(R.string.RevokeLink)); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); showDialog(builder.create()); } } @@ -269,13 +269,13 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 0: TextSettingsCell textCell = (TextSettingsCell) holder.itemView; if (position == copyLinkRow) { - textCell.setText(LocaleController.getString("CopyLink", R.string.CopyLink), true); + textCell.setText(LocaleController.getString(R.string.CopyLink), true); } else if (position == shareLinkRow) { - textCell.setText(LocaleController.getString("ShareLink", R.string.ShareLink), false); + textCell.setText(LocaleController.getString(R.string.ShareLink), false); } else if (position == shareQrCodeRow) { - textCell.setText(LocaleController.getString("ShareQRCode", R.string.ShareQRCode), false); + textCell.setText(LocaleController.getString(R.string.ShareQRCode), false); } else if (position == revokeLinkRow) { - textCell.setText(LocaleController.getString("RevokeLink", R.string.RevokeLink), true); + textCell.setText(LocaleController.getString(R.string.RevokeLink), true); } break; case 1: @@ -286,9 +286,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else if (position == linkInfoRow) { TLRPC.Chat chat = getMessagesController().getChat(chatId); if (ChatObject.isChannel(chat) && !chat.megagroup) { - privacyCell.setText(LocaleController.getString("ChannelLinkInfo", R.string.ChannelLinkInfo)); + privacyCell.setText(LocaleController.getString(R.string.ChannelLinkInfo)); } else { - privacyCell.setText(LocaleController.getString("LinkInfo", R.string.LinkInfo)); + privacyCell.setText(LocaleController.getString(R.string.LinkInfo)); } privacyCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/GroupStickersActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/GroupStickersActivity.java index 7b8f02324d..bc5fa6e6e3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/GroupStickersActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/GroupStickersActivity.java @@ -465,7 +465,7 @@ private void saveStickerSet() { finishFragment(); } else { if (getParentActivity() != null) { - Toast.makeText(getParentActivity(), LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred) + "\n" + error.text, Toast.LENGTH_SHORT).show(); + Toast.makeText(getParentActivity(), LocaleController.getString(R.string.ErrorOccurred) + "\n" + error.text, Toast.LENGTH_SHORT).show(); } } })); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/IUpdateLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/IUpdateLayout.java index 91d900081d..c8356ddca4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/IUpdateLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/IUpdateLayout.java @@ -3,9 +3,16 @@ import android.app.Activity; import android.view.ViewGroup; +import androidx.annotation.Keep; + +@Keep public abstract class IUpdateLayout { + @Keep public IUpdateLayout(Activity activity, ViewGroup sideMenu, ViewGroup sideMenuContainer) {} + @Keep public void updateFileProgress(Object[] args) {} + @Keep public void createUpdateUI(int currentAccount) {} + @Keep public void updateAppUpdateViews(int currentAccount, boolean animated) {} } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/IdenticonActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/IdenticonActivity.java index 6965ee125d..6947152b40 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/IdenticonActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/IdenticonActivity.java @@ -105,7 +105,7 @@ public void onFragmentDestroy() { public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("EncryptionKey", R.string.EncryptionKey)); + actionBar.setTitle(LocaleController.getString(R.string.EncryptionKey)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -221,7 +221,7 @@ public void onClick(View v) { final String url = "telegram.org"; int index = hash.toString().indexOf(url); if (index != -1) { - hash.setSpan(new URLSpanReplacement(LocaleController.getString("EncryptionKeyLink", R.string.EncryptionKeyLink)), index, index + url.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + hash.setSpan(new URLSpanReplacement(LocaleController.getString(R.string.EncryptionKeyLink)), index, index + url.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } textView.setText(hash); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/IntroActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/IntroActivity.java index a95fb1a4bb..12cffc1b01 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/IntroActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/IntroActivity.java @@ -122,20 +122,20 @@ public boolean onFragmentCreate() { MessagesController.getGlobalMainSettings().edit().putLong("intro_crashed_time", System.currentTimeMillis()).apply(); titles = new String[]{ - LocaleController.getString("Page1Title", R.string.Page1Title), - LocaleController.getString("Page2Title", R.string.Page2Title), - LocaleController.getString("Page3Title", R.string.Page3Title), - LocaleController.getString("Page5Title", R.string.Page5Title), - LocaleController.getString("Page4Title", R.string.Page4Title), - LocaleController.getString("Page6Title", R.string.Page6Title) + LocaleController.getString(R.string.Page1Title), + LocaleController.getString(R.string.Page2Title), + LocaleController.getString(R.string.Page3Title), + LocaleController.getString(R.string.Page5Title), + LocaleController.getString(R.string.Page4Title), + LocaleController.getString(R.string.Page6Title) }; messages = new String[]{ - LocaleController.getString("Page1Message", R.string.Page1Message), - LocaleController.getString("Page2Message", R.string.Page2Message), - LocaleController.getString("Page3Message", R.string.Page3Message), - LocaleController.getString("Page5Message", R.string.Page5Message), - LocaleController.getString("Page4Message", R.string.Page4Message), - LocaleController.getString("Page6Message", R.string.Page6Message) + LocaleController.getString(R.string.Page1Message), + LocaleController.getString(R.string.Page2Message), + LocaleController.getString(R.string.Page3Message), + LocaleController.getString(R.string.Page5Message), + LocaleController.getString(R.string.Page4Message), + LocaleController.getString(R.string.Page6Message) }; return true; } @@ -341,7 +341,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } } }; - startMessagingButton.setText(LocaleController.getString("StartMessaging", R.string.StartMessaging)); + startMessagingButton.setText(LocaleController.getString(R.string.StartMessaging)); startMessagingButton.setGravity(Gravity.CENTER); startMessagingButton.setTypeface(AndroidUtilities.bold()); startMessagingButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/InviteContactsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/InviteContactsActivity.java index c936f4c9da..7ea25f34e7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/InviteContactsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/InviteContactsActivity.java @@ -323,7 +323,7 @@ public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("InviteFriends", R.string.InviteFriends)); + actionBar.setTitle(LocaleController.getString(R.string.InviteFriends)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -432,7 +432,7 @@ public boolean onTouchEvent(MotionEvent event) { editText.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI); editText.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL); spansContainer.addView(editText); - editText.setHintText(LocaleController.getString("SearchFriends", R.string.SearchFriends)); + editText.setHintText(LocaleController.getString(R.string.SearchFriends)); editText.setCustomSelectionActionModeCallback(new ActionMode.Callback() { public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return false; @@ -495,8 +495,8 @@ public void afterTextChanged(Editable editable) { listView.setVerticalScrollBarEnabled(true); emptyView.showProgress(true); emptyView.setStickerType(StickerEmptyView.STICKER_TYPE_SEARCH); - emptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); - emptyView.subtitle.setText(LocaleController.getString("SearchEmptyViewFilteredSubtitle2", R.string.SearchEmptyViewFilteredSubtitle2)); + emptyView.title.setText(LocaleController.getString(R.string.NoResult)); + emptyView.subtitle.setText(LocaleController.getString(R.string.SearchEmptyViewFilteredSubtitle2)); } else { closeSearch(); } @@ -510,7 +510,7 @@ public void afterTextChanged(Editable editable) { emptyView = new StickerEmptyView(context, flickerLoadingView, StickerEmptyView.STICKER_TYPE_NO_CONTACTS); emptyView.addView(flickerLoadingView, 0); emptyView.setAnimateLayoutChange(true); - emptyView.title.setText(LocaleController.getString("NoContacts", R.string.NoContacts)); + emptyView.title.setText(LocaleController.getString(R.string.NoContacts)); emptyView.subtitle.setText(""); emptyView.showProgress(ContactsController.getInstance(currentAccount).isLoadingContacts()); @@ -594,7 +594,7 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) { infoTextView.setBackgroundColor(Theme.getColor(Theme.key_contacts_inviteBackground)); infoTextView.setTextColor(Theme.getColor(Theme.key_contacts_inviteText)); infoTextView.setGravity(Gravity.CENTER); - infoTextView.setText(LocaleController.getString("InviteFriendsHelp", R.string.InviteFriendsHelp)); + infoTextView.setText(LocaleController.getString(R.string.InviteFriendsHelp)); infoTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); infoTextView.setTypeface(AndroidUtilities.bold()); infoTextView.setPadding(AndroidUtilities.dp(17), AndroidUtilities.dp(9), AndroidUtilities.dp(17), AndroidUtilities.dp(9)); @@ -646,7 +646,7 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) { textView.setTextColor(Theme.getColor(Theme.key_contacts_inviteText)); textView.setGravity(Gravity.CENTER); textView.setCompoundDrawablePadding(AndroidUtilities.dp(8)); - textView.setText(LocaleController.getString("InviteToTelegram", R.string.InviteToTelegram).toUpperCase()); + textView.setText(LocaleController.getString(R.string.InviteToTelegram).toUpperCase()); textView.setTypeface(AndroidUtilities.bold()); linearLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_VERTICAL)); @@ -722,7 +722,7 @@ private void closeSearch() { listView.setVerticalScrollBarEnabled(false); emptyView.showProgress(false); emptyView.setStickerType(StickerEmptyView.STICKER_TYPE_NO_CONTACTS); - emptyView.title.setText(LocaleController.getString("NoContacts", R.string.NoContacts)); + emptyView.title.setText(LocaleController.getString(R.string.NoContacts)); emptyView.subtitle.setText(""); } @@ -778,7 +778,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType switch (viewType) { case 1: view = new InviteTextCell(context); - ((InviteTextCell) view).setTextAndIcon(LocaleController.getString("ShareTelegram", R.string.ShareTelegram), R.drawable.share); + ((InviteTextCell) view).setTextAndIcon(LocaleController.getString(R.string.ShareTelegram), R.drawable.share); break; default: view = new InviteUserCell(context, true); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/KeepMediaPopupView.java b/TMessagesProj/src/main/java/org/telegram/ui/KeepMediaPopupView.java index 79d78a7664..6905091a95 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/KeepMediaPopupView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/KeepMediaPopupView.java @@ -63,8 +63,8 @@ public KeepMediaPopupView(BaseFragment baseFragment, Context context) { twoDay = ActionBarMenuItem.addItem(this, R.drawable.msg_autodelete_2d, LocaleController.formatPluralString("Days", 2), false, null); oneWeek = ActionBarMenuItem.addItem(this, R.drawable.msg_autodelete_1w, LocaleController.formatPluralString("Weeks", 1), false, null); oneMonth = ActionBarMenuItem.addItem(this, R.drawable.msg_autodelete_1m, LocaleController.formatPluralString("Months", 1), false, null); - forever = ActionBarMenuItem.addItem(this, R.drawable.msg_cancel, LocaleController.getString("AutoDeleteMediaNever", R.string.AutoDeleteMediaNever), false, null); - delete = ActionBarMenuItem.addItem(this, R.drawable.msg_delete, LocaleController.getString("DeleteException", R.string.DeleteException), false, null); + forever = ActionBarMenuItem.addItem(this, R.drawable.msg_cancel, LocaleController.getString(R.string.AutoDeleteMediaNever), false, null); + delete = ActionBarMenuItem.addItem(this, R.drawable.msg_delete, LocaleController.getString(R.string.DeleteException), false, null); delete.setColors(Theme.getColor(Theme.key_text_RedRegular), Theme.getColor(Theme.key_text_RedRegular)); checkItems.add(new CheckItem(oneDay, CacheByChatsController.KEEP_MEDIA_ONE_DAY)); checkItems.add(new CheckItem(twoDay, CacheByChatsController.KEEP_MEDIA_TWO_DAY)); @@ -103,7 +103,7 @@ public KeepMediaPopupView(BaseFragment baseFragment, Context context) { } args.putBoolean("allowGlobalSearch", false); DialogsActivity activity = new DialogsActivity(args); - activity.setDelegate((fragment, dids, message, param, topicsFragment) -> { + activity.setDelegate((fragment, dids, message, param, notify, scheduleDate, topicsFragment) -> { CacheByChatsController.KeepMediaException newException = null; for (int i = 0; i < dids.size(); i++) { exceptions.add(newException = new CacheByChatsController.KeepMediaException(dids.get(i).dialogId, CacheByChatsController.KEEP_MEDIA_ONE_DAY)); @@ -161,7 +161,7 @@ public void onTransitionAnimationEnd(boolean isOpen, boolean backward) { description.setTextColor(Theme.getColor(Theme.key_actionBarDefaultSubmenuItem)); description.setMovementMethod(LinkMovementMethod.getInstance()); description.setLinkTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteLinkText)); - description.setText(LocaleController.getString("KeepMediaPopupDescription", R.string.KeepMediaPopupDescription)); + description.setText(LocaleController.getString(R.string.KeepMediaPopupDescription)); addView(description, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 0, 8, 0, 0)); } @@ -184,7 +184,7 @@ public void update(int type) { } exceptions = cacheByChatsController.getKeepMediaExceptions(type); if (exceptions.isEmpty()) { - exceptionsView.titleView.setText(LocaleController.getString("AddAnException", R.string.AddAnException)); + exceptionsView.titleView.setText(LocaleController.getString(R.string.AddAnException)); exceptionsView.titleView.setRightPadding(AndroidUtilities.dp(8)); exceptionsView.avatarsImageView.setObject(0, parentFragment.getCurrentAccount(), null); exceptionsView.avatarsImageView.setObject(1, parentFragment.getCurrentAccount(), null); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LanguageSelectActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LanguageSelectActivity.java index 0d4206c3fd..caa4381dbd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LanguageSelectActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LanguageSelectActivity.java @@ -99,7 +99,7 @@ public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("Language", R.string.Language)); + actionBar.setTitle(LocaleController.getString(R.string.Language)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -147,7 +147,7 @@ public void onTextChanged(EditText editText) { } } }); - searchItem.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.Search)); listAdapter = new ListAdapter(context, false); searchListViewAdapter = new ListAdapter(context, true); @@ -157,7 +157,7 @@ public void onTextChanged(EditText editText) { FrameLayout frameLayout = (FrameLayout) fragmentView; emptyView = new EmptyTextProgressView(context); - emptyView.setText(LocaleController.getString("NoResult", R.string.NoResult)); + emptyView.setText(LocaleController.getString(R.string.NoResult)); emptyView.showTextView(); emptyView.setShowAtCenter(true); frameLayout.addView(emptyView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); @@ -322,9 +322,9 @@ protected void onMoveAnimationUpdate(RecyclerView.ViewHolder holder) { } final LocaleController.LocaleInfo finalLocaleInfo = localeInfo; AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("DeleteLocalizationTitle", R.string.DeleteLocalizationTitle)); + builder.setTitle(LocaleController.getString(R.string.DeleteLocalizationTitle)); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("DeleteLocalizationText", R.string.DeleteLocalizationText, localeInfo.name))); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialogInterface, i) -> { if (LocaleController.getInstance().deleteLanguage(finalLocaleInfo, currentAccount)) { fillLanguages(); if (searchResult != null) { @@ -338,7 +338,7 @@ protected void onMoveAnimationUpdate(RecyclerView.ViewHolder holder) { } } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -440,7 +440,7 @@ public void search(final String query) { private void updateLanguage() { if (actionBar != null) { - String newTitle = LocaleController.getString("Language", R.string.Language); + String newTitle = LocaleController.getString(R.string.Language); if (!TextUtils.equals(actionBar.getTitle(), newTitle)) { actionBar.setTitleAnimated(newTitle, true, 350, CubicBezierInterpolator.EASE_OUT_QUINT); } @@ -619,7 +619,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } if (localeInfo != null) { if (localeInfo.isLocal()) { - textSettingsCell.setTextAndValueAndCheck(String.format("%1$s (%2$s)", localeInfo.name, LocaleController.getString("LanguageCustom", R.string.LanguageCustom)), localeInfo.nameEnglish, false, false, !last); + textSettingsCell.setTextAndValueAndCheck(String.format("%1$s (%2$s)", localeInfo.name, LocaleController.getString(R.string.LanguageCustom)), localeInfo.nameEnglish, false, false, !last); } else { textSettingsCell.setTextAndValueAndCheck(localeInfo.name, localeInfo.nameEnglish, false, false, !last); } @@ -642,7 +642,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TextSettingsCell settingsCell = (TextSettingsCell) holder.itemView; settingsCell.updateRTL(); HashSet langCodes = RestrictedLanguagesSelectActivity.getRestrictedLanguages(); - final String doNotTranslateCellName = LocaleController.getString("DoNotTranslate", R.string.DoNotTranslate); + final String doNotTranslateCellName = LocaleController.getString(R.string.DoNotTranslate); String doNotTranslateCellValue = null; try { boolean[] accusative = new boolean[1]; @@ -681,10 +681,10 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TextCheckCell cell = (TextCheckCell) holder.itemView; cell.updateRTL(); if (position == 1) { - cell.setTextAndCheck(LocaleController.getString("ShowTranslateButton", R.string.ShowTranslateButton), getContextValue(), true); + cell.setTextAndCheck(LocaleController.getString(R.string.ShowTranslateButton), getContextValue(), true); cell.setCheckBoxIcon(0); } else if (position == 2) { - cell.setTextAndCheck(LocaleController.getString("ShowTranslateChatButton", R.string.ShowTranslateChatButton), getChatValue(), getContextValue() || getChatValue()); + cell.setTextAndCheck(LocaleController.getString(R.string.ShowTranslateChatButton), getChatValue(), getContextValue() || getChatValue()); cell.setCheckBoxIcon(!getUserConfig().isPremium() ? R.drawable.permission_locked : 0); } break; @@ -693,21 +693,21 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TextInfoPrivacyCell infoCell = (TextInfoPrivacyCell) holder.itemView; infoCell.updateRTL(); if (position == (!getMessagesController().premiumFeaturesBlocked() && (getContextValue() || getChatValue()) ? 4 : 3)) { - infoCell.setText(LocaleController.getString("TranslateMessagesInfo1", R.string.TranslateMessagesInfo1)); + infoCell.setText(LocaleController.getString(R.string.TranslateMessagesInfo1)); infoCell.setBackground(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); infoCell.setTopPadding(11); infoCell.setBottomPadding(16); } else { infoCell.setTopPadding(0); infoCell.setBottomPadding(16); - infoCell.setText(LocaleController.getString("TranslateMessagesInfo2", R.string.TranslateMessagesInfo2)); + infoCell.setText(LocaleController.getString(R.string.TranslateMessagesInfo2)); infoCell.setBackground(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider_top, Theme.key_windowBackgroundGrayShadow)); } break; } case VIEW_TYPE_HEADER: { HeaderCell header = (HeaderCell) holder.itemView; - header.setText(position == 0 ? LocaleController.getString("TranslateMessages", R.string.TranslateMessages) : LocaleController.getString("Language", R.string.Language)); + header.setText(position == 0 ? LocaleController.getString(R.string.TranslateMessages) : LocaleController.getString(R.string.Language)); break; } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java index 26d92ebdea..e445ab1f16 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java @@ -25,7 +25,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; -import android.content.pm.PackageManager; import android.content.res.Configuration; import android.database.Cursor; import android.graphics.Bitmap; @@ -54,7 +53,6 @@ import android.text.TextUtils; import android.text.style.ClickableSpan; import android.util.Base64; -import android.util.Log; import android.util.SparseArray; import android.util.SparseIntArray; import android.view.ActionMode; @@ -131,6 +129,7 @@ import org.telegram.messenger.browser.Browser; import org.telegram.messenger.voip.VideoCapturerDevice; import org.telegram.messenger.voip.VoIPPendingCall; +import org.telegram.messenger.voip.VoIPPreNotificationService; import org.telegram.messenger.voip.VoIPService; import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLObject; @@ -200,14 +199,12 @@ import org.telegram.ui.Components.voip.VoIPHelper; import org.telegram.ui.Stars.ISuperRipple; import org.telegram.ui.Stars.StarsController; -import org.telegram.ui.Stars.StarsIntroActivity; import org.telegram.ui.Stars.SuperRipple; import org.telegram.ui.Stars.SuperRippleFallback; import org.telegram.ui.Stories.StoriesController; import org.telegram.ui.Stories.StoriesListPlaceProvider; import org.telegram.ui.Stories.StoryViewer; import org.telegram.ui.Stories.recorder.StoryRecorder; -import org.telegram.ui.Stories.recorder.Weather; import org.telegram.ui.bots.BotWebViewAttachedSheet; import org.telegram.ui.bots.BotWebViewSheet; import org.telegram.ui.bots.WebViewRequestProps; @@ -215,11 +212,9 @@ import java.io.BufferedReader; import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.io.IOException; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -287,9 +282,9 @@ public class LaunchActivity extends BasePermissionsActivity implements INavigati private ArrayList contactsToSend; private Uri contactsToSendUri; private int currentConnectionState; - private static ArrayList mainFragmentsStack = new ArrayList<>(); - private static ArrayList layerFragmentsStack = new ArrayList<>(); - private static ArrayList rightFragmentsStack = new ArrayList<>(); + private final static ArrayList mainFragmentsStack = new ArrayList<>(); + private final static ArrayList layerFragmentsStack = new ArrayList<>(); + private final static ArrayList rightFragmentsStack = new ArrayList<>(); private ViewTreeObserver.OnGlobalLayoutListener onGlobalLayoutListener; private ArrayList importingStickers; private ArrayList importingStickersEmoji; @@ -393,9 +388,9 @@ protected void onCreate(Bundle savedInstanceState) { isActive = true; if (BuildVars.DEBUG_VERSION) { StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder(StrictMode.getVmPolicy()) - .detectLeakedClosableObjects() - .penaltyLog() - .build()); + .detectLeakedClosableObjects() + .penaltyLog() + .build()); } instance = this; ApplicationLoader.postInitApplication(); @@ -706,34 +701,8 @@ public boolean drawChild(Canvas canvas, View child, long drawingTime) { presentFragment(new ChatActivity(args)); } drawerLayoutContainer.closeDrawer(false); - } else if (id == 12) { - if (Build.VERSION.SDK_INT >= 23) { - if (checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { - presentFragment(new ActionIntroActivity(ActionIntroActivity.ACTION_TYPE_NEARBY_LOCATION_ACCESS)); - drawerLayoutContainer.closeDrawer(false); - return; - } - } - boolean enabled = true; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - LocationManager lm = (LocationManager) ApplicationLoader.applicationContext.getSystemService(Context.LOCATION_SERVICE); - enabled = lm.isLocationEnabled(); - } else if (Build.VERSION.SDK_INT >= 19) { - try { - int mode = Settings.Secure.getInt(ApplicationLoader.applicationContext.getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF); - enabled = (mode != Settings.Secure.LOCATION_MODE_OFF); - } catch (Throwable e) { - FileLog.e(e); - } - } - if (enabled) { - presentFragment(new PeopleNearbyActivity()); - } else { - presentFragment(new ActionIntroActivity(ActionIntroActivity.ACTION_TYPE_NEARBY_LOCATION_ENABLED)); - } - drawerLayoutContainer.closeDrawer(false); } else if (id == 13) { - Browser.openUrl(LaunchActivity.this, LocaleController.getString("TelegramFeaturesUrl", R.string.TelegramFeaturesUrl)); + Browser.openUrl(LaunchActivity.this, LocaleController.getString(R.string.TelegramFeaturesUrl)); drawerLayoutContainer.closeDrawer(false); } else if (id == 15) { showSelectStatusDialog(); @@ -1121,7 +1090,7 @@ private void showAttachMenuBot(TLRPC.TL_attachMenuBot attachMenuBot, String star webViewSheet.setNeedsContext(false); webViewSheet.setDefaultFullsize(sidemenu); webViewSheet.setParentActivity(this); - webViewSheet.requestWebView(null, props); + webViewSheet.requestWebView(lastFragment, props); webViewSheet.show(); } else { BaseFragment fragment = lastFragment; @@ -1132,7 +1101,7 @@ private void showAttachMenuBot(TLRPC.TL_attachMenuBot attachMenuBot, String star webViewSheet.setNeedsContext(false); webViewSheet.setDefaultFullsize(sidemenu); webViewSheet.setParentActivity(this); - webViewSheet.requestWebView(null, props); + webViewSheet.requestWebView(lastFragment, props); webViewSheet.show(); } } @@ -1402,9 +1371,7 @@ protected void onEmojiSelected(View emojiView, Long documentId, TLRPC.Document d } else if (child instanceof DrawerActionCell && drawerLayoutAdapter.getId(sideMenu.getChildAdapterPosition(child)) == 15) { boolean hasStatus = user != null && DialogObject.getEmojiStatusDocumentId(user.emoji_status) != 0; ((DrawerActionCell) child).updateTextAndIcon( - hasStatus ? - LocaleController.getString("ChangeEmojiStatus", R.string.ChangeEmojiStatus) : - LocaleController.getString("SetEmojiStatus", R.string.SetEmojiStatus), + getString(hasStatus ? R.string.ChangeEmojiStatus : R.string.SetEmojiStatus), hasStatus ? R.drawable.msg_status_edit : R.drawable.msg_status_set @@ -1895,7 +1862,7 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool PhotoViewer.getInstance().closePhoto(false, true); } StoryRecorder.destroyInstance(); - dismissAllWeb(); +// dismissAllWeb(); } if (webviewShareAPIDoneListener != null) { webviewShareAPIDoneListener.run(true); @@ -1906,10 +1873,11 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool final int[] intentAccount = new int[]{intent.getIntExtra("currentAccount", UserConfig.selectedAccount)}; switchToAccount(intentAccount[0], true); boolean isVoipIntent = action != null && action.equals("voip"); + boolean isVoipAnswerIntent = action != null && action.equals("voip_answer"); if (!fromPassword && (AndroidUtilities.needShowPasscode(true) || SharedConfig.isWaitingForPasscodeEnter)) { showPasscodeActivity(true, false, -1, -1, null, null); UserConfig.getInstance(currentAccount).saveConfig(false); - if (!isVoipIntent) { + if (!isVoipIntent && !isVoipAnswerIntent) { passcodeSaveIntent = intent; passcodeSaveIntentIsNew = isNew; passcodeSaveIntentIsRestore = restore; @@ -3002,7 +2970,8 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool data = Uri.parse(url); long balance = 0; try { - balance = Long.parseLong(data.getQueryParameter("balance")); + balance = (int) Long.parseLong(data.getQueryParameter("balance")); + if (balance < 0 || balance >= Integer.MAX_VALUE) balance = 0; } catch (Exception e) { FileLog.e(e); } @@ -3298,7 +3267,7 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool } else { ArrayList dids = new ArrayList<>(); dids.add(MessagesStorage.TopicKey.of(dialogId, 0)); - didSelectDialogs(null, dids, null, false, null); + didSelectDialogs(null, dids, null, false, true, 0, null); } } else if (open_settings == 7 || open_settings == 8 || open_settings == 9) { CharSequence bulletinText = null; @@ -3415,7 +3384,7 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool } catch (Exception ignore) { } if (!(response instanceof TLRPC.TL_authorization)) { - AndroidUtilities.runOnUIThread(() -> AlertsCreator.showSimpleAlert(fragment, LocaleController.getString("AuthAnotherClient", R.string.AuthAnotherClient), LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred) + "\n" + error.text)); + AndroidUtilities.runOnUIThread(() -> AlertsCreator.showSimpleAlert(fragment, LocaleController.getString(R.string.AuthAnotherClient), LocaleController.getString(R.string.ErrorOccurred) + "\n" + error.text)); } })); }); @@ -3458,9 +3427,9 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool final String finalNewContactName = newContactName; final String finalNewContactPhone = NewContactBottomSheet.getPhoneNumber(this, UserConfig.getInstance(currentAccount).getCurrentUser(), newContactPhone, false); final AlertDialog newContactAlertDialog = new AlertDialog.Builder(lastFragment.getParentActivity()) - .setTitle(LocaleController.getString("NewContactAlertTitle", R.string.NewContactAlertTitle)) + .setTitle(LocaleController.getString(R.string.NewContactAlertTitle)) .setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("NewContactAlertMessage", R.string.NewContactAlertMessage, PhoneFormat.getInstance().format(finalNewContactPhone)))) - .setPositiveButton(LocaleController.getString("NewContactAlertButton", R.string.NewContactAlertButton), (d, i) -> { + .setPositiveButton(LocaleController.getString(R.string.NewContactAlertButton), (d, i) -> { final NewContactBottomSheet fragment = new NewContactBottomSheet(lastFragment, this); fragment.setInitialPhoneNumber(finalNewContactPhone, false); if (finalNewContactName != null) { @@ -3470,7 +3439,7 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool fragment.show(); //lastFragment.presentFragment(fragment); }) - .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null) + .setNegativeButton(LocaleController.getString(R.string.Cancel), null) .create(); lastFragment.showDialog(newContactAlertDialog); pushOpened = true; @@ -3532,7 +3501,9 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool } } } - if (isVoipIntent) { + if (isVoipAnswerIntent) { + VoIPPreNotificationService.answer(this); + } else if (isVoipIntent) { VoIPFragment.show(this, intentAccount[0]); } if (!showGroupVoip && (intent == null || !Intent.ACTION_MAIN.equals(intent.getAction())) && GroupCallActivity.groupCallInstance != null) { @@ -3581,12 +3552,12 @@ private void openDialogsToSend(boolean animated) { args.putBoolean("allowSwitchAccount", true); if (contactsToSend != null) { if (contactsToSend.size() != 1) { - args.putString("selectAlertString", LocaleController.getString("SendContactToText", R.string.SendMessagesToText)); - args.putString("selectAlertStringGroup", LocaleController.getString("SendContactToGroupText", R.string.SendContactToGroupText)); + args.putString("selectAlertString", LocaleController.getString(R.string.SendMessagesToText)); + args.putString("selectAlertStringGroup", LocaleController.getString(R.string.SendContactToGroupText)); } } else { - args.putString("selectAlertString", LocaleController.getString("SendMessagesToText", R.string.SendMessagesToText)); - args.putString("selectAlertStringGroup", LocaleController.getString("SendMessagesToGroupText", R.string.SendMessagesToGroupText)); + args.putString("selectAlertString", LocaleController.getString(R.string.SendMessagesToText)); + args.putString("selectAlertStringGroup", LocaleController.getString(R.string.SendMessagesToGroupText)); } DialogsActivity fragment = new DialogsActivity(args) { @Override @@ -3686,7 +3657,7 @@ private int runCommentRequest(int intentAccount, Runnable dismissLoading, Intege if (!chatOpened) { try { if (!mainFragmentsStack.isEmpty()) { - BulletinFactory.of(mainFragmentsStack.get(mainFragmentsStack.size() - 1)).createErrorBulletin(LocaleController.getString("ChannelPostDeleted", R.string.ChannelPostDeleted)).show(); + BulletinFactory.of(mainFragmentsStack.get(mainFragmentsStack.size() - 1)).createErrorBulletin(LocaleController.getString(R.string.ChannelPostDeleted)).show(); } } catch (Exception e) { FileLog.e(e); @@ -3793,7 +3764,7 @@ private String readImport(Uri uri) { zipEntry = zis.getNextEntry(); } zis.closeEntry(); - } catch (IOException e) { + } catch (Exception e) { FileLog.e(e); } } catch (Exception e2) { @@ -4085,17 +4056,17 @@ private void runLinkRequest(final int intentAccount, NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.didReceiveSmsCode, code); } else { AlertDialog.Builder builder = new AlertDialog.Builder(LaunchActivity.this); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); + builder.setTitle(LocaleController.getString(R.string.NekoX)); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("OtherLoginCode", R.string.OtherLoginCode, code))); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); showAlertDialog(builder); } return; } else if (loginToken != null) { AlertDialog.Builder builder = new AlertDialog.Builder(LaunchActivity.this); - builder.setTitle(LocaleController.getString("AuthAnotherClient", R.string.AuthAnotherClient)); - builder.setMessage(LocaleController.getString("AuthAnotherClientUrl", R.string.AuthAnotherClientUrl)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setTitle(LocaleController.getString(R.string.AuthAnotherClient)); + builder.setMessage(LocaleController.getString(R.string.AuthAnotherClientUrl)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); showAlertDialog(builder); return; } @@ -4242,13 +4213,13 @@ private void runLinkRequest(final int intentAccount, if (storyItem == null) { BulletinFactory factory = BulletinFactory.global(); if (factory != null) { - factory.createSimpleBulletin(R.raw.story_bomb2, LocaleController.getString("StoryNotFound", R.string.StoryNotFound)).show(); + factory.createSimpleBulletin(R.raw.story_bomb2, LocaleController.getString(R.string.StoryNotFound)).show(); } return; } else if (storyItem instanceof TL_stories.TL_storyItemDeleted) { BulletinFactory factory = BulletinFactory.global(); if (factory != null) { - factory.createSimpleBulletin(R.raw.story_bomb1, LocaleController.getString("StoryNotFound", R.string.StoryNotFound)).show(); + factory.createSimpleBulletin(R.raw.story_bomb1, LocaleController.getString(R.string.StoryNotFound)).show(); } return; } @@ -4356,11 +4327,11 @@ private void runLinkRequest(final int intentAccount, args.putBoolean("onlySelect", true); args.putBoolean("cantSendToChannels", true); args.putInt("dialogsType", DialogsActivity.DIALOGS_TYPE_BOT_SHARE); - args.putString("selectAlertString", LocaleController.getString("SendGameToText", R.string.SendGameToText)); - args.putString("selectAlertStringGroup", LocaleController.getString("SendGameToGroupText", R.string.SendGameToGroupText)); + args.putString("selectAlertString", LocaleController.getString(R.string.SendGameToText)); + args.putString("selectAlertStringGroup", LocaleController.getString(R.string.SendGameToGroupText)); DialogsActivity fragment = new DialogsActivity(args); TLRPC.User user = MessagesController.getInstance(intentAccount).getUser(peerId); - fragment.setDelegate((fragment1, dids, message1, param, topicsFragment) -> { + fragment.setDelegate((fragment1, dids, message1, param, notify, scheduleDate, topicsFragment) -> { long did = dids.get(0).dialogId; TLRPC.TL_inputMediaGame inputMediaGame = new TLRPC.TL_inputMediaGame(); inputMediaGame.id = new TLRPC.TL_inputGameShortName(); @@ -4413,7 +4384,7 @@ private void runLinkRequest(final int intentAccount, if (user == null || user.bot && user.bot_nochats) { try { if (!mainFragmentsStack.isEmpty()) { - BulletinFactory.of(mainFragmentsStack.get(mainFragmentsStack.size() - 1)).createErrorBulletin(LocaleController.getString("BotCantJoinGroups", R.string.BotCantJoinGroups)).show(); + BulletinFactory.of(mainFragmentsStack.get(mainFragmentsStack.size() - 1)).createErrorBulletin(LocaleController.getString(R.string.BotCantJoinGroups)).show(); } } catch (Exception e) { FileLog.e(e); @@ -4430,7 +4401,7 @@ private void runLinkRequest(final int intentAccount, final String botHash = TextUtils.isEmpty(botChat) ? (TextUtils.isEmpty(botChannel) ? null : botChannel) : botChat; // args.putString("addToGroupAlertString", LocaleController.formatString("AddToTheGroupAlertText", R.string.AddToTheGroupAlertText, UserObject.getUserName(user), "%1$s")); DialogsActivity fragment = new DialogsActivity(args); - fragment.setDelegate((fragment12, dids, message1, param, topicsFragment) -> { + fragment.setDelegate((fragment12, dids, message1, param, notify, scheduleDate, topicsFragment) -> { long did = dids.get(0).dialogId; TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-did); @@ -4537,11 +4508,11 @@ public void didChangeOwner(TLRPC.User user) { })); } else { AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(LocaleController.getString("AddBot", R.string.AddBot)); + builder.setTitle(LocaleController.getString(R.string.AddBot)); String chatName = chat == null ? "" : chat.title; builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("AddMembersAlertNamesText", R.string.AddMembersAlertNamesText, UserObject.getUserName(user), chatName))); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("AddBot", R.string.AddBot), (di, i) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.AddBot), (di, i) -> { Bundle args12 = new Bundle(); args12.putBoolean("scrollToTopOnResume", true); args12.putLong("chat_id", -did); @@ -4697,7 +4668,7 @@ public void onMessagesLoaded(boolean fromCache) { if (chatFull != null) { if (chatFull.call == null) { if (voipLastFragment.getParentActivity() != null) { - BulletinFactory.of(voipLastFragment).createSimpleBulletin(R.raw.linkbroken, LocaleController.getString("InviteExpired", R.string.InviteExpired)).show(); + BulletinFactory.of(voipLastFragment).createSimpleBulletin(R.raw.linkbroken, LocaleController.getString(R.string.InviteExpired)).show(); } } else { accountInstance.getMessagesController().getGroupCall(-dialog_id, true, () -> AndroidUtilities.runOnUIThread(() -> { @@ -4716,7 +4687,7 @@ public void onMessagesLoaded(boolean fromCache) { public void onError() { if (!LaunchActivity.this.isFinishing()) { BaseFragment fragment = mainFragmentsStack.get(mainFragmentsStack.size() - 1); - AlertsCreator.showSimpleAlert(fragment, LocaleController.getString("JoinToGroupErrorNotExist", R.string.JoinToGroupErrorNotExist)); + AlertsCreator.showSimpleAlert(fragment, LocaleController.getString(R.string.JoinToGroupErrorNotExist)); } try { dismissLoading.run(); @@ -4738,9 +4709,9 @@ public void onError() { ((ChatActivity) lastFragment).shakeContent(); } if (AndroidUtilities.isNumeric(username)) { - BulletinFactory.of(lastFragment).createErrorBulletin(LocaleController.getString("NoPhoneFound", R.string.NoPhoneFound)).show(); + BulletinFactory.of(lastFragment).createErrorBulletin(LocaleController.getString(R.string.NoPhoneFound)).show(); } else { - BulletinFactory.of(lastFragment).createErrorBulletin(LocaleController.getString("NoUsernameFound", R.string.NoUsernameFound)).show(); + BulletinFactory.of(lastFragment).createErrorBulletin(LocaleController.getString(R.string.NoUsernameFound)).show(); } } } catch (Exception e) { @@ -4803,7 +4774,7 @@ public void onMessagesLoaded(boolean fromCache) { public void onError() { if (!LaunchActivity.this.isFinishing()) { BaseFragment fragment = mainFragmentsStack.get(mainFragmentsStack.size() - 1); - AlertsCreator.showSimpleAlert(fragment, LocaleController.getString("JoinToGroupErrorNotExist", R.string.JoinToGroupErrorNotExist)); + AlertsCreator.showSimpleAlert(fragment, LocaleController.getString(R.string.JoinToGroupErrorNotExist)); } try { dismissLoading.run(); @@ -4830,7 +4801,7 @@ public void onError() { TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-dialogId); if (chat != null) { AndroidUtilities.runOnUIThread(() -> { - BulletinFactory.of(chatActivity).createSimpleBulletin(R.raw.stars_send, getString(R.string.StarsSubscriptionCompleted), AndroidUtilities.replaceTags(formatPluralString("StarsSubscriptionCompletedText", (int) stars, chat.title))).show(true); + BulletinFactory.of(chatActivity).createSimpleBulletin(R.raw.stars_send, LocaleController.getString(R.string.StarsSubscriptionCompleted), AndroidUtilities.replaceTags(formatPluralString("StarsSubscriptionCompletedText", (int) stars, chat.title))).show(true); }, 250); } }); @@ -4842,16 +4813,16 @@ public void onError() { } } else { AlertDialog.Builder builder = new AlertDialog.Builder(LaunchActivity.this); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); + builder.setTitle(LocaleController.getString(R.string.NekoX)); if (error.text.startsWith("FLOOD_WAIT")) { - builder.setMessage(LocaleController.getString("FloodWait", R.string.FloodWait)); + builder.setMessage(LocaleController.getString(R.string.FloodWait)); } else if (error.text.startsWith("INVITE_HASH_EXPIRED")) { - builder.setTitle(LocaleController.getString("ExpiredLink", R.string.ExpiredLink)); - builder.setMessage(LocaleController.getString("InviteExpired", R.string.InviteExpired)); + builder.setTitle(LocaleController.getString(R.string.ExpiredLink)); + builder.setMessage(LocaleController.getString(R.string.InviteExpired)); } else { - builder.setMessage(LocaleController.getString("JoinToGroupErrorNotExist", R.string.JoinToGroupErrorNotExist)); + builder.setMessage(LocaleController.getString(R.string.JoinToGroupErrorNotExist)); } - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); showAlertDialog(builder); } @@ -4899,15 +4870,15 @@ public void onError() { } } else { AlertDialog.Builder builder = new AlertDialog.Builder(LaunchActivity.this); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); + builder.setTitle(LocaleController.getString(R.string.NekoX)); if (error.text.startsWith("FLOOD_WAIT")) { - builder.setMessage(LocaleController.getString("FloodWait", R.string.FloodWait)); + builder.setMessage(LocaleController.getString(R.string.FloodWait)); } else if (error.text.equals("USERS_TOO_MUCH")) { - builder.setMessage(LocaleController.getString("JoinToGroupErrorFull", R.string.JoinToGroupErrorFull)); + builder.setMessage(LocaleController.getString(R.string.JoinToGroupErrorFull)); } else { - builder.setMessage(LocaleController.getString("JoinToGroupErrorNotExist", R.string.JoinToGroupErrorNotExist)); + builder.setMessage(LocaleController.getString(R.string.JoinToGroupErrorNotExist)); } - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); showAlertDialog(builder); } } @@ -4964,7 +4935,7 @@ public void onError() { args.putBoolean("onlySelect", true); args.putInt("dialogsType", DialogsActivity.DIALOGS_TYPE_FORWARD); DialogsActivity fragment = new DialogsActivity(args); - fragment.setDelegate((fragment13, dids, m, param, topicsFragment) -> { + fragment.setDelegate((fragment13, dids, m, param, notify, scheduleDate, topicsFragment) -> { long did = dids.get(0).dialogId; Bundle args13 = new Bundle(); args13.putBoolean("scrollToTopOnResume", true); @@ -5017,9 +4988,9 @@ public void onError() { try { dismissLoading.run(); if ("APP_VERSION_OUTDATED".equals(error.text)) { - AlertsCreator.showUpdateAppAlert(LaunchActivity.this, LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + AlertsCreator.showUpdateAppAlert(LaunchActivity.this, LocaleController.getString(R.string.UpdateAppAlert), true); } else { - showAlertDialog(AlertsCreator.createSimpleAlert(LaunchActivity.this, LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred) + "\n" + error.text)); + showAlertDialog(AlertsCreator.createSimpleAlert(LaunchActivity.this, LocaleController.getString(R.string.ErrorOccurred) + "\n" + error.text)); } } catch (Exception e) { FileLog.e(e); @@ -5057,9 +5028,9 @@ public void onError() { AlertsCreator.createLanguageAlert(LaunchActivity.this, res).show(); } else if (error != null) { if ("LANG_CODE_NOT_SUPPORTED".equals(error.text)) { - showAlertDialog(AlertsCreator.createSimpleAlert(LaunchActivity.this, LocaleController.getString("LanguageUnsupportedError", R.string.LanguageUnsupportedError))); + showAlertDialog(AlertsCreator.createSimpleAlert(LaunchActivity.this, LocaleController.getString(R.string.LanguageUnsupportedError))); } else { - showAlertDialog(AlertsCreator.createSimpleAlert(LaunchActivity.this, LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred) + "\n" + error.text)); + showAlertDialog(AlertsCreator.createSimpleAlert(LaunchActivity.this, LocaleController.getString(R.string.ErrorOccurred) + "\n" + error.text)); } } })); @@ -5105,7 +5076,7 @@ public void onError() { wallpaperActivity.setInitialModes(wallPaper.settings.blur, wallPaper.settings.motion, wallPaper.settings.intensity); presentFragment(wallpaperActivity); } else { - showAlertDialog(AlertsCreator.createSimpleAlert(LaunchActivity.this, LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred) + "\n" + error.text)); + showAlertDialog(AlertsCreator.createSimpleAlert(LaunchActivity.this, LocaleController.getString(R.string.ErrorOccurred) + "\n" + error.text)); } })); } @@ -5186,9 +5157,9 @@ public void onError() { FileLog.e(e); } if (notFound == 1) { - showAlertDialog(AlertsCreator.createSimpleAlert(LaunchActivity.this, LocaleController.getString("Theme", R.string.Theme), LocaleController.getString("ThemeNotSupported", R.string.ThemeNotSupported))); + showAlertDialog(AlertsCreator.createSimpleAlert(LaunchActivity.this, LocaleController.getString(R.string.Theme), LocaleController.getString(R.string.ThemeNotSupported))); } else { - showAlertDialog(AlertsCreator.createSimpleAlert(LaunchActivity.this, LocaleController.getString("Theme", R.string.Theme), LocaleController.getString("ThemeNotFound", R.string.ThemeNotFound))); + showAlertDialog(AlertsCreator.createSimpleAlert(LaunchActivity.this, LocaleController.getString(R.string.Theme), LocaleController.getString(R.string.ThemeNotFound))); } } })); @@ -5591,7 +5562,7 @@ private void processAttachMenuBot(int intentAccount, long peerId, String attachM args.putBoolean("allowBots", chooserTargets.contains("bots")); dialogsActivity = new DialogsActivity(args); - dialogsActivity.setDelegate((fragment, dids, message1, param, topicsFragment) -> { + dialogsActivity.setDelegate((fragment, dids, message1, param, notify, scheduleDate, topicsFragment) -> { long did = dids.get(0).dialogId; Bundle args1 = new Bundle(); @@ -5776,9 +5747,9 @@ private List findContacts(String userName, String userPhone, b names[1] = null; } if (UserObject.isReplyUser(user)) { - names[2] = LocaleController.getString("RepliesTitle", R.string.RepliesTitle).toLowerCase(); + names[2] = LocaleController.getString(R.string.RepliesTitle).toLowerCase(); } else if (user.self) { - names[2] = LocaleController.getString("SavedMessages", R.string.SavedMessages).toLowerCase(); + names[2] = LocaleController.getString(R.string.SavedMessages).toLowerCase(); } boolean found = false; @@ -5966,7 +5937,7 @@ public void onNewIntent(Intent intent, Browser.Progress progress) { } @Override - public boolean didSelectDialogs(DialogsActivity dialogsFragment, ArrayList dids, CharSequence message, boolean param, TopicsFragment topicsFragment) { + public boolean didSelectDialogs(DialogsActivity dialogsFragment, ArrayList dids, CharSequence message, boolean param, boolean _notify, int _scheduleDate, TopicsFragment topicsFragment) { final int account = dialogsFragment != null ? dialogsFragment.getCurrentAccount() : currentAccount; if (exportingChatUri != null) { @@ -6008,7 +5979,8 @@ public boolean didSelectDialogs(DialogsActivity dialogsFragment, ArrayList { + alert.setDelegate((user, notify2, scheduleDate2, effectId, invertMedia) -> { if (fragment != null) { getActionBarLayout().presentFragment(fragment, true, false, true, false); } @@ -6088,14 +6060,14 @@ public boolean didSelectDialogs(DialogsActivity dialogsFragment, ArrayList arrayList = new ArrayList<>(); arrayList.add(videoPath); - SendMessagesHelper.prepareSendingDocuments(accountInstance, arrayList, arrayList, null, captionToSend, null, did, replyToMsg, replyToMsg, null, null, null, notify, 0, null, null, 0, 0, false); + SendMessagesHelper.prepareSendingDocuments(accountInstance, arrayList, arrayList, null, captionToSend, null, did, replyToMsg, replyToMsg, null, null, null, notify, scheduleDate, null, null, 0, 0, false); } } if (photoPathsArray != null && !photosEditorOpened) { @@ -6146,14 +6118,14 @@ public boolean didSelectDialogs(DialogsActivity dialogsFragment, ArrayList presentFragment(new LiteModeSettingsActivity()) ).setDuration(Bulletin.DURATION_PROLONG).show(); } @@ -6437,15 +6409,14 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in VoIPFragment.onRequestPermissionsResult(requestCode, permissions, grantResults); StoryRecorder.onRequestPermissionsResult(requestCode, permissions, grantResults); NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.onRequestPermissionResultReceived, requestCode, permissions, grantResults); - if (requestCode == Weather.LOCATION_REQUEST) { - Weather.receivePermissionIntent(permissions, grantResults); - } if (requestedPermissions.get(requestCode, -1) >= 0) { int type = requestedPermissions.get(requestCode, -1); requestedPermissions.delete(requestCode); NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.permissionsGranted, type); } + + NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.activityPermissionsGranted, requestCode, permissions, grantResults); } @Override @@ -6751,6 +6722,7 @@ private void invalidateTabletMode() { @Override public void onConfigurationChanged(Configuration newConfig) { AndroidUtilities.checkDisplaySize(this, newConfig); + AndroidUtilities.setPreferredMaxRefreshRate(getWindow()); super.onConfigurationChanged(newConfig); checkLayout(); PipRoundVideoView pipRoundVideoView = PipRoundVideoView.getInstance(); @@ -6829,7 +6801,7 @@ public void didReceivedNotification(int id, final int account, Object... args) { } AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); + builder.setTitle(LocaleController.getString(R.string.NekoX)); if (fragment != null) { Map colorsReplacement = new HashMap<>(); colorsReplacement.put("info1.**", fragment.getThemedColor(Theme.key_dialogTopBackground)); @@ -6838,21 +6810,21 @@ public void didReceivedNotification(int id, final int account, Object... args) { builder.setTopAnimationIsNew(true); } if (reason != 2 && reason != 3) { - builder.setNegativeButton(LocaleController.getString("MoreInfo", R.string.MoreInfo), (dialogInterface, i) -> { + builder.setNegativeButton(LocaleController.getString(R.string.MoreInfo), (dialogInterface, i) -> { if (!mainFragmentsStack.isEmpty()) { MessagesController.getInstance(account).openByUserName("spambot", mainFragmentsStack.get(mainFragmentsStack.size() - 1), 1); } }); } if (reason == 5) { - builder.setMessage(LocaleController.getString("NobodyLikesSpam3", R.string.NobodyLikesSpam3)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setMessage(LocaleController.getString(R.string.NobodyLikesSpam3)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); } else if (reason == 0) { - builder.setMessage(LocaleController.getString("NobodyLikesSpam1", R.string.NobodyLikesSpam1)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setMessage(LocaleController.getString(R.string.NobodyLikesSpam1)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); } else if (reason == 1) { - builder.setMessage(LocaleController.getString("NobodyLikesSpam2", R.string.NobodyLikesSpam2)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setMessage(LocaleController.getString(R.string.NobodyLikesSpam2)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); } else if (reason == 2) { SpannableStringBuilder span = SpannableStringBuilder.valueOf((String) args[1]); String type = (String) args[2]; @@ -6877,22 +6849,18 @@ public void updateDrawState(@NonNull TextPaint ds) { } builder.setMessage(span); if (type.startsWith("AUTH_KEY_DROP_")) { - builder.setPositiveButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setNegativeButton(LocaleController.getString("LogOut", R.string.LogOut), (dialog, which) -> MessagesController.getInstance(currentAccount).performLogout(2)); + builder.setPositiveButton(LocaleController.getString(R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.LogOut), (dialog, which) -> MessagesController.getInstance(currentAccount).performLogout(2)); } else if (type.startsWith("PREMIUM_")) { builder.setTitle(LocaleController.getString(R.string.TelegramPremium)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); } else { - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); } } else if (reason == 3) { - builder.setTitle(LocaleController.getString("Proxy", R.string.Proxy)); - if (args.length > 1) { -// builder.setMessage(LocaleController.getString("WsNoDC4", R.string.WsNoDC4)); - } else { - builder.setMessage(LocaleController.getString("UseProxyTelegramError", R.string.UseProxyTelegramError)); - } - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setTitle(LocaleController.getString(R.string.Proxy)); + builder.setMessage(LocaleController.getString(R.string.UseProxyTelegramError)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); proxyErrorDialog = showAlertDialog(builder); return; } @@ -6902,9 +6870,9 @@ public void updateDrawState(@NonNull TextPaint ds) { } else if (id == NotificationCenter.wasUnableToFindCurrentLocation) { final HashMap waitingForLocation = (HashMap) args[0]; AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(LocaleController.getString("NekoX", R.string.NekoX)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); - builder.setNegativeButton(LocaleController.getString("ShareYouLocationUnableManually", R.string.ShareYouLocationUnableManually), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.NekoX)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); + builder.setNegativeButton(LocaleController.getString(R.string.ShareYouLocationUnableManually), (dialogInterface, i) -> { if (mainFragmentsStack.isEmpty()) { return; } @@ -6921,7 +6889,7 @@ public void updateDrawState(@NonNull TextPaint ds) { }); presentFragment(fragment); }); - builder.setMessage(LocaleController.getString("ShareYouLocationUnable", R.string.ShareYouLocationUnable)); + builder.setMessage(LocaleController.getString(R.string.ShareYouLocationUnable)); if (!mainFragmentsStack.isEmpty()) { mainFragmentsStack.get(mainFragmentsStack.size() - 1).showDialog(builder.create()); } @@ -6969,10 +6937,10 @@ public void updateDrawState(@NonNull TextPaint ds) { AlertDialog.Builder builder = new AlertDialog.Builder(LaunchActivity.this); builder.setTopAnimation(R.raw.permission_request_contacts, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)); - builder.setTitle(LocaleController.getString("UpdateContactsTitle", R.string.UpdateContactsTitle)); - builder.setMessage(LocaleController.getString("UpdateContactsMessage", R.string.UpdateContactsMessage)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> ContactsController.getInstance(account).syncPhoneBookByAlert(contactHashMap, first, schedule, false)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialog, which) -> ContactsController.getInstance(account).syncPhoneBookByAlert(contactHashMap, first, schedule, true)); + builder.setTitle(LocaleController.getString(R.string.UpdateContactsTitle)); + builder.setMessage(LocaleController.getString(R.string.UpdateContactsMessage)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> ContactsController.getInstance(account).syncPhoneBookByAlert(contactHashMap, first, schedule, false)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> ContactsController.getInstance(account).syncPhoneBookByAlert(contactHashMap, first, schedule, true)); builder.setOnBackButtonListener((dialogInterface, i) -> ContactsController.getInstance(account).syncPhoneBookByAlert(contactHashMap, first, schedule, true)); AlertDialog dialog = builder.create(); fragment.showDialog(dialog); @@ -7251,13 +7219,13 @@ public void onAnimationEnd(Animator animation) { switch (type) { case Bulletin.TYPE_NAME_CHANGED: { long peerId = (long) args[1]; - String text = peerId > 0 ? LocaleController.getString("YourNameChanged", R.string.YourNameChanged) : LocaleController.getString("ChannelTitleChanged", R.string.ChannelTitleChanged); + String text = peerId > 0 ? LocaleController.getString(R.string.YourNameChanged) : LocaleController.getString(R.string.ChannelTitleChanged); (container != null ? BulletinFactory.of(container, null) : BulletinFactory.of(fragment)).createErrorBulletin(text).show(); break; } case Bulletin.TYPE_BIO_CHANGED: { long peerId = (long) args[1]; - String text = peerId > 0 ? LocaleController.getString("YourBioChanged", R.string.YourBioChanged) : LocaleController.getString("ChannelDescriptionChanged", R.string.ChannelDescriptionChanged); + String text = peerId > 0 ? LocaleController.getString(R.string.YourBioChanged) : LocaleController.getString(R.string.ChannelDescriptionChanged); (container != null ? BulletinFactory.of(container, null) : BulletinFactory.of(fragment)).createErrorBulletin(text).show(); break; } @@ -7577,7 +7545,7 @@ private void showLanguageAlertInternal(LocaleController.LocaleInfo systemInfo, L }); linearLayout.addView(cell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 50)); builder.setView(linearLayout); - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.OK), (dialog, which) -> { LocaleController.getInstance().applyLanguage(selectedLanguage[0], true, false, currentAccount); rebuildAllFragments(true); }); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LinkEditActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LinkEditActivity.java index 0cacc6eca2..1463415aca 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LinkEditActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LinkEditActivity.java @@ -120,9 +120,9 @@ public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); if (type == CREATE_TYPE) { - actionBar.setTitle(getString("NewLink", R.string.NewLink)); + actionBar.setTitle(getString(R.string.NewLink)); } else if (type == EDIT_TYPE) { - actionBar.setTitle(getString("EditLink", R.string.EditLink)); + actionBar.setTitle(getString(R.string.EditLink)); } actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -140,9 +140,9 @@ public void onItemClick(int id) { createTextView.setOnClickListener(this::onCreateClicked); createTextView.setSingleLine(); if (type == CREATE_TYPE) { - createTextView.setText(getString("CreateLinkHeader", R.string.CreateLinkHeader)); + createTextView.setText(getString(R.string.CreateLinkHeader)); } else if (type == EDIT_TYPE) { - createTextView.setText(getString("SaveLinkHeader", R.string.SaveLinkHeader)); + createTextView.setText(getString(R.string.SaveLinkHeader)); } createTextView.setTextColor(Theme.getColor(Theme.key_actionBarDefaultTitle)); createTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14f); @@ -305,9 +305,9 @@ protected void dispatchDraw(Canvas canvas) { buttonTextView.setTypeface(AndroidUtilities.bold()); if (type == CREATE_TYPE) { - buttonTextView.setText(getString("CreateLink", R.string.CreateLink)); + buttonTextView.setText(getString(R.string.CreateLink)); } else if (type == EDIT_TYPE) { - buttonTextView.setText(getString("SaveLink", R.string.SaveLink)); + buttonTextView.setText(getString(R.string.SaveLink)); } TLRPC.Chat chatLocal = getMessagesController().getChat(chatId); @@ -466,7 +466,7 @@ protected void onTextChanged(CharSequence newText) { timeEditText.setPadding(dp(22), 0, dp(22), 0); timeEditText.setGravity(Gravity.CENTER_VERTICAL); timeEditText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); - timeEditText.setHint(getString("TimeLimitHint", R.string.TimeLimitHint)); + timeEditText.setHint(getString(R.string.TimeLimitHint)); timeEditText.setOnClickListener(view -> AlertsCreator.createDatePickerDialog(context, getString(R.string.ExpireAfter), getString(R.string.SetTimeLimit), -1, (notify, scheduleDate) -> chooseDate(scheduleDate))); timeChooseView.setCallback(index -> { @@ -481,11 +481,11 @@ protected void onTextChanged(CharSequence newText) { linearLayout.addView(timeEditText, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 50)); divider = new TextInfoPrivacyCell(context); - divider.setText(getString("TimeLimitHelp", R.string.TimeLimitHelp)); + divider.setText(getString(R.string.TimeLimitHelp)); linearLayout.addView(divider); usesHeaderCell = new HeaderCell(context); - usesHeaderCell.setText(getString("LimitNumberOfUses", R.string.LimitNumberOfUses)); + usesHeaderCell.setText(getString(R.string.LimitNumberOfUses)); linearLayout.addView(usesHeaderCell); usesChooseView = new SlideChooseView(context); usesChooseView.setCallback(index -> { @@ -513,7 +513,7 @@ public boolean onTouchEvent(MotionEvent event) { usesEditText.setPadding(dp(22), 0, dp(22), 0); usesEditText.setGravity(Gravity.CENTER_VERTICAL); usesEditText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); - usesEditText.setHint(getString("UsesLimitHint", R.string.UsesLimitHint)); + usesEditText.setHint(getString(R.string.UsesLimitHint)); usesEditText.setKeyListener(DigitsKeyListener.getInstance("0123456789.")); usesEditText.setInputType(InputType.TYPE_CLASS_NUMBER); usesEditText.addTextChangedListener(new TextWatcher() { @@ -553,7 +553,7 @@ public void afterTextChanged(Editable editable) { linearLayout.addView(usesEditText, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 50)); dividerUses = new TextInfoPrivacyCell(context); - dividerUses.setText(getString("UsesLimitHelp", R.string.UsesLimitHelp)); + dividerUses.setText(getString(R.string.UsesLimitHelp)); linearLayout.addView(dividerUses); nameEditText = new EditText(context) { @@ -577,7 +577,7 @@ public void afterTextChanged(Editable s) { nameEditText.setCursorVisible(false); nameEditText.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(32) }); nameEditText.setGravity(Gravity.CENTER_VERTICAL); - nameEditText.setHint(getString("LinkNameHint", R.string.LinkNameHint)); + nameEditText.setHint(getString(R.string.LinkNameHint)); nameEditText.setHintTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText)); nameEditText.setLines(1); nameEditText.setPadding(dp(22), 0, dp(22), 0); @@ -588,23 +588,23 @@ public void afterTextChanged(Editable s) { dividerName = new TextInfoPrivacyCell(context); dividerName.setBackground(Theme.getThemedDrawableByKey(context, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); - dividerName.setText(getString("LinkNameHelp", R.string.LinkNameHelp)); + dividerName.setText(getString(R.string.LinkNameHelp)); linearLayout.addView(dividerName); if (type == EDIT_TYPE) { revokeLink = new TextSettingsCell(context); revokeLink.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); - revokeLink.setText(getString("RevokeLink", R.string.RevokeLink), false); + revokeLink.setText(getString(R.string.RevokeLink), false); revokeLink.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); revokeLink.setOnClickListener(view -> { AlertDialog.Builder builder2 = new AlertDialog.Builder(getParentActivity()); - builder2.setMessage(getString("RevokeAlert", R.string.RevokeAlert)); - builder2.setTitle(getString("RevokeLink", R.string.RevokeLink)); - builder2.setPositiveButton(getString("RevokeButton", R.string.RevokeButton), (dialogInterface2, i2) -> { + builder2.setMessage(getString(R.string.RevokeAlert)); + builder2.setTitle(getString(R.string.RevokeLink)); + builder2.setPositiveButton(getString(R.string.RevokeButton), (dialogInterface2, i2) -> { callback.revokeLink(inviteToEdit); finishFragment(); }); - builder2.setNegativeButton(getString("Cancel", R.string.Cancel), null); + builder2.setNegativeButton(getString(R.string.Cancel), null); showDialog(builder2.create()); }); @@ -845,7 +845,7 @@ private void chooseUses(int customUses) { String[] options = new String[dispalyedUses.size() + 1]; for (int i = 0; i < options.length; i++) { if (i == options.length - 1) { - options[i] = getString("NoLimit", R.string.NoLimit); + options[i] = getString(R.string.NoLimit); } else { options[i] = dispalyedUses.get(i).toString(); } @@ -877,7 +877,7 @@ private void chooseDate(int selectedDate) { String[] options = new String[dispalyedDates.size() + 1]; for (int i = 0; i < options.length; i++) { if (i == options.length - 1) { - options[i] = getString("NoLimit", R.string.NoLimit); + options[i] = getString(R.string.NoLimit); } else { if (dispalyedDates.get(i) == defaultDates[0]) { options[i] = LocaleController.formatPluralString("Hours", 1); @@ -887,7 +887,7 @@ private void chooseDate(int selectedDate) { options[i] = LocaleController.formatPluralString("Weeks", 1); } else { if (selectedDate < 86400L) { - options[i] = getString("MessageScheduleToday", R.string.MessageScheduleToday); + options[i] = getString(R.string.MessageScheduleToday); } else if (selectedDate < 364 * 86400L) { options[i] = LocaleController.getInstance().getFormatterScheduleDay().format(originDate * 1000L); } else { @@ -904,7 +904,7 @@ private void resetDates() { for (int i = 0; i < defaultDates.length; i++) { dispalyedDates.add(defaultDates[i]); } - String[] options = new String[]{ LocaleController.formatPluralString("Hours", 1), LocaleController.formatPluralString("Days", 1), LocaleController.formatPluralString("Weeks", 1), getString("NoLimit", R.string.NoLimit) }; + String[] options = new String[]{ LocaleController.formatPluralString("Hours", 1), LocaleController.formatPluralString("Days", 1), LocaleController.formatPluralString("Weeks", 1), getString(R.string.NoLimit) }; timeChooseView.setOptions(options.length - 1, options); } @@ -917,7 +917,7 @@ private void resetUses() { for (int i = 0; i < defaultUses.length; i++) { dispalyedUses.add(defaultUses[i]); } - String[] options = new String[]{ "1", "10", "100", getString("NoLimit", R.string.NoLimit) }; + String[] options = new String[]{ "1", "10", "100", getString(R.string.NoLimit) }; usesChooseView.setOptions(options.length - 1, options); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LiteModeSettingsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LiteModeSettingsActivity.java index b74028a81c..e643fa0c6e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LiteModeSettingsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LiteModeSettingsActivity.java @@ -86,7 +86,7 @@ public class LiteModeSettingsActivity extends BaseFragment { public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("PowerUsage", R.string.PowerUsage)); + actionBar.setTitle(LocaleController.getString(R.string.PowerUsage)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { @@ -117,7 +117,7 @@ public void onItemClick(int id) { if (item.viewType == VIEW_TYPE_SWITCH || item.viewType == VIEW_TYPE_CHECKBOX) { if (LiteMode.isPowerSaverApplied()) { - restrictBulletin = BulletinFactory.of(this).createSimpleBulletin(new BatteryDrawable(.1f, Color.WHITE, Theme.getColor(Theme.key_dialogSwipeRemove), 1.3f), LocaleController.getString("LiteBatteryRestricted", R.string.LiteBatteryRestricted)).show(); + restrictBulletin = BulletinFactory.of(this).createSimpleBulletin(new BatteryDrawable(.1f, Color.WHITE, Theme.getColor(Theme.key_dialogSwipeRemove), 1.3f), LocaleController.getString(R.string.LiteBatteryRestricted)).show(); return; } if (item.viewType == VIEW_TYPE_SWITCH && item.getFlagsCount() > 1 && (LocaleController.isRTL ? x > dp(19 + 37 + 19) : x < view.getMeasuredWidth() - dp(19 + 37 + 19))) { @@ -237,12 +237,12 @@ private void updateItems() { } items.add(Item.asHeader(LocaleController.getString("LiteOptionsTitle"))); - items.add(Item.asSwitch(R.drawable.msg2_sticker, LocaleController.getString("LiteOptionsStickers", R.string.LiteOptionsStickers), LiteMode.FLAGS_ANIMATED_STICKERS)); + items.add(Item.asSwitch(R.drawable.msg2_sticker, LocaleController.getString(R.string.LiteOptionsStickers), LiteMode.FLAGS_ANIMATED_STICKERS)); if (expanded[0]) { items.add(Item.asCheckbox(LocaleController.getString("LiteOptionsAutoplayKeyboard"), LiteMode.FLAG_ANIMATED_STICKERS_KEYBOARD)); items.add(Item.asCheckbox(LocaleController.getString("LiteOptionsAutoplayChat"), LiteMode.FLAG_ANIMATED_STICKERS_CHAT)); } - items.add(Item.asSwitch(R.drawable.msg2_smile_status, LocaleController.getString("LiteOptionsEmoji", R.string.LiteOptionsEmoji), LiteMode.FLAGS_ANIMATED_EMOJI)); + items.add(Item.asSwitch(R.drawable.msg2_smile_status, LocaleController.getString(R.string.LiteOptionsEmoji), LiteMode.FLAGS_ANIMATED_EMOJI)); if (expanded[1]) { items.add(Item.asCheckbox(LocaleController.getString("LiteOptionsAutoplayKeyboard"), LiteMode.FLAG_ANIMATED_EMOJI_KEYBOARD)); items.add(Item.asCheckbox(LocaleController.getString("LiteOptionsAutoplayReactions"), LiteMode.FLAG_ANIMATED_EMOJI_REACTIONS)); @@ -766,7 +766,7 @@ public CharSequence getContentDescription() { leftTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); leftTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText)); leftTextView.setGravity(Gravity.LEFT); - leftTextView.setText(LocaleController.getString("LiteBatteryDisabled", R.string.LiteBatteryDisabled)); + leftTextView.setText(LocaleController.getString(R.string.LiteBatteryDisabled)); valuesView.addView(leftTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.CENTER_VERTICAL)); middleTextView = new AnimatedTextView(context, false, true, true) { @@ -798,7 +798,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { rightTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); rightTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText)); rightTextView.setGravity(Gravity.RIGHT); - rightTextView.setText(LocaleController.getString("LiteBatteryEnabled", R.string.LiteBatteryEnabled)); + rightTextView.setText(LocaleController.getString(R.string.LiteBatteryEnabled)); valuesView.addView(rightTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT | Gravity.CENTER_VERTICAL)); addView(valuesView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL, 21, 52, 21, 0)); @@ -878,15 +878,15 @@ public void update() { middleTextView.cancelAnimation(); if (percent <= 0) { - middleTextView.setText(LocaleController.getString("LiteBatteryAlwaysDisabled", R.string.LiteBatteryAlwaysDisabled), !LocaleController.isRTL); + middleTextView.setText(LocaleController.getString(R.string.LiteBatteryAlwaysDisabled), !LocaleController.isRTL); } else if (percent >= 100) { - middleTextView.setText(LocaleController.getString("LiteBatteryAlwaysEnabled", R.string.LiteBatteryAlwaysEnabled), !LocaleController.isRTL); + middleTextView.setText(LocaleController.getString(R.string.LiteBatteryAlwaysEnabled), !LocaleController.isRTL); } else { batteryIcon.setFillValue(percent / 100F, true); - middleTextView.setText(AndroidUtilities.replaceCharSequence("%s", LocaleController.getString("LiteBatteryWhenBelow", R.string.LiteBatteryWhenBelow), TextUtils.concat(String.format("%d%% ", Math.round(percent)), batteryText)), !LocaleController.isRTL); + middleTextView.setText(AndroidUtilities.replaceCharSequence("%s", LocaleController.getString(R.string.LiteBatteryWhenBelow), TextUtils.concat(String.format("%d%% ", Math.round(percent)), batteryText)), !LocaleController.isRTL); } - headerOnView.setText((LiteMode.isPowerSaverApplied() ? LocaleController.getString("LiteBatteryEnabled", R.string.LiteBatteryEnabled) : LocaleController.getString("LiteBatteryDisabled", R.string.LiteBatteryDisabled)).toUpperCase()); + headerOnView.setText((LiteMode.isPowerSaverApplied() ? LocaleController.getString(R.string.LiteBatteryEnabled) : LocaleController.getString(R.string.LiteBatteryDisabled)).toUpperCase()); updateHeaderOnVisibility(percent > 0 && percent < 100); updateOnActive(percent >= 100); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LocationActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LocationActivity.java index 234673407e..05f3189e84 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LocationActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LocationActivity.java @@ -373,7 +373,7 @@ public void addInfoView(IMapsProvider.IMarker marker) { lastPressedMarkerView.addView(addressTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT), 18, 32, 18, 0)); nameTextView.setText(location.venue.title); - addressTextView.setText(LocaleController.getString("TapToSendLocation", R.string.TapToSendLocation)); + addressTextView.setText(LocaleController.getString(R.string.TapToSendLocation)); FrameLayout iconLayout = new FrameLayout(context); iconLayout.setBackground(Theme.createCircleDrawable(dp(36), LocationCell.getColorForIndex(location.num))); @@ -606,29 +606,29 @@ public void onItemClick(int id) { ActionBarMenu menu = actionBar.createMenu(); if (chatLocation != null) { - actionBar.setTitle(LocaleController.getString("ChatLocation", R.string.ChatLocation)); + actionBar.setTitle(LocaleController.getString(R.string.ChatLocation)); } else if (messageObject != null) { if (messageObject.isLiveLocation()) { - actionBar.setTitle(LocaleController.getString("AttachLiveLocation", R.string.AttachLiveLocation)); + actionBar.setTitle(LocaleController.getString(R.string.AttachLiveLocation)); otherItem = menu.addItem(0, R.drawable.ic_ab_other, getResourceProvider()); - otherItem.addSubItem(get_directions, R.drawable.filled_directions, LocaleController.getString("GetDirections", R.string.GetDirections)); + otherItem.addSubItem(get_directions, R.drawable.filled_directions, LocaleController.getString(R.string.GetDirections)); } else { if (messageObject.messageOwner.media.title != null && messageObject.messageOwner.media.title.length() > 0) { - actionBar.setTitle(LocaleController.getString("SharedPlace", R.string.SharedPlace)); + actionBar.setTitle(LocaleController.getString(R.string.SharedPlace)); } else { - actionBar.setTitle(LocaleController.getString("ChatLocation", R.string.ChatLocation)); + actionBar.setTitle(LocaleController.getString(R.string.ChatLocation)); } if (locationType != 3) { otherItem = menu.addItem(0, R.drawable.ic_ab_other, getResourceProvider()); - otherItem.addSubItem(open_in, R.drawable.msg_openin, LocaleController.getString("OpenInExternalApp", R.string.OpenInExternalApp)); + otherItem.addSubItem(open_in, R.drawable.msg_openin, LocaleController.getString(R.string.OpenInExternalApp)); if (!getLocationController().isSharingLocation(dialogId) && isSharingAllowed) { - otherItem.addSubItem(share_live_location, R.drawable.msg_location, LocaleController.getString("SendLiveLocationMenu", R.string.SendLiveLocationMenu)); + otherItem.addSubItem(share_live_location, R.drawable.msg_location, LocaleController.getString(R.string.SendLiveLocationMenu)); } - otherItem.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + otherItem.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); } } } else { - actionBar.setTitle(LocaleController.getString("ShareLocation", R.string.ShareLocation)); + actionBar.setTitle(LocaleController.getString(R.string.ShareLocation)); if (locationType != LOCATION_TYPE_GROUP) { overlayView = new MapOverlayView(context); @@ -689,8 +689,8 @@ public void onTextChanged(EditText editText) { searchAdapter.searchDelayed(text, userLocation); } }); - searchItem.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); - searchItem.setContentDescription(LocaleController.getString("Search", R.string.Search)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.Search)); + searchItem.setContentDescription(LocaleController.getString(R.string.Search)); EditTextBoldCursor editText = searchItem.getSearchField(); editText.setTextColor(getThemedColor(Theme.key_dialogTextBlack)); editText.setCursorColor(getThemedColor(Theme.key_dialogTextBlack)); @@ -789,11 +789,11 @@ public void getOutline(View view, Outline outline) { mapTypeButton.addSubItem(map_list_menu_satellite, R.drawable.msg_map, "Wikimedia", getResourceProvider()); mapTypeButton.addSubItem(map_list_menu_hybrid, R.drawable.msg_map, "Carto Dark", getResourceProvider()); } else { - mapTypeButton.addSubItem(map_list_menu_map, R.drawable.msg_map, LocaleController.getString("Map", R.string.Map), getResourceProvider()); - mapTypeButton.addSubItem(map_list_menu_satellite, R.drawable.msg_satellite, LocaleController.getString("Satellite", R.string.Satellite), getResourceProvider()); - mapTypeButton.addSubItem(map_list_menu_hybrid, R.drawable.msg_hybrid, LocaleController.getString("Hybrid", R.string.Hybrid), getResourceProvider()); + mapTypeButton.addSubItem(map_list_menu_map, R.drawable.msg_map, LocaleController.getString(R.string.Map), getResourceProvider()); + mapTypeButton.addSubItem(map_list_menu_satellite, R.drawable.msg_satellite, LocaleController.getString(R.string.Satellite), getResourceProvider()); + mapTypeButton.addSubItem(map_list_menu_hybrid, R.drawable.msg_hybrid, LocaleController.getString(R.string.Hybrid), getResourceProvider()); } - mapTypeButton.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + mapTypeButton.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); Drawable drawable = Theme.createSimpleSelectorCircleDrawable(dp(40), getThemedColor(Theme.key_location_actionBackground), getThemedColor(Theme.key_location_actionPressedBackground)); if (Build.VERSION.SDK_INT < 21) { Drawable shadowDrawable = context.getResources().getDrawable(R.drawable.floating_shadow_profile).mutate(); @@ -860,7 +860,7 @@ public void getOutline(View view, Outline outline) { locationButton.setScaleType(ImageView.ScaleType.CENTER); locationButton.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_location_actionActiveIcon), PorterDuff.Mode.MULTIPLY)); locationButton.setTag(Theme.key_location_actionActiveIcon); - locationButton.setContentDescription(LocaleController.getString("AccDescrMyLocation", R.string.AccDescrMyLocation)); + locationButton.setContentDescription(LocaleController.getString(R.string.AccDescrMyLocation)); FrameLayout.LayoutParams layoutParams1 = LayoutHelper.createFrame(Build.VERSION.SDK_INT >= 21 ? 40 : 44, Build.VERSION.SDK_INT >= 21 ? 40 : 44, Gravity.RIGHT | Gravity.BOTTOM, 0, 0, 12, 12); layoutParams1.bottomMargin += layoutParams.height - padding.top; mapViewClip.addView(locationButton, layoutParams1); @@ -925,7 +925,7 @@ public void getOutline(View view, Outline outline) { proximityButton.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_location_actionIcon), PorterDuff.Mode.MULTIPLY)); proximityButton.setBackgroundDrawable(drawable); proximityButton.setScaleType(ImageView.ScaleType.CENTER); - proximityButton.setContentDescription(LocaleController.getString("AccDescrLocationNotify", R.string.AccDescrLocationNotify)); + proximityButton.setContentDescription(LocaleController.getString(R.string.AccDescrLocationNotify)); mapViewClip.addView(proximityButton, LayoutHelper.createFrame(Build.VERSION.SDK_INT >= 21 ? 40 : 44, Build.VERSION.SDK_INT >= 21 ? 40 : 44, Gravity.RIGHT | Gravity.TOP, 0, 12 + 50, 12, 0)); proximityButton.setOnClickListener(v -> { if (getParentActivity() == null || myLocation == null || !checkGpsEnabled() || map == null) { @@ -1007,7 +1007,7 @@ public void getOutline(View view, Outline outline) { emptyTitleTextView.setGravity(Gravity.CENTER); emptyTitleTextView.setTypeface(AndroidUtilities.bold()); emptyTitleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 17); - emptyTitleTextView.setText(LocaleController.getString("NoPlacesFound", R.string.NoPlacesFound)); + emptyTitleTextView.setText(LocaleController.getString(R.string.NoPlacesFound)); emptyView.addView(emptyTitleTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 11, 0, 0)); emptySubtitleTextView = new TextView(context); @@ -1158,7 +1158,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { ActionBarPopupWindow.ActionBarPopupWindowLayout popupLayout = new ActionBarPopupWindow.ActionBarPopupWindowLayout(context); ActionBarMenuSubItem cell = new ActionBarMenuSubItem(getParentActivity(), true, true, getResourceProvider()); cell.setMinimumWidth(dp(200)); - cell.setTextAndIcon(LocaleController.getString("GetDirections", R.string.GetDirections), R.drawable.filled_directions); + cell.setTextAndIcon(LocaleController.getString(R.string.GetDirections), R.drawable.filled_directions); cell.setOnClickListener(e -> { openDirections(location); if (popupWindow != null) { @@ -1715,10 +1715,10 @@ private void openProximityAlert() { LocationController.SharingLocationInfo info = getLocationController().getSharingLocationInfo(dialogId); if (info == null) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("ShareLocationAlertTitle", R.string.ShareLocationAlertTitle)); - builder.setMessage(LocaleController.getString("ShareLocationAlertText", R.string.ShareLocationAlertText)); - builder.setPositiveButton(LocaleController.getString("ShareLocationAlertButton", R.string.ShareLocationAlertButton), (dialog, id) -> shareLiveLocation(user, 900, radius)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.ShareLocationAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.ShareLocationAlertText)); + builder.setPositiveButton(LocaleController.getString(R.string.ShareLocationAlertButton), (dialog, id) -> shareLiveLocation(user, 900, radius)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); return false; } @@ -2120,8 +2120,8 @@ private boolean checkGpsEnabled() { if (!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); builder.setTopAnimation(R.raw.permission_request_location, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, getThemedColor(Theme.key_dialogTopBackground)); - builder.setMessage(LocaleController.getString("GpsDisabledAlertText", R.string.GpsDisabledAlertText)); - builder.setPositiveButton(LocaleController.getString("ConnectingToProxyEnable", R.string.ConnectingToProxyEnable), (dialog, id) -> { + builder.setMessage(LocaleController.getString(R.string.GpsDisabledAlertText)); + builder.setPositiveButton(LocaleController.getString(R.string.ConnectingToProxyEnable), (dialog, id) -> { if (getParentActivity() == null) { return; } @@ -2131,7 +2131,7 @@ private boolean checkGpsEnabled() { } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); return false; } @@ -2179,11 +2179,11 @@ private void showPermissionAlert(boolean byButton) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); builder.setTopAnimation(R.raw.permission_request_location, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, getThemedColor(Theme.key_dialogTopBackground)); if (byButton) { - builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString("PermissionNoLocationNavigation", R.string.PermissionNoLocationNavigation))); + builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PermissionNoLocationNavigation))); } else { - builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString("PermissionNoLocationFriends", R.string.PermissionNoLocationFriends))); + builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PermissionNoLocationFriends))); } - builder.setNegativeButton(LocaleController.getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.PermissionOpenSettings), (dialog, which) -> { if (getParentActivity() == null) { return; } @@ -2195,7 +2195,7 @@ private void showPermissionAlert(boolean byButton) { FileLog.e(e); } }); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); showDialog(builder.create()); } @@ -2243,7 +2243,7 @@ private void maybeShowProximityHint() { TLRPC.User user = getMessagesController().getUser(dialogId); hintView.setText(LocaleController.formatString("ProximityTooltioUser", R.string.ProximityTooltioUser, UserObject.getFirstName(user))); } else { - hintView.setText(LocaleController.getString("ProximityTooltioGroup", R.string.ProximityTooltioGroup)); + hintView.setText(LocaleController.getString(R.string.ProximityTooltioGroup)); } hintView.show(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java index 0b1feee24e..65b548bf06 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java @@ -3657,7 +3657,7 @@ public LoginActivitySmsView(Context context, @AuthType int type) { } FrameLayout centerContainer = null; if (currentType == AUTH_TYPE_MISSED_CALL) { - titleTextView.setText(overrideTitle != null ? overrideTitle : getString("MissedCallDescriptionTitle", R.string.MissedCallDescriptionTitle)); + titleTextView.setText(overrideTitle != null ? overrideTitle : getString(R.string.MissedCallDescriptionTitle)); FrameLayout frameLayout = new FrameLayout(context); missedCallArrowIcon = new ImageView(context); @@ -3675,7 +3675,7 @@ public LoginActivitySmsView(Context context, @AuthType int type) { missedCallDescriptionSubtitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); missedCallDescriptionSubtitle.setGravity(Gravity.CENTER_HORIZONTAL); missedCallDescriptionSubtitle.setLineSpacing(AndroidUtilities.dp(2), 1.0f); - missedCallDescriptionSubtitle.setText(AndroidUtilities.replaceTags(getString("MissedCallDescriptionSubtitle", R.string.MissedCallDescriptionSubtitle))); + missedCallDescriptionSubtitle.setText(AndroidUtilities.replaceTags(getString(R.string.MissedCallDescriptionSubtitle))); addView(missedCallDescriptionSubtitle, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 36, 16, 36, 0)); @@ -3704,7 +3704,7 @@ protected void processNextPressed() { missedCallDescriptionSubtitle2.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); missedCallDescriptionSubtitle2.setGravity(Gravity.CENTER_HORIZONTAL); missedCallDescriptionSubtitle2.setLineSpacing(AndroidUtilities.dp(2), 1.0f); - missedCallDescriptionSubtitle2.setText(AndroidUtilities.replaceTags(getString("MissedCallDescriptionSubtitle2", R.string.MissedCallDescriptionSubtitle2))); + missedCallDescriptionSubtitle2.setText(AndroidUtilities.replaceTags(getString(R.string.MissedCallDescriptionSubtitle2))); addView(missedCallDescriptionSubtitle2, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 36, 28, 36, 12)); } else if (currentType == AUTH_TYPE_FLASH_CALL) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LogoutActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LogoutActivity.java index 570adaadbb..bcae119d73 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LogoutActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LogoutActivity.java @@ -90,7 +90,7 @@ public boolean onFragmentCreate() { @Override public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); - actionBar.setTitle(LocaleController.getString("LogOutTitle", R.string.LogOutTitle)); + actionBar.setTitle(LocaleController.getString(R.string.LogOutTitle)); if (AndroidUtilities.isTablet()) { actionBar.setOccupyStatusBar(false); } @@ -148,10 +148,10 @@ public void onItemClick(int id) { public static AlertDialog makeLogOutDialog(Context context, int currentAccount) { AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setMessage(LocaleController.getString("AreYouSureLogout", R.string.AreYouSureLogout)); - builder.setTitle(LocaleController.getString("LogOut", R.string.LogOut)); - builder.setPositiveButton(LocaleController.getString("LogOut", R.string.LogOut), (dialogInterface, i) -> MessagesController.getInstance(currentAccount).performLogout(1)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setMessage(LocaleController.getString(R.string.AreYouSureLogout)); + builder.setTitle(LocaleController.getString(R.string.LogOut)); + builder.setPositiveButton(LocaleController.getString(R.string.LogOut), (dialogInterface, i) -> MessagesController.getInstance(currentAccount).performLogout(1)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); if (button != null) { @@ -192,22 +192,22 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 0: { HeaderCell view = (HeaderCell) holder.itemView; if (position == alternativeHeaderRow) { - view.setText(LocaleController.getString("AlternativeOptions", R.string.AlternativeOptions)); + view.setText(LocaleController.getString(R.string.AlternativeOptions)); } break; } case 1: { TextDetailSettingsCell view = (TextDetailSettingsCell) holder.itemView; if (position == addAccountRow) { - view.setTextAndValueAndIcon(LocaleController.getString("AddAnotherAccount", R.string.AddAnotherAccount), LocaleController.getString("AddAnotherAccountInfo", R.string.AddAnotherAccountInfo), R.drawable.actions_addmember2, true); + view.setTextAndValueAndIcon(LocaleController.getString(R.string.AddAnotherAccount), LocaleController.getString(R.string.AddAnotherAccountInfo), R.drawable.msg_contact_add, true); } else if (position == passcodeRow) { - view.setTextAndValueAndIcon(LocaleController.getString("SetPasscode", R.string.SetPasscode), LocaleController.getString("SetPasscodeInfo", R.string.SetPasscodeInfo), R.drawable.menu_passcode, true); + view.setTextAndValueAndIcon(LocaleController.getString(R.string.SetPasscode), LocaleController.getString(R.string.SetPasscodeInfo), R.drawable.msg_permissions, true); } else if (position == cacheRow) { - view.setTextAndValueAndIcon(LocaleController.getString("ClearCache", R.string.ClearCache), LocaleController.getString("ClearCacheInfo", R.string.ClearCacheInfo), R.drawable.menu_clearcache, true); + view.setTextAndValueAndIcon(LocaleController.getString(R.string.ClearCache), LocaleController.getString(R.string.ClearCacheInfo), R.drawable.msg_clearcache, true); } else if (position == phoneRow) { - view.setTextAndValueAndIcon(LocaleController.getString("ChangePhoneNumber", R.string.ChangePhoneNumber), LocaleController.getString("ChangePhoneNumberInfo", R.string.ChangePhoneNumberInfo), R.drawable.menu_newphone, true); + view.setTextAndValueAndIcon(LocaleController.getString(R.string.ChangePhoneNumber), LocaleController.getString(R.string.ChangePhoneNumberInfo), R.drawable.msg_newphone, true); } else if (position == supportRow) { - view.setTextAndValueAndIcon(LocaleController.getString("ContactSupport", R.string.ContactSupport), LocaleController.getString("ContactSupportInfo", R.string.ContactSupportInfo), R.drawable.menu_support, false); + view.setTextAndValueAndIcon(LocaleController.getString(R.string.ContactSupport), LocaleController.getString(R.string.ContactSupportInfo), R.drawable.msg_help, false); } break; } @@ -215,14 +215,14 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TextSettingsCell view = (TextSettingsCell) holder.itemView; if (position == logoutRow) { view.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); - view.setText(LocaleController.getString("LogOutTitle", R.string.LogOutTitle), false); + view.setText(LocaleController.getString(R.string.LogOutTitle), false); } break; } case 4: { TextInfoPrivacyCell view = (TextInfoPrivacyCell) holder.itemView; if (position == logoutSectionRow) { - view.setText(LocaleController.getString("LogOutInfo", R.string.LogOutInfo)); + view.setText(LocaleController.getString(R.string.LogOutInfo)); } break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ManageLinksActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ManageLinksActivity.java index 2ee97e1d40..926aa751fe 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ManageLinksActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ManageLinksActivity.java @@ -540,7 +540,7 @@ private void updateRows(boolean notify) { public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(getString("InviteLinks", R.string.InviteLinks)); + actionBar.setTitle(getString(R.string.InviteLinks)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { @@ -628,9 +628,9 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(getString("DeleteAllRevokedLinks", R.string.DeleteAllRevokedLinks)); - builder.setMessage(getString("DeleteAllRevokedLinkHelp", R.string.DeleteAllRevokedLinkHelp)); - builder.setPositiveButton(getString("Delete", R.string.Delete), (dialogInterface2, i2) -> { + builder.setTitle(getString(R.string.DeleteAllRevokedLinks)); + builder.setMessage(getString(R.string.DeleteAllRevokedLinkHelp)); + builder.setPositiveButton(getString(R.string.Delete), (dialogInterface2, i2) -> { TLRPC.TL_messages_deleteRevokedExportedChatInvites req = new TLRPC.TL_messages_deleteRevokedExportedChatInvites(); req.peer = getMessagesController().getInputPeer(-currentChatId); if (adminId == getUserConfig().getClientUserId()) { @@ -648,7 +648,7 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { } })); }); - builder.setNegativeButton(getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(getString(R.string.Cancel), null); showDialog(builder.create()); } else if (position >= adminsStartRow && position < adminsEndRow) { int p = position - adminsStartRow; @@ -715,7 +715,7 @@ public HintInnerCell(Context context) { messageTextView.setTextColor(Theme.getColor(Theme.key_chats_message)); messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); messageTextView.setGravity(Gravity.CENTER); - messageTextView.setText(isChannel ? getString("PrimaryLinkHelpChannel", R.string.PrimaryLinkHelpChannel) : getString("PrimaryLinkHelp", R.string.PrimaryLinkHelp)); + messageTextView.setText(getString(isChannel ? R.string.PrimaryLinkHelpChannel : R.string.PrimaryLinkHelp)); addView(messageTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT, 52, 143, 52, 18)); } @@ -814,7 +814,7 @@ public void showUsersForPermanentLink() { case 8: TextSettingsCell revokeAll = new TextSettingsCell(mContext); revokeAll.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); - revokeAll.setText(getString("DeleteAllRevokedLinks", R.string.DeleteAllRevokedLinks), false); + revokeAll.setText(getString(R.string.DeleteAllRevokedLinks), false); revokeAll.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); view = revokeAll; break; @@ -864,18 +864,18 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { HeaderCell headerCell = (HeaderCell) holder.itemView; if (position == permanentLinkHeaderRow) { if (isPublic && adminId == getAccountInstance().getUserConfig().clientUserId) { - headerCell.setText(getString("PublicLink", R.string.PublicLink)); + headerCell.setText(getString(R.string.PublicLink)); } else if (adminId == getAccountInstance().getUserConfig().clientUserId) { - headerCell.setText(getString("ChannelInviteLinkTitle", R.string.ChannelInviteLinkTitle)); + headerCell.setText(getString(R.string.ChannelInviteLinkTitle)); } else { - headerCell.setText(getString("PermanentLinkForThisAdmin", R.string.PermanentLinkForThisAdmin)); + headerCell.setText(getString(R.string.PermanentLinkForThisAdmin)); } } else if (position == revokedHeader) { - headerCell.setText(getString("RevokedLinks", R.string.RevokedLinks)); + headerCell.setText(getString(R.string.RevokedLinks)); } else if (position == linksHeaderRow) { - headerCell.setText(getString("LinksCreatedByThisAdmin", R.string.LinksCreatedByThisAdmin)); + headerCell.setText(getString(R.string.LinksCreatedByThisAdmin)); } else if (position == adminsHeaderRow) { - headerCell.setText(getString("LinksCreatedByOtherAdmins", R.string.LinksCreatedByOtherAdmins)); + headerCell.setText(getString(R.string.LinksCreatedByOtherAdmins)); } break; case 3: @@ -886,7 +886,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { drawable2.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_checkboxCheck), PorterDuff.Mode.MULTIPLY)); CombinedDrawable combinedDrawable = new CombinedDrawable(drawable1, drawable2); - textCell.setTextAndIcon(getString("CreateNewLink", R.string.CreateNewLink), combinedDrawable, !invites.isEmpty()); + textCell.setTextAndIcon(getString(R.string.CreateNewLink), combinedDrawable, !invites.isEmpty()); break; case 5: TLRPC.TL_chatInviteExported invite; @@ -1016,7 +1016,7 @@ private void revokePermanent() { DiffCallback callback = saveListState(); revokedInvites.add(0, oldInvite); updateRecyclerViewAnimated(callback); - BulletinFactory.of(this).createSimpleBulletin(R.raw.linkbroken, getString("InviteRevokedHint", R.string.InviteRevokedHint)).show(); + BulletinFactory.of(this).createSimpleBulletin(R.raw.linkbroken, getString(R.string.InviteRevokedHint)).show(); } })); @@ -1099,10 +1099,10 @@ public LinkCell(@NonNull Context context) { options.add(R.drawable.msg_delete, getString(R.string.Delete), true, () -> { TLRPC.TL_chatInviteExported inviteFinal = invite; new AlertDialog.Builder(getParentActivity()) - .setTitle(getString("DeleteLink", R.string.DeleteLink)) - .setMessage(getString("DeleteLinkHelp", R.string.DeleteLinkHelp)) - .setPositiveButton(getString("Delete", R.string.Delete), (dialogInterface2, i2) -> deleteLink(inviteFinal)) - .setNegativeButton(getString("Cancel", R.string.Cancel), null) + .setTitle(getString(R.string.DeleteLink)) + .setMessage(getString(R.string.DeleteLinkHelp)) + .setPositiveButton(getString(R.string.Delete), (dialogInterface2, i2) -> deleteLink(inviteFinal)) + .setNegativeButton(getString(R.string.Cancel), null) .show(); }); } else { @@ -1147,10 +1147,10 @@ protected void onSend(LongSparseArray dids, int count, TLRPC.TL_fo options.addIf(canEdit, R.drawable.msg_delete, getString(R.string.RevokeLink), true, () -> { TLRPC.TL_chatInviteExported inviteFinal = invite; new AlertDialog.Builder(getParentActivity()) - .setMessage(getString("RevokeAlert", R.string.RevokeAlert)) - .setTitle(getString("RevokeLink", R.string.RevokeLink)) - .setPositiveButton(getString("RevokeButton", R.string.RevokeButton), (dialogInterface2, i2) -> revokeLink(inviteFinal)) - .setNegativeButton(getString("Cancel", R.string.Cancel), null) + .setMessage(getString(R.string.RevokeAlert)) + .setTitle(getString(R.string.RevokeLink)) + .setPositiveButton(getString(R.string.RevokeButton), (dialogInterface2, i2) -> revokeLink(inviteFinal)) + .setNegativeButton(getString(R.string.Cancel), null) .show(); }); } @@ -1403,7 +1403,7 @@ public void setLink(TLRPC.TL_chatInviteExported invite, int position) { DotDividerSpan dotDividerSpan = new DotDividerSpan(); dotDividerSpan.setTopPadding(dp(1.5f)); spannableStringBuilder.append(" . ").setSpan(dotDividerSpan, spannableStringBuilder.length() - 3, spannableStringBuilder.length() - 2, 0); - spannableStringBuilder.append(getString("Permanent", R.string.Permanent)); + spannableStringBuilder.append(getString(R.string.Permanent)); subtitleView.setText(spannableStringBuilder); } else if (invite.expired || invite.revoked) { if (invite.revoked && invite.usage == 0) { @@ -1414,9 +1414,9 @@ public void setLink(TLRPC.TL_chatInviteExported invite, int position) { dotDividerSpan.setTopPadding(dp(1.5f)); spannableStringBuilder.append(" . ").setSpan(dotDividerSpan, spannableStringBuilder.length() - 3, spannableStringBuilder.length() - 2, 0); if (!invite.revoked && invite.usage_limit > 0 && invite.usage >= invite.usage_limit) { - spannableStringBuilder.append(getString("LinkLimitReached", R.string.LinkLimitReached)); + spannableStringBuilder.append(getString(R.string.LinkLimitReached)); } else { - spannableStringBuilder.append(invite.revoked ? getString("Revoked", R.string.Revoked) : getString("Expired", R.string.Expired)); + spannableStringBuilder.append(getString(invite.revoked ? R.string.Revoked : R.string.Expired)); } subtitleView.setText(spannableStringBuilder); } else if (invite.expire_date > 0) { @@ -1499,7 +1499,7 @@ public void revokeLink(TLRPC.TL_chatInviteExported invite) { } } if (getParentActivity() != null) { - BulletinFactory.of(this).createSimpleBulletin(R.raw.linkbroken, getString("InviteRevokedHint", R.string.InviteRevokedHint)).show(); + BulletinFactory.of(this).createSimpleBulletin(R.raw.linkbroken, getString(R.string.InviteRevokedHint)).show(); } } })); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/MemberRequestsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/MemberRequestsActivity.java index a6040eb29d..c736b5a157 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/MemberRequestsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/MemberRequestsActivity.java @@ -44,7 +44,7 @@ public void onItemClick(int id) { } }); actionBar.setBackButtonImage(R.drawable.ic_ab_back); - actionBar.setTitle(delegate.isChannel ? LocaleController.getString("SubscribeRequests", R.string.SubscribeRequests) : LocaleController.getString("MemberRequests", R.string.MemberRequests)); + actionBar.setTitle(delegate.isChannel ? LocaleController.getString(R.string.SubscribeRequests) : LocaleController.getString(R.string.MemberRequests)); ActionBarMenu menu = actionBar.createMenu(); ActionBarMenuItem searchItem = menu.addItem(searchMenuItem, R.drawable.ic_ab_search) @@ -67,7 +67,7 @@ public void onTextChanged(EditText editText) { delegate.setQuery(editText.getText().toString()); } }); - searchItem.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.Search)); searchItem.setVisibility(View.GONE); FrameLayout rootLayout = delegate.getRootLayout(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/MessageSeenView.java b/TMessagesProj/src/main/java/org/telegram/ui/MessageSeenView.java index 7f172e396f..bbce646c97 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/MessageSeenView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/MessageSeenView.java @@ -271,7 +271,7 @@ private void updateView() { titleView.setText(ContactsController.formatName(users.get(0))); } else { if (peerIds.size() == 0) { - titleView.setText(LocaleController.getString("NobodyViewed", R.string.NobodyViewed)); + titleView.setText(LocaleController.getString(R.string.NobodyViewed)); } else { titleView.setText(LocaleController.formatPluralString(isVoice ? "MessagePlayed" : "MessageSeen", peerIds.size())); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/MessageSendPreview.java b/TMessagesProj/src/main/java/org/telegram/ui/MessageSendPreview.java index 781f3a7027..f83e566ddd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/MessageSendPreview.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/MessageSendPreview.java @@ -511,6 +511,7 @@ public boolean drawChild(Canvas canvas, View child, long drawingTime) { } if ((cell.getCurrentPosition() != null && ((cell.getCurrentPosition().flags & MessageObject.POSITION_FLAG_BOTTOM) != 0 && (cell.getCurrentPosition().flags & MessageObject.POSITION_FLAG_LEFT) != 0 || cell.getCurrentMessagesGroup() != null && cell.getCurrentMessagesGroup().isDocuments))) { cell.drawReactionsLayout(canvas, cell.getAlpha(), null); + cell.drawCommentLayout(canvas, cell.getAlpha()); } if (cell.getCurrentPosition() != null) { cell.drawNamesLayout(canvas, cell.getAlpha()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/MessageStatisticActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/MessageStatisticActivity.java index 8d7059aad2..36f6188d11 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/MessageStatisticActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/MessageStatisticActivity.java @@ -264,7 +264,7 @@ private boolean checkIsDeletedStory(MessageObject message) { return false; } if (message.storyItem instanceof TL_stories.TL_storyItemDeleted) { - BulletinFactory.of(this).createSimpleBulletin(R.raw.story_bomb1, LocaleController.getString("StoryNotFound", R.string.StoryNotFound)).show(); + BulletinFactory.of(this).createSimpleBulletin(R.raw.story_bomb1, LocaleController.getString(R.string.StoryNotFound)).show(); return true; } return false; @@ -279,7 +279,7 @@ public View createView(Context context) { FrameLayout frameLayout = (FrameLayout) fragmentView; emptyView = new EmptyTextProgressView(context); - emptyView.setText(LocaleController.getString("NoResult", R.string.NoResult)); + emptyView.setText(LocaleController.getString(R.string.NoResult)); emptyView.setVisibility(View.GONE); progressLayout = new LinearLayout(context); @@ -295,14 +295,14 @@ public View createView(Context context) { loadingTitle.setTypeface(AndroidUtilities.bold()); loadingTitle.setTextColor(Theme.getColor(Theme.key_player_actionBarTitle, getResourceProvider())); loadingTitle.setTag(Theme.key_player_actionBarTitle); - loadingTitle.setText(LocaleController.getString("LoadingStats", R.string.LoadingStats)); + loadingTitle.setText(LocaleController.getString(R.string.LoadingStats)); loadingTitle.setGravity(Gravity.CENTER_HORIZONTAL); TextView loadingSubtitle = new TextView(context); loadingSubtitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); loadingSubtitle.setTextColor(Theme.getColor(Theme.key_player_actionBarSubtitle, getResourceProvider())); loadingSubtitle.setTag(Theme.key_player_actionBarSubtitle); - loadingSubtitle.setText(LocaleController.getString("LoadingStatsDescription", R.string.LoadingStatsDescription)); + loadingSubtitle.setText(LocaleController.getString(R.string.LoadingStatsDescription)); loadingSubtitle.setGravity(Gravity.CENTER_HORIZONTAL); progressLayout.addView(imageView, LayoutHelper.createLinear(120, 120, Gravity.CENTER_HORIZONTAL, 0, 0, 0, 20)); @@ -355,10 +355,10 @@ public View createView(Context context) { final ArrayList icons = new ArrayList<>(); AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), getResourceProvider()); if (message.isStory()) { - items.add(isDialog ? LocaleController.getString("OpenProfile", R.string.OpenProfile) : LocaleController.getString("OpenChannel2", R.string.OpenChannel2)); + items.add(isDialog ? LocaleController.getString(R.string.OpenProfile) : LocaleController.getString(R.string.OpenChannel2)); icons.add(isDialog ? R.drawable.msg_openprofile : R.drawable.msg_channel); } else { - items.add(LocaleController.getString("ViewMessage", R.string.ViewMessage)); + items.add(LocaleController.getString(R.string.ViewMessage)); icons.add(R.drawable.msg_msgbubble3); } actions.add(0); @@ -563,7 +563,7 @@ public void onItemClick(final int id) { private void setAvatarAndTitle() { if (messageObject.isStory()) { - avatarContainer.setTitle(LocaleController.getString("StoryStatistics", R.string.StoryStatistics)); + avatarContainer.setTitle(LocaleController.getString(R.string.StoryStatistics)); avatarContainer.hideSubtitle(); avatarContainer.allowDrawStories = true; avatarContainer.setStoriesForceState(StoriesUtilities.STATE_HAS_UNREAD); @@ -578,7 +578,7 @@ private void setAvatarAndTitle() { avatarContainer.getAvatarImageView().setScaleY(0.96f); } } else { - avatarContainer.setTitle(LocaleController.getString("PostStatistics", R.string.PostStatistics)); + avatarContainer.setTitle(LocaleController.getString(R.string.PostStatistics)); TLRPC.Chat chatLocal = getMessagesController().getChat(chatId); if (chatLocal != null && !hasThumb) { avatarContainer.setChatAvatar(chatLocal); @@ -594,7 +594,7 @@ private void updateMenu() { ActionBarMenu menu = actionBar.createMenu(); menu.clearItems(); ActionBarMenuItem headerItem = menu.addItem(0, R.drawable.ic_ab_other); - headerItem.addSubItem(1, R.drawable.msg_stats, LocaleController.getString("ViewChannelStats", R.string.ViewChannelStats)); + headerItem.addSubItem(1, R.drawable.msg_stats, LocaleController.getString(R.string.ViewChannelStats)); } } @@ -744,8 +744,8 @@ private void loadStat() { reactions_by_emotion_graph = res.reactions_by_emotion_graph; } - interactionsViewData = StatisticActivity.createViewData(views_graph, LocaleController.getString("ViewsAndSharesChartTitle", R.string.ViewsAndSharesChartTitle), 1, false); - reactionsByEmotionData = StatisticActivity.createViewData(reactions_by_emotion_graph, LocaleController.getString("ReactionsByEmotionChartTitle", R.string.ReactionsByEmotionChartTitle), 2, false); + interactionsViewData = StatisticActivity.createViewData(views_graph, LocaleController.getString(R.string.ViewsAndSharesChartTitle), 1, false); + reactionsByEmotionData = StatisticActivity.createViewData(reactions_by_emotion_graph, LocaleController.getString(R.string.ReactionsByEmotionChartTitle), 2, false); if (interactionsViewData != null && interactionsViewData.chartData.x.length <= 5) { statsLoaded = false; TL_stats.TL_loadAsyncGraph request = new TL_stats.TL_loadAsyncGraph(); @@ -970,7 +970,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (item.isStory()) { object = DialogObject.isUserDialog(did) ? getMessagesController().getUser(did) : getMessagesController().getChat(-did); boolean isZeroViews = item.storyItem.views == null || item.storyItem.views.views_count == 0; - status = isZeroViews ? LocaleController.getString("NoViews", R.string.NoViews) : LocaleController.formatPluralString("Views", item.storyItem.views.views_count); + status = isZeroViews ? LocaleController.getString(R.string.NoViews) : LocaleController.formatPluralString("Views", item.storyItem.views.views_count); userCell.setData(object, null, status, position != endRow - 1); userCell.setStoryItem(item.storyItem, v -> { if (checkIsDeletedStory(item)) { @@ -1126,7 +1126,7 @@ public void setData() { } primary[0].setText(AndroidUtilities.formatWholeNumber(views, 0)); - title[0].setText(LocaleController.getString("StatisticViews", R.string.StatisticViews)); + title[0].setText(LocaleController.getString(R.string.StatisticViews)); primary[1].setText(AndroidUtilities.formatWholeNumber(publicChats, 0)); title[1].setText(LocaleController.formatString("PublicShares", R.string.PublicShares)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/MultiContactsSelectorBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/MultiContactsSelectorBottomSheet.java index 1334911410..c8761049a1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/MultiContactsSelectorBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/MultiContactsSelectorBottomSheet.java @@ -170,7 +170,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { }; searchField.setBackgroundColor(getThemedColor(Theme.key_dialogBackground)); searchField.setOnSearchTextChange(this::onSearch); - searchField.setHintText(LocaleController.getString("Search", R.string.Search), false); + searchField.setHintText(LocaleController.getString(R.string.Search), false); sectionCell = new View(getContext()) { @Override @@ -363,9 +363,9 @@ private void updateActionButton(boolean animated) { SpannableStringBuilder stringBuilder = new SpannableStringBuilder(); if (selectedIds.size() == 0) { stringBuilder.append("d").setSpan(recipientsBtnSpaceSpan, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - stringBuilder.append(LocaleController.getString("ChooseUsers", R.string.ChooseUsers)); + stringBuilder.append(LocaleController.getString(R.string.ChooseUsers)); } else { - stringBuilder.append(LocaleController.getString("GiftPremiumProceedBtn", R.string.GiftPremiumProceedBtn)); + stringBuilder.append(LocaleController.getString(R.string.GiftPremiumProceedBtn)); } actionButton.setCount(selectedIds.size(), true); actionButton.setText(stringBuilder, animated, false); @@ -431,7 +431,7 @@ public void updateItems(boolean animated, boolean notify) { } if (!userItems.isEmpty()) { h += dp(32); - items.add(SelectorAdapter.Item.asTopSection(LocaleController.getString("GiftPremiumFrequentContacts", R.string.GiftPremiumFrequentContacts))); + items.add(SelectorAdapter.Item.asTopSection(LocaleController.getString(R.string.GiftPremiumFrequentContacts))); items.addAll(userItems); } } @@ -481,7 +481,7 @@ public void onConfigurationChanged(Configuration newConfig) { @Override protected CharSequence getTitle() { - return LocaleController.getString("ChooseUsers", R.string.ChooseUsers); + return LocaleController.getString(R.string.ChooseUsers); } @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/NewContactBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/NewContactBottomSheet.java index 5bac35160c..d8410d7f2d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/NewContactBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/NewContactBottomSheet.java @@ -131,7 +131,7 @@ public View createView(Context context) { firstNameField = new OutlineEditText(context); firstNameField.getEditText().setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); firstNameField.getEditText().setImeOptions(EditorInfo.IME_ACTION_NEXT); - firstNameField.setHint(LocaleController.getString("FirstName", R.string.FirstName)); + firstNameField.setHint(LocaleController.getString(R.string.FirstName)); if (initialFirstName != null) { firstNameField.getEditText().setText(initialFirstName); initialFirstName = null; @@ -150,7 +150,7 @@ public View createView(Context context) { lastNameField.setBackground(null); lastNameField.getEditText().setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); lastNameField.getEditText().setImeOptions(EditorInfo.IME_ACTION_NEXT); - lastNameField.setHint(LocaleController.getString("LastName", R.string.LastName)); + lastNameField.setHint(LocaleController.getString(R.string.LastName)); if (initialLastName != null) { lastNameField.getEditText().setText(initialLastName); initialLastName = null; @@ -604,7 +604,7 @@ public void afterTextChanged(Editable s) { doneButton.setGravity(Gravity.CENTER); doneButton.setLines(1); doneButton.setSingleLine(true); - doneButton.setText(LocaleController.getString("CreateContact", R.string.CreateContact)); + doneButton.setText(LocaleController.getString(R.string.CreateContact)); doneButton.setTextColor(parentFragment.getThemedColor(Theme.key_featuredStickers_buttonText)); doneButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); doneButton.setTypeface(AndroidUtilities.bold()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/NotificationPermissionDialog.java b/TMessagesProj/src/main/java/org/telegram/ui/NotificationPermissionDialog.java index 599bb9f6ef..2142fad08b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/NotificationPermissionDialog.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/NotificationPermissionDialog.java @@ -47,7 +47,7 @@ public class NotificationPermissionDialog extends BottomSheet implements Notific private RLottieImageView rLottieImageView; private Utilities.Callback whenGranted; - public NotificationPermissionDialog(Context context, Utilities.Callback whenGranted) { + public NotificationPermissionDialog(Context context, boolean settings, Utilities.Callback whenGranted) { super(context, false); this.whenGranted = whenGranted; @@ -76,7 +76,7 @@ public NotificationPermissionDialog(Context context, Utilities.Callback textView.setTypeface(AndroidUtilities.bold()); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); textView.setGravity(Gravity.CENTER_HORIZONTAL); - textView.setText(LocaleController.getString("NotificationsPermissionAlertTitle")); + textView.setText(LocaleController.getString(R.string.NotificationsPermissionAlertTitle)); textView.setPadding(AndroidUtilities.dp(30), 0, AndroidUtilities.dp(30), 0); linearLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -84,19 +84,19 @@ public NotificationPermissionDialog(Context context, Utilities.Callback textView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); textView.setGravity(Gravity.CENTER_HORIZONTAL); - textView.setText(LocaleController.getString("NotificationsPermissionAlertSubtitle")); + textView.setText(LocaleController.getString(R.string.NotificationsPermissionAlertSubtitle)); textView.setPadding(AndroidUtilities.dp(30), AndroidUtilities.dp(10), AndroidUtilities.dp(30), AndroidUtilities.dp(21)); linearLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); - linearLayout.addView(new SectionView(context, R.drawable.msg_message_s, LocaleController.getString("NotificationsPermissionAlert1")), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); - linearLayout.addView(new SectionView(context, R.drawable.msg_members_list2, LocaleController.getString("NotificationsPermissionAlert2")), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); - linearLayout.addView(new SectionView(context, R.drawable.msg_customize_s, LocaleController.getString("NotificationsPermissionAlert3")), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + linearLayout.addView(new SectionView(context, R.drawable.msg_message_s, LocaleController.getString(R.string.NotificationsPermissionAlert1)), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + linearLayout.addView(new SectionView(context, R.drawable.msg_members_list2, LocaleController.getString(R.string.NotificationsPermissionAlert2)), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + linearLayout.addView(new SectionView(context, R.drawable.msg_customize_s, LocaleController.getString(R.string.NotificationsPermissionAlert3)), LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); setCustomView(linearLayout); fixNavigationBar(getThemedColor(Theme.key_dialogBackground)); textView = new TextView(context); - textView.setText(LocaleController.getString("NotificationsPermissionContinue")); + textView.setText(LocaleController.getString(settings ? R.string.NotificationsPermissionSettings : R.string.NotificationsPermissionContinue)); textView.setGravity(Gravity.CENTER); textView.setTypeface(AndroidUtilities.bold()); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); @@ -144,7 +144,6 @@ public void updateCounter() { } } - private boolean mayBeAccidentalDismiss; private long showTime; @Override @@ -153,21 +152,13 @@ public void show() { showTime = System.currentTimeMillis(); } - @Override - protected void onDismissWithTouchOutside() { - mayBeAccidentalDismiss = (System.currentTimeMillis() - showTime) < 3000L; - super.onDismissWithTouchOutside(); - } - @Override public void dismiss() { super.dismiss(); if (whenGranted != null) { whenGranted.run(false); whenGranted = null; - if (!mayBeAccidentalDismiss) { - askLater(); - } + askLater(); } for (int a : SharedConfig.activeAccounts) { try { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/NotificationsCustomSettingsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/NotificationsCustomSettingsActivity.java index fcbc40f643..c294bd9f53 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/NotificationsCustomSettingsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/NotificationsCustomSettingsActivity.java @@ -62,7 +62,6 @@ import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.NotificationsController; import org.telegram.messenger.R; -import org.telegram.messenger.SharedConfig; import org.telegram.messenger.UserObject; import org.telegram.messenger.Utilities; import org.telegram.tgnet.TLObject; @@ -706,7 +705,7 @@ private void setDefault() { args.putInt("dialogsType", DialogsActivity.DIALOGS_TYPE_USERS_ONLY); } DialogsActivity activity = new DialogsActivity(args); - activity.setDelegate((fragment, dids, message, param, topicsFragment) -> { + activity.setDelegate((fragment, dids, message, param, notify, scheduleDate, topicsFragment) -> { long did = dids.get(0).dialogId; if (currentType == TYPE_STORIES) { if (autoExceptions != null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/NotificationsSettingsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/NotificationsSettingsActivity.java index 51809b9572..cf99603c08 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/NotificationsSettingsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/NotificationsSettingsActivity.java @@ -620,8 +620,8 @@ public boolean supportsPredictiveItemAnimations() { } else if (position == inappPriorityRow) { SharedPreferences preferences = MessagesController.getNotificationsSettings(currentAccount); SharedPreferences.Editor editor = preferences.edit(); - enabled = preferences.getBoolean("EnableInAppPriority", false); - editor.putBoolean("EnableInAppPriority", !enabled); + enabled = preferences.getBoolean("EnableInAppPopup", true); + editor.putBoolean("EnableInAppPopup", !enabled); editor.commit(); } else if (position == contactJoinedRow) { SharedPreferences preferences = MessagesController.getNotificationsSettings(currentAccount); @@ -986,13 +986,13 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TextCheckCell checkCell = (TextCheckCell) holder.itemView; SharedPreferences preferences = MessagesController.getNotificationsSettings(currentAccount); if (position == inappSoundRow) { - checkCell.setTextAndCheck(getString("InAppSounds", R.string.InAppSounds), preferences.getBoolean("EnableInAppSounds", true), true); + checkCell.setTextAndCheck(getString(R.string.InAppSounds), preferences.getBoolean("EnableInAppSounds", true), true); } else if (position == inappVibrateRow) { - checkCell.setTextAndCheck(getString("InAppVibrate", R.string.InAppVibrate), preferences.getBoolean("EnableInAppVibrate", true), true); + checkCell.setTextAndCheck(getString(R.string.InAppVibrate), preferences.getBoolean("EnableInAppVibrate", true), true); } else if (position == inappPreviewRow) { - checkCell.setTextAndCheck(getString("InAppPreview", R.string.InAppPreview), preferences.getBoolean("EnableInAppPreview", true), true); + checkCell.setTextAndCheck(getString(R.string.InAppPreview), preferences.getBoolean("EnableInAppPreview", true), true); } else if (position == inappPriorityRow) { - checkCell.setTextAndCheck(getString("NotificationsImportance", R.string.NotificationsImportance), preferences.getBoolean("EnableInAppPriority", false), false); + checkCell.setTextAndValueAndCheck(getString(R.string.InAppPopup), getString(R.string.InAppPopupInfo), preferences.getBoolean("EnableInAppPopup", true), true, false); } else if (position == contactJoinedRow) { checkCell.setTextAndCheck(getString("ContactJoined", R.string.ContactJoined), preferences.getBoolean("EnableContactJoined", true), true); } else if (position == pinnedMessageRow) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/NotificationsSoundActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/NotificationsSoundActivity.java index 67404da927..b76e578c0b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/NotificationsSoundActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/NotificationsSoundActivity.java @@ -200,10 +200,10 @@ public void onItemClick(int id) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), resourcesProvider); builder.setTitle(LocaleController.formatPluralString("DeleteTones", selectedTones.size())); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatPluralString("DeleteTonesMessage", selectedTones.size()))); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> { dialog.dismiss(); }); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialog, which) -> { deleteSelectedMessages(); dialog.dismiss(); }); @@ -293,11 +293,11 @@ private void deleteSelectedMessages() { if (dialogId == 0) { if (currentType == NotificationsController.TYPE_PRIVATE) { - actionBar.setTitle(LocaleController.getString("NotificationsSoundPrivate", R.string.NotificationsSoundPrivate)); + actionBar.setTitle(LocaleController.getString(R.string.NotificationsSoundPrivate)); } else if (currentType == NotificationsController.TYPE_GROUP) { - actionBar.setTitle(LocaleController.getString("NotificationsSoundGroup", R.string.NotificationsSoundGroup)); + actionBar.setTitle(LocaleController.getString(R.string.NotificationsSoundGroup)); } else if (currentType == NotificationsController.TYPE_CHANNEL) { - actionBar.setTitle(LocaleController.getString("NotificationsSoundChannels", R.string.NotificationsSoundChannels)); + actionBar.setTitle(LocaleController.getString(R.string.NotificationsSoundChannels)); } else if (currentType == NotificationsController.TYPE_STORIES) { actionBar.setTitle(LocaleController.getString(R.string.NotificationsSoundStories)); } else if (currentType == NotificationsController.TYPE_REACTIONS_STORIES || currentType == NotificationsController.TYPE_REACTIONS_MESSAGES) { @@ -324,7 +324,7 @@ private void deleteSelectedMessages() { avatarContainer.setTitle(ContactsController.formatName(user.first_name, user.last_name)); } } - avatarContainer.setSubtitle(LocaleController.getString("NotificationsSound", R.string.NotificationsSound)); + avatarContainer.setSubtitle(LocaleController.getString(R.string.NotificationsSound)); } final ActionBarMenu actionMode = actionBar.createActionMode(); @@ -336,8 +336,8 @@ private void deleteSelectedMessages() { actionMode.addView(selectedTonesCountTextView, LayoutHelper.createLinear(0, LayoutHelper.MATCH_PARENT, 1.0f, 72, 0, 0, 0)); selectedTonesCountTextView.setOnTouchListener((v, event) -> true); - actionMode.addItemWithWidth(shareId, R.drawable.msg_forward, AndroidUtilities.dp(54), LocaleController.getString("ShareFile", R.string.ShareFile)); - actionMode.addItemWithWidth(deleteId, R.drawable.msg_delete, AndroidUtilities.dp(54), LocaleController.getString("Delete", R.string.Delete)); + actionMode.addItemWithWidth(shareId, R.drawable.msg_forward, AndroidUtilities.dp(54), LocaleController.getString(R.string.ShareFile)); + actionMode.addItemWithWidth(deleteId, R.drawable.msg_delete, AndroidUtilities.dp(54), LocaleController.getString(R.string.Delete)); fragmentView = new FrameLayout(context); FrameLayout frameLayout = (FrameLayout) fragmentView; @@ -485,14 +485,14 @@ private void loadTones() { Tone noSoundTone = new Tone(); noSoundTone.stableId = stableIds++; - noSoundTone.title = LocaleController.getString("NoSound", R.string.NoSound); + noSoundTone.title = LocaleController.getString(R.string.NoSound); noSoundTone.isSystemNoSound = true; systemTones.add(noSoundTone); Tone defaultTone = new Tone(); defaultTone.stableId = stableIds++; - defaultTone.title = LocaleController.getString("DefaultRingtone", R.string.DefaultRingtone); + defaultTone.title = LocaleController.getString(R.string.DefaultRingtone); defaultTone.isSystemDefault = true; systemTones.add(defaultTone); @@ -682,9 +682,9 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi case 1: HeaderCell headerCell = (HeaderCell) holder.itemView; if (position == serverTonesHeaderRow) { - headerCell.setText(LocaleController.getString("TelegramTones", R.string.TelegramTones)); + headerCell.setText(LocaleController.getString(R.string.TelegramTones)); } else if (position == systemTonesHeaderRow) { - headerCell.setText(LocaleController.getString("SystemTones", R.string.SystemTones)); + headerCell.setText(LocaleController.getString(R.string.SystemTones)); } break; case 2: @@ -694,7 +694,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi drawable1.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_switchTrackChecked, resourcesProvider), PorterDuff.Mode.MULTIPLY)); drawable2.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_checkboxCheck, resourcesProvider), PorterDuff.Mode.MULTIPLY)); CombinedDrawable combinedDrawable = new CombinedDrawable(drawable1, drawable2); - textCell.setTextAndIcon(LocaleController.getString("UploadSound", R.string.UploadSound), combinedDrawable, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.UploadSound), combinedDrawable, false); break; } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PasscodeActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PasscodeActivity.java index ad00458d06..62c0a68f22 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PasscodeActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PasscodeActivity.java @@ -270,7 +270,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { switch (type) { case TYPE_MANAGE_CODE_SETTINGS: { - actionBar.setTitle(LocaleController.getString("Passcode", R.string.Passcode)); + actionBar.setTitle(LocaleController.getString(R.string.Passcode)); frameLayout.setTag(Theme.key_windowBackgroundGray); frameLayout.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray)); listView = new RecyclerListView(context); @@ -320,7 +320,7 @@ public boolean supportsPredictiveItemAnimations() { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("AutoLock", R.string.AutoLock)); + builder.setTitle(LocaleController.getString(R.string.AutoLock)); final NumberPicker numberPicker = new NumberPicker(getParentActivity()); numberPicker.setMinValue(0); numberPicker.setMaxValue(5); @@ -339,7 +339,7 @@ public boolean supportsPredictiveItemAnimations() { } numberPicker.setFormatter(value -> { if (value == 0) { - return LocaleController.getString("AutoLockDisabled", R.string.AutoLockDisabled); + return LocaleController.getString(R.string.AutoLockDisabled); } else if (value == 1) { return LocaleController.getString("AutoLockImmediately", R.string.AutoLockImmediately); } else if (value == 2) { @@ -354,7 +354,7 @@ public boolean supportsPredictiveItemAnimations() { return ""; }); builder.setView(numberPicker); - builder.setNegativeButton(LocaleController.getString("Done", R.string.Done), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Done), (dialog, which) -> { which = numberPicker.getValue(); if (which == 0) { SharedConfig.autoLockIn = 0; @@ -383,7 +383,7 @@ public boolean supportsPredictiveItemAnimations() { ((TextCheckCell) view).setChecked(SharedConfig.allowScreenCapture); NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.didSetPasscode, false); if (!SharedConfig.allowScreenCapture) { - AlertsCreator.showSimpleAlert(PasscodeActivity.this, LocaleController.getString("ScreenCaptureAlert", R.string.ScreenCaptureAlert)); + AlertsCreator.showSimpleAlert(PasscodeActivity.this, LocaleController.getString(R.string.ScreenCaptureAlert)); } } }); @@ -452,9 +452,9 @@ public void onItemClick(int id) { titleTextView.setTypeface(AndroidUtilities.bold()); if (type == TYPE_SETUP_CODE) { if (SharedConfig.passcodeHash.length() != 0) { - titleTextView.setText(LocaleController.getString("EnterNewPasscode", R.string.EnterNewPasscode)); + titleTextView.setText(LocaleController.getString(R.string.EnterNewPasscode)); } else { - titleTextView.setText(LocaleController.getString("CreatePasscode", R.string.CreatePasscode)); + titleTextView.setText(LocaleController.getString(R.string.CreatePasscode)); } } else { titleTextView.setText(LocaleController.getString(R.string.EnterYourPasscode)); @@ -987,8 +987,8 @@ private void processNext() { otherItem.setVisibility(View.GONE); } - titleTextView.setText(LocaleController.getString("ConfirmCreatePasscode", R.string.ConfirmCreatePasscode)); - descriptionTextSwitcher.setText(AndroidUtilities.replaceTags(LocaleController.getString("PasscodeReinstallNotice", R.string.PasscodeReinstallNotice))); + titleTextView.setText(LocaleController.getString(R.string.ConfirmCreatePasscode)); + descriptionTextSwitcher.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PasscodeReinstallNotice))); firstPassword = isPinCode() ? codeFieldContainer.getCode() : passwordEditText.getText().toString(); passwordEditText.setText(""); passwordEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); @@ -1206,7 +1206,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case VIEW_TYPE_SETTING: { TextSettingsCell textCell = (TextSettingsCell) holder.itemView; if (position == changePasscodeRow) { - textCell.setText(LocaleController.getString("ChangePasscode", R.string.ChangePasscode), true); + textCell.setText(LocaleController.getString(R.string.ChangePasscode), true); if (SharedConfig.passcodeHash.length() == 0) { textCell.setTag(Theme.key_windowBackgroundWhiteGrayText7); textCell.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText7)); @@ -1227,7 +1227,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { val = LocaleController.formatString("AutoLockInTime", R.string.AutoLockInTime, LocaleController.formatPluralString("Days", (int) Math.ceil(SharedConfig.autoLockIn / 60.0f / 60 / 24))); } - textCell.setTextAndValue(LocaleController.getString("AutoLock", R.string.AutoLock), val, true); + textCell.setTextAndValue(LocaleController.getString(R.string.AutoLock), val, true); textCell.setTag(Theme.key_windowBackgroundWhiteBlackText); textCell.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); } else if (position == disablePasscodeRow) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PassportActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PassportActivity.java index 5f274de02e..8e6dc1ce63 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PassportActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PassportActivity.java @@ -984,7 +984,7 @@ private boolean onIdentityDone(Runnable finishRunnable, ErrorRunnable errorRunna boolean error = false; for (int a = 0; a < nonLatinNames.length; a++) { if (nonLatinNames[a]) { - inputFields[a].setErrorText(LocaleController.getString("PassportUseLatinOnly", R.string.PassportUseLatinOnly)); + inputFields[a].setErrorText(LocaleController.getString(R.string.PassportUseLatinOnly)); if (!error) { error = true; String firstName = nonLatinNames[0] ? getTranslitString(inputExtraFields[FIELD_NATIVE_NAME].getText().toString()) : inputFields[FIELD_NAME].getText().toString(); @@ -995,15 +995,15 @@ private boolean onIdentityDone(Runnable finishRunnable, ErrorRunnable errorRunna int num = a; AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); builder.setMessage(LocaleController.formatString("PassportNameCheckAlert", R.string.PassportNameCheckAlert, firstName, middleName, lastName)); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setPositiveButton(LocaleController.getString("Done", R.string.Done), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setPositiveButton(LocaleController.getString(R.string.Done), (dialogInterface, i) -> { inputFields[FIELD_NAME].setText(firstName); inputFields[FIELD_MIDNAME].setText(middleName); inputFields[FIELD_SURNAME].setText(lastName); showEditDoneProgress(true, true); onIdentityDone(finishRunnable, errorRunnable); }); - builder.setNegativeButton(LocaleController.getString("Edit", R.string.Edit), (dialogInterface, i) -> onFieldError(inputFields[num])); + builder.setNegativeButton(LocaleController.getString(R.string.Edit), (dialogInterface, i) -> onFieldError(inputFields[num])); showDialog(builder.create()); } else { onFieldError(inputFields[a]); @@ -1115,14 +1115,14 @@ public void onItemClick(int id) { return; } final LinkSpanDrawable.LinksTextView message = new LinkSpanDrawable.LinksTextView(getParentActivity()); - String str2 = LocaleController.getString("PassportInfo2", R.string.PassportInfo2); + String str2 = LocaleController.getString(R.string.PassportInfo2); SpannableStringBuilder spanned = new SpannableStringBuilder(str2); int index1 = str2.indexOf('*'); int index2 = str2.lastIndexOf('*'); if (index1 != -1 && index2 != -1) { spanned.replace(index2, index2 + 1, ""); spanned.replace(index1, index1 + 1, ""); - spanned.setSpan(new URLSpanNoUnderline(LocaleController.getString("PassportInfoUrl", R.string.PassportInfoUrl)) { + spanned.setSpan(new URLSpanNoUnderline(LocaleController.getString(R.string.PassportInfoUrl)) { @Override public void onClick(View widget) { dismissCurrentDialog(); @@ -1140,8 +1140,8 @@ public void onClick(View widget) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); builder.setView(message); - builder.setTitle(LocaleController.getString("PassportInfoTitle", R.string.PassportInfoTitle)); - builder.setNegativeButton(LocaleController.getString("Close", R.string.Close), null); + builder.setTitle(LocaleController.getString(R.string.PassportInfoTitle)); + builder.setNegativeButton(LocaleController.getString(R.string.Close), null); showDialog(builder.create()); } else if (id == done_button) { if (currentActivityType == TYPE_PASSWORD) { @@ -1293,7 +1293,7 @@ public boolean requestChildRectangleOnScreen(View child, Rect rectangle, boolean if (currentActivityType != TYPE_REQUEST && currentActivityType != TYPE_MANAGE) { ActionBarMenu menu = actionBar.createMenu(); - doneItem = menu.addItemWithWidth(done_button, R.drawable.ic_ab_done, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + doneItem = menu.addItemWithWidth(done_button, R.drawable.ic_ab_done, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); progressView = new ContextProgressView(context, 1); progressView.setAlpha(0.0f); progressView.setScaleX(0.1f); @@ -1398,7 +1398,7 @@ private int getFieldCost(String key) { } private void createPhoneVerificationInterface(Context context) { - actionBar.setTitle(LocaleController.getString("PassportPhone", R.string.PassportPhone)); + actionBar.setTitle(LocaleController.getString(R.string.PassportPhone)); FrameLayout frameLayout = new FrameLayout(context); scrollView.addView(frameLayout, LayoutHelper.createScroll(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT)); @@ -1419,7 +1419,7 @@ private void loadPasswordInfo() { if (response != null) { currentPassword = (TLRPC.account_Password) response; if (!TwoStepVerificationActivity.canHandleCurrentPassword(currentPassword, false)) { - AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString(R.string.UpdateAppAlert), true); return; } TwoStepVerificationActivity.initPasswordNewAlgo(currentPassword); @@ -1438,7 +1438,7 @@ private void loadPasswordInfo() { } private void createEmailVerificationInterface(Context context) { - actionBar.setTitle(LocaleController.getString("PassportEmail", R.string.PassportEmail)); + actionBar.setTitle(LocaleController.getString(R.string.PassportEmail)); inputFields = new EditTextBoldCursor[1]; for (int a = 0; a < 1; a++) { @@ -1458,7 +1458,7 @@ private void createEmailVerificationInterface(Context context) { inputFields[a].setInputType(InputType.TYPE_CLASS_PHONE); inputFields[a].setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI); - inputFields[a].setHint(LocaleController.getString("PassportEmailCode", R.string.PassportEmailCode)); + inputFields[a].setHint(LocaleController.getString(R.string.PassportEmailCode)); inputFields[a].setSelection(inputFields[a].length()); inputFields[a].setPadding(0, 0, 0, AndroidUtilities.dp(6)); inputFields[a].setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); @@ -1517,7 +1517,7 @@ private void createPasswordInterface(Context context) { FrameLayout frameLayout = (FrameLayout) fragmentView; - actionBar.setTitle(LocaleController.getString("TelegramPassport", R.string.TelegramPassport)); + actionBar.setTitle(LocaleController.getString(R.string.TelegramPassport)); emptyView = new EmptyTextProgressView(context); emptyView.showProgress(); @@ -1536,7 +1536,7 @@ private void createPasswordInterface(Context context) { passwordRequestTextView = new TextInfoPrivacyCell(context); passwordRequestTextView.getTextView().setGravity(Gravity.CENTER_HORIZONTAL); if (currentBotId == 0) { - passwordRequestTextView.setText(LocaleController.getString("PassportSelfRequest", R.string.PassportSelfRequest)); + passwordRequestTextView.setText(LocaleController.getString(R.string.PassportSelfRequest)); } else { passwordRequestTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("PassportRequest", R.string.PassportRequest, UserObject.getFirstName(botUser)))); } @@ -1553,7 +1553,7 @@ private void createPasswordInterface(Context context) { noPasswordTextView.setGravity(Gravity.CENTER_HORIZONTAL); noPasswordTextView.setPadding(AndroidUtilities.dp(21), AndroidUtilities.dp(10), AndroidUtilities.dp(21), AndroidUtilities.dp(17)); noPasswordTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText4)); - noPasswordTextView.setText(LocaleController.getString("TelegramPassportCreatePasswordInfo", R.string.TelegramPassportCreatePasswordInfo)); + noPasswordTextView.setText(LocaleController.getString(R.string.TelegramPassportCreatePasswordInfo)); linearLayout2.addView(noPasswordTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 21, 10, 21, 0)); noPasswordSetTextView = new TextView(context); @@ -1561,7 +1561,7 @@ private void createPasswordInterface(Context context) { noPasswordSetTextView.setGravity(Gravity.CENTER); noPasswordSetTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); noPasswordSetTextView.setTypeface(AndroidUtilities.bold()); - noPasswordSetTextView.setText(LocaleController.getString("TelegramPassportCreatePassword", R.string.TelegramPassportCreatePassword)); + noPasswordSetTextView.setText(LocaleController.getString(R.string.TelegramPassportCreatePassword)); linearLayout2.addView(noPasswordSetTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 24, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 21, 9, 21, 0)); noPasswordSetTextView.setOnClickListener(v -> { TwoStepVerificationSetupActivity activity = new TwoStepVerificationSetupActivity(currentAccount, TwoStepVerificationSetupActivity.TYPE_CREATE_PASSWORD_STEP_1, currentPassword); @@ -1629,7 +1629,7 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) { passwordForgotButton = new TextView(context); passwordForgotButton.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText4)); passwordForgotButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - passwordForgotButton.setText(LocaleController.getString("ForgotPassword", R.string.ForgotPassword)); + passwordForgotButton.setText(LocaleController.getString(R.string.ForgotPassword)); passwordForgotButton.setPadding(0, 0, 0, 0); linearLayout2.addView(passwordForgotButton, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, 30, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 21, 0, 21, 0)); passwordForgotButton.setOnClickListener(v -> { @@ -1642,8 +1642,8 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) { final TLRPC.TL_auth_passwordRecovery res = (TLRPC.TL_auth_passwordRecovery) response; AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); builder.setMessage(LocaleController.formatString("RestoreEmailSent", R.string.RestoreEmailSent, res.email_pattern)); - builder.setTitle(LocaleController.getString("RestoreEmailSentTitle", R.string.RestoreEmailSentTitle)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.RestoreEmailSentTitle)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> { currentPassword.email_unconfirmed_pattern = res.email_pattern; TwoStepVerificationSetupActivity fragment = new TwoStepVerificationSetupActivity(currentAccount, TwoStepVerificationSetupActivity.TYPE_EMAIL_RECOVERY, currentPassword); presentFragment(fragment); @@ -1662,9 +1662,9 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) { } else { timeString = LocaleController.formatPluralString("Minutes", time / 60); } - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + showAlertWithText(LocaleController.getString(R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + showAlertWithText(LocaleController.getString(R.string.AppName), error.text); } } }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); @@ -1674,10 +1674,10 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); - builder.setNegativeButton(LocaleController.getString("RestorePasswordResetAccount", R.string.RestorePasswordResetAccount), (dialog, which) -> Browser.openUrl(getParentActivity(), "https://telegram.org/deactivate?phone=" + UserConfig.getInstance(currentAccount).getClientPhone())); - builder.setTitle(LocaleController.getString("RestorePasswordNoEmailTitle", R.string.RestorePasswordNoEmailTitle)); - builder.setMessage(LocaleController.getString("RestorePasswordNoEmailText", R.string.RestorePasswordNoEmailText)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); + builder.setNegativeButton(LocaleController.getString(R.string.RestorePasswordResetAccount), (dialog, which) -> Browser.openUrl(getParentActivity(), "https://telegram.org/deactivate?phone=" + UserConfig.getInstance(currentAccount).getClientPhone())); + builder.setTitle(LocaleController.getString(R.string.RestorePasswordNoEmailTitle)); + builder.setMessage(LocaleController.getString(R.string.RestorePasswordNoEmailText)); showDialog(builder.create()); } }); @@ -1851,7 +1851,7 @@ public void run(final TLObject response, final TLRPC.TL_error error) { secure_salt = algo.salt; saltedPassword = Utilities.computePBKDF2(AndroidUtilities.getStringBytes(textPassword), algo.salt); } else if (settings.secure_settings.secure_algo instanceof TLRPC.TL_securePasswordKdfAlgoUnknown) { - AndroidUtilities.runOnUIThread(() -> AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true)); + AndroidUtilities.runOnUIThread(() -> AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString(R.string.UpdateAppAlert), true)); return; } else { secure_salt = new byte[0]; @@ -1901,9 +1901,9 @@ public void run(final TLObject response, final TLRPC.TL_error error) { openRequestInterface(); } else { if ("APP_VERSION_OUTDATED".equals(error1.text)) { - AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString(R.string.UpdateAppAlert), true); } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error1.text); + showAlertWithText(LocaleController.getString(R.string.AppName), error1.text); } showEditDoneProgress(true, false); } @@ -1935,9 +1935,9 @@ public void run(final TLObject response, final TLRPC.TL_error error) { } else { timeString = LocaleController.formatPluralString("Minutes", time / 60); } - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + showAlertWithText(LocaleController.getString(R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + showAlertWithText(LocaleController.getString(R.string.AppName), error.text); } } }); @@ -1993,7 +1993,7 @@ private void createRequestInterface(Context context) { FrameLayout frameLayout = (FrameLayout) fragmentView; - actionBar.setTitle(LocaleController.getString("TelegramPassport", R.string.TelegramPassport)); + actionBar.setTitle(LocaleController.getString(R.string.TelegramPassport)); actionBar.createMenu().addItem(info_item, R.drawable.msg_info); @@ -2017,7 +2017,7 @@ private void createRequestInterface(Context context) { } headerCell = new HeaderCell(context); - headerCell.setText(LocaleController.getString("PassportRequestedInformation", R.string.PassportRequestedInformation)); + headerCell.setText(LocaleController.getString(R.string.PassportRequestedInformation)); headerCell.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); linearLayout2.addView(headerCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -2386,9 +2386,9 @@ public ValueToSend(TLRPC.TL_secureValue v, boolean s, boolean t) { } else { showEditDoneProgress(false, false); if ("APP_VERSION_OUTDATED".equals(error.text)) { - AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString(R.string.UpdateAppAlert), true); } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + showAlertWithText(LocaleController.getString(R.string.AppName), error.text); } } })); @@ -2399,7 +2399,7 @@ public ValueToSend(TLRPC.TL_secureValue v, boolean s, boolean t) { acceptTextView.setCompoundDrawablePadding(AndroidUtilities.dp(8)); acceptTextView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.authorize, 0, 0, 0); acceptTextView.setTextColor(Theme.getColor(Theme.key_passport_authorizeText)); - acceptTextView.setText(LocaleController.getString("PassportAuthorize", R.string.PassportAuthorize)); + acceptTextView.setText(LocaleController.getString(R.string.PassportAuthorize)); acceptTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); acceptTextView.setGravity(Gravity.CENTER); acceptTextView.setTypeface(AndroidUtilities.bold()); @@ -2417,12 +2417,12 @@ public ValueToSend(TLRPC.TL_secureValue v, boolean s, boolean t) { private void createManageInterface(Context context) { FrameLayout frameLayout = (FrameLayout) fragmentView; - actionBar.setTitle(LocaleController.getString("TelegramPassport", R.string.TelegramPassport)); + actionBar.setTitle(LocaleController.getString(R.string.TelegramPassport)); actionBar.createMenu().addItem(info_item, R.drawable.msg_info); headerCell = new HeaderCell(context); - headerCell.setText(LocaleController.getString("PassportProvidedInformation", R.string.PassportProvidedInformation)); + headerCell.setText(LocaleController.getString(R.string.PassportProvidedInformation)); headerCell.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); linearLayout2.addView(headerCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -2432,20 +2432,20 @@ private void createManageInterface(Context context) { addDocumentCell = new TextSettingsCell(context); addDocumentCell.setBackgroundDrawable(Theme.getSelectorDrawable(true)); - addDocumentCell.setText(LocaleController.getString("PassportNoDocumentsAdd", R.string.PassportNoDocumentsAdd), true); + addDocumentCell.setText(LocaleController.getString(R.string.PassportNoDocumentsAdd), true); linearLayout2.addView(addDocumentCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); addDocumentCell.setOnClickListener(v -> openAddDocumentAlert()); deletePassportCell = new TextSettingsCell(context); deletePassportCell.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); deletePassportCell.setBackgroundDrawable(Theme.getSelectorDrawable(true)); - deletePassportCell.setText(LocaleController.getString("TelegramPassportDelete", R.string.TelegramPassportDelete), false); + deletePassportCell.setText(LocaleController.getString(R.string.TelegramPassportDelete), false); linearLayout2.addView(deletePassportCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); deletePassportCell.setOnClickListener(v -> { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("TelegramPassportDeleteTitle", R.string.TelegramPassportDeleteTitle)); - builder.setMessage(LocaleController.getString("TelegramPassportDeleteAlert", R.string.TelegramPassportDeleteAlert)); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialog, which) -> { + builder.setTitle(LocaleController.getString(R.string.TelegramPassportDeleteTitle)); + builder.setMessage(LocaleController.getString(R.string.TelegramPassportDeleteAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialog, which) -> { TLRPC.TL_account_deleteSecureValue req = new TLRPC.TL_account_deleteSecureValue(); for (int a = 0; a < currentForm.values.size(); a++) { req.types.add(currentForm.values.get(a).type); @@ -2466,7 +2466,7 @@ private void createManageInterface(Context context) { updateManageVisibility(); })); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -2499,7 +2499,7 @@ private void createManageInterface(Context context) { emptyTextView1.setGravity(Gravity.CENTER); emptyTextView1.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); emptyTextView1.setTypeface(AndroidUtilities.bold()); - emptyTextView1.setText(LocaleController.getString("PassportNoDocuments", R.string.PassportNoDocuments)); + emptyTextView1.setText(LocaleController.getString(R.string.PassportNoDocuments)); emptyLayout.addView(emptyTextView1, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 16, 0, 0)); emptyTextView2 = new TextView(context); @@ -2507,7 +2507,7 @@ private void createManageInterface(Context context) { emptyTextView2.setGravity(Gravity.CENTER); emptyTextView2.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); emptyTextView2.setPadding(AndroidUtilities.dp(20), 0, AndroidUtilities.dp(20), 0); - emptyTextView2.setText(LocaleController.getString("PassportNoDocumentsInfo", R.string.PassportNoDocumentsInfo)); + emptyTextView2.setText(LocaleController.getString(R.string.PassportNoDocumentsInfo)); emptyLayout.addView(emptyTextView2, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 14, 0, 0)); emptyTextView3 = new TextView(context); @@ -2518,7 +2518,7 @@ private void createManageInterface(Context context) { emptyTextView3.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); emptyTextView3.setTypeface(AndroidUtilities.bold()); emptyTextView3.setGravity(Gravity.CENTER); - emptyTextView3.setText(LocaleController.getString("PassportNoDocumentsAdd", R.string.PassportNoDocumentsAdd).toUpperCase()); + emptyTextView3.setText(LocaleController.getString(R.string.PassportNoDocumentsAdd).toUpperCase()); emptyLayout.addView(emptyTextView3, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, 30, Gravity.CENTER, 0, 12, 0, 0)); emptyTextView3.setOnClickListener(v -> openAddDocumentAlert()); @@ -2588,55 +2588,55 @@ private void openAddDocumentAlert() { final ArrayList> types = new ArrayList<>(); if (hasNotValueForType(TLRPC.TL_secureValueTypePhone.class)) { - values.add(LocaleController.getString("ActionBotDocumentPhone", R.string.ActionBotDocumentPhone)); + values.add(LocaleController.getString(R.string.ActionBotDocumentPhone)); types.add(TLRPC.TL_secureValueTypePhone.class); } if (hasNotValueForType(TLRPC.TL_secureValueTypeEmail.class)) { - values.add(LocaleController.getString("ActionBotDocumentEmail", R.string.ActionBotDocumentEmail)); + values.add(LocaleController.getString(R.string.ActionBotDocumentEmail)); types.add(TLRPC.TL_secureValueTypeEmail.class); } if (hasNotValueForType(TLRPC.TL_secureValueTypePersonalDetails.class)) { - values.add(LocaleController.getString("ActionBotDocumentIdentity", R.string.ActionBotDocumentIdentity)); + values.add(LocaleController.getString(R.string.ActionBotDocumentIdentity)); types.add(TLRPC.TL_secureValueTypePersonalDetails.class); } if (hasNotValueForType(TLRPC.TL_secureValueTypePassport.class)) { - values.add(LocaleController.getString("ActionBotDocumentPassport", R.string.ActionBotDocumentPassport)); + values.add(LocaleController.getString(R.string.ActionBotDocumentPassport)); types.add(TLRPC.TL_secureValueTypePassport.class); } if (hasNotValueForType(TLRPC.TL_secureValueTypeInternalPassport.class)) { - values.add(LocaleController.getString("ActionBotDocumentInternalPassport", R.string.ActionBotDocumentInternalPassport)); + values.add(LocaleController.getString(R.string.ActionBotDocumentInternalPassport)); types.add(TLRPC.TL_secureValueTypeInternalPassport.class); } if (hasNotValueForType(TLRPC.TL_secureValueTypePassportRegistration.class)) { - values.add(LocaleController.getString("ActionBotDocumentPassportRegistration", R.string.ActionBotDocumentPassportRegistration)); + values.add(LocaleController.getString(R.string.ActionBotDocumentPassportRegistration)); types.add(TLRPC.TL_secureValueTypePassportRegistration.class); } if (hasNotValueForType(TLRPC.TL_secureValueTypeTemporaryRegistration.class)) { - values.add(LocaleController.getString("ActionBotDocumentTemporaryRegistration", R.string.ActionBotDocumentTemporaryRegistration)); + values.add(LocaleController.getString(R.string.ActionBotDocumentTemporaryRegistration)); types.add(TLRPC.TL_secureValueTypeTemporaryRegistration.class); } if (hasNotValueForType(TLRPC.TL_secureValueTypeIdentityCard.class)) { - values.add(LocaleController.getString("ActionBotDocumentIdentityCard", R.string.ActionBotDocumentIdentityCard)); + values.add(LocaleController.getString(R.string.ActionBotDocumentIdentityCard)); types.add(TLRPC.TL_secureValueTypeIdentityCard.class); } if (hasNotValueForType(TLRPC.TL_secureValueTypeDriverLicense.class)) { - values.add(LocaleController.getString("ActionBotDocumentDriverLicence", R.string.ActionBotDocumentDriverLicence)); + values.add(LocaleController.getString(R.string.ActionBotDocumentDriverLicence)); types.add(TLRPC.TL_secureValueTypeDriverLicense.class); } if (hasNotValueForType(TLRPC.TL_secureValueTypeAddress.class)) { - values.add(LocaleController.getString("ActionBotDocumentAddress", R.string.ActionBotDocumentAddress)); + values.add(LocaleController.getString(R.string.ActionBotDocumentAddress)); types.add(TLRPC.TL_secureValueTypeAddress.class); } if (hasNotValueForType(TLRPC.TL_secureValueTypeUtilityBill.class)) { - values.add(LocaleController.getString("ActionBotDocumentUtilityBill", R.string.ActionBotDocumentUtilityBill)); + values.add(LocaleController.getString(R.string.ActionBotDocumentUtilityBill)); types.add(TLRPC.TL_secureValueTypeUtilityBill.class); } if (hasNotValueForType(TLRPC.TL_secureValueTypeBankStatement.class)) { - values.add(LocaleController.getString("ActionBotDocumentBankStatement", R.string.ActionBotDocumentBankStatement)); + values.add(LocaleController.getString(R.string.ActionBotDocumentBankStatement)); types.add(TLRPC.TL_secureValueTypeBankStatement.class); } if (hasNotValueForType(TLRPC.TL_secureValueTypeRentalAgreement.class)) { - values.add(LocaleController.getString("ActionBotDocumentRentalAgreement", R.string.ActionBotDocumentRentalAgreement)); + values.add(LocaleController.getString(R.string.ActionBotDocumentRentalAgreement)); types.add(TLRPC.TL_secureValueTypeRentalAgreement.class); } @@ -2644,7 +2644,7 @@ private void openAddDocumentAlert() { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("PassportNoDocumentsAdd", R.string.PassportNoDocumentsAdd)); + builder.setTitle(LocaleController.getString(R.string.PassportNoDocumentsAdd)); builder.setItems(values.toArray(new CharSequence[0]), (dialog, which) -> { TLRPC.TL_secureRequiredType requiredType = null; TLRPC.TL_secureRequiredType documentRequiredType = null; @@ -2714,7 +2714,7 @@ private void callCallback(boolean success) { } private void createEmailInterface(Context context) { - actionBar.setTitle(LocaleController.getString("PassportEmail", R.string.PassportEmail)); + actionBar.setTitle(LocaleController.getString(R.string.PassportEmail)); if (!TextUtils.isEmpty(currentEmail)) { TextSettingsCell settingsCell1 = new TextSettingsCell(context); @@ -2730,7 +2730,7 @@ private void createEmailInterface(Context context) { bottomCell = new TextInfoPrivacyCell(context); bottomCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(context, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); - bottomCell.setText(LocaleController.getString("PassportPhoneUseSameEmailInfo", R.string.PassportPhoneUseSameEmailInfo)); + bottomCell.setText(LocaleController.getString(R.string.PassportPhoneUseSameEmailInfo)); linearLayout2.addView(bottomCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } @@ -2751,7 +2751,7 @@ private void createEmailInterface(Context context) { inputFields[a].setCursorWidth(1.5f); inputFields[a].setInputType(EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_EMAIL_ADDRESS); inputFields[a].setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI); - inputFields[a].setHint(LocaleController.getString("PaymentShippingEmailPlaceholder", R.string.PaymentShippingEmailPlaceholder)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentShippingEmailPlaceholder)); if (currentTypeValue != null && currentTypeValue.plain_data instanceof TLRPC.TL_securePlainEmail) { TLRPC.TL_securePlainEmail securePlainEmail = (TLRPC.TL_securePlainEmail) currentTypeValue.plain_data; if (!TextUtils.isEmpty(securePlainEmail.email)) { @@ -2774,12 +2774,12 @@ private void createEmailInterface(Context context) { bottomCell = new TextInfoPrivacyCell(context); bottomCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(context, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); - bottomCell.setText(LocaleController.getString("PassportEmailUploadInfo", R.string.PassportEmailUploadInfo)); + bottomCell.setText(LocaleController.getString(R.string.PassportEmailUploadInfo)); linearLayout2.addView(bottomCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } private void createPhoneInterface(Context context) { - actionBar.setTitle(LocaleController.getString("PassportPhone", R.string.PassportPhone)); + actionBar.setTitle(LocaleController.getString(R.string.PassportPhone)); languageMap = new HashMap<>(); try { @@ -2816,11 +2816,11 @@ private void createPhoneInterface(Context context) { bottomCell = new TextInfoPrivacyCell(context); bottomCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(context, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); - bottomCell.setText(LocaleController.getString("PassportPhoneUseSameInfo", R.string.PassportPhoneUseSameInfo)); + bottomCell.setText(LocaleController.getString(R.string.PassportPhoneUseSameInfo)); linearLayout2.addView(bottomCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); headerCell = new HeaderCell(context); - headerCell.setText(LocaleController.getString("PassportPhoneUseOther", R.string.PassportPhoneUseOther)); + headerCell.setText(LocaleController.getString(R.string.PassportPhoneUseOther)); headerCell.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); linearLayout2.addView(headerCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -2881,7 +2881,7 @@ private void createPhoneInterface(Context context) { } return true; }); - inputFields[a].setText(LocaleController.getString("ChooseCountry", R.string.ChooseCountry)); + inputFields[a].setText(LocaleController.getString(R.string.ChooseCountry)); inputFields[a].setInputType(0); inputFields[a].setFocusable(false); } else { @@ -2929,8 +2929,8 @@ public void afterTextChanged(Editable editable) { HintEditText phoneField = (HintEditText) inputFields[FIELD_PHONE]; if (text.length() == 0) { phoneField.setHintText(null); - phoneField.setHint(LocaleController.getString("PaymentShippingPhoneNumber", R.string.PaymentShippingPhoneNumber)); - inputFields[FIELD_PHONECOUNTRY].setText(LocaleController.getString("ChooseCountry", R.string.ChooseCountry)); + phoneField.setHint(LocaleController.getString(R.string.PaymentShippingPhoneNumber)); + inputFields[FIELD_PHONECOUNTRY].setText(LocaleController.getString(R.string.ChooseCountry)); } else { String country; boolean ok = false; @@ -2967,8 +2967,8 @@ public void afterTextChanged(Editable editable) { } if (!set) { phoneField.setHintText(null); - phoneField.setHint(LocaleController.getString("PaymentShippingPhoneNumber", R.string.PaymentShippingPhoneNumber)); - inputFields[FIELD_PHONECOUNTRY].setText(LocaleController.getString("WrongCountry", R.string.WrongCountry)); + phoneField.setHint(LocaleController.getString(R.string.PaymentShippingPhoneNumber)); + inputFields[FIELD_PHONECOUNTRY].setText(LocaleController.getString(R.string.WrongCountry)); } if (!ok) { inputFields[FIELD_PHONECODE].setSelection(inputFields[FIELD_PHONECODE].getText().length()); @@ -2986,7 +2986,7 @@ public void afterTextChanged(Editable editable) { inputFields[a].setPadding(0, 0, 0, 0); inputFields[a].setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL); inputFields[a].setHintText(null); - inputFields[a].setHint(LocaleController.getString("PaymentShippingPhoneNumber", R.string.PaymentShippingPhoneNumber)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentShippingPhoneNumber)); container.addView(inputFields[a], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 12, 21, 6)); inputFields[a].addTextChangedListener(new TextWatcher() { private int characterAction = -1; @@ -3120,7 +3120,7 @@ public void afterTextChanged(Editable s) { bottomCell = new TextInfoPrivacyCell(context); bottomCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(context, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); - bottomCell.setText(LocaleController.getString("PassportPhoneUploadInfo", R.string.PassportPhoneUploadInfo)); + bottomCell.setText(LocaleController.getString(R.string.PassportPhoneUploadInfo)); linearLayout2.addView(bottomCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } @@ -3146,19 +3146,19 @@ private void createAddressInterface(Context context) { if (currentDocumentsType != null) { if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeRentalAgreement) { - actionBar.setTitle(LocaleController.getString("ActionBotDocumentRentalAgreement", R.string.ActionBotDocumentRentalAgreement)); + actionBar.setTitle(LocaleController.getString(R.string.ActionBotDocumentRentalAgreement)); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeBankStatement) { - actionBar.setTitle(LocaleController.getString("ActionBotDocumentBankStatement", R.string.ActionBotDocumentBankStatement)); + actionBar.setTitle(LocaleController.getString(R.string.ActionBotDocumentBankStatement)); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeUtilityBill) { - actionBar.setTitle(LocaleController.getString("ActionBotDocumentUtilityBill", R.string.ActionBotDocumentUtilityBill)); + actionBar.setTitle(LocaleController.getString(R.string.ActionBotDocumentUtilityBill)); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypePassportRegistration) { - actionBar.setTitle(LocaleController.getString("ActionBotDocumentPassportRegistration", R.string.ActionBotDocumentPassportRegistration)); + actionBar.setTitle(LocaleController.getString(R.string.ActionBotDocumentPassportRegistration)); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeTemporaryRegistration) { - actionBar.setTitle(LocaleController.getString("ActionBotDocumentTemporaryRegistration", R.string.ActionBotDocumentTemporaryRegistration)); + actionBar.setTitle(LocaleController.getString(R.string.ActionBotDocumentTemporaryRegistration)); } headerCell = new HeaderCell(context); - headerCell.setText(LocaleController.getString("PassportDocuments", R.string.PassportDocuments)); + headerCell.setText(LocaleController.getString(R.string.PassportDocuments)); headerCell.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); linearLayout2.addView(headerCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -3178,18 +3178,18 @@ private void createAddressInterface(Context context) { bottomCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(context, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); if (currentBotId != 0) { - noAllDocumentsErrorText = LocaleController.getString("PassportAddAddressUploadInfo", R.string.PassportAddAddressUploadInfo); + noAllDocumentsErrorText = LocaleController.getString(R.string.PassportAddAddressUploadInfo); } else { if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeRentalAgreement) { - noAllDocumentsErrorText = LocaleController.getString("PassportAddAgreementInfo", R.string.PassportAddAgreementInfo); + noAllDocumentsErrorText = LocaleController.getString(R.string.PassportAddAgreementInfo); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeUtilityBill) { - noAllDocumentsErrorText = LocaleController.getString("PassportAddBillInfo", R.string.PassportAddBillInfo); + noAllDocumentsErrorText = LocaleController.getString(R.string.PassportAddBillInfo); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypePassportRegistration) { - noAllDocumentsErrorText = LocaleController.getString("PassportAddPassportRegistrationInfo", R.string.PassportAddPassportRegistrationInfo); + noAllDocumentsErrorText = LocaleController.getString(R.string.PassportAddPassportRegistrationInfo); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeTemporaryRegistration) { - noAllDocumentsErrorText = LocaleController.getString("PassportAddTemporaryRegistrationInfo", R.string.PassportAddTemporaryRegistrationInfo); + noAllDocumentsErrorText = LocaleController.getString(R.string.PassportAddTemporaryRegistrationInfo); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeBankStatement) { - noAllDocumentsErrorText = LocaleController.getString("PassportAddBankInfo", R.string.PassportAddBankInfo); + noAllDocumentsErrorText = LocaleController.getString(R.string.PassportAddBankInfo); } else { noAllDocumentsErrorText = ""; } @@ -3212,7 +3212,7 @@ private void createAddressInterface(Context context) { if (currentDocumentsType.translation_required) { headerCell = new HeaderCell(context); - headerCell.setText(LocaleController.getString("PassportTranslation", R.string.PassportTranslation)); + headerCell.setText(LocaleController.getString(R.string.PassportTranslation)); headerCell.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); linearLayout2.addView(headerCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -3232,18 +3232,18 @@ private void createAddressInterface(Context context) { bottomCellTranslation.setBackgroundDrawable(Theme.getThemedDrawableByKey(context, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); if (currentBotId != 0) { - noAllTranslationErrorText = LocaleController.getString("PassportAddTranslationUploadInfo", R.string.PassportAddTranslationUploadInfo); + noAllTranslationErrorText = LocaleController.getString(R.string.PassportAddTranslationUploadInfo); } else { if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeRentalAgreement) { - noAllTranslationErrorText = LocaleController.getString("PassportAddTranslationAgreementInfo", R.string.PassportAddTranslationAgreementInfo); + noAllTranslationErrorText = LocaleController.getString(R.string.PassportAddTranslationAgreementInfo); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeUtilityBill) { - noAllTranslationErrorText = LocaleController.getString("PassportAddTranslationBillInfo", R.string.PassportAddTranslationBillInfo); + noAllTranslationErrorText = LocaleController.getString(R.string.PassportAddTranslationBillInfo); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypePassportRegistration) { - noAllTranslationErrorText = LocaleController.getString("PassportAddTranslationPassportRegistrationInfo", R.string.PassportAddTranslationPassportRegistrationInfo); + noAllTranslationErrorText = LocaleController.getString(R.string.PassportAddTranslationPassportRegistrationInfo); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeTemporaryRegistration) { - noAllTranslationErrorText = LocaleController.getString("PassportAddTranslationTemporaryRegistrationInfo", R.string.PassportAddTranslationTemporaryRegistrationInfo); + noAllTranslationErrorText = LocaleController.getString(R.string.PassportAddTranslationTemporaryRegistrationInfo); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeBankStatement) { - noAllTranslationErrorText = LocaleController.getString("PassportAddTranslationBankInfo", R.string.PassportAddTranslationBankInfo); + noAllTranslationErrorText = LocaleController.getString(R.string.PassportAddTranslationBankInfo); } else { noAllTranslationErrorText = ""; } @@ -3265,11 +3265,11 @@ private void createAddressInterface(Context context) { linearLayout2.addView(bottomCellTranslation, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } } else { - actionBar.setTitle(LocaleController.getString("PassportAddress", R.string.PassportAddress)); + actionBar.setTitle(LocaleController.getString(R.string.PassportAddress)); } headerCell = new HeaderCell(context); - headerCell.setText(LocaleController.getString("PassportAddressHeader", R.string.PassportAddressHeader)); + headerCell.setText(LocaleController.getString(R.string.PassportAddressHeader)); headerCell.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); linearLayout2.addView(headerCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -3375,27 +3375,27 @@ protected void onDraw(Canvas canvas) { final String key; switch (a) { case FIELD_STREET1: - inputFields[a].setHintText(LocaleController.getString("PassportStreet1", R.string.PassportStreet1)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportStreet1)); key = "street_line1"; break; case FIELD_STREET2: - inputFields[a].setHintText(LocaleController.getString("PassportStreet2", R.string.PassportStreet2)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportStreet2)); key = "street_line2"; break; case FIELD_CITY: - inputFields[a].setHintText(LocaleController.getString("PassportCity", R.string.PassportCity)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportCity)); key = "city"; break; case FIELD_STATE: - inputFields[a].setHintText(LocaleController.getString("PassportState", R.string.PassportState)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportState)); key = "state"; break; case FIELD_COUNTRY: - inputFields[a].setHintText(LocaleController.getString("PassportCountry", R.string.PassportCountry)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportCountry)); key = "country_code"; break; case FIELD_POSTCODE: - inputFields[a].setHintText(LocaleController.getString("PassportPostcode", R.string.PassportPostcode)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportPostcode)); key = "post_code"; break; default: @@ -3433,7 +3433,7 @@ public void afterTextChanged(Editable s) { } ignore = false; if (error) { - field.setErrorText(LocaleController.getString("PassportUseLatinOnly", R.string.PassportUseLatinOnly)); + field.setErrorText(LocaleController.getString(R.string.PassportUseLatinOnly)); } else { checkFieldForError(field, key, s, false); } @@ -3504,9 +3504,9 @@ public void afterTextChanged(Editable s) { settingsCell1.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); settingsCell1.setBackgroundDrawable(Theme.getSelectorDrawable(true)); if (currentDocumentsType == null) { - settingsCell1.setText(LocaleController.getString("PassportDeleteInfo", R.string.PassportDeleteInfo), false); + settingsCell1.setText(LocaleController.getString(R.string.PassportDeleteInfo), false); } else { - settingsCell1.setText(LocaleController.getString("PassportDeleteDocument", R.string.PassportDeleteDocument), false); + settingsCell1.setText(LocaleController.getString(R.string.PassportDeleteDocument), false); } linearLayout2.addView(settingsCell1, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); settingsCell1.setOnClickListener(v -> createDocumentDeleteAlert()); @@ -3528,7 +3528,7 @@ private void createDocumentDeleteAlert() { final boolean[] checks = new boolean[]{true}; AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialog, which) -> { if (!documentOnly) { currentValues.clear(); } @@ -3536,14 +3536,14 @@ private void createDocumentDeleteAlert() { delegate.deleteValue(currentType, currentDocumentsType, availableDocumentTypes, checks[0], null, null); finishFragment(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.AppName)); if (documentOnly && currentDocumentsType == null && currentType.type instanceof TLRPC.TL_secureValueTypeAddress) { - builder.setMessage(LocaleController.getString("PassportDeleteAddressAlert", R.string.PassportDeleteAddressAlert)); + builder.setMessage(LocaleController.getString(R.string.PassportDeleteAddressAlert)); } else if (documentOnly && currentDocumentsType == null && currentType.type instanceof TLRPC.TL_secureValueTypePersonalDetails) { - builder.setMessage(LocaleController.getString("PassportDeletePersonalAlert", R.string.PassportDeletePersonalAlert)); + builder.setMessage(LocaleController.getString(R.string.PassportDeletePersonalAlert)); } else { - builder.setMessage(LocaleController.getString("PassportDeleteDocumentAlert", R.string.PassportDeleteDocumentAlert)); + builder.setMessage(LocaleController.getString(R.string.PassportDeleteDocumentAlert)); } if (!documentOnly && currentDocumentsType != null) { @@ -3551,9 +3551,9 @@ private void createDocumentDeleteAlert() { CheckBoxCell cell = new CheckBoxCell(getParentActivity(), 1); cell.setBackgroundDrawable(Theme.getSelectorDrawable(false)); if (currentType.type instanceof TLRPC.TL_secureValueTypeAddress) { - cell.setText(LocaleController.getString("PassportDeleteDocumentAddress", R.string.PassportDeleteDocumentAddress), "", true, false); + cell.setText(LocaleController.getString(R.string.PassportDeleteDocumentAddress), "", true, false); } else if (currentType.type instanceof TLRPC.TL_secureValueTypePersonalDetails) { - cell.setText(LocaleController.getString("PassportDeleteDocumentPersonal", R.string.PassportDeleteDocumentPersonal), "", true, false); + cell.setText(LocaleController.getString(R.string.PassportDeleteDocumentPersonal), "", true, false); } cell.setPadding(LocaleController.isRTL ? AndroidUtilities.dp(16) : AndroidUtilities.dp(8), 0, LocaleController.isRTL ? AndroidUtilities.dp(8) : AndroidUtilities.dp(16), 0); frameLayout.addView(cell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.TOP | Gravity.LEFT)); @@ -3885,9 +3885,9 @@ private void createIdentityInterface(final Context context) { if (currentDocumentsType != null) { headerCell = new HeaderCell(context); if (documentOnly) { - headerCell.setText(LocaleController.getString("PassportDocuments", R.string.PassportDocuments)); + headerCell.setText(LocaleController.getString(R.string.PassportDocuments)); } else { - headerCell.setText(LocaleController.getString("PassportRequiredDocuments", R.string.PassportRequiredDocuments)); + headerCell.setText(LocaleController.getString(R.string.PassportRequiredDocuments)); } headerCell.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); linearLayout2.addView(headerCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -3912,7 +3912,7 @@ private void createIdentityInterface(final Context context) { uploadReverseCell = new TextDetailSettingsCell(context); uploadReverseCell.setBackgroundDrawable(Theme.getSelectorDrawable(true)); - uploadReverseCell.setTextAndValue(LocaleController.getString("PassportReverseSide", R.string.PassportReverseSide), LocaleController.getString("PassportReverseSideInfo", R.string.PassportReverseSideInfo), divider); + uploadReverseCell.setTextAndValue(LocaleController.getString(R.string.PassportReverseSide), LocaleController.getString(R.string.PassportReverseSideInfo), divider); linearLayout2.addView(uploadReverseCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); uploadReverseCell.setOnClickListener(v -> { uploadingFileType = UPLOADING_TYPE_REVERSE; @@ -3926,7 +3926,7 @@ private void createIdentityInterface(final Context context) { uploadSelfieCell = new TextDetailSettingsCell(context); uploadSelfieCell.setBackgroundDrawable(Theme.getSelectorDrawable(true)); - uploadSelfieCell.setTextAndValue(LocaleController.getString("PassportSelfie", R.string.PassportSelfie), LocaleController.getString("PassportSelfieInfo", R.string.PassportSelfieInfo), currentType.translation_required); + uploadSelfieCell.setTextAndValue(LocaleController.getString(R.string.PassportSelfie), LocaleController.getString(R.string.PassportSelfieInfo), currentType.translation_required); linearLayout2.addView(uploadSelfieCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); uploadSelfieCell.setOnClickListener(v -> { uploadingFileType = UPLOADING_TYPE_SELFIE; @@ -3936,12 +3936,12 @@ private void createIdentityInterface(final Context context) { bottomCell = new TextInfoPrivacyCell(context); bottomCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(context, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); - bottomCell.setText(LocaleController.getString("PassportPersonalUploadInfo", R.string.PassportPersonalUploadInfo)); + bottomCell.setText(LocaleController.getString(R.string.PassportPersonalUploadInfo)); linearLayout2.addView(bottomCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); if (currentDocumentsType.translation_required) { headerCell = new HeaderCell(context); - headerCell.setText(LocaleController.getString("PassportTranslation", R.string.PassportTranslation)); + headerCell.setText(LocaleController.getString(R.string.PassportTranslation)); headerCell.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); linearLayout2.addView(headerCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -3961,16 +3961,16 @@ private void createIdentityInterface(final Context context) { bottomCellTranslation.setBackgroundDrawable(Theme.getThemedDrawableByKey(context, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); if (currentBotId != 0) { - noAllTranslationErrorText = LocaleController.getString("PassportAddTranslationUploadInfo", R.string.PassportAddTranslationUploadInfo); + noAllTranslationErrorText = LocaleController.getString(R.string.PassportAddTranslationUploadInfo); } else { if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypePassport) { - noAllTranslationErrorText = LocaleController.getString("PassportAddPassportInfo", R.string.PassportAddPassportInfo); + noAllTranslationErrorText = LocaleController.getString(R.string.PassportAddPassportInfo); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeInternalPassport) { - noAllTranslationErrorText = LocaleController.getString("PassportAddInternalPassportInfo", R.string.PassportAddInternalPassportInfo); + noAllTranslationErrorText = LocaleController.getString(R.string.PassportAddInternalPassportInfo); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeIdentityCard) { - noAllTranslationErrorText = LocaleController.getString("PassportAddIdentityCardInfo", R.string.PassportAddIdentityCardInfo); + noAllTranslationErrorText = LocaleController.getString(R.string.PassportAddIdentityCardInfo); } else if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeDriverLicense) { - noAllTranslationErrorText = LocaleController.getString("PassportAddDriverLicenceInfo", R.string.PassportAddDriverLicenceInfo); + noAllTranslationErrorText = LocaleController.getString(R.string.PassportAddDriverLicenceInfo); } else { noAllTranslationErrorText = ""; } @@ -3994,7 +3994,7 @@ private void createIdentityInterface(final Context context) { } else if (Build.VERSION.SDK_INT >= 18) { scanDocumentCell = new TextSettingsCell(context); scanDocumentCell.setBackgroundDrawable(Theme.getSelectorDrawable(true)); - scanDocumentCell.setText(LocaleController.getString("PassportScanPassport", R.string.PassportScanPassport), false); + scanDocumentCell.setText(LocaleController.getString(R.string.PassportScanPassport), false); linearLayout2.addView(scanDocumentCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); scanDocumentCell.setOnClickListener(v -> { if (Build.VERSION.SDK_INT >= 23 && getParentActivity().checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { @@ -4018,11 +4018,11 @@ public void didFindMrzInfo(MrzRecognizer.Result result) { switch (result.gender) { case MrzRecognizer.Result.GENDER_MALE: currentGender = "male"; - inputFields[FIELD_GENDER].setText(LocaleController.getString("PassportMale", R.string.PassportMale)); + inputFields[FIELD_GENDER].setText(LocaleController.getString(R.string.PassportMale)); break; case MrzRecognizer.Result.GENDER_FEMALE: currentGender = "female"; - inputFields[FIELD_GENDER].setText(LocaleController.getString("PassportFemale", R.string.PassportFemale)); + inputFields[FIELD_GENDER].setText(LocaleController.getString(R.string.PassportFemale)); break; } } @@ -4050,15 +4050,15 @@ public void didFindMrzInfo(MrzRecognizer.Result result) { bottomCell = new TextInfoPrivacyCell(context); bottomCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(context, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); - bottomCell.setText(LocaleController.getString("PassportScanPassportInfo", R.string.PassportScanPassportInfo)); + bottomCell.setText(LocaleController.getString(R.string.PassportScanPassportInfo)); linearLayout2.addView(bottomCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } headerCell = new HeaderCell(context); if (documentOnly) { - headerCell.setText(LocaleController.getString("PassportDocument", R.string.PassportDocument)); + headerCell.setText(LocaleController.getString(R.string.PassportDocument)); } else { - headerCell.setText(LocaleController.getString("PassportPersonal", R.string.PassportPersonal)); + headerCell.setText(LocaleController.getString(R.string.PassportPersonal)); } headerCell.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); linearLayout2.addView(headerCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -4182,12 +4182,12 @@ protected void onDraw(Canvas canvas) { int currentYearDiff; String title; if (num == FIELD_EXPIRE) { - title = LocaleController.getString("PassportSelectExpiredDate", R.string.PassportSelectExpiredDate); + title = LocaleController.getString(R.string.PassportSelectExpiredDate); minYear = 0; maxYear = 20; currentYearDiff = 0; } else { - title = LocaleController.getString("PassportSelectBithdayDate", R.string.PassportSelectBithdayDate); + title = LocaleController.getString(R.string.PassportSelectBithdayDate); minYear = -120; maxYear = 0; currentYearDiff = -18; @@ -4210,9 +4210,9 @@ protected void onDraw(Canvas canvas) { field1.setText(String.format(Locale.US, "%02d.%02d.%d", dayOfMonth1, month + 1, year1)); }); if (num == FIELD_EXPIRE) { - builder.setNegativeButton(LocaleController.getString("PassportSelectNotExpire", R.string.PassportSelectNotExpire), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.PassportSelectNotExpire), (dialog, which) -> { currentExpireDate[0] = currentExpireDate[1] = currentExpireDate[2] = 0; - field1.setText(LocaleController.getString("PassportNoExpireDate", R.string.PassportNoExpireDate)); + field1.setText(LocaleController.getString(R.string.PassportNoExpireDate)); }); } showDialog(builder.create()); @@ -4231,20 +4231,20 @@ protected void onDraw(Canvas canvas) { } if (event.getAction() == MotionEvent.ACTION_UP) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("PassportSelectGender", R.string.PassportSelectGender)); + builder.setTitle(LocaleController.getString(R.string.PassportSelectGender)); builder.setItems(new CharSequence[]{ - LocaleController.getString("PassportMale", R.string.PassportMale), - LocaleController.getString("PassportFemale", R.string.PassportFemale) + LocaleController.getString(R.string.PassportMale), + LocaleController.getString(R.string.PassportFemale) }, (dialogInterface, i) -> { if (i == 0) { currentGender = "male"; - inputFields[FIELD_GENDER].setText(LocaleController.getString("PassportMale", R.string.PassportMale)); + inputFields[FIELD_GENDER].setText(LocaleController.getString(R.string.PassportMale)); } else if (i == 1) { currentGender = "female"; - inputFields[FIELD_GENDER].setText(LocaleController.getString("PassportFemale", R.string.PassportFemale)); + inputFields[FIELD_GENDER].setText(LocaleController.getString(R.string.PassportFemale)); } }); - builder.setPositiveButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); } return true; @@ -4261,58 +4261,58 @@ protected void onDraw(Canvas canvas) { switch (a) { case FIELD_NAME: if (currentType.native_names) { - inputFields[a].setHintText(LocaleController.getString("PassportNameLatin", R.string.PassportNameLatin)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportNameLatin)); } else { - inputFields[a].setHintText(LocaleController.getString("PassportName", R.string.PassportName)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportName)); } key = "first_name"; values = currentValues; break; case FIELD_MIDNAME: if (currentType.native_names) { - inputFields[a].setHintText(LocaleController.getString("PassportMidnameLatin", R.string.PassportMidnameLatin)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportMidnameLatin)); } else { - inputFields[a].setHintText(LocaleController.getString("PassportMidname", R.string.PassportMidname)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportMidname)); } key = "middle_name"; values = currentValues; break; case FIELD_SURNAME: if (currentType.native_names) { - inputFields[a].setHintText(LocaleController.getString("PassportSurnameLatin", R.string.PassportSurnameLatin)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportSurnameLatin)); } else { - inputFields[a].setHintText(LocaleController.getString("PassportSurname", R.string.PassportSurname)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportSurname)); } key = "last_name"; values = currentValues; break; case FIELD_BIRTHDAY: - inputFields[a].setHintText(LocaleController.getString("PassportBirthdate", R.string.PassportBirthdate)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportBirthdate)); key = "birth_date"; values = currentValues; break; case FIELD_GENDER: - inputFields[a].setHintText(LocaleController.getString("PassportGender", R.string.PassportGender)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportGender)); key = "gender"; values = currentValues; break; case FIELD_CITIZENSHIP: - inputFields[a].setHintText(LocaleController.getString("PassportCitizenship", R.string.PassportCitizenship)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportCitizenship)); key = "country_code"; values = currentValues; break; case FIELD_RESIDENCE: - inputFields[a].setHintText(LocaleController.getString("PassportResidence", R.string.PassportResidence)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportResidence)); key = "residence_country_code"; values = currentValues; break; case FIELD_CARDNUMBER: - inputFields[a].setHintText(LocaleController.getString("PassportDocumentNumber", R.string.PassportDocumentNumber)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportDocumentNumber)); key = "document_no"; values = currentDocumentValues; break; case FIELD_EXPIRE: - inputFields[a].setHintText(LocaleController.getString("PassportExpired", R.string.PassportExpired)); + inputFields[a].setHintText(LocaleController.getString(R.string.PassportExpired)); key = "expiry_date"; values = currentDocumentValues; break; @@ -4351,7 +4351,7 @@ public void afterTextChanged(Editable s) { } } if (error && !allowNonLatinName) { - field.setErrorText(LocaleController.getString("PassportUseLatinOnly", R.string.PassportUseLatinOnly)); + field.setErrorText(LocaleController.getString(R.string.PassportUseLatinOnly)); } else { nonLatinNames[num] = error; checkFieldForError(field, key, s, false); @@ -4576,9 +4576,9 @@ public void afterTextChanged(Editable s) { settingsCell1.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); settingsCell1.setBackgroundDrawable(Theme.getSelectorDrawable(true)); if (currentDocumentsType == null) { - settingsCell1.setText(LocaleController.getString("PassportDeleteInfo", R.string.PassportDeleteInfo), false); + settingsCell1.setText(LocaleController.getString(R.string.PassportDeleteInfo), false); } else { - settingsCell1.setText(LocaleController.getString("PassportDeleteDocument", R.string.PassportDeleteDocument), false); + settingsCell1.setText(LocaleController.getString(R.string.PassportDeleteDocument), false); } linearLayout2.addView(settingsCell1, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); settingsCell1.setOnClickListener(v -> createDocumentDeleteAlert()); @@ -4600,7 +4600,7 @@ private void updateInterfaceStringsForDocumentType() { if (currentDocumentsType != null) { actionBar.setTitle(getTextForType(currentDocumentsType.type)); } else { - actionBar.setTitle(LocaleController.getString("PassportPersonal", R.string.PassportPersonal)); + actionBar.setTitle(LocaleController.getString(R.string.PassportPersonal)); } updateUploadText(UPLOADING_TYPE_FRONT); updateUploadText(UPLOADING_TYPE_REVERSE); @@ -4614,9 +4614,9 @@ private void updateUploadText(int type) { return; } if (documents.size() >= 1) { - uploadDocumentCell.setText(LocaleController.getString("PassportUploadAdditinalDocument", R.string.PassportUploadAdditinalDocument), false); + uploadDocumentCell.setText(LocaleController.getString(R.string.PassportUploadAdditinalDocument), false); } else { - uploadDocumentCell.setText(LocaleController.getString("PassportUploadDocument", R.string.PassportUploadDocument), false); + uploadDocumentCell.setText(LocaleController.getString(R.string.PassportUploadDocument), false); } } else if (type == UPLOADING_TYPE_SELFIE) { if (uploadSelfieCell == null) { @@ -4628,9 +4628,9 @@ private void updateUploadText(int type) { return; } if (translationDocuments.size() >= 1) { - uploadTranslationCell.setText(LocaleController.getString("PassportUploadAdditinalDocument", R.string.PassportUploadAdditinalDocument), false); + uploadTranslationCell.setText(LocaleController.getString(R.string.PassportUploadAdditinalDocument), false); } else { - uploadTranslationCell.setText(LocaleController.getString("PassportUploadDocument", R.string.PassportUploadDocument), false); + uploadTranslationCell.setText(LocaleController.getString(R.string.PassportUploadDocument), false); } } else if (type == UPLOADING_TYPE_FRONT) { if (uploadFrontCell == null) { @@ -4641,9 +4641,9 @@ private void updateUploadText(int type) { currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeIdentityCard || currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeDriverLicense); if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypePassport || currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeInternalPassport) { - uploadFrontCell.setTextAndValue(LocaleController.getString("PassportMainPage", R.string.PassportMainPage), LocaleController.getString("PassportMainPageInfo", R.string.PassportMainPageInfo), divider); + uploadFrontCell.setTextAndValue(LocaleController.getString(R.string.PassportMainPage), LocaleController.getString(R.string.PassportMainPageInfo), divider); } else { - uploadFrontCell.setTextAndValue(LocaleController.getString("PassportFrontSide", R.string.PassportFrontSide), LocaleController.getString("PassportFrontSideInfo", R.string.PassportFrontSideInfo), divider); + uploadFrontCell.setTextAndValue(LocaleController.getString(R.string.PassportFrontSide), LocaleController.getString(R.string.PassportFrontSideInfo), divider); } uploadFrontCell.setVisibility(frontDocument != null ? View.GONE : View.VISIBLE); } else if (type == UPLOADING_TYPE_REVERSE) { @@ -4745,10 +4745,10 @@ private void setFieldValues(HashMap values, EditTextBoldCursor e case "gender": if ("male".equals(value)) { currentGender = value; - editText.setText(LocaleController.getString("PassportMale", R.string.PassportMale)); + editText.setText(LocaleController.getString(R.string.PassportMale)); } else if ("female".equals(value)) { currentGender = value; - editText.setText(LocaleController.getString("PassportFemale", R.string.PassportFemale)); + editText.setText(LocaleController.getString(R.string.PassportFemale)); } break; case "expiry_date": @@ -4765,7 +4765,7 @@ private void setFieldValues(HashMap values, EditTextBoldCursor e } if (!ok) { currentExpireDate[0] = currentExpireDate[1] = currentExpireDate[2] = 0; - editText.setText(LocaleController.getString("PassportNoExpireDate", R.string.PassportNoExpireDate)); + editText.setText(LocaleController.getString(R.string.PassportNoExpireDate)); } break; default: @@ -4823,27 +4823,27 @@ private void addDocumentView(final SecureDocument document, final int type) { documentsCells.put(document, cell); String hash = getDocumentHash(document); if (type == UPLOADING_TYPE_SELFIE) { - text = LocaleController.getString("PassportSelfie", R.string.PassportSelfie); + text = LocaleController.getString(R.string.PassportSelfie); selfieLayout.addView(cell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); key = "selfie" + hash; } else if (type == UPLOADING_TYPE_TRANSLATION) { - text = LocaleController.getString("AttachPhoto", R.string.AttachPhoto); + text = LocaleController.getString(R.string.AttachPhoto); translationLayout.addView(cell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); key = "translation" + hash; } else if (type == UPLOADING_TYPE_FRONT) { if (currentDocumentsType.type instanceof TLRPC.TL_secureValueTypePassport || currentDocumentsType.type instanceof TLRPC.TL_secureValueTypeInternalPassport) { - text = LocaleController.getString("PassportMainPage", R.string.PassportMainPage); + text = LocaleController.getString(R.string.PassportMainPage); } else { - text = LocaleController.getString("PassportFrontSide", R.string.PassportFrontSide); + text = LocaleController.getString(R.string.PassportFrontSide); } frontLayout.addView(cell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); key = "front" + hash; } else if (type == UPLOADING_TYPE_REVERSE) { - text = LocaleController.getString("PassportReverseSide", R.string.PassportReverseSide); + text = LocaleController.getString(R.string.PassportReverseSide); reverseLayout.addView(cell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); key = "reverse" + hash; } else { - text = LocaleController.getString("AttachPhoto", R.string.AttachPhoto); + text = LocaleController.getString(R.string.AttachPhoto); documentsLayout.addView(cell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); key = "files" + hash; } @@ -4892,13 +4892,13 @@ private void addDocumentView(final SecureDocument document, final int type) { cell.setOnLongClickListener(v -> { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); if (type == UPLOADING_TYPE_SELFIE) { - builder.setMessage(LocaleController.getString("PassportDeleteSelfie", R.string.PassportDeleteSelfie)); + builder.setMessage(LocaleController.getString(R.string.PassportDeleteSelfie)); } else { - builder.setMessage(LocaleController.getString("PassportDeleteScan", R.string.PassportDeleteScan)); + builder.setMessage(LocaleController.getString(R.string.PassportDeleteScan)); } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialog, which) -> { documentsCells.remove(document); if (type == UPLOADING_TYPE_SELFIE) { selfieDocument = null; @@ -4984,27 +4984,27 @@ private TextDetailSecureCell getViewByType(TLRPC.TL_secureRequiredType requiredT private String getTextForType(TLRPC.SecureValueType type) { if (type instanceof TLRPC.TL_secureValueTypePassport) { - return LocaleController.getString("ActionBotDocumentPassport", R.string.ActionBotDocumentPassport); + return LocaleController.getString(R.string.ActionBotDocumentPassport); } else if (type instanceof TLRPC.TL_secureValueTypeDriverLicense) { - return LocaleController.getString("ActionBotDocumentDriverLicence", R.string.ActionBotDocumentDriverLicence); + return LocaleController.getString(R.string.ActionBotDocumentDriverLicence); } else if (type instanceof TLRPC.TL_secureValueTypeIdentityCard) { - return LocaleController.getString("ActionBotDocumentIdentityCard", R.string.ActionBotDocumentIdentityCard); + return LocaleController.getString(R.string.ActionBotDocumentIdentityCard); } else if (type instanceof TLRPC.TL_secureValueTypeUtilityBill) { - return LocaleController.getString("ActionBotDocumentUtilityBill", R.string.ActionBotDocumentUtilityBill); + return LocaleController.getString(R.string.ActionBotDocumentUtilityBill); } else if (type instanceof TLRPC.TL_secureValueTypeBankStatement) { - return LocaleController.getString("ActionBotDocumentBankStatement", R.string.ActionBotDocumentBankStatement); + return LocaleController.getString(R.string.ActionBotDocumentBankStatement); } else if (type instanceof TLRPC.TL_secureValueTypeRentalAgreement) { - return LocaleController.getString("ActionBotDocumentRentalAgreement", R.string.ActionBotDocumentRentalAgreement); + return LocaleController.getString(R.string.ActionBotDocumentRentalAgreement); } else if (type instanceof TLRPC.TL_secureValueTypeInternalPassport) { - return LocaleController.getString("ActionBotDocumentInternalPassport", R.string.ActionBotDocumentInternalPassport); + return LocaleController.getString(R.string.ActionBotDocumentInternalPassport); } else if (type instanceof TLRPC.TL_secureValueTypePassportRegistration) { - return LocaleController.getString("ActionBotDocumentPassportRegistration", R.string.ActionBotDocumentPassportRegistration); + return LocaleController.getString(R.string.ActionBotDocumentPassportRegistration); } else if (type instanceof TLRPC.TL_secureValueTypeTemporaryRegistration) { - return LocaleController.getString("ActionBotDocumentTemporaryRegistration", R.string.ActionBotDocumentTemporaryRegistration); + return LocaleController.getString(R.string.ActionBotDocumentTemporaryRegistration); } else if (type instanceof TLRPC.TL_secureValueTypePhone) { - return LocaleController.getString("ActionBotDocumentPhone", R.string.ActionBotDocumentPhone); + return LocaleController.getString(R.string.ActionBotDocumentPhone); } else if (type instanceof TLRPC.TL_secureValueTypeEmail) { - return LocaleController.getString("ActionBotDocumentEmail", R.string.ActionBotDocumentEmail); + return LocaleController.getString(R.string.ActionBotDocumentEmail); } return ""; } @@ -5065,7 +5065,7 @@ private void setTypeValue(TLRPC.TL_secureRequiredType requiredType, String text, if (availableDocumentTypesCount > 1) { stringBuilder.append(getTextForType(documentRequiredType.type)); } else if (TextUtils.isEmpty(documentsJson)) { - stringBuilder.append(LocaleController.getString("PassportDocuments", R.string.PassportDocuments)); + stringBuilder.append(LocaleController.getString(R.string.PassportDocuments)); } } if (json != null || documentsJson != null) { @@ -5174,9 +5174,9 @@ private void setTypeValue(TLRPC.TL_secureRequiredType requiredType, String text, break; case "gender": if ("male".equals(jsonValue)) { - stringBuilder.append(LocaleController.getString("PassportMale", R.string.PassportMale)); + stringBuilder.append(LocaleController.getString(R.string.PassportMale)); } else if ("female".equals(jsonValue)) { - stringBuilder.append(LocaleController.getString("PassportFemale", R.string.PassportFemale)); + stringBuilder.append(LocaleController.getString(R.string.PassportFemale)); } break; default: @@ -5214,23 +5214,23 @@ private void setTypeValue(TLRPC.TL_secureRequiredType requiredType, String text, if (requiredType.type instanceof TLRPC.TL_secureValueTypePersonalDetails) { if (TextUtils.isEmpty(value)) { if (documentRequiredType == null) { - value = LocaleController.getString("PassportPersonalDetailsInfo", R.string.PassportPersonalDetailsInfo); + value = LocaleController.getString(R.string.PassportPersonalDetailsInfo); } else { if (currentActivityType == TYPE_MANAGE) { - value = LocaleController.getString("PassportDocuments", R.string.PassportDocuments); + value = LocaleController.getString(R.string.PassportDocuments); } else { if (availableDocumentTypesCount == 1) { if (documentRequiredType.type instanceof TLRPC.TL_secureValueTypePassport) { - value = LocaleController.getString("PassportIdentityPassport", R.string.PassportIdentityPassport); + value = LocaleController.getString(R.string.PassportIdentityPassport); } else if (documentRequiredType.type instanceof TLRPC.TL_secureValueTypeInternalPassport) { - value = LocaleController.getString("PassportIdentityInternalPassport", R.string.PassportIdentityInternalPassport); + value = LocaleController.getString(R.string.PassportIdentityInternalPassport); } else if (documentRequiredType.type instanceof TLRPC.TL_secureValueTypeDriverLicense) { - value = LocaleController.getString("PassportIdentityDriverLicence", R.string.PassportIdentityDriverLicence); + value = LocaleController.getString(R.string.PassportIdentityDriverLicence); } else if (documentRequiredType.type instanceof TLRPC.TL_secureValueTypeIdentityCard) { - value = LocaleController.getString("PassportIdentityID", R.string.PassportIdentityID); + value = LocaleController.getString(R.string.PassportIdentityID); } } else { - value = LocaleController.getString("PassportIdentityDocumentInfo", R.string.PassportIdentityDocumentInfo); + value = LocaleController.getString(R.string.PassportIdentityDocumentInfo); } } } @@ -5238,36 +5238,36 @@ private void setTypeValue(TLRPC.TL_secureRequiredType requiredType, String text, } else if (requiredType.type instanceof TLRPC.TL_secureValueTypeAddress) { if (TextUtils.isEmpty(value)) { if (documentRequiredType == null) { - value = LocaleController.getString("PassportAddressNoUploadInfo", R.string.PassportAddressNoUploadInfo); + value = LocaleController.getString(R.string.PassportAddressNoUploadInfo); } else { if (currentActivityType == TYPE_MANAGE) { - value = LocaleController.getString("PassportDocuments", R.string.PassportDocuments); + value = LocaleController.getString(R.string.PassportDocuments); } else { if (availableDocumentTypesCount == 1) { if (documentRequiredType.type instanceof TLRPC.TL_secureValueTypeRentalAgreement) { - value = LocaleController.getString("PassportAddAgreementInfo", R.string.PassportAddAgreementInfo); + value = LocaleController.getString(R.string.PassportAddAgreementInfo); } else if (documentRequiredType.type instanceof TLRPC.TL_secureValueTypeUtilityBill) { - value = LocaleController.getString("PassportAddBillInfo", R.string.PassportAddBillInfo); + value = LocaleController.getString(R.string.PassportAddBillInfo); } else if (documentRequiredType.type instanceof TLRPC.TL_secureValueTypePassportRegistration) { - value = LocaleController.getString("PassportAddPassportRegistrationInfo", R.string.PassportAddPassportRegistrationInfo); + value = LocaleController.getString(R.string.PassportAddPassportRegistrationInfo); } else if (documentRequiredType.type instanceof TLRPC.TL_secureValueTypeTemporaryRegistration) { - value = LocaleController.getString("PassportAddTemporaryRegistrationInfo", R.string.PassportAddTemporaryRegistrationInfo); + value = LocaleController.getString(R.string.PassportAddTemporaryRegistrationInfo); } else if (documentRequiredType.type instanceof TLRPC.TL_secureValueTypeBankStatement) { - value = LocaleController.getString("PassportAddBankInfo", R.string.PassportAddBankInfo); + value = LocaleController.getString(R.string.PassportAddBankInfo); } } else { - value = LocaleController.getString("PassportAddressInfo", R.string.PassportAddressInfo); + value = LocaleController.getString(R.string.PassportAddressInfo); } } } } } else if (requiredType.type instanceof TLRPC.TL_secureValueTypePhone) { if (TextUtils.isEmpty(value)) { - value = LocaleController.getString("PassportPhoneInfo", R.string.PassportPhoneInfo); + value = LocaleController.getString(R.string.PassportPhoneInfo); } } else if (requiredType.type instanceof TLRPC.TL_secureValueTypeEmail) { if (TextUtils.isEmpty(value)) { - value = LocaleController.getString("PassportEmailInfo", R.string.PassportEmailInfo); + value = LocaleController.getString(R.string.PassportEmailInfo); } } } @@ -5327,27 +5327,27 @@ private void checkNativeFields(boolean byEdit) { if (header != null) { headerCell.setText(LocaleController.formatString("PassportNativeHeaderLang", R.string.PassportNativeHeaderLang, header)); } else { - headerCell.setText(LocaleController.getString("PassportNativeHeader", R.string.PassportNativeHeader)); + headerCell.setText(LocaleController.getString(R.string.PassportNativeHeader)); } for (int a = 0; a < FIELD_NATIVE_COUNT; a++) { switch (a) { case FIELD_NATIVE_NAME: if (header != null) { - inputExtraFields[a].setHintText(LocaleController.getString("PassportName", R.string.PassportName)); + inputExtraFields[a].setHintText(LocaleController.getString(R.string.PassportName)); } else { inputExtraFields[a].setHintText(LocaleController.formatString("PassportNameCountry", R.string.PassportNameCountry, country)); } break; case FIELD_NATIVE_MIDNAME: if (header != null) { - inputExtraFields[a].setHintText(LocaleController.getString("PassportMidname", R.string.PassportMidname)); + inputExtraFields[a].setHintText(LocaleController.getString(R.string.PassportMidname)); } else { inputExtraFields[a].setHintText(LocaleController.formatString("PassportMidnameCountry", R.string.PassportMidnameCountry, country)); } break; case FIELD_NATIVE_SURNAME: if (header != null) { - inputExtraFields[a].setHintText(LocaleController.getString("PassportSurname", R.string.PassportSurname)); + inputExtraFields[a].setHintText(LocaleController.getString(R.string.PassportSurname)); } else { inputExtraFields[a].setHintText(LocaleController.formatString("PassportSurnameCountry", R.string.PassportSurnameCountry, country)); } @@ -5731,7 +5731,7 @@ public void run(final TLObject response, final TLRPC.TL_error error) { activity1.delegate = currentDelegate; presentFragment(activity1, true); } else { - showAlertWithText(LocaleController.getString("PassportEmail", R.string.PassportEmail), error1.text); + showAlertWithText(LocaleController.getString(R.string.PassportEmail), error1.text); if (errorRunnable != null) { errorRunnable.onError(error1.text, text); } @@ -5816,7 +5816,7 @@ private void deleteValueInternal(final TLRPC.TL_secureRequiredType requiredType, if (errorRunnable != null) { errorRunnable.onError(error.text, null); } - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + showAlertWithText(LocaleController.getString(R.string.AppName), error.text); } else { if (documentOnly) { if (documentRequiredType != null) { @@ -5886,31 +5886,31 @@ private TextDetailSecureCell addField(Context context, final TLRPC.TL_secureRequ if (requiredType.type instanceof TLRPC.TL_secureValueTypePersonalDetails) { String text; if (documentRequiredTypes == null || documentRequiredTypes.isEmpty()) { - text = LocaleController.getString("PassportPersonalDetails", R.string.PassportPersonalDetails); + text = LocaleController.getString(R.string.PassportPersonalDetails); } else if (documentOnly && documentRequiredTypes.size() == 1) { text = getTextForType(documentRequiredTypes.get(0).type); } else if (documentOnly && documentRequiredTypes.size() == 2) { text = LocaleController.formatString("PassportTwoDocuments", R.string.PassportTwoDocuments, getTextForType(documentRequiredTypes.get(0).type), getTextForType(documentRequiredTypes.get(1).type)); } else { - text = LocaleController.getString("PassportIdentityDocument", R.string.PassportIdentityDocument); + text = LocaleController.getString(R.string.PassportIdentityDocument); } view.setTextAndValue(text, "", !last); } else if (requiredType.type instanceof TLRPC.TL_secureValueTypeAddress) { String text; if (documentRequiredTypes == null || documentRequiredTypes.isEmpty()) { - text = LocaleController.getString("PassportAddress", R.string.PassportAddress); + text = LocaleController.getString(R.string.PassportAddress); } else if (documentOnly && documentRequiredTypes.size() == 1) { text = getTextForType(documentRequiredTypes.get(0).type); } else if (documentOnly && documentRequiredTypes.size() == 2) { text = LocaleController.formatString("PassportTwoDocuments", R.string.PassportTwoDocuments, getTextForType(documentRequiredTypes.get(0).type), getTextForType(documentRequiredTypes.get(1).type)); } else { - text = LocaleController.getString("PassportResidentialAddress", R.string.PassportResidentialAddress); + text = LocaleController.getString(R.string.PassportResidentialAddress); } view.setTextAndValue(text, "", !last); } else if (requiredType.type instanceof TLRPC.TL_secureValueTypePhone) { - view.setTextAndValue(LocaleController.getString("PassportPhone", R.string.PassportPhone), "", !last); + view.setTextAndValue(LocaleController.getString(R.string.PassportPhone), "", !last); } else if (requiredType.type instanceof TLRPC.TL_secureValueTypeEmail) { - view.setTextAndValue(LocaleController.getString("PassportEmail", R.string.PassportEmail), "", !last); + view.setTextAndValue(LocaleController.getString(R.string.PassportEmail), "", !last); } if (currentActivityType == TYPE_MANAGE) { linearLayout2.addView(view, linearLayout2.getChildCount() - 5, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -5931,35 +5931,35 @@ private TextDetailSecureCell addField(Context context, final TLRPC.TL_secureRequ if (requiredType.type instanceof TLRPC.TL_secureValueTypePersonalDetails || requiredType.type instanceof TLRPC.TL_secureValueTypeAddress) { if (documentsType == null && documentRequiredTypes != null && !documentRequiredTypes.isEmpty()) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Cancel), null); if (requiredType.type instanceof TLRPC.TL_secureValueTypePersonalDetails) { - builder.setTitle(LocaleController.getString("PassportIdentityDocument", R.string.PassportIdentityDocument)); + builder.setTitle(LocaleController.getString(R.string.PassportIdentityDocument)); } else if (requiredType.type instanceof TLRPC.TL_secureValueTypeAddress) { - builder.setTitle(LocaleController.getString("PassportAddress", R.string.PassportAddress)); + builder.setTitle(LocaleController.getString(R.string.PassportAddress)); } ArrayList strings = new ArrayList<>(); for (int a = 0, count = documentRequiredTypes.size(); a < count; a++) { TLRPC.TL_secureRequiredType documentType = documentRequiredTypes.get(a); if (documentType.type instanceof TLRPC.TL_secureValueTypeDriverLicense) { - strings.add(LocaleController.getString("PassportAddLicence", R.string.PassportAddLicence)); + strings.add(LocaleController.getString(R.string.PassportAddLicence)); } else if (documentType.type instanceof TLRPC.TL_secureValueTypePassport) { - strings.add(LocaleController.getString("PassportAddPassport", R.string.PassportAddPassport)); + strings.add(LocaleController.getString(R.string.PassportAddPassport)); } else if (documentType.type instanceof TLRPC.TL_secureValueTypeInternalPassport) { - strings.add(LocaleController.getString("PassportAddInternalPassport", R.string.PassportAddInternalPassport)); + strings.add(LocaleController.getString(R.string.PassportAddInternalPassport)); } else if (documentType.type instanceof TLRPC.TL_secureValueTypeIdentityCard) { - strings.add(LocaleController.getString("PassportAddCard", R.string.PassportAddCard)); + strings.add(LocaleController.getString(R.string.PassportAddCard)); } else if (documentType.type instanceof TLRPC.TL_secureValueTypeUtilityBill) { - strings.add(LocaleController.getString("PassportAddBill", R.string.PassportAddBill)); + strings.add(LocaleController.getString(R.string.PassportAddBill)); } else if (documentType.type instanceof TLRPC.TL_secureValueTypeBankStatement) { - strings.add(LocaleController.getString("PassportAddBank", R.string.PassportAddBank)); + strings.add(LocaleController.getString(R.string.PassportAddBank)); } else if (documentType.type instanceof TLRPC.TL_secureValueTypeRentalAgreement) { - strings.add(LocaleController.getString("PassportAddAgreement", R.string.PassportAddAgreement)); + strings.add(LocaleController.getString(R.string.PassportAddAgreement)); } else if (documentType.type instanceof TLRPC.TL_secureValueTypeTemporaryRegistration) { - strings.add(LocaleController.getString("PassportAddTemporaryRegistration", R.string.PassportAddTemporaryRegistration)); + strings.add(LocaleController.getString(R.string.PassportAddTemporaryRegistration)); } else if (documentType.type instanceof TLRPC.TL_secureValueTypePassportRegistration) { - strings.add(LocaleController.getString("PassportAddPassportRegistration", R.string.PassportAddPassportRegistration)); + strings.add(LocaleController.getString(R.string.PassportAddPassportRegistration)); } } @@ -5973,13 +5973,13 @@ private TextDetailSecureCell addField(Context context, final TLRPC.TL_secureRequ final TLRPC.TL_secureValue value = getValueByType(requiredType, false); if (value != null) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialog, which) -> { needShowProgress(); deleteValueInternal(requiredType, null, null, true, this::needHideProgress, (error, text) -> needHideProgress(), documentOnly); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setMessage(phoneField ? LocaleController.getString("PassportDeletePhoneAlert", R.string.PassportDeletePhoneAlert) : LocaleController.getString("PassportDeleteEmailAlert", R.string.PassportDeleteEmailAlert)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setMessage(phoneField ? LocaleController.getString(R.string.PassportDeletePhoneAlert) : LocaleController.getString(R.string.PassportDeleteEmailAlert)); showDialog(builder.create()); return; } @@ -6242,7 +6242,7 @@ private void showAlertWithText(String title, String text) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); builder.setTitle(title); builder.setMessage(text); showDialog(builder.create()); @@ -6273,9 +6273,9 @@ private void startPhoneVerification(boolean checkPermissions, final String phone if (!permissionsItems.isEmpty()) { if (getParentActivity().shouldShowRequestPermissionRationale(Manifest.permission.READ_PHONE_STATE)) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); - builder.setMessage(LocaleController.getString("AllowReadCall", R.string.AllowReadCall)); + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); + builder.setMessage(LocaleController.getString(R.string.AllowReadCall)); permissionsDialog = showDialog(builder.create()); } else { getParentActivity().requestPermissions(permissionsItems.toArray(new String[0]), 6); @@ -6383,7 +6383,7 @@ private void updatePasswordInterface() { if (currentPassword != null && !TextUtils.isEmpty(currentPassword.hint)) { inputFields[FIELD_PASSWORD].setHint(currentPassword.hint); } else { - inputFields[FIELD_PASSWORD].setHint(LocaleController.getString("LoginPassword", R.string.LoginPassword)); + inputFields[FIELD_PASSWORD].setHint(LocaleController.getString(R.string.LoginPassword)); } } } @@ -6596,7 +6596,7 @@ private void showAttachmentError() { if (getParentActivity() == null) { return; } - Toast toast = Toast.makeText(getParentActivity(), LocaleController.getString("UnsupportedAttachment", R.string.UnsupportedAttachment), Toast.LENGTH_SHORT); + Toast toast = Toast.makeText(getParentActivity(), LocaleController.getString(R.string.UnsupportedAttachment), Toast.LENGTH_SHORT); toast.show(); } @@ -6634,9 +6634,9 @@ public void onRequestPermissionsResultFragment(int requestCode, String[] permiss } if (grantResults != null && grantResults.length != 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setMessage(LocaleController.getString("PermissionNoAudioVideoWithHint", R.string.PermissionNoAudioVideoWithHint)); - builder.setNegativeButton(LocaleController.getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialog, which) -> { + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setMessage(LocaleController.getString(R.string.PermissionNoAudioVideoWithHint)); + builder.setNegativeButton(LocaleController.getString(R.string.PermissionOpenSettings), (dialog, which) -> { try { Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); @@ -6645,7 +6645,7 @@ public void onRequestPermissionsResultFragment(int requestCode, String[] permiss FileLog.e(e); } }); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); builder.show(); } } else if (requestCode == 19 && grantResults != null && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { @@ -6804,7 +6804,7 @@ private void openAttachMenu() { return; } if (uploadingFileType == UPLOADING_TYPE_DOCUMENTS && documents.size() >= 20) { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("PassportUploadMaxReached", R.string.PassportUploadMaxReached, LocaleController.formatPluralString("Files", 20))); + showAlertWithText(LocaleController.getString(R.string.AppName), LocaleController.formatString("PassportUploadMaxReached", R.string.PassportUploadMaxReached, LocaleController.formatPluralString("Files", 20))); return; } createChatAttachView(); @@ -6975,10 +6975,10 @@ private boolean checkDiscard() { return false; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialog, which) -> finishFragment()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setTitle(LocaleController.getString("DiscardChanges", R.string.DiscardChanges)); - builder.setMessage(LocaleController.getString("PassportDiscardChanges", R.string.PassportDiscardChanges)); + builder.setPositiveButton(LocaleController.getString(R.string.PassportDiscard), (dialog, which) -> finishFragment()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.DiscardChanges)); + builder.setMessage(LocaleController.getString(R.string.PassportDiscardChanges)); showDialog(builder.create()); return true; } @@ -7134,11 +7134,11 @@ private void processSelectedFiles(final ArrayList { @@ -7369,7 +7369,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { mailer.putExtra(Intent.EXTRA_TEXT, "Phone: " + phone + "\nApp version: " + version + "\nOS version: SDK " + Build.VERSION.SDK_INT + "\nDevice Name: " + Build.MANUFACTURER + Build.MODEL + "\nLocale: " + Locale.getDefault() + "\nError: " + lastError); getContext().startActivity(Intent.createChooser(mailer, "Send email...")); } catch (Exception e) { - AlertsCreator.showSimpleAlert(PassportActivity.this, LocaleController.getString("NoMailInstalled", R.string.NoMailInstalled)); + AlertsCreator.showSimpleAlert(PassportActivity.this, LocaleController.getString(R.string.NoMailInstalled)); } } }); @@ -7707,9 +7707,9 @@ public void run() { } else if (verificationType == 2 || verificationType == 4) { if (nextType == 4 || nextType == 2) { if (nextType == 4) { - timeText.setText(LocaleController.getString("Calling", R.string.Calling)); + timeText.setText(LocaleController.getString(R.string.Calling)); } else { - timeText.setText(LocaleController.getString("SendingSms", R.string.SendingSms)); + timeText.setText(LocaleController.getString(R.string.SendingSms)); } createCodeTimer(); TLRPC.TL_auth_resendCode req = new TLRPC.TL_auth_resendCode(); @@ -7827,10 +7827,10 @@ public void onNextPressed(String code) { public boolean onBackPressed(boolean force) { if (!force) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setMessage(LocaleController.getString("StopVerification", R.string.StopVerification)); - builder.setPositiveButton(LocaleController.getString("Continue", R.string.Continue), null); - builder.setNegativeButton(LocaleController.getString("Stop", R.string.Stop), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setMessage(LocaleController.getString(R.string.StopVerification)); + builder.setPositiveButton(LocaleController.getString(R.string.Continue), null); + builder.setNegativeButton(LocaleController.getString(R.string.Stop), (dialogInterface, i) -> { onBackPressed(true); setPage(0, true, null); }); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PaymentFormActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PaymentFormActivity.java index 49cff59ddb..aeaa6baab8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PaymentFormActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PaymentFormActivity.java @@ -97,6 +97,7 @@ import org.telegram.messenger.ApplicationLoader; import org.telegram.messenger.BuildVars; import org.telegram.messenger.ContactsController; +import org.telegram.messenger.DialogObject; import org.telegram.messenger.FileLog; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MessageObject; @@ -541,35 +542,35 @@ public void onResume() { public View createView(Context context) { switch (currentStep) { case STEP_SHIPPING_INFORMATION: - actionBar.setTitle(LocaleController.getString("PaymentShippingInfo", R.string.PaymentShippingInfo)); + actionBar.setTitle(LocaleController.getString(R.string.PaymentShippingInfo)); break; case STEP_SHIPPING_METHODS: - actionBar.setTitle(LocaleController.getString("PaymentShippingMethod", R.string.PaymentShippingMethod)); + actionBar.setTitle(LocaleController.getString(R.string.PaymentShippingMethod)); break; case STEP_PAYMENT_INFO: case STEP_CONFIRM_PASSWORD: if (paymentFormMethod != null && !TextUtils.isEmpty(paymentFormMethod.title)) { actionBar.setTitle(paymentFormMethod.title); } else { - actionBar.setTitle(LocaleController.getString("PaymentCardInfo", R.string.PaymentCardInfo)); + actionBar.setTitle(LocaleController.getString(R.string.PaymentCardInfo)); } break; case STEP_CHECKOUT: if (paymentForm.invoice.test) { - actionBar.setTitle("Test " + LocaleController.getString("PaymentCheckout", R.string.PaymentCheckout)); + actionBar.setTitle("Test " + LocaleController.getString(R.string.PaymentCheckout)); } else { - actionBar.setTitle(LocaleController.getString("PaymentCheckout", R.string.PaymentCheckout)); + actionBar.setTitle(LocaleController.getString(R.string.PaymentCheckout)); } break; case STEP_RECEIPT: if (paymentForm.invoice.test) { - actionBar.setTitle("Test " + LocaleController.getString("PaymentReceipt", R.string.PaymentReceipt)); + actionBar.setTitle("Test " + LocaleController.getString(R.string.PaymentReceipt)); } else { - actionBar.setTitle(LocaleController.getString("PaymentReceipt", R.string.PaymentReceipt)); + actionBar.setTitle(LocaleController.getString(R.string.PaymentReceipt)); } break; case STEP_SET_PASSWORD_EMAIL: - actionBar.setTitle(LocaleController.getString("PaymentPassword", R.string.PaymentPassword)); + actionBar.setTitle(LocaleController.getString(R.string.PaymentPassword)); break; } @@ -628,7 +629,7 @@ public void onItemClick(int id) { case STEP_CONFIRM_PASSWORD: case STEP_CHECKOUT: case STEP_SET_PASSWORD_EMAIL: - doneItem = menu.addItemWithWidth(done_button, R.drawable.ic_ab_done, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + doneItem = menu.addItemWithWidth(done_button, R.drawable.ic_ab_done, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); progressView = new ContextProgressView(context, 1); progressView.setAlpha(0.0f); progressView.setScaleX(0.1f); @@ -681,7 +682,7 @@ public void onItemClick(int id) { if (a == FIELD_STREET1) { headerCell[0] = new HeaderCell(context, resourcesProvider); headerCell[0].setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); - headerCell[0].setText(LocaleController.getString("PaymentShippingAddress", R.string.PaymentShippingAddress)); + headerCell[0].setText(LocaleController.getString(R.string.PaymentShippingAddress)); linearLayout2.addView(headerCell[0], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } else if (a == FIELD_NAME) { sectionCell[0] = new ShadowSectionCell(context, resourcesProvider); @@ -689,7 +690,7 @@ public void onItemClick(int id) { headerCell[1] = new HeaderCell(context, resourcesProvider); headerCell[1].setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); - headerCell[1].setText(LocaleController.getString("PaymentShippingReceiver", R.string.PaymentShippingReceiver)); + headerCell[1].setText(LocaleController.getString(R.string.PaymentShippingReceiver)); linearLayout2.addView(headerCell[1], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } ViewGroup container; @@ -770,43 +771,43 @@ protected void onDraw(Canvas canvas) { inputFields[a].setImeOptions(EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NO_EXTRACT_UI); switch (a) { case FIELD_NAME: - inputFields[a].setHint(LocaleController.getString("PaymentShippingName", R.string.PaymentShippingName)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentShippingName)); if (paymentForm.saved_info != null && paymentForm.saved_info.name != null) { inputFields[a].setText(paymentForm.saved_info.name); } break; case FIELD_EMAIL: - inputFields[a].setHint(LocaleController.getString("PaymentShippingEmailPlaceholder", R.string.PaymentShippingEmailPlaceholder)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentShippingEmailPlaceholder)); if (paymentForm.saved_info != null && paymentForm.saved_info.email != null) { inputFields[a].setText(paymentForm.saved_info.email); } break; case FIELD_STREET1: - inputFields[a].setHint(LocaleController.getString("PaymentShippingAddress1Placeholder", R.string.PaymentShippingAddress1Placeholder)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentShippingAddress1Placeholder)); if (paymentForm.saved_info != null && paymentForm.saved_info.shipping_address != null) { inputFields[a].setText(paymentForm.saved_info.shipping_address.street_line1); } break; case FIELD_STREET2: - inputFields[a].setHint(LocaleController.getString("PaymentShippingAddress2Placeholder", R.string.PaymentShippingAddress2Placeholder)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentShippingAddress2Placeholder)); if (paymentForm.saved_info != null && paymentForm.saved_info.shipping_address != null) { inputFields[a].setText(paymentForm.saved_info.shipping_address.street_line2); } break; case FIELD_CITY: - inputFields[a].setHint(LocaleController.getString("PaymentShippingCityPlaceholder", R.string.PaymentShippingCityPlaceholder)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentShippingCityPlaceholder)); if (paymentForm.saved_info != null && paymentForm.saved_info.shipping_address != null) { inputFields[a].setText(paymentForm.saved_info.shipping_address.city); } break; case FIELD_STATE: - inputFields[a].setHint(LocaleController.getString("PaymentShippingStatePlaceholder", R.string.PaymentShippingStatePlaceholder)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentShippingStatePlaceholder)); if (paymentForm.saved_info != null && paymentForm.saved_info.shipping_address != null) { inputFields[a].setText(paymentForm.saved_info.shipping_address.state); } break; case FIELD_COUNTRY: - inputFields[a].setHint(LocaleController.getString("PaymentShippingCountry", R.string.PaymentShippingCountry)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentShippingCountry)); if (paymentForm.saved_info != null && paymentForm.saved_info.shipping_address != null) { String value = countryMap.get(paymentForm.saved_info.shipping_address.country_iso2); countryName = paymentForm.saved_info.shipping_address.country_iso2; @@ -814,7 +815,7 @@ protected void onDraw(Canvas canvas) { } break; case FIELD_POSTCODE: - inputFields[a].setHint(LocaleController.getString("PaymentShippingZipPlaceholder", R.string.PaymentShippingZipPlaceholder)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentShippingZipPlaceholder)); if (paymentForm.saved_info != null && paymentForm.saved_info.shipping_address != null) { inputFields[a].setText(paymentForm.saved_info.shipping_address.post_code); } @@ -857,7 +858,7 @@ public void afterTextChanged(Editable editable) { HintEditText phoneField = (HintEditText) inputFields[FIELD_PHONE]; if (text.length() == 0) { phoneField.setHintText(null); - phoneField.setHint(LocaleController.getString("PaymentShippingPhoneNumber", R.string.PaymentShippingPhoneNumber)); + phoneField.setHint(LocaleController.getString(R.string.PaymentShippingPhoneNumber)); } else { String country; boolean ok = false; @@ -893,7 +894,7 @@ public void afterTextChanged(Editable editable) { } if (!set) { phoneField.setHintText(null); - phoneField.setHint(LocaleController.getString("PaymentShippingPhoneNumber", R.string.PaymentShippingPhoneNumber)); + phoneField.setHint(LocaleController.getString(R.string.PaymentShippingPhoneNumber)); } if (!ok) { inputFields[FIELD_PHONECODE].setSelection(inputFields[FIELD_PHONECODE].getText().length()); @@ -1041,7 +1042,7 @@ public void afterTextChanged(Editable s) { checkCell1 = new TextCheckCell(context, resourcesProvider); checkCell1.setBackgroundDrawable(Theme.getSelectorDrawable(true)); - checkCell1.setTextAndCheck(LocaleController.getString("PaymentShippingSave", R.string.PaymentShippingSave), saveShippingInfo, false); + checkCell1.setTextAndCheck(LocaleController.getString(R.string.PaymentShippingSave), saveShippingInfo, false); linearLayout2.addView(checkCell1, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); checkCell1.setOnClickListener(v -> { saveShippingInfo = !saveShippingInfo; @@ -1050,7 +1051,7 @@ public void afterTextChanged(Editable s) { bottomCell[0] = new TextInfoPrivacyCell(context, resourcesProvider); bottomCell[0].setBackgroundDrawable(Theme.getThemedDrawableByKey(context, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); - bottomCell[0].setText(LocaleController.getString("PaymentShippingSaveInfo", R.string.PaymentShippingSaveInfo)); + bottomCell[0].setText(LocaleController.getString(R.string.PaymentShippingSaveInfo)); linearLayout2.addView(bottomCell[0], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } } @@ -1243,7 +1244,7 @@ public void onPageFinished(WebView view, String url) { checkCell1 = new TextCheckCell(context, resourcesProvider); checkCell1.setBackgroundDrawable(Theme.getSelectorDrawable(true)); - checkCell1.setTextAndCheck(LocaleController.getString("PaymentCardSavePaymentInformation", R.string.PaymentCardSavePaymentInformation), saveCardInfo, false); + checkCell1.setTextAndCheck(LocaleController.getString(R.string.PaymentCardSavePaymentInformation), saveCardInfo, false); linearLayout2.addView(checkCell1, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); checkCell1.setOnClickListener(v -> { saveCardInfo = !saveCardInfo; @@ -1297,12 +1298,12 @@ public void onPageFinished(WebView view, String url) { if (a == FIELD_CARD) { headerCell[0] = new HeaderCell(context, resourcesProvider); headerCell[0].setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); - headerCell[0].setText(LocaleController.getString("PaymentCardTitle", R.string.PaymentCardTitle)); + headerCell[0].setText(LocaleController.getString(R.string.PaymentCardTitle)); linearLayout2.addView(headerCell[0], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } else if (a == FIELD_CARD_COUNTRY) { headerCell[1] = new HeaderCell(context, resourcesProvider); headerCell[1].setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); - headerCell[1].setText(LocaleController.getString("PaymentBillingAddress", R.string.PaymentBillingAddress)); + headerCell[1].setText(LocaleController.getString(R.string.PaymentBillingAddress)); linearLayout2.addView(headerCell[1], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } @@ -1358,22 +1359,22 @@ public void onPageFinished(WebView view, String url) { inputFields[a].setImeOptions(EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NO_EXTRACT_UI); switch (a) { case FIELD_CARD: - inputFields[a].setHint(LocaleController.getString("PaymentCardNumber", R.string.PaymentCardNumber)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentCardNumber)); break; case FIELD_CVV: - inputFields[a].setHint(LocaleController.getString("PaymentCardCvv", R.string.PaymentCardCvv)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentCardCvv)); break; case FIELD_EXPIRE_DATE: - inputFields[a].setHint(LocaleController.getString("PaymentCardExpireDate", R.string.PaymentCardExpireDate)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentCardExpireDate)); break; case FIELD_CARDNAME: - inputFields[a].setHint(LocaleController.getString("PaymentCardName", R.string.PaymentCardName)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentCardName)); break; case FIELD_CARD_POSTCODE: - inputFields[a].setHint(LocaleController.getString("PaymentShippingZipPlaceholder", R.string.PaymentShippingZipPlaceholder)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentShippingZipPlaceholder)); break; case FIELD_CARD_COUNTRY: - inputFields[a].setHint(LocaleController.getString("PaymentShippingCountry", R.string.PaymentShippingCountry)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentShippingCountry)); break; } @@ -1683,7 +1684,7 @@ public void afterTextChanged(Editable s) { checkCell1 = new TextCheckCell(context, resourcesProvider); checkCell1.setBackgroundDrawable(Theme.getSelectorDrawable(true)); - checkCell1.setTextAndCheck(LocaleController.getString("PaymentCardSavePaymentInformation", R.string.PaymentCardSavePaymentInformation), saveCardInfo, false); + checkCell1.setTextAndCheck(LocaleController.getString(R.string.PaymentCardSavePaymentInformation), saveCardInfo, false); linearLayout2.addView(checkCell1, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); checkCell1.setOnClickListener(v -> { saveCardInfo = !saveCardInfo; @@ -1751,7 +1752,7 @@ protected void onDraw(Canvas canvas) { if (a == FIELD_SAVEDCARD) { headerCell[0] = new HeaderCell(context, resourcesProvider); headerCell[0].setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); - headerCell[0].setText(LocaleController.getString("PaymentCardTitle", R.string.PaymentCardTitle)); + headerCell[0].setText(LocaleController.getString(R.string.PaymentCardTitle)); linearLayout2.addView(headerCell[0], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } @@ -1802,7 +1803,7 @@ protected void onDraw(Canvas canvas) { inputFields[a].setText(savedCredentialsCard == null ? "" : savedCredentialsCard.title); break; case FIELD_SAVEDPASSWORD: - inputFields[a].setHint(LocaleController.getString("LoginPassword", R.string.LoginPassword)); + inputFields[a].setHint(LocaleController.getString(R.string.LoginPassword)); inputFields[a].requestFocus(); break; } @@ -1826,7 +1827,7 @@ protected void onDraw(Canvas canvas) { settingsCell[0] = new TextSettingsCell(context, resourcesProvider); settingsCell[0].setBackgroundDrawable(Theme.getSelectorDrawable(true)); - settingsCell[0].setText(LocaleController.getString("PaymentConfirmationNewCard", R.string.PaymentConfirmationNewCard), false); + settingsCell[0].setText(LocaleController.getString(R.string.PaymentConfirmationNewCard), false); linearLayout2.addView(settingsCell[0], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); settingsCell[0].setOnClickListener(v -> { passwordOk = false; @@ -1871,14 +1872,14 @@ protected void onDraw(Canvas canvas) { if (currentStep == STEP_RECEIPT && tipAmount != null) { TextPriceCell priceCell = new TextPriceCell(context); priceCell.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); - priceCell.setTextAndValue(LocaleController.getString("PaymentTip", R.string.PaymentTip), LocaleController.getInstance().formatCurrencyString(tipAmount, paymentForm.invoice.currency), false); + priceCell.setTextAndValue(LocaleController.getString(R.string.PaymentTip), LocaleController.getInstance().formatCurrencyString(tipAmount, paymentForm.invoice.currency), false); linearLayout2.addView(priceCell); } totalCell = new TextPriceCell(context); totalCell.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); totalPrice[0] = getTotalPriceString(prices); - totalCell.setTextAndValue(LocaleController.getString("PaymentTransactionTotal", R.string.PaymentTransactionTotal), totalPrice[0], true); + totalCell.setTextAndValue(LocaleController.getString(R.string.PaymentTransactionTotal), totalPrice[0], true); if (currentStep == STEP_CHECKOUT && (paymentForm.invoice.flags & 256) != 0) { ViewGroup container = new FrameLayout(context); @@ -1892,7 +1893,7 @@ protected void onDraw(Canvas canvas) { TextPriceCell cell = new TextPriceCell(context); cell.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); - cell.setTextAndValue(LocaleController.getString("PaymentTipOptional", R.string.PaymentTipOptional), "", false); + cell.setTextAndValue(LocaleController.getString(R.string.PaymentTipOptional), "", false); container.addView(cell); inputFields = new EditTextBoldCursor[1]; @@ -2161,7 +2162,7 @@ public void requestLayout() { detailSettingsCell[0] = new TextDetailSettingsCell(context); detailSettingsCell[0].setBackgroundDrawable(Theme.getSelectorDrawable(true)); - detailSettingsCell[0].setTextAndValueAndIcon(cardName != null && cardName.length() > 1 ? cardName.substring(0, 1).toUpperCase() + cardName.substring(1) : cardName, LocaleController.getString("PaymentCheckoutMethod", R.string.PaymentCheckoutMethod), R.drawable.msg_payment_card, true); + detailSettingsCell[0].setTextAndValueAndIcon(cardName != null && cardName.length() > 1 ? cardName.substring(0, 1).toUpperCase() + cardName.substring(1) : cardName, LocaleController.getString(R.string.PaymentCheckoutMethod), R.drawable.msg_payment_card, true); int cardInfoVisibility = View.VISIBLE; if (isCheckoutPreview) { cardInfoVisibility = cardName != null && cardName.length() > 1 ? View.VISIBLE : View.GONE; @@ -2188,7 +2189,7 @@ public void requestLayout() { detailSettingsCell[1].setBackground(Theme.getSelectorDrawable(true)); String providerName; if (providerUser != null) { - detailSettingsCell[1].setTextAndValueAndIcon(providerName = ContactsController.formatName(providerUser.first_name, providerUser.last_name), LocaleController.getString("PaymentCheckoutProvider", R.string.PaymentCheckoutProvider), R.drawable.msg_payment_provider, validateRequest != null && (validateRequest.info.shipping_address != null || shippingOption != null) || paymentForm.saved_info != null && (paymentForm.saved_info.shipping_address != null)); + detailSettingsCell[1].setTextAndValueAndIcon(providerName = ContactsController.formatName(providerUser.first_name, providerUser.last_name), LocaleController.getString(R.string.PaymentCheckoutProvider), R.drawable.msg_payment_provider, validateRequest != null && (validateRequest.info.shipping_address != null || shippingOption != null) || paymentForm.saved_info != null && (paymentForm.saved_info.shipping_address != null)); linearLayout2.addView(detailSettingsCell[1]); } else { providerName = ""; @@ -2293,7 +2294,7 @@ public void didSelectNewAddress(TLRPC.TL_payments_validateRequestedInfo validate if (shippingOption != null) { detailSettingsCell[6] = new TextDetailSettingsCell(context); detailSettingsCell[6].setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); - detailSettingsCell[6].setTextAndValueAndIcon(shippingOption.title, LocaleController.getString("PaymentCheckoutShippingMethod", R.string.PaymentCheckoutShippingMethod), R.drawable.msg_payment_delivery, false); + detailSettingsCell[6].setTextAndValueAndIcon(shippingOption.title, LocaleController.getString(R.string.PaymentCheckoutShippingMethod), R.drawable.msg_payment_delivery, false); linearLayout2.addView(detailSettingsCell[6]); } setAddressFields(info); @@ -2374,9 +2375,9 @@ public void didSelectNewAddress(TLRPC.TL_payments_validateRequestedInfo validate if (!preferences.getBoolean(botKey, false)) { preferences.edit().putBoolean(botKey, true).commit(); AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("PaymentWarning", R.string.PaymentWarning)); + builder.setTitle(LocaleController.getString(R.string.PaymentWarning)); builder.setMessage(LocaleController.formatString("PaymentWarningText", R.string.PaymentWarningText, currentBotName, providerName)); - builder.setPositiveButton(LocaleController.getString("Continue", R.string.Continue), (dialogInterface, i) -> showPayAlert(totalPrice[0])); + builder.setPositiveButton(LocaleController.getString(R.string.Continue), (dialogInterface, i) -> showPayAlert(totalPrice[0])); showDialog(builder.create()); } else { showPayAlert(totalPrice[0]); @@ -2531,7 +2532,7 @@ public boolean shouldOverrideUrlLoading(WebView view, String url) { linearLayout2.addView(sectionCell[1], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } else if (currentStep == STEP_SET_PASSWORD_EMAIL) { codeFieldCell = new EditTextSettingsCell(context); - codeFieldCell.setTextAndHint("", LocaleController.getString("PasswordCode", R.string.PasswordCode), false); + codeFieldCell.setTextAndHint("", LocaleController.getString(R.string.PasswordCode), false); codeFieldCell.setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); EditTextBoldCursor editText = codeFieldCell.getTextView(); editText.setInputType(InputType.TYPE_CLASS_PHONE); @@ -2571,7 +2572,7 @@ public void afterTextChanged(Editable s) { settingsCell[1].setBackgroundDrawable(Theme.getSelectorDrawable(true)); settingsCell[1].setTag(Theme.key_windowBackgroundWhiteBlackText); settingsCell[1].setTextColor(getThemedColor(Theme.key_windowBackgroundWhiteBlackText)); - settingsCell[1].setText(LocaleController.getString("ResendCode", R.string.ResendCode), true); + settingsCell[1].setText(LocaleController.getString(R.string.ResendCode), true); linearLayout2.addView(settingsCell[1], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); settingsCell[1].setOnClickListener(v -> { TLRPC.TL_account_resendPasswordEmail req = new TLRPC.TL_account_resendPasswordEmail(); @@ -2579,9 +2580,9 @@ public void afterTextChanged(Editable s) { }); AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setMessage(LocaleController.getString("ResendCodeInfo", R.string.ResendCodeInfo)); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setMessage(LocaleController.getString(R.string.ResendCodeInfo)); + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); showDialog(builder.create()); }); @@ -2589,18 +2590,18 @@ public void afterTextChanged(Editable s) { settingsCell[0].setBackgroundDrawable(Theme.getSelectorDrawable(true)); settingsCell[0].setTag(Theme.key_text_RedRegular); settingsCell[0].setTextColor(getThemedColor(Theme.key_text_RedRegular)); - settingsCell[0].setText(LocaleController.getString("AbortPassword", R.string.AbortPassword), false); + settingsCell[0].setText(LocaleController.getString(R.string.AbortPassword), false); linearLayout2.addView(settingsCell[0], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); settingsCell[0].setOnClickListener(v -> { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - String text = LocaleController.getString("TurnPasswordOffQuestion", R.string.TurnPasswordOffQuestion); + String text = LocaleController.getString(R.string.TurnPasswordOffQuestion); if (currentPassword.has_secure_values) { - text += "\n\n" + LocaleController.getString("TurnPasswordOffPassport", R.string.TurnPasswordOffPassport); + text += "\n\n" + LocaleController.getString(R.string.TurnPasswordOffPassport); } builder.setMessage(text); - builder.setTitle(LocaleController.getString("TurnPasswordOffQuestionTitle", R.string.TurnPasswordOffQuestionTitle)); - builder.setPositiveButton(LocaleController.getString("Disable", R.string.Disable), (dialogInterface, i) -> sendSavePassword(true)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.TurnPasswordOffQuestionTitle)); + builder.setPositiveButton(LocaleController.getString(R.string.Disable), (dialogInterface, i) -> sendSavePassword(true)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -2614,12 +2615,12 @@ public void afterTextChanged(Editable s) { if (a == FIELD_ENTERPASSWORD) { headerCell[0] = new HeaderCell(context, resourcesProvider); headerCell[0].setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); - headerCell[0].setText(LocaleController.getString("PaymentPasswordTitle", R.string.PaymentPasswordTitle)); + headerCell[0].setText(LocaleController.getString(R.string.PaymentPasswordTitle)); linearLayout2.addView(headerCell[0], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } else if (a == FIELD_ENTERPASSWORDEMAIL) { headerCell[1] = new HeaderCell(context, resourcesProvider); headerCell[1].setBackgroundColor(getThemedColor(Theme.key_windowBackgroundWhite)); - headerCell[1].setText(LocaleController.getString("PaymentPasswordEmailTitle", R.string.PaymentPasswordEmailTitle)); + headerCell[1].setText(LocaleController.getString(R.string.PaymentPasswordEmailTitle)); linearLayout2.addView(headerCell[1], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } @@ -2661,14 +2662,14 @@ protected void onDraw(Canvas canvas) { switch (a) { case FIELD_ENTERPASSWORD: - inputFields[a].setHint(LocaleController.getString("PaymentPasswordEnter", R.string.PaymentPasswordEnter)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentPasswordEnter)); inputFields[a].requestFocus(); break; case FIELD_REENTERPASSWORD: - inputFields[a].setHint(LocaleController.getString("PaymentPasswordReEnter", R.string.PaymentPasswordReEnter)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentPasswordReEnter)); break; case FIELD_ENTERPASSWORDEMAIL: - inputFields[a].setHint(LocaleController.getString("PaymentPasswordEmail", R.string.PaymentPasswordEmail)); + inputFields[a].setHint(LocaleController.getString(R.string.PaymentPasswordEmail)); break; } @@ -2692,12 +2693,12 @@ protected void onDraw(Canvas canvas) { }); if (a == FIELD_REENTERPASSWORD) { bottomCell[0] = new TextInfoPrivacyCell(context, resourcesProvider); - bottomCell[0].setText(LocaleController.getString("PaymentPasswordInfo", R.string.PaymentPasswordInfo)); + bottomCell[0].setText(LocaleController.getString(R.string.PaymentPasswordInfo)); bottomCell[0].setBackgroundDrawable(Theme.getThemedDrawableByKey(context, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); linearLayout2.addView(bottomCell[0], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } else if (a == FIELD_ENTERPASSWORDEMAIL) { bottomCell[1] = new TextInfoPrivacyCell(context, resourcesProvider); - bottomCell[1].setText(LocaleController.getString("PaymentPasswordEmailInfo", R.string.PaymentPasswordEmailInfo)); + bottomCell[1].setText(LocaleController.getString(R.string.PaymentPasswordEmailInfo)); bottomCell[1].setBackgroundDrawable(Theme.getThemedDrawableByKey(context, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); linearLayout2.addView(bottomCell[1], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } @@ -2713,7 +2714,7 @@ private void showChoosePaymentMethod() { private void showChoosePaymentMethod(Runnable callback) { BottomSheet.Builder builder = new BottomSheet.Builder(getParentActivity()) - .setTitle(LocaleController.getString("PaymentCheckoutMethod", R.string.PaymentCheckoutMethod), true); + .setTitle(LocaleController.getString(R.string.PaymentCheckoutMethod), true); List titles = new ArrayList<>(); List icons = new ArrayList<>(); if (savedCredentialsCard != null) { @@ -2753,7 +2754,7 @@ public boolean didSelectNewCard(String tokenJson, String card, boolean saveCard, googlePayCredentials = googlePay; if (detailSettingsCell[0] != null) { detailSettingsCell[0].setVisibility(View.VISIBLE); - detailSettingsCell[0].setTextAndValueAndIcon(cardName != null && cardName.length() > 1 ? cardName.substring(0, 1).toUpperCase() + cardName.substring(1) : cardName, LocaleController.getString("PaymentCheckoutMethod", R.string.PaymentCheckoutMethod), R.drawable.msg_payment_card, true); + detailSettingsCell[0].setTextAndValueAndIcon(cardName != null && cardName.length() > 1 ? cardName.substring(0, 1).toUpperCase() + cardName.substring(1) : cardName, LocaleController.getString(R.string.PaymentCheckoutMethod), R.drawable.msg_payment_card, true); if (detailSettingsCell[1] != null) { detailSettingsCell[1].setVisibility(View.VISIBLE); @@ -2798,29 +2799,29 @@ private void setPaymentMethod(TLRPC.TL_paymentFormMethod method) { private void setAddressFields(TLRPC.TL_paymentRequestedInfo info) { if (info.shipping_address != null) { String address = String.format("%s %s, %s, %s, %s, %s", info.shipping_address.street_line1, info.shipping_address.street_line2, info.shipping_address.city, info.shipping_address.state, info.shipping_address.country_iso2, info.shipping_address.post_code); - detailSettingsCell[2].setTextAndValueAndIcon(address, LocaleController.getString("PaymentShippingAddress", R.string.PaymentShippingAddress), R.drawable.msg_payment_address, true); + detailSettingsCell[2].setTextAndValueAndIcon(address, LocaleController.getString(R.string.PaymentShippingAddress), R.drawable.msg_payment_address, true); } detailSettingsCell[2].setVisibility(info.shipping_address != null ? View.VISIBLE : View.GONE); if (info.name != null) { - detailSettingsCell[3].setTextAndValueAndIcon(info.name, LocaleController.getString("PaymentCheckoutName", R.string.PaymentCheckoutName), R.drawable.msg_contacts, true); + detailSettingsCell[3].setTextAndValueAndIcon(info.name, LocaleController.getString(R.string.PaymentCheckoutName), R.drawable.msg_contacts, true); } detailSettingsCell[3].setVisibility(info.name != null ? View.VISIBLE : View.GONE); if (info.phone != null) { - detailSettingsCell[4].setTextAndValueAndIcon(PhoneFormat.getInstance().format(info.phone), LocaleController.getString("PaymentCheckoutPhoneNumber", R.string.PaymentCheckoutPhoneNumber), R.drawable.msg_calls, info.email != null || shippingOption != null); + detailSettingsCell[4].setTextAndValueAndIcon(PhoneFormat.getInstance().format(info.phone), LocaleController.getString(R.string.PaymentCheckoutPhoneNumber), R.drawable.msg_calls, info.email != null || shippingOption != null); } detailSettingsCell[4].setVisibility(info.phone != null ? View.VISIBLE : View.GONE); if (info.email != null) { - detailSettingsCell[5].setTextAndValueAndIcon(info.email, LocaleController.getString("PaymentCheckoutEmail", R.string.PaymentCheckoutEmail), R.drawable.msg_mention, shippingOption != null); + detailSettingsCell[5].setTextAndValueAndIcon(info.email, LocaleController.getString(R.string.PaymentCheckoutEmail), R.drawable.msg_mention, shippingOption != null); } detailSettingsCell[5].setVisibility(info.email != null ? View.VISIBLE : View.GONE); } private void updateTotalPrice() { totalPrice[0] = getTotalPriceString(prices); - totalCell.setTextAndValue(LocaleController.getString("PaymentTransactionTotal", R.string.PaymentTransactionTotal), totalPrice[0], true); + totalCell.setTextAndValue(LocaleController.getString(R.string.PaymentTransactionTotal), totalPrice[0], true); if (payTextView != null) { payTextView.setText(LocaleController.formatString("PaymentCheckoutPay", R.string.PaymentCheckoutPay, totalPrice[0])); } @@ -2983,7 +2984,7 @@ private void updatePasswordFields() { bottomCell[2].setVisibility(View.GONE); settingsCell[0].setVisibility(View.GONE); settingsCell[1].setVisibility(View.GONE); - bottomCell[1].setText(LocaleController.getString("PaymentPasswordEmailInfo", R.string.PaymentPasswordEmailInfo)); + bottomCell[1].setText(LocaleController.getString(R.string.PaymentPasswordEmailInfo)); codeFieldCell.setVisibility(View.GONE); headerCell[0].setVisibility(View.VISIBLE); @@ -3010,7 +3011,7 @@ private void loadPasswordInfo() { if (error == null) { currentPassword = (TLRPC.account_Password) response; if (!TwoStepVerificationActivity.canHandleCurrentPassword(currentPassword, false)) { - AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString(R.string.UpdateAppAlert), true); return; } if (paymentForm != null && currentPassword.has_password) { @@ -3038,7 +3039,7 @@ private void loadPasswordInfo() { private void showAlertWithText(String title, String text) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); builder.setTitle(title); builder.setMessage(text); showDialog(builder.create()); @@ -3049,13 +3050,13 @@ private void showPayAlert(final String totalPrice) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("PaymentTransactionReview", R.string.PaymentTransactionReview)); + builder.setTitle(LocaleController.getString(R.string.PaymentTransactionReview)); builder.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("PaymentTransactionMessage2", R.string.PaymentTransactionMessage2, totalPrice, currentBotName, currentItemName))); - builder.setPositiveButton(LocaleController.getString("Continue", R.string.Continue), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Continue), (dialogInterface, i) -> { setDonePressed(true); sendData(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); } @@ -3514,12 +3515,12 @@ private void updateSavePaymentField() { return; } if ((paymentForm.password_missing || paymentForm.can_save_credentials) && (webView == null || !webviewLoading)) { - SpannableStringBuilder text = new SpannableStringBuilder(LocaleController.getString("PaymentCardSavePaymentInformationInfoLine1", R.string.PaymentCardSavePaymentInformationInfoLine1)); + SpannableStringBuilder text = new SpannableStringBuilder(LocaleController.getString(R.string.PaymentCardSavePaymentInformationInfoLine1)); if (paymentForm.password_missing) { loadPasswordInfo(); text.append("\n"); int len = text.length(); - String str2 = LocaleController.getString("PaymentCardSavePaymentInformationInfoLine2", R.string.PaymentCardSavePaymentInformationInfoLine2); + String str2 = LocaleController.getString(R.string.PaymentCardSavePaymentInformationInfoLine2); int index1 = str2.indexOf('*'); int index2 = str2.lastIndexOf('*'); text.append(str2); @@ -3622,9 +3623,9 @@ private void sendSavePassword(final boolean clear) { } else { timeString = LocaleController.formatPluralString("Minutes", time / 60); } - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + showAlertWithText(LocaleController.getString(R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + showAlertWithText(LocaleController.getString(R.string.AppName), error.text); } } }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); @@ -3649,7 +3650,7 @@ private void sendSavePassword(final boolean clear) { String secondPassword = inputFields[FIELD_REENTERPASSWORD].getText().toString(); if (!firstPassword.equals(secondPassword)) { try { - Toast.makeText(getParentActivity(), LocaleController.getString("PasswordDoNotMatch", R.string.PasswordDoNotMatch), Toast.LENGTH_SHORT).show(); + Toast.makeText(getParentActivity(), LocaleController.getString(R.string.PasswordDoNotMatch), Toast.LENGTH_SHORT).show(); } catch (Exception e) { FileLog.e(e); } @@ -3707,13 +3708,13 @@ private void sendSavePassword(final boolean clear) { if (error.text.equals("EMAIL_UNCONFIRMED") || error.text.startsWith("EMAIL_UNCONFIRMED_")) { emailCodeLength = Utilities.parseInt(error.text); AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> { waitingForEmail = true; currentPassword.email_unconfirmed_pattern = email; updatePasswordFields(); }); - builder.setMessage(LocaleController.getString("YourEmailAlmostThereText", R.string.YourEmailAlmostThereText)); - builder.setTitle(LocaleController.getString("YourEmailAlmostThere", R.string.YourEmailAlmostThere)); + builder.setMessage(LocaleController.getString(R.string.YourEmailAlmostThereText)); + builder.setTitle(LocaleController.getString(R.string.YourEmailAlmostThere)); Dialog dialog = showDialog(builder.create()); if (dialog != null) { dialog.setCanceledOnTouchOutside(false); @@ -3721,7 +3722,7 @@ private void sendSavePassword(final boolean clear) { } } else { if (error.text.equals("EMAIL_INVALID")) { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.getString("PasswordEmailInvalid", R.string.PasswordEmailInvalid)); + showAlertWithText(LocaleController.getString(R.string.AppName), LocaleController.getString(R.string.PasswordEmailInvalid)); } else if (error.text.startsWith("FLOOD_WAIT")) { int time = Utilities.parseInt(error.text); String timeString; @@ -3730,9 +3731,9 @@ private void sendSavePassword(final boolean clear) { } else { timeString = LocaleController.formatPluralString("Minutes", time / 60); } - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + showAlertWithText(LocaleController.getString(R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + showAlertWithText(LocaleController.getString(R.string.AppName), error.text); } } } @@ -3828,7 +3829,7 @@ public void onError(Exception error) { showEditDoneProgress(true, false); setDonePressed(false); if (error instanceof APIConnectionException || error instanceof APIException) { - AlertsCreator.showSimpleToast(PaymentFormActivity.this, LocaleController.getString("PaymentConnectionFailed", R.string.PaymentConnectionFailed)); + AlertsCreator.showSimpleToast(PaymentFormActivity.this, LocaleController.getString(R.string.PaymentConnectionFailed)); } else { AlertsCreator.showSimpleToast(PaymentFormActivity.this, error.getMessage()); } @@ -3912,7 +3913,7 @@ protected void onPostExecute(String result) { return; } if (result == null) { - AlertsCreator.showSimpleToast(PaymentFormActivity.this, LocaleController.getString("PaymentConnectionFailed", R.string.PaymentConnectionFailed)); + AlertsCreator.showSimpleToast(PaymentFormActivity.this, LocaleController.getString(R.string.PaymentConnectionFailed)); } else { paymentJson = result; goToNextStep(); @@ -4150,6 +4151,7 @@ private void sendData() { invoiceStatus = InvoiceStatus.PAID; final boolean isStars = invoiceInput instanceof TLRPC.TL_inputInvoiceStars; final boolean isStarsGift = isStars && ((TLRPC.TL_inputInvoiceStars) invoiceInput).purpose instanceof TLRPC.TL_inputStorePaymentStarsGift; + final boolean isStarsGiveaway = isStars && ((TLRPC.TL_inputInvoiceStars) invoiceInput).purpose instanceof TLRPC.TL_inputStorePaymentStarsGiveaway; if (!isStars && paymentFormCallback != null) { paymentFormCallback.onInvoiceStatusChanged(invoiceStatus); } @@ -4160,22 +4162,25 @@ private void sendData() { } final long giftUserId = getStarsGiftUserId(); String giftUser = ""; - if (giftUserId != 0) { + if (giftUserId > 0) { giftUser = UserObject.getForcedFirstName(getMessagesController().getUser(giftUserId)); + } else if (giftUserId < 0) { + TLRPC.Chat chat = getMessagesController().getChat(-giftUserId); + giftUser = chat != null ? chat.title : ""; } long stars = getStars(); - int icon = isStars ? (isStarsGift ? R.raw.stars_send : R.raw.stars_topup) : R.raw.payment_success; - CharSequence bulletinTitle = !isStars ? null : (isStarsGift ? getString(R.string.StarsGiftSentPopup) : getString(R.string.StarsAcquired)); + int icon = isStars ? (isStarsGift || isStarsGiveaway ? R.raw.stars_send : R.raw.stars_topup) : R.raw.payment_success; + CharSequence bulletinTitle = !isStars ? null : (isStarsGiveaway ? getString(R.string.StarsGiveawaySentPopup) : isStarsGift ? getString(R.string.StarsGiftSentPopup) : getString(R.string.StarsAcquired)); CharSequence bulletinText = AndroidUtilities.replaceTags( - isStars ? - LocaleController.formatPluralString(isStarsGift ? "StarsGiftSentPopupInfo" : "StarsAcquiredInfo", (int) stars, giftUser) : - LocaleController.formatString(R.string.PaymentInfoHint, totalPrice[0], currentItemName) + isStars ? + isStarsGiveaway ? LocaleController.formatPluralStringComma("StarsGiveawaySentPopupInfo", (int) stars) : LocaleController.formatPluralStringComma(isStarsGift ? "StarsGiftSentPopupInfo" : "StarsAcquiredInfo", (int) stars, giftUser) : + LocaleController.formatString(R.string.PaymentInfoHint, totalPrice[0], currentItemName) ); BaseFragment lastFragment = LaunchActivity.getSafeLastFragment(); if (lastFragment == null) return; BulletinFactory factory = BulletinFactory.of(lastFragment); Bulletin bulletin; - if (giftUserId != 0 && bulletinTitle != null) { + if (giftUserId != 0 && bulletinTitle != null && !isStarsGiveaway) { bulletin = factory.createSimpleBulletin(icon, bulletinTitle, bulletinText, getString(R.string.ViewInChat), () -> { BaseFragment lastFragment2 = LaunchActivity.getSafeLastFragment(); if (lastFragment2 != null) { @@ -4217,7 +4222,7 @@ private void sendData() { } }); } - bulletin.show(); + bulletin.show(isStarsGiveaway); }); } else if (response instanceof TLRPC.TL_payments_paymentVerificationNeeded) { AndroidUtilities.runOnUIThread(() -> { @@ -4236,7 +4241,8 @@ private void sendData() { Activity parentActivity = getParentActivity(); getMessagesController().newMessageCallback = message -> { if (MessageObject.getPeerId(message.peer_id) == botUser.id && message.action instanceof TLRPC.TL_messageActionPaymentSent) { - AndroidUtilities.runOnUIThread(()->{ + AndroidUtilities.runOnUIThread(() -> { + paymentStatusSent = true; invoiceStatus = InvoiceStatus.PAID; if (paymentFormCallback != null) { @@ -4245,23 +4251,60 @@ private void sendData() { onCheckoutSuccess(parentLayout, parentActivity); + final boolean isStars = invoiceInput instanceof TLRPC.TL_inputInvoiceStars; + final boolean isStarsGift = isStars && ((TLRPC.TL_inputInvoiceStars) invoiceInput).purpose instanceof TLRPC.TL_inputStorePaymentStarsGift; + final boolean isStarsGiveaway = isStars && ((TLRPC.TL_inputInvoiceStars) invoiceInput).purpose instanceof TLRPC.TL_inputStorePaymentStarsGiveaway; + if (!isStars && paymentFormCallback != null) { + paymentFormCallback.onInvoiceStatusChanged(invoiceStatus); + } + + goToNextStep(); + if (isStars && paymentFormCallback != null) { + paymentFormCallback.onInvoiceStatusChanged(invoiceStatus); + } + final long giftUserId = getStarsGiftUserId(); + String giftUser = ""; + if (giftUserId > 0) { + giftUser = UserObject.getForcedFirstName(getMessagesController().getUser(giftUserId)); + } else if (giftUserId < 0) { + TLRPC.Chat chat = getMessagesController().getChat(-giftUserId); + giftUser = chat != null ? chat.title : ""; + } long stars = getStars(); + int icon = isStars ? (isStarsGift || isStarsGiveaway ? R.raw.stars_send : R.raw.stars_topup) : R.raw.payment_success; + CharSequence bulletinTitle = !isStars ? null : (isStarsGiveaway ? getString(R.string.StarsGiveawaySentPopup) : isStarsGift ? getString(R.string.StarsGiftSentPopup) : getString(R.string.StarsAcquired)); CharSequence bulletinText = AndroidUtilities.replaceTags( - invoiceInput instanceof TLRPC.TL_inputInvoiceStars ? - LocaleController.formatPluralString("PaymentInfoHintStars", (int) stars, totalPrice[0]) : - LocaleController.formatString(R.string.PaymentInfoHint, totalPrice[0], currentItemName) + isStars ? + isStarsGiveaway ? LocaleController.formatPluralStringComma("StarsGiveawaySentPopupInfo", (int) stars) : LocaleController.formatPluralStringComma(isStarsGift ? "StarsGiftSentPopupInfo" : "StarsAcquiredInfo", (int) stars, giftUser) : + LocaleController.formatString(R.string.PaymentInfoHint, totalPrice[0], currentItemName) ); - if (parentFragment instanceof ChatActivity) { - UndoView undoView = ((ChatActivity) parentFragment).getUndoView(); - if (undoView != null) { - undoView.showWithAction(0, UndoView.ACTION_PAYMENT_SUCCESS, bulletinText, message, null, null); - } + BaseFragment lastFragment = LaunchActivity.getSafeLastFragment(); + if (lastFragment == null) return; + BulletinFactory factory = BulletinFactory.of(lastFragment); + Bulletin bulletin; + if (giftUserId != 0 && bulletinTitle != null && !isStarsGiveaway) { + bulletin = factory.createSimpleBulletin(icon, bulletinTitle, bulletinText, getString(R.string.ViewInChat), () -> { + BaseFragment lastFragment2 = LaunchActivity.getSafeLastFragment(); + if (lastFragment2 != null) { + lastFragment2.presentFragment(ChatActivity.of(giftUserId)); + } + }); + } else if (bulletinTitle != null) { + bulletin = factory.createSimpleBulletin(icon, bulletinTitle, bulletinText); } else { - Bulletin bulletin = BulletinFactory.global().createSimpleBulletin(R.raw.payment_success, bulletinText); - bulletin.hideAfterBottomSheet = false; - if (message != null) { - bulletin.setOnClickListener(v -> { - bulletin.hide(); + bulletin = factory.createSimpleBulletin(icon, bulletinText); + } + bulletin.hideAfterBottomSheet = false; + bulletin.setDuration(Bulletin.DURATION_PROLONG); + if (message != null) { + bulletin.setOnClickListener(v -> { + bulletin.hide(); + if (isStarsGift) { + BaseFragment fragment = LaunchActivity.getSafeLastFragment(); + if (fragment != null) { + fragment.presentFragment(ChatActivity.of(MessageObject.getDialogId(message), message.id)); + } + } else { TLRPC.TL_payments_getPaymentReceipt req2 = new TLRPC.TL_payments_getPaymentReceipt(); req2.msg_id = message.id; req2.peer = MessagesController.getInstance(currentAccount).getInputPeer(message.peer_id); @@ -4269,19 +4312,19 @@ private void sendData() { if (response2 instanceof TLRPC.TL_payments_paymentReceiptStars) { StarsIntroActivity.showTransactionSheet(getContext(), false, currentAccount, (TLRPC.TL_payments_paymentReceiptStars) response2, getResourceProvider()); } else if (response2 instanceof TLRPC.PaymentReceipt) { - BaseFragment lastFragment = LaunchActivity.getLastFragment(); - if (lastFragment != null) { + BaseFragment lastFragment3 = LaunchActivity.getLastFragment(); + if (lastFragment3 != null) { BaseFragment.BottomSheetParams params = new BaseFragment.BottomSheetParams(); params.transitionFromLeft = true; params.allowNestedScroll = false; - lastFragment.showAsSheet(new PaymentFormActivity((TLRPC.PaymentReceipt) response2), params); + lastFragment3.showAsSheet(new PaymentFormActivity((TLRPC.PaymentReceipt) response2), params); } } }), ConnectionsManager.RequestFlagFailOnServerErrors); - }); - } - bulletin.show(); + } + }); } + bulletin.show(isStarsGiveaway); }); return true; } @@ -4324,6 +4367,8 @@ private long getStars() { return ((TLRPC.TL_inputStorePaymentStarsGift) purpose).stars; } else if (purpose instanceof TLRPC.TL_inputStorePaymentStarsTopup) { return ((TLRPC.TL_inputStorePaymentStarsTopup) purpose).stars; + } else if (purpose instanceof TLRPC.TL_inputStorePaymentStarsGiveaway) { + return ((TLRPC.TL_inputStorePaymentStarsGiveaway) purpose).stars; } } return 0; @@ -4336,6 +4381,9 @@ private long getStarsGiftUserId() { if (purpose instanceof TLRPC.TL_inputStorePaymentStarsGift) { TLRPC.TL_inputStorePaymentStarsGift p = (TLRPC.TL_inputStorePaymentStarsGift) purpose; if (p.user_id != null) return p.user_id.user_id; + } else if (purpose instanceof TLRPC.TL_inputStorePaymentStarsGiveaway) { + TLRPC.TL_inputStorePaymentStarsGiveaway p = (TLRPC.TL_inputStorePaymentStarsGiveaway) purpose; + if (p.boost_peer != null) return DialogObject.getPeerDialogId(p.boost_peer); } } return 0; @@ -4394,7 +4442,7 @@ private void checkPassword() { if (error == null) { TLRPC.account_Password currentPassword = (TLRPC.account_Password) response; if (!TwoStepVerificationActivity.canHandleCurrentPassword(currentPassword, false)) { - AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString(R.string.UpdateAppAlert), true); return; } if (!currentPassword.has_password) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PeopleNearbyActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PeopleNearbyActivity.java deleted file mode 100644 index 4be557717c..0000000000 --- a/TMessagesProj/src/main/java/org/telegram/ui/PeopleNearbyActivity.java +++ /dev/null @@ -1,1129 +0,0 @@ -/* - * This is the source code of Telegram for Android v. 5.x.x. - * It is licensed under GNU GPL v. 2 or later. - * You should have received a copy of the license in this archive (see LICENSE). - * - * Copyright Nikolai Kudashov, 2013-2018. - */ - -package org.telegram.ui; - -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.AnimatorSet; -import android.animation.ObjectAnimator; -import android.content.Context; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.location.Location; -import android.os.Build; -import android.os.Bundle; -import android.os.SystemClock; -import android.util.SparseIntArray; -import android.util.TypedValue; -import android.view.Gravity; -import android.view.View; -import android.view.ViewGroup; -import android.widget.FrameLayout; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.core.graphics.ColorUtils; -import androidx.recyclerview.widget.DefaultItemAnimator; -import androidx.recyclerview.widget.DiffUtil; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import org.telegram.messenger.AndroidUtilities; -import org.telegram.messenger.BuildVars; -import org.telegram.messenger.ChatObject; -import org.telegram.messenger.FileLog; -import org.telegram.messenger.LocaleController; -import org.telegram.messenger.LocationController; -import org.telegram.messenger.MessageObject; -import org.telegram.messenger.MessagesController; -import org.telegram.messenger.NotificationCenter; -import org.telegram.messenger.R; -import org.telegram.messenger.UserConfig; -import org.telegram.tgnet.TLRPC; -import org.telegram.ui.ActionBar.ActionBar; -import org.telegram.ui.ActionBar.AlertDialog; -import org.telegram.ui.ActionBar.BaseFragment; -import org.telegram.ui.ActionBar.Theme; -import org.telegram.ui.ActionBar.ThemeDescription; -import org.telegram.ui.Cells.HeaderCell; -import org.telegram.ui.Cells.ManageChatTextCell; -import org.telegram.ui.Cells.ManageChatUserCell; -import org.telegram.ui.Cells.ShadowSectionCell; -import org.telegram.ui.Components.AlertsCreator; -import org.telegram.ui.Components.LayoutHelper; -import org.telegram.ui.Components.RadialProgressView; -import org.telegram.ui.Components.RecyclerListView; -import org.telegram.ui.Components.ShareLocationDrawable; -import org.telegram.ui.Components.UndoView; - -import java.util.ArrayList; - -public class PeopleNearbyActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate, LocationController.LocationFetchCallback { - - private ListAdapter listViewAdapter; - private RecyclerListView listView; - private ActionIntroActivity groupCreateActivity; - private UndoView undoView; - private LinearLayoutManager layoutManager; - - private View actionBarBackground; - private AnimatorSet actionBarAnimator; - - private String currentGroupCreateAddress; - private String currentGroupCreateDisplayAddress; - private Location currentGroupCreateLocation; - - private boolean checkingCanCreate; - private boolean canCreateGroup; - private AlertDialog loadingDialog; - - private boolean expanded; - - private Runnable checkExpiredRunnable; - private int reqId; - - private Location lastLoadedLocation; - private long lastLoadedLocationTime; - - private boolean showingLoadingProgress; - private boolean firstLoaded; - private Runnable showProgressRunnable; - private AnimatorSet showProgressAnimation; - private ArrayList animatingViews = new ArrayList<>(); - - private final static int SHORT_POLL_TIMEOUT = 25 * 1000; - - private Runnable shortPollRunnable = new Runnable() { - @Override - public void run() { - if (shortPollRunnable != null) { - sendRequest(true, 0); - AndroidUtilities.cancelRunOnUIThread(shortPollRunnable); - AndroidUtilities.runOnUIThread(shortPollRunnable, SHORT_POLL_TIMEOUT); - } - } - }; - - private ArrayList users; - private ArrayList chats; - - private int currentChatId; - private boolean showingMe; - - private int helpRow; - private int helpSectionRow; - private int usersHeaderRow; - private int showMeRow; - private int usersStartRow; - private int usersEndRow; - private int showMoreRow; - private int usersSectionRow; - private int chatsHeaderRow; - private int chatsStartRow; - private int chatsEndRow; - private int chatsCreateRow; - private int chatsSectionRow; - private int rowCount; - private DefaultItemAnimator itemAnimator; - - public PeopleNearbyActivity() { - super(); - users = new ArrayList<>(getLocationController().getCachedNearbyUsers()); - chats = new ArrayList<>(getLocationController().getCachedNearbyChats()); - checkForExpiredLocations(false); - updateRows(null); - } - - private void updateRows(DiffCallback diffCallback) { - rowCount = 0; - usersStartRow = -1; - usersEndRow = -1; - showMoreRow = -1; - chatsStartRow = -1; - chatsEndRow = -1; - chatsCreateRow = -1; - showMeRow = -1; - - helpRow = rowCount++; - helpSectionRow = rowCount++; - usersHeaderRow = rowCount++; - showMeRow = rowCount++; - if (!users.isEmpty()) { - int count; - if (expanded) { - count = users.size(); - } else { - count = Math.min(5, users.size()); - } - usersStartRow = rowCount; - rowCount += count; - usersEndRow = rowCount; - if (count != users.size()) { - showMoreRow = rowCount++; - } - } - usersSectionRow = rowCount++; - - chatsHeaderRow = rowCount++; - chatsCreateRow = rowCount++; - if (!chats.isEmpty()) { - chatsStartRow = rowCount; - rowCount += chats.size(); - chatsEndRow = rowCount; - } - chatsSectionRow = rowCount++; - - if (listViewAdapter != null) { - if (diffCallback == null) { - listView.setItemAnimator(null); - listViewAdapter.notifyDataSetChanged(); - } else { - listView.setItemAnimator(itemAnimator); - diffCallback.fillPositions(diffCallback.newPositionToItem); - DiffUtil.calculateDiff(diffCallback).dispatchUpdatesTo(listViewAdapter); - } - } - } - - private class DiffCallback extends DiffUtil.Callback { - - int oldRowCount; - - SparseIntArray oldPositionToItem = new SparseIntArray(); - SparseIntArray newPositionToItem = new SparseIntArray(); - - int oldUsersStartRow; - int oldUsersEndRow; - - int oldChatsStartRow; - int oldChatsEndRow; - - private final ArrayList oldUsers = new ArrayList<>(); - private final ArrayList oldChats = new ArrayList<>(); - - @Override - public int getOldListSize() { - return oldRowCount; - } - - @Override - public int getNewListSize() { - return rowCount; - } - - @Override - public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { - if (newItemPosition >= usersStartRow && newItemPosition < usersEndRow && (newItemPosition - usersStartRow) < users.size() && oldItemPosition >= oldUsersStartRow && oldItemPosition < oldUsersEndRow && (oldItemPosition - oldUsersStartRow) < oldUsers.size()) { - return MessageObject.getPeerId(oldUsers.get(oldItemPosition - oldUsersStartRow).peer) == MessageObject.getPeerId(users.get(newItemPosition - usersStartRow).peer); - } - if (newItemPosition >= chatsStartRow && newItemPosition < chatsEndRow && (newItemPosition - chatsStartRow) < chats.size() && oldItemPosition >= oldChatsStartRow && oldItemPosition < oldChatsEndRow && (oldItemPosition - oldChatsStartRow) < oldChats.size()) { - return MessageObject.getPeerId(oldChats.get(oldItemPosition - oldChatsStartRow).peer) == MessageObject.getPeerId(chats.get(newItemPosition - chatsStartRow).peer); - } - int oldIndex = oldPositionToItem.get(oldItemPosition, -1); - int newIndex = newPositionToItem.get(newItemPosition, -1); - return oldIndex == newIndex && oldIndex >= 0; - } - - @Override - public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { - return areItemsTheSame(oldItemPosition, newItemPosition); - } - - public void fillPositions(SparseIntArray sparseIntArray) { - sparseIntArray.clear(); - int pointer = 0; - - put(++pointer, helpRow, sparseIntArray); - put(++pointer, helpSectionRow, sparseIntArray); - put(++pointer, usersHeaderRow, sparseIntArray); - put(++pointer, showMoreRow, sparseIntArray); - put(++pointer, usersSectionRow, sparseIntArray); - put(++pointer, chatsHeaderRow, sparseIntArray); - put(++pointer, chatsCreateRow, sparseIntArray); - put(++pointer, chatsSectionRow, sparseIntArray); - put(++pointer, showMeRow, sparseIntArray); - } - - public void saveCurrentState() { - this.oldRowCount = rowCount; - this.oldUsersStartRow = usersStartRow; - this.oldUsersEndRow = usersEndRow; - this.oldChatsStartRow = chatsStartRow; - this.oldChatsEndRow = chatsEndRow; - oldUsers.addAll(users); - oldChats.addAll(chats); - fillPositions(oldPositionToItem); - } - - private void put(int id, int position, SparseIntArray sparseIntArray) { - if (position >= 0) { - sparseIntArray.put(position, id); - } - } - } - - @Override - public boolean onFragmentCreate() { - super.onFragmentCreate(); - NotificationCenter.getGlobalInstance().addObserver(this, NotificationCenter.newLocationAvailable); - getNotificationCenter().addObserver(this, NotificationCenter.newPeopleNearbyAvailable); - getNotificationCenter().addObserver(this, NotificationCenter.needDeleteDialog); - checkCanCreateGroup(); - sendRequest(false, 0); - AndroidUtilities.runOnUIThread(shortPollRunnable, SHORT_POLL_TIMEOUT); - return true; - } - - @Override - public void onFragmentDestroy() { - super.onFragmentDestroy(); - NotificationCenter.getGlobalInstance().removeObserver(this, NotificationCenter.newLocationAvailable); - getNotificationCenter().removeObserver(this, NotificationCenter.newPeopleNearbyAvailable); - getNotificationCenter().removeObserver(this, NotificationCenter.needDeleteDialog); - if (shortPollRunnable != null) { - AndroidUtilities.cancelRunOnUIThread(shortPollRunnable); - shortPollRunnable = null; - } - if (checkExpiredRunnable != null) { - AndroidUtilities.cancelRunOnUIThread(checkExpiredRunnable); - checkExpiredRunnable = null; - } - if (showProgressRunnable != null) { - AndroidUtilities.cancelRunOnUIThread(showProgressRunnable); - showProgressRunnable = null; - } - if (undoView != null) { - undoView.hide(true, 0); - } - } - - @Override - public View createView(Context context) { - actionBar.setBackButtonImage(R.drawable.ic_ab_back); - actionBar.setBackgroundDrawable(null); - actionBar.setTitleColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); - actionBar.setItemsColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText), false); - actionBar.setItemsBackgroundColor(Theme.getColor(Theme.key_listSelector), false); - actionBar.setCastShadows(false); - actionBar.setAddToContainer(false); - actionBar.setOccupyStatusBar(Build.VERSION.SDK_INT >= 21 && !AndroidUtilities.isTablet()); - actionBar.setTitle(LocaleController.getString("PeopleNearby", R.string.PeopleNearby)); - actionBar.getTitleTextView().setAlpha(0.0f); - actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { - @Override - public void onItemClick(int id) { - if (id == -1) { - finishFragment(); - } - } - }); - - fragmentView = new FrameLayout(context) { - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) actionBarBackground.getLayoutParams(); - layoutParams.height = ActionBar.getCurrentActionBarHeight() + (actionBar.getOccupyStatusBar() ? AndroidUtilities.statusBarHeight : 0) + AndroidUtilities.dp(3); - - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - } - - @Override - protected void onLayout(boolean changed, int left, int top, int right, int bottom) { - super.onLayout(changed, left, top, right, bottom); - checkScroll(false); - } - }; - fragmentView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray)); - fragmentView.setTag(Theme.key_windowBackgroundGray); - FrameLayout frameLayout = (FrameLayout) fragmentView; - - listView = new RecyclerListView(context); - listView.setGlowColor(0); - listView.setLayoutManager(layoutManager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)); - listView.setAdapter(listViewAdapter = new ListAdapter(context)); - listView.setVerticalScrollbarPosition(LocaleController.isRTL ? RecyclerListView.SCROLLBAR_POSITION_LEFT : RecyclerListView.SCROLLBAR_POSITION_RIGHT); - frameLayout.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); - - itemAnimator = new DefaultItemAnimator() { - @Override - protected long getAddAnimationDelay(long removeDuration, long moveDuration, long changeDuration) { - return removeDuration; - } - }; - listView.setOnItemClickListener((view, position) -> { - if (getParentActivity() == null) { - return; - } - if (position >= usersStartRow && position < usersEndRow) { - if (view instanceof ManageChatUserCell) { - ManageChatUserCell cell = (ManageChatUserCell) view; - TLRPC.TL_peerLocated peerLocated = users.get(position - usersStartRow); - Bundle args1 = new Bundle(); - args1.putLong("user_id", peerLocated.peer.user_id); - if (cell.hasAvatarSet()) { - args1.putBoolean("expandPhoto", true); - } - args1.putInt("nearby_distance", peerLocated.distance); - MessagesController.getInstance(currentAccount).ensureMessagesLoaded(peerLocated.peer.user_id, 0, null); - presentFragment(new ProfileActivity(args1)); - } - } else if (position >= chatsStartRow && position < chatsEndRow) { - TLRPC.TL_peerLocated peerLocated = chats.get(position - chatsStartRow); - Bundle args1 = new Bundle(); - long chatId; - if (peerLocated.peer instanceof TLRPC.TL_peerChat) { - chatId = peerLocated.peer.chat_id; - } else { - chatId = peerLocated.peer.channel_id; - } - args1.putLong("chat_id", chatId); - ChatActivity chatActivity = new ChatActivity(args1); - presentFragment(chatActivity); - } else if (position == chatsCreateRow) { - if (checkingCanCreate || currentGroupCreateAddress == null) { - loadingDialog = new AlertDialog(getParentActivity(), AlertDialog.ALERT_TYPE_SPINNER); - loadingDialog.setOnCancelListener(dialog -> loadingDialog = null); - loadingDialog.show(); - return; - } - openGroupCreate(); - } else if (position == showMeRow) { - UserConfig userConfig = getUserConfig(); - if (showingMe) { - userConfig.sharingMyLocationUntil = 0; - userConfig.saveConfig(false); - sendRequest(false, 2); - updateRows(null); - } else { - AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("MakeMyselfVisibleTitle", R.string.MakeMyselfVisibleTitle)); - builder.setMessage(LocaleController.getString("MakeMyselfVisibleInfo", R.string.MakeMyselfVisibleInfo)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialog, which) -> { - userConfig.sharingMyLocationUntil = 0x7fffffff; - userConfig.saveConfig(false); - sendRequest(false, 1); - updateRows(null); - }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - showDialog(builder.create()); - } - userConfig.saveConfig(false); - } else if (position == showMoreRow) { - expanded = true; - DiffCallback diffCallback = new DiffCallback(); - diffCallback.saveCurrentState(); - updateRows(diffCallback); - } - }); - listView.setOnScrollListener(new RecyclerView.OnScrollListener() { - @Override - public void onScrolled(RecyclerView recyclerView, int dx, int dy) { - checkScroll(true); - } - }); - - actionBarBackground = new View(context) { - - private Paint paint = new Paint(); - - @Override - protected void onDraw(Canvas canvas) { - paint.setColor(Theme.getColor(Theme.key_windowBackgroundWhite)); - int h = getMeasuredHeight() - AndroidUtilities.dp(3); - canvas.drawRect(0, 0, getMeasuredWidth(), h, paint); - parentLayout.drawHeaderShadow(canvas, h); - } - }; - actionBarBackground.setAlpha(0.0f); - frameLayout.addView(actionBarBackground, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); - frameLayout.addView(actionBar, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); - - undoView = new UndoView(context); - frameLayout.addView(undoView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM | Gravity.LEFT, 8, 0, 8, 8)); - - updateRows(null); - return fragmentView; - } - - private int[] location = new int[2]; - private void checkScroll(boolean animated) { - int first = layoutManager.findFirstVisibleItemPosition(); - boolean show; - if (first != 0) { - show = true; - } else { - RecyclerView.ViewHolder holder = listView.findViewHolderForAdapterPosition(first); - if (holder == null) { - show = true; - } else { - HintInnerCell hintInnerCell = (HintInnerCell) holder.itemView; - hintInnerCell.titleTextView.getLocationOnScreen(location); - show = location[1] + hintInnerCell.titleTextView.getMeasuredHeight() < actionBar.getBottom(); - } - } - boolean visible = actionBarBackground.getTag() == null; - if (show != visible) { - actionBarBackground.setTag(show ? null : 1); - if (actionBarAnimator != null) { - actionBarAnimator.cancel(); - actionBarAnimator = null; - } - if (animated) { - actionBarAnimator = new AnimatorSet(); - actionBarAnimator.playTogether( - ObjectAnimator.ofFloat(actionBarBackground, View.ALPHA, show ? 1.0f : 0.0f), - ObjectAnimator.ofFloat(actionBar.getTitleTextView(), View.ALPHA, show ? 1.0f : 0.0f) - ); - actionBarAnimator.setDuration(150); - actionBarAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (animation.equals(actionBarAnimator)) { - actionBarAnimator = null; - } - } - }); - actionBarAnimator.start(); - } else { - actionBarBackground.setAlpha(show ? 1.0f : 0.0f); - actionBar.getTitleTextView().setAlpha(show ? 1.0f : 0.0f); - } - } - } - - private void openGroupCreate() { - if (!canCreateGroup) { - AlertsCreator.showSimpleAlert(PeopleNearbyActivity.this, LocaleController.getString("YourLocatedChannelsTooMuch", R.string.YourLocatedChannelsTooMuch)); - return; - } - groupCreateActivity = new ActionIntroActivity(ActionIntroActivity.ACTION_TYPE_NEARBY_GROUP_CREATE); - groupCreateActivity.setGroupCreateAddress(currentGroupCreateAddress, currentGroupCreateDisplayAddress, currentGroupCreateLocation); - presentFragment(groupCreateActivity); - } - - private void checkCanCreateGroup() { - if (checkingCanCreate) { - return; - } - checkingCanCreate = true; - TLRPC.TL_channels_getAdminedPublicChannels req = new TLRPC.TL_channels_getAdminedPublicChannels(); - req.by_location = true; - req.check_limit = true; - int reqId = getConnectionsManager().sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { - canCreateGroup = error == null; - checkingCanCreate = false; - if (loadingDialog != null && currentGroupCreateAddress != null) { - try { - loadingDialog.dismiss(); - } catch (Throwable e) { - FileLog.e(e); - } - loadingDialog = null; - openGroupCreate(); - } - })); - getConnectionsManager().bindRequestToGuid(reqId, classGuid); - } - - private void showLoadingProgress(boolean show) { - if (showingLoadingProgress == show) { - return; - } - showingLoadingProgress = show; - if (showProgressAnimation != null) { - showProgressAnimation.cancel(); - showProgressAnimation = null; - } - if (listView == null) { - return; - } - ArrayList animators = new ArrayList<>(); - int count = listView.getChildCount(); - for (int a = 0; a < count; a++) { - View child = listView.getChildAt(a); - if (child instanceof HeaderCellProgress) { - HeaderCellProgress cell = (HeaderCellProgress) child; - animatingViews.add(cell); - animators.add(ObjectAnimator.ofFloat(cell.progressView, View.ALPHA, show ? 1.0f : 0.0f)); - } - } - if (animators.isEmpty()) { - return; - } - showProgressAnimation = new AnimatorSet(); - showProgressAnimation.playTogether(animators); - showProgressAnimation.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - showProgressAnimation = null; - animatingViews.clear(); - } - }); - showProgressAnimation.setDuration(180); - showProgressAnimation.start(); - } - - private void sendRequest(boolean shortpoll, int share) { - if (!firstLoaded) { - AndroidUtilities.runOnUIThread(showProgressRunnable = () -> { - showLoadingProgress(true); - showProgressRunnable = null; - }, 1000); - firstLoaded = true; - } - Location location = getLocationController().getLastKnownLocation(); - if (location == null) { - return; - } - currentGroupCreateLocation = location; - if (!shortpoll && lastLoadedLocation != null) { - float distance = lastLoadedLocation.distanceTo(location); - if (BuildVars.DEBUG_VERSION) { - FileLog.d("located distance = " + distance); - } - if (share != 0 || (SystemClock.elapsedRealtime() - lastLoadedLocationTime) >= 3000L && lastLoadedLocation.distanceTo(location) > 20) { - if (reqId != 0) { - getConnectionsManager().cancelRequest(reqId, true); - reqId = 0; - } - } else { - return; - } - } - if (reqId != 0) { - return; - } - lastLoadedLocation = location; - lastLoadedLocationTime = SystemClock.elapsedRealtime(); - LocationController.fetchLocationAddress(currentGroupCreateLocation, PeopleNearbyActivity.this); - TLRPC.TL_contacts_getLocated req = new TLRPC.TL_contacts_getLocated(); - req.geo_point = new TLRPC.TL_inputGeoPoint(); - req.geo_point.lat = location.getLatitude(); - req.geo_point._long = location.getLongitude(); - if (share != 0) { - req.flags |= 1; - req.self_expires = share == 1 ? 0x7fffffff : 0; - } else if (getUserConfig().sharingMyLocationUntil != 0) { - req.flags |= 1; - req.self_expires = getUserConfig().sharingMyLocationUntil; - } - reqId = getConnectionsManager().sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { - reqId = 0; - if (showProgressRunnable != null) { - AndroidUtilities.cancelRunOnUIThread(showProgressRunnable); - showProgressRunnable = null; - } - showLoadingProgress(false); - boolean saveConfig = false; - UserConfig userConfig = getUserConfig(); - if (share == 1 && error != null) { - userConfig.sharingMyLocationUntil = 0; - saveConfig = true; - updateRows(null); - } - if (response != null && share != 2) { - TLRPC.Updates updates = (TLRPC.TL_updates) response; - getMessagesController().putUsers(updates.users, false); - getMessagesController().putChats(updates.chats, false); - - DiffCallback diffCallback = new DiffCallback(); - diffCallback.saveCurrentState(); - - users.clear(); - chats.clear(); - if (userConfig.sharingMyLocationUntil != 0) { - userConfig.lastMyLocationShareTime = (int) (System.currentTimeMillis() / 1000); - saveConfig = true; - } - boolean hasSelf = false; - for (int a = 0, N = updates.updates.size(); a < N; a++) { - TLRPC.Update baseUpdate = updates.updates.get(a); - if (baseUpdate instanceof TLRPC.TL_updatePeerLocated) { - TLRPC.TL_updatePeerLocated update = (TLRPC.TL_updatePeerLocated) baseUpdate; - for (int b = 0, N2 = update.peers.size(); b < N2; b++) { - TLRPC.PeerLocated object = update.peers.get(b); - if (object instanceof TLRPC.TL_peerLocated) { - TLRPC.TL_peerLocated peerLocated = (TLRPC.TL_peerLocated) object; - if (peerLocated.peer instanceof TLRPC.TL_peerUser) { - users.add(peerLocated); - } else { - chats.add(peerLocated); - } - } else if (object instanceof TLRPC.TL_peerSelfLocated) { - hasSelf = true; - TLRPC.TL_peerSelfLocated peerSelfLocated = (TLRPC.TL_peerSelfLocated) object; - if (userConfig.sharingMyLocationUntil != peerSelfLocated.expires) { - userConfig.sharingMyLocationUntil = peerSelfLocated.expires; - saveConfig = true; - } - } - } - } - } - if (!hasSelf && userConfig.sharingMyLocationUntil != 0) { - userConfig.sharingMyLocationUntil = 0; - saveConfig = true; - } - - checkForExpiredLocations(true); - updateRows(diffCallback); - } - if (saveConfig) { - userConfig.saveConfig(false); - } - if (shortPollRunnable != null) { - AndroidUtilities.cancelRunOnUIThread(shortPollRunnable); - AndroidUtilities.runOnUIThread(shortPollRunnable, SHORT_POLL_TIMEOUT); - } - })); - getConnectionsManager().bindRequestToGuid(reqId, classGuid); - } - - @Override - public void onResume() { - super.onResume(); - if (listViewAdapter != null) { - listViewAdapter.notifyDataSetChanged(); - } - getLocationController().startLocationLookupForPeopleNearby(false); - } - - @Override - public void onPause() { - super.onPause(); - if (undoView != null) { - undoView.hide(true, 0); - } - getLocationController().startLocationLookupForPeopleNearby(true); - } - - @Override - public void onBecomeFullyHidden() { - super.onBecomeFullyHidden(); - if (undoView != null) { - undoView.hide(true, 0); - } - } - - @Override - public void onLocationAddressAvailable(String address, String displayAddress, TLRPC.TL_messageMediaVenue city, TLRPC.TL_messageMediaVenue street, Location location) { - currentGroupCreateAddress = address; - currentGroupCreateDisplayAddress = displayAddress; - currentGroupCreateLocation = location; - if (groupCreateActivity != null) { - groupCreateActivity.setGroupCreateAddress(currentGroupCreateAddress, currentGroupCreateDisplayAddress, currentGroupCreateLocation); - } - if (loadingDialog != null && !checkingCanCreate) { - try { - loadingDialog.dismiss(); - } catch (Throwable e) { - FileLog.e(e); - } - loadingDialog = null; - openGroupCreate(); - } - } - - @Override - public void onBecomeFullyVisible() { - super.onBecomeFullyVisible(); - groupCreateActivity = null; - } - - @Override - public void didReceivedNotification(int id, int account, Object... args) { - if (id == NotificationCenter.newLocationAvailable) { - sendRequest(false, 0); - } else if (id == NotificationCenter.newPeopleNearbyAvailable) { - TLRPC.TL_updatePeerLocated update = (TLRPC.TL_updatePeerLocated) args[0]; - DiffCallback diffCallback = new DiffCallback(); - diffCallback.saveCurrentState(); - for (int b = 0, N2 = update.peers.size(); b < N2; b++) { - TLRPC.PeerLocated object = update.peers.get(b); - if (object instanceof TLRPC.TL_peerLocated) { - TLRPC.TL_peerLocated peerLocated = (TLRPC.TL_peerLocated) object; - boolean found = false; - ArrayList arrayList; - if (peerLocated.peer instanceof TLRPC.TL_peerUser) { - arrayList = users; - } else { - arrayList = chats; - } - for (int a = 0, N = arrayList.size(); a < N; a++) { - TLRPC.TL_peerLocated old = arrayList.get(a); - if (old.peer.user_id != 0 && old.peer.user_id == peerLocated.peer.user_id || old.peer.chat_id != 0 && old.peer.chat_id == peerLocated.peer.chat_id || old.peer.channel_id != 0 && old.peer.channel_id == peerLocated.peer.channel_id) { - arrayList.set(a, peerLocated); - found = true; - } - } - if (!found) { - arrayList.add(peerLocated); - } - } - } - checkForExpiredLocations(true); - updateRows(diffCallback); - } else if (id == NotificationCenter.needDeleteDialog) { - if (fragmentView == null || isPaused) { - return; - } - long dialogId = (Long) args[0]; - TLRPC.User user = (TLRPC.User) args[1]; - TLRPC.Chat chat = (TLRPC.Chat) args[2]; - boolean revoke = (Boolean) args[3]; - Runnable deleteRunnable = () -> { - if (chat != null) { - if (ChatObject.isNotInChat(chat)) { - getMessagesController().deleteDialog(dialogId, 0, revoke); - } else { - getMessagesController().deleteParticipantFromChat(-dialogId, getMessagesController().getUser(getUserConfig().getClientUserId()), null, revoke, revoke); - } - } else { - getMessagesController().deleteDialog(dialogId, 0, revoke); - } - }; - if (undoView != null) { - undoView.showWithAction(dialogId, UndoView.ACTION_DELETE, deleteRunnable); - } else { - deleteRunnable.run(); - } - } - } - - private void checkForExpiredLocations(boolean cache) { - if (checkExpiredRunnable != null) { - AndroidUtilities.cancelRunOnUIThread(checkExpiredRunnable); - checkExpiredRunnable = null; - } - int currentTime = getConnectionsManager().getCurrentTime(); - int minExpired = Integer.MAX_VALUE; - boolean changed = false; - DiffCallback callback = null; - for (int a = 0; a < 2; a++) { - ArrayList arrayList = a == 0 ? users : chats; - for (int b = 0, N = arrayList.size(); b < N; b++) { - TLRPC.TL_peerLocated peer = arrayList.get(b); - if (peer.expires <= currentTime) { - if (callback == null) { - callback = new DiffCallback(); - callback.saveCurrentState(); - } - arrayList.remove(b); - b--; - N--; - changed = true; - } else { - minExpired = Math.min(minExpired, peer.expires); - } - } - } - if (changed && listViewAdapter != null) { - updateRows(callback); - } - if (changed || cache) { - getLocationController().setCachedNearbyUsersAndChats(users, chats); - } - if (minExpired != Integer.MAX_VALUE) { - AndroidUtilities.runOnUIThread(checkExpiredRunnable = () -> { - checkExpiredRunnable = null; - checkForExpiredLocations(false); - }, (minExpired - currentTime) * 1000); - } - } - - public static class HeaderCellProgress extends HeaderCell { - - private RadialProgressView progressView; - - public HeaderCellProgress(Context context) { - super(context); - - setClipChildren(false); - - progressView = new RadialProgressView(context); - progressView.setSize(AndroidUtilities.dp(14)); - progressView.setStrokeWidth(2); - progressView.setAlpha(0.0f); - progressView.setProgressColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueHeader)); - addView(progressView, LayoutHelper.createFrame(50, 40, Gravity.TOP | (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT), LocaleController.isRTL ? 2 : 0, 3, LocaleController.isRTL ? 0 : 2, 0)); - } - } - - @SuppressWarnings("FieldCanBeLocal") - public class HintInnerCell extends FrameLayout { - - private ImageView imageView; - private TextView titleTextView; - private TextView messageTextView; - - public HintInnerCell(Context context) { - super(context); - - int top = (int) ((ActionBar.getCurrentActionBarHeight() + (actionBar.getOccupyStatusBar() ? AndroidUtilities.statusBarHeight : 0)) / AndroidUtilities.density) - 44; - - imageView = new ImageView(context); - imageView.setBackgroundDrawable(Theme.createCircleDrawable(AndroidUtilities.dp(74), Theme.getColor(Theme.key_chats_archiveBackground))); - imageView.setImageDrawable(new ShareLocationDrawable(context, 2)); - imageView.setScaleType(ImageView.ScaleType.CENTER); - addView(imageView, LayoutHelper.createFrame(74, 74, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, top + 27, 0, 0)); - - titleTextView = new TextView(context); - titleTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); - titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 24); - titleTextView.setGravity(Gravity.CENTER); - titleTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("PeopleNearby", R.string.PeopleNearby))); - addView(titleTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT, 17, top + 120, 17, 27)); - - messageTextView = new TextView(context); - messageTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText)); - messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); - messageTextView.setGravity(Gravity.CENTER); - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatString("PeopleNearbyInfo2", R.string.PeopleNearbyInfo2))); - addView(messageTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT, 40, top + 161, 40, 27)); - } - } - - private class ListAdapter extends RecyclerListView.SelectionAdapter { - - private Context mContext; - - public ListAdapter(Context context) { - mContext = context; - } - - @Override - public boolean isEnabled(RecyclerView.ViewHolder holder) { - int type = holder.getItemViewType(); - return type == 0 || type == 2; - } - - @Override - public int getItemCount() { - return rowCount; - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View view; - switch (viewType) { - case 0: - view = new ManageChatUserCell(mContext, 6, 2, false); - view.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); - break; - case 1: - view = new ShadowSectionCell(mContext); - break; - case 2: - view = new ManageChatTextCell(mContext); - view.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); - break; - case 3: - view = new HeaderCellProgress(mContext); - view.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); - break; - case 4: - TextView textView = new TextView(mContext) { - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(67), MeasureSpec.EXACTLY)); - } - }; - textView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); - textView.setPadding(0, 0, AndroidUtilities.dp(3), 0); - textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - textView.setGravity(Gravity.CENTER); - textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText3)); - view = textView; - break; - case 5: - default: - view = new HintInnerCell(mContext); - view.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); - break; - } - view.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); - return new RecyclerListView.Holder(view); - } - - @Override - public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { - if (holder.getItemViewType() == 3 && !animatingViews.contains(holder.itemView)) { - HeaderCellProgress cell = (HeaderCellProgress) holder.itemView; - cell.progressView.setAlpha(showingLoadingProgress ? 1.0f : 0.0f); - } - } - - private String formatDistance(TLRPC.TL_peerLocated located) { - return LocaleController.formatDistance(located.distance, 0); - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { - switch (holder.getItemViewType()) { - case 0: - ManageChatUserCell userCell = (ManageChatUserCell) holder.itemView; - userCell.setTag(position); - if (position >= usersStartRow && position < usersEndRow) { - int index = position - usersStartRow; - TLRPC.TL_peerLocated peerLocated = users.get(index); - TLRPC.User user = getMessagesController().getUser(peerLocated.peer.user_id); - if (user != null) { - userCell.setData(user, null, formatDistance(peerLocated), showMoreRow != -1 || position != usersEndRow - 1); - } - } else if (position >= chatsStartRow && position < chatsEndRow) { - int index = position - chatsStartRow; - TLRPC.TL_peerLocated peerLocated = chats.get(index); - long chatId; - if (peerLocated.peer instanceof TLRPC.TL_peerChat) { - chatId = peerLocated.peer.chat_id; - } else { - chatId = peerLocated.peer.channel_id; - } - TLRPC.Chat chat = getMessagesController().getChat(chatId); - if (chat != null) { - String subtitle = formatDistance(peerLocated); - if (chat.participants_count != 0) { - subtitle = String.format("%1$s, %2$s", subtitle, LocaleController.formatPluralString("Members", chat.participants_count)); - } - userCell.setData(chat, null, subtitle, index != chats.size() - 1); - } - } - break; - case 1: - ShadowSectionCell privacyCell = (ShadowSectionCell) holder.itemView; - if (position == usersSectionRow) { - privacyCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); - } else if (position == chatsSectionRow) { - privacyCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); - } else if (position == helpSectionRow) { - privacyCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); - } - break; - case 2: - ManageChatTextCell actionCell = (ManageChatTextCell) holder.itemView; - actionCell.setColors(Theme.key_windowBackgroundWhiteBlueIcon, Theme.key_windowBackgroundWhiteBlueButton); - if (position == chatsCreateRow) { - actionCell.setText(LocaleController.getString("NearbyCreateGroup", R.string.NearbyCreateGroup), null, R.drawable.groups_create, chatsStartRow != -1); - } else if (position == showMeRow) { - if (showingMe = (getUserConfig().sharingMyLocationUntil > getConnectionsManager().getCurrentTime())) { - actionCell.setText(LocaleController.getString(R.string.StopShowingMe), null, R.drawable.menu_nearby_off, usersStartRow != -1); - actionCell.setColors(Theme.key_text_RedRegular, Theme.key_text_RedRegular); - } else { - actionCell.setText(LocaleController.getString("MakeMyselfVisible", R.string.MakeMyselfVisible), null, R.drawable.msg_nearby, usersStartRow != -1); - } - } else if (position == showMoreRow) { - actionCell.setText(LocaleController.formatPluralString("ShowVotes", users.size() - 5), null, R.drawable.arrow_more, false); - } - break; - case 3: - HeaderCellProgress headerCell = (HeaderCellProgress) holder.itemView; - if (position == usersHeaderRow) { - headerCell.setText(LocaleController.getString("PeopleNearbyHeader", R.string.PeopleNearbyHeader)); - } else if (position == chatsHeaderRow) { - headerCell.setText(LocaleController.getString("ChatsNearbyHeader", R.string.ChatsNearbyHeader)); - } - break; - } - } - - @Override - public void onViewRecycled(RecyclerView.ViewHolder holder) { - if (holder.itemView instanceof ManageChatUserCell) { - ((ManageChatUserCell) holder.itemView).recycle(); - } - } - - @Override - public int getItemViewType(int position) { - if (position == helpRow) { - return 5; - } else if (position == chatsCreateRow || position == showMeRow || position == showMoreRow) { - return 2; - } else if (position == usersHeaderRow || position == chatsHeaderRow) { - return 3; - } else if (position == usersSectionRow || position == chatsSectionRow || position == helpSectionRow) { - return 1; - } - return 0; - } - } - - @Override - public boolean isLightStatusBar() { - int color = Theme.getColor(Theme.key_windowBackgroundWhite, null, true); - return ColorUtils.calculateLuminance(color) > 0.7f; - } - - @Override - public ArrayList getThemeDescriptions() { - ArrayList themeDescriptions = new ArrayList<>(); - - ThemeDescription.ThemeDescriptionDelegate cellDelegate = () -> { - if (listView != null) { - int count = listView.getChildCount(); - for (int a = 0; a < count; a++) { - View child = listView.getChildAt(a); - if (child instanceof ManageChatUserCell) { - ((ManageChatUserCell) child).update(0); - } - } - } - }; - - themeDescriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_CELLBACKGROUNDCOLOR, new Class[]{ManageChatUserCell.class, ManageChatTextCell.class, HeaderCell.class, TextView.class, HintInnerCell.class}, null, null, null, Theme.key_windowBackgroundWhite)); - themeDescriptions.add(new ThemeDescription(fragmentView, ThemeDescription.FLAG_BACKGROUND | ThemeDescription.FLAG_CHECKTAG, null, null, null, null, Theme.key_windowBackgroundGray)); - themeDescriptions.add(new ThemeDescription(fragmentView, ThemeDescription.FLAG_BACKGROUND | ThemeDescription.FLAG_CHECKTAG, null, null, null, null, Theme.key_windowBackgroundWhite)); - - themeDescriptions.add(new ThemeDescription(actionBarBackground, ThemeDescription.FLAG_BACKGROUND, null, null, null, null, Theme.key_windowBackgroundWhite)); - themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_ITEMSCOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); - themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_TITLECOLOR, null, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); - themeDescriptions.add(new ThemeDescription(actionBar, ThemeDescription.FLAG_AB_SELECTORCOLOR, null, null, null, null, Theme.key_listSelector)); - - themeDescriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_SELECTOR, null, null, null, null, Theme.key_listSelector)); - - themeDescriptions.add(new ThemeDescription(listView, 0, new Class[]{View.class}, Theme.dividerPaint, null, null, Theme.key_divider)); - - themeDescriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_BACKGROUNDFILTER, new Class[]{ShadowSectionCell.class}, null, null, null, Theme.key_windowBackgroundGrayShadow)); - - themeDescriptions.add(new ThemeDescription(listView, 0, new Class[]{HeaderCell.class}, new String[]{"textView"}, null, null, null, Theme.key_windowBackgroundWhiteBlueHeader)); - themeDescriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_PROGRESSBAR, new Class[]{HeaderCellProgress.class}, new String[]{"progressView"}, null, null, null, Theme.key_windowBackgroundWhiteBlueHeader)); - - themeDescriptions.add(new ThemeDescription(listView, 0, new Class[]{ManageChatUserCell.class}, new String[]{"nameTextView"}, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); - themeDescriptions.add(new ThemeDescription(listView, 0, new Class[]{ManageChatUserCell.class}, new String[]{"statusColor"}, null, null, cellDelegate, Theme.key_windowBackgroundWhiteGrayText)); - themeDescriptions.add(new ThemeDescription(listView, 0, new Class[]{ManageChatUserCell.class}, new String[]{"statusOnlineColor"}, null, null, cellDelegate, Theme.key_windowBackgroundWhiteBlueText)); - themeDescriptions.add(new ThemeDescription(listView, 0, new Class[]{ManageChatUserCell.class}, null, Theme.avatarDrawables, null, Theme.key_avatar_text)); - themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, cellDelegate, Theme.key_avatar_backgroundRed)); - themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, cellDelegate, Theme.key_avatar_backgroundOrange)); - themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, cellDelegate, Theme.key_avatar_backgroundViolet)); - themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, cellDelegate, Theme.key_avatar_backgroundGreen)); - themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, cellDelegate, Theme.key_avatar_backgroundCyan)); - themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, cellDelegate, Theme.key_avatar_backgroundBlue)); - themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, cellDelegate, Theme.key_avatar_backgroundPink)); - - themeDescriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_USEBACKGROUNDDRAWABLE, new Class[]{HintInnerCell.class}, new String[]{"imageView"}, null, null, null, Theme.key_chats_archiveBackground)); - themeDescriptions.add(new ThemeDescription(listView, 0, new Class[]{HintInnerCell.class}, new String[]{"messageTextView"}, null, null, null, Theme.key_chats_message)); - - themeDescriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_CHECKTAG, new Class[]{ManageChatTextCell.class}, new String[]{"textView"}, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); - themeDescriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_CHECKTAG, new Class[]{ManageChatTextCell.class}, new String[]{"imageView"}, null, null, null, Theme.key_windowBackgroundWhiteGrayIcon)); - themeDescriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_CHECKTAG, new Class[]{ManageChatTextCell.class}, new String[]{"imageView"}, null, null, null, Theme.key_windowBackgroundWhiteBlueButton)); - themeDescriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_CHECKTAG, new Class[]{ManageChatTextCell.class}, new String[]{"textView"}, null, null, null, Theme.key_windowBackgroundWhiteBlueIcon)); - themeDescriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_CHECKTAG, new Class[]{ManageChatTextCell.class}, new String[]{"imageView"}, null, null, null, Theme.key_text_RedRegular)); - themeDescriptions.add(new ThemeDescription(listView, ThemeDescription.FLAG_CHECKTAG, new Class[]{ManageChatTextCell.class}, new String[]{"textView"}, null, null, null, Theme.key_text_RedRegular)); - - themeDescriptions.add(new ThemeDescription(undoView, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_undo_background)); - themeDescriptions.add(new ThemeDescription(undoView, 0, new Class[]{UndoView.class}, new String[]{"undoImageView"}, null, null, null, Theme.key_undo_cancelColor)); - themeDescriptions.add(new ThemeDescription(undoView, 0, new Class[]{UndoView.class}, new String[]{"undoTextView"}, null, null, null, Theme.key_undo_cancelColor)); - themeDescriptions.add(new ThemeDescription(undoView, 0, new Class[]{UndoView.class}, new String[]{"infoTextView"}, null, null, null, Theme.key_undo_infoColor)); - themeDescriptions.add(new ThemeDescription(undoView, 0, new Class[]{UndoView.class}, new String[]{"subinfoTextView"}, null, null, null, Theme.key_undo_infoColor)); - themeDescriptions.add(new ThemeDescription(undoView, 0, new Class[]{UndoView.class}, new String[]{"textPaint"}, null, null, null, Theme.key_undo_infoColor)); - themeDescriptions.add(new ThemeDescription(undoView, 0, new Class[]{UndoView.class}, new String[]{"progressPaint"}, null, null, null, Theme.key_undo_infoColor)); - - return themeDescriptions; - } -} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoAlbumPickerActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoAlbumPickerActivity.java index 9aca8b6a88..626d1e1426 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoAlbumPickerActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoAlbumPickerActivity.java @@ -198,11 +198,11 @@ public void onItemClick(int id) { ActionBarMenu menu = actionBar.createMenu(); if (allowSearchImages) { - menu.addItem(2, R.drawable.ic_ab_search).setContentDescription(LocaleController.getString("Search", R.string.Search)); + menu.addItem(2, R.drawable.ic_ab_search).setContentDescription(LocaleController.getString(R.string.Search)); } ActionBarMenuItem menuItem = menu.addItem(0, R.drawable.ic_ab_other); - menuItem.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); - menuItem.addSubItem(1, R.drawable.msg_openin, LocaleController.getString("OpenInExternalApp", R.string.OpenInExternalApp)); + menuItem.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); + menuItem.addSubItem(1, R.drawable.msg_openin, LocaleController.getString(R.string.OpenInExternalApp)); sizeNotifierFrameLayout = new SizeNotifierFrameLayout(context) { @@ -335,7 +335,7 @@ public void requestLayout() { sizeNotifierFrameLayout.setBackgroundColor(Theme.getColor(Theme.key_dialogBackground)); fragmentView = sizeNotifierFrameLayout; - actionBar.setTitle(LocaleController.getString("Gallery", R.string.Gallery)); + actionBar.setTitle(LocaleController.getString(R.string.Gallery)); listView = new RecyclerListView(context); listView.setPadding(AndroidUtilities.dp(6), AndroidUtilities.dp(4), AndroidUtilities.dp(6), AndroidUtilities.dp(54)); @@ -353,7 +353,7 @@ public void requestLayout() { emptyView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); emptyView.setGravity(Gravity.CENTER); emptyView.setVisibility(View.GONE); - emptyView.setText(LocaleController.getString("NoPhotos", R.string.NoPhotos)); + emptyView.setText(LocaleController.getString(R.string.NoPhotos)); sizeNotifierFrameLayout.addView(emptyView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.LEFT | Gravity.TOP, 0, 0, 0, 48)); emptyView.setOnTouchListener((v, event) -> true); @@ -384,7 +384,7 @@ public void requestLayout() { InputFilter[] inputFilters = new InputFilter[1]; inputFilters[0] = new InputFilter.LengthFilter(MessagesController.getInstance(UserConfig.selectedAccount).maxCaptionLength); commentTextView.setFilters(inputFilters); - commentTextView.setHint(LocaleController.getString("AddCaption", R.string.AddCaption)); + commentTextView.setHint(LocaleController.getString(R.string.AddCaption)); EditTextBoldCursor editText = commentTextView.getEditText(); editText.setMaxLines(1); editText.setSingleLine(true); @@ -491,12 +491,12 @@ public boolean onTouch(View v, MotionEvent event) { itemCells[a].setTextAndIcon(LocaleController.getString("Translate", R.string.Translate), R.drawable.ic_translate); } else if (num == 1) { if (UserObject.isUserSelf(user)) { - itemCells[a].setTextAndIcon(LocaleController.getString("SetReminder", R.string.SetReminder), R.drawable.msg_calendar); + itemCells[a].setTextAndIcon(LocaleController.getString(R.string.SetReminder), R.drawable.msg_calendar2); } else { - itemCells[a].setTextAndIcon(LocaleController.getString("ScheduleMessage", R.string.ScheduleMessage), R.drawable.msg_calendar); + itemCells[a].setTextAndIcon(LocaleController.getString(R.string.ScheduleMessage), R.drawable.msg_calendar2); } - } else if (num == 2) { - itemCells[a].setTextAndIcon(LocaleController.getString("SendWithoutSound", R.string.SendWithoutSound), R.drawable.input_notify_off); + } else { + itemCells[a].setTextAndIcon(LocaleController.getString(R.string.SendWithoutSound), R.drawable.input_notify_off); } itemCells[a].setMinimumWidth(AndroidUtilities.dp(196)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoCropActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoCropActivity.java index 040675ad45..ac3e3b2d84 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoCropActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoCropActivity.java @@ -420,7 +420,7 @@ public View createView(Context context) { actionBar.setItemsColor(0xffffffff, false); actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("CropImage", R.string.CropImage)); + actionBar.setTitle(LocaleController.getString(R.string.CropImage)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { @@ -441,7 +441,7 @@ public void onItemClick(int id) { }); ActionBarMenu menu = actionBar.createMenu(); - menu.addItemWithWidth(done_button, R.drawable.ic_ab_done, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + menu.addItemWithWidth(done_button, R.drawable.ic_ab_done, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); fragmentView = view = new PhotoCropView(context); ((PhotoCropView) fragmentView).freeform = getArguments().getBoolean("freeform", false); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerActivity.java index dbde1676fe..46bca472ff 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerActivity.java @@ -504,9 +504,9 @@ public View createView(Context context) { if (selectedAlbum != null) { actionBar.setTitle(selectedAlbum.bucketName); } else if (type == 0) { - actionBar.setTitle(LocaleController.getString("SearchImagesTitle", R.string.SearchImagesTitle)); + actionBar.setTitle(LocaleController.getString(R.string.SearchImagesTitle)); } else if (type == 1) { - actionBar.setTitle(LocaleController.getString("SearchGifsTitle", R.string.SearchGifsTitle)); + actionBar.setTitle(LocaleController.getString(R.string.SearchGifsTitle)); } actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -538,7 +538,7 @@ public void onItemClick(int id) { menuItem.setSubMenuDelegate(new ActionBarMenuItem.ActionBarSubMenuItemDelegate() { @Override public void onShowSubMenu() { - showAsListItem.setText(listSort ? LocaleController.getString(R.string.ShowAsGrid) : LocaleController.getString("ShowAsList", R.string.ShowAsList)); + showAsListItem.setText(listSort ? LocaleController.getString(R.string.ShowAsGrid) : LocaleController.getString(R.string.ShowAsList)); showAsListItem.setIcon(listSort ? R.drawable.msg_media : R.drawable.msg_list); } @@ -546,8 +546,8 @@ public void onShowSubMenu() { public void onHideSubMenu() { } }); - showAsListItem = menuItem.addSubItem(change_sort, R.drawable.msg_list, LocaleController.getString("ShowAsList", R.string.ShowAsList)); - menuItem.addSubItem(open_in, R.drawable.msg_openin, LocaleController.getString("OpenInExternalApp", R.string.OpenInExternalApp)); + showAsListItem = menuItem.addSubItem(change_sort, R.drawable.msg_list, LocaleController.getString(R.string.ShowAsList)); + menuItem.addSubItem(open_in, R.drawable.msg_openin, LocaleController.getString(R.string.OpenInExternalApp)); } if (selectedAlbum == null) { @@ -576,7 +576,7 @@ public void onTextChanged(EditText editText) { ConnectionsManager.getInstance(currentAccount).cancelRequest(imageReqId, true); imageReqId = 0; } - emptyView.title.setText(LocaleController.getString("NoRecentSearches", R.string.NoRecentSearches)); + emptyView.title.setText(LocaleController.getString(R.string.NoRecentSearches)); emptyView.showProgress(false); updateSearchInterface(); } else { @@ -600,9 +600,9 @@ public void onSearchPressed(EditText editText) { if (selectedAlbum == null) { if (type == 0) { - searchItem.setSearchFieldHint(LocaleController.getString("SearchImagesTitle", R.string.SearchImagesTitle)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.SearchImagesTitle)); } else if (type == 1) { - searchItem.setSearchFieldHint(LocaleController.getString("SearchGifsTitle", R.string.SearchGifsTitle)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.SearchGifsTitle)); } } @@ -817,16 +817,16 @@ public int getSpanSize(int position) { } } else if (position == recentSearches.size() + 1) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("ClearSearchAlertTitle", R.string.ClearSearchAlertTitle)); - builder.setMessage(LocaleController.getString("ClearSearchAlert", R.string.ClearSearchAlert)); - builder.setPositiveButton(LocaleController.getString("ClearButton", R.string.ClearButton), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.ClearSearchAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.ClearSearchAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.ClearButton), (dialogInterface, i) -> { if (searchDelegate != null) { searchDelegate.shouldClearRecentSearch(); } else { clearRecentSearch(); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -951,11 +951,11 @@ public int getColumnsCount() { emptyView.addView(flickerView, 0); if (selectedAlbum != null) { // emptyView.setShowAtCenter(false); - emptyView.title.setText(LocaleController.getString("NoPhotos", R.string.NoPhotos)); + emptyView.title.setText(LocaleController.getString(R.string.NoPhotos)); } else { // emptyView.setShowAtTop(true); // emptyView.setPadding(0, AndroidUtilities.dp(200), 0, 0); - emptyView.title.setText(LocaleController.getString("NoRecentSearches", R.string.NoRecentSearches)); + emptyView.title.setText(LocaleController.getString(R.string.NoRecentSearches)); } emptyView.showProgress(false, false); sizeNotifierFrameLayout.addView(emptyView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.LEFT | Gravity.TOP, 0, 126, 0, 0)); @@ -1009,7 +1009,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { InputFilter[] inputFilters = new InputFilter[1]; inputFilters[0] = new InputFilter.LengthFilter(MessagesController.getInstance(UserConfig.selectedAccount).maxCaptionLength); commentTextView.setFilters(inputFilters); - commentTextView.setHint(LocaleController.getString("AddCaption", R.string.AddCaption)); + commentTextView.setHint(LocaleController.getString(R.string.AddCaption)); commentTextView.onResume(); EditTextBoldCursor editText = commentTextView.getEditText(); editText.setMaxLines(1); @@ -1131,12 +1131,12 @@ public boolean onTouch(View v, MotionEvent event) { itemCells[a].setTextAndIcon(LocaleController.getString("Translate", R.string.Translate), R.drawable.ic_translate); } else if (num == 1) { if (UserObject.isUserSelf(user)) { - itemCells[a].setTextAndIcon(LocaleController.getString("SetReminder", R.string.SetReminder), R.drawable.msg_calendar); + itemCells[a].setTextAndIcon(LocaleController.getString(R.string.SetReminder), R.drawable.msg_calendar2); } else { - itemCells[a].setTextAndIcon(LocaleController.getString("ScheduleMessage", R.string.ScheduleMessage), R.drawable.msg_calendar); + itemCells[a].setTextAndIcon(LocaleController.getString(R.string.ScheduleMessage), R.drawable.msg_calendar2); } - } else if (num == 2) { - itemCells[a].setTextAndIcon(LocaleController.getString("SendWithoutSound", R.string.SendWithoutSound), R.drawable.input_notify_off); + } else { + itemCells[a].setTextAndIcon(LocaleController.getString(R.string.SendWithoutSound), R.drawable.input_notify_off); } itemCells[a].setMinimumWidth(AndroidUtilities.dp(196)); @@ -1452,7 +1452,7 @@ private void processSearch(EditText editText) { lastSearchString = text; if (lastSearchString.length() == 0) { lastSearchString = null; - emptyView.title.setText(LocaleController.getString("NoRecentSearches", R.string.NoRecentSearches)); + emptyView.title.setText(LocaleController.getString(R.string.NoRecentSearches)); } else { emptyView.title.setText(LocaleController.formatString("NoResultFoundFor", R.string.NoResultFoundFor, lastSearchString)); } @@ -1913,7 +1913,7 @@ private void checkSlowMode() { TLRPC.Chat chat = chatActivity.getCurrentChat(); if (chat != null && !ChatObject.hasAdminRights(chat) && chat.slowmode_enabled) { if (alertOnlyOnce != 2) { - AlertsCreator.showSimpleAlert(PhotoPickerActivity.this, LocaleController.getString("Slowmode", R.string.Slowmode), LocaleController.getString("SlowmodeSelectSendError", R.string.SlowmodeSelectSendError)); + AlertsCreator.showSimpleAlert(PhotoPickerActivity.this, LocaleController.getString(R.string.Slowmode), LocaleController.getString(R.string.SlowmodeSelectSendError)); if (alertOnlyOnce == 1) { alertOnlyOnce = 2; } @@ -2037,7 +2037,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (position < recentSearches.size()) { cell.setTextAndIcon(recentSearches.get(position), R.drawable.menu_recent, false); } else { - cell.setTextAndIcon(LocaleController.getString("ClearRecentHistory", R.string.ClearRecentHistory), R.drawable.menu_clear_recent, false); + cell.setTextAndIcon(LocaleController.getString(R.string.ClearRecentHistory), R.drawable.msg_clear_recent, false); } break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerSearchActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerSearchActivity.java index 44ebe57707..fca4d0df94 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerSearchActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerSearchActivity.java @@ -141,7 +141,7 @@ public void onSearchPressed(EditText editText) { gifsSearch.getActionBar().onSearchPressed(); } }); - searchItem.setSearchFieldHint(LocaleController.getString("SearchImagesTitle", R.string.SearchImagesTitle)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.SearchImagesTitle)); EditTextBoldCursor editText = searchItem.getSearchField(); editText.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); editText.setCursorColor(Theme.getColor(Theme.key_dialogTextBlack)); @@ -163,9 +163,9 @@ public void onPageSelected(int id, boolean forward) { switchToCurrentSelectedMode(true); animatingForward = forward; if (id == 0) { - searchItem.setSearchFieldHint(LocaleController.getString("SearchImagesTitle", R.string.SearchImagesTitle)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.SearchImagesTitle)); } else { - searchItem.setSearchFieldHint(LocaleController.getString("SearchGifsTitle", R.string.SearchGifsTitle)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.SearchGifsTitle)); } } @@ -780,8 +780,8 @@ private void updateTabs() { if (scrollSlidingTextTabStrip == null) { return; } - scrollSlidingTextTabStrip.addTextTab(0, LocaleController.getString("ImagesTab2", R.string.ImagesTab2)); - scrollSlidingTextTabStrip.addTextTab(1, LocaleController.getString("GifsTab2", R.string.GifsTab2)); + scrollSlidingTextTabStrip.addTextTab(0, LocaleController.getString(R.string.ImagesTab2)); + scrollSlidingTextTabStrip.addTextTab(1, LocaleController.getString(R.string.GifsTab2)); scrollSlidingTextTabStrip.setVisibility(View.VISIBLE); actionBar.setExtraHeight(AndroidUtilities.dp(44)); int id = scrollSlidingTextTabStrip.getCurrentTabId(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java index 60cb5227c4..1ea612b75a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java @@ -200,7 +200,6 @@ import org.telegram.ui.ActionBar.BottomSheet; import org.telegram.ui.ActionBar.SimpleTextView; import org.telegram.ui.ActionBar.Theme; -import org.telegram.ui.Cells.ChatActionCell; import org.telegram.ui.Cells.CheckBoxCell; import org.telegram.ui.Cells.PhotoPickerPhotoCell; import org.telegram.ui.Cells.TextSelectionHelper; @@ -287,7 +286,6 @@ import java.io.FileOutputStream; import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.net.IDN; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Arrays; @@ -518,7 +516,7 @@ public void setSubtitle(CharSequence subtitle, boolean animated) { } final boolean isLandscape = AndroidUtilities.displaySize.x > AndroidUtilities.displaySize.y; - final int subtitleTranslation = dp((haveSubtitle ? 30 : 33) - (isLandscape ? 6 : 0)); + final int subtitleTranslation = dp((haveSubtitle ? 30 : 33) - (isLandscape ? (AndroidUtilities.isTablet() ? -4 : 6) : 0)); if (animated) { ArrayList arrayList = new ArrayList<>(); @@ -5093,7 +5091,7 @@ public void onItemClick(int id) { final ArrayList fmessages = new ArrayList<>(); fmessages.add(currentMessageObject); final ChatActivity parentChatActivityFinal = parentChatActivity; - fragment.setDelegate((fragment1, dids, message, param, topicsFragment) -> { + fragment.setDelegate((fragment1, dids, message, param, notify, scheduleDate, topicsFragment) -> { if (dids.size() > 1 || dids.get(0).dialogId == UserConfig.getInstance(currentAccount).getClientUserId() || message != null) { for (int a = 0; a < dids.size(); a++) { long did = dids.get(a).dialogId; @@ -5718,7 +5716,7 @@ public void onSpeedSelected(float speed, boolean isFinal, boolean closeMenu) { menuItem.addSubItem(gallery_menu_reply, R.drawable.menu_reply, getString(R.string.Reply)).setColors(0xfffafafa, 0xfffafafa); menuItem.addSubItem(gallery_menu_share, R.drawable.msg_shareout, getString("ShareFile", R.string.ShareFile)).setColors(0xfffafafa, 0xfffafafa); menuItem.addSubItem(gallery_menu_masks2, R.drawable.msg_sticker, getString("ShowStickers", R.string.ShowStickers)).setColors(0xfffafafa, 0xfffafafa); - //menuItem.addSubItem(gallery_menu_edit_avatar, R.drawable.photo_paint, LocaleController.getString("EditPhoto", R.string.EditPhoto)).setColors(0xfffafafa, 0xfffafafa); + //menuItem.addSubItem(gallery_menu_edit_avatar, R.drawable.photo_paint, LocaleController.getString(R.string.EditPhoto)).setColors(0xfffafafa, 0xfffafafa); menuItem.addSubItem(gallery_menu_copy, R.drawable.msg_copy, getString("CopyPhoto", R.string.CopyPhoto)).setColors(0xfffafafa, 0xfffafafa); menuItem.addSubItem(gallery_menu_set_photo, R.drawable.msg_openprofile, getString("SetProfilePhoto", R.string.SetProfilePhoto)).setColors(0xfffafafa, 0xfffafafa); @@ -7720,18 +7718,18 @@ private void showForward(ArrayList fmessages, boolean noQuote) { args.putInt("dialogsType", 3); DialogsActivity fragment = new DialogsActivity(args); final ChatActivity parentChatActivityFinal = parentChatActivity; - fragment.setDelegate((fragment1, dids, message, param, topicsFragment) -> { + fragment.setDelegate((fragment1, dids, message, param, notify, scheduleDate, topicsFragment) -> { if (dids.size() > 1 || dids.get(0).dialogId == UserConfig.getInstance(currentAccount).getClientUserId() || message != null) { for (int a = 0; a < dids.size(); a++) { long did = dids.get(a).dialogId; if (message != null) { - SendMessagesHelper.getInstance(currentAccount).sendMessage(message.toString(), did, null, null, null, true, null, null, null, true, 0, null, false); + SendMessagesHelper.getInstance(currentAccount).sendMessage(message.toString(), did, null, null, null, true, null, null, null, notify, scheduleDate, null, false); } if (noQuote) { //MessageHelper.getInstance(currentAccount).processForwardFromMyName(fmessages, did, true, 0); - SendMessagesHelper.getInstance(currentAccount).sendMessage(fmessages, did, true, false, true, 0); + SendMessagesHelper.getInstance(currentAccount).sendMessage(fmessages, did, true, false, notify, scheduleDate); } else { - SendMessagesHelper.getInstance(currentAccount).sendMessage(fmessages, did, false, false, true, 0); + SendMessagesHelper.getInstance(currentAccount).sendMessage(fmessages, did, false, false, notify, scheduleDate); } } fragment1.finishFragment(); @@ -20312,7 +20310,7 @@ private int getThemedColor(int key) { private RenderNode renderNode; public static boolean BLUR_RENDERNODE() { - return Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && SharedConfig.useNewBlur && SharedConfig.getDevicePerformanceClass() >= SharedConfig.PERFORMANCE_CLASS_HIGH; + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && SharedConfig.useNewBlur && SharedConfig.getDevicePerformanceClass() >= SharedConfig.PERFORMANCE_CLASS_HIGH && !AndroidUtilities.makingGlobalBlurBitmap; } private void drawCaptionBlur(Canvas canvas, BlurringShader.StoryBlurDrawer drawer, int bgColor, int overlayColor, boolean clip, boolean allowTransparent, boolean allowCrossfade) { @@ -21299,7 +21297,7 @@ public void openAdsMenu() { if (parentFragment instanceof ChatActivity) { ((ChatActivity) parentFragment).logSponsoredClicked(currentMessageObject); } - Browser.openUrl(activityContext, currentMessageObject.sponsoredUrl, true, false); + Browser.openUrl(activityContext, Uri.parse(currentMessageObject.sponsoredUrl), true, false, false, null, null, false, MessagesController.getInstance(currentAccount).sponsoredLinksInappAllow); }); textView.setOnLongClickListener(e -> { if (currentMessageObject == null) { @@ -21458,7 +21456,7 @@ private void createAdButtonView() { } closePhoto(true, false); if (currentMessageObject.sponsoredUrl != null) { - Browser.openUrl(LaunchActivity.instance != null ? LaunchActivity.instance : activityContext, Uri.parse(currentMessageObject.sponsoredUrl), true, false, false, null, null, false); + Browser.openUrl(LaunchActivity.instance != null ? LaunchActivity.instance : activityContext, Uri.parse(currentMessageObject.sponsoredUrl), true, false, false, null, null, false, MessagesController.getInstance(currentAccount).sponsoredLinksInappAllow); } }); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PinchToZoomHelper.java b/TMessagesProj/src/main/java/org/telegram/ui/PinchToZoomHelper.java index 1f142556f9..ba89b6c6c6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PinchToZoomHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PinchToZoomHelper.java @@ -606,12 +606,18 @@ private void drawImage(Canvas canvas) { if (!isHardwareVideo) { if (childImage != null) { if (progressToFullView != 1f) { + if (childImage.getLottieAnimation() != null || childImage.getAnimation() != null || fullImage.getLottieAnimation() != null || fullImage.getAnimation() != null) { + invalidate(); + } childImage.draw(canvas); fullImage.setImageCoords(childImage.getImageX(), childImage.getImageY(), childImage.getImageWidth(), childImage.getImageHeight()); fullImage.draw(canvas); } else { fullImage.setImageCoords(childImage.getImageX(), childImage.getImageY(), childImage.getImageWidth(), childImage.getImageHeight()); fullImage.draw(canvas); + if (fullImage.getLottieAnimation() != null || fullImage.getAnimation() != null) { + invalidate(); + } } } if (childTextureViewContainer != null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PollCreateActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PollCreateActivity.java index e40e06f3d4..ac2e96032d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PollCreateActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PollCreateActivity.java @@ -228,9 +228,9 @@ public boolean onFragmentCreate() { public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); if (quizOnly == 1) { - actionBar.setTitle(LocaleController.getString("NewQuiz", R.string.NewQuiz)); + actionBar.setTitle(LocaleController.getString(R.string.NewQuiz)); } else { - actionBar.setTitle(LocaleController.getString("NewPoll", R.string.NewPoll)); + actionBar.setTitle(LocaleController.getString(R.string.NewPoll)); } if (AndroidUtilities.isTablet()) { actionBar.setOccupyStatusBar(false); @@ -330,7 +330,7 @@ public void onItemClick(int id) { }); ActionBarMenu menu = actionBar.createMenu(); - doneItem = menu.addItem(done_button, LocaleController.getString("Create", R.string.Create).toUpperCase()); + doneItem = menu.addItem(done_button, LocaleController.getString(R.string.Create).toUpperCase()); listAdapter = new ListAdapter(context); @@ -606,7 +606,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { }); hintView = new HintView(context, 4); - hintView.setText(LocaleController.getString("PollTapToSelect", R.string.PollTapToSelect)); + hintView.setText(LocaleController.getString(R.string.PollTapToSelect)); hintView.setAlpha(0.0f); hintView.setVisibility(View.INVISIBLE); frameLayout.addView(hintView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 19, 0, 19, 0)); @@ -790,10 +790,10 @@ private boolean checkDiscard() { } if (!allowDiscard) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("CancelPollAlertTitle", R.string.CancelPollAlertTitle)); - builder.setMessage(LocaleController.getString("CancelPollAlertText", R.string.CancelPollAlertText)); - builder.setPositiveButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialogInterface, i) -> finishFragment()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.CancelPollAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.CancelPollAlertText)); + builder.setPositiveButton(LocaleController.getString(R.string.PassportDiscard), (dialogInterface, i) -> finishFragment()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); } return allowDiscard; @@ -1244,10 +1244,10 @@ public void onCustomEmojiSelected(long documentId, TLRPC.Document document, Stri @Override public void onClearEmojiRecent() { AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), resourceProvider); - builder.setTitle(LocaleController.getString("ClearRecentEmojiTitle", R.string.ClearRecentEmojiTitle)); - builder.setMessage(LocaleController.getString("ClearRecentEmojiText", R.string.ClearRecentEmojiText)); - builder.setPositiveButton(LocaleController.getString("ClearButton", R.string.ClearButton), (dialogInterface, i) -> emojiView.clearRecentEmoji()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.ClearRecentEmojiTitle)); + builder.setMessage(LocaleController.getString(R.string.ClearRecentEmojiText)); + builder.setPositiveButton(LocaleController.getString(R.string.ClearButton), (dialogInterface, i) -> emojiView.clearRecentEmoji()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.show(); } @@ -1284,15 +1284,15 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 0: { HeaderCell cell = (HeaderCell) holder.itemView; if (position == questionHeaderRow) { - cell.setText(LocaleController.getString("PollQuestion", R.string.PollQuestion)); + cell.setText(LocaleController.getString(R.string.PollQuestion)); } else if (position == answerHeaderRow) { if (quizOnly == 1) { - cell.setText(LocaleController.getString("QuizAnswers", R.string.QuizAnswers)); + cell.setText(LocaleController.getString(R.string.QuizAnswers)); } else { - cell.setText(LocaleController.getString("AnswerOptions", R.string.AnswerOptions)); + cell.setText(LocaleController.getString(R.string.AnswerOptions)); } } else if (position == settingsHeaderRow) { - cell.setText(LocaleController.getString("Settings", R.string.Settings)); + cell.setText(LocaleController.getString(R.string.Settings)); } break; } @@ -1301,16 +1301,16 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { cell.setFixedSize(0); cell.setBackgroundDrawable(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); if (position == solutionInfoRow) { - cell.setText(LocaleController.getString("AddAnExplanationInfo", R.string.AddAnExplanationInfo)); + cell.setText(LocaleController.getString(R.string.AddAnExplanationInfo)); } else if (position == settingsSectionRow) { if (quizOnly != 0) { cell.setFixedSize(12); cell.setText(null); } else { - cell.setText(LocaleController.getString("QuizInfo", R.string.QuizInfo)); + cell.setText(LocaleController.getString(R.string.QuizInfo)); } } else if (10 - answersCount <= 0) { - cell.setText(LocaleController.getString("AddAnOptionInfoMax", R.string.AddAnOptionInfoMax)); + cell.setText(LocaleController.getString(R.string.AddAnOptionInfoMax)); } else { cell.setText(LocaleController.formatString("AddAnOptionInfo", R.string.AddAnOptionInfo, LocaleController.formatPluralString("Option", 10 - answersCount))); } @@ -1324,19 +1324,19 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { drawable1.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_switchTrackChecked), PorterDuff.Mode.SRC_IN)); drawable2.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_checkboxCheck), PorterDuff.Mode.SRC_IN)); CombinedDrawable combinedDrawable = new CombinedDrawable(drawable1, drawable2); - textCell.setTextAndIcon(LocaleController.getString("AddAnOption", R.string.AddAnOption), combinedDrawable, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.AddAnOption), combinedDrawable, false); break; } case 6: { TextCheckCell checkCell = (TextCheckCell) holder.itemView; if (position == anonymousRow) { - checkCell.setTextAndCheck(LocaleController.getString("PollAnonymous", R.string.PollAnonymous), anonymousPoll, multipleRow != -1 || quizRow != -1); + checkCell.setTextAndCheck(LocaleController.getString(R.string.PollAnonymous), anonymousPoll, multipleRow != -1 || quizRow != -1); checkCell.setEnabled(true, null); } else if (position == multipleRow) { - checkCell.setTextAndCheck(LocaleController.getString("PollMultiple", R.string.PollMultiple), multipleChoise, quizRow != -1); + checkCell.setTextAndCheck(LocaleController.getString(R.string.PollMultiple), multipleChoise, quizRow != -1); checkCell.setEnabled(true, null); } else if (position == quizRow) { - checkCell.setTextAndCheck(LocaleController.getString("PollQuiz", R.string.PollQuiz), quizPoll, false); + checkCell.setTextAndCheck(LocaleController.getString(R.string.PollQuiz), quizPoll, false); checkCell.setEnabled(quizOnly == 0, null); } } @@ -1349,7 +1349,7 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { if (viewType == 4) { PollEditTextCell textCell = (PollEditTextCell) holder.itemView; textCell.setTag(1); - textCell.setTextAndHint(questionString != null ? questionString : "", LocaleController.getString("QuestionHint", R.string.QuestionHint), false); + textCell.setTextAndHint(questionString != null ? questionString : "", LocaleController.getString(R.string.QuestionHint), false); textCell.setTag(null); setTextLeft(holder.itemView, holder.getAdapterPosition()); } else if (viewType == 5) { @@ -1357,7 +1357,7 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { PollEditTextCell textCell = (PollEditTextCell) holder.itemView; textCell.setTag(1); int index = position - answerStartRow; - textCell.setTextAndHint(answers[index], LocaleController.getString("OptionHint", R.string.OptionHint), true); + textCell.setTextAndHint(answers[index], LocaleController.getString(R.string.OptionHint), true); textCell.setTag(null); if (requestFieldFocusAtPosition == position) { EditTextBoldCursor editText = textCell.getTextView(); @@ -1369,7 +1369,7 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { } else if (viewType == 7) { PollEditTextCell textCell = (PollEditTextCell) holder.itemView; textCell.setTag(1); - textCell.setTextAndHint(solutionString != null ? solutionString : "", LocaleController.getString("AddAnExplanation", R.string.AddAnExplanation), false); + textCell.setTextAndHint(solutionString != null ? solutionString : "", LocaleController.getString(R.string.AddAnExplanation), false); textCell.setTag(null); setTextLeft(holder.itemView, holder.getAdapterPosition()); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PopupNotificationActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PopupNotificationActivity.java index 89e471e976..f69aa0d7fa 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PopupNotificationActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PopupNotificationActivity.java @@ -538,6 +538,7 @@ public void onItemClick(int id) { public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); AndroidUtilities.checkDisplaySize(this, newConfig); + AndroidUtilities.setPreferredMaxRefreshRate(getWindow()); fixLayout(); } @@ -555,9 +556,9 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in return; } AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setMessage(LocaleController.getString("PermissionNoAudioWithHint", R.string.PermissionNoAudioWithHint)); - builder.setNegativeButton(LocaleController.getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialog, which) -> { + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setMessage(LocaleController.getString(R.string.PermissionNoAudioWithHint)); + builder.setNegativeButton(LocaleController.getString(R.string.PermissionOpenSettings), (dialog, which) -> { try { Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); @@ -566,7 +567,7 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in FileLog.e(e); } }); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); builder.show(); } } @@ -1343,7 +1344,7 @@ private void updateSubtitle() { nameTextView.setText(UserObject.getUserName(currentUser)); } if (currentUser != null && currentUser.id == 777000) { - onlineTextView.setText(LocaleController.getString("ServiceNotifications", R.string.ServiceNotifications)); + onlineTextView.setText(LocaleController.getString(R.string.ServiceNotifications)); } else { CharSequence printString = MessagesController.getInstance(currentMessageObject.currentAccount).getPrintingString(currentMessageObject.getDialogId(), 0, false); if (printString == null || printString.length() == 0) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PrivacyControlActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PrivacyControlActivity.java index b9f75cb202..f9b819e624 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PrivacyControlActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PrivacyControlActivity.java @@ -227,7 +227,7 @@ public void didUploadPhoto(TLRPC.InputFile photo, TLRPC.InputFile video, double user.first_name = getUserConfig().getCurrentUser().first_name; user.last_name = getUserConfig().getCurrentUser().last_name; user.access_hash = getUserConfig().getCurrentUser().access_hash; - BulletinFactory.of(this).createUsersBulletin(Collections.singletonList(user), LocaleController.getString("PhotoForRestTooltip", R.string.PhotoForRestTooltip)).show(); + BulletinFactory.of(this).createUsersBulletin(Collections.singletonList(user), LocaleController.getString(R.string.PhotoForRestTooltip)).show(); } updateRows(false); }); @@ -283,7 +283,7 @@ public MessageCell(Context context) { TLRPC.User currentUser = MessagesController.getInstance(currentAccount).getUser(UserConfig.getInstance(currentAccount).getClientUserId()); TLRPC.Message message = new TLRPC.TL_message(); - message.message = LocaleController.getString("PrivacyForwardsMessageLine", R.string.PrivacyForwardsMessageLine); + message.message = LocaleController.getString(R.string.PrivacyForwardsMessageLine); message.date = date + 60; message.dialog_id = 1; message.flags = 257 + TLRPC.MESSAGE_FLAG_FWD; @@ -457,23 +457,23 @@ public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); if (rulesType == PRIVACY_RULES_TYPE_PHONE) { - actionBar.setTitle(LocaleController.getString("PrivacyPhone", R.string.PrivacyPhone)); + actionBar.setTitle(LocaleController.getString(R.string.PrivacyPhone)); } else if (rulesType == PRIVACY_RULES_TYPE_FORWARDS) { - actionBar.setTitle(LocaleController.getString("PrivacyForwards", R.string.PrivacyForwards)); + actionBar.setTitle(LocaleController.getString(R.string.PrivacyForwards)); } else if (rulesType == PRIVACY_RULES_TYPE_PHOTO) { - actionBar.setTitle(LocaleController.getString("PrivacyProfilePhoto", R.string.PrivacyProfilePhoto)); + actionBar.setTitle(LocaleController.getString(R.string.PrivacyProfilePhoto)); } else if (rulesType == PRIVACY_RULES_TYPE_BIO) { - actionBar.setTitle(LocaleController.getString("PrivacyBio", R.string.PrivacyBio)); + actionBar.setTitle(LocaleController.getString(R.string.PrivacyBio)); } else if (rulesType == PRIVACY_RULES_TYPE_P2P) { - actionBar.setTitle(LocaleController.getString("PrivacyP2P", R.string.PrivacyP2P)); + actionBar.setTitle(LocaleController.getString(R.string.PrivacyP2P)); } else if (rulesType == PRIVACY_RULES_TYPE_CALLS) { - actionBar.setTitle(LocaleController.getString("Calls", R.string.Calls)); + actionBar.setTitle(LocaleController.getString(R.string.Calls)); } else if (rulesType == PRIVACY_RULES_TYPE_INVITE) { - actionBar.setTitle(LocaleController.getString("PrivacyInvites", R.string.PrivacyInvites)); + actionBar.setTitle(LocaleController.getString(R.string.PrivacyInvites)); } else if (rulesType == PRIVACY_RULES_TYPE_VOICE_MESSAGES) { - actionBar.setTitle(LocaleController.getString("PrivacyVoiceMessages", R.string.PrivacyVoiceMessages)); + actionBar.setTitle(LocaleController.getString(R.string.PrivacyVoiceMessages)); } else if (rulesType == PRIVACY_RULES_TYPE_LASTSEEN) { - actionBar.setTitle(LocaleController.getString("PrivacyLastSeen", R.string.PrivacyLastSeen)); + actionBar.setTitle(LocaleController.getString(R.string.PrivacyLastSeen)); } else if (rulesType == PRIVACY_RULES_TYPE_MESSAGES) { actionBar.setTitle(LocaleController.getString(R.string.PrivacyMessages)); } else if (rulesType == PRIVACY_RULES_TYPE_BIRTHDAY) { @@ -493,7 +493,7 @@ public void onItemClick(int id) { }); ActionBarMenu menu = actionBar.createMenu(); - doneButton = menu.addItemWithWidth(done_button, R.drawable.ic_ab_done, AndroidUtilities.dp(56), LocaleController.getString("Done", R.string.Done)); + doneButton = menu.addItemWithWidth(done_button, R.drawable.ic_ab_done, AndroidUtilities.dp(56), LocaleController.getString(R.string.Done)); boolean hasChanges = hasChanges(); doneButton.setAlpha(hasChanges ? 1.0f : 0.0f); doneButton.setScaleX(hasChanges ? 1.0f : 0.0f); @@ -521,9 +521,9 @@ protected void dispatchDraw(Canvas canvas) { listView.setOnItemClickListener((view, position) -> { if (position == currentPhotoForRestRow) { AlertDialog alertDialog = AlertsCreator.createSimpleAlert(getContext(), - LocaleController.getString("RemovePublicPhoto", R.string.RemovePublicPhoto), - LocaleController.getString("RemovePhotoForRestDescription", R.string.RemovePhotoForRestDescription), - LocaleController.getString("Remove", R.string.Remove), + LocaleController.getString(R.string.RemovePublicPhoto), + LocaleController.getString(R.string.RemovePhotoForRestDescription), + LocaleController.getString(R.string.Remove), () -> { avatarForRest = null; avatarForRestPhoto = null; @@ -857,9 +857,9 @@ private void showErrorAlert() { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setMessage(LocaleController.getString("PrivacyFloodControlError", R.string.PrivacyFloodControlError)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setMessage(LocaleController.getString(R.string.PrivacyFloodControlError)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); showDialog(builder.create()); } @@ -1145,13 +1145,13 @@ private void setMessageText() { if (messageCell != null) { messageCell.messageObject.messageOwner.fwd_from.from_id = new TLRPC.TL_peerUser(); if (currentType == TYPE_EVERYBODY) { - messageCell.hintView.setOverrideText(LocaleController.getString("PrivacyForwardsEverybody", R.string.PrivacyForwardsEverybody)); + messageCell.hintView.setOverrideText(LocaleController.getString(R.string.PrivacyForwardsEverybody)); messageCell.messageObject.messageOwner.fwd_from.from_id.user_id = 1; } else if (currentType == TYPE_NOBODY) { - messageCell.hintView.setOverrideText(LocaleController.getString("PrivacyForwardsNobody", R.string.PrivacyForwardsNobody)); + messageCell.hintView.setOverrideText(LocaleController.getString(R.string.PrivacyForwardsNobody)); messageCell.messageObject.messageOwner.fwd_from.from_id.user_id = 0; } else { - messageCell.hintView.setOverrideText(LocaleController.getString("PrivacyForwardsContacts", R.string.PrivacyForwardsContacts)); + messageCell.hintView.setOverrideText(LocaleController.getString(R.string.PrivacyForwardsContacts)); messageCell.messageObject.messageOwner.fwd_from.from_id.user_id = 1; } messageCell.cell.forceResetMessageObject(); @@ -1192,16 +1192,16 @@ private void processDone() { if (!showed) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); if (rulesType == PRIVACY_RULES_TYPE_INVITE) { - builder.setMessage(LocaleController.getString("WhoCanAddMeInfo", R.string.WhoCanAddMeInfo)); + builder.setMessage(LocaleController.getString(R.string.WhoCanAddMeInfo)); } else { - builder.setMessage(LocaleController.getString("CustomHelp", R.string.CustomHelp)); + builder.setMessage(LocaleController.getString(R.string.CustomHelp)); } - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> { applyCurrentPrivacySettings(); preferences.edit().putBoolean("privacyAlertShowed", true).commit(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); return; } @@ -1212,10 +1212,10 @@ private void processDone() { private boolean checkDiscard() { if (doneButton.getAlpha() == 1.0f) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("UserRestrictionsApplyChanges", R.string.UserRestrictionsApplyChanges)); - builder.setMessage(LocaleController.getString("PrivacySettingsChangedAlert", R.string.PrivacySettingsChangedAlert)); - builder.setPositiveButton(LocaleController.getString("ApplyTheme", R.string.ApplyTheme), (dialogInterface, i) -> processDone()); - builder.setNegativeButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialog, which) -> finishFragment()); + builder.setTitle(LocaleController.getString(R.string.UserRestrictionsApplyChanges)); + builder.setMessage(LocaleController.getString(R.string.PrivacySettingsChangedAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.ApplyTheme), (dialogInterface, i) -> processDone()); + builder.setNegativeButton(LocaleController.getString(R.string.PassportDiscard), (dialog, which) -> finishFragment()); showDialog(builder.create()); return false; } @@ -1319,7 +1319,7 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto } } oldPhotoCell.addView(oldAvatarView, LayoutHelper.createFrame(30, 30, Gravity.CENTER_VERTICAL, 21, 0, 21, 0)); - oldPhotoCell.setText(LocaleController.getString("RemovePublicPhoto", R.string.RemovePublicPhoto), false); + oldPhotoCell.setText(LocaleController.getString(R.string.RemovePublicPhoto), false); oldPhotoCell.getImageView().setVisibility(View.VISIBLE); oldPhotoCell.setBackgroundDrawable(Theme.getSelectorDrawable(false)); oldPhotoCell.setColors(Theme.key_text_RedRegular, Theme.key_text_RedRegular); @@ -1362,7 +1362,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (currentPlus.size() != 0) { value = LocaleController.formatPluralString("Users", getUsersCount(currentPlus)); } else { - value = LocaleController.getString("EmpryUsersPlaceholder", R.string.EmpryUsersPlaceholder); + value = LocaleController.getString(R.string.EmpryUsersPlaceholder); } if (currentPlusPremium[currentType == TYPE_CONTACTS ? 0 : 1]) { if (currentPlus == null || currentPlus.isEmpty()) { @@ -1372,9 +1372,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } } if (rulesType != PRIVACY_RULES_TYPE_LASTSEEN && rulesType != PRIVACY_RULES_TYPE_PHOTO && rulesType != PRIVACY_RULES_TYPE_BIO) { - textCell.setTextAndValue(LocaleController.getString("AlwaysAllow", R.string.AlwaysAllow), value, neverShareRow != -1); + textCell.setTextAndValue(LocaleController.getString(R.string.AlwaysAllow), value, neverShareRow != -1); } else { - textCell.setTextAndValue(LocaleController.getString("AlwaysShareWith", R.string.AlwaysShareWith), value, neverShareRow != -1); + textCell.setTextAndValue(LocaleController.getString(R.string.AlwaysShareWith), value, neverShareRow != -1); } } else if (position == neverShareRow) { String value; @@ -1382,21 +1382,21 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (currentMinus.size() != 0) { value = LocaleController.formatPluralString("Users", getUsersCount(currentMinus)); } else { - value = LocaleController.getString("EmpryUsersPlaceholder", R.string.EmpryUsersPlaceholder); + value = LocaleController.getString(R.string.EmpryUsersPlaceholder); } if (rulesType != PRIVACY_RULES_TYPE_LASTSEEN && rulesType != PRIVACY_RULES_TYPE_PHOTO && rulesType != PRIVACY_RULES_TYPE_BIO) { - textCell.setTextAndValue(LocaleController.getString("NeverAllow", R.string.NeverAllow), value, false); + textCell.setTextAndValue(LocaleController.getString(R.string.NeverAllow), value, false); } else { - textCell.setTextAndValue(LocaleController.getString("NeverShareWith", R.string.NeverShareWith), value, false); + textCell.setTextAndValue(LocaleController.getString(R.string.NeverShareWith), value, false); } } else if (position == p2pRow) { String value; if (ContactsController.getInstance(currentAccount).getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_P2P)) { - value = LocaleController.getString("Loading", R.string.Loading); + value = LocaleController.getString(R.string.Loading); } else { value = PrivacySettingsActivity.formatRulesString(getAccountInstance(), ContactsController.PRIVACY_RULES_TYPE_P2P); } - textCell.setTextAndValue(LocaleController.getString("PrivacyP2P2", R.string.PrivacyP2P2), value, false); + textCell.setTextAndValue(LocaleController.getString(R.string.PrivacyP2P2), value, false); } else if (position == readPremiumRow) { textCell.setText(LocaleController.getString(getUserConfig().isPremium() ? R.string.PrivacyLastSeenPremiumForPremium : R.string.PrivacyLastSeenPremium), false); textCell.setTextColor(getThemedColor(Theme.key_windowBackgroundWhiteBlueText)); @@ -1474,7 +1474,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else if (position == detailRow) { if (rulesType == PRIVACY_RULES_TYPE_PHONE) { if (prevSubtypeContacts = (currentType == TYPE_NOBODY && currentSubType == 1)) { - privacyCell.setText(LocaleController.getString("PrivacyPhoneInfo3", R.string.PrivacyPhoneInfo3)); + privacyCell.setText(LocaleController.getString(R.string.PrivacyPhoneInfo3)); } else { SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(); String phoneLinkStr = String.format(Locale.ENGLISH, "https://t.me/+%s", getUserConfig().getClientPhone()); @@ -1485,63 +1485,63 @@ public void onClick(@NonNull View view) { android.content.ClipboardManager clipboard = (android.content.ClipboardManager) ApplicationLoader.applicationContext.getSystemService(Context.CLIPBOARD_SERVICE); android.content.ClipData clip = android.content.ClipData.newPlainText("label", phoneLinkStr); clipboard.setPrimaryClip(clip); - BulletinFactory.of(PrivacyControlActivity.this).createCopyLinkBulletin(LocaleController.getString("LinkCopied", R.string.LinkCopied), getResourceProvider()).show(); + BulletinFactory.of(PrivacyControlActivity.this).createCopyLinkBulletin(LocaleController.getString(R.string.LinkCopied), getResourceProvider()).show(); } }, 0, phoneLinkStr.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - spannableStringBuilder.append(LocaleController.getString("PrivacyPhoneInfo", R.string.PrivacyPhoneInfo)) + spannableStringBuilder.append(LocaleController.getString(R.string.PrivacyPhoneInfo)) .append("\n\n") - .append(LocaleController.getString("PrivacyPhoneInfo4", R.string.PrivacyPhoneInfo4)) + .append(LocaleController.getString(R.string.PrivacyPhoneInfo4)) .append("\n") .append(phoneLink); privacyCell.setText(spannableStringBuilder); } } else if (rulesType == PRIVACY_RULES_TYPE_FORWARDS) { - privacyCell.setText(LocaleController.getString("PrivacyForwardsInfo", R.string.PrivacyForwardsInfo)); + privacyCell.setText(LocaleController.getString(R.string.PrivacyForwardsInfo)); } else if (rulesType == PRIVACY_RULES_TYPE_PHOTO) { - privacyCell.setText(LocaleController.getString("PrivacyProfilePhotoInfo", R.string.PrivacyProfilePhotoInfo)); + privacyCell.setText(LocaleController.getString(R.string.PrivacyProfilePhotoInfo)); } else if (rulesType == PRIVACY_RULES_TYPE_BIO) { - privacyCell.setText(LocaleController.getString("PrivacyBioInfo3", R.string.PrivacyBioInfo3)); + privacyCell.setText(LocaleController.getString(R.string.PrivacyBioInfo3)); } else if (rulesType == PRIVACY_RULES_TYPE_BIRTHDAY) { privacyCell.setText(LocaleController.getString(R.string.PrivacyBirthdayInfo)); } else if (rulesType == PRIVACY_RULES_TYPE_P2P) { - privacyCell.setText(LocaleController.getString("PrivacyCallsP2PHelp", R.string.PrivacyCallsP2PHelp)); + privacyCell.setText(LocaleController.getString(R.string.PrivacyCallsP2PHelp)); } else if (rulesType == PRIVACY_RULES_TYPE_CALLS) { - privacyCell.setText(LocaleController.getString("WhoCanCallMeInfo", R.string.WhoCanCallMeInfo)); + privacyCell.setText(LocaleController.getString(R.string.WhoCanCallMeInfo)); } else if (rulesType == PRIVACY_RULES_TYPE_INVITE) { - privacyCell.setText(LocaleController.getString("WhoCanAddMeInfo", R.string.WhoCanAddMeInfo)); + privacyCell.setText(LocaleController.getString(R.string.WhoCanAddMeInfo)); } else { privacyCell.setText(LocaleController.getString(R.string.CustomHelp)); } backgroundResId = R.drawable.greydivider; } else if (position == shareDetailRow) { if (rulesType == PRIVACY_RULES_TYPE_PHONE) { - privacyCell.setText(LocaleController.getString("PrivacyPhoneInfo2", R.string.PrivacyPhoneInfo2)); + privacyCell.setText(LocaleController.getString(R.string.PrivacyPhoneInfo2)); } else if (rulesType == PRIVACY_RULES_TYPE_FORWARDS) { - privacyCell.setText(LocaleController.getString("PrivacyForwardsInfo2", R.string.PrivacyForwardsInfo2)); + privacyCell.setText(LocaleController.getString(R.string.PrivacyForwardsInfo2)); } else if (rulesType == PRIVACY_RULES_TYPE_PHOTO) { if (currentType == TYPE_CONTACTS) { - privacyCell.setText(AndroidUtilities.replaceTags(LocaleController.getString("PrivacyProfilePhotoInfo5", R.string.PrivacyProfilePhotoInfo5))); + privacyCell.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PrivacyProfilePhotoInfo5))); } else if (currentType == TYPE_EVERYBODY) { - privacyCell.setText(AndroidUtilities.replaceTags(LocaleController.getString("PrivacyProfilePhotoInfo3", R.string.PrivacyProfilePhotoInfo3))); + privacyCell.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PrivacyProfilePhotoInfo3))); } else { - privacyCell.setText(LocaleController.getString("PrivacyProfilePhotoInfo4", R.string.PrivacyProfilePhotoInfo4)); + privacyCell.setText(LocaleController.getString(R.string.PrivacyProfilePhotoInfo4)); } } else if (rulesType == PRIVACY_RULES_TYPE_P2P) { - privacyCell.setText(LocaleController.getString("CustomP2PInfo", R.string.CustomP2PInfo)); + privacyCell.setText(LocaleController.getString(R.string.CustomP2PInfo)); } else if (rulesType == PRIVACY_RULES_TYPE_BIO) { - privacyCell.setText(LocaleController.getString("PrivacyBioInfo", R.string.PrivacyBioInfo)); + privacyCell.setText(LocaleController.getString(R.string.PrivacyBioInfo)); } else if (rulesType == PRIVACY_RULES_TYPE_BIRTHDAY) { privacyCell.setText(LocaleController.getString(R.string.PrivacyBirthdayInfo3)); } else if (rulesType == PRIVACY_RULES_TYPE_CALLS) { - privacyCell.setText(LocaleController.getString("CustomCallInfo", R.string.CustomCallInfo)); + privacyCell.setText(LocaleController.getString(R.string.CustomCallInfo)); } else if (rulesType == PRIVACY_RULES_TYPE_INVITE) { - privacyCell.setText(LocaleController.getString("CustomShareInfo", R.string.CustomShareInfo)); + privacyCell.setText(LocaleController.getString(R.string.CustomShareInfo)); } else if (rulesType == PRIVACY_RULES_TYPE_VOICE_MESSAGES) { - privacyCell.setText(LocaleController.getString("PrivacyVoiceMessagesInfo2", R.string.PrivacyVoiceMessagesInfo2)); + privacyCell.setText(LocaleController.getString(R.string.PrivacyVoiceMessagesInfo2)); } else { - privacyCell.setText(LocaleController.getString("CustomShareSettingsHelp", R.string.CustomShareSettingsHelp)); + privacyCell.setText(LocaleController.getString(R.string.CustomShareSettingsHelp)); } if (rulesType == PRIVACY_RULES_TYPE_CALLS || rulesType == PRIVACY_RULES_TYPE_LASTSEEN) { backgroundResId = R.drawable.greydivider; @@ -1551,7 +1551,7 @@ public void onClick(@NonNull View view) { } else if (position == p2pDetailRow) { backgroundResId = R.drawable.greydivider_bottom; } else if (position == photoForRestDescriptionRow) { - privacyCell.setText(LocaleController.getString("PhotoForRestDescription", R.string.PhotoForRestDescription)); + privacyCell.setText(LocaleController.getString(R.string.PhotoForRestDescription)); } else if (position == readDetailRow) { privacyCell.setText(LocaleController.getString(R.string.HideReadTimeInfo)); backgroundResId = readPremiumDetailRow == -1 ? R.drawable.greydivider_bottom : R.drawable.greydivider; @@ -1570,34 +1570,34 @@ public void onClick(@NonNull View view) { HeaderCell headerCell = (HeaderCell) holder.itemView; if (position == sectionRow) { if (rulesType == PRIVACY_RULES_TYPE_PHONE) { - headerCell.setText(LocaleController.getString("PrivacyPhoneTitle", R.string.PrivacyPhoneTitle)); + headerCell.setText(LocaleController.getString(R.string.PrivacyPhoneTitle)); } else if (rulesType == PRIVACY_RULES_TYPE_FORWARDS) { - headerCell.setText(LocaleController.getString("PrivacyForwardsTitle", R.string.PrivacyForwardsTitle)); + headerCell.setText(LocaleController.getString(R.string.PrivacyForwardsTitle)); } else if (rulesType == PRIVACY_RULES_TYPE_PHOTO) { - headerCell.setText(LocaleController.getString("PrivacyProfilePhotoTitle", R.string.PrivacyProfilePhotoTitle)); + headerCell.setText(LocaleController.getString(R.string.PrivacyProfilePhotoTitle)); } else if (rulesType == PRIVACY_RULES_TYPE_BIO) { - headerCell.setText(LocaleController.getString("PrivacyBioTitle", R.string.PrivacyBioTitle)); + headerCell.setText(LocaleController.getString(R.string.PrivacyBioTitle)); } else if (rulesType == PRIVACY_RULES_TYPE_P2P) { - headerCell.setText(LocaleController.getString("P2PEnabledWith", R.string.P2PEnabledWith)); + headerCell.setText(LocaleController.getString(R.string.P2PEnabledWith)); } else if (rulesType == PRIVACY_RULES_TYPE_CALLS) { - headerCell.setText(LocaleController.getString("WhoCanCallMe", R.string.WhoCanCallMe)); + headerCell.setText(LocaleController.getString(R.string.WhoCanCallMe)); } else if (rulesType == PRIVACY_RULES_TYPE_INVITE) { - headerCell.setText(LocaleController.getString("WhoCanAddMe", R.string.WhoCanAddMe)); + headerCell.setText(LocaleController.getString(R.string.WhoCanAddMe)); } else if (rulesType == PRIVACY_RULES_TYPE_VOICE_MESSAGES) { - headerCell.setText(LocaleController.getString("PrivacyVoiceMessagesTitle", R.string.PrivacyVoiceMessagesTitle)); + headerCell.setText(LocaleController.getString(R.string.PrivacyVoiceMessagesTitle)); } else if (rulesType == PRIVACY_RULES_TYPE_MESSAGES) { headerCell.setText(LocaleController.getString(R.string.PrivacyMessagesTitle)); } else if (rulesType == PRIVACY_RULES_TYPE_BIRTHDAY) { headerCell.setText(LocaleController.getString(R.string.PrivacyBirthdayTitle)); } else { - headerCell.setText(LocaleController.getString("LastSeenTitle", R.string.LastSeenTitle)); + headerCell.setText(LocaleController.getString(R.string.LastSeenTitle)); } } else if (position == shareSectionRow) { - headerCell.setText(LocaleController.getString("AddExceptions", R.string.AddExceptions)); + headerCell.setText(LocaleController.getString(R.string.AddExceptions)); } else if (position == p2pSectionRow) { - headerCell.setText(LocaleController.getString("PrivacyP2PHeader", R.string.PrivacyP2PHeader)); + headerCell.setText(LocaleController.getString(R.string.PrivacyP2PHeader)); } else if (position == phoneSectionRow) { - headerCell.setText(LocaleController.getString("PrivacyPhoneTitle2", R.string.PrivacyPhoneTitle2)); + headerCell.setText(LocaleController.getString(R.string.PrivacyPhoneTitle2)); } break; case 3: @@ -1606,36 +1606,36 @@ public void onClick(@NonNull View view) { if (position == everybodyRow || position == myContactsRow || position == nobodyRow) { if (position == everybodyRow) { if (rulesType == PRIVACY_RULES_TYPE_P2P) { - radioCell.setText(LocaleController.getString("P2PEverybody", R.string.P2PEverybody), currentType == TYPE_EVERYBODY, true); + radioCell.setText(LocaleController.getString(R.string.P2PEverybody), currentType == TYPE_EVERYBODY, true); } else { - radioCell.setText(LocaleController.getString("LastSeenEverybody", R.string.LastSeenEverybody), currentType == TYPE_EVERYBODY, true); + radioCell.setText(LocaleController.getString(R.string.LastSeenEverybody), currentType == TYPE_EVERYBODY, true); } } else if (position == myContactsRow) { if (rulesType == PRIVACY_RULES_TYPE_VOICE_MESSAGES && !getUserConfig().isPremium() || rulesType == PRIVACY_RULES_TYPE_MESSAGES && !getMessagesController().newNoncontactPeersRequirePremiumWithoutOwnpremium && !getUserConfig().isPremium()) { radioCell.setRadioIcon(getContext().getResources().getDrawable(R.drawable.mini_switch_lock).mutate()); } if (rulesType == PRIVACY_RULES_TYPE_P2P) { - radioCell.setText(LocaleController.getString("P2PContacts", R.string.P2PContacts), currentType == TYPE_CONTACTS, nobodyRow != -1); + radioCell.setText(LocaleController.getString(R.string.P2PContacts), currentType == TYPE_CONTACTS, nobodyRow != -1); } else if (rulesType == PRIVACY_RULES_TYPE_MESSAGES) { radioCell.setText(LocaleController.getString(R.string.PrivacyMessagesContactsAndPremium), currentType == TYPE_CONTACTS, nobodyRow != -1); } else { - radioCell.setText(LocaleController.getString("LastSeenContacts", R.string.LastSeenContacts), currentType == TYPE_CONTACTS, nobodyRow != -1); + radioCell.setText(LocaleController.getString(R.string.LastSeenContacts), currentType == TYPE_CONTACTS, nobodyRow != -1); } } else { if (rulesType == PRIVACY_RULES_TYPE_VOICE_MESSAGES && !getUserConfig().isPremium() || rulesType == PRIVACY_RULES_TYPE_MESSAGES && !getMessagesController().newNoncontactPeersRequirePremiumWithoutOwnpremium && !getUserConfig().isPremium()) { radioCell.setRadioIcon(getContext().getResources().getDrawable(R.drawable.mini_switch_lock).mutate()); } if (rulesType == PRIVACY_RULES_TYPE_P2P) { - radioCell.setText(LocaleController.getString("P2PNobody", R.string.P2PNobody), currentType == TYPE_NOBODY, false); + radioCell.setText(LocaleController.getString(R.string.P2PNobody), currentType == TYPE_NOBODY, false); } else { - radioCell.setText(LocaleController.getString("LastSeenNobody", R.string.LastSeenNobody), currentType == TYPE_NOBODY, false); + radioCell.setText(LocaleController.getString(R.string.LastSeenNobody), currentType == TYPE_NOBODY, false); } } } else { if (position == phoneContactsRow) { - radioCell.setText(LocaleController.getString("LastSeenContacts", R.string.LastSeenContacts), currentSubType == 1, false); + radioCell.setText(LocaleController.getString(R.string.LastSeenContacts), currentSubType == 1, false); } else if (position == phoneEverybodyRow) { - radioCell.setText(LocaleController.getString("LastSeenEverybody", R.string.LastSeenEverybody), currentSubType == 0, true); + radioCell.setText(LocaleController.getString(R.string.LastSeenEverybody), currentSubType == 0, true); } } break; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java index b0b7626b81..7320f81af7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java @@ -9,6 +9,8 @@ package org.telegram.ui; import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.LocaleController.formatPluralString; +import static org.telegram.messenger.LocaleController.getString; import android.content.Context; import android.content.DialogInterface; @@ -203,7 +205,7 @@ public void onFragmentDestroy() { if (newSync) { getContactsController().forceImportContacts(); if (getParentActivity() != null) { - Toast.makeText(getParentActivity(), LocaleController.getString("SyncContactsAdded", R.string.SyncContactsAdded), Toast.LENGTH_SHORT).show(); + Toast.makeText(getParentActivity(), getString("SyncContactsAdded", R.string.SyncContactsAdded), Toast.LENGTH_SHORT).show(); } } } @@ -242,7 +244,7 @@ public void onFragmentDestroy() { public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("PrivacySettings", R.string.PrivacySettings)); + actionBar.setTitle(getString("PrivacySettings", R.string.PrivacySettings)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { @@ -298,16 +300,22 @@ public boolean supportsPredictiveItemAnimations() { selected = 1; } else if (ttl <= 182) { selected = 2; + } else if (ttl == 548) { + selected = 4; + } else if (ttl == 730) { + selected = 5; } else { selected = 3; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("DeleteAccountTitle", R.string.DeleteAccountTitle)); + builder.setTitle(getString("DeleteAccountTitle", R.string.DeleteAccountTitle)); String[] items = new String[]{ - LocaleController.formatPluralString("Months", 1), - LocaleController.formatPluralString("Months", 3), - LocaleController.formatPluralString("Months", 6), - LocaleController.formatPluralString("Years", 1) + formatPluralString("Months", 1), + formatPluralString("Months", 3), + formatPluralString("Months", 6), + formatPluralString("Months", 12), + formatPluralString("Months", 18), + formatPluralString("Months", 24) }; final LinearLayout linearLayout = new LinearLayout(getParentActivity()); linearLayout.setOrientation(LinearLayout.VERTICAL); @@ -333,6 +341,10 @@ public boolean supportsPredictiveItemAnimations() { value = 182; } else if (which == 3) { value = 365; + } else if (which == 4) { + value = 548; + } else if (which == 5) { + value = 730; } final AlertDialog progressDialog = new AlertDialog(getParentActivity(), AlertDialog.ALERT_TYPE_SPINNER); progressDialog.setCanCancel(false); @@ -355,7 +367,7 @@ public boolean supportsPredictiveItemAnimations() { })); }); } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(getString(R.string.Cancel), null); showDialog(builder.create()); } else if (position == lastSeenRow) { presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_LASTSEEN)); @@ -395,11 +407,11 @@ public boolean supportsPredictiveItemAnimations() { new AlertDialog.Builder(context) .setTitle(spannable) - .setMessage(LocaleController.getString(R.string.EmailLoginChangeMessage)) - .setPositiveButton(LocaleController.getString(R.string.ChangeEmail), (dialog, which) -> presentFragment(new LoginActivity().changeEmail(() -> { + .setMessage(getString(R.string.EmailLoginChangeMessage)) + .setPositiveButton(getString(R.string.ChangeEmail), (dialog, which) -> presentFragment(new LoginActivity().changeEmail(() -> { Bulletin.LottieLayout layout = new Bulletin.LottieLayout(getContext(), null); layout.setAnimation(R.raw.email_check_inbox); - layout.textView.setText(LocaleController.getString(R.string.YourLoginEmailChangedSuccess)); + layout.textView.setText(getString(R.string.YourLoginEmailChangedSuccess)); int duration = Bulletin.DURATION_SHORT; Bulletin.make(PrivacySettingsActivity.this, layout, duration).show(); @@ -410,14 +422,14 @@ public boolean supportsPredictiveItemAnimations() { loadPasswordSettings(); }))) - .setNegativeButton(LocaleController.getString(R.string.Cancel), null) + .setNegativeButton(getString(R.string.Cancel), null) .show(); } else if (position == passwordRow) { if (currentPassword == null) { return; } if (!TwoStepVerificationActivity.canHandleCurrentPassword(currentPassword, false)) { - AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + AlertsCreator.showUpdateAppAlert(getParentActivity(), getString("UpdateAppAlert", R.string.UpdateAppAlert), true); } if (currentPassword.has_password) { TwoStepVerificationActivity fragment = new TwoStepVerificationActivity(); @@ -449,10 +461,10 @@ public boolean supportsPredictiveItemAnimations() { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("SyncContactsDeleteTitle", R.string.SyncContactsDeleteTitle)); - builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString("SyncContactsDeleteText", R.string.SyncContactsDeleteText))); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialogInterface, i) -> { + builder.setTitle(getString("SyncContactsDeleteTitle", R.string.SyncContactsDeleteTitle)); + builder.setMessage(AndroidUtilities.replaceTags(getString("SyncContactsDeleteText", R.string.SyncContactsDeleteText))); + builder.setNegativeButton(getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(getString("Delete", R.string.Delete), (dialogInterface, i) -> { AlertDialog.Builder builder12 = new AlertDialog.Builder(getParentActivity(), 3, null); progressDialog = builder12.show(); progressDialog.setCanCancel(false); @@ -473,9 +485,9 @@ public boolean supportsPredictiveItemAnimations() { final TextCheckCell cell = (TextCheckCell) view; if (newSuggest) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("SuggestContactsTitle", R.string.SuggestContactsTitle)); - builder.setMessage(LocaleController.getString("SuggestContactsAlert", R.string.SuggestContactsAlert)); - builder.setPositiveButton(LocaleController.getString("MuteDisable", R.string.MuteDisable), (dialogInterface, i) -> { + builder.setTitle(getString("SuggestContactsTitle", R.string.SuggestContactsTitle)); + builder.setMessage(getString("SuggestContactsAlert", R.string.SuggestContactsAlert)); + builder.setPositiveButton(getString("MuteDisable", R.string.MuteDisable), (dialogInterface, i) -> { TLRPC.TL_payments_clearSavedInfo req = new TLRPC.TL_payments_clearSavedInfo(); req.credentials = clear[1]; req.info = clear[0]; @@ -486,7 +498,7 @@ public boolean supportsPredictiveItemAnimations() { cell.setChecked(newSuggest); })); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(getString("Cancel", R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -512,8 +524,8 @@ public boolean supportsPredictiveItemAnimations() { }, false, null); } else if (position == paymentsClearRow) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("PrivacyPaymentsClearAlertTitle", R.string.PrivacyPaymentsClearAlertTitle)); - builder.setMessage(LocaleController.getString("PrivacyPaymentsClearAlertText", R.string.PrivacyPaymentsClearAlertText)); + builder.setTitle(getString("PrivacyPaymentsClearAlertTitle", R.string.PrivacyPaymentsClearAlertTitle)); + builder.setMessage(getString("PrivacyPaymentsClearAlertText", R.string.PrivacyPaymentsClearAlertText)); LinearLayout linearLayout = new LinearLayout(getParentActivity()); linearLayout.setOrientation(LinearLayout.VERTICAL); @@ -522,9 +534,9 @@ public boolean supportsPredictiveItemAnimations() { for (int a = 0; a < 2; a++) { String name; if (a == 0) { - name = LocaleController.getString("PrivacyClearShipping", R.string.PrivacyClearShipping); + name = getString("PrivacyClearShipping", R.string.PrivacyClearShipping); } else { - name = LocaleController.getString("PrivacyClearPayment", R.string.PrivacyClearPayment); + name = getString("PrivacyClearPayment", R.string.PrivacyClearPayment); } clear[a] = true; CheckBoxCell checkBoxCell = new CheckBoxCell(getParentActivity(), 1, 21, null); @@ -541,7 +553,7 @@ public boolean supportsPredictiveItemAnimations() { cell.setChecked(clear[num], true); }); } - builder.setPositiveButton(LocaleController.getString("ClearButton", R.string.ClearButton), (dialogInterface, i) -> { + builder.setPositiveButton(getString("ClearButton", R.string.ClearButton), (dialogInterface, i) -> { try { if (visibleDialog != null) { visibleDialog.dismiss(); @@ -550,9 +562,9 @@ public boolean supportsPredictiveItemAnimations() { FileLog.e(e); } AlertDialog.Builder builder1 = new AlertDialog.Builder(getParentActivity()); - builder1.setTitle(LocaleController.getString("PrivacyPaymentsClearAlertTitle", R.string.PrivacyPaymentsClearAlertTitle)); - builder1.setMessage(LocaleController.getString("PrivacyPaymentsClearAlert", R.string.PrivacyPaymentsClearAlert)); - builder1.setPositiveButton(LocaleController.getString("ClearButton", R.string.ClearButton), (dialogInterface2, i2) -> { + builder1.setTitle(getString("PrivacyPaymentsClearAlertTitle", R.string.PrivacyPaymentsClearAlertTitle)); + builder1.setMessage(getString("PrivacyPaymentsClearAlert", R.string.PrivacyPaymentsClearAlert)); + builder1.setPositiveButton(getString("ClearButton", R.string.ClearButton), (dialogInterface2, i2) -> { TLRPC.TL_payments_clearSavedInfo req = new TLRPC.TL_payments_clearSavedInfo(); req.credentials = clear[1]; req.info = clear[0]; @@ -563,17 +575,17 @@ public boolean supportsPredictiveItemAnimations() { }); String text; if (clear[0] && clear[1]) { - text = LocaleController.getString("PrivacyPaymentsPaymentShippingCleared", R.string.PrivacyPaymentsPaymentShippingCleared); + text = getString("PrivacyPaymentsPaymentShippingCleared", R.string.PrivacyPaymentsPaymentShippingCleared); } else if (clear[0]) { - text = LocaleController.getString("PrivacyPaymentsShippingInfoCleared", R.string.PrivacyPaymentsShippingInfoCleared); + text = getString("PrivacyPaymentsShippingInfoCleared", R.string.PrivacyPaymentsShippingInfoCleared); } else if (clear[1]) { - text = LocaleController.getString("PrivacyPaymentsPaymentInfoCleared", R.string.PrivacyPaymentsPaymentInfoCleared); + text = getString("PrivacyPaymentsPaymentInfoCleared", R.string.PrivacyPaymentsPaymentInfoCleared); } else { return; } BulletinFactory.of(PrivacySettingsActivity.this).createSimpleBulletin(R.raw.chats_infotip, text).show(); }); - builder1.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder1.setNegativeButton(getString("Cancel", R.string.Cancel), null); showDialog(builder1.create()); AlertDialog alertDialog = builder1.create(); showDialog(alertDialog); @@ -582,7 +594,7 @@ public boolean supportsPredictiveItemAnimations() { button.setTextColor(Theme.getColor(Theme.key_text_RedBold)); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(getString("Cancel", R.string.Cancel), null); showDialog(builder.create()); AlertDialog alertDialog = builder.create(); @@ -787,9 +799,9 @@ public static String formatRulesString(AccountInstance accountInstance, int rule ArrayList privacyRules = accountInstance.getContactsController().getPrivacyRules(rulesType); if (privacyRules == null || privacyRules.size() == 0) { if (rulesType == 3) { - return LocaleController.getString("P2PNobody", R.string.P2PNobody); + return getString("P2PNobody", R.string.P2PNobody); } else { - return LocaleController.getString("LastSeenNobody", R.string.LastSeenNobody); + return getString("LastSeenNobody", R.string.LastSeenNobody); } } int type = -1; @@ -837,13 +849,13 @@ public static String formatRulesString(AccountInstance accountInstance, int rule if (type == 0 || type == -1 && minus > 0) { if (rulesType == 3) { if (minus == 0) { - return LocaleController.getString("P2PEverybody", R.string.P2PEverybody); + return getString("P2PEverybody", R.string.P2PEverybody); } else { return LocaleController.formatString("P2PEverybodyMinus", R.string.P2PEverybodyMinus, minus); } } else { if (minus == 0) { - return LocaleController.getString("LastSeenEverybody", R.string.LastSeenEverybody); + return getString("LastSeenEverybody", R.string.LastSeenEverybody); } else { return LocaleController.formatString("LastSeenEverybodyMinus", R.string.LastSeenEverybodyMinus, minus); } @@ -851,7 +863,7 @@ public static String formatRulesString(AccountInstance accountInstance, int rule } else if (type == 2 || type == -1 && minus > 0 && plus > 0) { if (rulesType == PrivacyControlActivity.PRIVACY_RULES_TYPE_P2P) { if (plus == 0 && minus == 0) { - return LocaleController.getString("P2PContacts", R.string.P2PContacts); + return getString("P2PContacts", R.string.P2PContacts); } else { if (plus != 0 && minus != 0) { return LocaleController.formatString(R.string.P2PContactsMinusPlus, minus, plus); @@ -863,7 +875,7 @@ public static String formatRulesString(AccountInstance accountInstance, int rule } } else { if (plus == 0 && minus == 0) { - return LocaleController.getString(premium ? R.string.LastSeenContactsPremium : R.string.LastSeenContacts); + return getString(premium ? R.string.LastSeenContactsPremium : R.string.LastSeenContacts); } else { if (plus != 0 && minus != 0) { return LocaleController.formatString(premium ? R.string.LastSeenContactsPremiumMinusPlus : R.string.LastSeenContactsMinusPlus, minus, plus); @@ -877,13 +889,13 @@ public static String formatRulesString(AccountInstance accountInstance, int rule } else if (type == 1 || plus > 0) { if (rulesType == PrivacyControlActivity.PRIVACY_RULES_TYPE_P2P) { if (plus == 0) { - return LocaleController.getString("P2PNobody", R.string.P2PNobody); + return getString("P2PNobody", R.string.P2PNobody); } else { return LocaleController.formatString("P2PNobodyPlus", R.string.P2PNobodyPlus, plus); } } else { if (plus == 0) { - return LocaleController.getString(premium ? R.string.LastSeenNobodyPremium : R.string.LastSeenNobody); + return getString(premium ? R.string.LastSeenNobodyPremium : R.string.LastSeenNobody); } else { return LocaleController.formatString(premium ? R.string.LastSeenNobodyPremiumPlus : R.string.LastSeenNobodyPlus, plus); } @@ -976,7 +988,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { holder.itemView.setTag(position); TextSettingsCell textCell = (TextSettingsCell) holder.itemView; if (position == webSessionsRow) { - textCell.setText(LocaleController.getString("WebSessionsTitle", R.string.WebSessionsTitle), false); + textCell.setText(getString("WebSessionsTitle", R.string.WebSessionsTitle), false); } else if (position == phoneNumberRow) { if (getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_PHONE)) { showLoading = true; @@ -984,7 +996,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { value = formatRulesString(getAccountInstance(), ContactsController.PRIVACY_RULES_TYPE_PHONE); } - textCell.setTextAndValue(LocaleController.getString("PrivacyPhone", R.string.PrivacyPhone), value, true); + textCell.setTextAndValue(getString("PrivacyPhone", R.string.PrivacyPhone), value, true); } else if (position == lastSeenRow) { if (getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_LASTSEEN)) { showLoading = true; @@ -992,7 +1004,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { value = formatRulesString(getAccountInstance(), ContactsController.PRIVACY_RULES_TYPE_LASTSEEN); } - textCell.setTextAndValue(LocaleController.getString("PrivacyLastSeen", R.string.PrivacyLastSeen), value, true); + textCell.setTextAndValue(getString("PrivacyLastSeen", R.string.PrivacyLastSeen), value, true); } else if (position == groupsRow) { if (getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_INVITE)) { showLoading = true; @@ -1000,7 +1012,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { value = formatRulesString(getAccountInstance(), ContactsController.PRIVACY_RULES_TYPE_INVITE); } - textCell.setTextAndValue(LocaleController.getString(R.string.PrivacyInvites), value, false); + textCell.setTextAndValue(getString(R.string.PrivacyInvites), value, false); } else if (position == callsRow) { if (getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_CALLS)) { showLoading = true; @@ -1008,7 +1020,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { value = formatRulesString(getAccountInstance(), ContactsController.PRIVACY_RULES_TYPE_CALLS); } - textCell.setTextAndValue(LocaleController.getString("Calls", R.string.Calls), value, true); + textCell.setTextAndValue(getString("Calls", R.string.Calls), value, true); } else if (position == profilePhotoRow) { if (getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_PHOTO)) { showLoading = true; @@ -1016,7 +1028,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { value = formatRulesString(getAccountInstance(), ContactsController.PRIVACY_RULES_TYPE_PHOTO); } - textCell.setTextAndValue(LocaleController.getString("PrivacyProfilePhoto", R.string.PrivacyProfilePhoto), value, true); + textCell.setTextAndValue(getString("PrivacyProfilePhoto", R.string.PrivacyProfilePhoto), value, true); } else if (position == bioRow) { if (getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_BIO)) { showLoading = true; @@ -1024,7 +1036,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { value = formatRulesString(getAccountInstance(), ContactsController.PRIVACY_RULES_TYPE_BIO); } - textCell.setTextAndValue(LocaleController.getString("PrivacyBio", R.string.PrivacyBio), value, true); + textCell.setTextAndValue(getString("PrivacyBio", R.string.PrivacyBio), value, true); } else if (position == birthdayRow) { if (getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_BIRTHDAY)) { showLoading = true; @@ -1032,7 +1044,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { value = formatRulesString(getAccountInstance(), ContactsController.PRIVACY_RULES_TYPE_BIRTHDAY); } - textCell.setTextAndValue(LocaleController.getString(R.string.PrivacyBirthday), value, true); + textCell.setTextAndValue(getString(R.string.PrivacyBirthday), value, true); } else if (position == forwardsRow) { if (getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_FORWARDS)) { showLoading = true; @@ -1040,63 +1052,69 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { value = formatRulesString(getAccountInstance(), ContactsController.PRIVACY_RULES_TYPE_FORWARDS); } - textCell.setTextAndValue(LocaleController.getString("PrivacyForwards", R.string.PrivacyForwards), value, true); + textCell.setTextAndValue(getString("PrivacyForwards", R.string.PrivacyForwards), value, true); } else if (position == voicesRow) { if (getContactsController().getLoadingPrivacyInfo(ContactsController.PRIVACY_RULES_TYPE_VOICE_MESSAGES)) { showLoading = true; loadingLen = 30; } else if (!getUserConfig().isPremium()) { - value = LocaleController.getString(R.string.P2PEverybody); + value = getString(R.string.P2PEverybody); } else { value = formatRulesString(getAccountInstance(), ContactsController.PRIVACY_RULES_TYPE_VOICE_MESSAGES); } - textCell.setTextAndValue(addPremiumStar(LocaleController.getString(R.string.PrivacyVoiceMessages)), value, noncontactsRow != -1); + textCell.setTextAndValue(addPremiumStar(getString(R.string.PrivacyVoiceMessages)), value, noncontactsRow != -1); ImageView imageView = textCell.getValueImageView(); imageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayIcon), PorterDuff.Mode.MULTIPLY)); } else if (position == noncontactsRow) { - value = LocaleController.getString(noncontactsValue ? R.string.ContactsAndPremium : R.string.P2PEverybody); - textCell.setTextAndValue(getMessagesController().newNoncontactPeersRequirePremiumWithoutOwnpremium ? LocaleController.getString(R.string.PrivacyMessages) : addPremiumStar(LocaleController.getString(R.string.PrivacyMessages)), value, bioRow != -1); + value = getString(noncontactsValue ? R.string.ContactsAndPremium : R.string.P2PEverybody); + textCell.setTextAndValue(getMessagesController().newNoncontactPeersRequirePremiumWithoutOwnpremium ? getString(R.string.PrivacyMessages) : addPremiumStar(getString(R.string.PrivacyMessages)), value, bioRow != -1); } else if (position == passportRow) { - textCell.setText(LocaleController.getString("TelegramPassport", R.string.TelegramPassport), true); + textCell.setText(getString("TelegramPassport", R.string.TelegramPassport), true); } else if (position == deleteAccountRow) { if (getContactsController().getLoadingDeleteInfo()) { showLoading = true; } else { int ttl = getContactsController().getDeleteAccountTTL(); if (ttl <= 182) { - value = LocaleController.formatPluralString("Months", ttl / 30); + value = formatPluralString("Months", ttl / 30); } else if (ttl == 365) { - value = LocaleController.formatPluralString("Years", ttl / 365); + value = formatPluralString("Months", 12); + } else if (ttl == 548) { + value = formatPluralString("Months", 18); + } else if (ttl == 730) { + value = formatPluralString("Months", 24); + } else if (ttl > 30) { + value = formatPluralString("Months", (int) Math.round(ttl / 30.0)); } else { - value = LocaleController.formatPluralString("Days", ttl); + value = formatPluralString("Days", ttl); } } - textCell.setTextAndValue(LocaleController.getString("DeleteAccountIfAwayFor3", R.string.DeleteAccountIfAwayFor3), value, deleteAccountUpdate, false); + textCell.setTextAndValue(getString("DeleteAccountIfAwayFor3", R.string.DeleteAccountIfAwayFor3), value, deleteAccountUpdate, false); deleteAccountUpdate = false; } else if (position == paymentsClearRow) { - textCell.setText(LocaleController.getString("PrivacyPaymentsClear", R.string.PrivacyPaymentsClear), true); + textCell.setText(getString("PrivacyPaymentsClear", R.string.PrivacyPaymentsClear), true); } else if (position == botsBiometryRow) { - textCell.setText(LocaleController.getString(R.string.PrivacyBiometryBotsButton), true); + textCell.setText(getString(R.string.PrivacyBiometryBotsButton), true); } else if (position == secretMapRow) { switch (SharedConfig.mapPreviewType) { case 0: - value = LocaleController.getString("MapPreviewProviderTelegram", R.string.MapPreviewProviderTelegram); + value = getString("MapPreviewProviderTelegram", R.string.MapPreviewProviderTelegram); break; case 1: - value = LocaleController.getString("MapPreviewProviderYandex", R.string.MapPreviewProviderYandex); + value = getString("MapPreviewProviderGoogle", R.string.MapPreviewProviderGoogle); break; case 2: - value = LocaleController.getString("MapPreviewProviderNobody", R.string.MapPreviewProviderNobody); + value = getString("MapPreviewProviderNobody", R.string.MapPreviewProviderNobody); break; case 3: default: - value = LocaleController.getString("MapPreviewProviderYandex", R.string.MapPreviewProviderYandex); + value = getString("MapPreviewProviderYandex", R.string.MapPreviewProviderYandex); break; } - textCell.setTextAndValue(LocaleController.getString("MapPreviewProvider", R.string.MapPreviewProvider), value, secretMapUpdate, true); + textCell.setTextAndValue(getString("MapPreviewProvider", R.string.MapPreviewProvider), value, secretMapUpdate, true); secretMapUpdate = false; } else if (position == contactsDeleteRow) { - textCell.setText(LocaleController.getString("SyncContactsDelete", R.string.SyncContactsDelete), true); + textCell.setText(getString("SyncContactsDelete", R.string.SyncContactsDelete), true); } textCell.setDrawLoading(showLoading, loadingLen, animated); break; @@ -1105,56 +1123,56 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { boolean last = position == getItemCount() - 1; privacyCell.setBackground(Theme.getThemedDrawableByKey(mContext, last ? R.drawable.greydivider_bottom : R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); if (position == deleteAccountDetailRow) { - privacyCell.setText(LocaleController.getString("DeleteAccountHelp", R.string.DeleteAccountHelp)); + privacyCell.setText(getString("DeleteAccountHelp", R.string.DeleteAccountHelp)); } else if (position == groupsDetailRow) { - privacyCell.setText(LocaleController.getString("GroupsAndChannelsHelp", R.string.GroupsAndChannelsHelp)); + privacyCell.setText(getString("GroupsAndChannelsHelp", R.string.GroupsAndChannelsHelp)); } else if (position == sessionsDetailRow) { - privacyCell.setText(LocaleController.getString("SessionsSettingsInfo", R.string.SessionsSettingsInfo)); + privacyCell.setText(getString("SessionsSettingsInfo", R.string.SessionsSettingsInfo)); } else if (position == secretDetailRow) { - privacyCell.setText(LocaleController.getString("SecretWebPageInfo", R.string.SecretWebPageInfo)); + privacyCell.setText(getString("SecretWebPageInfo", R.string.SecretWebPageInfo)); } else if (position == botsDetailRow) { - privacyCell.setText(LocaleController.getString("PrivacyBotsInfo", R.string.PrivacyBotsInfo)); + privacyCell.setText(getString("PrivacyBotsInfo", R.string.PrivacyBotsInfo)); } else if (position == privacyShadowRow) { - privacyCell.setText(LocaleController.getString(R.string.PrivacyInvitesInfo)); + privacyCell.setText(getString(R.string.PrivacyInvitesInfo)); } else if (position == contactsDetailRow) { /*if (newSync) { - privacyCell.setText(LocaleController.getString("SyncContactsInfoOn", R.string.SyncContactsInfoOn)); + privacyCell.setText(LocaleController.getString(R.string.SyncContactsInfoOn)); } else { - privacyCell.setText(LocaleController.getString("SyncContactsInfoOff", R.string.SyncContactsInfoOff)); + privacyCell.setText(LocaleController.getString(R.string.SyncContactsInfoOff)); }*/ - privacyCell.setText(LocaleController.getString("SuggestContactsInfo", R.string.SuggestContactsInfo)); + privacyCell.setText(getString("SuggestContactsInfo", R.string.SuggestContactsInfo)); } else if (position == newChatsSectionRow) { - privacyCell.setText(LocaleController.getString("ArchiveAndMuteInfo", R.string.ArchiveAndMuteInfo)); + privacyCell.setText(getString("ArchiveAndMuteInfo", R.string.ArchiveAndMuteInfo)); } break; case 2: HeaderCell headerCell = (HeaderCell) holder.itemView; if (position == privacySectionRow) { - headerCell.setText(LocaleController.getString("PrivacyTitle", R.string.PrivacyTitle)); + headerCell.setText(getString("PrivacyTitle", R.string.PrivacyTitle)); } else if (position == securitySectionRow) { - headerCell.setText(LocaleController.getString("SecurityTitle", R.string.SecurityTitle)); + headerCell.setText(getString("SecurityTitle", R.string.SecurityTitle)); } else if (position == advancedSectionRow) { - headerCell.setText(LocaleController.getString("DeleteMyAccount", R.string.DeleteMyAccount)); + headerCell.setText(getString("DeleteMyAccount", R.string.DeleteMyAccount)); } else if (position == secretSectionRow) { - headerCell.setText(LocaleController.getString("SecretChat", R.string.SecretChat)); + headerCell.setText(getString("SecretChat", R.string.SecretChat)); } else if (position == botsSectionRow) { - headerCell.setText(LocaleController.getString("PrivacyBots", R.string.PrivacyBots)); + headerCell.setText(getString("PrivacyBots", R.string.PrivacyBots)); } else if (position == contactsSectionRow) { - headerCell.setText(LocaleController.getString("Contacts", R.string.Contacts)); + headerCell.setText(getString("Contacts", R.string.Contacts)); } else if (position == newChatsHeaderRow) { - headerCell.setText(LocaleController.getString("NewChatsFromNonContacts", R.string.NewChatsFromNonContacts)); + headerCell.setText(getString("NewChatsFromNonContacts", R.string.NewChatsFromNonContacts)); } break; case 3: TextCheckCell textCheckCell = (TextCheckCell) holder.itemView; if (position == secretWebpageRow) { - textCheckCell.setTextAndCheck(LocaleController.getString("SecretWebPage", R.string.SecretWebPage), getMessagesController().secretWebpagePreview == 1, false); + textCheckCell.setTextAndCheck(getString("SecretWebPage", R.string.SecretWebPage), getMessagesController().secretWebpagePreview == 1, false); } else if (position == contactsSyncRow) { - textCheckCell.setTextAndCheck(LocaleController.getString("SyncContacts", R.string.SyncContacts), newSync, true); + textCheckCell.setTextAndCheck(getString("SyncContacts", R.string.SyncContacts), newSync, true); } else if (position == contactsSuggestRow) { - textCheckCell.setTextAndCheck(LocaleController.getString("SuggestContacts", R.string.SuggestContacts), newSuggest, false); + textCheckCell.setTextAndCheck(getString("SuggestContacts", R.string.SuggestContacts), newSuggest, false); } else if (position == newChatsRow) { - textCheckCell.setTextAndCheck(LocaleController.getString("ArchiveAndMute", R.string.ArchiveAndMute), archiveChats, false); + textCheckCell.setTextAndCheck(getString("ArchiveAndMute", R.string.ArchiveAndMute), archiveChats, false); } break; case 5: @@ -1172,9 +1190,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else if (ttl > 0) { value = LocaleController.formatTTLString(ttl * 60); } else { - value = LocaleController.getString("PasswordOff", R.string.PasswordOff); + value = getString("PasswordOff", R.string.PasswordOff); } - textCell2.setTextAndValueAndIcon(LocaleController.getString("AutoDeleteMessages", R.string.AutoDeleteMessages), value, true, R.drawable.msg2_autodelete, true); + textCell2.setTextAndValueAndIcon(getString("AutoDeleteMessages", R.string.AutoDeleteMessages), value, true, R.drawable.msg2_autodelete, true); } else if (position == sessionsRow) { String count = ""; if (devicesActivityPreload.getSessionsCount() == 0) { @@ -1187,7 +1205,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { count = String.format(LocaleController.getInstance().getCurrentLocale(), "%d", devicesActivityPreload.getSessionsCount()); } getMessagesController().lastKnownSessionsCount = devicesActivityPreload.getSessionsCount(); - textCell2.setTextAndValueAndIcon(LocaleController.getString("SessionsTitle", R.string.SessionsTitle), count, true, R.drawable.msg2_devices, false); + textCell2.setTextAndValueAndIcon(getString("SessionsTitle", R.string.SessionsTitle), count, true, R.drawable.msg2_devices, false); } else if (position == emailLoginRow) { CharSequence val = ""; if (currentPassword == null) { @@ -1206,38 +1224,38 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { val = spannable; } textCell2.setPrioritizeTitleOverValue(true); - textCell2.setTextAndSpoilersValueAndIcon(LocaleController.getString(R.string.EmailLogin), val, R.drawable.msg2_email, true); + textCell2.setTextAndSpoilersValueAndIcon(getString(R.string.EmailLogin), val, R.drawable.msg2_email, true); } else if (position == passwordRow) { value = ""; if (currentPassword == null) { showLoading = true; } else if (currentPassword.has_password) { - value = LocaleController.getString("PasswordOn", R.string.PasswordOn); + value = getString("PasswordOn", R.string.PasswordOn); } else { - value = LocaleController.getString("PasswordOff", R.string.PasswordOff); + value = getString("PasswordOff", R.string.PasswordOff); } - textCell2.setTextAndValueAndIcon(LocaleController.getString("TwoStepVerification", R.string.TwoStepVerification), value, true, R.drawable.msg2_permissions, true); + textCell2.setTextAndValueAndIcon(getString("TwoStepVerification", R.string.TwoStepVerification), value, true, R.drawable.msg2_permissions, true); } else if (position == passcodeRow) { int icon; if (SharedConfig.passcodeHash.length() != 0) { - value = LocaleController.getString("PasswordOn", R.string.PasswordOn); + value = getString("PasswordOn", R.string.PasswordOn); icon = R.drawable.msg2_secret; } else { - value = LocaleController.getString("PasswordOff", R.string.PasswordOff); + value = getString("PasswordOff", R.string.PasswordOff); icon = R.drawable.msg2_secret; } - textCell2.setTextAndValueAndIcon(LocaleController.getString("Passcode", R.string.Passcode), value, true, icon, true); + textCell2.setTextAndValueAndIcon(getString("Passcode", R.string.Passcode), value, true, icon, true); } else if (position == blockedRow) { int totalCount = getMessagesController().totalBlockedCount; if (totalCount == 0) { - value = LocaleController.getString("BlockedEmpty", R.string.BlockedEmpty); + value = getString("BlockedEmpty", R.string.BlockedEmpty); } else if (totalCount > 0) { value = String.format(LocaleController.getInstance().getCurrentLocale(), "%d", totalCount); } else { showLoading = true; value = ""; } - textCell2.setTextAndValueAndIcon(LocaleController.getString("BlockedUsers", R.string.BlockedUsers), value, true, R.drawable.msg2_block2, true); + textCell2.setTextAndValueAndIcon(getString("BlockedUsers", R.string.BlockedUsers), value, true, R.drawable.msg2_block2, true); } textCell2.setDrawLoading(showLoading, loadingLen, animated); break; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PrivacyUsersActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PrivacyUsersActivity.java index 2b2b07599d..d768693cbf 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PrivacyUsersActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PrivacyUsersActivity.java @@ -129,25 +129,25 @@ public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); if (currentType == TYPE_BLOCKED) { - actionBar.setTitle(LocaleController.getString("BlockedUsers", R.string.BlockedUsers)); + actionBar.setTitle(LocaleController.getString(R.string.BlockedUsers)); } else if (currentType == TYPE_FILTER) { if (isAlwaysShare) { - actionBar.setTitle(LocaleController.getString("FilterAlwaysShow", R.string.FilterAlwaysShow)); + actionBar.setTitle(LocaleController.getString(R.string.FilterAlwaysShow)); } else { - actionBar.setTitle(LocaleController.getString("FilterNeverShow", R.string.FilterNeverShow)); + actionBar.setTitle(LocaleController.getString(R.string.FilterNeverShow)); } } else { if (isGroup) { if (isAlwaysShare) { - actionBar.setTitle(LocaleController.getString("AlwaysAllow", R.string.AlwaysAllow)); + actionBar.setTitle(LocaleController.getString(R.string.AlwaysAllow)); } else { - actionBar.setTitle(LocaleController.getString("NeverAllow", R.string.NeverAllow)); + actionBar.setTitle(LocaleController.getString(R.string.NeverAllow)); } } else { if (isAlwaysShare) { - actionBar.setTitle(LocaleController.getString("AlwaysShareWithTitle", R.string.AlwaysShareWithTitle)); + actionBar.setTitle(LocaleController.getString(R.string.AlwaysShareWithTitle)); } else { - actionBar.setTitle(LocaleController.getString("NeverShareWithTitle", R.string.NeverShareWithTitle)); + actionBar.setTitle(LocaleController.getString(R.string.NeverShareWithTitle)); } } } @@ -205,9 +205,9 @@ public void onItemClick(int id) { emptyView = new EmptyTextProgressView(context); if (currentType == TYPE_BLOCKED) { - emptyView.setText(LocaleController.getString("NoBlocked", R.string.NoBlocked)); + emptyView.setText(LocaleController.getString(R.string.NoBlocked)); } else { - emptyView.setText(LocaleController.getString("NoContacts", R.string.NoContacts)); + emptyView.setText(LocaleController.getString(R.string.NoContacts)); } frameLayout.addView(emptyView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); @@ -336,8 +336,8 @@ private void showUnblockAlert(Long uid, View view) { } ItemOptions.makeOptions(this, view) .setScrimViewBackground(new ColorDrawable(Theme.getColor(Theme.key_windowBackgroundWhite))) - .addIf(currentType == TYPE_BLOCKED, 0, LocaleController.getString("Unblock", R.string.Unblock), () -> getMessagesController().unblockPeer(uid)) - .addIf(currentType != TYPE_BLOCKED, currentType == TYPE_PRIVACY ? R.drawable.msg_user_remove : 0, LocaleController.getString("Remove", R.string.Remove), true, () -> { + .addIf(currentType == TYPE_BLOCKED, 0, LocaleController.getString(R.string.Unblock), () -> getMessagesController().unblockPeer(uid)) + .addIf(currentType != TYPE_BLOCKED, currentType == TYPE_PRIVACY ? R.drawable.msg_user_remove : 0, LocaleController.getString(R.string.Remove), true, () -> { uidArray.remove(uid); updateRows(); if (delegate != null) { @@ -485,7 +485,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType break; case 4: TextCell textCell = new TextCell(parent.getContext()); - textCell.setText(LocaleController.getString("NotificationsDeleteAllException", R.string.NotificationsDeleteAllException), false); + textCell.setText(LocaleController.getString(R.string.NotificationsDeleteAllException), false); textCell.setColors(-1, Theme.key_text_RedRegular); view = textCell; view.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); @@ -511,11 +511,11 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (user != null) { String number; if (user.bot) { - number = LocaleController.getString("Bot", R.string.Bot).substring(0, 1).toUpperCase() + LocaleController.getString("Bot", R.string.Bot).substring(1); + number = LocaleController.getString(R.string.Bot).substring(0, 1).toUpperCase() + LocaleController.getString(R.string.Bot).substring(1); } else if (user.phone != null && user.phone.length() != 0) { number = PhoneFormat.getInstance().format("+" + user.phone); } else { - number = LocaleController.getString("NumberUnknown", R.string.NumberUnknown); + number = LocaleController.getString(R.string.NumberUnknown); } userCell.setData(user, null, number, position != usersEndRow - 1); } @@ -526,11 +526,11 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (chat.participants_count != 0) { subtitle = LocaleController.formatPluralString("Members", chat.participants_count); } else if (chat.has_geo) { - subtitle = LocaleController.getString("MegaLocation", R.string.MegaLocation); + subtitle = LocaleController.getString(R.string.MegaLocation); } else if (!ChatObject.isPublic(chat)) { - subtitle = LocaleController.getString("MegaPrivate", R.string.MegaPrivate); + subtitle = LocaleController.getString(R.string.MegaPrivate); } else { - subtitle = LocaleController.getString("MegaPublic", R.string.MegaPublic); + subtitle = LocaleController.getString(R.string.MegaPublic); } userCell.setData(chat, null, subtitle, position != usersEndRow - 1); } @@ -541,7 +541,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (position == blockUserDetailRow) { if (currentType == TYPE_BLOCKED) { privacyCell.setFixedSize(0); - privacyCell.setText(LocaleController.getString("BlockedUsersInfo", R.string.BlockedUsersInfo)); + privacyCell.setText(LocaleController.getString(R.string.BlockedUsersInfo)); } else { privacyCell.setFixedSize(8); privacyCell.setText(null); @@ -561,9 +561,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { ManageChatTextCell actionCell = (ManageChatTextCell) holder.itemView; actionCell.setColors(Theme.key_windowBackgroundWhiteBlueIcon, Theme.key_windowBackgroundWhiteBlueButton); if (currentType == TYPE_BLOCKED) { - actionCell.setText(LocaleController.getString("BlockUser", R.string.BlockUser), null, R.drawable.actions_addmember2, false); + actionCell.setText(LocaleController.getString(R.string.BlockUser), null, R.drawable.msg_contact_add, false); } else { - actionCell.setText(LocaleController.getString("PrivacyAddAnException", R.string.PrivacyAddAnException), null, R.drawable.actions_addmember2, uidArray.size() > 0); + actionCell.setText(LocaleController.getString(R.string.PrivacyAddAnException), null, R.drawable.msg_contact_add, uidArray.size() > 0); } break; case 3: @@ -572,7 +572,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (currentType == TYPE_BLOCKED) { headerCell.setText(LocaleController.formatPluralString("BlockedUsersCount", getMessagesController().totalBlockedCount)); } else { - headerCell.setText(LocaleController.getString("PrivacyExceptions", R.string.PrivacyExceptions)); + headerCell.setText(LocaleController.getString(R.string.PrivacyExceptions)); } } break; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java index 72afe6a8f9..40789f4890 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java @@ -556,12 +556,10 @@ public void setAlpha(int a) { private final static int statistics = 19; private final static int start_secret_chat = 20; private final static int gallery_menu_save = 21; - private final static int event_log = 102; - private final static int message_filter = 103; private final static int view_discussion = 22; private final static int delete_topic = 23; + private final static int report = 24; - private final static int aliasChannelName = 100; private final static int edit_name = 101; private final static int edit_info = 30; private final static int logout = 31; @@ -579,6 +577,11 @@ public void setAlpha(int a) { private final static int set_username = 43; private final static int bot_privacy = 44; + private final static int aliasChannelName = 100; + private final static int event_log = 102; + private final static int message_filter = 103; + private final static int clear_cache = 104; + private Rect rect = new Rect(); private TextCell setAvatarCell; @@ -1983,6 +1986,7 @@ public boolean onFragmentCreate() { getNotificationCenter().addObserver(this, NotificationCenter.currentUserPremiumStatusChanged); getNotificationCenter().addObserver(this, NotificationCenter.starBalanceUpdated); getNotificationCenter().addObserver(this, NotificationCenter.botStarsUpdated); + getNotificationCenter().addObserver(this, NotificationCenter.botStarsTransactionsLoaded); NotificationCenter.getGlobalInstance().addObserver(this, NotificationCenter.emojiLoaded); updateRowsIds(); if (listAdapter != null) { @@ -2108,6 +2112,7 @@ public void onFragmentDestroy() { getNotificationCenter().removeObserver(this, NotificationCenter.currentUserPremiumStatusChanged); getNotificationCenter().removeObserver(this, NotificationCenter.starBalanceUpdated); getNotificationCenter().removeObserver(this, NotificationCenter.botStarsUpdated); + getNotificationCenter().removeObserver(this, NotificationCenter.botStarsTransactionsLoaded); NotificationCenter.getGlobalInstance().removeObserver(this, NotificationCenter.emojiLoaded); if (avatarsViewPager != null) { avatarsViewPager.onDestroy(); @@ -2268,15 +2273,15 @@ public void onItemClick(final int id) { }, resourcesProvider); } else { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), resourcesProvider); - builder.setTitle(LocaleController.getString("BlockUser", R.string.BlockUser)); + builder.setTitle(LocaleController.getString(R.string.BlockUser)); builder.setMessage(AndroidUtilities.replaceTags(formatString("AreYouSureBlockContact2", R.string.AreYouSureBlockContact2, ContactsController.formatName(user.first_name, user.last_name)))); - builder.setPositiveButton(LocaleController.getString("BlockContact", R.string.BlockContact), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.BlockContact), (dialogInterface, i) -> { getMessagesController().blockPeer(userId); if (BulletinFactory.canShowBulletin(ProfileActivity.this)) { BulletinFactory.createBanBulletin(ProfileActivity.this, true).show(); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -2313,8 +2318,8 @@ public void onItemClick(final int id) { Bundle args = new Bundle(); args.putBoolean("onlySelect", true); args.putInt("dialogsType", DialogsActivity.DIALOGS_TYPE_FORWARD); - args.putString("selectAlertString", LocaleController.getString("SendContactToText", R.string.SendContactToText)); - args.putString("selectAlertStringGroup", LocaleController.getString("SendContactToGroupText", R.string.SendContactToGroupText)); + args.putString("selectAlertString", LocaleController.getString(R.string.SendContactToText)); + args.putString("selectAlertStringGroup", LocaleController.getString(R.string.SendContactToGroupText)); DialogsActivity fragment = new DialogsActivity(args); fragment.setDelegate(ProfileActivity.this); presentFragment(fragment); @@ -2328,9 +2333,9 @@ public void onItemClick(final int id) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), resourcesProvider); - builder.setTitle(LocaleController.getString("DeleteContact", R.string.DeleteContact)); - builder.setMessage(LocaleController.getString("AreYouSureDeleteContact", R.string.AreYouSureDeleteContact)); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.DeleteContact)); + builder.setMessage(LocaleController.getString(R.string.AreYouSureDeleteContact)); + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialogInterface, i) -> { ArrayList arrayList = new ArrayList<>(); arrayList.add(user); getContactsController().deleteContact(arrayList, true); @@ -2339,7 +2344,7 @@ public void onItemClick(final int id) { updateListAnimated(false); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -2359,7 +2364,7 @@ public void onItemClick(final int id) { builder.setTitle(LocaleController.getPluralString("DeleteTopics", 1)); TLRPC.TL_forumTopic topic = MessagesController.getInstance(currentAccount).getTopicsController().findTopic(chatId, topicId); builder.setMessage(formatString("DeleteSelectedTopic", R.string.DeleteSelectedTopic, topic == null ? "topic" : topic.title)); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), new DialogInterface.OnClickListener() { + builder.setPositiveButton(LocaleController.getString(R.string.Delete), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { ArrayList topicIds = new ArrayList<>(); @@ -2383,7 +2388,7 @@ public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), new DialogInterface.OnClickListener() { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); @@ -2395,6 +2400,8 @@ public void onClick(DialogInterface dialog, int which) { if (button != null) { button.setTextColor(Theme.getColor(Theme.key_text_RedBold)); } + } else if (id == report) { + AlertsCreator.createReportAlert(getParentActivity(), getDialogId(), 0, 0, ProfileActivity.this, resourcesProvider, null); } else if (id == edit_channel) { if (isTopic) { Bundle args = new Bundle(); @@ -2430,7 +2437,7 @@ public void onClick(DialogInterface dialog, int which) { args.putBoolean("closeFragment", false); // args.putString("addToGroupAlertString", LocaleController.formatString("AddToTheGroupAlertText", R.string.AddToTheGroupAlertText, UserObject.getUserName(user), "%1$s")); DialogsActivity fragment = new DialogsActivity(args); - fragment.setDelegate((fragment1, dids, message, param, topicsFragment) -> { + fragment.setDelegate((fragment1, dids, message, param, notify, scheduleDate, topicsFragment) -> { long did = dids.get(0).dialogId; TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-did); @@ -2454,11 +2461,11 @@ public void didChangeOwner(TLRPC.User user) { })); } else { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), resourcesProvider); - builder.setTitle(LocaleController.getString("AddBot", R.string.AddBot)); + builder.setTitle(LocaleController.getString(R.string.AddBot)); String chatName = chat == null ? "" : MessageHelper.INSTANCE.zalgoFilter(chat.title); builder.setMessage(AndroidUtilities.replaceTags(formatString("AddMembersAlertNamesText", R.string.AddMembersAlertNamesText, UserObject.getUserName(user), chatName))); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("AddBot", R.string.AddBot), (di, i) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.AddBot), (di, i) -> { disableProfileAnimation = true; Bundle args1 = new Bundle(); @@ -2516,7 +2523,7 @@ public void didChangeOwner(TLRPC.User user) { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, text); - startActivityForResult(Intent.createChooser(intent, LocaleController.getString("BotShare", R.string.BotShare)), 500); + startActivityForResult(Intent.createChooser(intent, LocaleController.getString(R.string.BotShare)), 500); } else { ProxyUtil.showQrDialog(getParentActivity(), text, avatarImage.getImageReceiver().getBitmap() == null ? null : imageSize -> Bitmap.createScaledBitmap(avatarImage.getImageReceiver().getBitmap(), imageSize, imageSize, true)); } @@ -2579,13 +2586,13 @@ public void didChangeOwner(TLRPC.User user) { presentFragment(fragment); } else if (id == start_secret_chat) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), resourcesProvider); - builder.setTitle(LocaleController.getString("AreYouSureSecretChatTitle", R.string.AreYouSureSecretChatTitle)); - builder.setMessage(LocaleController.getString("AreYouSureSecretChat", R.string.AreYouSureSecretChat)); - builder.setPositiveButton(LocaleController.getString("Start", R.string.Start), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.AreYouSureSecretChatTitle)); + builder.setMessage(LocaleController.getString(R.string.AreYouSureSecretChat)); + builder.setPositiveButton(LocaleController.getString(R.string.Start), (dialogInterface, i) -> { creatingChat = true; getSecretChatHelper().startSecretChat(getParentActivity(), getMessagesController().getUser(userId)); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); } else if (id == bot_privacy) { BotWebViewAttachedSheet.openPrivacy(currentAccount, userId); @@ -2698,13 +2705,13 @@ public void didChangeOwner(TLRPC.User user) { return; } if (location.imageType == FileLoader.IMAGE_TYPE_ANIMATION) { - builder.setTitle(LocaleController.getString("AreYouSureDeleteVideoTitle", R.string.AreYouSureDeleteVideoTitle)); + builder.setTitle(LocaleController.getString(R.string.AreYouSureDeleteVideoTitle)); builder.setMessage(formatString("AreYouSureDeleteVideo", R.string.AreYouSureDeleteVideo)); } else { - builder.setTitle(LocaleController.getString("AreYouSureDeletePhotoTitle", R.string.AreYouSureDeletePhotoTitle)); + builder.setTitle(LocaleController.getString(R.string.AreYouSureDeletePhotoTitle)); builder.setMessage(formatString("AreYouSureDeletePhoto", R.string.AreYouSureDeletePhoto)); } - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialogInterface, i) -> { int position = avatarsViewPager.getRealPosition(); TLRPC.Photo photo = avatarsViewPager.getPhoto(position); TLRPC.UserFull userFull = getUserInfo(); @@ -2771,7 +2778,7 @@ public void didChangeOwner(TLRPC.User user) { } } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -2787,6 +2794,11 @@ public void didChangeOwner(TLRPC.User user) { // args.putLong("user_id", userId); // presentFragment(new QrActivity(args)); // } + } else if (id == clear_cache) { + Bundle args = new Bundle(); + args.putLong("dialog_id", userId != 0 ? dialogId : -chatId); + CacheControlActivity fragment = new CacheControlActivity(args); + presentFragment(fragment); } } }); @@ -3391,7 +3403,7 @@ public StoryRecorder.SourceView getView(long dialogId) { // if (userId == getUserConfig().clientUserId && !myProfile) { // qrItem = menu.addItem(qr_button, R.drawable.msg_qr_mini, getResourceProvider()); -// qrItem.setContentDescription(LocaleController.getString("GetQRCode", R.string.GetQRCode)); +// qrItem.setContentDescription(LocaleController.getString(R.string.GetQRCode)); // updateQrItemVisibility(false); // if (ContactsController.getInstance(currentAccount).getPrivacyRules(PRIVACY_RULES_TYPE_ADDED_BY_PHONE) == null) { // ContactsController.getInstance(currentAccount).loadPrivacySettings(); @@ -3417,8 +3429,8 @@ public void onTextChanged(EditText editText) { searchAdapter.search(editText.getText().toString().toLowerCase()); } }); - searchItem.setContentDescription(LocaleController.getString("SearchInSettings", R.string.SearchInSettings)); - searchItem.setSearchFieldHint(LocaleController.getString("SearchInSettings", R.string.SearchInSettings)); + searchItem.setContentDescription(LocaleController.getString(R.string.SearchInSettings)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.SearchInSettings)); sharedMediaLayout.getSearchItem().setVisibility(View.GONE); if (sharedMediaLayout.getSearchOptionsItem() != null) { sharedMediaLayout.getSearchOptionsItem().setVisibility(View.GONE); @@ -3429,17 +3441,17 @@ public void onTextChanged(EditText editText) { } videoCallItem = menu.addItem(video_call_item, R.drawable.profile_video); - videoCallItem.setContentDescription(LocaleController.getString("VideoCall", R.string.VideoCall)); + videoCallItem.setContentDescription(LocaleController.getString(R.string.VideoCall)); if (chatId != 0) { callItem = menu.addItem(call_item, R.drawable.msg_voicechat2); if (ChatObject.isChannelOrGiga(currentChat)) { - callItem.setContentDescription(LocaleController.getString("VoipChannelVoiceChat", R.string.VoipChannelVoiceChat)); + callItem.setContentDescription(LocaleController.getString(R.string.VoipChannelVoiceChat)); } else { - callItem.setContentDescription(LocaleController.getString("VoipGroupVoiceChat", R.string.VoipGroupVoiceChat)); + callItem.setContentDescription(LocaleController.getString(R.string.VoipGroupVoiceChat)); } } else { callItem = menu.addItem(call_item, R.drawable.ic_call); - callItem.setContentDescription(LocaleController.getString("Call", R.string.Call)); + callItem.setContentDescription(LocaleController.getString(R.string.Call)); } eventLogItem = menu.addItem(event_log, R.drawable.msg_log); eventLogItem.setContentDescription(LocaleController.getString("EventLog", R.string.EventLog)); @@ -3456,7 +3468,7 @@ public void onTextChanged(EditText editText) { AndroidUtilities.updateViewVisibilityAnimated(ttlIconView, false, 0.8f, false); ttlIconView.setImageResource(R.drawable.msg_mini_autodelete_timer); otherItem.addView(ttlIconView, LayoutHelper.createFrame(12, 12, Gravity.CENTER_VERTICAL | Gravity.LEFT, 8, 2, 0, 0)); - otherItem.setContentDescription(LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); + otherItem.setContentDescription(LocaleController.getString(R.string.AccDescrMoreOptions)); int scrollTo; int scrollToPosition = 0; @@ -3711,8 +3723,8 @@ public int scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerVi openAddToContact(user, args); } else if (position == reportReactionRow) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), resourcesProvider); - builder.setTitle(LocaleController.getString("ReportReaction", R.string.ReportReaction)); - builder.setMessage(LocaleController.getString("ReportAlertReaction", R.string.ReportAlertReaction)); + builder.setTitle(LocaleController.getString(R.string.ReportReaction)); + builder.setMessage(LocaleController.getString(R.string.ReportAlertReaction)); TLRPC.Chat chat = getMessagesController().getChat(-reportReactionFromDialogId); CheckBoxCell[] cells = new CheckBoxCell[1]; @@ -3721,7 +3733,7 @@ public int scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerVi linearLayout.setOrientation(LinearLayout.VERTICAL); cells[0] = new CheckBoxCell(getParentActivity(), 1, resourcesProvider); cells[0].setBackgroundDrawable(Theme.getSelectorDrawable(false)); - cells[0].setText(LocaleController.getString("BanUser", R.string.BanUser), "", true, false); + cells[0].setText(LocaleController.getString(R.string.BanUser), "", true, false); cells[0].setPadding(LocaleController.isRTL ? AndroidUtilities.dp(16) : AndroidUtilities.dp(8), 0, LocaleController.isRTL ? AndroidUtilities.dp(8) : AndroidUtilities.dp(16), 0); linearLayout.addView(cells[0], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); cells[0].setOnClickListener(v -> { @@ -3730,7 +3742,7 @@ public int scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerVi builder.setView(linearLayout); } - builder.setPositiveButton(LocaleController.getString("ReportChat", R.string.ReportChat), new DialogInterface.OnClickListener() { + builder.setPositiveButton(LocaleController.getString(R.string.ReportChat), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { TLRPC.TL_messages_reportReaction req = new TLRPC.TL_messages_reportReaction(); @@ -3751,7 +3763,7 @@ public void onClick(DialogInterface dialog, int which) { BulletinFactory.of(ProfileActivity.this).createReportSent(resourcesProvider).show(); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), new DialogInterface.OnClickListener() { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); @@ -3932,13 +3944,19 @@ public void openExceptions() { } } else if (position == joinRow) { getMessagesController().addUserToChat(currentChat.id, getUserConfig().getCurrentUser(), 0, null, ProfileActivity.this, true, () -> { - updateListAnimated(false); + updateRowsIds(); + if (listAdapter != null) { + listAdapter.notifyDataSetChanged(); + } }, err -> { if (err != null && "INVITE_REQUEST_SENT".equals(err.text)) { SharedPreferences preferences = MessagesController.getNotificationsSettings(currentAccount); preferences.edit().putLong("dialog_join_requested_time_" + dialogId, System.currentTimeMillis()).commit(); JoinGroupAlert.showBulletin(context, ProfileActivity.this, ChatObject.isChannel(currentChat) && !currentChat.megagroup); - updateListAnimated(false); + updateRowsIds(); + if (listAdapter != null) { + listAdapter.notifyDataSetChanged(); + } if (lastFragment instanceof ChatActivity) { ((ChatActivity) lastFragment).showBottomOverlayProgress(false, true); } @@ -3954,6 +3972,9 @@ public void openExceptions() { ChatUsersActivity fragment = new ChatUsersActivity(args); fragment.setInfo(chatInfo); presentFragment(fragment); + } else if (position == subscribersRequestsRow) { + MemberRequestsActivity activity = new MemberRequestsActivity(chatId); + presentFragment(activity); } else if (position == administratorsRow) { Bundle args = new Bundle(); args.putLong("chat_id", chatId); @@ -4022,15 +4043,15 @@ public void openExceptions() { return; } AlertDialog.Builder builder1 = new AlertDialog.Builder(getParentActivity(), resourcesProvider); - builder1.setMessage(LocaleController.getString("AreYouSure", R.string.AreYouSure)); - builder1.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder1.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + builder1.setMessage(LocaleController.getString(R.string.AreYouSure)); + builder1.setTitle(LocaleController.getString(R.string.AppName)); + builder1.setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> { SharedConfig.pushAuthKey = null; SharedConfig.pushAuthKeyId = null; SharedConfig.saveConfig(); ConnectionsManager.getInstance(currentAccount).switchBackend(false); }); - builder1.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder1.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder1.create()); } else if (position == languageRow) { presentFragment(new LanguageSelectActivity()); @@ -4718,8 +4739,8 @@ protected void onSend(LongSparseArray dids, int count, TLRPC.TL_fo AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity(), resourcesProvider); builder.setTitle(LocaleController.getString(R.string.ClearSearchAlertTitle)); builder.setMessage(LocaleController.getString(R.string.ClearSearchAlert)); - builder.setPositiveButton(LocaleController.getString("ClearButton", R.string.ClearButton), (dialogInterface, i) -> searchAdapter.clearRecent()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.ClearButton), (dialogInterface, i) -> searchAdapter.clearRecent()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -4803,7 +4824,7 @@ public void didChangeOwner(TLRPC.User user) { textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); textView.setGravity(Gravity.CENTER); textView.setTypeface(AndroidUtilities.bold()); - textView.setText(LocaleController.getString("BanFromTheGroup", R.string.BanFromTheGroup)); + textView.setText(LocaleController.getString(R.string.BanFromTheGroup)); frameLayout1.addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 1, 0, 0)); listView.setPadding(0, AndroidUtilities.dp(88), 0, AndroidUtilities.dp(48)); @@ -4908,10 +4929,10 @@ protected void onDetachedFromWindow() { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); if (getImageReceiver().hasNotThumb()) { - info.setText(LocaleController.getString("AccDescrProfilePicture", R.string.AccDescrProfilePicture)); + info.setText(LocaleController.getString(R.string.AccDescrProfilePicture)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, LocaleController.getString("Open", R.string.Open))); - info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_LONG_CLICK, LocaleController.getString("AccDescrOpenInPhotoViewer", R.string.AccDescrOpenInPhotoViewer))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_CLICK, LocaleController.getString(R.string.Open))); + info.addAction(new AccessibilityNodeInfo.AccessibilityAction(AccessibilityNodeInfo.ACTION_LONG_CLICK, LocaleController.getString(R.string.AccDescrOpenInPhotoViewer))); } } else { info.setVisibleToUser(false); @@ -5245,19 +5266,19 @@ protected void onLongPress() { cellCameraDrawable = new RLottieDrawable(R.raw.camera_outline, R.raw.camera_outline + "_cell", AndroidUtilities.dp(42), AndroidUtilities.dp(42), false, null); writeButton.setAnimation(cameraDrawable); - writeButton.setContentDescription(LocaleController.getString("AccDescrChangeProfilePicture", R.string.AccDescrChangeProfilePicture)); + writeButton.setContentDescription(LocaleController.getString(R.string.AccDescrChangeProfilePicture)); writeButton.setPadding(AndroidUtilities.dp(2), 0, 0, AndroidUtilities.dp(2)); } else { writeButton.setImageResource(R.drawable.profile_newmsg); - writeButton.setContentDescription(LocaleController.getString("AccDescrOpenChat", R.string.AccDescrOpenChat)); + writeButton.setContentDescription(LocaleController.getString(R.string.AccDescrOpenChat)); } } else { if (currentChat.megagroup) { writeButton.setImageResource(R.drawable.msg_channel); - writeButton.setContentDescription(LocaleController.getString("OpenChannel2", R.string.OpenChannel2)); + writeButton.setContentDescription(LocaleController.getString(R.string.OpenChannel2)); } else { writeButton.setImageResource(R.drawable.profile_discuss); - writeButton.setContentDescription(LocaleController.getString("ViewDiscussion", R.string.ViewDiscussion)); + writeButton.setContentDescription(LocaleController.getString(R.string.ViewDiscussion)); } } writeButton.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_profile_actionIcon), PorterDuff.Mode.SRC_IN)); @@ -5811,7 +5832,7 @@ public void getOutline(View view, Outline outline) { } floatingButtonContainer.addView(floatingButton, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); floatingButton.setAnimation(R.raw.write_contacts_fab_icon_camera, 56, 56); - floatingButtonContainer.setContentDescription(LocaleController.getString("AccDescrCaptureStory", R.string.AccDescrCaptureStory)); + floatingButtonContainer.setContentDescription(LocaleController.getString(R.string.AccDescrCaptureStory)); updateFloatingButtonColor(); } @@ -6393,22 +6414,22 @@ public boolean onMemberClick(TLRPC.ChatParticipant participant, boolean isLong, ItemOptions.makeOptions(this, view) .setScrimViewBackground(new ColorDrawable(Theme.getColor(Theme.key_windowBackgroundWhite))) - .addIf(canEditAdmin, R.drawable.msg_admins, editingAdmin ? LocaleController.getString("EditAdminRights", R.string.EditAdminRights) : LocaleController.getString("SetAsAdmin", R.string.SetAsAdmin), () -> openRightsEdit.run(0)) - .addIf(canRestrict, R.drawable.msg_permissions, LocaleController.getString("ChangePermissions", R.string.ChangePermissions), () -> { + .addIf(canEditAdmin, R.drawable.msg_admins, editingAdmin ? LocaleController.getString(R.string.EditAdminRights) : LocaleController.getString(R.string.SetAsAdmin), () -> openRightsEdit.run(0)) + .addIf(canRestrict, R.drawable.msg_permissions, LocaleController.getString(R.string.ChangePermissions), () -> { if (channelParticipant instanceof TLRPC.TL_channelParticipantAdmin || participant instanceof TLRPC.TL_chatParticipantAdmin) { showDialog( new AlertDialog.Builder(getParentActivity(), resourcesProvider) - .setTitle(LocaleController.getString("AppName", R.string.AppName)) + .setTitle(LocaleController.getString(R.string.AppName)) .setMessage(formatString("AdminWillBeRemoved", R.string.AdminWillBeRemoved, ContactsController.formatName(user.first_name, user.last_name))) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialog, which) -> openRightsEdit.run(1)) - .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null) + .setPositiveButton(LocaleController.getString(R.string.OK), (dialog, which) -> openRightsEdit.run(1)) + .setNegativeButton(LocaleController.getString(R.string.Cancel), null) .create() ); } else { openRightsEdit.run(1); } }) - .addIf(allowKick, R.drawable.msg_remove, LocaleController.getString("KickFromGroup", R.string.KickFromGroup), true, () -> { + .addIf(allowKick, R.drawable.msg_remove, LocaleController.getString(R.string.KickFromGroup), true, () -> { kickUser(selectedUser, participant); }) .setMinWidth(190) @@ -6539,7 +6560,7 @@ private boolean processOnClickOrPress(final int position, final View view, final BottomBuilder builder = new BottomBuilder(getParentActivity()); builder.addTitle("@" + username); - builder.addItem(LocaleController.getString("QrCode", R.string.QrCode), R.drawable.msg_qrcode, __ -> { + builder.addItem(LocaleController.getString(R.string.QrCode), R.drawable.msg_qrcode, __ -> { Bundle args = new Bundle(); args.putLong("chat_id", chatId); args.putLong("user_id", userId); @@ -6548,7 +6569,7 @@ private boolean processOnClickOrPress(final int position, final View view, final }); if (chatInfo != null && chatInfo.can_set_username) { - builder.addItem(LocaleController.getString("Edit", R.string.Edit), R.drawable.msg_edit, __ -> { + builder.addItem(LocaleController.getString(R.string.Edit), R.drawable.msg_edit, __ -> { ChatEditTypeActivity fragment = new ChatEditTypeActivity(chatId, chatInfo.can_set_location); fragment.setInfo(chatInfo); presentFragment(fragment); @@ -6556,12 +6577,12 @@ private boolean processOnClickOrPress(final int position, final View view, final }); } - builder.addItem(LocaleController.getString("Copy", R.string.Copy), R.drawable.msg_copy, __ -> { + builder.addItem(LocaleController.getString(R.string.Copy), R.drawable.msg_copy, __ -> { AlertUtil.copyAndAlert("@" + username); return Unit.INSTANCE; }); - builder.addItem(LocaleController.getString("CopyLink", R.string.CopyLink), R.drawable.msg_link, __ -> { + builder.addItem(LocaleController.getString(R.string.CopyLink), R.drawable.msg_link, __ -> { AlertUtil.copyAndAlert("https://t.me/" + username); return Unit.INSTANCE; }); @@ -6632,22 +6653,22 @@ private boolean processOnClickOrPress(final int position, final View view, final if (position == phoneRow) { if (userInfo != null && userInfo.phone_calls_available) { icons.add(R.drawable.msg_calls); - items.add(LocaleController.getString("CallViaTelegram", R.string.CallViaTelegram)); + items.add(LocaleController.getString(R.string.CallViaTelegram)); actions.add(PHONE_OPTION_TELEGRAM_CALL); if (Build.VERSION.SDK_INT >= 18 && userInfo.video_calls_available) { icons.add(R.drawable.msg_videocall); - items.add(LocaleController.getString("VideoCallViaTelegram", R.string.VideoCallViaTelegram)); + items.add(LocaleController.getString(R.string.VideoCallViaTelegram)); actions.add(PHONE_OPTION_TELEGRAM_VIDEO_CALL); } } if (!isFragmentPhoneNumber) { icons.add(R.drawable.msg_calls_regular); - items.add(LocaleController.getString("Call", R.string.Call)); + items.add(LocaleController.getString(R.string.Call)); actions.add(PHONE_OPTION_CALL); } } icons.add(R.drawable.msg_copy); - items.add(LocaleController.getString("Copy", R.string.Copy)); + items.add(LocaleController.getString(R.string.Copy)); actions.add(PHONE_OPTION_COPY); AtomicReference popupWindowRef = new AtomicReference<>(); @@ -6688,7 +6709,7 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { android.content.ClipData clip = android.content.ClipData.newPlainText("label", "+" + user.phone); clipboard.setPrimaryClip(clip); if (AndroidUtilities.shouldShowClipboardToast()) { - BulletinFactory.of(this).createCopyBulletin(LocaleController.getString("PhoneCopied", R.string.PhoneCopied)).show(); + BulletinFactory.of(this).createCopyBulletin(LocaleController.getString(R.string.PhoneCopied)).show(); } } catch (Exception e) { FileLog.e(e); @@ -6777,7 +6798,7 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { return false; } BottomBuilder builder = new BottomBuilder(getParentActivity()); - builder.addItem(LocaleController.getString("Copy", R.string.Copy), R.drawable.msg_copy, __ -> { + builder.addItem(LocaleController.getString(R.string.Copy), R.drawable.msg_copy, __ -> { try { String about; if (position == locationRow) { @@ -6795,7 +6816,7 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { } return Unit.INSTANCE; }); - builder.addItem(LocaleController.getString("Translate", R.string.Translate), R.drawable.ic_translate, __ -> { + builder.addItem(LocaleController.getString(R.string.Translate), R.drawable.ic_translate, __ -> { try { String about; if (position == locationRow) { @@ -7164,6 +7185,7 @@ private void setMediaHeaderVisible(boolean visible) { animators.add(ObjectAnimator.ofFloat(sharedMediaLayout.photoVideoOptionsItem, View.TRANSLATION_Y, visible ? 0.0f : AndroidUtilities.dp(10))); animators.add(ObjectAnimator.ofFloat(actionBar, ACTIONBAR_HEADER_PROGRESS, visible ? 1.0f : 0.0f)); animators.add(ObjectAnimator.ofFloat(onlineTextView[1], View.ALPHA, visible ? 0.0f : 1.0f)); + if (myProfile) animators.add(ObjectAnimator.ofFloat(onlineTextView[3], View.ALPHA, visible ? 0.0f : 1.0f)); animators.add(ObjectAnimator.ofFloat(mediaCounterTextView, View.ALPHA, visible ? 1.0f : 0.0f)); if (visible) { animators.add(ObjectAnimator.ofFloat(this, HEADER_SHADOW, 0.0f)); @@ -8223,6 +8245,8 @@ public void didReceivedNotification(int id, int account, final Object... args) { updateListAnimated(false); } else if (id == NotificationCenter.botStarsUpdated) { updateListAnimated(false); + } else if (id == NotificationCenter.botStarsTransactionsLoaded) { + updateListAnimated(false); } } @@ -8325,7 +8349,7 @@ public void onResume() { if (imageUpdater != null) { imageUpdater.onResume(); - setParentActivityTitle(LocaleController.getString("Settings", R.string.Settings)); + setParentActivityTitle(LocaleController.getString(R.string.Settings)); } updateProfileData(true); @@ -9665,13 +9689,13 @@ private void updateProfileData(boolean reload) { String onlineTextOverride; int currentConnectionState = getConnectionsManager().getConnectionState(); if (currentConnectionState == ConnectionsManager.ConnectionStateWaitingForNetwork) { - onlineTextOverride = LocaleController.getString("WaitingForNetwork", R.string.WaitingForNetwork); + onlineTextOverride = LocaleController.getString(R.string.WaitingForNetwork); } else if (currentConnectionState == ConnectionsManager.ConnectionStateConnecting) { - onlineTextOverride = LocaleController.getString("Connecting", R.string.Connecting); + onlineTextOverride = LocaleController.getString(R.string.Connecting); } else if (currentConnectionState == ConnectionsManager.ConnectionStateUpdating) { - onlineTextOverride = LocaleController.getString("Updating", R.string.Updating); + onlineTextOverride = LocaleController.getString(R.string.Updating); } else if (currentConnectionState == ConnectionsManager.ConnectionStateConnectingToProxy) { - onlineTextOverride = LocaleController.getString("ConnectingToProxy", R.string.ConnectingToProxy); + onlineTextOverride = LocaleController.getString(R.string.ConnectingToProxy); } else { onlineTextOverride = null; } @@ -9753,12 +9777,12 @@ private void updateProfileData(boolean reload) { fallbackImage.setImage(ImageLocation.getForPhoto(smallSize, getUserInfo().fallback_photo), "50_50", (Drawable) null, 0, null, UserConfig.getInstance(currentAccount).getCurrentUser(), 0); } } else { - newString2 = LocaleController.getString("Online", R.string.Online); + newString2 = LocaleController.getString(R.string.Online); } } else if (user.id == 333000 || user.id == 777000 || user.id == 42777) { - newString2 = LocaleController.getString("ServiceNotifications", R.string.ServiceNotifications); + newString2 = LocaleController.getString(R.string.ServiceNotifications); } else if (MessagesController.isSupportUser(user)) { - newString2 = LocaleController.getString("SupportStatus", R.string.SupportStatus); + newString2 = LocaleController.getString(R.string.SupportStatus); } else if (isBot) { if (user.bot_active_users != 0) { newString2 = LocaleController.formatPluralStringComma("BotUsers", user.bot_active_users, ','); @@ -9920,21 +9944,21 @@ private void updateProfileData(boolean reload) { } if (userId == UserConfig.getInstance(currentAccount).clientUserId) { - onlineTextView[2].setText(LocaleController.getString("FallbackTooltip", R.string.FallbackTooltip)); - onlineTextView[3].setText(LocaleController.getString("Online", R.string.Online)); + onlineTextView[2].setText(LocaleController.getString(R.string.FallbackTooltip)); + onlineTextView[3].setText(LocaleController.getString(R.string.Online)); } else { if (user.photo != null && user.photo.personal && user.photo.has_video) { SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(newString2); spannableStringBuilder.setSpan(new EmptyStubSpan(), 0, newString2.length(), 0); spannableStringBuilder.append(" d "); - spannableStringBuilder.append(LocaleController.getString("CustomAvatarTooltipVideo", R.string.CustomAvatarTooltipVideo)); + spannableStringBuilder.append(LocaleController.getString(R.string.CustomAvatarTooltipVideo)); spannableStringBuilder.setSpan(new DotDividerSpan(), newString2.length() + 1, newString2.length() + 2, 0); onlineTextView[2].setText(spannableStringBuilder); } else { SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(newString2); spannableStringBuilder.setSpan(new EmptyStubSpan(), 0, newString2.length(), 0); spannableStringBuilder.append(" d "); - spannableStringBuilder.append(LocaleController.getString("CustomAvatarTooltip", R.string.CustomAvatarTooltip)); + spannableStringBuilder.append(LocaleController.getString(R.string.CustomAvatarTooltip)); spannableStringBuilder.setSpan(new DotDividerSpan(), newString2.length() + 1, newString2.length() + 2, 0); onlineTextView[2].setText(spannableStringBuilder); } @@ -9989,12 +10013,12 @@ private void updateProfileData(boolean reload) { if (ChatObject.isChannel(chat)) { if (!isTopic && (chatInfo == null || !currentChat.megagroup && (chatInfo.participants_count == 0 || ChatObject.hasAdminRights(currentChat) || chatInfo.can_view_participants))) { if (currentChat.megagroup) { - statusString = profileStatusString = LocaleController.getString("Loading", R.string.Loading).toLowerCase(); + statusString = profileStatusString = LocaleController.getString(R.string.Loading).toLowerCase(); } else { if (ChatObject.isPublic(chat)) { - statusString = profileStatusString = LocaleController.getString("ChannelPublic", R.string.ChannelPublic).toLowerCase(); + statusString = profileStatusString = LocaleController.getString(R.string.ChannelPublic).toLowerCase(); } else { - statusString = profileStatusString = LocaleController.getString("ChannelPrivate", R.string.ChannelPrivate).toLowerCase(); + statusString = profileStatusString = LocaleController.getString(R.string.ChannelPrivate).toLowerCase(); } } } else { @@ -10019,11 +10043,11 @@ private void updateProfileData(boolean reload) { } else { if (chatInfo.participants_count == 0) { if (chat.has_geo) { - statusString = profileStatusString = LocaleController.getString("MegaLocation", R.string.MegaLocation).toLowerCase(); + statusString = profileStatusString = LocaleController.getString(R.string.MegaLocation).toLowerCase(); } else if (ChatObject.isPublic(chat)) { - statusString = profileStatusString = LocaleController.getString("MegaPublic", R.string.MegaPublic).toLowerCase(); + statusString = profileStatusString = LocaleController.getString(R.string.MegaPublic).toLowerCase(); } else { - statusString = profileStatusString = LocaleController.getString("MegaPrivate", R.string.MegaPrivate).toLowerCase(); + statusString = profileStatusString = LocaleController.getString(R.string.MegaPrivate).toLowerCase(); } } else { statusString = LocaleController.formatPluralString("Members", chatInfo.participants_count); @@ -10044,9 +10068,9 @@ private void updateProfileData(boolean reload) { } } else { if (ChatObject.isKickedFromChat(chat)) { - statusString = profileStatusString = LocaleController.getString("YouWereKicked", R.string.YouWereKicked); + statusString = profileStatusString = LocaleController.getString(R.string.YouWereKicked); } else if (ChatObject.isLeftFromChat(chat)) { - statusString = profileStatusString = LocaleController.getString("YouLeft", R.string.YouLeft); + statusString = profileStatusString = LocaleController.getString(R.string.YouLeft); } else { int count = chat.participants_count; if (chatInfo != null && chatInfo.participants != null) { @@ -10090,10 +10114,10 @@ private void updateProfileData(boolean reload) { if (a != 0) { if (chat.scam || chat.fake) { nameTextView[a].setRightDrawable2(getScamDrawable(chat.scam ? 0 : 1)); - nameTextViewRightDrawableContentDescription = LocaleController.getString("ScamMessage", R.string.ScamMessage); + nameTextViewRightDrawableContentDescription = LocaleController.getString(R.string.ScamMessage); } else if (chat.verifiedExtended()) { nameTextView[a].setRightDrawable2(getVerifiedCrossfadeDrawable(a)); - nameTextViewRightDrawableContentDescription = LocaleController.getString("AccDescrVerified", R.string.AccDescrVerified); + nameTextViewRightDrawableContentDescription = LocaleController.getString(R.string.AccDescrVerified); } else { nameTextView[a].setRightDrawable2(null); nameTextViewRightDrawableContentDescription = null; @@ -10141,11 +10165,11 @@ private void updateProfileData(boolean reload) { if (currentChat.megagroup) { if (chatInfo.participants_count == 0) { if (chat.has_geo) { - onlineTextView[a].setText(LocaleController.getString("MegaLocation", R.string.MegaLocation).toLowerCase()); + onlineTextView[a].setText(LocaleController.getString(R.string.MegaLocation).toLowerCase()); } else if (ChatObject.isPublic(chat)) { - onlineTextView[a].setText(LocaleController.getString("MegaPublic", R.string.MegaPublic).toLowerCase()); + onlineTextView[a].setText(LocaleController.getString(R.string.MegaPublic).toLowerCase()); } else { - onlineTextView[a].setText(LocaleController.getString("MegaPrivate", R.string.MegaPrivate).toLowerCase()); + onlineTextView[a].setText(LocaleController.getString(R.string.MegaPrivate).toLowerCase()); } } else { onlineTextView[a].setText(LocaleController.formatPluralString("Members", result[0]).replace(String.format("%d", result[0]), shortNumber)); @@ -10407,7 +10431,7 @@ private void createActionBarMenu(boolean animated) { editItemVisible = myProfile; otherItem.addSubItem(edit_info, R.drawable.msg_edit, LocaleController.getString(R.string.EditInfo)); if (imageUpdater != null) { - otherItem.addSubItem(add_photo, R.drawable.msg_addphoto, LocaleController.getString("AddPhoto", R.string.AddPhoto)); + otherItem.addSubItem(add_photo, R.drawable.msg_addphoto, LocaleController.getString(R.string.AddPhoto)); } editColorItem = otherItem.addSubItem(edit_color, R.drawable.menu_profile_colors, LocaleController.getString(R.string.ProfileColorEdit)); updateEditColorIcon(); @@ -10431,23 +10455,23 @@ private void createActionBarMenu(boolean animated) { createAutoTranslateItem(userId); createMessageFilterItem(); if (userBlocked) { - otherItem.addSubItem(block_contact, R.drawable.msg_block, LocaleController.getString("Unblock", R.string.Unblock)); + otherItem.addSubItem(block_contact, R.drawable.msg_block, LocaleController.getString(R.string.Unblock)); } - otherItem.addSubItem(add_shortcut, R.drawable.msg_home, LocaleController.getString("AddShortcut", R.string.AddShortcut)); + otherItem.addSubItem(add_shortcut, R.drawable.msg_home, LocaleController.getString(R.string.AddShortcut)); } else { if (currentEncryptedChat == null) { createAutoDeleteItem(context); } createAutoTranslateItem(userId); createMessageFilterItem(); - otherItem.addSubItem(add_shortcut, R.drawable.msg_home, LocaleController.getString("AddShortcut", R.string.AddShortcut)); + otherItem.addSubItem(add_shortcut, R.drawable.msg_home, LocaleController.getString(R.string.AddShortcut)); if (isBot) { - otherItem.addSubItem(share, R.drawable.msg_share, LocaleController.getString("BotShare", R.string.BotShare)); + otherItem.addSubItem(share, R.drawable.msg_share, LocaleController.getString(R.string.BotShare)); } else { - otherItem.addSubItem(add_contact, R.drawable.msg_addcontact, LocaleController.getString("AddContact", R.string.AddContact)); + otherItem.addSubItem(add_contact, R.drawable.msg_addcontact, LocaleController.getString(R.string.AddContact)); } if (!TextUtils.isEmpty(user.phone)) { - otherItem.addSubItem(share_contact, R.drawable.msg_share, LocaleController.getString("ShareContact", R.string.ShareContact)); + otherItem.addSubItem(share_contact, R.drawable.msg_share, LocaleController.getString(R.string.ShareContact)); } if (isBot) { otherItem.addSubItem(bot_privacy, R.drawable.menu_privacy_policy, getString(R.string.BotPrivacyPolicy)); @@ -10456,13 +10480,14 @@ private void createActionBarMenu(boolean animated) { } else { otherItem.hideSubItem(bot_privacy); } + otherItem.addSubItem(report, R.drawable.msg_report, LocaleController.getString(R.string.ReportBot)).setColors(getThemedColor(Theme.key_text_RedRegular), getThemedColor(Theme.key_text_RedRegular)); if (!userBlocked) { otherItem.addSubItem(block_contact, R.drawable.msg_block2, LocaleController.getString(R.string.DeleteAndBlock)).setColors(getThemedColor(Theme.key_text_RedRegular), getThemedColor(Theme.key_text_RedRegular)); } else { - otherItem.addSubItem(block_contact, R.drawable.msg_retry, LocaleController.getString("BotRestart", R.string.BotRestart)); + otherItem.addSubItem(block_contact, R.drawable.msg_retry, LocaleController.getString(R.string.BotRestart)); } } else { - otherItem.addSubItem(block_contact, !userBlocked ? R.drawable.msg_block : R.drawable.msg_block, !userBlocked ? LocaleController.getString("BlockContact", R.string.BlockContact) : LocaleController.getString("Unblock", R.string.Unblock)); + otherItem.addSubItem(block_contact, !userBlocked ? R.drawable.msg_block : R.drawable.msg_block, !userBlocked ? LocaleController.getString(R.string.BlockContact) : LocaleController.getString(R.string.Unblock)); } } } else { @@ -10473,24 +10498,24 @@ private void createActionBarMenu(boolean animated) { createMessageFilterItem(); if (!TextUtils.isEmpty(user.phone)) { - otherItem.addSubItem(share_contact, R.drawable.msg_share, LocaleController.getString("ShareContact", R.string.ShareContact)); + otherItem.addSubItem(share_contact, R.drawable.msg_share, LocaleController.getString(R.string.ShareContact)); } - otherItem.addSubItem(block_contact, !userBlocked ? R.drawable.msg_block : R.drawable.msg_block, !userBlocked ? LocaleController.getString("BlockContact", R.string.BlockContact) : LocaleController.getString("Unblock", R.string.Unblock)); - otherItem.addSubItem(edit_contact, R.drawable.msg_edit, LocaleController.getString("EditContact", R.string.EditContact)); - otherItem.addSubItem(delete_contact, R.drawable.msg_delete, LocaleController.getString("DeleteContact", R.string.DeleteContact)); + otherItem.addSubItem(block_contact, !userBlocked ? R.drawable.msg_block : R.drawable.msg_block, !userBlocked ? LocaleController.getString(R.string.BlockContact) : LocaleController.getString(R.string.Unblock)); + otherItem.addSubItem(edit_contact, R.drawable.msg_edit, LocaleController.getString(R.string.EditContact)); + otherItem.addSubItem(delete_contact, R.drawable.msg_delete, LocaleController.getString(R.string.DeleteContact)); } if (!UserObject.isDeleted(user) && !isBot && currentEncryptedChat == null && !userBlocked && userId != 333000 && userId != 777000 && userId != 42777) { // if (!user.premium && !BuildVars.IS_BILLING_UNAVAILABLE && !user.self && userInfo != null && !getMessagesController().premiumFeaturesBlocked() && !userInfo.premium_gifts.isEmpty()) { // otherItem.addSubItem(gift_premium, R.drawable.msg_gift_premium, LocaleController.getString(R.string.GiftPremium)); // } - otherItem.addSubItem(start_secret_chat, R.drawable.msg_secret, LocaleController.getString("StartEncryptedChat", R.string.StartEncryptedChat)); + otherItem.addSubItem(start_secret_chat, R.drawable.msg_secret, LocaleController.getString(R.string.StartEncryptedChat)); otherItem.setSubItemShown(start_secret_chat, !getMessagesController().isUserPremiumBlocked(userId)); } if (StrUtil.isNotBlank(user.username)) { otherItem.addSubItem(qr_code, R.drawable.msg_qrcode, LocaleController.getString("ShareQRCode", R.string.ShareQRCode)); } if (!isBot && getContactsController().contactsDict.get(userId) != null) { - otherItem.addSubItem(add_shortcut, R.drawable.msg_home, LocaleController.getString("AddShortcut", R.string.AddShortcut)); + otherItem.addSubItem(add_shortcut, R.drawable.msg_home, LocaleController.getString(R.string.AddShortcut)); } } } else if (chatId != 0) { @@ -10524,11 +10549,11 @@ private void createActionBarMenu(boolean animated) { } if (chatInfo != null) { if (ChatObject.canManageCalls(chat) && chatInfo.call == null) { - otherItem.addSubItem(call_item, R.drawable.msg_voicechat, chat.megagroup && !chat.gigagroup ? LocaleController.getString("StartVoipChat", R.string.StartVoipChat) : LocaleController.getString("StartVoipChannel", R.string.StartVoipChannel)); + otherItem.addSubItem(call_item, R.drawable.msg_voicechat, chat.megagroup && !chat.gigagroup ? LocaleController.getString(R.string.StartVoipChat) : LocaleController.getString(R.string.StartVoipChannel)); hasVoiceChatItem = true; } if ((chatInfo.can_view_stats || chatInfo.can_view_revenue || chatInfo.can_view_stars_revenue || getMessagesController().getStoriesController().canPostStories(getDialogId())) && topicId == 0) { - otherItem.addSubItem(statistics, R.drawable.msg_stats, LocaleController.getString("Statistics", R.string.Statistics)); + otherItem.addSubItem(statistics, R.drawable.msg_stats, LocaleController.getString(R.string.Statistics)); } ChatObject.Call call = getMessagesController().getGroupCall(chatId, false); callItemVisible = call != null; @@ -10536,10 +10561,10 @@ private void createActionBarMenu(boolean animated) { if (chat.megagroup) { if (chatInfo == null || !chatInfo.participants_hidden || ChatObject.hasAdminRights(chat)) { canSearchMembers = true; - otherItem.addSubItem(search_members, R.drawable.msg_search, LocaleController.getString("SearchMembers", R.string.SearchMembers)); + otherItem.addSubItem(search_members, R.drawable.msg_search, LocaleController.getString(R.string.SearchMembers)); } if (!chat.creator && !chat.left && !chat.kicked && !isTopic) { - otherItem.addSubItem(leave_group, R.drawable.msg_leave, LocaleController.getString("LeaveMegaMenu", R.string.LeaveMegaMenu)); + otherItem.addSubItem(leave_group, R.drawable.msg_leave, LocaleController.getString(R.string.LeaveMegaMenu)); } if (isTopic && ChatObject.canDeleteTopic(currentAccount, chat, topicId)) { otherItem.addSubItem(delete_topic, R.drawable.msg_delete, LocaleController.getPluralString("DeleteTopics", 1)); @@ -10549,13 +10574,16 @@ private void createActionBarMenu(boolean animated) { otherItem.addSubItem(channel_stories, R.drawable.msg_archive, LocaleController.getString(R.string.OpenChannelArchiveStories)); } if (ChatObject.isPublic(chat)) { - otherItem.addSubItem(share, R.drawable.msg_shareout, LocaleController.getString("BotShare", R.string.BotShare)); + otherItem.addSubItem(share, R.drawable.msg_shareout, LocaleController.getString(R.string.BotShare)); } if (NekoConfig.channelAlias.Bool()){ - otherItem.addSubItem(aliasChannelName, R.drawable.profile_admin, LocaleController.getString("setChannelAliasName", R.string.setChannelAliasName)); + otherItem.addSubItem(aliasChannelName, R.drawable.profile_admin, LocaleController.getString( R.string.setChannelAliasName)); + } + if (chatInfo != null && chatInfo.linked_chat_id != 0) { + otherItem.addSubItem(view_discussion, R.drawable.msg_discussion, LocaleController.getString(R.string.ViewDiscussion)); } if (!currentChat.creator && !currentChat.left && !currentChat.kicked) { - otherItem.addSubItem(leave_group, R.drawable.msg_leave, LocaleController.getString("LeaveChannelMenu", R.string.LeaveChannelMenu)); + otherItem.addSubItem(leave_group, R.drawable.msg_leave, LocaleController.getString(R.string.LeaveChannelMenu)); } } if (ChatObject.hasAdminRights(currentChat)) { @@ -10565,7 +10593,7 @@ private void createActionBarMenu(boolean animated) { } else { if (chatInfo != null) { if (ChatObject.canManageCalls(chat) && chatInfo.call == null) { - otherItem.addSubItem(call_item, R.drawable.msg_voicechat, LocaleController.getString("StartVoipChat", R.string.StartVoipChat)); + otherItem.addSubItem(call_item, R.drawable.msg_voicechat, LocaleController.getString(R.string.StartVoipChat)); hasVoiceChatItem = true; } ChatObject.Call call = getMessagesController().getGroupCall(chatId, false); @@ -10577,33 +10605,37 @@ private void createActionBarMenu(boolean animated) { if (!ChatObject.isKickedFromChat(chat) && !ChatObject.isLeftFromChat(chat)) { if (chatInfo == null || !chatInfo.participants_hidden || ChatObject.hasAdminRights(chat)) { canSearchMembers = true; - otherItem.addSubItem(search_members, R.drawable.msg_search, LocaleController.getString("SearchMembers", R.string.SearchMembers)); + otherItem.addSubItem(search_members, R.drawable.msg_search, LocaleController.getString(R.string.SearchMembers)); } } - otherItem.addSubItem(leave_group, R.drawable.msg_leave, LocaleController.getString("DeleteAndExit", R.string.DeleteAndExit)); + otherItem.addSubItem(leave_group, R.drawable.msg_leave, LocaleController.getString(R.string.DeleteAndExit)); } if (StrUtil.isNotBlank(chat.username) || ChatObject.canUserDoAdminAction(chat, ChatObject.ACTION_INVITE)) { otherItem.addSubItem(qr_code, R.drawable.msg_qrcode, LocaleController.getString("ShareQRCode", R.string.ShareQRCode)); } if (topicId == 0) { - otherItem.addSubItem(add_shortcut, R.drawable.msg_home, LocaleController.getString("AddShortcut", R.string.AddShortcut)); + otherItem.addSubItem(add_shortcut, R.drawable.msg_home, LocaleController.getString(R.string.AddShortcut)); } } // NekoX-TODO: Check Chnage if (imageUpdater != null) { - otherItem.addSubItem(set_as_main, R.drawable.msg_openprofile, LocaleController.getString("SetAsMain", R.string.SetAsMain)); - otherItem.addSubItem(gallery_menu_save, R.drawable.msg_gallery, LocaleController.getString("SaveToGallery", R.string.SaveToGallery)); - //otherItem.addSubItem(edit_avatar, R.drawable.photo_paint, LocaleController.getString("EditPhoto", R.string.EditPhoto)); - otherItem.addSubItem(delete_avatar, R.drawable.msg_delete, LocaleController.getString("Delete", R.string.Delete)); + otherItem.addSubItem(set_as_main, R.drawable.msg_openprofile, LocaleController.getString(R.string.SetAsMain)); + otherItem.addSubItem(gallery_menu_save, R.drawable.msg_gallery, LocaleController.getString(R.string.SaveToGallery)); + //otherItem.addSubItem(edit_avatar, R.drawable.photo_paint, LocaleController.getString(R.string.EditPhoto)); + otherItem.addSubItem(delete_avatar, R.drawable.msg_delete, LocaleController.getString(R.string.Delete)); + } else { + otherItem.addSubItem(gallery_menu_save, R.drawable.msg_gallery, LocaleController.getString(R.string.SaveToGallery)); } if (getMessagesController().isChatNoForwardsWithOverride(currentChat)) { otherItem.hideSubItem(gallery_menu_save); } if (selfUser && !myProfile) { - otherItem.addSubItem(logout, R.drawable.msg_leave, LocaleController.getString("LogOut", R.string.LogOut)); + otherItem.addSubItem(logout, R.drawable.msg_leave, LocaleController.getString(R.string.LogOut)); + } else { + otherItem.addSubItem(clear_cache, R.drawable.msg_delete, LocaleController.getString(R.string.ClearCache)); } if (!isPulledDown) { otherItem.hideSubItem(gallery_menu_save); @@ -10724,7 +10756,7 @@ public void showGlobalAutoDeleteScreen() { ttl = userInfo != null ? userInfo.ttl_period : chatInfo.ttl_period; } autoDeleteItemDrawable = TimerDrawable.getTtlIcon(ttl); - autoDeleteItem = otherItem.addSwipeBackItem(0, autoDeleteItemDrawable, LocaleController.getString("AutoDeletePopupTitle", R.string.AutoDeletePopupTitle), autoDeletePopupWrapper.windowLayout); + autoDeleteItem = otherItem.addSwipeBackItem(0, autoDeleteItemDrawable, LocaleController.getString(R.string.AutoDeletePopupTitle), autoDeletePopupWrapper.windowLayout); otherItem.addColoredGap(); updateAutoDeleteItem(); } @@ -10777,8 +10809,7 @@ protected void onDialogDismiss(Dialog dialog) { } @Override - public boolean didSelectDialogs(DialogsActivity - fragment, ArrayList dids, CharSequence message, boolean param, TopicsFragment topicsFragment) { + public boolean didSelectDialogs(DialogsActivity fragment, ArrayList dids, CharSequence message, boolean param, boolean notify, int scheduleDate, TopicsFragment topicsFragment) { long did = dids.get(0).dialogId; Bundle args = new Bundle(); args.putBoolean("scrollToTopOnResume", true); @@ -10798,10 +10829,10 @@ public boolean didSelectDialogs(DialogsActivity presentFragment(new ChatActivity(args), true); removeSelfFromStack(); TLRPC.User user = getMessagesController().getUser(userId); - getSendMessagesHelper().sendMessage(SendMessagesHelper.SendMessageParams.of(user, did, null, null, null, null, true, 0)); + getSendMessagesHelper().sendMessage(SendMessagesHelper.SendMessageParams.of(user, did, null, null, null, null, notify, scheduleDate)); if (!TextUtils.isEmpty(message)) { AccountInstance accountInstance = AccountInstance.getInstance(currentAccount); - SendMessagesHelper.prepareSendingText(accountInstance, message.toString(), did, true, 0, 0); + SendMessagesHelper.prepareSendingText(accountInstance, message.toString(), did, notify, scheduleDate, 0); } return true; } @@ -11299,7 +11330,7 @@ public static void sendLogs(Activity activity, boolean last) { ShareUtil.shareFile(activity, zipFile); } else { if (activity != null) { - Toast.makeText(activity, LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred), Toast.LENGTH_SHORT).show(); + Toast.makeText(activity, LocaleController.getString(R.string.ErrorOccurred), Toast.LENGTH_SHORT).show(); } } }); @@ -11605,20 +11636,20 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { HeaderCell headerCell = (HeaderCell) holder.itemView; if (position == infoHeaderRow) { if (ChatObject.isChannel(currentChat) && !currentChat.megagroup && channelInfoRow != -1) { - headerCell.setText(LocaleController.getString("ReportChatDescription", R.string.ReportChatDescription)); + headerCell.setText(LocaleController.getString(R.string.ReportChatDescription)); } else { - headerCell.setText(LocaleController.getString("Info", R.string.Info)); + headerCell.setText(LocaleController.getString(R.string.Info)); } } else if (position == membersHeaderRow) { - headerCell.setText(LocaleController.getString("ChannelMembers", R.string.ChannelMembers)); + headerCell.setText(LocaleController.getString(R.string.ChannelMembers)); } else if (position == settingsSectionRow2) { - headerCell.setText(LocaleController.getString("SETTINGS", R.string.SETTINGS)); + headerCell.setText(LocaleController.getString(R.string.SETTINGS)); } else if (position == numberSectionRow) { - headerCell.setText(LocaleController.getString("Account", R.string.Account)); + headerCell.setText(LocaleController.getString(R.string.Account)); } else if (position == helpHeaderRow) { - headerCell.setText(LocaleController.getString("SettingsHelp", R.string.SettingsHelp)); + headerCell.setText(LocaleController.getString(R.string.SettingsHelp)); } else if (position == debugHeaderRow) { - headerCell.setText(LocaleController.getString("SettingsDebug", R.string.SettingsDebug)); + headerCell.setText(LocaleController.getString(R.string.SettingsDebug)); } headerCell.setTextColor(applyPeerColor(getThemedColor(Theme.key_windowBackgroundWhiteBlueHeader), false)); break; @@ -11665,7 +11696,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { text = PhoneFormat.getInstance().format("+" + user.phone); phoneNumber = user.phone; } else { - text = LocaleController.getString("PhoneHidden", R.string.PhoneHidden); + text = LocaleController.getString(R.string.PhoneHidden); phoneNumber = null; } isFragmentPhoneNumber = phoneNumber != null && phoneNumber.matches("888\\d{8}"); @@ -11696,7 +11727,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } } } - value = LocaleController.getString("Username", R.string.Username); + value = LocaleController.getString(R.string.Username); if (username != null) { text = "@" + username; if (usernameObj != null && !usernameObj.editable) { @@ -11716,10 +11747,10 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (ChatObject.isPublic(chat)) { containsQr = true; text = getMessagesController().linkPrefix + "/" + username + (topicId != 0 ? "/" + topicId : ""); - value = LocaleController.getString("InviteLink", R.string.InviteLink); + value = LocaleController.getString(R.string.InviteLink); } else { text = getMessagesController().linkPrefix + "/c/" + chatId + (topicId != 0 ? "/" + topicId : ""); - value = LocaleController.getString("InviteLinkPrivate", R.string.InviteLinkPrivate); + value = LocaleController.getString(R.string.InviteLinkPrivate); } } else { text = ""; @@ -11751,22 +11782,22 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else if (position == locationRow) { if (chatInfo != null && chatInfo.location instanceof TLRPC.TL_channelLocation) { TLRPC.TL_channelLocation location = (TLRPC.TL_channelLocation) chatInfo.location; - detailCell.setTextAndValue(location.address, LocaleController.getString("AttachLocation", R.string.AttachLocation), false); + detailCell.setTextAndValue(location.address, LocaleController.getString(R.string.AttachLocation), false); } } else if (position == numberRow) { TLRPC.User user = UserConfig.getInstance(currentAccount).getCurrentUser(); - String value = LocaleController.getString("NumberUnknown", R.string.NumberUnknown); + String value = LocaleController.getString(R.string.NumberUnknown); if (!NekoConfig.hidePhone.Bool()) { if (user != null && user.phone != null && user.phone.length() != 0) { value = PhoneFormat.getInstance().format("+" + user.phone); } } - detailCell.setTextAndValue(value, LocaleController.getString("TapToChangePhone", R.string.TapToChangePhone), true); + detailCell.setTextAndValue(value, LocaleController.getString(R.string.TapToChangePhone), true); detailCell.setContentDescriptionValueFirst(false); } else if (position == setUsernameRow) { TLRPC.User user = UserConfig.getInstance(currentAccount).getCurrentUser(); String text = ""; - CharSequence value = LocaleController.getString("Username", R.string.Username); + CharSequence value = LocaleController.getString(R.string.Username); String username = null; if (user != null && user.usernames.size() > 0) { for (int i = 0; i < user.usernames.size(); ++i) { @@ -11780,7 +11811,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { username = user.username; } if (username == null || TextUtils.isEmpty(username)) { - text = LocaleController.getString("UsernameEmpty", R.string.UsernameEmpty); + text = LocaleController.getString(R.string.UsernameEmpty); } else { text = "@" + username; } @@ -11790,7 +11821,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (user != null && !TextUtils.isEmpty(username)) { text = "@" + username; } else { - text = LocaleController.getString("UsernameEmpty", R.string.UsernameEmpty); + text = LocaleController.getString(R.string.UsernameEmpty); } } detailCell.setTextAndValue(text, value, true); @@ -11804,7 +11835,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else if (containsQr) { Drawable drawable = ContextCompat.getDrawable(detailCell.getContext(), R.drawable.msg_qr_mini); drawable.setColorFilter(new PorterDuffColorFilter(applyPeerColor(getThemedColor(Theme.key_switch2TrackChecked), false), PorterDuff.Mode.MULTIPLY)); - detailCell.setImage(drawable, LocaleController.getString("GetQRCode", R.string.GetQRCode)); + detailCell.setImage(drawable, LocaleController.getString(R.string.GetQRCode)); detailCell.setImageClickListener(ProfileActivity.this::onTextDetailCellImageClicked); } else { detailCell.setImage(null); @@ -11817,7 +11848,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case VIEW_TYPE_ABOUT_LINK: AboutLinkCell aboutLinkCell = (AboutLinkCell) holder.itemView; if (position == userInfoRow) { - aboutLinkCell.setTextAndValue(MessageHelper.INSTANCE.zalgoFilter(userInfo.about), LocaleController.getString("UserBio", R.string.UserBio), true); +// TLRPC.User user = userInfo.user != null ? userInfo.user : getMessagesController().getUser(userInfo.id); +// boolean addlinks = isBot || (user != null && user.premium && userInfo.about != null); + aboutLinkCell.setTextAndValue(MessageHelper.INSTANCE.zalgoFilter(userInfo.about), LocaleController.getString(R.string.UserBio), true); } else if (position == channelInfoRow) { String text = chatInfo.about; while (text.contains("\n\n\n")) { @@ -11828,11 +11861,11 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (position == bioRow) { String value; if (userInfo == null || !TextUtils.isEmpty(userInfo.about)) { - value = userInfo == null ? LocaleController.getString("Loading", R.string.Loading) : userInfo.about; - aboutLinkCell.setTextAndValue(MessageHelper.INSTANCE.zalgoFilter(value), LocaleController.getString("UserBio", R.string.UserBio), false); + value = userInfo == null ? LocaleController.getString(R.string.Loading) : userInfo.about; + aboutLinkCell.setTextAndValue(MessageHelper.INSTANCE.zalgoFilter(value), LocaleController.getString(R.string.UserBio), true || getUserConfig().isPremium()); currentBio = userInfo != null ? userInfo.about : null; } else { - aboutLinkCell.setTextAndValue(LocaleController.getString("UserBioDetail", R.string.UserBioDetail), LocaleController.getString("UserBio", R.string.UserBio), false); + aboutLinkCell.setTextAndValue(LocaleController.getString(R.string.UserBio), LocaleController.getString(R.string.UserBioDetail), false); currentBio = null; } aboutLinkCell.setMoreButtonDisabled(true); @@ -11848,146 +11881,151 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TLRPC.EncryptedChat encryptedChat = getMessagesController().getEncryptedChat(DialogObject.getEncryptedChatId(dialogId)); String value; if (encryptedChat.ttl == 0) { - value = LocaleController.getString("ShortMessageLifetimeForever", R.string.ShortMessageLifetimeForever); + value = LocaleController.getString(R.string.ShortMessageLifetimeForever); } else { value = LocaleController.formatTTLString(encryptedChat.ttl); } - textCell.setTextAndValue(LocaleController.getString("MessageLifetime", R.string.MessageLifetime), value, false,false); + textCell.setTextAndValue(LocaleController.getString(R.string.MessageLifetime), value, false,false); } else if (position == unblockRow) { - textCell.setText(LocaleController.getString("Unblock", R.string.Unblock), false); + textCell.setText(LocaleController.getString(R.string.Unblock), false); textCell.setColors(-1, Theme.key_text_RedRegular); } else if (position == settingsKeyRow) { IdenticonDrawable identiconDrawable = new IdenticonDrawable(); TLRPC.EncryptedChat encryptedChat = getMessagesController().getEncryptedChat(DialogObject.getEncryptedChatId(dialogId)); identiconDrawable.setEncryptedChat(encryptedChat); - textCell.setTextAndValueDrawable(LocaleController.getString("EncryptionKey", R.string.EncryptionKey), identiconDrawable, false); + textCell.setTextAndValueDrawable(LocaleController.getString(R.string.EncryptionKey), identiconDrawable, false); } else if (position == joinRow) { textCell.setColors(-1, Theme.key_windowBackgroundWhiteBlueText2); if (currentChat.megagroup) { - textCell.setText(LocaleController.getString("ProfileJoinGroup", R.string.ProfileJoinGroup), false); + textCell.setText(LocaleController.getString(R.string.ProfileJoinGroup), false); } else { - textCell.setText(LocaleController.getString("ProfileJoinChannel", R.string.ProfileJoinChannel), false); + textCell.setText(LocaleController.getString(R.string.ProfileJoinChannel), false); } } else if (position == subscribersRow) { if (chatInfo != null) { if (ChatObject.isChannel(currentChat) && !currentChat.megagroup) { - textCell.setTextAndValueAndIcon(LocaleController.getString("ChannelSubscribers", R.string.ChannelSubscribers), String.format("%d", chatInfo.participants_count), R.drawable.msg_groups, position != membersSectionRow - 1); + textCell.setTextAndValueAndIcon(LocaleController.getString(R.string.ChannelSubscribers), String.format("%d", chatInfo.participants_count), R.drawable.msg_groups, position != membersSectionRow - 1); } else { - textCell.setTextAndValueAndIcon(LocaleController.getString("ChannelMembers", R.string.ChannelMembers), String.format("%d", chatInfo.participants_count), R.drawable.msg_groups, position != membersSectionRow - 1); + textCell.setTextAndValueAndIcon(LocaleController.getString(R.string.ChannelMembers), String.format("%d", chatInfo.participants_count), R.drawable.msg_groups, position != membersSectionRow - 1); } } else { if (ChatObject.isChannel(currentChat) && !currentChat.megagroup) { - textCell.setTextAndIcon(LocaleController.getString("ChannelSubscribers", R.string.ChannelSubscribers), R.drawable.msg_groups, position != membersSectionRow - 1); + textCell.setTextAndIcon(LocaleController.getString(R.string.ChannelSubscribers), R.drawable.msg_groups, position != membersSectionRow - 1); } else { - textCell.setTextAndIcon(LocaleController.getString("ChannelMembers", R.string.ChannelMembers), R.drawable.msg_groups, position != membersSectionRow - 1); + textCell.setTextAndIcon(LocaleController.getString(R.string.ChannelMembers), R.drawable.msg_groups, position != membersSectionRow - 1); } } } else if (position == subscribersRequestsRow) { if (chatInfo != null) { - textCell.setTextAndValueAndIcon(LocaleController.getString("SubscribeRequests", R.string.SubscribeRequests), String.format("%d", chatInfo.requests_pending), R.drawable.msg_requests, position != membersSectionRow - 1); + textCell.setTextAndValueAndIcon(LocaleController.getString(R.string.SubscribeRequests), String.format("%d", chatInfo.requests_pending), R.drawable.msg_requests, position != membersSectionRow - 1); } } else if (position == administratorsRow) { if (chatInfo != null) { - textCell.setTextAndValueAndIcon(LocaleController.getString("ChannelAdministrators", R.string.ChannelAdministrators), String.format("%d", chatInfo.admins_count), R.drawable.msg_admins, position != membersSectionRow - 1); + textCell.setTextAndValueAndIcon(LocaleController.getString(R.string.ChannelAdministrators), String.format("%d", chatInfo.admins_count), R.drawable.msg_admins, position != membersSectionRow - 1); } else { - textCell.setTextAndIcon(LocaleController.getString("ChannelAdministrators", R.string.ChannelAdministrators), R.drawable.msg_admins, position != membersSectionRow - 1); + textCell.setTextAndIcon(LocaleController.getString(R.string.ChannelAdministrators), R.drawable.msg_admins, position != membersSectionRow - 1); } } else if (position == settingsRow) { - textCell.setTextAndIcon(LocaleController.getString("ChannelAdminSettings", R.string.ChannelAdminSettings), R.drawable.msg_customize, position != membersSectionRow - 1); + textCell.setTextAndIcon(LocaleController.getString(R.string.ChannelAdminSettings), R.drawable.msg_customize, position != membersSectionRow - 1); } else if (position == balanceRow) { long did = chatId != 0 ? -chatId : userId; long stars_balance = BotStarsController.getInstance(currentAccount).getBalance(did); long ton_balance = BotStarsController.getInstance(currentAccount).getChannelBalance(did); SpannableStringBuilder ssb = new SpannableStringBuilder(); if (ton_balance > 0) { - DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.US); - symbols.setDecimalSeparator('.'); - DecimalFormat formatterTON = new DecimalFormat("#.##", symbols); - formatterTON.setMinimumFractionDigits(2); - formatterTON.setMaximumFractionDigits(3); - formatterTON.setGroupingUsed(false); - ssb.append("TON ").append(formatterTON.format(ton_balance / 1_000_000_000.0)); + if (ton_balance / 1_000_000_000.0 > 1000.0) { + ssb.append("TON ").append(AndroidUtilities.formatWholeNumber((int) (ton_balance / 1_000_000_000.0), 0)); + } else { + DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.US); + symbols.setDecimalSeparator('.'); + DecimalFormat formatterTON = new DecimalFormat("#.##", symbols); + formatterTON.setMinimumFractionDigits(2); + formatterTON.setMaximumFractionDigits(3); + formatterTON.setGroupingUsed(false); + ssb.append("TON ").append(formatterTON.format(ton_balance / 1_000_000_000.0)); + } } if (stars_balance > 0) { if (ssb.length() > 0) ssb.append(" "); - ssb.append("XTR ").append(LocaleController.formatNumber(stars_balance, ',')); + ssb.append("XTR ").append(AndroidUtilities.formatWholeNumber((int) stars_balance, 0)); } textCell.setTextAndValueAndIcon(LocaleController.getString(R.string.ChannelStars), ChannelMonetizationLayout.replaceTON(StarsIntroActivity.replaceStarsWithPlain(ssb, .7f), textCell.getTextView().getPaint()), R.drawable.menu_feature_paid, true); } else if (position == blockedUsersRow) { if (chatInfo != null) { - textCell.setTextAndValueAndIcon(LocaleController.getString("ChannelBlacklist", R.string.ChannelBlacklist), String.format("%d", Math.max(chatInfo.banned_count, chatInfo.kicked_count)), R.drawable.msg_user_remove, position != membersSectionRow - 1); + textCell.setTextAndValueAndIcon(LocaleController.getString(R.string.ChannelBlacklist), String.format("%d", Math.max(chatInfo.banned_count, chatInfo.kicked_count)), R.drawable.msg_user_remove, position != membersSectionRow - 1); } else { - textCell.setTextAndIcon(LocaleController.getString("ChannelBlacklist", R.string.ChannelBlacklist), R.drawable.msg_user_remove, position != membersSectionRow - 1); + textCell.setTextAndIcon(LocaleController.getString(R.string.ChannelBlacklist), R.drawable.msg_user_remove, position != membersSectionRow - 1); } } else if (position == addMemberRow) { textCell.setColors(Theme.key_windowBackgroundWhiteBlueIcon, Theme.key_windowBackgroundWhiteBlueButton); boolean isNextPositionMember = position + 1 >= membersStartRow && position + 1 < membersEndRow; - textCell.setTextAndIcon(LocaleController.getString("AddMember", R.string.AddMember), R.drawable.msg_contact_add, membersSectionRow == -1 || isNextPositionMember); + textCell.setTextAndIcon(LocaleController.getString(R.string.AddMember), R.drawable.msg_contact_add, membersSectionRow == -1 || isNextPositionMember); } else if (position == sendMessageRow) { - textCell.setText(LocaleController.getString("SendMessageLocation", R.string.SendMessageLocation), true); + textCell.setText(LocaleController.getString(R.string.SendMessageLocation), true); } else if (position == addToContactsRow) { textCell.setTextAndIcon(LocaleController.getString(R.string.AddToContacts), R.drawable.msg_contact_add, false); textCell.setColors(Theme.key_windowBackgroundWhiteBlueIcon, Theme.key_windowBackgroundWhiteBlueButton); } else if (position == reportReactionRow) { TLRPC.Chat chat = getMessagesController().getChat(-reportReactionFromDialogId); if (chat != null && ChatObject.canBlockUsers(chat)) { - textCell.setTextAndIcon(LocaleController.getString("ReportReactionAndBan", R.string.ReportReactionAndBan), R.drawable.msg_block2, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.ReportReactionAndBan), R.drawable.msg_block2, false); } else { - textCell.setTextAndIcon(LocaleController.getString("ReportReaction", R.string.ReportReaction), R.drawable.msg_report,false); + textCell.setTextAndIcon(LocaleController.getString(R.string.ReportReaction), R.drawable.msg_report,false); } textCell.setColors(Theme.key_text_RedBold, Theme.key_text_RedRegular); textCell.setColors(Theme.key_text_RedBold, Theme.key_text_RedRegular); } else if (position == reportRow) { - textCell.setText(LocaleController.getString("ReportUserLocation", R.string.ReportUserLocation), false); + textCell.setText(LocaleController.getString(R.string.ReportUserLocation), false); textCell.setColors(-1, Theme.key_text_RedRegular); textCell.setColors(-1, Theme.key_text_RedRegular); } else if (position == languageRow) { - textCell.setTextAndIcon(LocaleController.getString("Language", R.string.Language), R.drawable.msg_language, false); + textCell.setTextAndValueAndIcon(LocaleController.getString(R.string.Language), LocaleController.getCurrentLanguageName(), false, R.drawable.msg2_language, false); + textCell.setImageLeft(23); } else if (position == notificationRow) { - textCell.setTextAndIcon(LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds), R.drawable.msg_notifications, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.NotificationsAndSounds), R.drawable.msg2_notifications, true); } else if (position == privacyRow) { - textCell.setTextAndIcon(LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.PrivacySettings), R.drawable.msg2_secret, true); } else if (position == dataRow) { - textCell.setTextAndIcon(LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg_filled_storageusage, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.DataSettings), R.drawable.msg2_data, true); } else if (position == chatRow) { - textCell.setTextAndIcon(LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.ChatSettings), R.drawable.msg2_discussion, true); } else if (position == filtersRow) { textCell.setTextAndIcon(LocaleController.getString(R.string.Filters), R.drawable.msg2_folder, true); } else if (position == stickersRow) { - textCell.setTextAndIcon(LocaleController.getString("StickersAndMasks", R.string.StickersAndMasks), R.drawable.msg_sticker, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.StickersAndMasks), R.drawable.msg_sticker, true); } else if (position == nekoRow) { - textCell.setTextAndIcon(LocaleController.getString("NekoSettings", R.string.NekoSettings), R.drawable.msg_settings, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.NekoSettings), R.drawable.msg_settings, true); } else if (position == filtersRow) { - textCell.setTextAndIcon(LocaleController.getString("Filters", R.string.Filters), R.drawable.msg_folders, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.Filters), R.drawable.msg_folders, true); } else if (position == liteModeRow) { textCell.setTextAndIcon(LocaleController.getString(R.string.PowerUsage), R.drawable.msg2_battery, true); } else if (position == questionRow) { - textCell.setTextAndIcon(LocaleController.getString("NekoXUpdatesChannel", R.string.NekoXUpdatesChannel), R.drawable.menu_channel_ny, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.NekoXUpdatesChannel), R.drawable.menu_channel_ny, true); } else if (position == faqRow) { - textCell.setTextAndIcon(LocaleController.getString("NekoXFaq", R.string.NekoXFaq), R.drawable.msg_help, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.NekoXFaq), R.drawable.msg_help, true); } else if (position == policyRow) { - textCell.setTextAndIcon(LocaleController.getString("PrivacyPolicy", R.string.PrivacyPolicy), R.drawable.msg_policy, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.PrivacyPolicy), R.drawable.msg_policy, true); } else if (position == sendLogsRow) { - textCell.setTextAndIcon(LocaleController.getString("DebugSendLogs", R.string.DebugSendLogs), R.drawable.msg_filled_data_sent, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.DebugSendLogs), R.drawable.msg_filled_data_sent, true); } else if (position == sendLastLogsRow) { - textCell.setTextAndIcon(LocaleController.getString("DebugSendLastLogs", R.string.DebugSendLastLogs), R.drawable.baseline_bug_report_24 ,true); + textCell.setTextAndIcon(LocaleController.getString(R.string.DebugSendLastLogs), R.drawable.baseline_bug_report_24 ,true); } else if (position == clearLogsRow) { - textCell.setTextAndIcon(LocaleController.getString("DebugClearLogs", R.string.DebugClearLogs), R.drawable.msg_clearcache, switchBackendRow != -1); + textCell.setTextAndIcon(LocaleController.getString(R.string.DebugClearLogs), R.drawable.msg_clearcache, switchBackendRow != -1); } else if (position == switchBackendRow) { textCell.setText("Switch Backend", false); } else if (position == devicesRow) { - textCell.setTextAndIcon(LocaleController.getString("Devices", R.string.Devices), R.drawable.msg2_devices, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.Devices), R.drawable.msg2_devices, true); } else if (position == setAvatarRow) { cellCameraDrawable.setCustomEndFrame(86); cellCameraDrawable.setCurrentFrame(85, false); - textCell.setTextAndIcon(LocaleController.getString("SetProfilePhoto", R.string.SetProfilePhoto), cellCameraDrawable, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.SetProfilePhoto), cellCameraDrawable, false); textCell.setColors(Theme.key_windowBackgroundWhiteBlueIcon, Theme.key_windowBackgroundWhiteBlueButton); textCell.getImageView().setPadding(0, 0, 0, AndroidUtilities.dp(8)); textCell.setImageLeft(12); setAvatarCell = textCell; } else if (position == addToGroupButtonRow) { - textCell.setTextAndIcon(LocaleController.getString("AddToGroupOrChannel", R.string.AddToGroupOrChannel), R.drawable.msg_groups_create, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.AddToGroupOrChannel), R.drawable.msg_groups_create, false); } else if (position == premiumRow) { textCell.setTextAndIcon(LocaleController.getString(R.string.TelegramPremium), new AnimatedEmojiDrawable.WrapSizeDrawable(PremiumGradient.getInstance().premiumStarMenuDrawable, dp(24), dp(24)), true); textCell.setImageLeft(23); @@ -12000,7 +12038,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { textCell.setTextAndIcon(TextCell.applyNewSpan(LocaleController.getString(R.string.TelegramBusiness)), R.drawable.menu_shop, true); textCell.setImageLeft(23); } else if (position == premiumGiftingRow) { - textCell.setTextAndIcon(LocaleController.getString("GiftPremiumGifting", R.string.GiftPremiumGifting), R.drawable.menu_gift, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.GiftPremiumGifting), R.drawable.menu_gift, false); textCell.setImageLeft(23); } textCell.valueTextView.setTextColor(applyPeerColor(getThemedColor(Theme.key_windowBackgroundWhiteValueText), false)); @@ -12028,9 +12066,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { delta -= getConnectionsManager().getCurrentTime(); if (delta <= 0) { if (custom) { - val = LocaleController.getString("NotificationsCustom", R.string.NotificationsCustom); + val = LocaleController.getString(R.string.NotificationsCustom); } else { - val = LocaleController.getString("NotificationsOn", R.string.NotificationsOn); + val = LocaleController.getString(R.string.NotificationsOn); } enabled = true; } else if (delta < 60 * 60) { @@ -12053,19 +12091,19 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { enabled = true; } if (enabled && custom) { - val = LocaleController.getString("NotificationsCustom", R.string.NotificationsCustom); + val = LocaleController.getString(R.string.NotificationsCustom); } else { - val = enabled ? LocaleController.getString("NotificationsOn", R.string.NotificationsOn) : LocaleController.getString("NotificationsOff", R.string.NotificationsOff); + val = enabled ? LocaleController.getString(R.string.NotificationsOn) : LocaleController.getString(R.string.NotificationsOff); } } if (val == null) { - val = LocaleController.getString("NotificationsOff", R.string.NotificationsOff); + val = LocaleController.getString(R.string.NotificationsOff); } if (notificationsExceptionTopics != null && !notificationsExceptionTopics.isEmpty()) { val = String.format(Locale.US, LocaleController.getPluralString("NotificationTopicExceptionsDesctription", notificationsExceptionTopics.size()), val, notificationsExceptionTopics.size()); } checkCell.setAnimationsEnabled(fragmentOpened); - checkCell.setTextAndValueAndCheck(LocaleController.getString("Notifications", R.string.Notifications), val, enabled, botAppRow >= 0); + checkCell.setTextAndValueAndCheck(LocaleController.getString(R.string.Notifications), val, enabled, botAppRow >= 0); } break; case VIEW_TYPE_SHADOW: @@ -12121,18 +12159,18 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { role = channelParticipant.rank; } else { if (channelParticipant instanceof TLRPC.TL_channelParticipantCreator) { - role = LocaleController.getString("ChannelCreator", R.string.ChannelCreator); + role = LocaleController.getString(R.string.ChannelCreator); } else if (channelParticipant instanceof TLRPC.TL_channelParticipantAdmin) { - role = LocaleController.getString("ChannelAdmin", R.string.ChannelAdmin); + role = LocaleController.getString(R.string.ChannelAdmin); } else { role = null; } } } else { if (part instanceof TLRPC.TL_chatParticipantCreator) { - role = LocaleController.getString("ChannelCreator", R.string.ChannelCreator); + role = LocaleController.getString(R.string.ChannelCreator); } else if (part instanceof TLRPC.TL_chatParticipantAdmin) { - role = LocaleController.getString("ChannelAdmin", R.string.ChannelAdmin); + role = getString(R.string.ChannelAdmin); } else { role = null; } @@ -12157,11 +12195,11 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case VIEW_TYPE_ADDTOGROUP_INFO: TextInfoPrivacyCell addToGroupInfo = (TextInfoPrivacyCell) holder.itemView; addToGroupInfo.setBackground(Theme.getThemedDrawable(mContext, R.drawable.greydivider, getThemedColor(Theme.key_windowBackgroundGrayShadow))); - addToGroupInfo.setText(LocaleController.getString("BotAddToGroupOrChannelInfo", R.string.BotAddToGroupOrChannelInfo)); + addToGroupInfo.setText(LocaleController.getString(R.string.BotAddToGroupOrChannelInfo)); break; case VIEW_TYPE_NOTIFICATIONS_CHECK_SIMPLE: TextCheckCell textCheckCell = (TextCheckCell) holder.itemView; - textCheckCell.setTextAndCheck(LocaleController.getString("Notifications", R.string.Notifications), !getMessagesController().isDialogMuted(getDialogId(), topicId), false); + textCheckCell.setTextAndCheck(LocaleController.getString(R.string.Notifications), !getMessagesController().isDialogMuted(getDialogId(), topicId), false); break; case VIEW_TYPE_LOCATION: ((ProfileLocationCell) holder.itemView).set(userInfo != null ? userInfo.business_location : null, notificationsDividerRow < 0 && !myProfile); @@ -12227,7 +12265,7 @@ private CharSequence alsoUsernamesString(String originalUsername, ArrayList presentFragment(new ChangeNameActivity(resourcesProvider))), - new SearchResult(501, LocaleController.getString("ChangePhoneNumber", R.string.ChangePhoneNumber), 0, () -> presentFragment(new ActionIntroActivity(ActionIntroActivity.ACTION_TYPE_CHANGE_PHONE_NUMBER))), - new SearchResult(502, LocaleController.getString("AddAnotherAccount", R.string.AddAnotherAccount), 0, () -> { + new SearchResult(500, LocaleController.getString(R.string.EditName), 0, () -> presentFragment(new ChangeNameActivity(resourcesProvider))), + new SearchResult(501, LocaleController.getString(R.string.ChangePhoneNumber), 0, () -> presentFragment(new ActionIntroActivity(ActionIntroActivity.ACTION_TYPE_CHANGE_PHONE_NUMBER))), + new SearchResult(502, LocaleController.getString(R.string.AddAnotherAccount), 0, () -> { int freeAccount; for (int account = 0; ; account++) { if (!SharedConfig.activeAccounts.contains(account)) { @@ -12553,46 +12591,46 @@ private SearchResult[] onCreateSearchArray() { presentFragment(new LoginActivity(freeAccount)); } }), - new SearchResult(503, LocaleController.getString("UserBio", R.string.UserBio), 0, () -> { + new SearchResult(503, getString(R.string.UserBio), 0, () -> { if (userInfo != null) { presentFragment(new ChangeBioActivity()); } }), - new SearchResult(504, LocaleController.getString(R.string.AddPhoto), 0, ProfileActivity.this::onWriteButtonClick), - - new SearchResult(1, LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), - new SearchResult(2, LocaleController.getString("NotificationsPrivateChats", R.string.NotificationsPrivateChats), LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsCustomSettingsActivity(NotificationsController.TYPE_PRIVATE, new ArrayList<>(), null, true))), - new SearchResult(3, LocaleController.getString("NotificationsGroups", R.string.NotificationsGroups), LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsCustomSettingsActivity(NotificationsController.TYPE_GROUP, new ArrayList<>(), null, true))), - new SearchResult(4, LocaleController.getString("NotificationsChannels", R.string.NotificationsChannels), LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsCustomSettingsActivity(NotificationsController.TYPE_CHANNEL, new ArrayList<>(), null, true))), - new SearchResult(5, LocaleController.getString("VoipNotificationSettings", R.string.VoipNotificationSettings), "callsSectionRow", LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), - new SearchResult(6, LocaleController.getString("BadgeNumber", R.string.BadgeNumber), "badgeNumberSection", LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), - new SearchResult(7, LocaleController.getString("InAppNotifications", R.string.InAppNotifications), "inappSectionRow", LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), - new SearchResult(8, LocaleController.getString("ContactJoined", R.string.ContactJoined), "contactJoinedRow", LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), - new SearchResult(9, LocaleController.getString("PinnedMessages", R.string.PinnedMessages), "pinnedMessageRow", LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), - new SearchResult(10, LocaleController.getString("ResetAllNotifications", R.string.ResetAllNotifications), "resetNotificationsRow", LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), - new SearchResult(11, LocaleController.getString(R.string.NotificationsService), "notificationsServiceRow", LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), - new SearchResult(12, LocaleController.getString(R.string.NotificationsServiceConnection), "notificationsServiceConnectionRow", LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), - new SearchResult(13, LocaleController.getString(R.string.RepeatNotifications), "repeatRow", LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), - - new SearchResult(100, LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacySettingsActivity())), - new SearchResult(109, LocaleController.getString("TwoStepVerification", R.string.TwoStepVerification), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new TwoStepVerificationActivity())), - new SearchResult(124, LocaleController.getString(R.string.AutoDeleteMessages), LocaleController.getString(R.string.PrivacySettings), R.drawable.msg2_secret, () -> { + new SearchResult(504, getString(R.string.AddPhoto), 0, ProfileActivity.this::onWriteButtonClick), + + new SearchResult(1, getString(R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), + new SearchResult(2, getString(R.string.NotificationsPrivateChats), getString(R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsCustomSettingsActivity(NotificationsController.TYPE_PRIVATE, new ArrayList<>(), null, true))), + new SearchResult(3, getString(R.string.NotificationsGroups), getString(R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsCustomSettingsActivity(NotificationsController.TYPE_GROUP, new ArrayList<>(), null, true))), + new SearchResult(4, getString(R.string.NotificationsChannels), getString(R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsCustomSettingsActivity(NotificationsController.TYPE_CHANNEL, new ArrayList<>(), null, true))), + new SearchResult(5, getString(R.string.VoipNotificationSettings), "callsSectionRow", getString(R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), + new SearchResult(6, getString(R.string.BadgeNumber), "badgeNumberSection", getString(R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), + new SearchResult(7, getString(R.string.InAppNotifications), "inappSectionRow", getString(R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), + new SearchResult(8, getString(R.string.ContactJoined), "contactJoinedRow", getString(R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), + new SearchResult(9, getString(R.string.PinnedMessages), "pinnedMessageRow", getString(R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), + new SearchResult(10, getString(R.string.ResetAllNotifications), "resetNotificationsRow", getString(R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), + new SearchResult(11, getString(R.string.NotificationsService), "notificationsServiceRow", getString(R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), + new SearchResult(12, getString(R.string.NotificationsServiceConnection), "notificationsServiceConnectionRow", getString(R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), + new SearchResult(13, getString(R.string.RepeatNotifications), "repeatRow", getString(R.string.NotificationsAndSounds), R.drawable.msg_notifications, () -> presentFragment(new NotificationsSettingsActivity())), + + new SearchResult(100, getString(R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacySettingsActivity())), + new SearchResult(109, getString(R.string.TwoStepVerification), getString(R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new TwoStepVerificationActivity())), + new SearchResult(124, getString(R.string.AutoDeleteMessages), getString(R.string.PrivacySettings), R.drawable.msg2_secret, () -> { if (getUserConfig().getGlobalTTl() >= 0) { presentFragment(new AutoDeleteMessagesActivity()); } }), - new SearchResult(108, LocaleController.getString("Passcode", R.string.Passcode), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(PasscodeActivity.determineOpenFragment())), - SharedConfig.hasEmailLogin ? new SearchResult(125, LocaleController.getString(R.string.EmailLogin), "emailLoginRow", LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())) : null, - new SearchResult(101, LocaleController.getString("BlockedUsers", R.string.BlockedUsers), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyUsersActivity().loadBlocked())), - new SearchResult(110, LocaleController.getString("SessionsTitle", R.string.SessionsTitle), R.drawable.msg2_secret, () -> presentFragment(new SessionsActivity(0))), - new SearchResult(105, LocaleController.getString("PrivacyPhone", R.string.PrivacyPhone), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_PHONE, true))), - new SearchResult(102, LocaleController.getString("PrivacyLastSeen", R.string.PrivacyLastSeen), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_LASTSEEN, true))), - new SearchResult(103, LocaleController.getString("PrivacyProfilePhoto", R.string.PrivacyProfilePhoto), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_PHOTO, true))), - new SearchResult(104, LocaleController.getString("PrivacyForwards", R.string.PrivacyForwards), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_FORWARDS, true))), - new SearchResult(122, LocaleController.getString("PrivacyP2P", R.string.PrivacyP2P), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_P2P, true))), - new SearchResult(106, LocaleController.getString("Calls", R.string.Calls), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_CALLS, true))), - new SearchResult(107, LocaleController.getString("PrivacyInvites", R.string.PrivacyInvites), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_INVITE, true))), - new SearchResult(123, LocaleController.getString("PrivacyVoiceMessages", R.string.PrivacyVoiceMessages), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg_secret, () -> { + new SearchResult(108, getString(R.string.Passcode), getString(R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(PasscodeActivity.determineOpenFragment())), + SharedConfig.hasEmailLogin ? new SearchResult(125, getString(R.string.EmailLogin), "emailLoginRow", getString(R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())) : null, + new SearchResult(101, getString(R.string.BlockedUsers), getString(R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyUsersActivity().loadBlocked())), + new SearchResult(110, getString(R.string.SessionsTitle), R.drawable.msg2_secret, () -> presentFragment(new SessionsActivity(0))), + new SearchResult(105, getString(R.string.PrivacyPhone), getString(R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_PHONE, true))), + new SearchResult(102, getString(R.string.PrivacyLastSeen), getString(R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_LASTSEEN, true))), + new SearchResult(103, getString(R.string.PrivacyProfilePhoto), getString(R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_PHOTO, true))), + new SearchResult(104, getString(R.string.PrivacyForwards), getString(R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_FORWARDS, true))), + new SearchResult(122, getString(R.string.PrivacyP2P), getString(R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_P2P, true))), + new SearchResult(106, getString(R.string.Calls), getString(R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_CALLS, true))), + new SearchResult(107, getString(R.string.PrivacyInvites), getString(R.string.PrivacySettings), R.drawable.msg_secret, () -> presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_INVITE, true))), + new SearchResult(123, getString(R.string.PrivacyVoiceMessages), getString(R.string.PrivacySettings), R.drawable.msg_secret, () -> { if (!getUserConfig().isPremium()) { try { if (!NekoConfig.disableVibration.Bool()) @@ -12605,200 +12643,202 @@ private SearchResult[] onCreateSearchArray() { } presentFragment(new PrivacyControlActivity(ContactsController.PRIVACY_RULES_TYPE_VOICE_MESSAGES, true)); }), - getMessagesController().autoarchiveAvailable ? new SearchResult(121, LocaleController.getString("ArchiveAndMute", R.string.ArchiveAndMute), "newChatsRow", LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())) : null, - new SearchResult(112, LocaleController.getString("DeleteAccountIfAwayFor2", R.string.DeleteAccountIfAwayFor2), "deleteAccountRow", LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())), - new SearchResult(113, LocaleController.getString("PrivacyPaymentsClear", R.string.PrivacyPaymentsClear), "paymentsClearRow", LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())), - new SearchResult(114, LocaleController.getString("WebSessionsTitle", R.string.WebSessionsTitle), LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new SessionsActivity(1))), - new SearchResult(115, LocaleController.getString("SyncContactsDelete", R.string.SyncContactsDelete), "contactsDeleteRow", LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())), - new SearchResult(116, LocaleController.getString("SyncContacts", R.string.SyncContacts), "contactsSyncRow", LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())), - new SearchResult(117, LocaleController.getString("SuggestContacts", R.string.SuggestContacts), "contactsSuggestRow", LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())), - new SearchResult(118, LocaleController.getString("MapPreviewProvider", R.string.MapPreviewProvider), "secretMapRow", LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())), - new SearchResult(119, LocaleController.getString("SecretWebPage", R.string.SecretWebPage), "secretWebpageRow", LocaleController.getString("PrivacySettings", R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())), - - new SearchResult(120, LocaleController.getString(R.string.Devices), R.drawable.msg2_devices, () -> presentFragment(new SessionsActivity(0))), - new SearchResult(121, LocaleController.getString(R.string.TerminateAllSessions), "terminateAllSessionsRow", LocaleController.getString(R.string.Devices), R.drawable.msg2_devices, () -> presentFragment(new SessionsActivity(0))), - new SearchResult(122, LocaleController.getString(R.string.LinkDesktopDevice), LocaleController.getString(R.string.Devices), R.drawable.msg2_devices, () -> presentFragment(new SessionsActivity(0).setHighlightLinkDesktopDevice())), - - new SearchResult(200, LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), - new SearchResult(201, LocaleController.getString("DataUsage", R.string.DataUsage), "usageSectionRow", LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), - new SearchResult(202, LocaleController.getString("StorageUsage", R.string.StorageUsage), LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new CacheControlActivity())), - new SearchResult(203, LocaleController.getString("KeepMedia", R.string.KeepMedia), "keepMediaRow", LocaleController.getString("DataSettings", R.string.DataSettings), LocaleController.getString("StorageUsage", R.string.StorageUsage), R.drawable.msg2_data, () -> presentFragment(new CacheControlActivity())), - new SearchResult(204, LocaleController.getString("ClearMediaCache", R.string.ClearMediaCache), "cacheRow", LocaleController.getString("DataSettings", R.string.DataSettings), LocaleController.getString("StorageUsage", R.string.StorageUsage), R.drawable.msg2_data, () -> presentFragment(new CacheControlActivity())), - new SearchResult(205, LocaleController.getString("LocalDatabase", R.string.LocalDatabase), "databaseRow", LocaleController.getString("DataSettings", R.string.DataSettings), LocaleController.getString("StorageUsage", R.string.StorageUsage), R.drawable.msg2_data, () -> presentFragment(new CacheControlActivity())), - new SearchResult(206, LocaleController.getString("NetworkUsage", R.string.NetworkUsage), LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataUsage2Activity())), - new SearchResult(207, LocaleController.getString("AutomaticMediaDownload", R.string.AutomaticMediaDownload), "mediaDownloadSectionRow", LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), - new SearchResult(208, LocaleController.getString("WhenUsingMobileData", R.string.WhenUsingMobileData), LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataAutoDownloadActivity(0))), - new SearchResult(209, LocaleController.getString("WhenConnectedOnWiFi", R.string.WhenConnectedOnWiFi), LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataAutoDownloadActivity(1))), - new SearchResult(210, LocaleController.getString("WhenRoaming", R.string.WhenRoaming), LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataAutoDownloadActivity(2))), - new SearchResult(211, LocaleController.getString("ResetAutomaticMediaDownload", R.string.ResetAutomaticMediaDownload), "resetDownloadRow", LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), - new SearchResult(215, LocaleController.getString("Streaming", R.string.Streaming), "streamSectionRow", LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), - new SearchResult(216, LocaleController.getString("EnableStreaming", R.string.EnableStreaming), "enableStreamRow", LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), - new SearchResult(217, LocaleController.getString("Calls", R.string.Calls), "callsSectionRow", LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), - new SearchResult(218, LocaleController.getString("VoipUseLessData", R.string.VoipUseLessData), "useLessDataForCallsRow", LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), - new SearchResult(219, LocaleController.getString("VoipQuickReplies", R.string.VoipQuickReplies), "quickRepliesRow", LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), - new SearchResult(220, LocaleController.getString("ProxySettings", R.string.ProxySettings), LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new ProxyListActivity())), - new SearchResult(221, LocaleController.getString("UseProxyForCalls", R.string.UseProxyForCalls), "callsRow", LocaleController.getString("DataSettings", R.string.DataSettings), LocaleController.getString("ProxySettings", R.string.ProxySettings), R.drawable.msg2_data, () -> presentFragment(new ProxyListActivity())), - new SearchResult(111, LocaleController.getString("PrivacyDeleteCloudDrafts", R.string.PrivacyDeleteCloudDrafts), "clearDraftsRow", LocaleController.getString("DataSettings", R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), - new SearchResult(222, LocaleController.getString(R.string.SaveToGallery), "saveToGallerySectionRow", LocaleController.getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), - new SearchResult(223, LocaleController.getString(R.string.SaveToGalleryPrivate), "saveToGalleryPeerRow", LocaleController.getString(R.string.DataSettings), LocaleController.getString(R.string.SaveToGallery), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), - new SearchResult(224, LocaleController.getString(R.string.SaveToGalleryGroups), "saveToGalleryGroupsRow", LocaleController.getString(R.string.DataSettings), LocaleController.getString(R.string.SaveToGallery), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), - new SearchResult(225, LocaleController.getString(R.string.SaveToGalleryChannels), "saveToGalleryChannelsRow", LocaleController.getString(R.string.DataSettings), LocaleController.getString(R.string.SaveToGallery), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), - - new SearchResult(300, LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - new SearchResult(301, LocaleController.getString("TextSizeHeader", R.string.TextSizeHeader), "textSizeHeaderRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - new SearchResult(302, LocaleController.getString(R.string.ChangeChatBackground), LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new WallpapersListActivity(WallpapersListActivity.TYPE_ALL))), - new SearchResult(303, LocaleController.getString("SetColor", R.string.SetColor), null, LocaleController.getString("ChatSettings", R.string.ChatSettings), LocaleController.getString("ChatBackground", R.string.ChatBackground), R.drawable.msg2_discussion, () -> presentFragment(new WallpapersListActivity(WallpapersListActivity.TYPE_COLOR))), - new SearchResult(304, LocaleController.getString("ResetChatBackgrounds", R.string.ResetChatBackgrounds), "resetRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), LocaleController.getString("ChatBackground", R.string.ChatBackground), R.drawable.msg2_discussion, () -> presentFragment(new WallpapersListActivity(WallpapersListActivity.TYPE_ALL))), - new SearchResult(306, LocaleController.getString("ColorTheme", R.string.ColorTheme), "themeHeaderRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - new SearchResult(319, LocaleController.getString(R.string.BrowseThemes), null, LocaleController.getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_THEMES_BROWSER))), - new SearchResult(320, LocaleController.getString(R.string.CreateNewTheme), "createNewThemeRow", LocaleController.getString(R.string.ChatSettings), LocaleController.getString(R.string.BrowseThemes), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_THEMES_BROWSER))), - new SearchResult(321, LocaleController.getString(R.string.BubbleRadius), "bubbleRadiusHeaderRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - new SearchResult(322, LocaleController.getString(R.string.ChatList), "chatListHeaderRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - new SearchResult(323, LocaleController.getString(R.string.ChatListSwipeGesture), "swipeGestureHeaderRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - new SearchResult(324, LocaleController.getString(R.string.AppIcon), "appIconHeaderRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - new SearchResult(305, LocaleController.getString("AutoNightTheme", R.string.AutoNightTheme), LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_NIGHT))), - new SearchResult(328, LocaleController.getString(R.string.NextMediaTap), "nextMediaTapRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - new SearchResult(327, LocaleController.getString(R.string.RaiseToListen), "raiseToListenRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - new SearchResult(310, LocaleController.getString("RaiseToSpeak", R.string.RaiseToSpeak), "raiseToSpeakRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - new SearchResult(326, LocaleController.getString(R.string.PauseMusicOnMedia), "pauseOnMediaRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - new SearchResult(325, LocaleController.getString(R.string.MicrophoneForVoiceMessages), "bluetoothScoRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - new SearchResult(308, LocaleController.getString("DirectShare", R.string.DirectShare), "directShareRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - new SearchResult(311, LocaleController.getString("SendByEnter", R.string.SendByEnter), "sendByEnterRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - new SearchResult(318, LocaleController.getString("DistanceUnits", R.string.DistanceUnits), "distanceRow", LocaleController.getString("ChatSettings", R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), - - new SearchResult(600, LocaleController.getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), - new SearchResult(601, LocaleController.getString("SuggestStickers", R.string.SuggestStickers), "suggestRow", LocaleController.getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), - new SearchResult(602, LocaleController.getString("FeaturedStickers", R.string.FeaturedStickers), "featuredStickersHeaderRow", LocaleController.getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), - new SearchResult(603, LocaleController.getString("Masks", R.string.Masks), null, LocaleController.getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_MASK, null))), - new SearchResult(604, LocaleController.getString("ArchivedStickers", R.string.ArchivedStickers), null, LocaleController.getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new ArchivedStickersActivity(MediaDataController.TYPE_IMAGE))), - new SearchResult(605, LocaleController.getString("ArchivedMasks", R.string.ArchivedMasks), null, LocaleController.getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new ArchivedStickersActivity(MediaDataController.TYPE_MASK))), - new SearchResult(606, LocaleController.getString(R.string.LargeEmoji), "largeEmojiRow", LocaleController.getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), - new SearchResult(607, LocaleController.getString(R.string.LoopAnimatedStickers), "loopRow", LocaleController.getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), - new SearchResult(608, LocaleController.getString(R.string.Emoji), null, LocaleController.getString(R.string.StickersName), R.drawable.input_smile, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_EMOJIPACKS, null))), - new SearchResult(609, LocaleController.getString(R.string.SuggestAnimatedEmoji), "suggestAnimatedEmojiRow", LocaleController.getString(R.string.StickersName), LocaleController.getString(R.string.Emoji), R.drawable.input_smile, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_EMOJIPACKS, null))), - new SearchResult(610, LocaleController.getString(R.string.FeaturedEmojiPacks), "featuredStickersHeaderRow", LocaleController.getString(R.string.StickersName), LocaleController.getString(R.string.Emoji), R.drawable.input_smile, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_EMOJIPACKS, null))), - new SearchResult(611, LocaleController.getString(R.string.DoubleTapSetting), null, LocaleController.getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new ReactionsDoubleTapManageActivity())), - - new SearchResult(700, LocaleController.getString(R.string.Filters), null, R.drawable.msg2_folder, () -> presentFragment(new FiltersSetupActivity())), - new SearchResult(701, LocaleController.getString(R.string.CreateNewFilter), "createFilterRow", LocaleController.getString(R.string.Filters), R.drawable.msg2_folder, () -> presentFragment(new FiltersSetupActivity())), - - new SearchResult(600, LocaleController.getString(R.string.StickersName), R.drawable.msg_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), - new SearchResult(601, LocaleController.getString("SuggestStickers", R.string.SuggestStickers), "suggestRow", LocaleController.getString(R.string.StickersName), R.drawable.msg_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), - new SearchResult(602, LocaleController.getString("FeaturedStickers", R.string.FeaturedStickers), "featuredStickersHeaderRow", LocaleController.getString(R.string.StickersName), R.drawable.msg_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), - new SearchResult(603, LocaleController.getString("Masks", R.string.Masks), null, LocaleController.getString(R.string.StickersName), R.drawable.msg_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_MASK, null))), - new SearchResult(604, LocaleController.getString("ArchivedStickers", R.string.ArchivedStickers), null, LocaleController.getString(R.string.StickersName), R.drawable.msg_sticker, () -> presentFragment(new ArchivedStickersActivity(MediaDataController.TYPE_IMAGE))), - new SearchResult(605, LocaleController.getString("ArchivedMasks", R.string.ArchivedMasks), null, LocaleController.getString(R.string.StickersName), R.drawable.msg_sticker, () -> presentFragment(new ArchivedStickersActivity(MediaDataController.TYPE_MASK))), - new SearchResult(606, LocaleController.getString(R.string.LargeEmoji), "largeEmojiRow", LocaleController.getString(R.string.StickersName), R.drawable.msg_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), - new SearchResult(607, LocaleController.getString(R.string.LoopAnimatedStickers), "loopRow", LocaleController.getString(R.string.StickersName), R.drawable.msg_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), - new SearchResult(608, LocaleController.getString(R.string.Emoji), null, LocaleController.getString(R.string.StickersName), R.drawable.input_smile, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_EMOJIPACKS, null))), - new SearchResult(609, LocaleController.getString(R.string.SuggestAnimatedEmoji), "suggestAnimatedEmojiRow", LocaleController.getString(R.string.StickersName), LocaleController.getString(R.string.Emoji), R.drawable.input_smile, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_EMOJIPACKS, null))), - new SearchResult(610, LocaleController.getString(R.string.FeaturedEmojiPacks), "featuredStickersHeaderRow", LocaleController.getString(R.string.StickersName), LocaleController.getString(R.string.Emoji), R.drawable.input_smile, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_EMOJIPACKS, null))), - new SearchResult(611, LocaleController.getString(R.string.DoubleTapSetting), null, LocaleController.getString(R.string.StickersName), R.drawable.msg_sticker, () -> presentFragment(new ReactionsDoubleTapManageActivity())), - - new SearchResult(900, LocaleController.getString(R.string.PowerUsage), null, R.drawable.msg2_battery, () -> presentFragment(new LiteModeSettingsActivity())), - new SearchResult(901, LocaleController.getString(R.string.LiteOptionsStickers), LocaleController.getString(R.string.PowerUsage), R.drawable.msg2_battery, () -> { + getMessagesController().autoarchiveAvailable ? new SearchResult(121, getString(R.string.ArchiveAndMute), "newChatsRow", getString(R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())) : null, + new SearchResult(112, getString(R.string.DeleteAccountIfAwayFor2), "deleteAccountRow", getString(R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())), + new SearchResult(113, getString(R.string.PrivacyPaymentsClear), "paymentsClearRow", getString(R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())), + new SearchResult(114, getString(R.string.WebSessionsTitle), getString(R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new SessionsActivity(1))), + new SearchResult(115, getString(R.string.SyncContactsDelete), "contactsDeleteRow", getString(R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())), + new SearchResult(116, getString(R.string.SyncContacts), "contactsSyncRow", getString(R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())), + new SearchResult(117, getString(R.string.SuggestContacts), "contactsSuggestRow", getString(R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())), + new SearchResult(118, getString(R.string.MapPreviewProvider), "secretMapRow", getString(R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())), + new SearchResult(119, getString(R.string.SecretWebPage), "secretWebpageRow", getString(R.string.PrivacySettings), R.drawable.msg2_secret, () -> presentFragment(new PrivacySettingsActivity())), + + new SearchResult(120, getString(R.string.Devices), R.drawable.msg2_devices, () -> presentFragment(new SessionsActivity(0))), + new SearchResult(121, getString(R.string.TerminateAllSessions), "terminateAllSessionsRow", getString(R.string.Devices), R.drawable.msg2_devices, () -> presentFragment(new SessionsActivity(0))), + new SearchResult(122, getString(R.string.LinkDesktopDevice), getString(R.string.Devices), R.drawable.msg2_devices, () -> presentFragment(new SessionsActivity(0).setHighlightLinkDesktopDevice())), + + new SearchResult(200, getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), + new SearchResult(201, getString(R.string.DataUsage), "usageSectionRow", getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), + new SearchResult(202, getString(R.string.StorageUsage), getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new CacheControlActivity())), + new SearchResult(203, getString(R.string.KeepMedia), "keepMediaRow", getString(R.string.DataSettings), getString(R.string.StorageUsage), R.drawable.msg2_data, () -> presentFragment(new CacheControlActivity())), + new SearchResult(204, getString(R.string.ClearMediaCache), "cacheRow", getString(R.string.DataSettings), getString(R.string.StorageUsage), R.drawable.msg2_data, () -> presentFragment(new CacheControlActivity())), + new SearchResult(205, getString(R.string.LocalDatabase), "databaseRow", getString(R.string.DataSettings), getString(R.string.StorageUsage), R.drawable.msg2_data, () -> presentFragment(new CacheControlActivity())), + new SearchResult(206, getString(R.string.NetworkUsage), getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataUsage2Activity())), + new SearchResult(207, getString(R.string.AutomaticMediaDownload), "mediaDownloadSectionRow", getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), + new SearchResult(208, getString(R.string.WhenUsingMobileData), getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataAutoDownloadActivity(0))), + new SearchResult(209, getString(R.string.WhenConnectedOnWiFi), getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataAutoDownloadActivity(1))), + new SearchResult(210, getString(R.string.WhenRoaming), getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataAutoDownloadActivity(2))), + new SearchResult(211, getString(R.string.ResetAutomaticMediaDownload), "resetDownloadRow", getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), + new SearchResult(215, getString(R.string.Streaming), "streamSectionRow", getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), + new SearchResult(216, getString(R.string.EnableStreaming), "enableStreamRow", getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), + new SearchResult(217, getString(R.string.Calls), "callsSectionRow", getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), + new SearchResult(218, getString(R.string.VoipUseLessData), "useLessDataForCallsRow", getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), + new SearchResult(219, getString(R.string.VoipQuickReplies), "quickRepliesRow", getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), + new SearchResult(220, getString(R.string.ProxySettings), getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new ProxyListActivity())), + new SearchResult(221, getString(R.string.UseProxyForCalls), "callsRow", getString(R.string.DataSettings), getString(R.string.ProxySettings), R.drawable.msg2_data, () -> presentFragment(new ProxyListActivity())), + new SearchResult(111, getString(R.string.PrivacyDeleteCloudDrafts), "clearDraftsRow", getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), + new SearchResult(222, getString(R.string.SaveToGallery), "saveToGallerySectionRow", getString(R.string.DataSettings), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), + new SearchResult(223, getString(R.string.SaveToGalleryPrivate), "saveToGalleryPeerRow", getString(R.string.DataSettings), getString(R.string.SaveToGallery), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), + new SearchResult(224, getString(R.string.SaveToGalleryGroups), "saveToGalleryGroupsRow", getString(R.string.DataSettings), getString(R.string.SaveToGallery), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), + new SearchResult(225, getString(R.string.SaveToGalleryChannels), "saveToGalleryChannelsRow", getString(R.string.DataSettings), getString(R.string.SaveToGallery), R.drawable.msg2_data, () -> presentFragment(new DataSettingsActivity())), + + new SearchResult(300, getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + new SearchResult(301, getString(R.string.TextSizeHeader), "textSizeHeaderRow", getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + new SearchResult(302, getString(R.string.ChangeChatBackground), getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new WallpapersListActivity(WallpapersListActivity.TYPE_ALL))), + new SearchResult(303, getString(R.string.SetColor), null, getString(R.string.ChatSettings), getString(R.string.ChatBackground), R.drawable.msg2_discussion, () -> presentFragment(new WallpapersListActivity(WallpapersListActivity.TYPE_COLOR))), + new SearchResult(304, getString(R.string.ResetChatBackgrounds), "resetRow", getString(R.string.ChatSettings), getString(R.string.ChatBackground), R.drawable.msg2_discussion, () -> presentFragment(new WallpapersListActivity(WallpapersListActivity.TYPE_ALL))), + new SearchResult(306, getString(R.string.ColorTheme), "themeHeaderRow", getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + new SearchResult(319, getString(R.string.BrowseThemes), null, getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_THEMES_BROWSER))), + new SearchResult(320, getString(R.string.CreateNewTheme), "createNewThemeRow", getString(R.string.ChatSettings), getString(R.string.BrowseThemes), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_THEMES_BROWSER))), + new SearchResult(321, getString(R.string.BubbleRadius), "bubbleRadiusHeaderRow", getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + new SearchResult(322, getString(R.string.ChatList), "chatListHeaderRow", getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + new SearchResult(323, getString(R.string.ChatListSwipeGesture), "swipeGestureHeaderRow", getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + new SearchResult(324, getString(R.string.AppIcon), "appIconHeaderRow", getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + new SearchResult(305, getString(R.string.AutoNightTheme), getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_NIGHT))), + new SearchResult(328, getString(R.string.NextMediaTap), "nextMediaTapRow", getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + new SearchResult(327, getString(R.string.RaiseToListen), "raiseToListenRow", getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + new SearchResult(310, getString(R.string.RaiseToSpeak), "raiseToSpeakRow", getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + new SearchResult(326, getString(R.string.PauseMusicOnMedia), "pauseOnMediaRow", getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + new SearchResult(325, getString(R.string.MicrophoneForVoiceMessages), "bluetoothScoRow", getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + new SearchResult(308, getString(R.string.DirectShare), "directShareRow", getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + new SearchResult(311, getString(R.string.SendByEnter), "sendByEnterRow", getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + new SearchResult(318, getString(R.string.DistanceUnits), "distanceRow", getString(R.string.ChatSettings), R.drawable.msg2_discussion, () -> presentFragment(new ThemeActivity(ThemeActivity.THEME_TYPE_BASIC))), + + new SearchResult(600, getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), + new SearchResult(601, getString(R.string.SuggestStickers), "suggestRow", getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), + new SearchResult(602, getString(R.string.FeaturedStickers), "featuredStickersHeaderRow", getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), + new SearchResult(603, getString(R.string.Masks), null, getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_MASK, null))), + new SearchResult(604, getString(R.string.ArchivedStickers), null, getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new ArchivedStickersActivity(MediaDataController.TYPE_IMAGE))), + new SearchResult(605, getString(R.string.ArchivedMasks), null, getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new ArchivedStickersActivity(MediaDataController.TYPE_MASK))), + new SearchResult(606, getString(R.string.LargeEmoji), "largeEmojiRow", getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), + new SearchResult(607, getString(R.string.LoopAnimatedStickers), "loopRow", getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_IMAGE, null))), + new SearchResult(608, getString(R.string.Emoji), null, getString(R.string.StickersName), R.drawable.input_smile, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_EMOJIPACKS, null))), + new SearchResult(609, getString(R.string.SuggestAnimatedEmoji), "suggestAnimatedEmojiRow", getString(R.string.StickersName), getString(R.string.Emoji), R.drawable.input_smile, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_EMOJIPACKS, null))), + new SearchResult(610, getString(R.string.FeaturedEmojiPacks), "featuredStickersHeaderRow", getString(R.string.StickersName), getString(R.string.Emoji), R.drawable.input_smile, () -> presentFragment(new StickersActivity(MediaDataController.TYPE_EMOJIPACKS, null))), + new SearchResult(611, getString(R.string.DoubleTapSetting), null, getString(R.string.StickersName), R.drawable.msg2_sticker, () -> presentFragment(new ReactionsDoubleTapManageActivity())), + + new SearchResult(700, getString(R.string.Filters), null, R.drawable.msg2_folder, () -> presentFragment(new FiltersSetupActivity())), + new SearchResult(701, getString(R.string.CreateNewFilter), "createFilterRow", getString(R.string.Filters), R.drawable.msg2_folder, () -> presentFragment(new FiltersSetupActivity())), + + isPremiumFeatureAvailable(-1) ? new SearchResult(800, getString(R.string.TelegramPremium), R.drawable.msg_settings_premium, () -> presentFragment(new PremiumPreviewFragment("settings"))) : null, + isPremiumFeatureAvailable(PremiumPreviewFragment.PREMIUM_FEATURE_LIMITS) ? new SearchResult(801, getString(R.string.PremiumPreviewLimits), getString(R.string.TelegramPremium), R.drawable.msg_settings_premium, () -> showDialog(new PremiumFeatureBottomSheet(ProfileActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_LIMITS, false).setForceAbout())) : null, + isPremiumFeatureAvailable(PremiumPreviewFragment.PREMIUM_FEATURE_ANIMATED_EMOJI) ? new SearchResult(802, getString(R.string.PremiumPreviewEmoji), getString(R.string.TelegramPremium), R.drawable.msg_settings_premium, () -> showDialog(new PremiumFeatureBottomSheet(ProfileActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_ANIMATED_EMOJI, false).setForceAbout())) : null, + isPremiumFeatureAvailable(PremiumPreviewFragment.PREMIUM_FEATURE_UPLOAD_LIMIT) ? new SearchResult(803, getString(R.string.PremiumPreviewUploads), getString(R.string.TelegramPremium), R.drawable.msg_settings_premium, () -> showDialog(new PremiumFeatureBottomSheet(ProfileActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_UPLOAD_LIMIT, false).setForceAbout())) : null, + isPremiumFeatureAvailable(PremiumPreviewFragment.PREMIUM_FEATURE_DOWNLOAD_SPEED) ? new SearchResult(804, getString(R.string.PremiumPreviewDownloadSpeed), getString(R.string.TelegramPremium), R.drawable.msg_settings_premium, () -> showDialog(new PremiumFeatureBottomSheet(ProfileActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_DOWNLOAD_SPEED, false).setForceAbout())) : null, + isPremiumFeatureAvailable(PremiumPreviewFragment.PREMIUM_FEATURE_VOICE_TO_TEXT) ? new SearchResult(805, getString(R.string.PremiumPreviewVoiceToText), getString(R.string.TelegramPremium), R.drawable.msg_settings_premium, () -> showDialog(new PremiumFeatureBottomSheet(ProfileActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_VOICE_TO_TEXT, false).setForceAbout())) : null, + isPremiumFeatureAvailable(PremiumPreviewFragment.PREMIUM_FEATURE_ADS) ? new SearchResult(806, getString(R.string.PremiumPreviewNoAds), getString(R.string.TelegramPremium), R.drawable.msg_settings_premium, () -> showDialog(new PremiumFeatureBottomSheet(ProfileActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_ADS, false).setForceAbout())) : null, + isPremiumFeatureAvailable(PremiumPreviewFragment.PREMIUM_FEATURE_REACTIONS) ? new SearchResult(807, getString(R.string.PremiumPreviewReactions), getString(R.string.TelegramPremium), R.drawable.msg_settings_premium, () -> showDialog(new PremiumFeatureBottomSheet(ProfileActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_REACTIONS, false).setForceAbout())) : null, + isPremiumFeatureAvailable(PremiumPreviewFragment.PREMIUM_FEATURE_STICKERS) ? new SearchResult(808, getString(R.string.PremiumPreviewStickers), getString(R.string.TelegramPremium), R.drawable.msg_settings_premium, () -> showDialog(new PremiumFeatureBottomSheet(ProfileActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_STICKERS, false).setForceAbout())) : null, + isPremiumFeatureAvailable(PremiumPreviewFragment.PREMIUM_FEATURE_ADVANCED_CHAT_MANAGEMENT) ? new SearchResult(809, getString(R.string.PremiumPreviewAdvancedChatManagement), getString(R.string.TelegramPremium), R.drawable.msg_settings_premium, () -> showDialog(new PremiumFeatureBottomSheet(ProfileActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_ADVANCED_CHAT_MANAGEMENT, false).setForceAbout())) : null, + isPremiumFeatureAvailable(PremiumPreviewFragment.PREMIUM_FEATURE_PROFILE_BADGE) ? new SearchResult(810, getString(R.string.PremiumPreviewProfileBadge), getString(R.string.TelegramPremium), R.drawable.msg_settings_premium, () -> showDialog(new PremiumFeatureBottomSheet(ProfileActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_PROFILE_BADGE, false).setForceAbout())) : null, + isPremiumFeatureAvailable(PremiumPreviewFragment.PREMIUM_FEATURE_ANIMATED_AVATARS) ? new SearchResult(811, getString(R.string.PremiumPreviewAnimatedProfiles), getString(R.string.TelegramPremium), R.drawable.msg_settings_premium, () -> showDialog(new PremiumFeatureBottomSheet(ProfileActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_ANIMATED_AVATARS, false).setForceAbout())) : null, + isPremiumFeatureAvailable(PremiumPreviewFragment.PREMIUM_FEATURE_APPLICATION_ICONS) ? new SearchResult(812, getString(R.string.PremiumPreviewAppIcon), getString(R.string.TelegramPremium), R.drawable.msg_settings_premium, () -> showDialog(new PremiumFeatureBottomSheet(ProfileActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_APPLICATION_ICONS, false).setForceAbout())) : null, + isPremiumFeatureAvailable(PremiumPreviewFragment.PREMIUM_FEATURE_EMOJI_STATUS) ? new SearchResult(813, getString(R.string.PremiumPreviewEmojiStatus), getString(R.string.TelegramPremium), R.drawable.msg_settings_premium, () -> showDialog(new PremiumFeatureBottomSheet(ProfileActivity.this, PremiumPreviewFragment.PREMIUM_FEATURE_EMOJI_STATUS, false).setForceAbout())) : null, + + new SearchResult(900, getString(R.string.PowerUsage), null, R.drawable.msg2_battery, () -> presentFragment(new LiteModeSettingsActivity())), + new SearchResult(901, getString(R.string.LiteOptionsStickers), getString(R.string.PowerUsage), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.scrollToFlags(LiteMode.FLAGS_ANIMATED_STICKERS); }), - new SearchResult(902, LocaleController.getString(R.string.LiteOptionsAutoplayKeyboard), null, LocaleController.getString(R.string.PowerUsage), LocaleController.getString(R.string.LiteOptionsStickers), R.drawable.msg2_battery, () -> { + new SearchResult(902, getString(R.string.LiteOptionsAutoplayKeyboard), null, getString(R.string.PowerUsage), getString(R.string.LiteOptionsStickers), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.setExpanded(LiteMode.FLAGS_ANIMATED_STICKERS, true); set.scrollToFlags(LiteMode.FLAG_ANIMATED_STICKERS_KEYBOARD); }), - new SearchResult(903, LocaleController.getString(R.string.LiteOptionsAutoplayChat), null, LocaleController.getString(R.string.PowerUsage), LocaleController.getString(R.string.LiteOptionsStickers), R.drawable.msg2_battery, () -> { + new SearchResult(903, getString(R.string.LiteOptionsAutoplayChat), null, getString(R.string.PowerUsage), getString(R.string.LiteOptionsStickers), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.setExpanded(LiteMode.FLAGS_ANIMATED_STICKERS, true); set.scrollToFlags(LiteMode.FLAG_ANIMATED_STICKERS_CHAT); }), - new SearchResult(904, LocaleController.getString(R.string.LiteOptionsEmoji), LocaleController.getString(R.string.PowerUsage), R.drawable.msg2_battery, () -> { + new SearchResult(904, getString(R.string.LiteOptionsEmoji), getString(R.string.PowerUsage), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.scrollToFlags(LiteMode.FLAGS_ANIMATED_EMOJI); }), - new SearchResult(905, LocaleController.getString(R.string.LiteOptionsAutoplayKeyboard), null, LocaleController.getString(R.string.PowerUsage), LocaleController.getString(R.string.LiteOptionsEmoji), R.drawable.msg2_battery, () -> { + new SearchResult(905, getString(R.string.LiteOptionsAutoplayKeyboard), null, getString(R.string.PowerUsage), getString(R.string.LiteOptionsEmoji), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.setExpanded(LiteMode.FLAGS_ANIMATED_EMOJI, true); set.scrollToFlags(LiteMode.FLAG_ANIMATED_EMOJI_KEYBOARD); }), - new SearchResult(906, LocaleController.getString(R.string.LiteOptionsAutoplayReactions), null, LocaleController.getString(R.string.PowerUsage), LocaleController.getString(R.string.LiteOptionsEmoji), R.drawable.msg2_battery, () -> { + new SearchResult(906, getString(R.string.LiteOptionsAutoplayReactions), null, getString(R.string.PowerUsage), getString(R.string.LiteOptionsEmoji), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.setExpanded(LiteMode.FLAGS_ANIMATED_EMOJI, true); set.scrollToFlags(LiteMode.FLAG_ANIMATED_EMOJI_REACTIONS); }), - new SearchResult(907, LocaleController.getString(R.string.LiteOptionsAutoplayChat), null, LocaleController.getString(R.string.PowerUsage), LocaleController.getString(R.string.LiteOptionsEmoji), R.drawable.msg2_battery, () -> { + new SearchResult(907, getString(R.string.LiteOptionsAutoplayChat), null, getString(R.string.PowerUsage), getString(R.string.LiteOptionsEmoji), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.setExpanded(LiteMode.FLAGS_ANIMATED_EMOJI, true); set.scrollToFlags(LiteMode.FLAG_ANIMATED_EMOJI_CHAT); }), - new SearchResult(908, LocaleController.getString(R.string.LiteOptionsChat), LocaleController.getString(R.string.PowerUsage), R.drawable.msg2_battery, () -> { + new SearchResult(908, getString(R.string.LiteOptionsChat), getString(R.string.PowerUsage), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.scrollToFlags(LiteMode.FLAGS_CHAT); }), - new SearchResult(909, LocaleController.getString(R.string.LiteOptionsBackground), null, LocaleController.getString(R.string.PowerUsage), LocaleController.getString(R.string.LiteOptionsChat), R.drawable.msg2_battery, () -> { + new SearchResult(909, getString(R.string.LiteOptionsBackground), null, getString(R.string.PowerUsage), getString(R.string.LiteOptionsChat), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.setExpanded(LiteMode.FLAGS_CHAT, true); set.scrollToFlags(LiteMode.FLAG_CHAT_BACKGROUND); }), - new SearchResult(910, LocaleController.getString(R.string.LiteOptionsTopics), null, LocaleController.getString(R.string.PowerUsage), LocaleController.getString(R.string.LiteOptionsChat), R.drawable.msg2_battery, () -> { + new SearchResult(910, getString(R.string.LiteOptionsTopics), null, getString(R.string.PowerUsage), getString(R.string.LiteOptionsChat), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.setExpanded(LiteMode.FLAGS_CHAT, true); set.scrollToFlags(LiteMode.FLAG_CHAT_FORUM_TWOCOLUMN); }), - new SearchResult(911, LocaleController.getString(R.string.LiteOptionsSpoiler), null, LocaleController.getString(R.string.PowerUsage), LocaleController.getString(R.string.LiteOptionsChat), R.drawable.msg2_battery, () -> { + new SearchResult(911, getString(R.string.LiteOptionsSpoiler), null, getString(R.string.PowerUsage), getString(R.string.LiteOptionsChat), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.setExpanded(LiteMode.FLAGS_CHAT, true); set.scrollToFlags(LiteMode.FLAG_CHAT_SPOILER); }), - SharedConfig.getDevicePerformanceClass() >= SharedConfig.PERFORMANCE_CLASS_AVERAGE ? new SearchResult(326 /* for compatibility */, LocaleController.getString(R.string.LiteOptionsBlur), null, LocaleController.getString(R.string.PowerUsage), LocaleController.getString(R.string.LiteOptionsChat), R.drawable.msg2_battery, () -> { + SharedConfig.getDevicePerformanceClass() >= SharedConfig.PERFORMANCE_CLASS_AVERAGE ? new SearchResult(326 /* for compatibility */, getString(R.string.LiteOptionsBlur), null, getString(R.string.PowerUsage), getString(R.string.LiteOptionsChat), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.setExpanded(LiteMode.FLAGS_CHAT, true); set.scrollToFlags(LiteMode.FLAG_CHAT_BLUR); }) : null, - new SearchResult(912, LocaleController.getString(R.string.LiteOptionsScale), null, LocaleController.getString(R.string.PowerUsage), LocaleController.getString(R.string.LiteOptionsChat), R.drawable.msg2_battery, () -> { + new SearchResult(912, getString(R.string.LiteOptionsScale), null, getString(R.string.PowerUsage), getString(R.string.LiteOptionsChat), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.setExpanded(LiteMode.FLAGS_CHAT, true); set.scrollToFlags(LiteMode.FLAG_CHAT_SCALE); }), - new SearchResult(913, LocaleController.getString(R.string.LiteOptionsCalls), LocaleController.getString(R.string.PowerUsage), R.drawable.msg2_battery, () -> { + new SearchResult(913, getString(R.string.LiteOptionsCalls), getString(R.string.PowerUsage), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.scrollToFlags(LiteMode.FLAG_CALLS_ANIMATIONS); }), - new SearchResult(214 /* for compatibility */, LocaleController.getString(R.string.LiteOptionsAutoplayVideo), LocaleController.getString(R.string.PowerUsage), R.drawable.msg2_battery, () -> { + new SearchResult(214 /* for compatibility */, getString(R.string.LiteOptionsAutoplayVideo), getString(R.string.PowerUsage), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.scrollToFlags(LiteMode.FLAG_AUTOPLAY_VIDEOS); }), - new SearchResult(213 /* for compatibility */, LocaleController.getString(R.string.LiteOptionsAutoplayGifs), LocaleController.getString(R.string.PowerUsage), R.drawable.msg2_battery, () -> { + new SearchResult(213 /* for compatibility */, getString(R.string.LiteOptionsAutoplayGifs), getString(R.string.PowerUsage), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.scrollToFlags(LiteMode.FLAG_AUTOPLAY_GIFS); }), - new SearchResult(914, LocaleController.getString(R.string.LiteSmoothTransitions), LocaleController.getString(R.string.PowerUsage), R.drawable.msg2_battery, () -> { + new SearchResult(914, getString(R.string.LiteSmoothTransitions), getString(R.string.PowerUsage), R.drawable.msg2_battery, () -> { LiteModeSettingsActivity set = new LiteModeSettingsActivity(); presentFragment(set); set.scrollToType(LiteModeSettingsActivity.SWITCH_TYPE_SMOOTH_TRANSITIONS); }), - new SearchResult(400, LocaleController.getString("Language", R.string.Language), R.drawable.msg2_language, () -> presentFragment(new LanguageSelectActivity())), - new SearchResult(405, LocaleController.getString(R.string.ShowTranslateButton), LocaleController.getString(R.string.Language), R.drawable.msg2_language, () -> presentFragment(new LanguageSelectActivity())), - MessagesController.getInstance(currentAccount).getTranslateController().isContextTranslateEnabled() ? new SearchResult(406, LocaleController.getString(R.string.DoNotTranslate), LocaleController.getString(R.string.Language), R.drawable.msg2_language, () -> presentFragment(new LanguageSelectActivity())) : null, + new SearchResult(400, getString(R.string.Language), R.drawable.msg2_language, () -> presentFragment(new LanguageSelectActivity())), + new SearchResult(405, getString(R.string.ShowTranslateButton), getString(R.string.Language), R.drawable.msg2_language, () -> presentFragment(new LanguageSelectActivity())), + MessagesController.getInstance(currentAccount).getTranslateController().isContextTranslateEnabled() ? new SearchResult(406, getString(R.string.DoNotTranslate), getString(R.string.Language), R.drawable.msg2_language, () -> presentFragment(new LanguageSelectActivity())) : null, - new SearchResult(402, LocaleController.getString("AskAQuestion", R.string.AskAQuestion), LocaleController.getString("SettingsHelp", R.string.SettingsHelp), R.drawable.msg2_help, () -> showDialog(AlertsCreator.createSupportAlert(ProfileActivity.this, null))), - new SearchResult(403, LocaleController.getString("TelegramFAQ", R.string.TelegramFAQ), LocaleController.getString("SettingsHelp", R.string.SettingsHelp), R.drawable.msg2_help, () -> Browser.openUrl(getParentActivity(), LocaleController.getString("TelegramFaqUrl", R.string.TelegramFaqUrl))), - new SearchResult(404, LocaleController.getString("PrivacyPolicy", R.string.PrivacyPolicy), LocaleController.getString("SettingsHelp", R.string.SettingsHelp), R.drawable.msg2_help, () -> Browser.openUrl(getParentActivity(), LocaleController.getString("PrivacyPolicyUrl", R.string.PrivacyPolicyUrl))), + new SearchResult(402, getString(R.string.AskAQuestion), getString(R.string.SettingsHelp), R.drawable.msg2_help, () -> showDialog(AlertsCreator.createSupportAlert(ProfileActivity.this, null))), + new SearchResult(403, getString(R.string.TelegramFAQ), getString(R.string.SettingsHelp), R.drawable.msg2_help, () -> Browser.openUrl(getParentActivity(), getString(R.string.TelegramFaqUrl))), + new SearchResult(404, getString(R.string.PrivacyPolicy), getString(R.string.SettingsHelp), R.drawable.msg2_help, () -> Browser.openUrl(getParentActivity(), getString(R.string.PrivacyPolicyUrl))), }; ArrayList nagramSettings = SettingsHelper.onCreateSearchArray( fragment -> AndroidUtilities.runOnUIThread(() -> presentFragment(fragment, false, false)) @@ -12839,7 +12879,7 @@ private void loadFaqWebPage() { } loadingFaqPage = true; final TLRPC.TL_messages_getWebPage req2 = new TLRPC.TL_messages_getWebPage(); - req2.url = LocaleController.getString("TelegramFaqUrl", R.string.TelegramFaqUrl); + req2.url = LocaleController.getString(R.string.TelegramFaqUrl); req2.hash = 0; getConnectionsManager().sendRequest(req2, (response2, error2) -> { if (response2 instanceof TLRPC.TL_messages_webPage) { @@ -12875,9 +12915,9 @@ private void loadFaqWebPage() { } String[] path; if (paragraph != null) { - path = new String[]{LocaleController.getString("SettingsSearchFaq", R.string.SettingsSearchFaq), paragraph}; + path = new String[]{LocaleController.getString(R.string.SettingsSearchFaq), paragraph}; } else { - path = new String[]{LocaleController.getString("SettingsSearchFaq", R.string.SettingsSearchFaq)}; + path = new String[]{LocaleController.getString(R.string.SettingsSearchFaq)}; } arrayList.add(new MessagesController.FaqSearchResult(text, path, url)); } @@ -12958,12 +12998,12 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } case 1: { GraySectionCell sectionCell = (GraySectionCell) holder.itemView; - sectionCell.setText(LocaleController.getString("SettingsFaqSearchTitle", R.string.SettingsFaqSearchTitle)); + sectionCell.setText(LocaleController.getString(R.string.SettingsFaqSearchTitle)); break; } case 2: { HeaderCell headerCell = (HeaderCell) holder.itemView; - headerCell.setText(LocaleController.getString("SettingsRecent", R.string.SettingsRecent)); + headerCell.setText(LocaleController.getString(R.string.SettingsRecent)); break; } } @@ -13062,7 +13102,7 @@ public void search(String text) { faqSearchResults.clear(); resultNames.clear(); emptyView.stickerView.getImageReceiver().startAnimation(); - emptyView.title.setText(LocaleController.getString("SettingsNoRecent", R.string.SettingsNoRecent)); + emptyView.title.setText(getString(R.string.SettingsNoRecent)); notifyDataSetChanged(); return; } @@ -13158,7 +13198,7 @@ public void search(String text) { } if (!searchWas) { emptyView.stickerView.getImageReceiver().startAnimation(); - emptyView.title.setText(LocaleController.getString("SettingsNoResults", R.string.SettingsNoResults)); + emptyView.title.setText(LocaleController.getString(R.string.SettingsNoResults)); } searchWas = true; searchResults = results; @@ -13178,7 +13218,7 @@ public boolean isSearchWas() { private void openUrl(String url, Browser.Progress progress) { if (url.startsWith("@")) { getMessagesController().openByUserName(url.substring(1), ProfileActivity.this, 0, progress); - } else if (url.startsWith("#")) { + } else if (url.startsWith("#") || url.startsWith("$")) { DialogsActivity fragment = new DialogsActivity(null); fragment.setSearchString(url); presentFragment(fragment); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProfileNotificationsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProfileNotificationsActivity.java index b0d251b509..ddce517a42 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProfileNotificationsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProfileNotificationsActivity.java @@ -355,10 +355,10 @@ public void onItemClick(int id) { } if (addingException) { - avatarContainer.setSubtitle(LocaleController.getString("NotificationsNewException", R.string.NotificationsNewException)); - actionBar.createMenu().addItem(done_button, LocaleController.getString("Done", R.string.Done).toUpperCase()); + avatarContainer.setSubtitle(LocaleController.getString(R.string.NotificationsNewException)); + actionBar.createMenu().addItem(done_button, LocaleController.getString(R.string.Done).toUpperCase()); } else { - avatarContainer.setSubtitle(LocaleController.getString("CustomNotifications", R.string.CustomNotifications)); + avatarContainer.setSubtitle(LocaleController.getString(R.string.CustomNotifications)); } fragmentView = new FrameLayout(context); @@ -535,13 +535,13 @@ public void onActivityResultFragment(int requestCode, int resultCode, Intent dat if (rng != null) { if (requestCode == 13) { if (ringtone.equals(Settings.System.DEFAULT_RINGTONE_URI)) { - name = LocaleController.getString("DefaultRingtone", R.string.DefaultRingtone); + name = LocaleController.getString(R.string.DefaultRingtone); } else { name = rng.getTitle(getParentActivity()); } } else { if (ringtone.equals(Settings.System.DEFAULT_NOTIFICATION_URI)) { - name = LocaleController.getString("SoundDefault", R.string.SoundDefault); + name = LocaleController.getString(R.string.SoundDefault); } else { name = rng.getTitle(getParentActivity()); } @@ -751,13 +751,13 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case VIEW_TYPE_HEADER: { HeaderCell headerCell = (HeaderCell) holder.itemView; if (position == generalRow) { - headerCell.setText(LocaleController.getString("General", R.string.General)); + headerCell.setText(LocaleController.getString(R.string.General)); } else if (position == popupRow) { - headerCell.setText(LocaleController.getString("ProfilePopupNotification", R.string.ProfilePopupNotification)); + headerCell.setText(LocaleController.getString(R.string.ProfilePopupNotification)); } else if (position == ledRow) { - headerCell.setText(LocaleController.getString("NotificationsLed", R.string.NotificationsLed)); + headerCell.setText(LocaleController.getString(R.string.NotificationsLed)); } else if (position == callsRow) { - headerCell.setText(LocaleController.getString("VoipNotificationSettings", R.string.VoipNotificationSettings)); + headerCell.setText(LocaleController.getString(R.string.VoipNotificationSettings)); } break; } @@ -771,70 +771,70 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { textCell.setTextColor(getThemedColor(Theme.key_windowBackgroundWhiteBlackText)); if (position == soundRow) { - String value = preferences.getString("sound_" + key, LocaleController.getString("SoundDefault", R.string.SoundDefault)); + String value = preferences.getString("sound_" + key, LocaleController.getString(R.string.SoundDefault)); long documentId = preferences.getLong("sound_document_id_" + key, 0); if (documentId != 0) { TLRPC.Document document = getMediaDataController().ringtoneDataStore.getDocument(documentId); if (document == null) { - value = LocaleController.getString("CustomSound", R.string.CustomSound); + value = LocaleController.getString(R.string.CustomSound); } else { value = NotificationsSoundActivity.trimTitle(document, document.file_name_fixed); } } else if (value.equals("NoSound")) { - value = LocaleController.getString("NoSound", R.string.NoSound); + value = LocaleController.getString(R.string.NoSound); } else if (value.equals("Default")) { - value = LocaleController.getString("SoundDefault", R.string.SoundDefault); + value = LocaleController.getString(R.string.SoundDefault); } - textCell.setTextAndValue(LocaleController.getString("Sound", R.string.Sound), value, true); + textCell.setTextAndValue(LocaleController.getString(R.string.Sound), value, true); } else if (position == ringtoneRow) { - String value = preferences.getString("ringtone_" + key, LocaleController.getString("DefaultRingtone", R.string.DefaultRingtone)); + String value = preferences.getString("ringtone_" + key, LocaleController.getString(R.string.DefaultRingtone)); if (value.equals("NoSound")) { - value = LocaleController.getString("NoSound", R.string.NoSound); + value = LocaleController.getString(R.string.NoSound); } - textCell.setTextAndValue(LocaleController.getString("VoipSettingsRingtone", R.string.VoipSettingsRingtone), value, false); + textCell.setTextAndValue(LocaleController.getString(R.string.VoipSettingsRingtone), value, false); } else if (position == vibrateRow) { int value = preferences.getInt("vibrate_" + key, 0); if (value == 0 || value == 4) { - textCell.setTextAndValue(LocaleController.getString("Vibrate", R.string.Vibrate), LocaleController.getString("VibrationDefault", R.string.VibrationDefault), smartRow != -1 || priorityRow != -1); + textCell.setTextAndValue(LocaleController.getString(R.string.Vibrate), LocaleController.getString(R.string.VibrationDefault), smartRow != -1 || priorityRow != -1); } else if (value == 1) { - textCell.setTextAndValue(LocaleController.getString("Vibrate", R.string.Vibrate), LocaleController.getString("Short", R.string.Short), smartRow != -1 || priorityRow != -1); + textCell.setTextAndValue(LocaleController.getString(R.string.Vibrate), LocaleController.getString(R.string.Short), smartRow != -1 || priorityRow != -1); } else if (value == 2) { - textCell.setTextAndValue(LocaleController.getString("Vibrate", R.string.Vibrate), LocaleController.getString("VibrationDisabled", R.string.VibrationDisabled), smartRow != -1 || priorityRow != -1); + textCell.setTextAndValue(LocaleController.getString(R.string.Vibrate), LocaleController.getString(R.string.VibrationDisabled), smartRow != -1 || priorityRow != -1); } else if (value == 3) { - textCell.setTextAndValue(LocaleController.getString("Vibrate", R.string.Vibrate), LocaleController.getString("Long", R.string.Long), smartRow != -1 || priorityRow != -1); + textCell.setTextAndValue(LocaleController.getString(R.string.Vibrate), LocaleController.getString(R.string.Long), smartRow != -1 || priorityRow != -1); } } else if (position == priorityRow) { int value = preferences.getInt("priority_" + key, 3); if (value == 0) { - textCell.setTextAndValue(LocaleController.getString("NotificationsImportance", R.string.NotificationsImportance), LocaleController.getString("NotificationsPriorityHigh", R.string.NotificationsPriorityHigh), false); + textCell.setTextAndValue(LocaleController.getString(R.string.NotificationsImportance), LocaleController.getString(R.string.NotificationsPriorityHigh), false); } else if (value == 1 || value == 2) { - textCell.setTextAndValue(LocaleController.getString("NotificationsImportance", R.string.NotificationsImportance), LocaleController.getString("NotificationsPriorityUrgent", R.string.NotificationsPriorityUrgent), false); + textCell.setTextAndValue(LocaleController.getString(R.string.NotificationsImportance), LocaleController.getString(R.string.NotificationsPriorityUrgent), false); } else if (value == 3) { - textCell.setTextAndValue(LocaleController.getString("NotificationsImportance", R.string.NotificationsImportance), LocaleController.getString("NotificationsPrioritySettings", R.string.NotificationsPrioritySettings), false); + textCell.setTextAndValue(LocaleController.getString(R.string.NotificationsImportance), LocaleController.getString(R.string.NotificationsPrioritySettings), false); } else if (value == 4) { - textCell.setTextAndValue(LocaleController.getString("NotificationsImportance", R.string.NotificationsImportance), LocaleController.getString("NotificationsPriorityLow", R.string.NotificationsPriorityLow), false); + textCell.setTextAndValue(LocaleController.getString(R.string.NotificationsImportance), LocaleController.getString(R.string.NotificationsPriorityLow), false); } else if (value == 5) { - textCell.setTextAndValue(LocaleController.getString("NotificationsImportance", R.string.NotificationsImportance), LocaleController.getString("NotificationsPriorityMedium", R.string.NotificationsPriorityMedium), false); + textCell.setTextAndValue(LocaleController.getString(R.string.NotificationsImportance), LocaleController.getString(R.string.NotificationsPriorityMedium), false); } } else if (position == smartRow) { int notifyMaxCount = preferences.getInt("smart_max_count_" + key, 2); int notifyDelay = preferences.getInt("smart_delay_" + key, 3 * 60); if (notifyMaxCount == 0) { - textCell.setTextAndValue(LocaleController.getString("SmartNotifications", R.string.SmartNotifications), LocaleController.getString("SmartNotificationsDisabled", R.string.SmartNotificationsDisabled), priorityRow != -1); + textCell.setTextAndValue(LocaleController.getString(R.string.SmartNotifications), LocaleController.getString(R.string.SmartNotificationsDisabled), priorityRow != -1); } else { String minutes = LocaleController.formatPluralString("Minutes", notifyDelay / 60); - textCell.setTextAndValue(LocaleController.getString("SmartNotifications", R.string.SmartNotifications), LocaleController.formatString("SmartNotificationsInfo", R.string.SmartNotificationsInfo, notifyMaxCount, minutes), priorityRow != -1); + textCell.setTextAndValue(LocaleController.getString(R.string.SmartNotifications), LocaleController.formatString("SmartNotificationsInfo", R.string.SmartNotificationsInfo, notifyMaxCount, minutes), priorityRow != -1); } } else if (position == callsVibrateRow) { int value = preferences.getInt("calls_vibrate_" + key, 0); if (value == 0 || value == 4) { - textCell.setTextAndValue(LocaleController.getString("Vibrate", R.string.Vibrate), LocaleController.getString("VibrationDefault", R.string.VibrationDefault), true); + textCell.setTextAndValue(LocaleController.getString(R.string.Vibrate), LocaleController.getString(R.string.VibrationDefault), true); } else if (value == 1) { - textCell.setTextAndValue(LocaleController.getString("Vibrate", R.string.Vibrate), LocaleController.getString("Short", R.string.Short), true); + textCell.setTextAndValue(LocaleController.getString(R.string.Vibrate), LocaleController.getString(R.string.Short), true); } else if (value == 2) { - textCell.setTextAndValue(LocaleController.getString("Vibrate", R.string.Vibrate), LocaleController.getString("VibrationDisabled", R.string.VibrationDisabled), true); + textCell.setTextAndValue(LocaleController.getString(R.string.Vibrate), LocaleController.getString(R.string.VibrationDisabled), true); } else if (value == 3) { - textCell.setTextAndValue(LocaleController.getString("Vibrate", R.string.Vibrate), LocaleController.getString("Long", R.string.Long), true); + textCell.setTextAndValue(LocaleController.getString(R.string.Vibrate), LocaleController.getString(R.string.Long), true); } } } @@ -844,20 +844,20 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TextInfoPrivacyCell textCell = (TextInfoPrivacyCell) holder.itemView; textCell.setFixedSize(0); if (position == popupInfoRow) { - textCell.setText(LocaleController.getString("ProfilePopupNotificationInfo", R.string.ProfilePopupNotificationInfo)); + textCell.setText(LocaleController.getString(R.string.ProfilePopupNotificationInfo)); textCell.setBackground(Theme.getThemedDrawableByKey(context, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); } else if (position == ledInfoRow) { - textCell.setText(LocaleController.getString("NotificationsLedInfo", R.string.NotificationsLedInfo)); + textCell.setText(LocaleController.getString(R.string.NotificationsLedInfo)); textCell.setBackground(Theme.getThemedDrawableByKey(context, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); } else if (position == priorityInfoRow) { if (priorityRow == -1) { textCell.setText(""); } else { - textCell.setText(LocaleController.getString("PriorityInfo", R.string.PriorityInfo)); + textCell.setText(LocaleController.getString(R.string.PriorityInfo)); } textCell.setBackground(Theme.getThemedDrawableByKey(context, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); } else if (position == ringtoneInfoRow) { - textCell.setText(LocaleController.getString("VoipRingtoneInfo", R.string.VoipRingtoneInfo)); + textCell.setText(LocaleController.getString(R.string.VoipRingtoneInfo)); textCell.setBackground(Theme.getThemedDrawableByKey(context, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); } break; @@ -882,7 +882,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { break; } } - textCell.setTextAndColor(LocaleController.getString("NotificationsLedColor", R.string.NotificationsLedColor), color, false); + textCell.setTextAndColor(LocaleController.getString(R.string.NotificationsLedColor), color, false); break; } case VIEW_TYPE_RADIO: { @@ -899,10 +899,10 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } } if (position == popupEnabledRow) { - radioCell.setText(LocaleController.getString("PopupEnabled", R.string.PopupEnabled), popup == 1, true); + radioCell.setText(LocaleController.getString(R.string.PopupEnabled), popup == 1, true); radioCell.setTag(1); } else if (position == popupDisabledRow) { - radioCell.setText(LocaleController.getString("PopupDisabled", R.string.PopupDisabled), popup == 2, false); + radioCell.setText(LocaleController.getString(R.string.PopupDisabled), popup == 2, false); radioCell.setTag(2); } break; @@ -922,14 +922,14 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TextCheckCell checkCell = (TextCheckCell) holder.itemView; SharedPreferences preferences = MessagesController.getNotificationsSettings(currentAccount); if (position == enableRow) { - checkCell.setTextAndCheck(LocaleController.getString("Notifications", R.string.Notifications), notificationsEnabled, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.Notifications), notificationsEnabled, true); } else if (position == previewRow) { String key = NotificationsController.getSharedPrefKey(dialogId, topicId); - checkCell.setTextAndCheck(LocaleController.getString("MessagePreview", R.string.MessagePreview), preferences.getBoolean("content_preview_" + key, true), true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.MessagePreview), preferences.getBoolean("content_preview_" + key, true), true); } else if (position == storiesRow) { String key = NotificationsController.getSharedPrefKey(dialogId, topicId); boolean value = preferences.getBoolean("stories_" + key, isInTop5Peers || preferences.contains("EnableAllStories") && preferences.getBoolean("EnableAllStories", true)); - checkCell.setTextAndCheck(LocaleController.getString("StoriesSoundEnabled", R.string.StoriesSoundEnabled), value, true); + checkCell.setTextAndCheck(LocaleController.getString(R.string.StoriesSoundEnabled), value, true); } break; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java index ccc2bd704e..5f9d372d02 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java @@ -213,7 +213,7 @@ public TextDetailProxyCell(Context context) { checkImageView.setImageResource(R.drawable.msg_info); checkImageView.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText3), PorterDuff.Mode.MULTIPLY)); checkImageView.setScaleType(ImageView.ScaleType.CENTER); - checkImageView.setContentDescription(LocaleController.getString("Edit", R.string.Edit)); + checkImageView.setContentDescription(LocaleController.getString(R.string.Edit)); addView(checkImageView, LayoutHelper.createFrame(48, 48, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.TOP, 8, 8, 8, 0)); checkImageView.setOnClickListener(v -> { SharedConfig.ProxyInfo info = currentInfo; @@ -295,30 +295,30 @@ public void updateStatus() { if (currentConnectionState == ConnectionsManager.ConnectionStateConnected || currentConnectionState == ConnectionsManager.ConnectionStateUpdating) { colorKey = Theme.key_windowBackgroundWhiteBlueText6; if (currentInfo.ping != 0) { - valueTextView.setText(LocaleController.getString("Connected", R.string.Connected) + ", " + LocaleController.formatString("Ping", R.string.Ping, currentInfo.ping)); + valueTextView.setText(LocaleController.getString(R.string.Connected) + ", " + LocaleController.formatString("Ping", R.string.Ping, currentInfo.ping)); } else { - valueTextView.setText(LocaleController.getString("Connected", R.string.Connected)); + valueTextView.setText(LocaleController.getString(R.string.Connected)); } if (!currentInfo.checking && !currentInfo.available) { currentInfo.availableCheckTime = 0; } } else { colorKey = Theme.key_windowBackgroundWhiteGrayText2; - valueTextView.setText(LocaleController.getString("Connecting", R.string.Connecting)); + valueTextView.setText(LocaleController.getString(R.string.Connecting)); } } else { if (currentInfo.checking) { - valueTextView.setText(LocaleController.getString("Checking", R.string.Checking)); + valueTextView.setText(LocaleController.getString(R.string.Checking)); colorKey = Theme.key_windowBackgroundWhiteGrayText2; } else if (currentInfo.available) { if (currentInfo.ping != 0) { - valueTextView.setText(LocaleController.getString("Available", R.string.Available) + ", " + LocaleController.formatString("Ping", R.string.Ping, currentInfo.ping)); + valueTextView.setText(LocaleController.getString(R.string.Available) + ", " + LocaleController.formatString("Ping", R.string.Ping, currentInfo.ping)); } else { - valueTextView.setText(LocaleController.getString("Available", R.string.Available)); + valueTextView.setText(LocaleController.getString(R.string.Available)); } colorKey = Theme.key_windowBackgroundWhiteGreenText; } else { - valueTextView.setText(LocaleController.getString("Unavailable", R.string.Unavailable)); + valueTextView.setText(LocaleController.getString(R.string.Unavailable)); colorKey = Theme.key_text_RedRegular; } } @@ -632,7 +632,7 @@ public static String processProxyListFile(Context ctx, File proxyListFile) { public View createView(Context context) { actionBar.setBackButtonDrawable(new BackDrawable(false)); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("ProxySettings", R.string.ProxySettings)); + actionBar.setTitle(LocaleController.getString(R.string.ProxySettings)); if (AndroidUtilities.isTablet()) { actionBar.setOccupyStatusBar(false); } @@ -1491,7 +1491,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { TextSettingsCell textCell = (TextSettingsCell) holder.itemView; textCell.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); if (position == proxyAddRow) { - textCell.setText(LocaleController.getString("AddProxy", R.string.AddProxy), deleteAllRow != -1); + textCell.setText(LocaleController.getString(R.string.AddProxy), deleteAllRow != -1); } else if (position == deleteAllRow) { textCell.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); textCell.setText(LocaleController.getString(R.string.DeleteAllProxies), false); @@ -1501,14 +1501,14 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case VIEW_TYPE_HEADER: { HeaderCell headerCell = (HeaderCell) holder.itemView; if (position == connectionsHeaderRow) { - headerCell.setText(LocaleController.getString("ProxyConnections", R.string.ProxyConnections)); + headerCell.setText(LocaleController.getString(R.string.ProxyConnections)); } break; } case VIEW_TYPE_TEXT_CHECK: { TextCheckCell checkCell = (TextCheckCell) holder.itemView; if (position == useProxyRow) { - checkCell.setTextAndCheck(LocaleController.getString("UseProxySettings", R.string.UseProxySettings), useProxySettings, rotationRow != -1); + checkCell.setTextAndCheck(LocaleController.getString(R.string.UseProxySettings), useProxySettings, rotationRow != -1); } else if (position == callsRow) { checkCell.setTextAndCheck(LocaleController.getString("UseProxyForCalls", R.string.UseProxyForCalls), useProxyForCalls, false); } else if (position == enablePublicProxyRow) { @@ -1521,7 +1521,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case VIEW_TYPE_INFO: { TextInfoPrivacyCell cell = (TextInfoPrivacyCell) holder.itemView; if (position == callsDetailRow) { - cell.setText(LocaleController.getString("UseProxyForCallsInfo", R.string.UseProxyForCallsInfo)); + cell.setText(LocaleController.getString(R.string.UseProxyForCallsInfo)); cell.setBackground(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); } else if (position == rotationTimeoutInfoRow) { cell.setText(LocaleController.getString(R.string.ProxyRotationTimeoutInfo)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProxySettingsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProxySettingsActivity.java index 0ab2fe2e6f..0f01f40cac 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProxySettingsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProxySettingsActivity.java @@ -63,7 +63,6 @@ import org.telegram.ui.Components.EditTextBoldCursor; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.QRCodeBottomSheet; -import org.telegram.ui.Components.RLottieDrawable; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; @@ -192,7 +191,7 @@ public void onPause() { @Override public View createView(Context context) { - actionBar.setTitle(LocaleController.getString("ProxyDetails", R.string.ProxyDetails)); + actionBar.setTitle(LocaleController.getString(R.string.ProxyDetails)); actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(false); if (AndroidUtilities.isTablet()) { @@ -256,7 +255,7 @@ public void onItemClick(int id) { }); doneItem = actionBar.createMenu().addItemWithWidth(done_button, R.drawable.ic_ab_done, AndroidUtilities.dp(56)); - doneItem.setContentDescription(LocaleController.getString("Done", R.string.Done)); + doneItem.setContentDescription(LocaleController.getString(R.string.Done)); fragmentView = new FrameLayout(context); FrameLayout frameLayout = (FrameLayout) fragmentView; @@ -380,23 +379,23 @@ public void afterTextChanged(Editable s) { inputFields[a].setImeOptions(EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NO_EXTRACT_UI); switch (a) { case FIELD_IP: - inputFields[a].setHintText(LocaleController.getString("UseProxyAddress", R.string.UseProxyAddress)); + inputFields[a].setHintText(LocaleController.getString(R.string.UseProxyAddress)); inputFields[a].setText(currentProxyInfo.address); break; case FIELD_PASSWORD: - inputFields[a].setHintText(LocaleController.getString("UseProxyPassword", R.string.UseProxyPassword)); + inputFields[a].setHintText(LocaleController.getString(R.string.UseProxyPassword)); inputFields[a].setText(currentProxyInfo.password); break; case FIELD_PORT: - inputFields[a].setHintText(LocaleController.getString("UseProxyPort", R.string.UseProxyPort)); + inputFields[a].setHintText(LocaleController.getString(R.string.UseProxyPort)); inputFields[a].setText("" + currentProxyInfo.port); break; case FIELD_USER: - inputFields[a].setHintText(LocaleController.getString("UseProxyUsername", R.string.UseProxyUsername)); + inputFields[a].setHintText(LocaleController.getString(R.string.UseProxyUsername)); inputFields[a].setText(currentProxyInfo.username); break; case FIELD_SECRET: - inputFields[a].setHintText(LocaleController.getString("UseProxySecret", R.string.UseProxySecret)); + inputFields[a].setHintText(LocaleController.getString(R.string.UseProxySecret)); inputFields[a].setText(currentProxyInfo.secret); break; case FIELD_REMARKS: @@ -429,9 +428,9 @@ public void afterTextChanged(Editable s) { bottomCells[i] = new TextInfoPrivacyCell(context); bottomCells[i].setBackground(Theme.getThemedDrawableByKey(context, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); if (i == 0) { - bottomCells[i].setText(LocaleController.getString("UseProxyInfo", R.string.UseProxyInfo)); + bottomCells[i].setText(LocaleController.getString(R.string.UseProxyInfo)); } else { - bottomCells[i].setText(LocaleController.getString("UseProxyTelegramInfo", R.string.UseProxyTelegramInfo) + "\n\n" + LocaleController.getString("UseProxyTelegramInfo2", R.string.UseProxyTelegramInfo2)); + bottomCells[i].setText(LocaleController.getString(R.string.UseProxyTelegramInfo) + "\n\n" + LocaleController.getString(R.string.UseProxyTelegramInfo2)); bottomCells[i].setVisibility(View.GONE); } linearLayout2.addView(bottomCells[i], LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -439,7 +438,7 @@ public void afterTextChanged(Editable s) { pasteCell = new TextSettingsCell(fragmentView.getContext()); pasteCell.setBackground(Theme.getSelectorDrawable(true)); - pasteCell.setText(LocaleController.getString("PasteFromClipboard", R.string.PasteFromClipboard), false); + pasteCell.setText(LocaleController.getString(R.string.PasteFromClipboard), false); pasteCell.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText4)); pasteCell.setOnClickListener(v -> { if (pasteType != -1) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/QrActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/QrActivity.java index c6c415cf01..40e6342de2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/QrActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/QrActivity.java @@ -365,7 +365,7 @@ protected void setDarkTheme(boolean isDark) { themesViewController.onCreate(); themesViewController.setItemSelectedListener((theme, position) -> QrActivity.this.onItemSelected(theme, position, true)); - themesViewController.titleView.setText(LocaleController.getString("QrCode", R.string.QrCode)); + themesViewController.titleView.setText(LocaleController.getString(R.string.QrCode)); themesViewController.progressView.setViewType(FlickerLoadingView.QR_TYPE); themesViewController.shareButton.setOnClickListener(v -> { themesViewController.shareButton.setClickable(false); @@ -749,7 +749,7 @@ private void performShare() { .setType("image/*") .putExtra(Intent.EXTRA_STREAM, uri); try { - Intent chooserIntent = Intent.createChooser(intent, LocaleController.getString("InviteByQRCode", R.string.InviteByQRCode)); + Intent chooserIntent = Intent.createChooser(intent, LocaleController.getString(R.string.InviteByQRCode)); getParentActivity().startActivityForResult(chooserIntent, 500); } catch (ActivityNotFoundException ex) { ex.printStackTrace(); @@ -1401,9 +1401,9 @@ protected boolean verifyDrawable(@NonNull Drawable who) { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); if (isCurrentThemeDark) { - info.setText(LocaleController.getString("AccDescrSwitchToDayTheme", R.string.AccDescrSwitchToDayTheme)); + info.setText(LocaleController.getString(R.string.AccDescrSwitchToDayTheme)); } else { - info.setText(LocaleController.getString("AccDescrSwitchToNightTheme", R.string.AccDescrSwitchToNightTheme)); + info.setText(LocaleController.getString(R.string.AccDescrSwitchToNightTheme)); } } }; @@ -1460,7 +1460,7 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { shareButton.setGravity(Gravity.CENTER); shareButton.setLines(1); shareButton.setSingleLine(true); - shareButton.setText(LocaleController.getString("ShareQrCode", R.string.ShareQrCode)); + shareButton.setText(LocaleController.getString(R.string.ShareQrCode)); shareButton.setTextColor(fragment.getThemedColor(Theme.key_featuredStickers_buttonText)); shareButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); shareButton.setTypeface(AndroidUtilities.bold()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/QuickRepliesSettingsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/QuickRepliesSettingsActivity.java index 6b73b38aff..68bc7d7b7b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/QuickRepliesSettingsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/QuickRepliesSettingsActivity.java @@ -66,7 +66,7 @@ public boolean onFragmentCreate() { @Override public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); - actionBar.setTitle(LocaleController.getString("VoipQuickReplies", R.string.VoipQuickReplies)); + actionBar.setTitle(LocaleController.getString(R.string.VoipQuickReplies)); if (AndroidUtilities.isTablet()) { actionBar.setOccupyStatusBar(false); } @@ -139,7 +139,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 0: { TextInfoPrivacyCell cell = (TextInfoPrivacyCell) holder.itemView; cell.setBackgroundDrawable(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); - cell.setText(LocaleController.getString("VoipQuickRepliesExplain", R.string.VoipQuickRepliesExplain)); + cell.setText(LocaleController.getString(R.string.VoipQuickRepliesExplain)); break; } case 1: { @@ -155,16 +155,16 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { String defValue = null; if (position == reply1Row) { settingsKey = "quick_reply_msg1"; - defValue = LocaleController.getString("QuickReplyDefault1", R.string.QuickReplyDefault1); + defValue = LocaleController.getString(R.string.QuickReplyDefault1); } else if (position == reply2Row) { settingsKey = "quick_reply_msg2"; - defValue = LocaleController.getString("QuickReplyDefault2", R.string.QuickReplyDefault2); + defValue = LocaleController.getString(R.string.QuickReplyDefault2); } else if (position == reply3Row) { settingsKey = "quick_reply_msg3"; - defValue = LocaleController.getString("QuickReplyDefault3", R.string.QuickReplyDefault3); + defValue = LocaleController.getString(R.string.QuickReplyDefault3); } else if (position == reply4Row) { settingsKey = "quick_reply_msg4"; - defValue = LocaleController.getString("QuickReplyDefault4", R.string.QuickReplyDefault4); + defValue = LocaleController.getString(R.string.QuickReplyDefault4); } textCell.setTextAndHint(getParentActivity().getSharedPreferences("mainconfig", Context.MODE_PRIVATE).getString(settingsKey, ""), defValue, position != reply4Row); @@ -172,7 +172,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } case 4: { TextCheckCell cell = (TextCheckCell) holder.itemView; - cell.setTextAndCheck(LocaleController.getString("AllowCustomQuickReply", R.string.AllowCustomQuickReply), getParentActivity().getSharedPreferences("mainconfig", Context.MODE_PRIVATE).getBoolean("quick_reply_allow_custom", true), false); + cell.setTextAndCheck(LocaleController.getString(R.string.AllowCustomQuickReply), getParentActivity().getSharedPreferences("mainconfig", Context.MODE_PRIVATE).getBoolean("quick_reply_allow_custom", true), false); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ReactionsDoubleTapManageActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ReactionsDoubleTapManageActivity.java index e8d03d4359..07e1c1b8df 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ReactionsDoubleTapManageActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ReactionsDoubleTapManageActivity.java @@ -66,7 +66,7 @@ public boolean onFragmentCreate() { @Override public View createView(Context context) { - actionBar.setTitle(LocaleController.getString("Reactions", R.string.Reactions)); + actionBar.setTitle(LocaleController.getString(R.string.Reactions)); actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); @@ -106,7 +106,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int break; case 2: TextInfoPrivacyCell cell = new TextInfoPrivacyCell(context); - cell.setText(LocaleController.getString("DoubleTapPreviewRational", R.string.DoubleTapPreviewRational)); + cell.setText(LocaleController.getString(R.string.DoubleTapPreviewRational)); cell.setBackground(Theme.getThemedDrawableByKey(context, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); view = cell; break; @@ -204,7 +204,7 @@ public SetDefaultReactionCell(Context context) { textView = new TextView(context); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); textView.setTextColor(getThemedColor(Theme.key_windowBackgroundWhiteBlackText)); - textView.setText(LocaleController.getString("DoubleTapSetting", R.string.DoubleTapSetting)); + textView.setText(LocaleController.getString(R.string.DoubleTapSetting)); addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_VERTICAL | Gravity.FILL_HORIZONTAL, 20, 0, 48, 0)); imageDrawable = new AnimatedEmojiDrawable.SwapAnimatedEmojiDrawable(this, AndroidUtilities.dp(24)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ReadAllMentionsMenu.java b/TMessagesProj/src/main/java/org/telegram/ui/ReadAllMentionsMenu.java index e8ff4b4e04..de74485370 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ReadAllMentionsMenu.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ReadAllMentionsMenu.java @@ -26,7 +26,7 @@ public static ActionBarPopupWindow show(int type, Activity activity, INavigation ActionBarMenuSubItem cell = new ActionBarMenuSubItem(activity, true,true, resourcesProvider); cell.setMinimumWidth(AndroidUtilities.dp(200)); - cell.setTextAndIcon(type == TYPE_REACTIONS ? LocaleController.getString("ReadAllReactions", R.string.ReadAllReactions) : LocaleController.getString("ReadAllMentions", R.string.ReadAllMentions) , R.drawable.msg_seen); + cell.setTextAndIcon(type == TYPE_REACTIONS ? LocaleController.getString(R.string.ReadAllReactions) : LocaleController.getString(R.string.ReadAllMentions) , R.drawable.msg_seen); cell.setOnClickListener(view -> { if (onRead != null) { onRead.run(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ReportAdBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/ReportAdBottomSheet.java index 7780d7c138..171c72f3d4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ReportAdBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ReportAdBottomSheet.java @@ -289,7 +289,7 @@ public Page(Context context) { onBackPressed(); } }); - headerView.setText(LocaleController.getString("ReportAd", R.string.ReportAd)); + headerView.setText(LocaleController.getString(R.string.ReportAd)); headerView.backDrawable.setColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); headerView.setBackgroundColor(Theme.getColor(Theme.key_dialogBackground, resourcesProvider)); addView(headerView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL)); @@ -397,7 +397,7 @@ public void fillItems(ArrayList items, UniversalAdapter adapter) { frameLayout.setBackground(combinedDrawable); LinkSpanDrawable.LinksTextView textView = new LinkSpanDrawable.LinksTextView(getContext()); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - textView.setText(AndroidUtilities.replaceLinks(LocaleController.getString("ReportAdLearnMore", R.string.ReportAdLearnMore), resourcesProvider)); + textView.setText(AndroidUtilities.replaceLinks(LocaleController.getString(R.string.ReportAdLearnMore), resourcesProvider)); textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText3, resourcesProvider)); textView.setGravity(Gravity.CENTER); frameLayout.addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 16, 16, 16, 16)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/RestrictedLanguagesSelectActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/RestrictedLanguagesSelectActivity.java index ec785a26e7..814117c745 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/RestrictedLanguagesSelectActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/RestrictedLanguagesSelectActivity.java @@ -172,7 +172,7 @@ public static boolean toggleLanguage(String language, boolean doNotTranslate) { public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("DoNotTranslate", R.string.DoNotTranslate)); + actionBar.setTitle(LocaleController.getString(R.string.DoNotTranslate)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -214,7 +214,7 @@ public void onTextChanged(EditText editText) { } } }); - item.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); + item.setSearchFieldHint(LocaleController.getString(R.string.Search)); listAdapter = new ListAdapter(context, false); searchListViewAdapter = new ListAdapter(context, true); @@ -224,7 +224,7 @@ public void onTextChanged(EditText editText) { FrameLayout frameLayout = (FrameLayout) fragmentView; emptyView = new EmptyTextProgressView(context); - emptyView.setText(LocaleController.getString("NoResult", R.string.NoResult)); + emptyView.setText(LocaleController.getString(R.string.NoResult)); emptyView.showTextView(); emptyView.setShowAtCenter(true); frameLayout.addView(emptyView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); @@ -433,7 +433,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType case 2: HeaderCell header = new HeaderCell(mContext); header.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); - header.setText(LocaleController.getString("ChooseLanguages", R.string.ChooseLanguages)); + header.setText(LocaleController.getString(R.string.ChooseLanguages)); view = header; break; case 1: diff --git a/TMessagesProj/src/main/java/org/telegram/ui/RevenueSharingAdsInfoBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/RevenueSharingAdsInfoBottomSheet.java index 350bd1a44a..a273060606 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/RevenueSharingAdsInfoBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/RevenueSharingAdsInfoBottomSheet.java @@ -64,7 +64,7 @@ public RevenueSharingAdsInfoBottomSheet(BaseFragment baseFragment, Context conte linearLayout.addView(imageView, LayoutHelper.createLinear(80, 80, Gravity.CENTER_HORIZONTAL, 0, 28, 0, 0)); TextView topTitle = new TextView(context); - topTitle.setText(LocaleController.getString("AboutRevenueSharingAds", R.string.AboutRevenueSharingAds)); + topTitle.setText(LocaleController.getString(R.string.AboutRevenueSharingAds)); topTitle.setTypeface(AndroidUtilities.bold()); topTitle.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); topTitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); @@ -72,16 +72,16 @@ public RevenueSharingAdsInfoBottomSheet(BaseFragment baseFragment, Context conte linearLayout.addView(topTitle, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 22, 14, 22, 0)); TextView topSubtitle = new TextView(context); - topSubtitle.setText(LocaleController.getString("RevenueSharingAdsAlertSubtitle", R.string.RevenueSharingAdsAlertSubtitle)); + topSubtitle.setText(LocaleController.getString(R.string.RevenueSharingAdsAlertSubtitle)); topSubtitle.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); topSubtitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); topSubtitle.setGravity(Gravity.CENTER_HORIZONTAL); linearLayout.addView(topSubtitle, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 22, 8, 22, 0)); - FrameLayout info1 = new FeatureCell(context, R.drawable.menu_privacy, LocaleController.getString("RevenueSharingAdsInfo1Title", R.string.RevenueSharingAdsInfo1Title), LocaleController.getString("RevenueSharingAdsInfo1Subtitle", R.string.RevenueSharingAdsInfo1Subtitle)); + FrameLayout info1 = new FeatureCell(context, R.drawable.menu_privacy, LocaleController.getString(R.string.RevenueSharingAdsInfo1Title), LocaleController.getString(R.string.RevenueSharingAdsInfo1Subtitle)); linearLayout.addView(info1, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 0, 20, 0, 0)); - FrameLayout info2 = new FeatureCell(context, R.drawable.menu_feature_split, LocaleController.getString("RevenueSharingAdsInfo2Title", R.string.RevenueSharingAdsInfo2Title), LocaleController.getString("RevenueSharingAdsInfo2Subtitle", R.string.RevenueSharingAdsInfo2Subtitle)); + FrameLayout info2 = new FeatureCell(context, R.drawable.menu_feature_split, LocaleController.getString(R.string.RevenueSharingAdsInfo2Title), LocaleController.getString(R.string.RevenueSharingAdsInfo2Subtitle)); linearLayout.addView(info2, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 0, 16, 0, 0)); String info3DescriptionString = LocaleController.formatString("RevenueSharingAdsInfo3Subtitle", R.string.RevenueSharingAdsInfo3Subtitle, MessagesController.getInstance(baseFragment.getCurrentAccount()).channelRestrictSponsoredLevelMin); @@ -91,7 +91,7 @@ public RevenueSharingAdsInfoBottomSheet(BaseFragment baseFragment, Context conte dismiss(); }); - FrameLayout info3 = new FeatureCell(context, R.drawable.menu_feature_noads, LocaleController.getString("RevenueSharingAdsInfo3Title", R.string.RevenueSharingAdsInfo3Title), info3Description); + FrameLayout info3 = new FeatureCell(context, R.drawable.menu_feature_noads, LocaleController.getString(R.string.RevenueSharingAdsInfo3Title), info3Description); linearLayout.addView(info3, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 0, 0, 16, 0, 0)); View divider = new View(getContext()); @@ -101,7 +101,7 @@ public RevenueSharingAdsInfoBottomSheet(BaseFragment baseFragment, Context conte linearLayout.addView(divider, dividerLayoutParams); TextView textViewDescription4 = new TextView(context); - textViewDescription4.setText(LocaleController.getString("RevenueSharingAdsInfo4Title", R.string.RevenueSharingAdsInfo4Title)); + textViewDescription4.setText(LocaleController.getString(R.string.RevenueSharingAdsInfo4Title)); textViewDescription4.setTypeface(AndroidUtilities.bold()); textViewDescription4.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); textViewDescription4.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); @@ -110,7 +110,7 @@ public RevenueSharingAdsInfoBottomSheet(BaseFragment baseFragment, Context conte SpannableStringBuilder bottomSubtitle1 = AndroidUtilities.replaceTags(LocaleController.getString(R.string.RevenueSharingAdsInfo4Subtitle2)); String bottomSubtitle2 = getString(R.string.RevenueSharingAdsInfo4SubtitleLearnMore); - SpannableStringBuilder stringBuilder2 = AndroidUtilities.replaceSingleTag(bottomSubtitle2, Theme.key_chat_messageLinkIn, 0, () -> Browser.openUrl(getContext(), LocaleController.getString("PromoteUrl", R.string.PromoteUrl))); + SpannableStringBuilder stringBuilder2 = AndroidUtilities.replaceSingleTag(bottomSubtitle2, Theme.key_chat_messageLinkIn, 0, () -> Browser.openUrl(getContext(), LocaleController.getString(R.string.PromoteUrl))); SpannableString arrowStr = new SpannableString(">"); ColoredImageSpan span = new ColoredImageSpan(R.drawable.attach_arrow_right); span.setOverrideColor(Theme.getColor(Theme.key_chat_messageLinkIn)); @@ -135,7 +135,7 @@ public RevenueSharingAdsInfoBottomSheet(BaseFragment baseFragment, Context conte buttonTextView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText, resourcesProvider)); buttonTextView.setTypeface(AndroidUtilities.bold()); buttonTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - buttonTextView.setText(LocaleController.getString("RevenueSharingAdsAlertButton", R.string.RevenueSharingAdsAlertButton)); + buttonTextView.setText(LocaleController.getString(R.string.RevenueSharingAdsAlertButton)); buttonTextView.setBackground(Theme.AdaptiveRipple.filledRect(Theme.getColor(Theme.key_featuredStickers_addButton, resourcesProvider), 6)); buttonTextView.setOnClickListener(e -> dismiss()); linearLayout.addView(buttonTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, 0, 14, 22, 14, 14)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/RightSlidingDialogContainer.java b/TMessagesProj/src/main/java/org/telegram/ui/RightSlidingDialogContainer.java index 55b9cfa63d..f5650cab00 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/RightSlidingDialogContainer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/RightSlidingDialogContainer.java @@ -8,6 +8,7 @@ import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; +import android.util.Log; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SaveToGallerySettingsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/SaveToGallerySettingsActivity.java index 7974f24aee..64a9ba4c63 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SaveToGallerySettingsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SaveToGallerySettingsActivity.java @@ -179,7 +179,7 @@ public void onItemClick(int id) { } args.putBoolean("allowGlobalSearch", false); DialogsActivity activity = new DialogsActivity(args); - activity.setDelegate((fragment, dids, message, param, topicsFragment) -> { + activity.setDelegate((fragment, dids, message, param, notify, scheduleDate, topicsFragment) -> { Bundle args2 = new Bundle(); args2.putLong("dialog_id", dids.get(0).dialogId); args2.putInt("type", type); @@ -196,9 +196,9 @@ public void onItemClick(int id) { presentFragment(addExceptionActivity); } else if (items.get(position).viewType == VIEW_TYPE_DELETE_ALL) { AlertDialog alertDialog = AlertsCreator.createSimpleAlert(getContext(), - LocaleController.getString("NotificationsDeleteAllExceptionTitle", R.string.NotificationsDeleteAllExceptionTitle), - LocaleController.getString("NotificationsDeleteAllExceptionAlert", R.string.NotificationsDeleteAllExceptionAlert), - LocaleController.getString("Delete", R.string.Delete), + LocaleController.getString(R.string.NotificationsDeleteAllExceptionTitle), + LocaleController.getString(R.string.NotificationsDeleteAllExceptionAlert), + LocaleController.getString(R.string.Delete), () -> { exceptionsDialogs.clear(); getUserConfig().updateSaveGalleryExceptions(type, exceptionsDialogs); @@ -213,8 +213,8 @@ public void onItemClick(int id) { SaveToGallerySettingsHelper.DialogException exception = items.get(position).exception; ActionBarPopupWindow.ActionBarPopupWindowLayout actionBarPopupWindowLayout = new ActionBarPopupWindow.ActionBarPopupWindowLayout(getContext()); - ActionBarMenuSubItem edit = ActionBarMenuItem.addItem(actionBarPopupWindowLayout, R.drawable.msg_customize, LocaleController.getString("EditException", R.string.EditException), false, null); - ActionBarMenuSubItem delete = ActionBarMenuItem.addItem(actionBarPopupWindowLayout, R.drawable.msg_delete, LocaleController.getString("DeleteException", R.string.DeleteException), false, null); + ActionBarMenuSubItem edit = ActionBarMenuItem.addItem(actionBarPopupWindowLayout, R.drawable.msg_customize, LocaleController.getString(R.string.EditException), false, null); + ActionBarMenuSubItem delete = ActionBarMenuItem.addItem(actionBarPopupWindowLayout, R.drawable.msg_delete, LocaleController.getString(R.string.DeleteException), false, null); delete.setColors(Theme.getColor(Theme.key_text_RedRegular), Theme.getColor(Theme.key_text_RedRegular)); ActionBarPopupWindow popupWindow = AlertsCreator.createSimplePopup(SaveToGallerySettingsActivity.this, actionBarPopupWindowLayout, view, x, y); actionBarPopupWindowLayout.setParentWindow(popupWindow); @@ -249,7 +249,7 @@ public void onItemClick(int id) { TextView textView = new TextView(getContext()); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - textView.setText(isNewException ? LocaleController.getString("AddException", R.string.AddException) : LocaleController.getString("SaveException", R.string.SaveException)); + textView.setText(isNewException ? LocaleController.getString(R.string.AddException) : LocaleController.getString(R.string.SaveException)); textView.setGravity(Gravity.CENTER); textView.setTypeface(AndroidUtilities.bold()); textView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); @@ -283,25 +283,25 @@ private void updateRows() { items.add(new Item(VIEW_TYPE_USER_INFO)); items.add(new Item(VIEW_TYPE_DIVIDER)); } - items.add(new Item(VIEW_TYPE_HEADER, LocaleController.getString("SaveToGallery", R.string.SaveToGallery))); + items.add(new Item(VIEW_TYPE_HEADER, LocaleController.getString(R.string.SaveToGallery))); savePhotosRow = items.size(); items.add(new Item(VIEW_TYPE_TOGGLE)); saveVideosRow = items.size(); items.add(new Item(VIEW_TYPE_TOGGLE)); String text = null; if (dialogException != null) { - text = LocaleController.getString("SaveToGalleryHintCurrent", R.string.SaveToGalleryHintCurrent); + text = LocaleController.getString(R.string.SaveToGalleryHintCurrent); } else if (type == SAVE_TO_GALLERY_FLAG_PEER) { - text = LocaleController.getString("SaveToGalleryHintUser", R.string.SaveToGalleryHintUser); + text = LocaleController.getString(R.string.SaveToGalleryHintUser); } else if (type == SAVE_TO_GALLERY_FLAG_CHANNELS) { - text = LocaleController.getString("SaveToGalleryHintChannels", R.string.SaveToGalleryHintChannels); + text = LocaleController.getString(R.string.SaveToGalleryHintChannels); } else if (type == SAVE_TO_GALLERY_FLAG_GROUP) { - text = LocaleController.getString("SaveToGalleryHintGroup", R.string.SaveToGalleryHintGroup); + text = LocaleController.getString(R.string.SaveToGalleryHintGroup); } items.add(new Item(VIEW_TYPE_DIVIDER_INFO, text)); if (getSettings().saveVideo) { - items.add(new Item(VIEW_TYPE_HEADER, LocaleController.getString("MaxVideoSize", R.string.MaxVideoSize))); + items.add(new Item(VIEW_TYPE_HEADER, LocaleController.getString(R.string.MaxVideoSize))); items.add(new Item(VIEW_TYPE_CHOOSER)); videoDividerRow = items.size(); items.add(new Item(VIEW_TYPE_DIVIDER_INFO)); @@ -358,7 +358,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int break; case VIEW_TYPE_ADD_EXCEPTION: TextCell textCell = new TextCell(parent.getContext()); - textCell.setTextAndIcon(LocaleController.getString("NotificationsAddAnException", R.string.NotificationsAddAnException), R.drawable.msg_contact_add, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.NotificationsAddAnException), R.drawable.msg_contact_add, true); textCell.setColors(Theme.key_windowBackgroundWhiteBlueIcon, Theme.key_windowBackgroundWhiteBlueButton); view = textCell; view.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); @@ -372,7 +372,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int break; case VIEW_TYPE_DELETE_ALL: textCell = new TextCell(parent.getContext()); - textCell.setText(LocaleController.getString("NotificationsDeleteAllException", R.string.NotificationsDeleteAllException), false); + textCell.setText(LocaleController.getString(R.string.NotificationsDeleteAllException), false); textCell.setColors(-1, Theme.key_text_RedRegular); view = textCell; view.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); @@ -539,7 +539,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi if (object instanceof TLRPC.User) { TLRPC.User user = (TLRPC.User) object; if (user.self) { - title = LocaleController.getString("SavedMessages", R.string.SavedMessages); + title = LocaleController.getString(R.string.SavedMessages); } else { title = ContactsController.formatName(user.first_name, user.last_name); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SecretMediaViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/SecretMediaViewer.java index 7dcebf5466..3e7758f754 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SecretMediaViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SecretMediaViewer.java @@ -1281,7 +1281,7 @@ private void onLinkLongPress(URLSpan link, TextView widget, Runnable onDismiss) // builder.setTitle(link.getURL()); // } // final int finalTimestamp = timestamp; -// builder.setItems(new CharSequence[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy)}, (dialog, which) -> { +// builder.setItems(new CharSequence[]{LocaleController.getString(R.string.Open), LocaleController.getString(R.string.Copy)}, (dialog, which) -> { // if (which == 0) { // onLinkClick(link, widget); // } else if (which == 1) { @@ -1330,13 +1330,13 @@ private void onLinkLongPress(URLSpan link, TextView widget, Runnable onDismiss) // AndroidUtilities.addToClipboard(url1); // String bulletinMessage; // if (tel) { -// bulletinMessage = LocaleController.getString("PhoneCopied", R.string.PhoneCopied); +// bulletinMessage = LocaleController.getString(R.string.PhoneCopied); // } else if (url1.startsWith("#")) { -// bulletinMessage = LocaleController.getString("HashtagCopied", R.string.HashtagCopied); +// bulletinMessage = LocaleController.getString(R.string.HashtagCopied); // } else if (url1.startsWith("@")) { -// bulletinMessage = LocaleController.getString("UsernameCopied", R.string.UsernameCopied); +// bulletinMessage = LocaleController.getString(R.string.UsernameCopied); // } else { -// bulletinMessage = LocaleController.getString("LinkCopied", R.string.LinkCopied); +// bulletinMessage = LocaleController.getString(R.string.LinkCopied); // } // if (AndroidUtilities.shouldShowClipboardToast()) { // BulletinFactory.of(containerView, resourcesProvider).createSimpleBulletin(R.raw.voip_invite, bulletinMessage).show(); @@ -1526,7 +1526,7 @@ public void openMedia(MessageObject messageObject, PhotoViewer.PhotoViewerProvid } } if (MessageObject.isGifDocument(document)) { - actionBar.setTitle(LocaleController.getString("DisappearingGif", R.string.DisappearingGif)); + actionBar.setTitle(LocaleController.getString(R.string.DisappearingGif)); ImageLocation location; if (messageObject.messageOwner.attachPath != null && messageObject.attachPathExists) { location = ImageLocation.getForPath(messageObject.messageOwner.attachPath); @@ -1536,7 +1536,7 @@ public void openMedia(MessageObject messageObject, PhotoViewer.PhotoViewerProvid centerImage.setImage(location, null, currentThumb != null ? new BitmapDrawable(currentThumb.bitmap) : null, -1, null, messageObject, 1); } else { playerRetryPlayCount = 1; - actionBar.setTitle(LocaleController.getString("DisappearingVideo", R.string.DisappearingVideo)); + actionBar.setTitle(LocaleController.getString(R.string.DisappearingVideo)); File f = new File(messageObject.messageOwner.attachPath); if (f.exists()) { preparePlayer(f); @@ -1553,7 +1553,7 @@ public void openMedia(MessageObject messageObject, PhotoViewer.PhotoViewerProvid centerImage.setImage(null, null, currentThumb != null ? new BitmapDrawable(currentThumb.bitmap) : null, -1, null, messageObject, 2); } } else { - actionBar.setTitle(LocaleController.getString("DisappearingPhoto", R.string.DisappearingPhoto)); + actionBar.setTitle(LocaleController.getString(R.string.DisappearingPhoto)); TLRPC.PhotoSize sizeFull = FileLoader.getClosestPhotoSizeWithSize(messageObject.photoThumbs, AndroidUtilities.getPhotoSize()); centerImage.setImage(ImageLocation.getForObject(sizeFull, messageObject.photoThumbsObject), null, currentThumb != null ? new BitmapDrawable(currentThumb.bitmap) : null, -1, null, messageObject, 2); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SelectAnimatedEmojiDialog.java b/TMessagesProj/src/main/java/org/telegram/ui/SelectAnimatedEmojiDialog.java index 003dd4df36..860dde9116 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SelectAnimatedEmojiDialog.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SelectAnimatedEmojiDialog.java @@ -872,15 +872,15 @@ public void onScrolled(int dx, int dy) { } TextView emptyViewText = new TextView(context); if (type == TYPE_AVATAR_CONSTRUCTOR) { - emptyViewText.setText(LocaleController.getString("NoEmojiOrStickersFound", R.string.NoEmojiOrStickersFound)); + emptyViewText.setText(LocaleController.getString(R.string.NoEmojiOrStickersFound)); } else if (type == TYPE_EMOJI_STATUS || type == TYPE_STICKER_SET_EMOJI || type == TYPE_EMOJI_STATUS_TOP || type == TYPE_TAGS || type == TYPE_EMOJI_STATUS_CHANNEL || type == TYPE_EMOJI_STATUS_CHANNEL_TOP) { - emptyViewText.setText(LocaleController.getString("NoEmojiFound", R.string.NoEmojiFound)); + emptyViewText.setText(LocaleController.getString(R.string.NoEmojiFound)); } else if (type == TYPE_REACTIONS || type == TYPE_SET_DEFAULT_REACTION) { - emptyViewText.setText(LocaleController.getString("NoReactionsFound", R.string.NoReactionsFound)); + emptyViewText.setText(LocaleController.getString(R.string.NoReactionsFound)); } else if (type == TYPE_EFFECTS) { - emptyViewText.setText(LocaleController.getString("NoEffectsFound", R.string.NoEffectsFound)); + emptyViewText.setText(LocaleController.getString(R.string.NoEffectsFound)); } else { - emptyViewText.setText(LocaleController.getString("NoIconsFound", R.string.NoIconsFound)); + emptyViewText.setText(LocaleController.getString(R.string.NoIconsFound)); } emptyViewText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); @@ -1049,7 +1049,7 @@ public void onAnimationEnd(Animator animation) { RecyclerListView.OnItemClickListener onItemClick = (view, position) -> { if (view instanceof ImageViewEmoji) { ImageViewEmoji viewEmoji = (ImageViewEmoji) view; - if (viewEmoji.isDefaultReaction || type == TYPE_STICKER_SET_EMOJI || type == TYPE_EFFECTS) { + if (viewEmoji.isDefaultReaction || viewEmoji.reaction != null && viewEmoji.reaction.isStar || type == TYPE_STICKER_SET_EMOJI || type == TYPE_EFFECTS) { incrementHintUse(); onReactionClick(viewEmoji, viewEmoji.reaction); } else if (viewEmoji.isStaticIcon && viewEmoji.document != null) { @@ -1187,14 +1187,14 @@ private void setBigReactionAnimatedEmoji(AnimatedEmojiDrawable animatedEmojiDraw private void onRecentLongClick() { AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), null); - builder.setTitle(LocaleController.getString("ClearRecentEmojiStatusesTitle", R.string.ClearRecentEmojiStatusesTitle)); - builder.setMessage(LocaleController.getString("ClearRecentEmojiStatusesText", R.string.ClearRecentEmojiStatusesText)); - builder.setPositiveButton(LocaleController.getString("Clear", R.string.Clear), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.ClearRecentEmojiStatusesTitle)); + builder.setMessage(LocaleController.getString(R.string.ClearRecentEmojiStatusesText)); + builder.setPositiveButton(LocaleController.getString(R.string.Clear), (dialogInterface, i) -> { ConnectionsManager.getInstance(currentAccount).sendRequest(new TLRPC.TL_account_clearRecentEmojiStatuses(), null); MediaDataController.getInstance(currentAccount).clearRecentEmojiStatuses(); updateRows(false, true); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.setDimEnabled(false); builder.setOnDismissListener(di -> { setDim(0, true); @@ -2190,7 +2190,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi header.setText(((SetTitleDocument) d).title, lastQuery, false); } } else if (position == emojiHeaderRow) { - header.setText(LocaleController.getString("Emoji", R.string.Emoji), false); + header.setText(LocaleController.getString(R.string.Emoji), false); } else { if (type == TYPE_EFFECTS) { header.setText(LocaleController.getString(R.string.StickerEffects), false); @@ -2490,11 +2490,11 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { }; textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); if (type == TYPE_TOPIC_ICON) { - textView.setText(LocaleController.getString("SelectTopicIconHint", R.string.SelectTopicIconHint)); + textView.setText(LocaleController.getString(R.string.SelectTopicIconHint)); } else if (type == TYPE_EMOJI_STATUS || type == TYPE_EMOJI_STATUS_TOP || type == TYPE_EMOJI_STATUS_CHANNEL || type == TYPE_EMOJI_STATUS_CHANNEL_TOP) { - textView.setText(LocaleController.getString("EmojiLongtapHint", R.string.EmojiLongtapHint)); + textView.setText(LocaleController.getString(R.string.EmojiLongtapHint)); } else { - textView.setText(LocaleController.getString("ReactionsLongtapHint", R.string.ReactionsLongtapHint)); + textView.setText(LocaleController.getString(R.string.ReactionsLongtapHint)); } textView.setGravity(Gravity.CENTER); textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText, resourcesProvider)); @@ -2559,12 +2559,12 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } else if (viewType == VIEW_TYPE_HEADER) { HeaderView header = (HeaderView) holder.itemView; if (position == topicEmojiHeaderRow) { - header.setText(LocaleController.getString("SelectTopicIconHint", R.string.SelectTopicIconHint), false); + header.setText(LocaleController.getString(R.string.SelectTopicIconHint), false); header.closeIcon.setVisibility(View.GONE); return; } if (position == recentReactionsSectionRow) { - header.setText(LocaleController.getString("RecentlyUsed", R.string.RecentlyUsed), false); + header.setText(LocaleController.getString(R.string.RecentlyUsed), false); header.closeIcon.setVisibility(View.GONE); return; } @@ -2575,7 +2575,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } header.closeIcon.setVisibility(View.GONE); if (position == popularSectionRow) { - header.setText(LocaleController.getString("PopularReactions", R.string.PopularReactions), false); + header.setText(LocaleController.getString(R.string.PopularReactions), false); return; } @@ -3010,7 +3010,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { public void updateInstall(boolean installed, boolean animated) { CharSequence text = installed ? - LocaleController.getString("Added", R.string.Added) : + LocaleController.getString(R.string.Added) : LocaleController.formatString("AddStickersCount", R.string.AddStickersCount, lastTitle); addButtonTextView.setText(text, animated); if (installFadeAway != null) { @@ -5072,7 +5072,7 @@ public void afterTextChanged(Editable s) { input.setBackground(null); input.setPadding(0, 0, AndroidUtilities.dp(4), 0); input.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); - input.setHint(LocaleController.getString("Search", R.string.Search)); + input.setHint(LocaleController.getString(R.string.Search)); input.setHintTextColor(Theme.getColor(Theme.key_chat_emojiSearchIcon, resourcesProvider)); input.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); @@ -5797,15 +5797,15 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto linearLayoutView.addView(menuView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 0, 0, 0)); - ActionBarMenuItem.addItem(true, false, menuView, 0, LocaleController.getString("SetEmojiStatusUntil1Hour", R.string.SetEmojiStatusUntil1Hour), false, resourcesProvider) + ActionBarMenuItem.addItem(true, false, menuView, 0, LocaleController.getString(R.string.SetEmojiStatusUntil1Hour), false, resourcesProvider) .setOnClickListener(e -> done((int) (System.currentTimeMillis() / 1000 + 60 * 60))); - ActionBarMenuItem.addItem(false, false, menuView, 0, LocaleController.getString("SetEmojiStatusUntil2Hours", R.string.SetEmojiStatusUntil2Hours), false, resourcesProvider) + ActionBarMenuItem.addItem(false, false, menuView, 0, LocaleController.getString(R.string.SetEmojiStatusUntil2Hours), false, resourcesProvider) .setOnClickListener(e -> done((int) (System.currentTimeMillis() / 1000 + 2 * 60 * 60))); - ActionBarMenuItem.addItem(false, false, menuView, 0, LocaleController.getString("SetEmojiStatusUntil8Hours", R.string.SetEmojiStatusUntil8Hours), false, resourcesProvider) + ActionBarMenuItem.addItem(false, false, menuView, 0, LocaleController.getString(R.string.SetEmojiStatusUntil8Hours), false, resourcesProvider) .setOnClickListener(e -> done((int) (System.currentTimeMillis() / 1000 + 8 * 60 * 60))); - ActionBarMenuItem.addItem(false, false, menuView, 0, LocaleController.getString("SetEmojiStatusUntil2Days", R.string.SetEmojiStatusUntil2Days), false, resourcesProvider) + ActionBarMenuItem.addItem(false, false, menuView, 0, LocaleController.getString(R.string.SetEmojiStatusUntil2Days), false, resourcesProvider) .setOnClickListener(e -> done((int) (System.currentTimeMillis() / 1000 + 2 * 24 * 60 * 60))); - ActionBarMenuItem.addItem(false, true, menuView, 0, LocaleController.getString("SetEmojiStatusUntilOther", R.string.SetEmojiStatusUntilOther), false, resourcesProvider) + ActionBarMenuItem.addItem(false, true, menuView, 0, LocaleController.getString(R.string.SetEmojiStatusUntilOther), false, resourcesProvider) .setOnClickListener(e -> { if (dateBottomSheet != null) { return; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SessionBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/SessionBottomSheet.java index e4abbffd7e..bac72e9773 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SessionBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SessionBottomSheet.java @@ -80,7 +80,7 @@ public void onClick(View view) { String timeText; if ((session.flags & 1) != 0) { - timeText = LocaleController.getString("Online", R.string.Online); + timeText = LocaleController.getString(R.string.Online); } else { timeText = LocaleController.formatDateTime(session.date_active, true); } @@ -112,7 +112,7 @@ public void onClick(View view) { Drawable drawable = ContextCompat.getDrawable(context, R.drawable.menu_devices).mutate(); drawable.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayIcon), PorterDuff.Mode.SRC_IN)); applicationItemView.iconView.setImageDrawable(drawable); - applicationItemView.descriptionText.setText(LocaleController.getString("Application", R.string.Application)); + applicationItemView.descriptionText.setText(LocaleController.getString(R.string.Application)); linearLayout.addView(applicationItemView); @@ -123,7 +123,7 @@ public void onClick(View view) { drawable = ContextCompat.getDrawable(context, R.drawable.msg_location).mutate(); drawable.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayIcon), PorterDuff.Mode.SRC_IN)); locationItemView.iconView.setImageDrawable(drawable); - locationItemView.descriptionText.setText(LocaleController.getString("Location", R.string.Location)); + locationItemView.descriptionText.setText(LocaleController.getString(R.string.Location)); locationItemView.setOnClickListener(new View.OnClickListener() { @Override @@ -153,7 +153,7 @@ public boolean onLongClick(View view) { drawable = ContextCompat.getDrawable(context, R.drawable.msg_language).mutate(); drawable.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayIcon), PorterDuff.Mode.SRC_IN)); locationItemView.iconView.setImageDrawable(drawable); - locationItemView.descriptionText.setText(LocaleController.getString("IpAddress", R.string.IpAddress)); + locationItemView.descriptionText.setText(LocaleController.getString(R.string.IpAddress)); locationItemView.setOnClickListener(new View.OnClickListener() { @@ -182,7 +182,7 @@ public boolean onLongClick(View view) { if (secretChatsEnabled(session)) { ItemView acceptSecretChats = new ItemView(context, true); - acceptSecretChats.valueText.setText(LocaleController.getString("AcceptSecretChats", R.string.AcceptSecretChats)); + acceptSecretChats.valueText.setText(LocaleController.getString(R.string.AcceptSecretChats)); drawable = ContextCompat.getDrawable(context, R.drawable.msg_secret).mutate(); drawable.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayIcon), PorterDuff.Mode.SRC_IN)); acceptSecretChats.iconView.setImageDrawable(drawable); @@ -200,13 +200,13 @@ public void onClick(View view) { if (prevItem != null) { prevItem.needDivider = true; } - acceptSecretChats.descriptionText.setText(LocaleController.getString("AcceptSecretChatsDescription", R.string.AcceptSecretChatsDescription)); + acceptSecretChats.descriptionText.setText(LocaleController.getString(R.string.AcceptSecretChatsDescription)); linearLayout.addView(acceptSecretChats); prevItem = acceptSecretChats; } ItemView acceptCalls = new ItemView(context, true); - acceptCalls.valueText.setText(LocaleController.getString("AcceptCalls", R.string.AcceptCalls)); + acceptCalls.valueText.setText(LocaleController.getString(R.string.AcceptCalls)); drawable = ContextCompat.getDrawable(context, R.drawable.msg_calls).mutate(); drawable.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_windowBackgroundWhiteGrayIcon), PorterDuff.Mode.SRC_IN)); acceptCalls.iconView.setImageDrawable(drawable); @@ -224,7 +224,7 @@ public void onClick(View view) { if (prevItem != null) { prevItem.needDivider = true; } - acceptCalls.descriptionText.setText(LocaleController.getString("AcceptCallsChatsDescription", R.string.AcceptCallsChatsDescription)); + acceptCalls.descriptionText.setText(LocaleController.getString(R.string.AcceptCallsChatsDescription)); linearLayout.addView(acceptCalls); if (!isCurrentSession) { @@ -233,7 +233,7 @@ public void onClick(View view) { buttonTextView.setGravity(Gravity.CENTER); buttonTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); buttonTextView.setTypeface(AndroidUtilities.bold()); - buttonTextView.setText(LocaleController.getString("TerminateSession", R.string.TerminateSession)); + buttonTextView.setText(LocaleController.getString(R.string.TerminateSession)); buttonTextView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); buttonTextView.setBackground(Theme.createSimpleSelectorRoundRectDrawable(AndroidUtilities.dp(6), Theme.getColor(Theme.key_chat_attachAudioBackground), ColorUtils.setAlphaComponent(Theme.getColor(Theme.key_windowBackgroundWhite), 120))); @@ -246,15 +246,15 @@ public void onClick(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(parentFragment.getParentActivity()); final boolean[] param = new boolean[1]; String buttonText; - builder.setMessage(LocaleController.getString("TerminateSessionText", R.string.TerminateSessionText)); - builder.setTitle(LocaleController.getString("AreYouSureSessionTitle", R.string.AreYouSureSessionTitle)); - buttonText = LocaleController.getString("Terminate", R.string.Terminate); + builder.setMessage(LocaleController.getString(R.string.TerminateSessionText)); + builder.setTitle(LocaleController.getString(R.string.AreYouSureSessionTitle)); + buttonText = LocaleController.getString(R.string.Terminate); builder.setPositiveButton(buttonText, (dialogInterface, option) -> { callback.onSessionTerminated(session); dismiss(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); fragment.showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -290,11 +290,11 @@ private void uploadSessionSettings() { private void copyText(String text) { AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); - builder.setItems(new CharSequence[]{LocaleController.getString("Copy", R.string.Copy)}, (dialogInterface, i) -> { + builder.setItems(new CharSequence[]{LocaleController.getString(R.string.Copy)}, (dialogInterface, i) -> { android.content.ClipboardManager clipboard = (android.content.ClipboardManager) ApplicationLoader.applicationContext.getSystemService(Context.CLIPBOARD_SERVICE); android.content.ClipData clip = android.content.ClipData.newPlainText("label", text); clipboard.setPrimaryClip(clip); - BulletinFactory.of(getContainer(), null).createCopyBulletin(LocaleController.getString("TextCopied", R.string.TextCopied)).show(); + BulletinFactory.of(getContainer(), null).createCopyBulletin(LocaleController.getString(R.string.TextCopied)).show(); }); builder.show(); @@ -323,6 +323,10 @@ private void setAnimation(TLRPC.TL_authorization session, RLottieImageView image iconId = R.raw.chrome_30; colorKey = Theme.key_avatar_backgroundPink; colorKey2 = Theme.key_avatar_background2Pink; + } else if (deviceModel.contains("firefox")) { + iconId = R.raw.firefox_30; + colorKey = Theme.key_avatar_backgroundRed; + colorKey2 = Theme.key_avatar_background2Red; } else if (deviceModel.contains("opera") || deviceModel.contains("firefox") || deviceModel.contains("vivaldi")) { animation = false; if (deviceModel.contains("opera")) { @@ -338,6 +342,10 @@ private void setAnimation(TLRPC.TL_authorization session, RLottieImageView image iconId = R.raw.ubuntu_30; colorKey = Theme.key_avatar_backgroundBlue; colorKey2 = Theme.key_avatar_background2Blue; + } else if (platform.contains("linux")) { + iconId = R.raw.linux_30; + colorKey = Theme.key_avatar_backgroundBlue; + colorKey2 = Theme.key_avatar_background2Blue; } else if (platform.contains("ios")) { iconId = deviceModel.contains("ipad") ? R.raw.ipad_30 : R.raw.iphone_30; colorKey = Theme.key_avatar_backgroundBlue; @@ -429,7 +437,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { info.setClassName("android.widget.Switch"); info.setCheckable(true); info.setChecked(switchView.isChecked()); - info.setText(valueText.getText() + "\n" + descriptionText.getText() + "\n" + (switchView.isChecked() ? LocaleController.getString("NotificationsOn", R.string.NotificationsOn) : LocaleController.getString("NotificationsOff", R.string.NotificationsOff))); + info.setText(valueText.getText() + "\n" + descriptionText.getText() + "\n" + (switchView.isChecked() ? LocaleController.getString(R.string.NotificationsOn) : LocaleController.getString(R.string.NotificationsOff))); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SessionsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/SessionsActivity.java index 2715c440ef..bb0ace363f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SessionsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SessionsActivity.java @@ -174,9 +174,9 @@ public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); if (currentType == 0) { - actionBar.setTitle(LocaleController.getString("Devices", R.string.Devices)); + actionBar.setTitle(LocaleController.getString(R.string.Devices)); } else { - actionBar.setTitle(LocaleController.getString("WebSessionsTitle", R.string.WebSessionsTitle)); + actionBar.setTitle(LocaleController.getString(R.string.WebSessionsTitle)); } actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -237,7 +237,7 @@ public boolean supportsPredictiveItemAnimations() { selected = 3; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("SessionsSelfDestruct", R.string.SessionsSelfDestruct)); + builder.setTitle(LocaleController.getString(R.string.SessionsSelfDestruct)); String[] items = new String[]{ LocaleController.formatPluralString("Weeks", 1), LocaleController.formatPluralString("Months", 3), @@ -282,7 +282,7 @@ public boolean supportsPredictiveItemAnimations() { }); }); } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); showDialog(builder.create()); } else if (position == terminateAllSessionsRow) { if (getParentActivity() == null) { @@ -291,13 +291,13 @@ public boolean supportsPredictiveItemAnimations() { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); String buttonText; if (currentType == 0) { - builder.setMessage(LocaleController.getString("AreYouSureSessions", R.string.AreYouSureSessions)); - builder.setTitle(LocaleController.getString("AreYouSureSessionsTitle", R.string.AreYouSureSessionsTitle)); - buttonText = LocaleController.getString("Terminate", R.string.Terminate); + builder.setMessage(LocaleController.getString(R.string.AreYouSureSessions)); + builder.setTitle(LocaleController.getString(R.string.AreYouSureSessionsTitle)); + buttonText = LocaleController.getString(R.string.Terminate); } else { - builder.setMessage(LocaleController.getString("AreYouSureWebSessions", R.string.AreYouSureWebSessions)); - builder.setTitle(LocaleController.getString("TerminateWebSessionsTitle", R.string.TerminateWebSessionsTitle)); - buttonText = LocaleController.getString("Disconnect", R.string.Disconnect); + builder.setMessage(LocaleController.getString(R.string.AreYouSureWebSessions)); + builder.setTitle(LocaleController.getString(R.string.TerminateWebSessionsTitle)); + buttonText = LocaleController.getString(R.string.Disconnect); } builder.setPositiveButton(buttonText, (dialogInterface, i) -> { if (currentType == 0) { @@ -308,7 +308,7 @@ public boolean supportsPredictiveItemAnimations() { return; } if (error == null && response instanceof TLRPC.TL_boolTrue) { - BulletinFactory.of(SessionsActivity.this).createSimpleBulletin(R.raw.contact_check, LocaleController.getString("AllSessionsTerminated", R.string.AllSessionsTerminated)).show(); + BulletinFactory.of(SessionsActivity.this).createSimpleBulletin(R.raw.contact_check, LocaleController.getString(R.string.AllSessionsTerminated)).show(); loadSessions(false); } }); @@ -331,15 +331,15 @@ public boolean supportsPredictiveItemAnimations() { return; } if (error == null && response instanceof TLRPC.TL_boolTrue) { - BulletinFactory.of(SessionsActivity.this).createSimpleBulletin(R.raw.contact_check, LocaleController.getString("AllWebSessionsTerminated", R.string.AllWebSessionsTerminated)).show(); + BulletinFactory.of(SessionsActivity.this).createSimpleBulletin(R.raw.contact_check, LocaleController.getString(R.string.AllWebSessionsTerminated)).show(); } else { - BulletinFactory.of(SessionsActivity.this).createSimpleBulletin(R.raw.error, LocaleController.getString("UnknownError", R.string.UnknownError)).show(); + BulletinFactory.of(SessionsActivity.this).createSimpleBulletin(R.raw.error, LocaleController.getString(R.string.UnknownError)).show(); } loadSessions(false); })); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -368,15 +368,15 @@ public boolean supportsPredictiveItemAnimations() { final boolean[] param = new boolean[1]; String buttonText; if (currentType == 0) { - builder.setMessage(LocaleController.getString("TerminateSessionText", R.string.TerminateSessionText)); - builder.setTitle(LocaleController.getString("AreYouSureSessionTitle", R.string.AreYouSureSessionTitle)); - buttonText = LocaleController.getString("Terminate", R.string.Terminate); + builder.setMessage(LocaleController.getString(R.string.TerminateSessionText)); + builder.setTitle(LocaleController.getString(R.string.AreYouSureSessionTitle)); + buttonText = LocaleController.getString(R.string.Terminate); } else { final TLRPC.TL_webAuthorization authorization = (TLRPC.TL_webAuthorization) sessions.get(position - otherSessionsStartRow); builder.setMessage(LocaleController.formatString("TerminateWebSessionText", R.string.TerminateWebSessionText, authorization.domain)); - builder.setTitle(LocaleController.getString("TerminateWebSessionTitle", R.string.TerminateWebSessionTitle)); - buttonText = LocaleController.getString("Disconnect", R.string.Disconnect); + builder.setTitle(LocaleController.getString(R.string.TerminateWebSessionTitle)); + buttonText = LocaleController.getString(R.string.Disconnect); FrameLayout frameLayout1 = new FrameLayout(getParentActivity()); @@ -459,7 +459,7 @@ public boolean supportsPredictiveItemAnimations() { } } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -845,14 +845,14 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { textCell.setColors(Theme.key_text_RedRegular, Theme.key_text_RedRegular); textCell.setTag(Theme.key_text_RedRegular); if (currentType == 0) { - textCell.setTextAndIcon(LocaleController.getString("TerminateAllSessions", R.string.TerminateAllSessions), R.drawable.msg_block2, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.TerminateAllSessions), R.drawable.msg_block2, false); } else { - textCell.setTextAndIcon(LocaleController.getString("TerminateAllWebSessions", R.string.TerminateAllWebSessions), R.drawable.msg_block2, false); + textCell.setTextAndIcon(LocaleController.getString(R.string.TerminateAllWebSessions), R.drawable.msg_block2, false); } } else if (position == qrCodeRow) { textCell.setColors(Theme.key_windowBackgroundWhiteBlueText4, Theme.key_windowBackgroundWhiteBlueText4); textCell.setTag(Theme.key_windowBackgroundWhiteBlueText4); - textCell.setTextAndIcon(LocaleController.getString("AuthAnotherClient", R.string.AuthAnotherClient), R.drawable.msg_qrcode, !sessions.isEmpty()); + textCell.setTextAndIcon(LocaleController.getString(R.string.AuthAnotherClient), R.drawable.msg_qrcode, !sessions.isEmpty()); } break; case VIEW_TYPE_INFO: @@ -860,9 +860,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { privacyCell.setFixedSize(0); if (position == terminateAllSessionsDetailRow) { if (currentType == 0) { - privacyCell.setText(LocaleController.getString("ClearOtherSessionsHelp", R.string.ClearOtherSessionsHelp)); + privacyCell.setText(LocaleController.getString(R.string.ClearOtherSessionsHelp)); } else { - privacyCell.setText(LocaleController.getString("ClearOtherWebSessionsHelp", R.string.ClearOtherWebSessionsHelp)); + privacyCell.setText(LocaleController.getString(R.string.ClearOtherWebSessionsHelp)); } privacyCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); } else if (position == otherSessionsTerminateDetail) { @@ -870,14 +870,14 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (sessions.isEmpty()) { privacyCell.setText(""); } else { - privacyCell.setText(LocaleController.getString("SessionsListInfo", R.string.SessionsListInfo)); + privacyCell.setText(LocaleController.getString(R.string.SessionsListInfo)); } } else { - privacyCell.setText(LocaleController.getString("TerminateWebSessionInfo", R.string.TerminateWebSessionInfo)); + privacyCell.setText(LocaleController.getString(R.string.TerminateWebSessionInfo)); } privacyCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow)); } else if (position == passwordSessionsDetailRow) { - privacyCell.setText(LocaleController.getString("LoginAttemptsInfo", R.string.LoginAttemptsInfo)); + privacyCell.setText(LocaleController.getString(R.string.LoginAttemptsInfo)); if (otherSessionsTerminateDetail == -1) { privacyCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); } else { @@ -892,17 +892,17 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case VIEW_TYPE_HEADER: HeaderCell headerCell = (HeaderCell) holder.itemView; if (position == currentSessionSectionRow) { - headerCell.setText(LocaleController.getString("CurrentSession", R.string.CurrentSession)); + headerCell.setText(LocaleController.getString(R.string.CurrentSession)); } else if (position == otherSessionsSectionRow) { if (currentType == 0) { - headerCell.setText(LocaleController.getString("OtherSessions", R.string.OtherSessions)); + headerCell.setText(LocaleController.getString(R.string.OtherSessions)); } else { - headerCell.setText(LocaleController.getString("OtherWebSessions", R.string.OtherWebSessions)); + headerCell.setText(LocaleController.getString(R.string.OtherWebSessions)); } } else if (position == passwordSessionsSectionRow) { - headerCell.setText(LocaleController.getString("LoginAttempts", R.string.LoginAttempts)); + headerCell.setText(LocaleController.getString(R.string.LoginAttempts)); } else if (position == ttlHeaderRow) { - headerCell.setText(LocaleController.getString("TerminateOldSessionHeader", R.string.TerminateOldSessionHeader)); + headerCell.setText(LocaleController.getString(R.string.TerminateOldSessionHeader)); } break; case VIEW_TYPE_SCANQR: @@ -917,7 +917,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else { value = LocaleController.formatPluralString("Weeks", ttlDays / 7); } - textSettingsCell.setTextAndValue(LocaleController.getString("IfInactiveFor", R.string.IfInactiveFor), value, true, false); + textSettingsCell.setTextAndValue(LocaleController.getString(R.string.IfInactiveFor), value, true, false); break; case VIEW_TYPE_SESSION: default: @@ -1051,7 +1051,7 @@ public void onClick(View view) { textView.setHighlightColor(Theme.getColor(Theme.key_windowBackgroundWhiteLinkSelection)); setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); - String text = LocaleController.getString("AuthAnotherClientInfo4", R.string.AuthAnotherClientInfo4); + String text = LocaleController.getString(R.string.AuthAnotherClientInfo4); SpannableStringBuilder spanned = new SpannableStringBuilder(text); int index1 = text.indexOf('*'); int index2 = text.indexOf('*', index1 + 1); @@ -1060,7 +1060,7 @@ public void onClick(View view) { textView.setMovementMethod(new AndroidUtilities.LinkMovementMethodMy()); spanned.replace(index2, index2 + 1, ""); spanned.replace(index1, index1 + 1, ""); - spanned.setSpan(new URLSpanNoUnderline(LocaleController.getString("AuthAnotherClientDownloadClientUrl", R.string.AuthAnotherClientDownloadClientUrl)), index1, index2 - 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + spanned.setSpan(new URLSpanNoUnderline(LocaleController.getString(R.string.AuthAnotherClientDownloadClientUrl)), index1, index2 - 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } text = spanned.toString(); @@ -1071,7 +1071,7 @@ public void onClick(View view) { textView.setMovementMethod(new AndroidUtilities.LinkMovementMethodMy()); spanned.replace(index2, index2 + 1, ""); spanned.replace(index1, index1 + 1, ""); - spanned.setSpan(new URLSpanNoUnderline(LocaleController.getString("AuthAnotherWebClientUrl", R.string.AuthAnotherWebClientUrl)), index1, index2 - 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + spanned.setSpan(new URLSpanNoUnderline(LocaleController.getString(R.string.AuthAnotherWebClientUrl)), index1, index2 - 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } textView.setText(spanned); @@ -1095,7 +1095,7 @@ public void draw(Canvas canvas) { buttonTextView.setTypeface(AndroidUtilities.bold()); SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(); - spannableStringBuilder.append(". ").append(LocaleController.getString("LinkDesktopDevice", R.string.LinkDesktopDevice)); + spannableStringBuilder.append(". ").append(LocaleController.getString(R.string.LinkDesktopDevice)); spannableStringBuilder.setSpan(new ColoredImageSpan(ContextCompat.getDrawable(getContext(), R.drawable.msg_mini_qr)), 0, 1, 0); buttonTextView.setText(spannableStringBuilder); @@ -1201,11 +1201,11 @@ public void didFindQr(String link) { AndroidUtilities.runOnUIThread(() -> { final String text; if (error.text != null && error.text.equals("AUTH_TOKEN_EXCEPTION")) { - text = LocaleController.getString("AccountAlreadyLoggedIn", R.string.AccountAlreadyLoggedIn); + text = LocaleController.getString(R.string.AccountAlreadyLoggedIn); } else { - text = LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred) + "\n" + error.text; + text = LocaleController.getString(R.string.ErrorOccurred) + "\n" + error.text; } - AlertsCreator.showSimpleAlert(SessionsActivity.this, LocaleController.getString("AuthAnotherClient", R.string.AuthAnotherClient), text); + AlertsCreator.showSimpleAlert(SessionsActivity.this, LocaleController.getString(R.string.AuthAnotherClient), text); }); } } @@ -1230,7 +1230,7 @@ public boolean processQr(String link, Runnable onLoadEnd) { } catch (Exception e) { FileLog.e("Failed to pass qr code auth", e); AndroidUtilities.runOnUIThread(() -> { - AlertsCreator.showSimpleAlert(SessionsActivity.this, LocaleController.getString("AuthAnotherClient", R.string.AuthAnotherClient), LocaleController.getString("ErrorOccurred", R.string.ErrorOccurred)); + AlertsCreator.showSimpleAlert(SessionsActivity.this, LocaleController.getString(R.string.AuthAnotherClient), LocaleController.getString(R.string.ErrorOccurred)); }); onLoadEnd.run(); } @@ -1294,8 +1294,8 @@ public void onRequestPermissionsResultFragment(int requestCode, String[] permiss openCameraScanActivity(); } else { new AlertDialog.Builder(getParentActivity()) - .setMessage(AndroidUtilities.replaceTags(LocaleController.getString("QRCodePermissionNoCameraWithHint", R.string.QRCodePermissionNoCameraWithHint))) - .setPositiveButton(LocaleController.getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialogInterface, i) -> { + .setMessage(AndroidUtilities.replaceTags(LocaleController.getString(R.string.QRCodePermissionNoCameraWithHint))) + .setPositiveButton(LocaleController.getString(R.string.PermissionOpenSettings), (dialogInterface, i) -> { try { Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); @@ -1304,7 +1304,7 @@ public void onRequestPermissionsResultFragment(int requestCode, String[] permiss FileLog.e(e); } }) - .setNegativeButton(LocaleController.getString("ContactsPermissionAlertNotNow", R.string.ContactsPermissionAlertNotNow), null) + .setNegativeButton(LocaleController.getString(R.string.ContactsPermissionAlertNotNow), null) .setTopAnimation(R.raw.permission_request_camera, 72, false, Theme.getColor(Theme.key_dialogTopBackground)) .show(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ShareActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ShareActivity.java index 10cedb987a..a786791503 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ShareActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ShareActivity.java @@ -38,6 +38,7 @@ public class ShareActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { ApplicationLoader.postInitApplication(); AndroidUtilities.checkDisplaySize(this, getResources().getConfiguration()); + AndroidUtilities.setPreferredMaxRefreshRate(getWindow()); requestWindowFeature(Window.FEATURE_NO_TITLE); setTheme(R.style.Theme_TMessages_Transparent); super.onCreate(savedInstanceState); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SponsoredMessageInfoView.java b/TMessagesProj/src/main/java/org/telegram/ui/SponsoredMessageInfoView.java index ccdd91e181..81491c2b5c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SponsoredMessageInfoView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SponsoredMessageInfoView.java @@ -31,7 +31,7 @@ public SponsoredMessageInfoView(Context context, Runnable close, Theme.Resources linearLayout.setOrientation(LinearLayout.VERTICAL); TextView textView = new TextView(context); - textView.setText(LocaleController.getString("SponsoredMessageInfo", R.string.SponsoredMessageInfo)); + textView.setText(LocaleController.getString(R.string.SponsoredMessageInfo)); textView.setTypeface(AndroidUtilities.bold()); textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); @@ -89,7 +89,7 @@ public void onClick(View view) { }); button.setPadding(AndroidUtilities.dp(12), 0, AndroidUtilities.dp(12), 0); - button.setText(LocaleController.getString("SponsoredMessageAlertLearnMoreUrl", R.string.SponsoredMessageAlertLearnMoreUrl)); + button.setText(LocaleController.getString(R.string.SponsoredMessageAlertLearnMoreUrl)); button.setTextColor(Theme.getColor(Theme.key_featuredStickers_addButton, resourcesProvider)); button.setBackground(Theme.AdaptiveRipple.filledRect(Theme.getColor(Theme.key_dialogBackground, resourcesProvider), 4)); button.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stars/BotStarsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Stars/BotStarsActivity.java index abb4b18498..32a6835604 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stars/BotStarsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stars/BotStarsActivity.java @@ -1,10 +1,7 @@ package org.telegram.ui.Stars; import static org.telegram.messenger.AndroidUtilities.dp; -import static org.telegram.messenger.AndroidUtilities.dpf2; -import static org.telegram.messenger.LocaleController.formatPluralString; import static org.telegram.messenger.LocaleController.getString; -import static org.telegram.ui.ActionBar.Theme.key_statisticChartLine_golden; import android.app.Activity; import android.content.Context; @@ -12,28 +9,23 @@ import android.graphics.PorterDuffColorFilter; import android.graphics.Typeface; import android.graphics.drawable.Drawable; -import android.os.Bundle; import android.text.Editable; import android.text.InputType; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.TextUtils; import android.text.TextWatcher; -import android.text.method.PasswordTransformationMethod; import android.text.style.RelativeSizeSpan; -import android.util.Log; import android.util.TypedValue; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.inputmethod.EditorInfo; -import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Space; import android.widget.TextView; -import androidx.annotation.NonNull; import androidx.core.view.NestedScrollingParent3; import androidx.core.view.NestedScrollingParentHelper; import androidx.core.view.ViewCompat; @@ -51,25 +43,19 @@ import org.telegram.messenger.UserObject; import org.telegram.messenger.browser.Browser; import org.telegram.tgnet.ConnectionsManager; -import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; -import org.telegram.tgnet.tl.TL_stats; import org.telegram.ui.ActionBar.ActionBar; import org.telegram.ui.ActionBar.AlertDialog; import org.telegram.ui.ActionBar.BackDrawable; import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.ChannelMonetizationLayout; -import org.telegram.ui.Charts.data.ChartData; import org.telegram.ui.Components.AnimatedTextView; import org.telegram.ui.Components.Bulletin; import org.telegram.ui.Components.BulletinFactory; import org.telegram.ui.Components.ChatAvatarContainer; -import org.telegram.ui.Components.CircularProgressDrawable; import org.telegram.ui.Components.ColoredImageSpan; -import org.telegram.ui.Components.CubicBezierInterpolator; import org.telegram.ui.Components.EditTextBoldCursor; -import org.telegram.ui.Components.FlickerLoadingView; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.OutlineTextContainerView; import org.telegram.ui.Components.RecyclerListView; @@ -77,16 +63,12 @@ import org.telegram.ui.Components.UItem; import org.telegram.ui.Components.UniversalAdapter; import org.telegram.ui.Components.UniversalRecyclerView; -import org.telegram.ui.GradientHeaderActivity; import org.telegram.ui.StatisticActivity; import org.telegram.ui.Stories.recorder.ButtonWithCounterView; import org.telegram.ui.TwoStepVerificationActivity; import org.telegram.ui.TwoStepVerificationSetupActivity; -import java.text.DecimalFormat; -import java.text.DecimalFormatSymbols; import java.util.ArrayList; -import java.util.List; import java.util.Locale; public class BotStarsActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate { @@ -109,6 +91,7 @@ public class BotStarsActivity extends BaseFragment implements NotificationCenter private int balanceBlockedUntil; private LinearLayout balanceLayout; + private LinearLayout balanceButtonsLayout; private RelativeSizeSpan balanceTitleSizeSpan; private AnimatedTextView balanceTitle; private AnimatedTextView balanceSubtitle; @@ -277,7 +260,7 @@ public void afterTextChanged(Editable s) { balanceLayout.addView(balanceEditTextContainer, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 18, 14, 18, 2)); balanceEditTextContainer.setVisibility(View.GONE); - LinearLayout balanceButtonsLayout = new LinearLayout(context); + balanceButtonsLayout = new LinearLayout(context); balanceButtonsLayout.setOrientation(LinearLayout.HORIZONTAL); balanceButton = new ButtonWithCounterView(context, getResourceProvider()) { @@ -388,6 +371,8 @@ private void fillItems(ArrayList items, UniversalAdapter adapter) { totalProceedsValue.currency = "USD"; totalProceedsValue.amount = (long) (stats.status.overall_revenue * rate * 100.0); setBalance(stats.status.available_balance, stats.status.next_withdrawal_at); + + balanceButtonsLayout.setVisibility(stats.status.withdrawal_enabled ? View.VISIBLE : View.GONE); } items.add(UItem.asProceedOverview(availableValue)); items.add(UItem.asProceedOverview(totalValue)); @@ -457,7 +442,7 @@ private void setBalance(long crypto_amount, int blockedUntil) { AndroidUtilities.runOnUIThread(this.setBalanceButtonText, 1000); } else { balanceButton.setSubText(null, true); - balanceButton.setText(StarsIntroActivity.replaceStars(balanceEditTextAll ? getString(R.string.BotStarsButtonWithdrawShortAll) : LocaleController.formatPluralStringComma("BotStarsButtonWithdrawShort", (int) balanceEditTextValue, ' '), starRef), true); + balanceButton.setText(StarsIntroActivity.replaceStars(balanceEditTextAll ? getString(R.string.BotStarsButtonWithdrawShortAll) : LocaleController.formatPluralStringSpaced("BotStarsButtonWithdrawShort", (int) balanceEditTextValue), starRef), true); } }; @@ -676,7 +661,7 @@ private void initWithdraw(long stars, TLRPC.InputCheckPasswordSRP password, TwoS passwordFragment.needHideProgress(); } AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity); - builder.setTitle(LocaleController.getString("EditAdminTransferAlertTitle", R.string.EditAdminTransferAlertTitle)); + builder.setTitle(LocaleController.getString(R.string.EditAdminTransferAlertTitle)); LinearLayout linearLayout = new LinearLayout(parentActivity); linearLayout.setPadding(AndroidUtilities.dp(24), AndroidUtilities.dp(2), AndroidUtilities.dp(24), 0); @@ -703,7 +688,7 @@ private void initWithdraw(long stars, TLRPC.InputCheckPasswordSRP password, TwoS messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("EditAdminTransferAlertText1", R.string.EditAdminTransferAlertText1))); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.EditAdminTransferAlertText1))); if (LocaleController.isRTL) { linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT)); @@ -725,7 +710,7 @@ private void initWithdraw(long stars, TLRPC.InputCheckPasswordSRP password, TwoS messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); - messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString("EditAdminTransferAlertText2", R.string.EditAdminTransferAlertText2))); + messageTextView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.EditAdminTransferAlertText2))); if (LocaleController.isRTL) { linearLayout2.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); linearLayout2.addView(dotImageView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT)); @@ -735,17 +720,17 @@ private void initWithdraw(long stars, TLRPC.InputCheckPasswordSRP password, TwoS } if ("PASSWORD_MISSING".equals(error.text)) { - builder.setPositiveButton(LocaleController.getString("EditAdminTransferSetPassword", R.string.EditAdminTransferSetPassword), (dialogInterface, i) -> presentFragment(new TwoStepVerificationSetupActivity(TwoStepVerificationSetupActivity.TYPE_INTRO, null))); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.EditAdminTransferSetPassword), (dialogInterface, i) -> presentFragment(new TwoStepVerificationSetupActivity(TwoStepVerificationSetupActivity.TYPE_INTRO, null))); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); } else { messageTextView = new TextView(parentActivity); messageTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); messageTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); - messageTextView.setText(LocaleController.getString("EditAdminTransferAlertText3", R.string.EditAdminTransferAlertText3)); + messageTextView.setText(LocaleController.getString(R.string.EditAdminTransferAlertText3)); linearLayout.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 11, 0, 0)); - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); } if (passwordFragment != null) { passwordFragment.showDialog(builder.create()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarReactionsOverlay.java b/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarReactionsOverlay.java index 51fcf7651a..4c3712430b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarReactionsOverlay.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarReactionsOverlay.java @@ -48,6 +48,7 @@ public class StarReactionsOverlay extends View { private final RectF reactionBounds = new RectF(); private final RectF clickBounds = new RectF(); private final Paint shadowPaint = new Paint(); + private final Paint redPaint = new Paint(); private boolean counterShown; // private final AnimatedFloat counterX = new AnimatedFloat(this, 0, 320, CubicBezierInterpolator.EASE_OUT_QUINT); @@ -72,26 +73,7 @@ public StarReactionsOverlay(ChatActivity chatActivity) { hideCounterRunnable = () -> { counterShown = false; invalidate(); - if (cell != null && cell.getPrimaryMessageObject() != null) { - final MessageObject msg = cell.getPrimaryMessageObject(); - final StarsController starsController = StarsController.getInstance(chatActivity.getCurrentAccount()); - final long totalStars = starsController.getPendingPaidReactions(msg); - if (starsController.balanceAvailable() && starsController.getBalance() < totalStars) { - StarsController.getInstance(chatActivity.getCurrentAccount()).undoPaidReaction(); - final long dialogId = chatActivity.getDialogId(); - String name; - if (dialogId >= 0) { - TLRPC.User user = chatActivity.getMessagesController().getUser(dialogId); - name = UserObject.getForcedFirstName(user); - } else { - TLRPC.Chat chat = chatActivity.getMessagesController().getChat(-dialogId); - name = chat == null ? "" : chat.title; - } - new StarsIntroActivity.StarsNeededSheet(chatActivity.getContext(), chatActivity.getResourceProvider(), totalStars, StarsIntroActivity.StarsNeededSheet.TYPE_REACTIONS, name, () -> { - starsController.sendPaidReaction(msg, chatActivity, totalStars, true, true, null); - }).show(); - } - } + checkBalance(); hide(); }; @@ -110,21 +92,47 @@ public StarReactionsOverlay(ChatActivity chatActivity) { StarsController.getInstance(msg.currentAccount).commitPaidReaction(); - StarsReactionsSheet sheet = new StarsReactionsSheet(getContext(), chatActivity.getCurrentAccount(), chatActivity.getDialogId(), chatActivity, msg, reactors, chatActivity.getResourceProvider()); + final TLRPC.ChatFull chatFull = chatActivity.getCurrentChatInfo(); + final StarsReactionsSheet sheet = new StarsReactionsSheet(getContext(), chatActivity.getCurrentAccount(), chatActivity.getDialogId(), chatActivity, msg, reactors, chatFull == null || chatFull.paid_reactions_available, chatActivity.getResourceProvider()); sheet.setMessageCell(chatActivity, msg.getId(), cell); sheet.show(); }; } + private void checkBalance() { + if (cell != null && cell.getPrimaryMessageObject() != null) { + final MessageObject msg = cell.getPrimaryMessageObject(); + final StarsController starsController = StarsController.getInstance(chatActivity.getCurrentAccount()); + final long totalStars = starsController.getPendingPaidReactions(msg); + if (starsController.balanceAvailable() && starsController.getBalance(false) < totalStars) { + StarsController.getInstance(chatActivity.getCurrentAccount()).undoPaidReaction(); + final long dialogId = chatActivity.getDialogId(); + String name; + if (dialogId >= 0) { + TLRPC.User user = chatActivity.getMessagesController().getUser(dialogId); + name = UserObject.getForcedFirstName(user); + } else { + TLRPC.Chat chat = chatActivity.getMessagesController().getChat(-dialogId); + name = chat == null ? "" : chat.title; + } + new StarsIntroActivity.StarsNeededSheet(chatActivity.getContext(), chatActivity.getResourceProvider(), totalStars, StarsIntroActivity.StarsNeededSheet.TYPE_REACTIONS, name, () -> { + starsController.sendPaidReaction(msg, chatActivity, totalStars, true, true, null); + }).show(); + } + } + } + public void setMessageCell(ChatMessageCell cell) { if (this.cell == cell) return; if (this.cell != null) { this.cell.setScrimReaction(null); this.cell.setInvalidateListener(null); + this.cell.invalidate(); } this.cell = cell; this.messageId = cell != null && cell.getPrimaryMessageObject() != null ? cell.getPrimaryMessageObject().getId() : 0; if (this.cell != null) { + this.cell.invalidate(); this.cell.setInvalidateListener(this::invalidate); } invalidate(); @@ -169,7 +177,8 @@ protected void dispatchDraw(Canvas canvas) { } canvas.translate(pos[0] - pos2[0], pos[1] - pos2[1]); cell.setScrimReaction(null); - cell.drawReactionsLayout(canvas, 0f, hash); + cell.drawReactionsLayout(canvas, 1f, hash); + cell.drawReactionsLayoutOverlay(canvas, 1f); cell.setScrimReaction(hash); // AndroidUtilities.rectTmp.set(cell.getBackgroundDrawableRight() - dp(24), 0, cell.getBackgroundDrawableRight(), cell.getHeight()); // clip.draw(canvas, AndroidUtilities.rectTmp, GradientClip.RIGHT, 1f); @@ -225,6 +234,10 @@ protected void dispatchDraw(Canvas canvas) { } + if (!counterShown) { + checkBalance(); + } + invalidate(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarsController.java b/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarsController.java index 8897d9930e..3056a4db71 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarsController.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarsController.java @@ -32,10 +32,12 @@ import org.telegram.messenger.MessagesController; import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.R; +import org.telegram.messenger.SendMessagesHelper; import org.telegram.messenger.UserConfig; import org.telegram.messenger.UserObject; import org.telegram.messenger.Utilities; import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.AlertDialog; import org.telegram.ui.ActionBar.BaseFragment; @@ -51,6 +53,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.List; import java.util.Objects; public class StarsController { @@ -87,11 +90,21 @@ private StarsController(int account) { private long lastBalanceLoaded; private boolean balanceLoading, balanceLoaded; public long balance; + public long minus; + public long getBalance() { return getBalance(null); } + public long getBalance(boolean withMinus) { + return getBalance(withMinus, null); + } + public long getBalance(Runnable loaded) { + return getBalance(true, loaded); + } + + public long getBalance(boolean withMinus, Runnable loaded) { if ((!balanceLoaded || System.currentTimeMillis() - lastBalanceLoaded > 1000 * 60) && !balanceLoading) { balanceLoading = true; TLRPC.TL_payments_getStarsStatus req = new TLRPC.TL_payments_getStarsStatus(); @@ -134,6 +147,7 @@ public long getBalance(Runnable loaded) { updatedBalance = true; } this.balance = r.balance; + this.minus = 0; } balanceLoading = false; balanceLoaded = true; @@ -152,7 +166,7 @@ public long getBalance(Runnable loaded) { } })); } - return balance; + return Math.max(0, balance - (withMinus ? minus : 0)); } public void invalidateBalance() { @@ -164,6 +178,10 @@ public void invalidateBalance() { public void updateBalance(long balance) { if (this.balance != balance) { this.balance = balance; + this.minus = 0; + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.starBalanceUpdated); + } else if (this.minus != 0) { + this.minus = 0; NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.starBalanceUpdated); } } @@ -348,6 +366,94 @@ public ArrayList getGiftOptions() { return giftOptions; } + private boolean giveawayOptionsLoading, giveawayOptionsLoaded; + private ArrayList giveawayOptions; + public ArrayList getGiveawayOptionsCached() { + return giveawayOptions; + } + public ArrayList getGiveawayOptions() { + if (giveawayOptionsLoading || giveawayOptionsLoaded) { + return giveawayOptions; + } + giveawayOptionsLoading = true; + TLRPC.TL_payments_getStarsGiveawayOptions req = new TLRPC.TL_payments_getStarsGiveawayOptions(); + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + ArrayList loadedOptions = new ArrayList<>(); + ArrayList toLoadStorePrice = new ArrayList<>(); + if (res instanceof TLRPC.Vector) { + TLRPC.Vector vector = (TLRPC.Vector) res; + for (Object object : vector.objects) { + if (object instanceof TLRPC.TL_starsGiveawayOption) { + TLRPC.TL_starsGiveawayOption option = (TLRPC.TL_starsGiveawayOption) object; + loadedOptions.add(option); + if (option.store_product != null && !BuildVars.useInvoiceBilling()) { + toLoadStorePrice.add(option); + option.loadingStorePrice = true; + } + } + } + giveawayOptionsLoaded = true; + } + giveawayOptions = loadedOptions; + giveawayOptionsLoading = false; + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.starGiveawayOptionsLoaded); + if (!toLoadStorePrice.isEmpty()) { + Runnable fetchStorePrices = () -> { + ArrayList productQueries = new ArrayList<>(); + for (int i = 0; i < toLoadStorePrice.size(); ++i) { + productQueries.add( + QueryProductDetailsParams.Product.newBuilder() + .setProductType(BillingClient.ProductType.INAPP) + .setProductId(toLoadStorePrice.get(i).store_product) + .build() + ); + } + BillingController.getInstance().queryProductDetails(productQueries, (result, list) -> AndroidUtilities.runOnUIThread(() -> { + if (result.getResponseCode() != BillingClient.BillingResponseCode.OK) { + bulletinError("BILLING_" + BillingController.getResponseCodeString(result.getResponseCode())); + return; + } + if (list != null) { + for (int i = 0; i < list.size(); ++i) { + ProductDetails productDetails = list.get(i); + TLRPC.TL_starsGiveawayOption option = null; + for (int j = 0; j < toLoadStorePrice.size(); ++j) { + if (toLoadStorePrice.get(j).store_product.equals(productDetails.getProductId())) { + option = toLoadStorePrice.get(j); + break; + } + } + if (option == null) continue; + + ProductDetails.OneTimePurchaseOfferDetails offerDetails = productDetails.getOneTimePurchaseOfferDetails(); + if (offerDetails != null) { + option.currency = offerDetails.getPriceCurrencyCode(); + option.amount = (long) ((offerDetails.getPriceAmountMicros() / Math.pow(10, 6)) * Math.pow(10, BillingController.getInstance().getCurrencyExp(option.currency))); + option.loadingStorePrice = false; + } + } + } + if (giveawayOptions != null) { + for (int i = 0; i < giveawayOptions.size(); ++i) { + TLRPC.TL_starsGiveawayOption option = giveawayOptions.get(i); + if (option != null && option.loadingStorePrice) { + option.missingStorePrice = true; + } + } + } + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.starGiveawayOptionsLoaded); + })); + }; + if (!BillingController.getInstance().isReady()) { + BillingController.getInstance().whenSetuped(fetchStorePrices); + } else { + fetchStorePrices.run(); + } + } + })); + return giveawayOptions; + } + private void bulletinError(TLRPC.TL_error err, String str) { bulletinError(err == null ? str : err.text); } @@ -816,6 +922,169 @@ public void buyGift(Activity activity, TLRPC.TL_starsGiftOption option, long use })); } + public void buyGiveaway( + Activity activity, + TLRPC.Chat chat, List chats, + TLRPC.TL_starsGiveawayOption option, int users, + List countries, + int date, + boolean winnersVisible, + boolean onlyNewSubscribers, + boolean withAdditionPrize, String prizeDescription, + Utilities.Callback2 whenDone + ) { + if (activity == null) { + return; + } + + if (!MessagesController.getInstance(currentAccount).starsPurchaseAvailable()) { + BaseFragment lastFragment = LaunchActivity.getLastFragment(); + if (lastFragment != null && lastFragment.getContext() != null) { + showNoSupportDialog(lastFragment.getContext(), lastFragment.getResourceProvider()); + } else { + showNoSupportDialog(activity, null); + } + return; + } + + TLRPC.TL_inputStorePaymentStarsGiveaway payload = new TLRPC.TL_inputStorePaymentStarsGiveaway(); + payload.only_new_subscribers = onlyNewSubscribers; + payload.winners_are_visible = winnersVisible; + payload.stars = option.stars; + payload.boost_peer = MessagesController.getInstance(currentAccount).getInputPeer(chat); + if (chats != null && !chats.isEmpty()) { + payload.flags |= 2; + for (TLObject obj : chats) { + payload.additional_peers.add(MessagesController.getInstance(currentAccount).getInputPeer(obj)); + } + } + for (TLObject object : countries) { + TLRPC.TL_help_country country = (TLRPC.TL_help_country) object; + payload.countries_iso2.add(country.iso2); + } + if (!payload.countries_iso2.isEmpty()) { + payload.flags |= 4; + } + if (withAdditionPrize) { + payload.flags |= 16; + payload.prize_description = prizeDescription; + } + payload.random_id = SendMessagesHelper.getInstance(currentAccount).getNextRandomId(); + payload.until_date = date; + payload.currency = option.currency; + payload.amount = option.amount; + payload.users = users; + + if (BuildVars.useInvoiceBilling() || !BillingController.getInstance().isReady() || option.store_product == null) { + + TLRPC.TL_inputInvoiceStars invoice = new TLRPC.TL_inputInvoiceStars(); + invoice.purpose = payload; + + TLRPC.TL_payments_getPaymentForm req = new TLRPC.TL_payments_getPaymentForm(); + final JSONObject themeParams = BotWebViewSheet.makeThemeParams(getResourceProvider()); + if (themeParams != null) { + req.theme_params = new TLRPC.TL_dataJSON(); + req.theme_params.data = themeParams.toString(); + req.flags |= 1; + } + req.invoice = invoice; + + ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { + if (error != null) { + if (whenDone != null) { + whenDone.run(false, error.text); + } + return; + } + PaymentFormActivity paymentFormActivity = null; + if (response instanceof TLRPC.PaymentForm) { + TLRPC.PaymentForm form = (TLRPC.PaymentForm) response; + form.invoice.recurring = true; + MessagesController.getInstance(currentAccount).putUsers(form.users, false); + paymentFormActivity = new PaymentFormActivity(form, invoice, null); + } else if (response instanceof TLRPC.PaymentReceipt) { + paymentFormActivity = new PaymentFormActivity((TLRPC.PaymentReceipt) response); + } + if (paymentFormActivity != null) { + paymentFormActivity.setPaymentFormCallback(status -> { + if (status == PaymentFormActivity.InvoiceStatus.PAID) { + if (whenDone != null) { + whenDone.run(true, null); + } + } else if (status != PaymentFormActivity.InvoiceStatus.PENDING) { + if (whenDone != null) { + whenDone.run(false, null); + } + } + }); + BaseFragment lastFragment = LaunchActivity.getLastFragment(); + if (lastFragment == null) return; + if (AndroidUtilities.hasDialogOnTop(lastFragment)) { + BaseFragment.BottomSheetParams bottomSheetParams = new BaseFragment.BottomSheetParams(); + bottomSheetParams.transitionFromLeft = true; + bottomSheetParams.allowNestedScroll = false; + lastFragment.showAsSheet(paymentFormActivity, bottomSheetParams); + } else { + lastFragment.presentFragment(paymentFormActivity); + } + } else { + if (whenDone != null) { + whenDone.run(false, "UNKNOWN_RESPONSE"); + } + } + })); + + return; + } + + QueryProductDetailsParams.Product product = QueryProductDetailsParams.Product.newBuilder() + .setProductType(BillingClient.ProductType.INAPP) + .setProductId(option.store_product) + .build(); + BillingController.getInstance().queryProductDetails(Arrays.asList(product), (billingResult, list) -> AndroidUtilities.runOnUIThread(() -> { + if (list.isEmpty()) { + AndroidUtilities.runOnUIThread(() -> whenDone.run(false, "PRODUCT_NOT_FOUND")); + return; + } + + ProductDetails productDetails = list.get(0); + ProductDetails.OneTimePurchaseOfferDetails offerDetails = productDetails.getOneTimePurchaseOfferDetails(); + if (offerDetails == null) { + AndroidUtilities.runOnUIThread(() -> whenDone.run(false, "PRODUCT_NO_ONETIME_OFFER_DETAILS")); + return; + } + + TLRPC.TL_payments_canPurchasePremium checkReq = new TLRPC.TL_payments_canPurchasePremium(); + checkReq.purpose = payload; + ConnectionsManager.getInstance(currentAccount).sendRequest(checkReq, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + if (res instanceof TLRPC.TL_boolTrue) { + BillingController.getInstance().addResultListener(productDetails.getProductId(), billingResult1 -> { + final boolean success = billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK; + final String error = success ? null : BillingController.getResponseCodeString(billingResult.getResponseCode()); + AndroidUtilities.runOnUIThread(() -> whenDone.run(success, error)); + }); + BillingController.getInstance().setOnCanceled(() -> { + AndroidUtilities.runOnUIThread(() -> whenDone.run(false, null)); + }); + BillingController.getInstance().launchBillingFlow( + activity, AccountInstance.getInstance(UserConfig.selectedAccount), payload, + Collections.singletonList(BillingFlowParams.ProductDetailsParams.newBuilder() + .setProductDetails(list.get(0)) + .build()) + ); + } else if (res instanceof TLRPC.TL_boolFalse) { + if (whenDone != null) { + whenDone.run(false, "PURCHASE_FORBIDDEN"); + } + } else { + if (whenDone != null) { + whenDone.run(false, err != null ? err.text : "SERVER_ERROR"); + } + } + })); + })); + } + public Runnable pay(MessageObject messageObject, Runnable whenShown) { final Context context = LaunchActivity.instance != null ? LaunchActivity.instance : ApplicationLoader.applicationContext; final Theme.ResourcesProvider resourcesProvider = getResourceProvider(); @@ -1369,7 +1638,8 @@ public static MessageId from(long did, int mid) { return new MessageId(did, mid); } public static MessageId from(MessageObject msg) { - if (msg.messageOwner.isThreadMessage && msg.messageOwner.fwd_from != null) { + if (msg == null) return null; + if (msg.messageOwner != null && (msg.messageOwner.isThreadMessage || msg.isForwardedChannelPost()) && msg.messageOwner.fwd_from != null) { return new MessageId(msg.getFromChatId(), msg.messageOwner.fwd_from.saved_from_msg_id); } else { return new MessageId(msg.getDialogId(), msg.getId()); @@ -1398,15 +1668,9 @@ public boolean arePaidReactionsAnonymous(MessageObject messageObject) { if (messageSettings != null) { return messageSettings; } - final long did = messageObject == null ? 0 : messageObject.getDialogId(); - final SharedPreferences prefs = MessagesController.getInstance(currentAccount).getMainSettings(); - if (prefs.contains("anon_react_" + did)) { - return prefs.getBoolean("anon_react_" + did, false); - } - if (prefs.contains("anon_react_" + 0)) { - return prefs.getBoolean("anon_react_" + 0, false); - } - return false; + final MessagesController messagesController = MessagesController.getInstance(currentAccount); + Boolean anonymous = messagesController.arePaidReactionsAnonymous(); + return anonymous != null ? anonymous : false; } public boolean arePaidReactionsAnonymous(MessageId id, TLRPC.MessageReactions reactions) { @@ -1417,19 +1681,9 @@ public boolean arePaidReactionsAnonymous(MessageId id, TLRPC.MessageReactions re if (messageSettings != null) { return messageSettings; } - final SharedPreferences prefs = MessagesController.getInstance(currentAccount).getMainSettings(); - if (prefs.contains("anon_react_" + id.did)) { - return prefs.getBoolean("anon_react_" + id.did, false); - } - if (prefs.contains("anon_react_" + 0)) { - return prefs.getBoolean("anon_react_" + 0, false); - } - return false; - } - - public void saveAnonymous(MessageObject messageObject, boolean value) { - final SharedPreferences prefs = MessagesController.getInstance(currentAccount).getMainSettings(); - prefs.edit().putBoolean("anon_react_" + (messageObject == null ? 0 : messageObject.getDialogId()), value).putBoolean("anon_react_0", value).apply(); + final MessagesController messagesController = MessagesController.getInstance(currentAccount); + Boolean anonymous = messagesController.arePaidReactionsAnonymous(); + return anonymous != null ? anonymous : false; } public class PendingPaidReactions { @@ -1452,6 +1706,7 @@ public class PendingPaidReactions { public long not_added; public boolean applied; + public boolean shownBulletin; public Boolean anonymous = null; public boolean isAnonymous() { @@ -1459,10 +1714,6 @@ public boolean isAnonymous() { return arePaidReactionsAnonymous(messageObject); } - private void saveAnonymous() { - StarsController.this.saveAnonymous(messageObject, isAnonymous()); - } - public StarReactionsOverlay overlay; public void setOverlay(StarReactionsOverlay overlay) { this.overlay = overlay; @@ -1483,7 +1734,7 @@ public PendingPaidReactions( final Context context = getContext(chatActivity); bulletinLayout = new Bulletin.TwoLineAnimatedLottieLayout(context, chatActivity.themeDelegate); bulletinLayout.setAnimation(R.raw.stars_topup); - bulletinLayout.titleTextView.setText(LocaleController.getString(R.string.StarsSentTitle)); + bulletinLayout.titleTextView.setText(LocaleController.getString(isAnonymous() ? R.string.StarsSentAnonymouslyTitle : R.string.StarsSentTitle)); bulletinButton = new Bulletin.UndoButton(context, true, false, chatActivity.themeDelegate); bulletinButton.setText(LocaleController.getString(R.string.StarsSentUndo)); bulletinButton.setUndoAction(this::cancel); @@ -1495,7 +1746,10 @@ public PendingPaidReactions( bulletinLayout.setButton(bulletinButton); bulletin = BulletinFactory.of(chatActivity).create(bulletinLayout, -1); bulletin.hideAfterBottomSheet = false; - if (affect) bulletin.show(true); + if (affect) { + bulletin.show(true); + shownBulletin = true; + } bulletin.setOnHideListener(closeRunnable); this.amount = 0; @@ -1518,14 +1772,18 @@ public void add(long amount, boolean affect) { bulletinLayout.subtitleTextView.cancelAnimation(); bulletinLayout.subtitleTextView.setText(AndroidUtilities.replaceTags(LocaleController.formatPluralString("StarsSentText", (int) this.amount)), true); - timerView.timeLeft = REACTIONS_TIMEOUT; - AndroidUtilities.cancelRunOnUIThread(closeRunnable); - AndroidUtilities.runOnUIThread(closeRunnable, REACTIONS_TIMEOUT); + if (shownBulletin) { + timerView.timeLeft = REACTIONS_TIMEOUT; + AndroidUtilities.cancelRunOnUIThread(closeRunnable); + AndroidUtilities.runOnUIThread(closeRunnable, REACTIONS_TIMEOUT); + } if (affect) { applied = true; messageObject.addPaidReactions((int) +amount, true, isAnonymous()); + minus += amount; NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didUpdateReactions, messageObject.getDialogId(), messageObject.getId(), messageObject.messageOwner.reactions); + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.starBalanceUpdated); } else { applied = false; if (messageObject.ensurePaidReactionsExist(true)) { @@ -1534,21 +1792,31 @@ public void add(long amount, boolean affect) { NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didUpdateReactions, messageObject.getDialogId(), messageObject.getId(), messageObject.messageOwner.reactions); not_added += amount; } + + bulletinLayout.titleTextView.setText(LocaleController.getString(isAnonymous() ? R.string.StarsSentAnonymouslyTitle : R.string.StarsSentTitle)); } public void apply() { - if (applied) return; - applied = true; + if (!applied) { + applied = true; + messageObject.addPaidReactions((int) +not_added, true, isAnonymous()); + minus += not_added; + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.starBalanceUpdated); + not_added = 0; + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didUpdateReactions, messageObject.getDialogId(), messageObject.getId(), messageObject.messageOwner.reactions); + } + if (!shownBulletin) { + shownBulletin = true; - timerView.timeLeft = REACTIONS_TIMEOUT; - AndroidUtilities.cancelRunOnUIThread(closeRunnable); - AndroidUtilities.runOnUIThread(closeRunnable, REACTIONS_TIMEOUT); + timerView.timeLeft = REACTIONS_TIMEOUT; + AndroidUtilities.cancelRunOnUIThread(closeRunnable); + AndroidUtilities.runOnUIThread(closeRunnable, REACTIONS_TIMEOUT); - messageObject.addPaidReactions((int) +not_added, true, isAnonymous()); - not_added = 0; - NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didUpdateReactions, messageObject.getDialogId(), messageObject.getId(), messageObject.messageOwner.reactions); - bulletin.show(true); - bulletin.setOnHideListener(closeRunnable); + bulletin.show(true); + bulletin.setOnHideListener(closeRunnable); + } + + bulletinLayout.titleTextView.setText(LocaleController.getString(isAnonymous() ? R.string.StarsSentAnonymouslyTitle : R.string.StarsSentTitle)); } public final Runnable closeRunnable = this::close; @@ -1560,6 +1828,8 @@ public void close() { } else { cancelled = true; messageObject.addPaidReactions((int) -amount, wasChosen, isAnonymous()); + minus -= amount; + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.starBalanceUpdated); } bulletin.hide(); if (overlay != null && overlay.isShowing(messageObject)) { @@ -1582,6 +1852,8 @@ public void cancel() { } messageObject.addPaidReactions((int) -amount, wasChosen, isAnonymous()); + minus -= amount; + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.starBalanceUpdated); NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didUpdateReactions, messageObject.getDialogId(), messageObject.getId(), messageObject.messageOwner.reactions); if (currentPendingReactions == this) { @@ -1599,10 +1871,12 @@ public void commit() { final ConnectionsManager connectionsManager = ConnectionsManager.getInstance(currentAccount); final long totalStars = amount; - if (starsController.balanceAvailable() && starsController.getBalance() < totalStars) { + if (starsController.balanceAvailable() && starsController.getBalance(false) < totalStars) { cancelled = true; messageObject.addPaidReactions((int) -amount, wasChosen, isAnonymous()); + minus = 0; + NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.starBalanceUpdated); NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didUpdateReactions, messageObject.getDialogId(), messageObject.getId(), messageObject.messageOwner.reactions); String name; @@ -1631,7 +1905,8 @@ public void commit() { req.random_id = random_id; req.count = (int) amount; req.isPrivate = isAnonymous(); - saveAnonymous(); + + invalidateBalance(); connectionsManager.sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { if (response != null) { @@ -1691,7 +1966,7 @@ public StarsController.PendingPaidReactions sendPaidReaction( final long totalStars = amount; final Context context = getContext(chatActivity); if (context == null) return null; - if (checkBalance && s.balanceAvailable() && s.getBalance() <= 0) { + if (checkBalance && s.balanceAvailable() && s.getBalance(false) <= 0) { final long dialogId = chatActivity.getDialogId(); String name; if (dialogId >= 0) { @@ -1706,9 +1981,6 @@ public StarsController.PendingPaidReactions sendPaidReaction( }).show(); return null; } - if (messageObject != null && !messageObject.doesPaidReactionExist()) { - affect = true; - } if (currentPendingReactions == null || !currentPendingReactions.message.equals(key)) { if (currentPendingReactions != null) { currentPendingReactions.close(); @@ -1721,7 +1993,7 @@ public StarsController.PendingPaidReactions sendPaidReaction( currentPendingReactions = new PendingPaidReactions(key, messageObject, chatActivity, ConnectionsManager.getInstance(currentAccount).getCurrentTime(), affect); } final long totalStars2 = currentPendingReactions.amount + amount; - if (checkBalance && s.balanceAvailable() && s.getBalance() < totalStars2) { + if (checkBalance && s.balanceAvailable() && s.getBalance(false) < totalStars2) { currentPendingReactions.cancel(); final long dialogId = chatActivity.getDialogId(); String name; @@ -1737,7 +2009,7 @@ public StarsController.PendingPaidReactions sendPaidReaction( }).show(); return null; } - currentPendingReactions.add(amount, affect); + currentPendingReactions.add(amount, (messageObject != null && !messageObject.doesPaidReactionExist()) || affect); currentPendingReactions.anonymous = anonymous; return currentPendingReactions; } @@ -1765,7 +2037,7 @@ public boolean hasPendingPaidReactions(MessageObject messageObject) { public long getPendingPaidReactions(MessageObject messageObject) { if (messageObject == null || messageObject.messageOwner == null) return 0; - if (messageObject.messageOwner.isThreadMessage && messageObject.messageOwner.fwd_from != null) { + if ((messageObject.messageOwner.isThreadMessage || messageObject.isForwardedChannelPost()) && messageObject.messageOwner.fwd_from != null) { return getPendingPaidReactions(messageObject.getFromChatId(), messageObject.messageOwner.fwd_from.saved_from_msg_id); } else { return getPendingPaidReactions(messageObject.getDialogId(), messageObject.getId()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarsIntroActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarsIntroActivity.java index 4da50b395f..e81a046521 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarsIntroActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarsIntroActivity.java @@ -3,6 +3,7 @@ import static org.telegram.messenger.AndroidUtilities.dp; import static org.telegram.messenger.LocaleController.formatPluralString; import static org.telegram.messenger.LocaleController.formatPluralStringComma; +import static org.telegram.messenger.LocaleController.formatPluralStringSpaced; import static org.telegram.messenger.LocaleController.formatString; import static org.telegram.messenger.LocaleController.getString; import static org.telegram.ui.Stars.StarsIntroActivity.StarsTransactionView.getPlatformDrawable; @@ -54,9 +55,6 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.google.android.exoplayer2.scheduler.RequirementsWatcher; -import com.google.common.collect.Lists; - import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.BillingController; import org.telegram.messenger.BirthdayController; @@ -82,6 +80,7 @@ import org.telegram.messenger.browser.Browser; import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLRPC; +import org.telegram.tgnet.tl.TL_stories; import org.telegram.ui.ActionBar.ActionBar; import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.BottomSheet; @@ -128,11 +127,11 @@ import org.telegram.ui.ImageReceiverSpan; import org.telegram.ui.LaunchActivity; import org.telegram.ui.PhotoViewer; +import org.telegram.ui.ProfileActivity; import org.telegram.ui.Stories.recorder.ButtonWithCounterView; import org.telegram.ui.Stories.recorder.HintView2; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.Date; import java.util.HashMap; @@ -251,7 +250,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { iconTextureView.mRenderer.updateColors(); iconTextureView.setStarParticlesView(particlesView); aboveTitleView.addView(iconTextureView, LayoutHelper.createFrame(190, 190, Gravity.CENTER, 0, 32, 0, 24)); - configureHeader(getString(R.string.TelegramStars), getString(R.string.TelegramStarsInfo), aboveTitleView, null); + configureHeader(getString("TelegramStars", R.string.TelegramStars), getString(R.string.TelegramStarsInfo), aboveTitleView, null); listView.setOverScrollMode(View.OVER_SCROLL_NEVER); DefaultItemAnimator itemAnimator = new DefaultItemAnimator(); @@ -803,6 +802,8 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } public static class Factory extends UItem.UItemFactory { + static { setup(new Factory()); } + @Override public StarTierView createView(Context context, int currentAccount, int classGuid, Theme.ResourcesProvider resourcesProvider) { return new StarTierView(context, resourcesProvider); @@ -818,7 +819,7 @@ public static UItem asStarTier(int id, int index, TLRPC.TL_starsTopupOption opti item.id = id; item.intValue = index; item.longValue = option.stars; - item.text = formatPluralStringComma("StarsCount", (int) option.stars, ' '); + item.text = formatPluralStringSpaced("StarsCount", (int) option.stars); item.subtext = option.loadingStorePrice ? null : BillingController.getInstance().formatCurrency(option.amount, option.currency); item.object = option; return item; @@ -829,7 +830,7 @@ public static UItem asStarTier(int id, int index, TLRPC.TL_starsGiftOption optio item.id = id; item.intValue = index; item.longValue = option.stars; - item.text = formatPluralStringComma("StarsCount", (int) option.stars, ' '); + item.text = formatPluralStringSpaced("StarsCount", (int) option.stars); item.subtext = option.loadingStorePrice ? null : BillingController.getInstance().formatCurrency(option.amount, option.currency); item.object = option; return item; @@ -883,6 +884,21 @@ public void set(UItem item, boolean divider) { setWillNotDraw(!(needDivider = divider)); } + public void set(String text, boolean collapsed, boolean accent, boolean divider) { + final boolean animated = lastId == -1; + lastId = -1; + textView.setText(text, animated); + final int color = Theme.getColor(Theme.key_windowBackgroundWhiteBlueText2); + textView.setTextColor(color); + arrowView.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_IN)); + if (animated) { + arrowView.animate().rotation(collapsed ? 0 : 180).setDuration(340).setInterpolator(CubicBezierInterpolator.EASE_OUT_QUINT); + } else { + arrowView.setRotation(collapsed ? 0 : 180); + } + setWillNotDraw(!(needDivider = divider)); + } + @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); @@ -906,6 +922,8 @@ protected void onDetachedFromWindow() { } public static class Factory extends UItem.UItemFactory { + static { setup(new Factory()); } + @Override public ExpandView createView(Context context, int currentAccount, int classGuid, Theme.ResourcesProvider resourcesProvider) { return new ExpandView(context, resourcesProvider); @@ -1298,6 +1316,7 @@ public static CombinedDrawable getPlatformDrawable(String platform, int sz) { return drawable; } + private Runnable cancelCurrentGift; private boolean needDivider; public void set(TLRPC.StarsTransaction transaction, boolean bot, boolean divider) { long did = DialogObject.getPeerDialogId(transaction.peer.peer); @@ -1316,6 +1335,11 @@ public void set(TLRPC.StarsTransaction transaction, boolean bot, boolean divider dateTextView.setText(TextUtils.concat(dateTextView.getText(), " — ", getString(R.string.StarsPending))); } + if (cancelCurrentGift != null) { + cancelCurrentGift.run(); + cancelCurrentGift = null; + } + imageView.setTranslationX(0); imageView.setTranslationY(0); imageView2.setVisibility(GONE); @@ -1357,6 +1381,10 @@ public void set(TLRPC.StarsTransaction transaction, boolean bot, boolean divider titleTextView.setText(LocaleController.getString(R.string.StarsGiftReceived)); subtitleTextView.setVisibility(deleted ? GONE : VISIBLE); subtitleTextView.setText(username); + } else if ((transaction.flags & 8192) != 0) { + titleTextView.setText(LocaleController.getString(R.string.StarsGiveawayPrizeReceived)); + subtitleTextView.setVisibility(deleted ? GONE : VISIBLE); + subtitleTextView.setText(username); } else if (transaction.reaction) { titleTextView.setText(LocaleController.getString(R.string.StarsReactionsSent)); subtitleTextView.setVisibility(deleted ? GONE : VISIBLE); @@ -1467,6 +1495,8 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } public static class Factory extends UItem.UItemFactory { + static { setup(new Factory()); } + @Override public StarsTransactionView createView(Context context, int currentAccount, int classGuid, Theme.ResourcesProvider resourcesProvider) { StarsTransactionView cached = getCached(); @@ -1612,6 +1642,8 @@ protected void onDraw(Canvas canvas) { } public static class Factory extends UItem.UItemFactory { + static { setup(new Factory()); } + @Override public StarsSubscriptionView createView(Context context, int currentAccount, int classGuid, Theme.ResourcesProvider resourcesProvider) { StarsSubscriptionView cached = getCached(); @@ -2051,6 +2083,8 @@ public void show() { } } super.show(); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.starOptionsLoaded); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.starBalanceUpdated); } @Override @@ -2079,8 +2113,6 @@ public StarsNeededSheet( topPadding = .2f; this.whenPurchased = whenPurchased; - NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.starOptionsLoaded); - NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.starBalanceUpdated); fixNavigationBar(); recyclerListView.setPadding(backgroundPaddingLeft, 0, backgroundPaddingLeft, 0); @@ -2669,6 +2701,9 @@ public static CharSequence getTransactionTitle(int currentAccount, boolean bot, return "Minute subscription fee"; } } + if ((t.flags & 8192) != 0) { + return getString(R.string.StarsGiveawayPrizeReceived); + } if (t.gift) { if (t.sent_by != null) { TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(DialogObject.getPeerDialogId(t.sent_by)); @@ -2696,6 +2731,24 @@ public static CharSequence getTransactionTitle(int currentAccount, boolean bot, } } + public static BottomSheet showTransactionSheet(Context context, int currentAccount, int date, TLRPC.Peer sent_by, TLRPC.Peer received_by, TLRPC.TL_messageActionPrizeStars action, Theme.ResourcesProvider resourcesProvider) { + TLRPC.StarsTransaction t = new TLRPC.StarsTransaction(); + t.title = null; + t.description = null; + t.photo = null; + t.peer = new TLRPC.TL_starsTransactionPeer(); + t.peer.peer = action.boost_peer; + t.date = date; + t.stars = action.stars; + t.id = action.transaction_id; + t.gift = true; + t.flags |= 8192; + t.giveaway_post_id = action.giveaway_msg_id; + t.sent_by = sent_by; + t.received_by = received_by; + return showTransactionSheet(context, false, 0, currentAccount, t, resourcesProvider); + } + public static BottomSheet showTransactionSheet(Context context, int currentAccount, int date, TLRPC.Peer sent_by, TLRPC.Peer received_by, TLRPC.TL_messageActionGiftStars action, Theme.ResourcesProvider resourcesProvider) { TLRPC.StarsTransaction t = new TLRPC.StarsTransaction(); t.title = null; @@ -2739,89 +2792,99 @@ public static BottomSheet showTransactionSheet(Context context, boolean bot, int return showTransactionSheet(context, bot, 0, currentAccount, t, resourcesProvider); } + public static Runnable setGiftImage(View view, ImageReceiver imageReceiver, long stars) { + final boolean[] played = new boolean[1]; + final int currentAccount = imageReceiver.getCurrentAccount(); + Runnable setImage = () -> { + TLRPC.TL_messages_stickerSet set; + TLRPC.Document document = null; + + String packName = UserConfig.getInstance(currentAccount).premiumGiftsStickerPack; + if (packName == null) { + MediaDataController.getInstance(currentAccount).checkPremiumGiftStickers(); + return; + } + set = MediaDataController.getInstance(currentAccount).getStickerSetByName(packName); + if (set == null) { + set = MediaDataController.getInstance(currentAccount).getStickerSetByEmojiOrName(packName); + } + if (set != null) { + String emoji; + if (stars <= 1000) { + emoji = "2⃣"; + } else if (stars < 2500) { + emoji = "3⃣"; + } else { + emoji = "4⃣"; + } + for (int i = 0; i < set.packs.size(); ++i) { + TLRPC.TL_stickerPack pack = set.packs.get(i); + if (TextUtils.equals(pack.emoticon, emoji) && !pack.documents.isEmpty()) { + long documentId = pack.documents.get(0); + for (int j = 0; j < set.documents.size(); ++j) { + TLRPC.Document d = set.documents.get(j); + if (d != null && d.id == documentId) { + document = d; + break; + } + } + break; + } + } + if (document == null && !set.documents.isEmpty()) { + document = set.documents.get(0); + } + } + + if (document != null) { + imageReceiver.setAllowStartLottieAnimation(true); + imageReceiver.setDelegate(new ImageReceiver.ImageReceiverDelegate() { + @Override + public void didSetImage(ImageReceiver imageReceiver, boolean set, boolean thumb, boolean memCache) { + if (set) { + RLottieDrawable drawable = imageReceiver.getLottieAnimation(); + if (drawable != null && !played[0]) { + drawable.setCurrentFrame(0, false); + AndroidUtilities.runOnUIThread(drawable::restart); + played[0] = true; + } + } + } + }); + SvgHelper.SvgDrawable svgThumb = DocumentObject.getSvgThumb(document, Theme.key_windowBackgroundGray, 0.3f); + imageReceiver.setAutoRepeat(0); + imageReceiver.setImage(ImageLocation.getForDocument(document), String.format(Locale.US, "%d_%d_nr", 160, 160), svgThumb, "tgs", set, 1); + } else { + MediaDataController.getInstance(currentAccount).loadStickersByEmojiOrName(packName, false, set == null); + } + }; + setImage.run(); + final Runnable cancel1 = NotificationCenter.getInstance(currentAccount).listen(view, NotificationCenter.didUpdatePremiumGiftStickers, args -> setImage.run()); + final Runnable cancel2 = NotificationCenter.getInstance(currentAccount).listen(view, NotificationCenter.diceStickersDidLoad, args -> setImage.run()); + return () -> { + cancel1.run(); + cancel2.run(); + }; + } + public static BottomSheet showTransactionSheet(Context context, boolean bot, long dialogId, int currentAccount, TLRPC.StarsTransaction transaction, Theme.ResourcesProvider resourcesProvider) { if (transaction == null || context == null) return null; + final boolean giveaway = (transaction.flags & 8192) != 0; + BottomSheet.Builder b = new BottomSheet.Builder(context, false, resourcesProvider); BottomSheet[] sheet = new BottomSheet[1]; LinearLayout linearLayout = new LinearLayout(context); linearLayout.setOrientation(LinearLayout.VERTICAL); - linearLayout.setPadding(dp(16), dp(transaction.gift ? 0 : 20), dp(16), dp(8)); + linearLayout.setPadding(dp(16), dp(giveaway || transaction.gift ? 0 : 20), dp(16), dp(8)); linearLayout.setClipChildren(false); linearLayout.setClipToPadding(false); BackupImageView imageView = new BackupImageView(context); - if (transaction.gift) { - final boolean[] played = new boolean[1]; - Runnable setImage = () -> { - TLRPC.TL_messages_stickerSet set; - TLRPC.Document document = null; - - String packName = UserConfig.getInstance(currentAccount).premiumGiftsStickerPack; - if (packName == null) { - MediaDataController.getInstance(currentAccount).checkPremiumGiftStickers(); - return; - } - set = MediaDataController.getInstance(currentAccount).getStickerSetByName(packName); - if (set == null) { - set = MediaDataController.getInstance(currentAccount).getStickerSetByEmojiOrName(packName); - } - if (set != null) { - String emoji; - if (transaction.stars <= 1000) { - emoji = "2⃣"; - } else if (transaction.stars < 2500) { - emoji = "3⃣"; - } else { - emoji = "4⃣"; - } - for (int i = 0; i < set.packs.size(); ++i) { - TLRPC.TL_stickerPack pack = set.packs.get(i); - if (TextUtils.equals(pack.emoticon, emoji) && !pack.documents.isEmpty()) { - long documentId = pack.documents.get(0); - for (int j = 0; j < set.documents.size(); ++j) { - TLRPC.Document d = set.documents.get(j); - if (d != null && d.id == documentId) { - document = d; - break; - } - } - break; - } - } - if (document == null && !set.documents.isEmpty()) { - document = set.documents.get(0); - } - } - - final ImageReceiver imageReceiver = imageView.getImageReceiver(); - if (document != null) { - imageReceiver.setAllowStartLottieAnimation(true); - imageReceiver.setDelegate(new ImageReceiver.ImageReceiverDelegate() { - @Override - public void didSetImage(ImageReceiver imageReceiver, boolean set, boolean thumb, boolean memCache) { - if (set) { - RLottieDrawable drawable = imageReceiver.getLottieAnimation(); - if (drawable != null && !played[0]) { - drawable.setCurrentFrame(0, false); - AndroidUtilities.runOnUIThread(drawable::restart); - played[0] = true; - } - } - } - }); - SvgHelper.SvgDrawable svgThumb = DocumentObject.getSvgThumb(document, Theme.key_windowBackgroundGray, 0.3f); - imageReceiver.setAutoRepeat(0); - imageReceiver.setImage(ImageLocation.getForDocument(document), String.format(Locale.US, "%d_%d_nr", 160, 160), svgThumb, "tgs", set, 1); - } else { - MediaDataController.getInstance(currentAccount).loadStickersByEmojiOrName(packName, false, set == null); - } - }; - setImage.run(); - NotificationCenter.getInstance(currentAccount).listen(imageView, NotificationCenter.didUpdatePremiumGiftStickers, args -> setImage.run()); - NotificationCenter.getInstance(currentAccount).listen(imageView, NotificationCenter.diceStickersDidLoad, args -> setImage.run()); + if (giveaway || transaction.gift) { + setGiftImage(imageView, imageView.getImageReceiver(), transaction.stars); linearLayout.addView(imageView, LayoutHelper.createLinear(160, 160, Gravity.CENTER, 0, -8, 0, 10)); } else if (!transaction.extended_media.isEmpty()) { imageView.setRoundRadius(dp(30)); @@ -2956,7 +3019,7 @@ public boolean validateGroupId(long groupId) { textView.setText(s); linearLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 20, 0, 20, 4)); - if (transaction.gift) { + if (giveaway || transaction.gift) { final TLRPC.User user = transaction.sent_by == null ? null : MessagesController.getInstance(currentAccount).getUser(DialogObject.getPeerDialogId(transaction.sent_by)); final TLRPC.User received = transaction.sent_by == null ? null : MessagesController.getInstance(currentAccount).getUser(DialogObject.getPeerDialogId(transaction.received_by)); final boolean self = UserObject.isUserSelf(user); @@ -2996,45 +3059,56 @@ public boolean validateGroupId(long groupId) { TableView tableView = new TableView(context, resourcesProvider); if (transaction.peer instanceof TLRPC.TL_starsTransactionPeer) { final long did = DialogObject.getPeerDialogId(transaction.peer.peer); - textView = new LinkSpanDrawable.LinksTextView(context, resourcesProvider); - textView.setPadding(dp(12.66f), dp(9.33f), dp(12.66f), dp(9.33f)); - textView.setEllipsize(TextUtils.TruncateAt.END); - textView.setTextColor(Theme.getColor(Theme.key_chat_messageLinkIn, resourcesProvider)); - textView.setLinkTextColor(Theme.getColor(Theme.key_chat_messageLinkIn, resourcesProvider)); - textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - textView.setSingleLine(true); - ((LinkSpanDrawable.LinksTextView) textView).setDisablePaddingsOffsetY(true); - AvatarSpan avatarSpan = new AvatarSpan(textView, currentAccount, 24); - CharSequence username; - boolean deleted = false; - final boolean unknown; - if (UserObject.isService(did)) { - deleted = false; - unknown = true; - username = getString(R.string.StarsTransactionUnknown); - CombinedDrawable iconDrawable = getPlatformDrawable("fragment"); - iconDrawable.setIconSize(dp(16), dp(16)); - avatarSpan.setImageDrawable(iconDrawable); - } else if (did >= 0) { - unknown = false; - TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(did); - deleted = user == null; - username = UserObject.getUserName(user); - avatarSpan.setUser(user); + if (giveaway) { + tableView.addRowUser(getString(R.string.StarGiveawayPrizeFrom), currentAccount, did, () -> { + sheet[0].dismiss(); + final BaseFragment lastFragment = LaunchActivity.getSafeLastFragment(); + if (lastFragment != null) { + if ((transaction.flags & 8192) != 0) { + lastFragment.presentFragment(ChatActivity.of(did, transaction.giveaway_post_id)); + } else { + lastFragment.presentFragment(ChatActivity.of(did)); + } + } + }); + tableView.addRowUser(getString(R.string.StarGiveawayPrizeTo), currentAccount, UserConfig.getInstance(currentAccount).getClientUserId(), () -> { + sheet[0].dismiss(); + final BaseFragment lastFragment = LaunchActivity.getSafeLastFragment(); + if (lastFragment != null) { + final Bundle args = new Bundle(); + args.putLong("user_id", UserConfig.getInstance(currentAccount).getClientUserId()); + args.putBoolean("my_profile", true); + lastFragment.presentFragment(new ProfileActivity(args)); + } + }); + tableView.addRowLink(getString(R.string.StarGiveawayReason), getString(R.string.StarGiveawayReasonLink), () -> { + sheet[0].dismiss(); + final BaseFragment lastFragment = LaunchActivity.getSafeLastFragment(); + if (lastFragment != null) { + if ((transaction.flags & 8192) != 0) { + lastFragment.presentFragment(ChatActivity.of(did, transaction.giveaway_post_id)); + } else { + lastFragment.presentFragment(ChatActivity.of(did)); + } + } + }); + tableView.addRow(getString(R.string.StarGiveawayGift), formatPluralStringComma("Stars", (int) transaction.stars)); + } else if (transaction.subscription && !bot) { + tableView.addRowUser(getString(R.string.StarSubscriptionTo), currentAccount, did, () -> { + sheet[0].dismiss(); + if (UserObject.isService(did)) { + Browser.openUrl(context, getString(R.string.StarsTransactionUnknownLink)); + } else { + BaseFragment lastFragment = LaunchActivity.getSafeLastFragment(); + if (lastFragment != null) { + lastFragment.presentFragment(ChatActivity.of(did)); + } + } + }); } else { - unknown = false; - TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-did); - deleted = chat == null; - username = chat == null ? "" : chat.title; - avatarSpan.setChat(chat); - } - SpannableStringBuilder ssb = new SpannableStringBuilder("x " + username); - ssb.setSpan(avatarSpan, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - ssb.setSpan(new ClickableSpan() { - @Override - public void onClick(@NonNull View widget) { + tableView.addRowUser(getString(R.string.StarsTransactionRecipient), currentAccount, did, () -> { sheet[0].dismiss(); - if (unknown) { + if (UserObject.isService(did)) { Browser.openUrl(context, getString(R.string.StarsTransactionUnknownLink)); } else { BaseFragment lastFragment = LaunchActivity.getSafeLastFragment(); @@ -3042,16 +3116,7 @@ public void onClick(@NonNull View widget) { lastFragment.presentFragment(ChatActivity.of(did)); } } - } - - @Override - public void updateDrawState(@NonNull TextPaint ds) { - ds.setUnderlineText(false); - } - }, 3, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - textView.setText(ssb); - if (!deleted) { - tableView.addRowUnpadded(getString(transaction.subscription && !bot ? R.string.StarSubscriptionTo : R.string.StarsTransactionRecipient), textView); + }); } } else if (transaction.peer instanceof TLRPC.TL_starsTransactionPeerFragment) { if (transaction.gift) { @@ -3170,7 +3235,7 @@ public void updateDrawState(@NonNull TextPaint ds) { } } - if (!TextUtils.isEmpty(transaction.id)) { + if (!TextUtils.isEmpty(transaction.id) && !giveaway) { FrameLayout idLayout = new FrameLayout(context); idLayout.setPadding(dp(12.66f), dp(9.33f), dp(10.66f), dp(9.33f)); textView = new TextView(context); @@ -3551,6 +3616,114 @@ public void updateDrawState(@NonNull TextPaint ds) { return sheet[0]; } + public static BottomSheet showBoostsSheet(Context context, int currentAccount, long dialogId, TL_stories.Boost boost, Theme.ResourcesProvider resourcesProvider) { + if (boost == null || context == null) + return null; + + BottomSheet.Builder b = new BottomSheet.Builder(context, false, resourcesProvider); + BottomSheet[] sheet = new BottomSheet[1]; + + LinearLayout linearLayout = new LinearLayout(context); + linearLayout.setOrientation(LinearLayout.VERTICAL); + linearLayout.setPadding(0, dp(20), 0, dp(4)); + linearLayout.setClipChildren(false); + linearLayout.setClipToPadding(false); + + FrameLayout topView = new FrameLayout(context); + topView.setClipChildren(false); + topView.setClipToPadding(false); + linearLayout.addView(topView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 150, Gravity.FILL_HORIZONTAL, 0, 0, 0, 10)); + + final StarParticlesView particlesView = makeParticlesView(context, 70, 0); + topView.addView(particlesView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); + + final GLIconTextureView iconView = new GLIconTextureView(context, GLIconRenderer.DIALOG_STYLE, Icon3D.TYPE_GOLDEN_STAR); + iconView.mRenderer.colorKey1 = Theme.key_starsGradient1; + iconView.mRenderer.colorKey2 = Theme.key_starsGradient2; + iconView.mRenderer.updateColors(); + iconView.setStarParticlesView(particlesView); + topView.addView(iconView, LayoutHelper.createFrame(170, 170, Gravity.CENTER, 0, 32, 0, 24)); + iconView.setPaused(false); + + TextView textView = new TextView(context); + textView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); + textView.setTypeface(AndroidUtilities.bold()); + textView.setGravity(Gravity.CENTER); + textView.setText(LocaleController.formatPluralStringSpaced("BoostStars", (int) boost.stars)); + linearLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 20, 0, 20, 4)); + + textView = new TextView(context); + textView.setBackground(Theme.createRoundRectDrawable(dp(20), 0xFF967BFF)); + textView.setTextColor(0xFFFFFFFF); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11.33f); + textView.setPadding(dp(4), 0, dp(8.33f), 0); + textView.setGravity(Gravity.CENTER); + textView.setTypeface(AndroidUtilities.bold()); + final SpannableStringBuilder sb = new SpannableStringBuilder("x" + LocaleController.formatPluralStringSpaced("BoostingBoostsCount", boost.multiplier == 0 ? 1 : boost.multiplier)); + final ColoredImageSpan span = new ColoredImageSpan(R.drawable.mini_boost_badge, ColoredImageSpan.ALIGN_CENTER); + span.translate(0, dp(0.66f)); + sb.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + textView.setText(sb); + linearLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, 20, Gravity.CENTER, 20, 4, 20, 4)); + + TableView tableView = new TableView(context, resourcesProvider); + + tableView.addRowUser(getString(R.string.BoostFrom), currentAccount, dialogId, () -> { + if (sheet[0] != null) sheet[0].dismiss(); + final BaseFragment baseFragment = LaunchActivity.getSafeLastFragment(); + if (baseFragment == null) return; + baseFragment.presentFragment(ChatActivity.of(dialogId)); + }); + tableView.addRow(getString(R.string.BoostGift), formatPluralString("BoostStars", (int) boost.stars)); + if (boost.giveaway_msg_id != 0) { + tableView.addRowLink(getString(R.string.BoostReason), getString(R.string.BoostReasonGiveaway), () -> { + if (sheet[0] != null) sheet[0].dismiss(); + final BaseFragment baseFragment = LaunchActivity.getSafeLastFragment(); + if (baseFragment == null) return; + baseFragment.presentFragment(ChatActivity.of(dialogId, boost.giveaway_msg_id)); + }); + } + tableView.addRow(getString(R.string.BoostDate), LocaleController.formatString(R.string.formatDateAtTime, LocaleController.getInstance().getFormatterGiveawayCard().format(new Date(boost.date * 1000L)), LocaleController.getInstance().getFormatterDay().format(new Date(boost.date * 1000L)))); + tableView.addRow(getString(R.string.BoostUntil), LocaleController.formatString(R.string.formatDateAtTime, LocaleController.getInstance().getFormatterGiveawayCard().format(new Date(boost.expires * 1000L)), LocaleController.getInstance().getFormatterDay().format(new Date(boost.expires * 1000L)))); + + linearLayout.addView(tableView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 16, 17, 16, 0)); + + textView = new LinkSpanDrawable.LinksTextView(context, resourcesProvider); + textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2, resourcesProvider)); + textView.setLinkTextColor(Theme.getColor(Theme.key_chat_messageLinkIn, resourcesProvider)); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); + textView.setText(AndroidUtilities.replaceSingleTag(getString(R.string.StarsTransactionTOS), () -> { + Browser.openUrl(context, getString(R.string.StarsTOSLink)); + })); + textView.setGravity(Gravity.CENTER); + linearLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 14, 15, 14, 7)); + + ButtonWithCounterView button = new ButtonWithCounterView(context, resourcesProvider); + button.setText(getString(R.string.OK), false); + button.setOnClickListener(v -> { + if (sheet[0] != null) sheet[0].dismiss(); + }); + linearLayout.addView(button, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, 16, 8, 16, 0)); + + b.setCustomView(linearLayout); + sheet[0] = b.create(); + sheet[0].useBackgroundTopPadding = false; + + sheet[0].fixNavigationBar(); + BaseFragment fragment = LaunchActivity.getSafeLastFragment(); + if (!AndroidUtilities.isTablet() && !AndroidUtilities.hasDialogOnTop(fragment)) { + sheet[0].makeAttached(fragment); + } + iconView.setPaused(false); + sheet[0].show(); + sheet[0].setOnDismissListener(() -> { + iconView.setPaused(true); + }); + + return sheet[0]; + } + private static CharSequence appendStatus(SpannableStringBuilder s, TextView textView, String string) { s.append(" "); SpannableString refund = new SpannableString(string); @@ -3624,6 +3797,11 @@ public static BottomSheet showMediaPriceSheet(Context context, long stars, boole editTextContainer.addView(editTextLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP)); linearLayout.addView(editTextContainer, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + TextView subPriceView = new TextView(context); + subPriceView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); + subPriceView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText3)); + editTextContainer.addView(subPriceView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_VERTICAL | Gravity.RIGHT, 0, 0, 14, 0)); + final LinkSpanDrawable.LinksTextView infoView = new LinkSpanDrawable.LinksTextView(context); infoView.setText(AndroidUtilities.replaceArrows(AndroidUtilities.replaceSingleTag(getString(R.string.PaidContentInfo), () -> { Browser.openUrl(context, getString(R.string.PaidContentInfoLink)); @@ -3685,6 +3863,14 @@ public void afterTextChanged(Editable s) { } editTextContainer.animateSelection(editText.isFocused(), !TextUtils.isEmpty(editText.getText())); + + if (input_stars == 0) { + subPriceView.animate().alpha(0).start(); + subPriceView.setText(""); + } else { + subPriceView.animate().alpha(1f).start(); + subPriceView.setText("≈" + BillingController.getInstance().formatCurrency((long) (input_stars / 1000.0 * MessagesController.getInstance(UserConfig.selectedAccount).starsUsdWithdrawRate1000), "USD")); + } } }); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarsReactionsSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarsReactionsSheet.java index fc76c10613..6b60536d3b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarsReactionsSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stars/StarsReactionsSheet.java @@ -122,6 +122,7 @@ public StarsReactionsSheet( ChatActivity chatActivity, MessageObject messageObject, ArrayList reactors, + boolean sendEnabled, Theme.ResourcesProvider resourcesProvider ) { super(context, false, resourcesProvider); @@ -178,7 +179,9 @@ public void onValueChanged(int value) { steps_arr = new int[ steps.size() ]; for (int i = 0; i < steps.size(); ++i) steps_arr[i] = steps.get(i); slider.setSteps(100, steps_arr); - topLayout.addView(slider, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + if (sendEnabled) { + topLayout.addView(slider, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); + } titleView = new TextView(context) { @Override @@ -211,7 +214,7 @@ public void onFragmentDestroy() { LinearLayout topLayoutTextLayout = new LinearLayout(context); topLayoutTextLayout.setOrientation(LinearLayout.VERTICAL); - topLayout.addView(topLayoutTextLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL, 0, 135 + 44, 0, 15)); + topLayout.addView(topLayoutTextLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL, 0, sendEnabled ? 135 + 44 : 45, 0, 15)); TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-dialogId); statusView = new TextView(context); @@ -221,7 +224,9 @@ public void onFragmentDestroy() { statusView.setSingleLine(false); statusView.setMaxLines(3); statusView.setText(AndroidUtilities.replaceTags(me != null ? LocaleController.formatPluralStringComma("StarsReactionTextSent", me.count) : LocaleController.formatString(R.string.StarsReactionText, chat == null ? "" : chat.title))); - topLayoutTextLayout.addView(statusView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL, 40, 0, 40, 0)); + if (sendEnabled) { + topLayoutTextLayout.addView(statusView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL, 40, 0, 40, 0)); + } if (withTopSenders) { separatorView = new View(context) { @@ -272,7 +277,9 @@ public void onFragmentDestroy() { checkSeparatorView = new View(context); checkSeparatorView.setBackgroundColor(Theme.getColor(Theme.key_divider, resourcesProvider)); - layout.addView(checkSeparatorView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 1.0f / AndroidUtilities.density, Gravity.FILL_HORIZONTAL, 24, 0, 24, 0)); + if (sendEnabled || me != null) { + layout.addView(checkSeparatorView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 1.0f / AndroidUtilities.density, Gravity.FILL_HORIZONTAL, 24, 0, 24, 0)); + } } else { separatorView = null; topSendersView = null; @@ -308,10 +315,14 @@ public void onFragmentDestroy() { ScaleStateListAnimator.apply(checkLayout, .05f, 1.2f); checkLayout.setBackground(Theme.createRadSelectorDrawable(Theme.getColor(Theme.key_listSelector, resourcesProvider), 6, 6)); - layout.addView(checkLayout, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 0, withTopSenders ? 10 : 4, 0, 10)); + if (sendEnabled || me != null) { + layout.addView(checkLayout, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 0, withTopSenders ? 10 : 4, 0, 10)); + } buttonView = new ButtonWithCounterView(context, resourcesProvider); - layout.addView(buttonView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, 14, 0, 14, 0)); + if (sendEnabled) { + layout.addView(buttonView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48, 14, 0, 14, 0)); + } updateSenders(0); buttonView.setText(StarsIntroActivity.replaceStars(LocaleController.formatString(R.string.StarsReactionSend, LocaleController.formatNumber(50, ',')), starRef), true); buttonView.setOnClickListener(v -> { @@ -323,9 +334,6 @@ public void onFragmentDestroy() { final Runnable send = () -> { Boolean currentAnonymous = messageObject == null ? null : messageObject.isMyPaidReactionAnonymous(); - if (currentAnonymous == null && messageObject != null) { - StarsController.getInstance(currentAccount).saveAnonymous(messageObject, anonymous); - } StarsController.PendingPaidReactions pending = starsController.sendPaidReaction(messageObject, chatActivity, totalStars, false, true, !checkBox.isChecked()); if (pending == null) { return; @@ -352,7 +360,9 @@ public void onFragmentDestroy() { })); termsView.setGravity(Gravity.CENTER); termsView.setLinkTextColor(getThemedColor(Theme.key_dialogTextLink)); - layout.addView(termsView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 14, 14, 14, 12)); + if (sendEnabled) { + layout.addView(termsView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 14, 14, 14, 12)); + } setCustomView(layout); @@ -424,7 +434,6 @@ private void checkVisibility() { checkedVisiblity = true; if (messageObject == null) return; Boolean currentAnonymous = messageObject.isMyPaidReactionAnonymous(); - StarsController.getInstance(currentAccount).saveAnonymous(messageObject, anonymous); if (currentAnonymous == null || currentAnonymous != anonymous) { messageObject.setMyPaidReactionAnonymous(anonymous); @@ -469,11 +478,11 @@ public void setValue(int value) { private ValueAnimator iconAnimator; private void animate3dIcon(Runnable pushed) { - if (messageCell == null || !messageCell.isCellAttachedToWindow() || messageCell.getPrimaryMessageObject() == null || messageCell.getPrimaryMessageObject().getId() != messageId) return; + if (messageObject == null || chatActivity.fragmentView == null || !chatActivity.fragmentView.isAttachedToWindow()) return; ChatMessageCell _cell = messageCell; - ReactionsLayoutInBubble.ReactionButton _button = _cell.reactionsLayoutInBubble.getReactionButton(ReactionsLayoutInBubble.VisibleReaction.asStar()); + ReactionsLayoutInBubble.ReactionButton _button = _cell != null ? _cell.reactionsLayoutInBubble.getReactionButton(ReactionsLayoutInBubble.VisibleReaction.asStar()) : null; if (_button == null) { - MessageObject.GroupedMessages group = chatActivity.getValidGroupedMessage(messageCell.getPrimaryMessageObject()); + MessageObject.GroupedMessages group = chatActivity.getValidGroupedMessage(messageObject); if (group != null && !group.posArray.isEmpty()) { MessageObject msg = null; for (MessageObject m : group.messages) { @@ -567,7 +576,9 @@ public void onAnimationEnd(Animator animation) { icon3dView.setVisibility(View.INVISIBLE); icon3dView.setPaused(true); button.drawImage = true; - messageCell.invalidate(); + if (cell != null) { + cell.invalidate(); + } StarsReactionsSheet.super.dismissInternal(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stars/SuperRipple.java b/TMessagesProj/src/main/java/org/telegram/ui/Stars/SuperRipple.java index e9333aeeb7..958f49e1b6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stars/SuperRipple.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stars/SuperRipple.java @@ -17,7 +17,6 @@ import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.R; import org.telegram.ui.Components.CubicBezierInterpolator; -import org.telegram.ui.Components.RLottieDrawable; import java.util.ArrayList; @@ -63,7 +62,7 @@ private Effect( public SuperRipple(View view) { super(view); - final String code = RLottieDrawable.readRes(null, R.raw.superripple_effect); + final String code = AndroidUtilities.readRes(R.raw.superripple_effect); shader = new RuntimeShader(code); setupSizeUniforms(true); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/StatisticActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/StatisticActivity.java index 0c22ae065b..9aae58f62b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/StatisticActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/StatisticActivity.java @@ -2630,7 +2630,6 @@ public ArrayList getThemeDescriptions() { arrayList.add(new ThemeDescription(recyclerListView, ThemeDescription.FLAG_CHECKTAG, new Class[]{ManageChatTextCell.class}, new String[]{"textView"}, null, null, null, Theme.key_windowBackgroundWhiteBlueIcon)); arrayList.add(new ThemeDescription(recyclerListView, ThemeDescription.FLAG_CHECKTAG, new Class[]{ManageChatTextCell.class}, new String[]{"imageView"}, null, null, null, Theme.key_text_RedRegular)); arrayList.add(new ThemeDescription(recyclerListView, ThemeDescription.FLAG_CHECKTAG, new Class[]{ManageChatTextCell.class}, new String[]{"textView"}, null, null, null, Theme.key_text_RedRegular)); - arrayList.add(new ThemeDescription(recyclerListView, ThemeDescription.FLAG_CELLBACKGROUNDCOLOR, new Class[]{ManageChatUserCell.class, ManageChatTextCell.class, HeaderCell.class, TextView.class, PeopleNearbyActivity.HintInnerCell.class}, null, null, null, Theme.key_windowBackgroundWhite)); if (isMegagroup) { for (int i = 0; i < 6; i++) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/StickersActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/StickersActivity.java index fe93b5c0ec..0c35359eac 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/StickersActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/StickersActivity.java @@ -348,11 +348,11 @@ public View createView(Context context) { actionBar.setBackButtonDrawable(new BackDrawable(false)); actionBar.setAllowOverlayTitle(true); if (currentType == MediaDataController.TYPE_IMAGE) { - actionBar.setTitle(LocaleController.getString("StickersName", R.string.StickersName)); + actionBar.setTitle(LocaleController.getString(R.string.StickersName)); } else if (currentType == MediaDataController.TYPE_MASK) { - actionBar.setTitle(LocaleController.getString("Masks", R.string.Masks)); + actionBar.setTitle(LocaleController.getString(R.string.Masks)); } else if (currentType == MediaDataController.TYPE_EMOJIPACKS) { - actionBar.setTitle(LocaleController.getString("Emoji", R.string.Emoji)); + actionBar.setTitle(LocaleController.getString(R.string.Emoji)); } actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -553,11 +553,11 @@ public void onStickerSetRemove(TLRPC.StickerSetCovered stickerSet) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("SuggestStickers", R.string.SuggestStickers)); + builder.setTitle(LocaleController.getString(R.string.SuggestStickers)); String[] items = new String[]{ - LocaleController.getString("SuggestStickersAll", R.string.SuggestStickersAll), - LocaleController.getString("SuggestStickersInstalled", R.string.SuggestStickersInstalled), - LocaleController.getString("SuggestStickersNone", R.string.SuggestStickersNone), + LocaleController.getString(R.string.SuggestStickersAll), + LocaleController.getString(R.string.SuggestStickersInstalled), + LocaleController.getString(R.string.SuggestStickersNone), }; LinearLayout linearLayout = new LinearLayout(getParentActivity()); @@ -794,7 +794,7 @@ private void sendReorder() { if (SharedConfig.updateStickersOrderOnSend && dynamicPackOrder != -1) { SharedConfig.toggleUpdateStickersOrderOnSend(); - BulletinFactory.of(StickersActivity.this).createSimpleBulletin(R.raw.filter_reorder, LocaleController.getString("DynamicPackOrderOff", R.string.DynamicPackOrderOff), LocaleController.getString("DynamicPackOrderOffInfo", R.string.DynamicPackOrderOffInfo)).show(); + BulletinFactory.of(StickersActivity.this).createSimpleBulletin(R.raw.filter_reorder, LocaleController.getString(R.string.DynamicPackOrderOff), LocaleController.getString(R.string.DynamicPackOrderOffInfo)).show(); for (int i = 0; i < listView.getChildCount(); ++i) { View child = listView.getChildAt(i); @@ -1305,17 +1305,17 @@ public boolean didCopy() { if (which == MENU_DELETE) { builder.setTitle(LocaleController.formatString("DeleteStickerSetsAlertTitle", R.string.DeleteStickerSetsAlertTitle, LocaleController.formatPluralString("StickerSets", count))); builder.setMessage(LocaleController.formatString("DeleteStickersAlertMessage", R.string.DeleteStickersAlertMessage, count)); - buttonText = LocaleController.getString("Delete", R.string.Delete); + buttonText = LocaleController.getString(R.string.Delete); } else { builder.setTitle(LocaleController.formatString("ArchiveStickerSetsAlertTitle", R.string.ArchiveStickerSetsAlertTitle, LocaleController.formatPluralString("StickerSets", count))); builder.setMessage(LocaleController.formatString("ArchiveStickersAlertMessage", R.string.ArchiveStickersAlertMessage, count)); - buttonText = LocaleController.getString("Archive", R.string.Archive); + buttonText = LocaleController.getString(R.string.Archive); } builder.setPositiveButton(buttonText, (dialog, which1) -> { listAdapter.clearSelected(); MediaDataController.getInstance(currentAccount).toggleStickerSets(stickerSetList, currentType, which == MENU_DELETE ? 0 : 1, StickersActivity.this, true); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); @@ -1349,7 +1349,7 @@ private void processSelectionOption(int which, TLRPC.TL_messages_stickerSet stic Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, getLinkForSet(stickerSet)); - getParentActivity().startActivityForResult(Intent.createChooser(intent, LocaleController.getString("StickersShare", R.string.StickersShare)), 500); + getParentActivity().startActivityForResult(Intent.createChooser(intent, LocaleController.getString(R.string.StickersShare)), 500); } catch (Exception e) { FileLog.e(e); } @@ -1412,7 +1412,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } else if (position == stickersHeaderRow) { headerCell.setText(LocaleController.getString(currentType == MediaDataController.TYPE_EMOJIPACKS ? R.string.ChooseStickerMyEmojiPacks : R.string.ChooseStickerMyStickerSets)); } else if (position == stickersSettingsRow) { - headerCell.setText(LocaleController.getString("StickersSettings", R.string.StickersSettings)); + headerCell.setText(LocaleController.getString(R.string.StickersSettings)); } break; case TYPE_FEATURED_STICKER_SET: { @@ -1482,23 +1482,23 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (position == stickersBotInfo) { infoPrivacyCell.setText(addStickersBotSpan( currentType == MediaDataController.TYPE_EMOJIPACKS ? - LocaleController.getString("EmojiBotInfo", R.string.EmojiBotInfo) : - LocaleController.getString("StickersBotInfo", R.string.StickersBotInfo) + LocaleController.getString(R.string.EmojiBotInfo) : + LocaleController.getString(R.string.StickersBotInfo) )); } else if (position == archivedInfoRow) { if (currentType == MediaDataController.TYPE_IMAGE) { - infoPrivacyCell.setText(LocaleController.getString("ArchivedStickersInfo", R.string.ArchivedStickersInfo)); + infoPrivacyCell.setText(LocaleController.getString(R.string.ArchivedStickersInfo)); } else { - infoPrivacyCell.setText(LocaleController.getString("ArchivedMasksInfo", R.string.ArchivedMasksInfo)); + infoPrivacyCell.setText(LocaleController.getString(R.string.ArchivedMasksInfo)); } } else if (position == loopInfoRow) { -// infoPrivacyCell.setText(LocaleController.getString("LoopAnimatedStickersInfo", R.string.LoopAnimatedStickersInfo)); +// infoPrivacyCell.setText(LocaleController.getString(R.string.LoopAnimatedStickersInfo)); infoPrivacyCell.setText(null); infoPrivacyCell.setFixedSize(12); } else if (position == suggestAnimatedEmojiInfoRow) { - infoPrivacyCell.setText(LocaleController.getString("SuggestAnimatedEmojiInfo", R.string.SuggestAnimatedEmojiInfo)); + infoPrivacyCell.setText(LocaleController.getString(R.string.SuggestAnimatedEmojiInfo)); } else if (position == masksInfoRow) { - infoPrivacyCell.setText(LocaleController.getString("MasksInfo", R.string.MasksInfo)); + infoPrivacyCell.setText(LocaleController.getString(R.string.MasksInfo)); } else if (position == dynamicPackOrderInfo) { infoPrivacyCell.setText(LocaleController.getString("DynamicPackOrderInfo")); } @@ -1522,42 +1522,42 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (currentType == MediaDataController.TYPE_IMAGE) { settingsCell.setTextAndValueAndIcon(LocaleController.getString(R.string.ArchivedStickers), value, R.drawable.msg2_archived_stickers, true); } else if (currentType == MediaDataController.TYPE_EMOJIPACKS) { - settingsCell.setTextAndValue(LocaleController.getString("ArchivedEmojiPacks", R.string.ArchivedEmojiPacks), value, false, true); + settingsCell.setTextAndValue(LocaleController.getString(R.string.ArchivedEmojiPacks), value, false, true); } else { - settingsCell.setTextAndValue(LocaleController.getString("ArchivedMasks", R.string.ArchivedMasks), value, false, true); + settingsCell.setTextAndValue(LocaleController.getString(R.string.ArchivedMasks), value, false, true); } } else if (position == masksRow) { int type = MediaDataController.TYPE_MASK; MediaDataController mediaDataController = MediaDataController.getInstance(currentAccount); int count = MessagesController.getInstance(currentAccount).filterPremiumStickers(mediaDataController.getStickerSets(type)).size() + mediaDataController.getArchivedStickersCount(type); - settingsCell.setTextAndValueAndIcon(LocaleController.getString("Masks", R.string.Masks), count > 0 ? Integer.toString(count) : "", R.drawable.msg_mask, true); + settingsCell.setTextAndValueAndIcon(LocaleController.getString(R.string.Masks), count > 0 ? Integer.toString(count) : "", R.drawable.msg_mask, true); } else if (position == featuredRow) { List sets = getFeaturedSets(); - settingsCell.setTextAndValueAndIcon(LocaleController.getString("FeaturedStickers", R.string.FeaturedStickers), sets != null ? "" + sets.size() : "", R.drawable.msg2_trending, true); + settingsCell.setTextAndValueAndIcon(LocaleController.getString(R.string.FeaturedStickers), sets != null ? "" + sets.size() : "", R.drawable.msg2_trending, true); } else if (position == emojiPacksRow) { int type = MediaDataController.TYPE_EMOJIPACKS; MediaDataController mediaDataController = MediaDataController.getInstance(currentAccount); int count = mediaDataController.getStickerSets(type).size(); settingsCell.imageView.setTranslationX(-AndroidUtilities.dp(2)); - settingsCell.setTextAndValueAndIcon(LocaleController.getString("Emoji", R.string.Emoji), count > 0 ? Integer.toString(count) : "", R.drawable.msg2_smile_status, true); + settingsCell.setTextAndValueAndIcon(LocaleController.getString(R.string.Emoji), count > 0 ? Integer.toString(count) : "", R.drawable.msg2_smile_status, true); } else if (position == suggestRow) { String value; switch (SharedConfig.suggestStickers) { case 0: - value = LocaleController.getString("SuggestStickersAll", R.string.SuggestStickersAll); + value = LocaleController.getString(R.string.SuggestStickersAll); break; case 1: - value = LocaleController.getString("SuggestStickersInstalled", R.string.SuggestStickersInstalled); + value = LocaleController.getString(R.string.SuggestStickersInstalled); break; case 2: default: - value = LocaleController.getString("SuggestStickersNone", R.string.SuggestStickersNone); + value = LocaleController.getString(R.string.SuggestStickersNone); break; } if (!LocaleController.isRTL) { settingsCell.textView.setTranslationX(AndroidUtilities.dp(-2)); } - settingsCell.setTextAndValue(LocaleController.getString("SuggestStickers", R.string.SuggestStickers), value, updateSuggestStickers, true); + settingsCell.setTextAndValue(LocaleController.getString(R.string.SuggestStickers), value, updateSuggestStickers, true); updateSuggestStickers = false; } } @@ -1571,18 +1571,18 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case TYPE_SWITCH: TextCheckCell cell = (TextCheckCell) holder.itemView; if (position == loopRow) { - cell.setTextAndCheck(LocaleController.getString("LoopAnimatedStickers", R.string.LoopAnimatedStickers), SharedConfig.loopStickers(), true); + cell.setTextAndCheck(LocaleController.getString(R.string.LoopAnimatedStickers), SharedConfig.loopStickers(), true); } else if (position == largeEmojiRow) { - cell.setTextAndCheck(LocaleController.getString("LargeEmoji", R.string.LargeEmoji), SharedConfig.allowBigEmoji, true); + cell.setTextAndCheck(LocaleController.getString(R.string.LargeEmoji), SharedConfig.allowBigEmoji, true); } else if (position == suggestAnimatedEmojiRow) { - cell.setTextAndCheck(LocaleController.getString("SuggestAnimatedEmoji", R.string.SuggestAnimatedEmoji), SharedConfig.suggestAnimatedEmoji, false); + cell.setTextAndCheck(LocaleController.getString(R.string.SuggestAnimatedEmoji), SharedConfig.suggestAnimatedEmoji, false); } else if (position == dynamicPackOrder) { cell.setTextAndCheck(LocaleController.getString("DynamicPackOrder"), SharedConfig.updateStickersOrderOnSend, false); } break; case TYPE_DOUBLE_TAP_REACTIONS: { TextSettingsCell settingsCell = (TextSettingsCell) holder.itemView; - settingsCell.setText(LocaleController.getString("DoubleTapSetting", R.string.DoubleTapSetting), false); + settingsCell.setText(LocaleController.getString(R.string.DoubleTapSetting), false); settingsCell.setIcon(R.drawable.msg2_reactions2); String reaction = MediaDataController.getInstance(currentAccount).getDoubleTapReaction(); if (reaction != null) { @@ -1711,19 +1711,19 @@ protected void onRemoveButtonClick() { StickerSetCell cell = (StickerSetCell) v.getParent(); TLRPC.TL_messages_stickerSet stickerSet = cell.getStickersSet(); ItemOptions options = ItemOptions.makeOptions(StickersActivity.this, cell); - options.add(R.drawable.msg_archive, LocaleController.getString("StickersHide", R.string.StickersHide), () -> processSelectionOption(MENU_ARCHIVE, stickerSet)); + options.add(R.drawable.msg_archive, LocaleController.getString(R.string.StickersHide), () -> processSelectionOption(MENU_ARCHIVE, stickerSet)); if (stickerSet.set.official) { - options.add(R.drawable.msg_reorder, LocaleController.getString("StickersReorder", R.string.StickersReorder), () -> processSelectionOption(4, stickerSet)); + options.add(R.drawable.msg_reorder, LocaleController.getString(R.string.StickersReorder), () -> processSelectionOption(4, stickerSet)); } else { if (NekoConfig.enableStickerPin.Bool() && currentType == MediaDataController.TYPE_IMAGE) { options.add(R.drawable.msg_pin, PinnedStickerHelper.getInstance(currentAccount).isPinned(stickerSet.set.id) ? - LocaleController.getString("UnpinSticker", R.string.UnpinSticker) : - LocaleController.getString("PinSticker", R.string.PinSticker), () -> processSelectionOption(MENU_TOGGLE_PIN, stickerSet)); + LocaleController.getString(R.string.UnpinSticker) : + LocaleController.getString(R.string.PinSticker), () -> processSelectionOption(MENU_TOGGLE_PIN, stickerSet)); } - options.add(R.drawable.msg_link, LocaleController.getString("StickersCopy", R.string.StickersCopy), () -> processSelectionOption(3, stickerSet)); - options.add(R.drawable.msg_reorder, LocaleController.getString("StickersReorder", R.string.StickersReorder), () -> processSelectionOption(4, stickerSet)); - options.add(R.drawable.msg_share, LocaleController.getString("StickersShare", R.string.StickersShare), () -> processSelectionOption(2, stickerSet)); - options.add(R.drawable.msg_delete, LocaleController.getString("StickersRemove", R.string.StickersRemove), true, () -> processSelectionOption(MENU_DELETE, stickerSet)); + options.add(R.drawable.msg_link, LocaleController.getString(R.string.StickersCopy), () -> processSelectionOption(3, stickerSet)); + options.add(R.drawable.msg_reorder, LocaleController.getString(R.string.StickersReorder), () -> processSelectionOption(4, stickerSet)); + options.add(R.drawable.msg_share, LocaleController.getString(R.string.StickersShare), () -> processSelectionOption(2, stickerSet)); + options.add(R.drawable.msg_delete, LocaleController.getString(R.string.StickersRemove), true, () -> processSelectionOption(MENU_DELETE, stickerSet)); if (!NaConfig.INSTANCE.getExternalStickerCache().String().isBlank()) { options.add(R.drawable.menu_views_reposts, LocaleController.getString(R.string.ExternalStickerCacheRefresh), () -> ExternalStickerCacheHelper.refreshCacheFiles(stickerSet)); options.add(R.drawable.msg_delete, LocaleController.getString(R.string.ExternalStickerCacheDelete), () -> ExternalStickerCacheHelper.deleteCacheFiles(stickerSet)); @@ -1882,7 +1882,7 @@ private void checkActionMode() { notifyStickersItemsChanged(UPDATE_REORDERABLE); if (!SharedConfig.stickersReorderingHintUsed && currentType != MediaDataController.TYPE_EMOJIPACKS) { SharedConfig.setStickersReorderingHintUsed(true); - String stickersReorderHint = LocaleController.getString("StickersReorderHint", R.string.StickersReorderHint); + String stickersReorderHint = LocaleController.getString(R.string.StickersReorderHint); Bulletin.make(parentLayout.getLastFragment(), new ReorderingBulletinLayout(mContext, stickersReorderHint, null), ReorderingHintDrawable.DURATION * 2 + 250).show(); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/DialogStoriesCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/DialogStoriesCell.java index ffc48e5a62..cc01a81791 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/DialogStoriesCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/DialogStoriesCell.java @@ -461,7 +461,7 @@ public void updateItems(boolean animated, boolean force) { if (storiesController.hasOnlySelfStories()) { if (storiesController.hasUploadingStories(UserConfig.getInstance(currentAccount).getClientUserId())) { - String str = LocaleController.getString("UploadingStory", R.string.UploadingStory); + String str = LocaleController.getString(R.string.UploadingStory); int index = str.indexOf("…"); if (index > 0) { if (uploadingString == null) { @@ -476,7 +476,7 @@ public void updateItems(boolean animated, boolean force) { currentTitle = str; } } else { - currentTitle = LocaleController.getString("MyStory", R.string.MyStory); + currentTitle = LocaleController.getString(R.string.MyStory); } } else { currentTitle = LocaleController.formatPluralString("Stories", totalCount); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/PeerStoriesView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/PeerStoriesView.java index 16717c6803..3821f0f9af 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/PeerStoriesView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/PeerStoriesView.java @@ -856,7 +856,7 @@ public void onLinkClick(CharacterStyle span, View spoilersTextView) { processExternalUrl(2, url, span, span instanceof URLSpanReplacement); } else if (span instanceof URLSpanMono) { ((URLSpanMono) span).copyToClipboard(); - BulletinFactory.of(storyContainer, resourcesProvider).createCopyBulletin(LocaleController.getString("TextCopied", R.string.TextCopied)).show(); + BulletinFactory.of(storyContainer, resourcesProvider).createCopyBulletin(LocaleController.getString(R.string.TextCopied)).show(); } else if (span instanceof ClickableSpan) { ((ClickableSpan) span).onClick(spoilersTextView); } @@ -905,7 +905,7 @@ public void onLinkLongPress(URLSpan span, View spoilersTextView, Runnable done) BottomSheet.Builder builder = new BottomSheet.Builder(getContext(), false, resourcesProvider); builder.setTitle(formattedUrl); builder.setTitleMultipleLines(true); - builder.setItems(currentStory != null && !currentStory.allowScreenshots() ? new CharSequence[] {LocaleController.getString("Open", R.string.Open)} : new CharSequence[]{LocaleController.getString("Open", R.string.Open), LocaleController.getString("Copy", R.string.Copy)}, (dialog, which) -> { + builder.setItems(currentStory != null && !currentStory.allowScreenshots() ? new CharSequence[] {LocaleController.getString(R.string.Open)} : new CharSequence[]{LocaleController.getString(R.string.Open), LocaleController.getString(R.string.Copy)}, (dialog, which) -> { if (which == 0) { onLinkClick(span, spoilersTextView); } else if (which == 1) { @@ -1172,7 +1172,7 @@ private void addViewStatistics(ActionBarPopupWindow.ActionBarPopupWindowLayout p chatFull = MessagesStorage.getInstance(currentAccount).loadChatInfo(chat.id, true, new CountDownLatch(1), false, false); } if (chatFull != null && chatFull.can_view_stats) { - ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_stats, LocaleController.getString("ViewStatistics", R.string.ViewStatistics), false, resourcesProvider).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_stats, LocaleController.getString(R.string.ViewStatistics), false, resourcesProvider).setOnClickListener(v -> { if (popupMenu != null) { popupMenu.dismiss(); } @@ -1255,7 +1255,7 @@ protected void onCreate(ActionBarPopupWindow.ActionBarPopupWindowLayout popupLay if (canEditStory || currentStory.uploadingStory != null) { TL_stories.StoryItem storyItem = currentStory.storyItem; if (currentStory.uploadingStory != null) { - ActionBarMenuSubItem item = ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_cancel, LocaleController.getString("Cancel", R.string.Cancel), false, resourcesProvider); + ActionBarMenuSubItem item = ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_cancel, LocaleController.getString(R.string.Cancel), false, resourcesProvider); item.setOnClickListener(v -> { if (currentStory.uploadingStory != null) { currentStory.uploadingStory.cancel(); @@ -1269,11 +1269,11 @@ protected void onCreate(ActionBarPopupWindow.ActionBarPopupWindowLayout popupLay if (storyItem == null) { return; } - String str = currentStory.isVideo() ? LocaleController.getString("SaveVideo", R.string.SaveVideo) : LocaleController.getString("SaveImage", R.string.SaveImage); + String str = currentStory.isVideo() ? LocaleController.getString(R.string.SaveVideo) : LocaleController.getString(R.string.SaveImage); if (isSelf) { final StoryPrivacyBottomSheet.StoryPrivacy storyPrivacy = new StoryPrivacyBottomSheet.StoryPrivacy(currentAccount, storyItem.privacy); - ActionBarMenuSubItem item = ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_view_file, LocaleController.getString("WhoCanSee", R.string.WhoCanSee), false, resourcesProvider); + ActionBarMenuSubItem item = ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_view_file, LocaleController.getString(R.string.WhoCanSee), false, resourcesProvider); item.setSubtext(storyPrivacy.toString()); item.setOnClickListener(v -> { editPrivacy(storyPrivacy, storyItem); @@ -1505,9 +1505,9 @@ protected void onCreate(ActionBarPopupWindow.ActionBarPopupWindowLayout popupLay final boolean pin = !storyItem.pinned; String title; if (isSelf) { - title = pin ? LocaleController.getString("SaveToProfile", R.string.SaveToProfile) : LocaleController.getString("ArchiveStory", R.string.ArchiveStory); + title = pin ? LocaleController.getString(R.string.SaveToProfile) : LocaleController.getString(R.string.ArchiveStory); } else { - title = pin ? LocaleController.getString("SaveToPosts", R.string.SaveToPosts) : LocaleController.getString("RemoveFromPosts", R.string.RemoveFromPosts); + title = pin ? LocaleController.getString(R.string.SaveToPosts) : LocaleController.getString(R.string.RemoveFromPosts); } ActionBarMenuItem.addItem(popupLayout, pin ? R.drawable.msg_save_story : R.drawable.menu_unsave_story, title, false, resourcesProvider).setOnClickListener(v -> { ArrayList storyItems = new ArrayList<>(); @@ -1516,19 +1516,19 @@ protected void onCreate(ActionBarPopupWindow.ActionBarPopupWindowLayout popupLay if (success) { storyItem.pinned = pin; if (isSelf) { - BulletinFactory.of(storyContainer, resourcesProvider).createSimpleBulletin(pin ? R.raw.contact_check : R.raw.chats_archived, pin ? LocaleController.getString("StoryPinnedToProfile", R.string.StoryPinnedToProfile) : LocaleController.getString("StoryArchivedFromProfile", R.string.StoryArchivedFromProfile)).show(); + BulletinFactory.of(storyContainer, resourcesProvider).createSimpleBulletin(pin ? R.raw.contact_check : R.raw.chats_archived, pin ? LocaleController.getString(R.string.StoryPinnedToProfile) : LocaleController.getString(R.string.StoryArchivedFromProfile)).show(); } else { if (pin) { BulletinFactory.of(storyContainer, resourcesProvider).createSimpleBulletin(R.raw.contact_check, - LocaleController.getString("StoryPinnedToPosts", R.string.StoryPinnedToPosts), - LocaleController.getString("StoryPinnedToPostsDescription", R.string.StoryPinnedToPostsDescription) + LocaleController.getString(R.string.StoryPinnedToPosts), + LocaleController.getString(R.string.StoryPinnedToPostsDescription) ).show(); } else { - BulletinFactory.of(storyContainer, resourcesProvider).createSimpleBulletin(R.raw.chats_archived, LocaleController.getString("StoryUnpinnedFromPosts", R.string.StoryUnpinnedFromPosts)).show(); + BulletinFactory.of(storyContainer, resourcesProvider).createSimpleBulletin(R.raw.chats_archived, LocaleController.getString(R.string.StoryUnpinnedFromPosts)).show(); } } } else { - BulletinFactory.of(storyContainer, resourcesProvider).createSimpleBulletin(R.raw.error, LocaleController.getString("UnknownError", R.string.UnknownError)).show(); + BulletinFactory.of(storyContainer, resourcesProvider).createSimpleBulletin(R.raw.error, LocaleController.getString(R.string.UnknownError)).show(); } }); if (popupMenu != null) { @@ -1553,7 +1553,7 @@ protected void onCreate(ActionBarPopupWindow.ActionBarPopupWindowLayout popupLay } if (isChannel && allowShareLink) { - ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_link, LocaleController.getString("CopyLink", R.string.CopyLink), false, resourcesProvider).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_link, LocaleController.getString(R.string.CopyLink), false, resourcesProvider).setOnClickListener(v -> { AndroidUtilities.addToClipboard(currentStory.createLink()); onLinkCopied(); if (popupMenu != null) { @@ -1563,7 +1563,7 @@ protected void onCreate(ActionBarPopupWindow.ActionBarPopupWindowLayout popupLay } if (allowShareLink) { - ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_shareout, LocaleController.getString("BotShare", R.string.BotShare), false, resourcesProvider).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_shareout, LocaleController.getString(R.string.BotShare), false, resourcesProvider).setOnClickListener(v -> { shareStory(false); if (popupMenu != null) { popupMenu.dismiss(); @@ -1572,7 +1572,7 @@ protected void onCreate(ActionBarPopupWindow.ActionBarPopupWindowLayout popupLay } if (isSelf || MessagesController.getInstance(currentAccount).getStoriesController().canDeleteStory(currentStory.storyItem)) { - ActionBarMenuSubItem deleteItem = ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_delete, LocaleController.getString("Delete", R.string.Delete), false, resourcesProvider); + ActionBarMenuSubItem deleteItem = ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_delete, LocaleController.getString(R.string.Delete), false, resourcesProvider); deleteItem.setSelectorColor(Theme.multAlpha(Theme.getColor(Theme.key_text_RedBold, resourcesProvider), .12f)); deleteItem.setColors(resourcesProvider.getColor(Theme.key_text_RedBold), resourcesProvider.getColor(Theme.key_text_RedBold)); deleteItem.setOnClickListener(v -> { @@ -1583,7 +1583,7 @@ protected void onCreate(ActionBarPopupWindow.ActionBarPopupWindowLayout popupLay }); } } else { -// ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_mute, LocaleController.getString("Mute", R.string.Mute), false, resourcesProvider).setOnClickListener(v -> { +// ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_mute, LocaleController.getString(R.string.Mute), false, resourcesProvider).setOnClickListener(v -> { // if (popupMenu != null) { // popupMenu.dismiss(); // } @@ -1609,7 +1609,7 @@ protected void onCreate(ActionBarPopupWindow.ActionBarPopupWindowLayout popupLay String finalName = name; if (!UserObject.isService(dialogId) && !isBotsPreview()) { if (!muted) { - ActionBarMenuSubItem item = ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_mute, LocaleController.getString("NotificationsStoryMute2", R.string.NotificationsStoryMute2), false, resourcesProvider); + ActionBarMenuSubItem item = ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_mute, LocaleController.getString(R.string.NotificationsStoryMute2), false, resourcesProvider); item.setOnClickListener(v -> { MessagesController.getNotificationsSettings(currentAccount).edit().putBoolean("stories_" + key, false).apply(); NotificationsController.getInstance(currentAccount).updateServerNotificationsSettings(dialogId, 0); @@ -1621,7 +1621,7 @@ protected void onCreate(ActionBarPopupWindow.ActionBarPopupWindowLayout popupLay }); item.setMultiline(false); } else { - ActionBarMenuSubItem item = ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_unmute, LocaleController.getString("NotificationsStoryUnmute2", R.string.NotificationsStoryUnmute2), false, resourcesProvider); + ActionBarMenuSubItem item = ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_unmute, LocaleController.getString(R.string.NotificationsStoryUnmute2), false, resourcesProvider); item.setOnClickListener(v -> { MessagesController.getNotificationsSettings(currentAccount).edit().putBoolean("stories_" + key, true).apply(); NotificationsController.getInstance(currentAccount).updateServerNotificationsSettings(dialogId, 0); @@ -1643,14 +1643,14 @@ protected void onCreate(ActionBarPopupWindow.ActionBarPopupWindowLayout popupLay } if (canShowArchive) { if (!storiesIsHidden) { - ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_archive, LocaleController.getString("ArchivePeerStories", R.string.ArchivePeerStories), false, resourcesProvider).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_archive, LocaleController.getString(R.string.ArchivePeerStories), false, resourcesProvider).setOnClickListener(v -> { toggleArchiveForStory(dialogId); if (popupMenu != null) { popupMenu.dismiss(); } }); } else { - ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_unarchive, LocaleController.getString("UnarchiveStories", R.string.UnarchiveStories), false, resourcesProvider).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_unarchive, LocaleController.getString(R.string.UnarchiveStories), false, resourcesProvider).setOnClickListener(v -> { toggleArchiveForStory(dialogId); if (popupMenu != null) { popupMenu.dismiss(); @@ -1666,7 +1666,7 @@ protected void onCreate(ActionBarPopupWindow.ActionBarPopupWindowLayout popupLay if (!unsupported && (allowShare || true)) { if (UserConfig.getInstance(currentAccount).isPremium() || true) { - ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_gallery, LocaleController.getString("SaveToGallery", R.string.SaveToGallery), false, resourcesProvider).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_gallery, LocaleController.getString(R.string.SaveToGallery), false, resourcesProvider).setOnClickListener(v -> { saveToGallery(); if (popupMenu != null) { popupMenu.dismiss(); @@ -1684,14 +1684,14 @@ public void setColorFilter(ColorFilter colorFilter) { } }; - ActionBarMenuSubItem item = ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_gallery, LocaleController.getString("SaveToGallery", R.string.SaveToGallery), false, resourcesProvider); + ActionBarMenuSubItem item = ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_gallery, LocaleController.getString(R.string.SaveToGallery), false, resourcesProvider); item.setIcon(combinedDrawable); item.setOnClickListener(v -> { item.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP); BulletinFactory bulletinFactory = BulletinFactory.global(); if (bulletinFactory != null) { bulletinFactory.createSimpleBulletin(R.raw.ic_save_to_gallery, AndroidUtilities.replaceSingleTag( - LocaleController.getString("SaveStoryToGalleryPremiumHint", R.string.SaveStoryToGalleryPremiumHint), + LocaleController.getString(R.string.SaveStoryToGalleryPremiumHint), () -> { PremiumFeatureBottomSheet sheet = new PremiumFeatureBottomSheet(storyViewer.fragment, PremiumPreviewFragment.PREMIUM_FEATURE_STORIES, false); delegate.showDialog(sheet); @@ -1705,7 +1705,7 @@ public void setColorFilter(ColorFilter colorFilter) { createStealthModeItem(popupLayout); } if (allowShareLink) { - ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_link2, LocaleController.getString("CopyLink", R.string.CopyLink), false, resourcesProvider).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_link2, LocaleController.getString(R.string.CopyLink), false, resourcesProvider).setOnClickListener(v -> { AndroidUtilities.addToClipboard(currentStory.createLink()); onLinkCopied(); if (popupMenu != null) { @@ -1714,7 +1714,7 @@ public void setColorFilter(ColorFilter colorFilter) { }); } if (allowShareLink) { - ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_shareout, LocaleController.getString("BotShare", R.string.BotShare), false, resourcesProvider).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_shareout, LocaleController.getString(R.string.BotShare), false, resourcesProvider).setOnClickListener(v -> { shareStory(false); if (popupMenu != null) { popupMenu.dismiss(); @@ -1724,7 +1724,7 @@ public void setColorFilter(ColorFilter colorFilter) { if (currentStory.storyItem != null) { if (currentStory.storyItem.translated && TextUtils.equals(currentStory.storyItem.translatedLng, TranslateAlert2.getToLanguage())) { - ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_translate, LocaleController.getString("HideTranslation", R.string.HideTranslation), false, resourcesProvider).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_translate, LocaleController.getString(R.string.HideTranslation), false, resourcesProvider).setOnClickListener(v -> { currentStory.storyItem.translated = false; MessagesController.getInstance(currentAccount).getStoriesController().getStoriesStorage().updateStoryItem(currentStory.storyItem.dialogId, currentStory.storyItem); cancelTextSelection(); @@ -1734,7 +1734,7 @@ public void setColorFilter(ColorFilter colorFilter) { } }); } else if (MessagesController.getInstance(currentAccount).getTranslateController().canTranslateStory(currentStory.storyItem)) { - ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_translate, LocaleController.getString("TranslateMessage", R.string.TranslateMessage), false, resourcesProvider).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_translate, LocaleController.getString(R.string.TranslateMessage), false, resourcesProvider).setOnClickListener(v -> { currentStory.storyItem.translated = true; cancelTextSelection(); if (delegate != null) { @@ -1765,7 +1765,7 @@ public void setColorFilter(ColorFilter colorFilter) { if (!unsupported) { if (!UserObject.isService(dialogId) && !isBotsPreview()) { - ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_report, LocaleController.getString("ReportChat", R.string.ReportChat), false, resourcesProvider).setOnClickListener(v -> { + ActionBarMenuItem.addItem(popupLayout, R.drawable.msg_report, LocaleController.getString(R.string.ReportChat), false, resourcesProvider).setOnClickListener(v -> { AlertsCreator.createReportAlert(getContext(), dialogId, 0, currentStory.storyItem.id, storyViewer.fragment, resourcesProvider, null); if (popupMenu != null) { popupMenu.dismiss(); @@ -2920,12 +2920,12 @@ private boolean applyMessageToChat(Runnable runnable) { SharedConfig.stealthModeSendMessageConfirm--; SharedConfig.updateStealthModeSendMessageConfirm(SharedConfig.stealthModeSendMessageConfirm); AlertDialog alertDialog = new AlertDialog(getContext(), 0, resourcesProvider); - alertDialog.setTitle(LocaleController.getString("StealthModeConfirmTitle", R.string.StealthModeConfirmTitle)); - alertDialog.setMessage(LocaleController.getString("StealthModeConfirmMessage", R.string.StealthModeConfirmMessage)); - alertDialog.setPositiveButton(LocaleController.getString("Proceed", R.string.Proceed), (dialog, which) -> { + alertDialog.setTitle(LocaleController.getString(R.string.StealthModeConfirmTitle)); + alertDialog.setMessage(LocaleController.getString(R.string.StealthModeConfirmMessage)); + alertDialog.setPositiveButton(LocaleController.getString(R.string.Proceed), (dialog, which) -> { runnable.run(); }); - alertDialog.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialog, which) -> dialog.dismiss()); + alertDialog.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> dialog.dismiss()); alertDialog.show(); } else { runnable.run(); @@ -2953,13 +2953,13 @@ private void saveToGallery() { private void showDownloadAlert() { AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), resourcesProvider); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setTitle(LocaleController.getString(R.string.AppName)); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); // boolean alreadyDownloading = currentMessageObject != null && currentMessageObject.isVideo() && FileLoader.getInstance(currentMessageObject.currentAccount).isLoadingFile(currentFileNames[0]); // if (alreadyDownloading) { -// builder.setMessage(LocaleController.getString("PleaseStreamDownload", R.string.PleaseStreamDownload)); +// builder.setMessage(LocaleController.getString(R.string.PleaseStreamDownload)); // } else { - builder.setMessage(LocaleController.getString("PleaseDownload", R.string.PleaseDownload)); + builder.setMessage(LocaleController.getString(R.string.PleaseDownload)); // } delegate.showDialog(builder.create()); } @@ -3204,7 +3204,7 @@ public boolean didCopy() { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, link); - LaunchActivity.instance.startActivityForResult(Intent.createChooser(intent, LocaleController.getString("StickersShare", R.string.StickersShare)), 500); + LaunchActivity.instance.startActivityForResult(Intent.createChooser(intent, LocaleController.getString(R.string.StickersShare)), 500); } } } @@ -3363,7 +3363,7 @@ private void bindInternal(int startFromPosition) { avatarDrawable.setInfo(currentAccount, user); headerView.backupImageView.getImageReceiver().setForUserOrChat(user, avatarDrawable); if (isSelf) { - headerView.titleView.setText(LocaleController.getString("SelfStoryTitle", R.string.SelfStoryTitle)); + headerView.titleView.setText(LocaleController.getString(R.string.SelfStoryTitle)); headerView.titleView.setRightDrawable(null); } else { if (user != null && user.verified) { @@ -3548,12 +3548,12 @@ private void createUnsupportedContainer() { textView.setTypeface(AndroidUtilities.bold()); textView.setGravity(Gravity.CENTER_HORIZONTAL); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); - textView.setText(LocaleController.getString("StoryUnsupported", R.string.StoryUnsupported)); + textView.setText(LocaleController.getString(R.string.StoryUnsupported)); textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); TextView buttonTextView = new TextView(getContext()); ScaleStateListAnimator.apply(buttonTextView); - buttonTextView.setText(LocaleController.getString("AppUpdate", R.string.AppUpdate)); + buttonTextView.setText(LocaleController.getString(R.string.AppUpdate)); buttonTextView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText, resourcesProvider)); buttonTextView.setPadding(AndroidUtilities.dp(16), AndroidUtilities.dp(12), AndroidUtilities.dp(16), AndroidUtilities.dp(12)); buttonTextView.setGravity(Gravity.CENTER); @@ -3774,7 +3774,7 @@ private void deleteStory() { AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), resourcesProvider); builder.setTitle(LocaleController.getString(isBotsPreview() ? R.string.DeleteBotPreviewTitle : R.string.DeleteStoryTitle)); builder.setMessage(LocaleController.getString(isBotsPreview() ? R.string.DeleteBotPreviewSubtitle : R.string.DeleteStorySubtitle)); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialog, which) -> { currentStory.cancelOrDelete(); updateStoryItems(); if (isActive && count == 0) { @@ -3791,7 +3791,7 @@ private void deleteStory() { storyViewer.checkSelfStoriesView(); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (DialogInterface.OnClickListener) (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), (DialogInterface.OnClickListener) (dialog, which) -> { dialog.dismiss(); }); AlertDialog dialog = builder.create(); @@ -3804,7 +3804,7 @@ private void showUserViewsDialog() { // performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP); // BulletinFactory bulletinFactory = BulletinFactory.global(); // if (bulletinFactory != null) { -// bulletinFactory.createErrorBulletin(AndroidUtilities.replaceTags(LocaleController.getString("ExpiredViewsStub", R.string.ExpiredViewsStub))).show(); +// bulletinFactory.createErrorBulletin(AndroidUtilities.replaceTags(LocaleController.getString(R.string.ExpiredViewsStub))).show(); // } // } else { storyViewer.openViews(); @@ -4245,7 +4245,7 @@ private void updatePosition(boolean preload) { CharSequence subtitle = null; if (currentStory.uploadingStory != null) { if (currentStory.uploadingStory.failed) { - subtitle = LocaleController.getString("FailedToUploadStory", R.string.FailedToUploadStory); + subtitle = LocaleController.getString(R.string.FailedToUploadStory); } else { subtitle = StoriesUtilities.getUploadingStr(headerView.subtitleView[0], false, isEditing); } @@ -4261,7 +4261,7 @@ private void updatePosition(boolean preload) { } } else if (currentStory.storyItem != null) { if (currentStory.storyItem.date == -1) { - subtitle = LocaleController.getString("CachedStory", R.string.CachedStory); + subtitle = LocaleController.getString(R.string.CachedStory); } else if (currentStory.getReply() != null) { StoryCaptionView.Reply reply = currentStory.getReply(); @@ -4364,7 +4364,7 @@ private void updatePosition(boolean preload) { dotDividerSpan.setTopPadding(AndroidUtilities.dp(1.5f)); dotDividerSpan.setSize(5); spannableStringBuilder.append(" . ").setSpan(dotDividerSpan, spannableStringBuilder.length() - 2, spannableStringBuilder.length() - 1, 0); - spannableStringBuilder.append(LocaleController.getString("EditedMessage", R.string.EditedMessage)); + spannableStringBuilder.append(LocaleController.getString(R.string.EditedMessage)); string = spannableStringBuilder; } subtitle = string; @@ -4590,7 +4590,7 @@ private void updatePosition(boolean preload) { reactionsLongpressTooltip = new HintView2(getContext(), HintView2.DIRECTION_BOTTOM).setJoint(1, -22); reactionsLongpressTooltip.setBgColor(ColorUtils.setAlphaComponent(ColorUtils.blendARGB(Color.BLACK, Color.WHITE, 0.13f), 240)); reactionsLongpressTooltip.setBounce(false); - reactionsLongpressTooltip.setText(LocaleController.getString("ReactionLongTapHint", R.string.ReactionLongTapHint)); + reactionsLongpressTooltip.setText(LocaleController.getString(R.string.ReactionLongTapHint)); reactionsLongpressTooltip.setPadding(AndroidUtilities.dp(8), 0, AndroidUtilities.dp(8), AndroidUtilities.dp(1)); storyContainer.addView(reactionsLongpressTooltip, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.RIGHT | Gravity.BOTTOM, 0, 0, 0, BIG_SCREEN ? 0 : 56)); } @@ -4641,7 +4641,7 @@ public void setTranslationY(float translationY) { replyDisabledTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); replyDisabledTextView.setTextColor(ColorUtils.blendARGB(Color.BLACK, Color.WHITE, 0.5f)); replyDisabledTextView.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL); - replyDisabledTextView.setText(LocaleController.getString("StoryReplyDisabled", R.string.StoryReplyDisabled)); + replyDisabledTextView.setText(LocaleController.getString(R.string.StoryReplyDisabled)); addView(replyDisabledTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, 40, Gravity.LEFT, 16, 0, 16, 0)); } @@ -4833,7 +4833,7 @@ private void updateUserViews(boolean animated) { } TLRPC.Chat chat = MessagesController.getInstance(currentAccount).getChat(-dialogId); if (!(isGroup && (ChatObject.canSendPlain(chat) || ChatObject.isPossibleRemoveChatRestrictionsByBoosts(chat))) && storyItem.views.views_count > 0) { - selfStatusView.setText(storyViewer.storiesList == null ? LocaleController.getString("NobodyViews", R.string.NobodyViews) : LocaleController.getString("NobodyViewsArchived", R.string.NobodyViewsArchived)); + selfStatusView.setText(storyViewer.storiesList == null ? LocaleController.getString(R.string.NobodyViews) : LocaleController.getString(R.string.NobodyViewsArchived)); selfStatusView.setTranslationX(AndroidUtilities.dp(16)); SpannableStringBuilder stringBuilder = new SpannableStringBuilder(); stringBuilder.append("d "); @@ -4903,7 +4903,7 @@ private void updateUserViews(boolean animated) { } selfAvatarsContainer.setVisibility(View.VISIBLE); } else { - selfStatusView.setText(storyViewer.storiesList == null ? LocaleController.getString("NobodyViews", R.string.NobodyViews) : LocaleController.getString("NobodyViewsArchived", R.string.NobodyViewsArchived)); + selfStatusView.setText(storyViewer.storiesList == null ? LocaleController.getString(R.string.NobodyViews) : LocaleController.getString(R.string.NobodyViewsArchived)); selfStatusView.setTranslationX(AndroidUtilities.dp(16)); selfAvatarsView.setVisibility(View.GONE); selfAvatarsContainer.setVisibility(View.GONE); @@ -5335,7 +5335,7 @@ private void sendUriAsDocument(Uri uri) { } private void showAttachmentError() { - BulletinFactory.of(storyContainer, resourcesProvider).createErrorBulletin(LocaleController.getString("UnsupportedAttachment", R.string.UnsupportedAttachment), resourcesProvider).show(); + BulletinFactory.of(storyContainer, resourcesProvider).createErrorBulletin(LocaleController.getString(R.string.UnsupportedAttachment), resourcesProvider).show(); } public void setLongpressed(boolean isLongpressed) { @@ -6567,7 +6567,7 @@ private void afterMessageSend() { storyViewer.closeKeyboardOrEmoji(); BulletinFactory bulletinFactory = BulletinFactory.of(storyContainer, resourcesProvider); if (bulletinFactory != null) { - bulletinFactory.createSimpleBulletin(R.raw.forward, LocaleController.getString("MessageSent", R.string.MessageSent), LocaleController.getString("ViewInChat", R.string.ViewInChat), Bulletin.DURATION_PROLONG, this::openChat).hideAfterBottomSheet(false).show(false); + bulletinFactory.createSimpleBulletin(R.raw.forward, LocaleController.getString(R.string.MessageSent), LocaleController.getString(R.string.ViewInChat), Bulletin.DURATION_PROLONG, this::openChat).hideAfterBottomSheet(false).show(false); } MessagesController.getInstance(currentAccount).ensureMessagesLoaded(dialogId, 0, null); } @@ -6683,8 +6683,8 @@ view, getMeasuredWidth() / 2f, getMeasuredHeight() / 2f, } BulletinFactory.of(storyContainer, resourcesProvider).createEmojiBulletin(document, - LocaleController.getString("ReactionSent", R.string.ReactionSent), - LocaleController.getString("ViewInChat", R.string.ViewInChat), () -> { + LocaleController.getString(R.string.ReactionSent), + LocaleController.getString(R.string.ViewInChat), () -> { openChat(); }).setDuration(Bulletin.DURATION_PROLONG).show(); if (reactionsContainerLayout.getReactionsWindow() != null) { @@ -7017,7 +7017,7 @@ private void editPrivacy(StoryPrivacyBottomSheet.StoryPrivacy currentPrivacy, TL BulletinFactory.of(storyContainer, resourcesProvider).createSimpleBulletin(R.raw.contact_check, LocaleController.formatPluralString("StorySharedToContacts", userIds.size())).show(); } } else { - BulletinFactory.of(storyContainer, resourcesProvider).createSimpleBulletin(R.raw.error, LocaleController.getString("UnknownError", R.string.UnknownError)).show(); + BulletinFactory.of(storyContainer, resourcesProvider).createSimpleBulletin(R.raw.error, LocaleController.getString(R.string.UnknownError)).show(); } updatePosition(); @@ -7029,13 +7029,13 @@ public boolean checkRecordLocked(boolean forceCloseOnDiscard) { if (chatActivityEnterView != null && chatActivityEnterView.isRecordLocked()) { AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), resourcesProvider); if (chatActivityEnterView.isInVideoMode()) { - builder.setTitle(LocaleController.getString("DiscardVideoMessageTitle", R.string.DiscardVideoMessageTitle)); - builder.setMessage(LocaleController.getString("DiscardVideoMessageDescription", R.string.DiscardVideoMessageDescription)); + builder.setTitle(LocaleController.getString(R.string.DiscardVideoMessageTitle)); + builder.setMessage(LocaleController.getString(R.string.DiscardVideoMessageDescription)); } else { - builder.setTitle(LocaleController.getString("DiscardVoiceMessageTitle", R.string.DiscardVoiceMessageTitle)); - builder.setMessage(LocaleController.getString("DiscardVoiceMessageDescription", R.string.DiscardVoiceMessageDescription)); + builder.setTitle(LocaleController.getString(R.string.DiscardVoiceMessageTitle)); + builder.setMessage(LocaleController.getString(R.string.DiscardVoiceMessageDescription)); } - builder.setPositiveButton(LocaleController.getString("DiscardVoiceMessageAction", R.string.DiscardVoiceMessageAction), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.DiscardVoiceMessageAction), (dialog, which) -> { if (chatActivityEnterView != null) { if (forceCloseOnDiscard) { storyViewer.close(true); @@ -7044,7 +7044,7 @@ public boolean checkRecordLocked(boolean forceCloseOnDiscard) { } } }); - builder.setNegativeButton(LocaleController.getString("Continue", R.string.Continue), null); + builder.setNegativeButton(LocaleController.getString(R.string.Continue), null); delegate.showDialog(builder.create()); return true; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/SelfStoryViewsPage.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/SelfStoryViewsPage.java index 5c8ffcbc0c..88613a8cbb 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/SelfStoryViewsPage.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/SelfStoryViewsPage.java @@ -441,7 +441,7 @@ public void onTextChange(String text) { } } }; - searchField.setHint(LocaleController.getString("Search", R.string.Search)); + searchField.setHint(LocaleController.getString(R.string.Search)); topViewsContainer.addView(searchField, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT, 0, 36, 0, 0)); addView(topViewsContainer); @@ -618,7 +618,7 @@ private void updateViewsVisibility() { } } else { TOP_PADDING = 46; - titleView.setText(LocaleController.getString("UploadingStory", R.string.UploadingStory)); + titleView.setText(LocaleController.getString(R.string.UploadingStory)); searchField.setVisibility(View.GONE); headerView.setVisibility(View.GONE); } @@ -836,11 +836,11 @@ public void openStory(long dialogId, Runnable onDone) { textView.setGravity(Gravity.CENTER); textView.setDisablePaddingsOffsetY(true); if (viewType == SUBSCRIBE_TO_PREMIUM_TEXT_HINT) { - textView.setText(AndroidUtilities.replaceSingleTag(LocaleController.getString("StoryViewsPremiumHint", R.string.StoryViewsPremiumHint), () -> { + textView.setText(AndroidUtilities.replaceSingleTag(LocaleController.getString(R.string.StoryViewsPremiumHint), () -> { showPremiumAlert(); })); } else { - textView.setText(LocaleController.getString("ServerErrorViewersFull", R.string.ServerErrorViewersFull)); + textView.setText(LocaleController.getString(R.string.ServerErrorViewersFull)); } textView.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); view = textView; @@ -878,22 +878,22 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { }; if (viewType == EMPTY_VIEW_SEARCH) { emptyView.title.setVisibility(View.GONE); - emptyView.setSubtitle(LocaleController.getString("NoResult", R.string.NoResult)); + emptyView.setSubtitle(LocaleController.getString(R.string.NoResult)); } else if (viewType == EMPTY_VIEW_NO_CONTACTS) { emptyView.title.setVisibility(View.GONE); - emptyView.setSubtitle(LocaleController.getString("NoContactsViewed", R.string.NoContactsViewed)); + emptyView.setSubtitle(LocaleController.getString(R.string.NoContactsViewed)); } else if (viewType == EMPTY_VIEW_SERVER_CANT_RETURN) { emptyView.title.setVisibility(View.VISIBLE); - emptyView.title.setText(LocaleController.getString("ServerErrorViewersTitle", R.string.ServerErrorViewersTitle)); - emptyView.setSubtitle(LocaleController.getString("ServerErrorViewers", R.string.ServerErrorViewers)); + emptyView.title.setText(LocaleController.getString(R.string.ServerErrorViewersTitle)); + emptyView.setSubtitle(LocaleController.getString(R.string.ServerErrorViewers)); } else if (defaultModel.isExpiredViews) { emptyView.title.setVisibility(View.GONE); SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(); - spannableStringBuilder.append(AndroidUtilities.replaceTags(LocaleController.getString("ExpiredViewsStub", R.string.ExpiredViewsStub))); + spannableStringBuilder.append(AndroidUtilities.replaceTags(LocaleController.getString(R.string.ExpiredViewsStub))); if (!MessagesController.getInstance(currentAccount).premiumFeaturesBlocked()) { spannableStringBuilder.append("\n\n"); - spannableStringBuilder.append(AndroidUtilities.replaceSingleTag(LocaleController.getString("ExpiredViewsStubPremiumDescription", R.string.ExpiredViewsStubPremiumDescription), SelfStoryViewsPage.this::showPremiumAlert)); - emptyView.createButtonLayout(LocaleController.getString("LearnMore", R.string.LearnMore), SelfStoryViewsPage.this::showPremiumAlert); + spannableStringBuilder.append(AndroidUtilities.replaceSingleTag(LocaleController.getString(R.string.ExpiredViewsStubPremiumDescription), SelfStoryViewsPage.this::showPremiumAlert)); + emptyView.createButtonLayout(LocaleController.getString(R.string.LearnMore), SelfStoryViewsPage.this::showPremiumAlert); } emptyView.subtitle.setText(spannableStringBuilder); } else { @@ -1443,14 +1443,14 @@ public HeaderView(@NonNull Context context) { linearLayout.setOrientation(LinearLayout.HORIZONTAL); allViewersView = new TextView(context); - allViewersView.setText(LocaleController.getString("AllViewers", R.string.AllViewers)); + allViewersView.setText(LocaleController.getString(R.string.AllViewers)); allViewersView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); allViewersView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); allViewersView.setTypeface(AndroidUtilities.bold()); allViewersView.setPadding(AndroidUtilities.dp(12), AndroidUtilities.dp(4), AndroidUtilities.dp(12), AndroidUtilities.dp(4)); contactsViewersView = new TextView(context); - contactsViewersView.setText(LocaleController.getString("Contacts", R.string.Contacts)); + contactsViewersView.setText(LocaleController.getString(R.string.Contacts)); contactsViewersView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack, resourcesProvider)); contactsViewersView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); contactsViewersView.setTypeface(AndroidUtilities.bold()); @@ -1523,7 +1523,7 @@ protected void onCreate(ActionBarPopupWindow.ActionBarPopupWindowLayout popupLay } }); - item = ActionBarMenuItem.addItem(popupLayout, !state.sortByReactions ? R.drawable.menu_views_recent2 : R.drawable.menu_views_recent, LocaleController.getString("SortByTime", R.string.SortByTime), false, resourcesProvider); + item = ActionBarMenuItem.addItem(popupLayout, !state.sortByReactions ? R.drawable.menu_views_recent2 : R.drawable.menu_views_recent, LocaleController.getString(R.string.SortByTime), false, resourcesProvider); if (state.sortByReactions) { item.setAlpha(0.5f); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/SelfStoryViewsView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/SelfStoryViewsView.java index bd82c98096..be7bd17755 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/SelfStoryViewsView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/SelfStoryViewsView.java @@ -229,7 +229,7 @@ public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { // // buttonContainer.addView(button, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.FILL_HORIZONTAL, 10, 10, 10, 10)); // viewPagerContainer.addView(buttonContainer, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM)); -// button.setText(LocaleController.getString("Close", R.string.Close), false); +// button.setText(LocaleController.getString(R.string.Close), false); // button.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StealthModeAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StealthModeAlert.java index fafe3f6005..569e37c2ae 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StealthModeAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StealthModeAlert.java @@ -87,7 +87,7 @@ protected void onDetachedFromWindow() { title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); title.setTypeface(AndroidUtilities.bold()); title.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText, resourcesProvider)); - title.setText(LocaleController.getString("StealthModeTitle", R.string.StealthModeTitle)); + title.setText(LocaleController.getString(R.string.StealthModeTitle)); linearLayout.addView(title, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL)); SimpleTextView subtitle = new SimpleTextView(getContext()); @@ -96,24 +96,24 @@ protected void onDetachedFromWindow() { subtitle.setMaxLines(100); subtitle.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText, resourcesProvider)); if (UserConfig.getInstance(currentAccount).isPremium()) { - subtitle.setText(LocaleController.getString("StealthModeHint", R.string.StealthModeHint)); + subtitle.setText(LocaleController.getString(R.string.StealthModeHint)); } else { - subtitle.setText(LocaleController.getString("StealthModePremiumHint", R.string.StealthModePremiumHint)); + subtitle.setText(LocaleController.getString(R.string.StealthModePremiumHint)); } linearLayout.addView(subtitle, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 36, 10, 36, 0)); ItemCell itemCell = new ItemCell(getContext()); itemCell.imageView.setImageResource(R.drawable.msg_stealth_5min); - itemCell.textView.setText(LocaleController.getString("HideRecentViews", R.string.HideRecentViews)); - itemCell.description.setText(LocaleController.getString("HideRecentViewsDescription", R.string.HideRecentViewsDescription)); + itemCell.textView.setText(LocaleController.getString(R.string.HideRecentViews)); + itemCell.description.setText(LocaleController.getString(R.string.HideRecentViewsDescription)); linearLayout.addView(itemCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT,0, 0, 20, 0, 0)); ItemCell itemCell2 = new ItemCell(getContext()); itemCell2.imageView.setImageResource(R.drawable.msg_stealth_25min); - itemCell2.textView.setText(LocaleController.getString("HideNextViews", R.string.HideNextViews)); - itemCell2.description.setText(LocaleController.getString("HideNextViewsDescription", R.string.HideNextViewsDescription)); + itemCell2.textView.setText(LocaleController.getString(R.string.HideNextViews)); + itemCell2.description.setText(LocaleController.getString(R.string.HideNextViewsDescription)); linearLayout.addView(itemCell2, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT,0, 0, 10, 0, 0)); @@ -125,7 +125,7 @@ protected void onDetachedFromWindow() { TLRPC.User user = UserConfig.getInstance(currentAccount).getCurrentUser(); if (!user.premium) { button.setIcon(R.raw.unlock_icon); - button.setButton(LocaleController.getString("UnlockStealthMode", R.string.UnlockStealthMode), v -> { + button.setButton(LocaleController.getString(R.string.UnlockStealthMode), v -> { dismiss(); BaseFragment baseFragment = LaunchActivity.getLastFragment(); if (baseFragment != null) { @@ -188,7 +188,7 @@ protected void onDetachedFromWindow() { BulletinFactory factory = BulletinFactory.of(container, resourcesProvider); if (factory != null) { factory.createErrorBulletin( - AndroidUtilities.replaceTags(LocaleController.getString("StealthModeCooldownHint", R.string.StealthModeCooldownHint)) + AndroidUtilities.replaceTags(LocaleController.getString(R.string.StealthModeCooldownHint)) ).show(true); } } @@ -210,8 +210,8 @@ public static void showStealthModeEnabledBulletin() { } if (factory != null) { factory.createSimpleLargeBulletin(R.drawable.msg_stories_stealth2, - LocaleController.getString("StealthModeOn", R.string.StealthModeOn), - LocaleController.getString("StealthModeOnHint", R.string.StealthModeOnHint) + LocaleController.getString(R.string.StealthModeOn), + LocaleController.getString(R.string.StealthModeOnHint) ).show(); } } @@ -227,11 +227,11 @@ private void updateButton(boolean animated) { TL_stories.TL_storiesStealthMode stealthMode = storiesController.getStealthMode(); if (stealthMode != null && ConnectionsManager.getInstance(currentAccount).getCurrentTime() < stealthMode.active_until_date) { stealthModeIsActive = true; - button.setOverlayText(LocaleController.getString("StealthModeIsActive", R.string.StealthModeIsActive), true, animated); + button.setOverlayText(LocaleController.getString(R.string.StealthModeIsActive), true, animated); button.overlayTextView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); } else if (stealthMode == null || ConnectionsManager.getInstance(currentAccount).getCurrentTime() > stealthMode.cooldown_until_date) { if (type == TYPE_FROM_STORIES) { - button.setOverlayText(LocaleController.getString("EnableStealthMode", R.string.EnableStealthMode), true, animated); + button.setOverlayText(LocaleController.getString(R.string.EnableStealthMode), true, animated); } else if (type == TYPE_FROM_DIALOGS) { button.setOverlayText(LocaleController.getString(R.string.EnableStealthModeAndOpenStory), true, animated); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesController.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesController.java index e60a8247a7..61607cecb6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesController.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesController.java @@ -2003,7 +2003,7 @@ public void didReceivedNotification(int id, int account, Object... args) { } else if (id == NotificationCenter.fileUploadFailed) { String location = (String) args[0]; if (path != null && location.equals(path)) { - NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.showBulletin, Bulletin.TYPE_ERROR, LocaleController.getString("StoryUploadError", R.string.StoryUploadError)); + NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.showBulletin, Bulletin.TYPE_ERROR, LocaleController.getString(R.string.StoryUploadError)); cleanup(); } } else if (id == NotificationCenter.fileUploadProgressChanged) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesIntro.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesIntro.java index 68b2ce35a7..5edb3283f5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesIntro.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesIntro.java @@ -60,22 +60,22 @@ public StoriesIntro(Context context, View parentView) { TextView header = new TextView(context); header.setTextColor(Color.WHITE); header.setTypeface(AndroidUtilities.bold()); - header.setText(LocaleController.getString("StoriesIntroHeader", R.string.StoriesIntroHeader)); + header.setText(LocaleController.getString(R.string.StoriesIntroHeader)); header.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); linearLayout.addView(header, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); TextView subHeader = new TextView(context); subHeader.setTextColor(0x96FFFFFF); // 60% - subHeader.setText(LocaleController.getString("StoriesIntroSubHeader", R.string.StoriesIntroSubHeader)); + subHeader.setText(LocaleController.getString(R.string.StoriesIntroSubHeader)); subHeader.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); subHeader.setGravity(Gravity.CENTER_HORIZONTAL); linearLayout.addView(subHeader, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, 68, 8, 68, 36)); items = new ArrayList<>(4); - items.add(new StoriesIntroItemView(context, R.raw.stories_intro_go_forward, LocaleController.getString("StoriesIntroGoForwardHeader", R.string.StoriesIntroGoForwardHeader), LocaleController.getString("StoriesIntroGoForwardSubHeader", R.string.StoriesIntroGoForwardSubHeader))); - items.add(new StoriesIntroItemView(context, R.raw.stories_intro_pause, LocaleController.getString("StoriesIntroPauseAndSeekHeader", R.string.StoriesIntroPauseAndSeekHeader), LocaleController.getString("StoriesIntroPauseAndSeekSubHeader", R.string.StoriesIntroPauseAndSeekSubHeader))); - items.add(new StoriesIntroItemView(context, R.raw.stories_intro_go_back, LocaleController.getString("StoriesIntroGoBackHeader", R.string.StoriesIntroGoBackHeader), LocaleController.getString("StoriesIntroGoBackSubHeader", R.string.StoriesIntroGoBackSubHeader))); - items.add(new StoriesIntroItemView(context, R.raw.stories_intro_go_to_next, LocaleController.getString("StoriesIntroGoToNextAuthorHeader", R.string.StoriesIntroGoToNextAuthorHeader), LocaleController.getString("StoriesIntroGoToNextAuthorSubHeader", R.string.StoriesIntroGoToNextAuthorSubHeader))); + items.add(new StoriesIntroItemView(context, R.raw.stories_intro_go_forward, LocaleController.getString(R.string.StoriesIntroGoForwardHeader), LocaleController.getString(R.string.StoriesIntroGoForwardSubHeader))); + items.add(new StoriesIntroItemView(context, R.raw.stories_intro_pause, LocaleController.getString(R.string.StoriesIntroPauseAndSeekHeader), LocaleController.getString(R.string.StoriesIntroPauseAndSeekSubHeader))); + items.add(new StoriesIntroItemView(context, R.raw.stories_intro_go_back, LocaleController.getString(R.string.StoriesIntroGoBackHeader), LocaleController.getString(R.string.StoriesIntroGoBackSubHeader))); + items.add(new StoriesIntroItemView(context, R.raw.stories_intro_go_to_next, LocaleController.getString(R.string.StoriesIntroGoToNextAuthorHeader), LocaleController.getString(R.string.StoriesIntroGoToNextAuthorSubHeader))); // adjust the width for small devices int storiesIntroItemViewWidth = parentView.getMeasuredWidth() - AndroidUtilities.dp(100); @@ -96,7 +96,7 @@ public StoriesIntro(Context context, View parentView) { TextView bottomText = new TextView(context); bottomText.setTextColor(Color.WHITE); bottomText.setTypeface(AndroidUtilities.bold()); - bottomText.setText(LocaleController.getString("StoriesIntroDismiss", R.string.StoriesIntroDismiss)); + bottomText.setText(LocaleController.getString(R.string.StoriesIntroDismiss)); bottomText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); linearLayout.addView(bottomText, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, 0, 73, 0, 0)); addView(linearLayout, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesUtilities.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesUtilities.java index ed47b7524b..9807f82864 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesUtilities.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoriesUtilities.java @@ -812,9 +812,9 @@ public static Drawable getExpiredStoryDrawable() { public static CharSequence getUploadingStr(TextView textView, boolean medium, boolean edit) { String str; if (edit) { - str = LocaleController.getString("StoryEditing", R.string.StoryEditing); + str = LocaleController.getString(R.string.StoryEditing); } else { - str = LocaleController.getString("UploadingStory", R.string.UploadingStory); + str = LocaleController.getString(R.string.UploadingStory); } int index = str.indexOf("…"); if (index > 0) { @@ -831,9 +831,9 @@ public static CharSequence getUploadingStr(TextView textView, boolean medium, bo public static void applyUploadingStr(SimpleTextView textView, boolean medium, boolean edit) { String str; if (edit) { - str = LocaleController.getString("StoryEditing", R.string.StoryEditing); + str = LocaleController.getString(R.string.StoryEditing); } else { - str = LocaleController.getString("UploadingStory", R.string.UploadingStory); + str = LocaleController.getString(R.string.UploadingStory); } int index = str.indexOf("…"); if (index > 0) { @@ -848,7 +848,7 @@ public static void applyUploadingStr(SimpleTextView textView, boolean medium, bo } public static void applyUploadingStr(AnimatedTextView textView, boolean medium, boolean animated) { - String str = LocaleController.getString("UploadingStory", R.string.UploadingStory); + String str = LocaleController.getString(R.string.UploadingStory); int index = str.indexOf("…"); if (index > 0) { SpannableStringBuilder spannableStringBuilder = SpannableStringBuilder.valueOf(str); @@ -880,7 +880,7 @@ public static CharSequence createExpiredStoryString(boolean useScale, String str public static CharSequence createReplyStoryString() { SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(); - spannableStringBuilder.append("d ").append(LocaleController.getString("Story", R.string.Story)); + spannableStringBuilder.append("d ").append(LocaleController.getString(R.string.Story)); ColoredImageSpan coloredImageSpan = new ColoredImageSpan(R.drawable.msg_mini_replystory2); spannableStringBuilder.setSpan(coloredImageSpan, 0, 1, 0); return spannableStringBuilder; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryCaptionView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryCaptionView.java index 8f271c6f28..3ca228f8f0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryCaptionView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryCaptionView.java @@ -909,7 +909,7 @@ public void measure(int width) { if (shouldCollapse) { float collapsedY = fullLayout.getLineTop(2) + fullLayout.getTopPadding(); if (this == state[0]) { - String showMoreText = LocaleController.getString("ShowMore", R.string.ShowMore); + String showMoreText = LocaleController.getString(R.string.ShowMore); showMore = makeTextLayout(showMorePaint, showMoreText, width); showMoreY = verticalPadding + replyOffset + collapsedY - AndroidUtilities.dpf2(0.3f); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryViewer.java index 034037b35a..af0e30a69c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryViewer.java @@ -1628,6 +1628,7 @@ public WindowInsets onApplyWindowInsets(@NonNull View v, @NonNull WindowInsets i }); containerView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); } + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, windowView, windowLayoutParams); windowManager.addView(windowView, windowLayoutParams); } windowView.requestLayout(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryWaveEffectView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryWaveEffectView.java index ed3e085df8..29b55d5388 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryWaveEffectView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryWaveEffectView.java @@ -166,6 +166,7 @@ public StoryWaveEffectView prepare() { } public StoryWaveEffectView start() { + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, this, layoutParams); windowManager.addView(this, layoutParams); return this; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryWidgetsImageDecorator.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryWidgetsImageDecorator.java index 4b296f510e..7cf5422064 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryWidgetsImageDecorator.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/StoryWidgetsImageDecorator.java @@ -184,7 +184,7 @@ public void invalidate() { marker.setIsVideo(false); marker.setCodeEmoji(UserConfig.selectedAccount, state.getEmoji()); marker.setText(state.getTemperature()); - marker.setType(0, mediaArea.color); + marker.setType(3, mediaArea.color); marker.setupLayout(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/bots/BotPreviewsEditContainer.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/bots/BotPreviewsEditContainer.java index 70b675eda4..32b05af4b6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/bots/BotPreviewsEditContainer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/bots/BotPreviewsEditContainer.java @@ -81,6 +81,7 @@ import org.telegram.ui.Components.ViewPagerFixed; import org.telegram.ui.LaunchActivity; import org.telegram.ui.ProfileActivity; +import org.telegram.ui.Stars.StarsIntroActivity; import org.telegram.ui.Stories.StoriesController; import org.telegram.ui.Stories.StoriesListPlaceProvider; import org.telegram.ui.Stories.recorder.ButtonWithCounterView; @@ -1982,6 +1983,7 @@ protected void onDraw(Canvas canvas) { } public static class Factory extends UItem.UItemFactory { + static { setup(new Factory()); } @Override public LanguageView createView(Context context, int currentAccount, int classGuid, Theme.ResourcesProvider resourcesProvider) { return new LanguageView(context); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/ButtonWithCounterView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/ButtonWithCounterView.java index b4e84349f7..27c345c1ce 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/ButtonWithCounterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/ButtonWithCounterView.java @@ -23,6 +23,7 @@ import androidx.core.content.ContextCompat; import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.LocaleController; import org.telegram.messenger.R; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Components.AnimatedFloat; @@ -332,7 +333,7 @@ public void setCount(int count, boolean animated) { } lastCount = count; countAlpha = count != 0 || showZero ? 1f : 0f; - countText.setText("" + count, animated); + countText.setText(LocaleController.formatNumber(count, ' '), animated); invalidate(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/EmojiBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/EmojiBottomSheet.java index 2d6c7a3649..b7bf5c3d4b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/EmojiBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/EmojiBottomSheet.java @@ -5,6 +5,7 @@ import static org.telegram.messenger.AndroidUtilities.lerp; import static org.telegram.messenger.AndroidUtilities.translitSafe; +import android.Manifest; import android.app.Activity; import android.app.Dialog; import android.content.Context; @@ -101,6 +102,7 @@ import org.telegram.ui.Components.ExtendedGridLayoutManager; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.LoadingSpan; +import org.telegram.ui.Components.PermissionRequest; import org.telegram.ui.Components.Premium.PremiumFeatureBottomSheet; import org.telegram.ui.Components.RLottieDrawable; import org.telegram.ui.Components.Reactions.ReactionImageHolder; @@ -160,7 +162,7 @@ public void bind(int type) { } } - private class GifPage extends IPage { + private class GifPage extends IPage implements NotificationCenter.NotificationCenterDelegate { public RecyclerListView listView; public GifAdapter adapter; @@ -182,23 +184,22 @@ public boolean onInterceptTouchEvent(MotionEvent event) { listView.addItemDecoration(new RecyclerView.ItemDecoration() { @Override public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { - outRect.right = layoutManager.isLastInRow(parent.getChildAdapterPosition(view) - 1) ? 0 : dp(4); + outRect.right = layoutManager.isLastInRow(parent.getChildAdapterPosition(view)) ? 0 : dp(4); outRect.bottom = dp(4); } }); listView.setClipToPadding(true); listView.setVerticalScrollBarEnabled(false); final RecyclerListView.OnItemClickListener onItemClickListener = (view, position) -> { - position--; - if (position < 0 || position >= gifs.size()) { - return; - } - TLRPC.BotInlineResult res = gifs.get(position); - if (res == null) { - return; - } - TLRPC.Document document = res.document; - if (document == null) { + Object obj = adapter.getItem(position); + TLObject res = null; + TLRPC.Document document = null; + if (obj instanceof TLRPC.BotInlineResult) { + res = (TLRPC.BotInlineResult) obj; + document = ((TLRPC.BotInlineResult) obj).document; + } else if (obj instanceof TLRPC.Document) { + document = (TLRPC.Document) obj; + } else { return; } if (onDocumentSelected != null) { @@ -217,7 +218,7 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { } int position = layoutManager.findLastCompletelyVisibleItemPosition(); - if (position + 3 >= adapter.getItemCount() - 1) { + if (position + 7 >= adapter.getItemCount() - 1) { adapter.request(); } } @@ -294,14 +295,38 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { @Override public void bind(int type) { + adapter.updateRecent(false); + if (gifs.isEmpty() && TextUtils.isEmpty(query)) { + adapter.request(); + } adapter.updateItems(null); } + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.recentDocumentsDidLoad); + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.recentDocumentsDidLoad); + } + + @Override + public void didReceivedNotification(int id, int account, Object... args) { + if (id == NotificationCenter.recentDocumentsDidLoad) { + adapter.updateRecent(true); + } + } + private static final int VIEW_TYPE_PAD = 0; - private static final int VIEW_TYPE_GIF = 1; + private static final int VIEW_TYPE_HEADER = 1; + private static final int VIEW_TYPE_GIF = 2; - private ArrayList gifs = new ArrayList<>(); - private HashMap> cache = new HashMap<>(); + private final ArrayList mygifs = new ArrayList<>(); + private final ArrayList gifs = new ArrayList<>(); private class GifAdapter extends RecyclerListView.SelectionAdapter { @@ -311,6 +336,14 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int View view; if (viewType == VIEW_TYPE_PAD) { view = new View(getContext()); + } else if (viewType == VIEW_TYPE_HEADER) { + final StickerSetNameCell cell1 = new StickerSetNameCell(getContext(), false, resourcesProvider); + cell1.setText(LocaleController.getString(R.string.FeaturedGifs), 0); + view = cell1; + final RecyclerView.LayoutParams lp = new RecyclerView.LayoutParams(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT); + lp.topMargin = AndroidUtilities.dp(2.5f); + lp.bottomMargin = AndroidUtilities.dp(5.5f); + view.setLayoutParams(lp); } else { ContextLinkCell cell = new ContextLinkCell(getContext()); cell.getPhotoImage().setLayerNum(7); @@ -329,13 +362,38 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi holder.itemView.setTag(34); holder.itemView.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) maxPadding)); } else if (viewType == VIEW_TYPE_GIF) { - ((ContextLinkCell) holder.itemView).setLink(gifs.get(position - 1), bot, true, false, false, true); + final ContextLinkCell cell = (ContextLinkCell) holder.itemView; + final Object obj = getItem(position); + if (obj instanceof TLRPC.Document) { + cell.setGif((TLRPC.Document) obj, false); + } else if (obj instanceof TLRPC.BotInlineResult) { + cell.setLink((TLRPC.BotInlineResult) obj, bot, true, false, false, true); + } } } @Override public int getItemCount() { - return 1 + gifs.size(); + return 1 + (!mygifs.isEmpty() && TextUtils.isEmpty(query) ? mygifs.size() : 0) + (gifs.isEmpty() ? 0 : (!mygifs.isEmpty() && TextUtils.isEmpty(query) ? 1 : 0) + gifs.size()); + } + + public Object getItem(int position) { + position--; + if (!mygifs.isEmpty() && TextUtils.isEmpty(query)) { + if (position >= 0 && position < mygifs.size()) { + return mygifs.get(position); + } + position -= mygifs.size(); + } + if (!gifs.isEmpty()) { + if (!mygifs.isEmpty() && TextUtils.isEmpty(query)) { + position--; + } + if (position >= 0 && position < gifs.size()) { + return gifs.get(position); + } + } + return null; } @Override @@ -343,6 +401,15 @@ public int getItemViewType(int position) { if (position == 0) { return VIEW_TYPE_PAD; } + position--; + if (!mygifs.isEmpty() && TextUtils.isEmpty(query)) { + position -= mygifs.size(); + } + if (!gifs.isEmpty()) { + if (!mygifs.isEmpty() && TextUtils.isEmpty(query) && position == 0) + return VIEW_TYPE_HEADER; + position--; + } return VIEW_TYPE_GIF; } @@ -360,6 +427,7 @@ public void updateItems(String query) { requesting = false; offset = ""; } + final boolean wasQueryEmpty = TextUtils.isEmpty(this.query); this.query = query; AndroidUtilities.cancelRunOnUIThread(searchRunnable); if (TextUtils.isEmpty(query)) { @@ -367,6 +435,9 @@ public void updateItems(String query) { searchField.showProgress(false); notifyDataSetChanged(); } else { + if (wasQueryEmpty) { + notifyDataSetChanged(); + } searchField.showProgress(true); AndroidUtilities.runOnUIThread(searchRunnable, 1500); } @@ -381,6 +452,12 @@ public void updateItems(String query) { private boolean requestedBot; private boolean requesting = false; + private void updateRecent(boolean notify) { + mygifs.clear(); + mygifs.addAll(MediaDataController.getInstance(currentAccount).getRecentGifs()); + if (notify) notifyDataSetChanged(); + } + private void request() { if (requesting) { return; @@ -441,11 +518,7 @@ private void request() { } int position = gifs.size(); gifs.addAll(response.results); - if (emptyOffset) { - notifyDataSetChanged(); - } else { - notifyItemRangeInserted(position, gifs.size() - position); - } + notifyDataSetChanged(); searchField.showProgress(false); requesting = false; @@ -464,11 +537,7 @@ private void request() { } int position = gifs.size(); gifs.addAll(response.results); - if (emptyOffset) { - notifyDataSetChanged(); - } else { - notifyItemRangeInserted(position, gifs.size() - position); - } + notifyDataSetChanged(); } searchField.showProgress(false); @@ -488,26 +557,27 @@ public GifLayoutManager(Context context) { setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { - if (position == 0) { - return getSpanCount(); - } - return getSpanSizeForItem(position - 1); + Object obj = adapter.getItem(position); + if (obj == null) return getSpanCount(); + return getSpanSizeForItem(position); } }); } @Override protected int getFlowItemCount() { - return getItemCount() - 1; + return getItemCount(); } @Override protected Size getSizeForItem(int i) { + size.full = false; TLRPC.Document document = null; ArrayList attributes = null; - if (i >= 0 && i < gifs.size()) { - TLRPC.BotInlineResult result = gifs.get(i); + Object obj = adapter.getItem(i); + if (obj instanceof TLRPC.BotInlineResult) { + TLRPC.BotInlineResult result = (TLRPC.BotInlineResult) obj; document = result.document; if (document != null) { attributes = document.attributes; @@ -518,12 +588,19 @@ protected Size getSizeForItem(int i) { } else { attributes = null; } + } else if (obj instanceof TLRPC.Document) { + document = (TLRPC.Document) obj; + attributes = document.attributes; + } else { + size.full = true; + return size; } return getSizeForItem(document, attributes); } public Size getSizeForItem(TLRPC.Document document, List attributes) { size.width = size.height = 100; + size.full = false; if (document != null) { TLRPC.PhotoSize thumb = FileLoader.getClosestPhotoSizeWithSize(document.thumbs, 90); if (thumb != null && thumb.w != 0 && thumb.h != 0) { @@ -861,7 +938,7 @@ private void updateItems(String query) { } faveSet.documents = favorites; faveSet.set = new TLRPC.TL_stickerSet(); - faveSet.set.title = LocaleController.getString("FavoriteStickers", R.string.FavoriteStickers); + faveSet.set.title = LocaleController.getString(R.string.FavoriteStickers); stickerSets.add(faveSet); } @@ -875,7 +952,7 @@ private void updateItems(String query) { recentSet.documents.add(0, plus); } recentSet.set = new TLRPC.TL_stickerSet(); - recentSet.set.title = LocaleController.getString("RecentStickers", R.string.RecentStickers); + recentSet.set.title = LocaleController.getString(R.string.RecentStickers); stickerSets.add(recentSet); } } @@ -1531,6 +1608,7 @@ public void bindView(View view, int position, int viewType) { if (!onlyStickers) { MediaDataController.getInstance(currentAccount).checkStickers(MediaDataController.TYPE_EMOJIPACKS); MediaDataController.getInstance(currentAccount).checkFeaturedEmoji(); + MediaDataController.getInstance(currentAccount).loadRecents(MediaDataController.TYPE_IMAGE, true, true, false); } MediaDataController.getInstance(currentAccount).checkStickers(MediaDataController.TYPE_IMAGE); @@ -2417,7 +2495,7 @@ protected void onFocusChanged(boolean focused, int direction, Rect previouslyFoc editText.setLines(1); editText.setSingleLine(true); editText.setImeOptions(EditorInfo.IME_ACTION_SEARCH | EditorInfo.IME_FLAG_NO_EXTRACT_UI); - editText.setHint(LocaleController.getString("Search", R.string.Search)); + editText.setHint(LocaleController.getString(R.string.Search)); editText.setCursorColor(Theme.getColor(Theme.key_featuredStickers_addedIcon, resourcesProvider)); editText.setHandlesColor(Theme.getColor(Theme.key_featuredStickers_addedIcon, resourcesProvider)); editText.setCursorSize(dp(20)); @@ -2664,7 +2742,7 @@ private void updateLayouts() { stickersLayoutWidth = stickersLayout.getLineCount() >= 1 ? stickersLayout.getLineWidth(0) : 0; stickersLayoutLeft = stickersLayout.getLineCount() >= 1 ? stickersLayout.getLineLeft(0) : 0; - gifsLayout = new StaticLayout(LocaleController.getString("AccDescrGIFs", R.string.AccDescrGIFs), textPaint, getMeasuredWidth(), Layout.Alignment.ALIGN_NORMAL, 1, 0, false); + gifsLayout = new StaticLayout(LocaleController.getString(R.string.AccDescrGIFs), textPaint, getMeasuredWidth(), Layout.Alignment.ALIGN_NORMAL, 1, 0, false); gifsLayoutWidth = gifsLayout.getLineCount() >= 1 ? gifsLayout.getLineWidth(0) : 0; gifsLayoutLeft = gifsLayout.getLineCount() >= 1 ? gifsLayout.getLineLeft(0) : 0; @@ -2757,7 +2835,7 @@ public NoEmojiView(Context context, boolean emoji) { textView = new TextView(context); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); textView.setTextColor(-8553090); // Theme.getColor(Theme.key_chat_emojiPanelEmptyText, resourcesProvider) - textView.setText(emoji ? LocaleController.getString("NoEmojiFound", R.string.NoEmojiFound) : LocaleController.getString("NoStickersFound", R.string.NoStickersFound)); + textView.setText(emoji ? LocaleController.getString(R.string.NoEmojiFound) : LocaleController.getString(R.string.NoStickersFound)); addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER, 0, 18 + 16, 0, 0)); } @@ -2813,7 +2891,7 @@ public StoryWidgetsCell(Context context) { Weather.State weather = Weather.getCached(); Button[] btn = new Button[] { null }; CharSequence text = Emoji.replaceEmoji((weather == null ? "🌤" : weather.getEmoji()) + " " + (weather == null ? (Weather.isDefaultCelsius() ? "24°C" : "72°F") : weather.getTemperature()), textPaint.getFontMetricsInt(), false); - if (MessagesController.getInstance(currentAccount).storyWeatherPreload && Weather.hasLocationPermission() && weather == null) { + if (MessagesController.getInstance(currentAccount).storyWeatherPreload && PermissionRequest.hasPermission(Manifest.permission.ACCESS_COARSE_LOCATION) && weather == null) { text = new SpannableStringBuilder("___"); ((SpannableStringBuilder) text).setSpan(new LoadingSpan(this, dp(68)), 0, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); btn[0] = new Button(this, WIDGET_WEATHER, text); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/GalleryListView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/GalleryListView.java index a67f3f9a14..d22ae684d2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/GalleryListView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/GalleryListView.java @@ -417,7 +417,7 @@ public void onTextChanged(EditText editText) { } }); searchItem.setVisibility(View.GONE); - searchItem.setSearchFieldHint(LocaleController.getString("SearchImagesTitle", R.string.SearchImagesTitle)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.SearchImagesTitle)); searchListView.setOnItemClickListener((view, position) -> { if (searchItem != null) { @@ -454,7 +454,7 @@ public void onTextChanged(EditText editText) { selectedPhotos = getPhotoEntries(selectedAlbum); updateContainsDrafts(); if (selectedAlbum == MediaController.allMediaAlbumEntry) { - dropDown.setText(LocaleController.getString("ChatGallery", R.string.ChatGallery)); + dropDown.setText(LocaleController.getString(R.string.ChatGallery)); } else if (selectedAlbum == draftsAlbum) { dropDown.setText(LocaleController.getString("StoryDraftsAlbum")); } else { @@ -632,7 +632,7 @@ private void selectAlbum(MediaController.AlbumEntry album, boolean scrollAnimate selectedPhotos = getPhotoEntries(selectedAlbum); updateContainsDrafts(); if (selectedAlbum == MediaController.allMediaAlbumEntry) { - dropDown.setText(LocaleController.getString("ChatGallery", R.string.ChatGallery)); + dropDown.setText(LocaleController.getString(R.string.ChatGallery)); } else if (selectedAlbum == draftsAlbum) { dropDown.setText(LocaleController.getString("StoryDraftsAlbum")); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PaintView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PaintView.java index 49fc1986b3..6ef9a81659 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PaintView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PaintView.java @@ -1193,6 +1193,9 @@ private LocationView createLocationSticker(TLRPC.MessageMedia location, TL_stori if (position.y == entitiesView.getMeasuredHeight() / 2f) { view.setStickyY(EntityView.STICKY_CENTER); } + if (colorSwatch != null && colorSwatch.color != 0xFFFF453A) { + view.setColor(colorSwatch.color); + } view.setDelegate(this); view.setMaxWidth(maxWidth); entitiesView.addView(view, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); @@ -1225,6 +1228,9 @@ private WeatherView createWeatherView(Weather.State weather, boolean select) { if (position.y == entitiesView.getMeasuredHeight() / 2f) { view.setStickyY(EntityView.STICKY_CENTER); } + if (colorSwatch != null && colorSwatch.color != 0xFFFF453A) { + view.setColor(colorSwatch.color); + } view.setDelegate(this); view.setMaxWidth(maxWidth); entitiesView.addView(view, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); @@ -1257,6 +1263,9 @@ private LinkView createLinkSticker(LinkPreview.WebPagePreview link, TL_stories.M if (position.y == entitiesView.getMeasuredHeight() / 2f) { view.setStickyY(EntityView.STICKY_CENTER); } + if (colorSwatch != null && colorSwatch.color != 0xFFFF453A) { + view.setColor(colorSwatch.color); + } view.setDelegate(this); view.setMaxWidth(maxWidth); entitiesView.addView(view, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT)); @@ -1422,7 +1431,11 @@ private boolean selectEntity(EntityView entityView, boolean changeOptions) { view.setType((view.getType() + 1) % view.getTypesCount()); } else if (entityView instanceof LinkView) { LinkView view = (LinkView) entityView; - view.setType(view.getNextType()); + if (view.marker.withPreview()) { + view.marker.setPreviewType(view.marker.getPreviewType() == 0 ? 1 : 0); + } else { + view.setType(view.getNextType()); + } } else if (!editingText) { if (entityView instanceof TextPaintView) { enteredThroughText = true; @@ -1954,6 +1967,7 @@ protected boolean checkAudioPermission(Runnable granted) { Weather.fetch(true, weather -> { if (weather != null) { alert.dismiss(); + onOpenCloseStickersAlert(false); appearAnimation(createWeatherView(weather, false)); } }); @@ -2414,6 +2428,9 @@ private void setupEntities() { if (entity.color != 0) { linkView.setColor(entity.color); } + if (linkView.marker.withPreview()) { + linkView.marker.setPreviewType(entity.subType); + } if (entity.subType == -1) { linkView.setType(3); linkView.marker.setupLayout(); @@ -2777,7 +2794,11 @@ public Bitmap getBitmap(ArrayList entities, int res } else if (entity instanceof LinkView) { LinkView linkView = (LinkView) entity; mediaEntity.type = VideoEditedInfo.MediaEntity.TYPE_LINK; - mediaEntity.subType = (byte) linkView.getType(); + if (linkView.marker.withPreview()) { + mediaEntity.subType = (byte) linkView.marker.getPreviewType(); + } else { + mediaEntity.subType = (byte) linkView.getType(); + } mediaEntity.width = linkView.marker.getWidth(); mediaEntity.height = linkView.marker.getHeight(); mediaEntity.color = linkView.hasColor() ? linkView.getColor() : 0; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PreviewHighlightView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PreviewHighlightView.java index 509d073e2a..1ac0acbcaa 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PreviewHighlightView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/PreviewHighlightView.java @@ -77,7 +77,7 @@ protected void dispatchDraw(Canvas canvas) { CharSequence text = UserObject.getUserName(me); text = Emoji.replaceEmoji(text, headerView.titleView.getPaint().getFontMetricsInt(), false); headerView.titleView.setText(text); - headerView.setSubtitle(LocaleController.getString("RightNow", R.string.RightNow), false); + headerView.setSubtitle(LocaleController.getString(R.string.RightNow), false); top.addView(headerView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.FILL_HORIZONTAL, 0, 17, 0, 0)); ImageView closeIconView = new ImageView(context); @@ -110,7 +110,7 @@ protected void dispatchDraw(Canvas canvas) { TextView editText = new TextView(context); editText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); editText.setTextColor(1694498815); - editText.setText(LocaleController.getString("ReplyPrivately", R.string.ReplyPrivately)); + editText.setText(LocaleController.getString(R.string.ReplyPrivately)); editLayout.addView(editText, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.CENTER_VERTICAL, 24, 0, 24, 0)); // ImageView likeButton = new ImageView(context); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryLinkSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryLinkSheet.java index 921aa5e0e9..58ad3e9cca 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryLinkSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryLinkSheet.java @@ -47,6 +47,7 @@ import org.telegram.ui.Components.ScaleStateListAnimator; import org.telegram.ui.Components.UItem; import org.telegram.ui.Components.UniversalAdapter; +import org.telegram.ui.Stars.StarsIntroActivity; import java.util.ArrayList; import java.util.regex.Pattern; @@ -521,6 +522,7 @@ public void set(TLRPC.WebPage webpage, View.OnClickListener onCloseClick, boolea } public static class Factory extends UItem.UItemFactory { + static { setup(new Factory()); } @Override public WebpagePreviewView createView(Context context, int currentAccount, int classGuid, Theme.ResourcesProvider resourcesProvider) { return new WebpagePreviewView(context); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryPrivacyBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryPrivacyBottomSheet.java index f577fa5f20..fad73ee6c5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryPrivacyBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryPrivacyBottomSheet.java @@ -338,9 +338,9 @@ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newStat performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); } catch (Throwable ignore) {} new AlertDialog.Builder(getContext(), resourcesProvider) - .setTitle(getString("GroupTooLarge", R.string.GroupTooLarge)) - .setMessage(getString("GroupTooLargeMessage", R.string.GroupTooLargeMessage)) - .setPositiveButton(getString("OK", R.string.OK), null) + .setTitle(getString(R.string.GroupTooLarge)) + .setMessage(getString(R.string.GroupTooLargeMessage)) + .setPositiveButton(getString(R.string.OK), null) .show(); } else if (selectedUsersByGroup.containsKey(id)) { ArrayList userIds = selectedUsersByGroup.get(id); @@ -1004,11 +1004,11 @@ public void updateItems(boolean animated, boolean notify) { if (canChangePeer && (isEdit || sendAs == null || sendAs.size() <= 1)) { items.add(ItemInner.asHeader2( isEdit ? - getString("StoryPrivacyAlertEditTitle", R.string.StoryPrivacyAlertEditTitle) : - getString("StoryPrivacyAlertTitle", R.string.StoryPrivacyAlertTitle), + getString(R.string.StoryPrivacyAlertEditTitle) : + getString(R.string.StoryPrivacyAlertTitle), storyPeriod != Integer.MAX_VALUE ? LocaleController.formatPluralString("StoryPrivacyAlertSubtitle", storyPeriod / 3600) : - getString("StoryPrivacyAlertSubtitleProfile", R.string.StoryPrivacyAlertSubtitleProfile) + getString(R.string.StoryPrivacyAlertSubtitleProfile) )); pad.subtractHeight += dp(72); } else { @@ -1086,7 +1086,7 @@ public void updateItems(boolean animated, boolean notify) { int blocklistCount = MessagesController.getInstance(currentAccount).getStoriesController().getBlocklistCount(); items.add(ItemInner.asShadow(AndroidUtilities.replaceSingleTag( blocklistCount <= 0 ? - getString("StoryBlockListEmpty") : + getString(R.string.StoryBlockListEmpty) : LocaleController.formatPluralString("StoryBlockList", blocklistCount), Theme.key_chat_messageLinkIn, 0, () -> { @@ -1112,7 +1112,7 @@ public void updateItems(boolean animated, boolean notify) { pad.subtractHeight += dp(72); } } else if (pageType == PAGE_TYPE_CLOSE_FRIENDS) { - headerView.setText(getString("StoryPrivacyAlertCloseFriendsTitle", R.string.StoryPrivacyAlertCloseFriendsTitle)); + headerView.setText(getString(R.string.StoryPrivacyAlertCloseFriendsTitle)); headerView.setCloseImageVisible(true); headerView.backDrawable.setRotation(0f, false); items.add(ItemInner.asPad()); @@ -1123,11 +1123,11 @@ public void updateItems(boolean animated, boolean notify) { h += dp(150); items.add(ItemInner.asSection()); h += dp(32); - sectionCell.setText(getString("StoryPrivacyAlertCloseFriendsSubtitle", R.string.StoryPrivacyAlertCloseFriendsSubtitle)); + sectionCell.setText(getString(R.string.StoryPrivacyAlertCloseFriendsSubtitle)); updateSectionCell(animated); containsHeader = true; } else if (pageType == PAGE_TYPE_EXCLUDE_CONTACTS) { - headerView.setText(getString("StoryPrivacyAlertExcludedContactsTitle", R.string.StoryPrivacyAlertExcludedContactsTitle)); + headerView.setText(getString(R.string.StoryPrivacyAlertExcludedContactsTitle)); headerView.setCloseImageVisible(true); headerView.backDrawable.setRotation(0f, false); items.add(ItemInner.asPad()); @@ -1138,11 +1138,11 @@ public void updateItems(boolean animated, boolean notify) { h += dp(150); items.add(ItemInner.asSection()); h += dp(32); - sectionCell.setText(getString("StoryPrivacyAlertExcludedContactsSubtitle", R.string.StoryPrivacyAlertExcludedContactsSubtitle)); + sectionCell.setText(getString(R.string.StoryPrivacyAlertExcludedContactsSubtitle)); updateSectionCell(animated); containsHeader = true; } else if (pageType == PAGE_TYPE_SELECT_CONTACTS) { - headerView.setText(getString("StoryPrivacyAlertSelectContactsTitle", R.string.StoryPrivacyAlertSelectContactsTitle)); + headerView.setText(getString(R.string.StoryPrivacyAlertSelectContactsTitle)); headerView.setCloseImageVisible(true); headerView.backDrawable.setRotation(0f, false); items.add(ItemInner.asPad()); @@ -1153,11 +1153,11 @@ public void updateItems(boolean animated, boolean notify) { h += dp(150); items.add(ItemInner.asSection()); h += dp(32); - sectionCell.setText(getString("StoryPrivacyAlertSelectContactsSubtitle", R.string.StoryPrivacyAlertSelectContactsSubtitle)); + sectionCell.setText(getString(R.string.StoryPrivacyAlertSelectContactsSubtitle)); updateSectionCell(animated); containsHeader = true; } else if (pageType == PAGE_TYPE_SEND_AS_MESSAGE) { - headerView.setText(getString("StoryPrivacyAlertAsMessageTitle", R.string.StoryPrivacyAlertAsMessageTitle)); + headerView.setText(getString(R.string.StoryPrivacyAlertAsMessageTitle)); headerView.setCloseImageVisible(startedFromSendAsMessage); headerView.backDrawable.setRotation(0f, false); items.add(ItemInner.asPad()); @@ -1168,11 +1168,11 @@ public void updateItems(boolean animated, boolean notify) { h += dp(150); items.add(ItemInner.asSection()); h += dp(32); - sectionCell.setText(getString("StoryPrivacyAlertAsMessageSubtitle", R.string.StoryPrivacyAlertAsMessageSubtitle)); + sectionCell.setText(getString(R.string.StoryPrivacyAlertAsMessageSubtitle)); updateSectionCell(animated); containsHeader = true; } else if (pageType == PAGE_TYPE_BLOCKLIST) { - headerView.setText(getString("StoryPrivacyAlertBlocklistTitle", R.string.StoryPrivacyAlertBlocklistTitle)); + headerView.setText(getString(R.string.StoryPrivacyAlertBlocklistTitle)); headerView.setCloseImageVisible(true); headerView.backDrawable.setRotation(0f, false); items.add(ItemInner.asPad()); @@ -1183,11 +1183,11 @@ public void updateItems(boolean animated, boolean notify) { h += dp(150); items.add(ItemInner.asSection()); h += dp(32); - sectionCell.setText(getString("StoryPrivacyAlertBlocklistSubtitle", R.string.StoryPrivacyAlertBlocklistSubtitle)); + sectionCell.setText(getString(R.string.StoryPrivacyAlertBlocklistSubtitle)); updateSectionCell(animated); containsHeader = true; } else if (pageType == PAGE_TYPE_EXCLUDE_EVERYONE) { - headerView.setText(getString("StoryPrivacyAlertExcludeFromEveryoneTitle", R.string.StoryPrivacyAlertExcludeFromEveryoneTitle)); + headerView.setText(getString(R.string.StoryPrivacyAlertExcludeFromEveryoneTitle)); headerView.setCloseImageVisible(true); headerView.backDrawable.setRotation(0f, false); items.add(ItemInner.asPad()); @@ -1198,7 +1198,7 @@ public void updateItems(boolean animated, boolean notify) { h += dp(150); items.add(ItemInner.asSection()); h += dp(32); - sectionCell.setText(getString("StoryPrivacyAlertExcludeFromEveryoneSubtitle", R.string.StoryPrivacyAlertExcludeFromEveryoneSubtitle)); + sectionCell.setText(getString(R.string.StoryPrivacyAlertExcludeFromEveryoneSubtitle)); updateSectionCell(animated); containsHeader = true; } @@ -1445,15 +1445,15 @@ public void updateButton(boolean animated) { button.setEnabled(true); button.setCount(0, animated); if (isEdit) { - button.setText(getString("StoryPrivacyButtonSave"), animated); + button.setText(getString(R.string.StoryPrivacyButtonSave), animated); } else { - button.setText(getString("StoryPrivacyButtonPost", R.string.StoryPrivacyButtonPost), animated); + button.setText(getString(R.string.StoryPrivacyButtonPost), animated); // if (selectedType == TYPE_CLOSE_FRIENDS) { -// button.setText(LocaleController.getString("StoryPrivacyButtonCloseFriends", R.string.StoryPrivacyButtonCloseFriends), animated); +// button.setText(LocaleController.getString(R.string.StoryPrivacyButtonCloseFriends), animated); // button.setCount(getCloseFriends().size(), animated); // } else if (selectedType == TYPE_CONTACTS) { // if (excludedContacts.isEmpty()) { -// button.setText(LocaleController.getString("StoryPrivacyButtonAllContacts", R.string.StoryPrivacyButtonAllContacts), animated); +// button.setText(LocaleController.getString(R.string.StoryPrivacyButtonAllContacts), animated); // button.setCount(0, animated); // } else { // button.setText(LocaleController.formatPluralString("StoryPrivacyButtonContacts", 99), animated); @@ -1466,22 +1466,22 @@ public void updateButton(boolean animated) { // button.setText(LocaleController.formatPluralString("StoryPrivacyButtonSelectedContacts", selectedUsers.size()), animated); // button.setCount(selectedUsers.size(), animated); // } else { -// button.setText(LocaleController.getString("StoryPrivacyButtonEveryone", R.string.StoryPrivacyButtonEveryone), animated); +// button.setText(LocaleController.getString(R.string.StoryPrivacyButtonEveryone), animated); // button.setCount(selectedUsers.size(), animated); // } } button2.setVisibility(sendAsMessageEnabled ? View.VISIBLE : View.GONE); -// button2.setText(LocaleController.getString("StoryPrivacyButtonMessage", R.string.StoryPrivacyButtonMessage), animated); +// button2.setText(LocaleController.getString(R.string.StoryPrivacyButtonMessage), animated); } else if (pageType == PAGE_TYPE_CLOSE_FRIENDS) { button.setShowZero(false); button.setEnabled(true); // button.setEnabled(!selectedUsers.isEmpty()); - button.setText(getString("StoryPrivacyButtonSaveCloseFriends", R.string.StoryPrivacyButtonSaveCloseFriends), animated); + button.setText(getString(R.string.StoryPrivacyButtonSaveCloseFriends), animated); button.setCount(selectedUsers.size(), animated); button2.setVisibility(View.GONE); } else if (pageType == PAGE_TYPE_SELECT_CONTACTS) { int count = selectedContactsCount = mergeUsers(selectedUsers, selectedUsersByGroup).size(); // button.setText(LocaleController.formatPluralString("StoryPrivacyButtonContacts", count), animated); - button.setText(getString("StoryPrivacyButtonSave"), animated); + button.setText(getString(R.string.StoryPrivacyButtonSave), animated); button.setShowZero(false); buttonContainer.hide(count <= 0, animated); button.setCount(count, animated); @@ -1491,10 +1491,10 @@ public void updateButton(boolean animated) { button.setShowZero(false); button.setEnabled(true); if (selectedUsers.isEmpty()) { - button.setText(getString("StoryPrivacyButtonSave"), animated); + button.setText(getString(R.string.StoryPrivacyButtonSave), animated); button.setCount(0, animated); } else { - button.setText(getString("StoryPrivacyButtonExcludeContacts", R.string.StoryPrivacyButtonExcludeContacts), animated); + button.setText(getString(R.string.StoryPrivacyButtonExcludeContacts), animated); button.setCount(selectedUsers.size(), animated); } button2.setVisibility(View.GONE); @@ -1507,7 +1507,7 @@ public void updateButton(boolean animated) { } else if (pageType == PAGE_TYPE_BLOCKLIST) { button.setShowZero(false); button.setEnabled(true); // button.setEnabled(!selectedUsers.isEmpty()); - button.setText(getString("StoryPrivacyButtonSaveCloseFriends", R.string.StoryPrivacyButtonSaveCloseFriends), animated); + button.setText(getString(R.string.StoryPrivacyButtonSaveCloseFriends), animated); StoriesController storiesController = MessagesController.getInstance(currentAccount).getStoriesController(); if (storiesController.blocklistFull) { button.setCount(selectedUsers.size(), animated); @@ -1533,7 +1533,7 @@ public void updateButton(boolean animated) { } else if (pageType == PAGE_TYPE_EXCLUDE_EVERYONE) { int count = excludedEveryoneCount = mergeUsers(excludedEveryone, excludedEveryoneByGroup).size(); // button.setText(LocaleController.formatPluralString("StoryPrivacyButtonContacts", count), animated); - button.setText(getString("StoryPrivacyButtonSave"), animated); + button.setText(getString(R.string.StoryPrivacyButtonSave), animated); button.setShowZero(false); buttonContainer.hide(false, animated); button.setCount(count, animated); @@ -1835,8 +1835,8 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int view.setBackgroundColor(Theme.getColor(Theme.key_dialogBackground, resourcesProvider)); } else if (viewType == VIEW_TYPE_NO_USERS) { StickerEmptyView searchEmptyView = new StickerEmptyView(context, null, StickerEmptyView.STICKER_TYPE_SEARCH, resourcesProvider); - searchEmptyView.title.setText(getString("NoResult", R.string.NoResult)); - searchEmptyView.subtitle.setText(getString("SearchEmptyViewFilteredSubtitle2", R.string.SearchEmptyViewFilteredSubtitle2)); + searchEmptyView.title.setText(getString(R.string.NoResult)); + searchEmptyView.subtitle.setText(getString(R.string.SearchEmptyViewFilteredSubtitle2)); searchEmptyView.linearLayout.setTranslationY(AndroidUtilities.dp(24)); view = searchEmptyView; } else if (viewType == VIEW_TYPE_SHADOW) { @@ -2873,9 +2873,9 @@ public void setChat(TLRPC.Chat chat, int participants_count) { subtitle = LocaleController.formatPluralStringComma("Subscribers", participants_count - 1); } else { if (!ChatObject.isPublic(chat)) { - subtitle = getString("ChannelPrivate", R.string.ChannelPrivate).toLowerCase(); + subtitle = getString(R.string.ChannelPrivate).toLowerCase(); } else { - subtitle = getString("ChannelPublic", R.string.ChannelPublic).toLowerCase(); + subtitle = getString(R.string.ChannelPublic).toLowerCase(); } } } else { @@ -2883,11 +2883,11 @@ public void setChat(TLRPC.Chat chat, int participants_count) { subtitle = LocaleController.formatPluralStringComma("Members", participants_count - 1); } else { if (chat.has_geo) { - subtitle = getString("MegaLocation", R.string.MegaLocation); + subtitle = getString(R.string.MegaLocation); } else if (!ChatObject.isPublic(chat)) { - subtitle = getString("MegaPrivate", R.string.MegaPrivate).toLowerCase(); + subtitle = getString(R.string.MegaPrivate).toLowerCase(); } else { - subtitle = getString("MegaPublic", R.string.MegaPublic).toLowerCase(); + subtitle = getString(R.string.MegaPublic).toLowerCase(); } } } @@ -2912,7 +2912,7 @@ private CharSequence withArrow(CharSequence text) { public void setType(int type, int count, TLRPC.User singleUser) { if (type == TYPE_EVERYONE) { - titleTextView.setText(getString("StoryPrivacyOptionEveryone", R.string.StoryPrivacyOptionEveryone)); + titleTextView.setText(getString(R.string.StoryPrivacyOptionEveryone)); if (count == 1 && singleUser != null) { CharSequence text = LocaleController.formatString(R.string.StoryPrivacyOptionExcludePerson, UserObject.getUserName(singleUser)); text = Emoji.replaceEmoji(text, subtitleTextView.getPaint().getFontMetricsInt(), false); @@ -2920,13 +2920,13 @@ public void setType(int type, int count, TLRPC.User singleUser) { } else if (count > 0) { setSubtitle(withArrow(LocaleController.formatPluralString("StoryPrivacyOptionExcludePeople", count))); } else { - setSubtitle(withArrow(getString("StoryPrivacyOptionContactsDetail", R.string.StoryPrivacyOptionContactsDetail))); + setSubtitle(withArrow(getString(R.string.StoryPrivacyOptionContactsDetail))); } subtitleTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlue2, resourcesProvider)); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_FILTER_CHANNELS); avatarDrawable.setColor(0xFF16A5F2, 0xFF1180F7); } else if (type == TYPE_CONTACTS) { - titleTextView.setText(getString("StoryPrivacyOptionContacts", R.string.StoryPrivacyOptionContacts)); + titleTextView.setText(getString(R.string.StoryPrivacyOptionContacts)); if (count == 1 && singleUser != null) { CharSequence text = LocaleController.formatString(R.string.StoryPrivacyOptionExcludePerson, UserObject.getUserName(singleUser)); text = Emoji.replaceEmoji(text, subtitleTextView.getPaint().getFontMetricsInt(), false); @@ -2934,13 +2934,13 @@ public void setType(int type, int count, TLRPC.User singleUser) { } else if (count > 0) { setSubtitle(withArrow(LocaleController.formatPluralString("StoryPrivacyOptionExcludePeople", count))); } else { - setSubtitle(withArrow(getString("StoryPrivacyOptionContactsDetail", R.string.StoryPrivacyOptionContactsDetail))); + setSubtitle(withArrow(getString(R.string.StoryPrivacyOptionContactsDetail))); } subtitleTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlue2, resourcesProvider)); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_FILTER_CONTACTS); avatarDrawable.setColor(0xFFC468F2, 0xFF965CFA); } else if (type == TYPE_CLOSE_FRIENDS) { - titleTextView.setText(getString("StoryPrivacyOptionCloseFriends", R.string.StoryPrivacyOptionCloseFriends)); + titleTextView.setText(getString(R.string.StoryPrivacyOptionCloseFriends)); if (count == 1 && singleUser != null) { CharSequence text = UserObject.getUserName(singleUser); text = Emoji.replaceEmoji(text, subtitleTextView.getPaint().getFontMetricsInt(), false); @@ -2948,13 +2948,13 @@ public void setType(int type, int count, TLRPC.User singleUser) { } else if (count > 0) { setSubtitle(withArrow(LocaleController.formatPluralString("StoryPrivacyOptionPeople", count))); } else { - setSubtitle(withArrow(getString("StoryPrivacyOptionCloseFriendsDetail", R.string.StoryPrivacyOptionCloseFriendsDetail))); + setSubtitle(withArrow(getString(R.string.StoryPrivacyOptionCloseFriendsDetail))); } subtitleTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlue2, resourcesProvider)); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_CLOSE_FRIENDS); avatarDrawable.setColor(0xFF88D93A, 0xFF2DB63B); } else if (type == TYPE_SELECTED_CONTACTS) { - titleTextView.setText(getString("StoryPrivacyOptionSelectedContacts", R.string.StoryPrivacyOptionSelectedContacts)); + titleTextView.setText(getString(R.string.StoryPrivacyOptionSelectedContacts)); if (count == 1 && singleUser != null) { CharSequence text = UserObject.getUserName(singleUser); text = Emoji.replaceEmoji(text, subtitleTextView.getPaint().getFontMetricsInt(), false); @@ -2962,7 +2962,7 @@ public void setType(int type, int count, TLRPC.User singleUser) { } else if (count > 0) { setSubtitle(withArrow(LocaleController.formatPluralString("StoryPrivacyOptionPeople", count))); } else { - setSubtitle(withArrow(getString("StoryPrivacyOptionSelectedContactsDetail", R.string.StoryPrivacyOptionSelectedContactsDetail))); + setSubtitle(withArrow(getString(R.string.StoryPrivacyOptionSelectedContactsDetail))); } subtitleTextView.setTextColor(Theme.getColor(Theme.key_dialogTextBlue2, resourcesProvider)); avatarDrawable.setAvatarType(AvatarDrawable.AVATAR_TYPE_FILTER_GROUPS); @@ -3207,8 +3207,8 @@ public boolean onTouchEvent(MotionEvent event) { editText.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI); editText.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL); spansContainer.addView(editText); - editText.setHintText(getString("Search", R.string.Search)); - hintTextWidth = (int) editText.getPaint().measureText(getString("Search", R.string.Search)); + editText.setHintText(getString(R.string.Search)); + hintTextWidth = (int) editText.getPaint().measureText(getString(R.string.Search)); editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { @@ -3965,7 +3965,7 @@ public String toString() { return LocaleController.formatPluralString("StoryPrivacyRecipients", sendToUsers.size()); } if (rules.isEmpty()) { - return getString("StoryPrivacyNone", R.string.StoryPrivacyNone); + return getString(R.string.StoryPrivacyNone); } TLRPC.InputPrivacyRule rule1 = rules.get(0); if (type == TYPE_EVERYONE) { @@ -3976,9 +3976,9 @@ public String toString() { return LocaleController.formatPluralString("StoryPrivacyEveryoneExclude", usersCount); } } - return getString("StoryPrivacyEveryone", R.string.StoryPrivacyEveryone); + return getString(R.string.StoryPrivacyEveryone); } else if (type == TYPE_CLOSE_FRIENDS) { - return getString("StoryPrivacyCloseFriends", R.string.StoryPrivacyCloseFriends); + return getString(R.string.StoryPrivacyCloseFriends); } else if (type == TYPE_SELECTED_CONTACTS && rule1 instanceof TLRPC.TL_inputPrivacyValueAllowUsers) { final int usersCount = ((TLRPC.TL_inputPrivacyValueAllowUsers) rule1).users.size(); return LocaleController.formatPluralString("StoryPrivacyContacts", usersCount); @@ -3989,24 +3989,24 @@ public String toString() { if (usersCount > 0) { return LocaleController.formatPluralString("StoryPrivacyContactsExclude", usersCount); } else { - return getString("StoryPrivacyAllContacts", R.string.StoryPrivacyAllContacts); + return getString(R.string.StoryPrivacyAllContacts); } } else { - return getString("StoryPrivacyAllContacts", R.string.StoryPrivacyAllContacts); + return getString(R.string.StoryPrivacyAllContacts); } } else if (type == 0) { if (rule1 instanceof TLRPC.TL_inputPrivacyValueAllowUsers) { final int usersCount = ((TLRPC.TL_inputPrivacyValueAllowUsers) rule1).users.size(); if (usersCount <= 0) { - return getString("StoryPrivacyNone", R.string.StoryPrivacyNone); + return getString(R.string.StoryPrivacyNone); } else { return LocaleController.formatPluralString("StoryPrivacyContacts", usersCount); } } else { - return getString("StoryPrivacyNone", R.string.StoryPrivacyNone); + return getString(R.string.StoryPrivacyNone); } } - return getString("StoryPrivacyNone", R.string.StoryPrivacyNone); + return getString(R.string.StoryPrivacyNone); } public ArrayList toValue() { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryPrivacySelector.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryPrivacySelector.java index 50917154b3..ae8ba37b68 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryPrivacySelector.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryPrivacySelector.java @@ -242,7 +242,7 @@ public StoryPrivacyHint(Context context) { textPaint.setColor(0xffffffff); textPaint.setTextSize(dp(14)); - CharSequence text = LocaleController.getString("StoryPrivacyHint", R.string.StoryPrivacyHint); + CharSequence text = LocaleController.getString(R.string.StoryPrivacyHint); layout = new StaticLayout(text, textPaint, AndroidUtilities.displaySize.x, Layout.Alignment.ALIGN_NORMAL, 1f, 0f, false); layoutLeft = layout.getLineCount() > 0 ? layout.getLineLeft(0) : 0; layoutWidth = layout.getLineCount() > 0 ? layout.getLineWidth(0) : 0; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryRecorder.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryRecorder.java index 4e4ee4a63a..a6911d5061 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryRecorder.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryRecorder.java @@ -485,6 +485,7 @@ public void openBotEntry(long botId, String lang_code, StoryEntry entry, SourceV forceBackgroundVisible = false; if (windowManager != null && windowView != null && windowView.getParent() == null) { + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, windowView, windowLayoutParams); windowManager.addView(windowView, windowLayoutParams); } @@ -546,6 +547,7 @@ public void open(SourceView sourceView, boolean animated) { videoTextureHolder.active = false; if (windowManager != null && windowView != null && windowView.getParent() == null) { + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, windowView, windowLayoutParams); windowManager.addView(windowView, windowLayoutParams); } @@ -603,6 +605,7 @@ public void openEdit(SourceView sourceView, StoryEntry entry, long time, boolean forceBackgroundVisible = false; if (windowManager != null && windowView != null && windowView.getParent() == null) { + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, windowView, windowLayoutParams); windowManager.addView(windowView, windowLayoutParams); } @@ -662,6 +665,7 @@ public void openForward(SourceView sourceView, StoryEntry entry, long time, bool forceBackgroundVisible = false; if (windowManager != null && windowView != null && windowView.getParent() == null) { + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, windowView, windowLayoutParams); windowManager.addView(windowView, windowLayoutParams); } @@ -722,6 +726,7 @@ public void openRepost(SourceView sourceView, StoryEntry entry) { forceBackgroundVisible = false; if (windowManager != null && windowView != null && windowView.getParent() == null) { + AndroidUtilities.setPreferredMaxRefreshRate(windowManager, windowView, windowLayoutParams); windowManager.addView(windowView, windowLayoutParams); } @@ -2233,7 +2238,7 @@ public void onClick(@NonNull View widget) { }, startIndex, endIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } } - Bulletin bulletin = BulletinFactory.of(captionContainer, resourcesProvider).createSimpleBulletin(R.raw.caption_limit, getString("CaptionPremiumTitle"), text); + Bulletin bulletin = BulletinFactory.of(captionContainer, resourcesProvider).createSimpleBulletin(R.raw.caption_limit, getString(R.string.CaptionPremiumTitle), text); bulletin.tag = 2; bulletin.setDuration(5000); bulletin.show(false); @@ -2409,7 +2414,7 @@ protected void dispatchDraw(Canvas canvas) { captionContainer.addView(coverTimelineView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, TimelineView.heightDp(), Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0, 0, 6)); backButton = new FlashViews.ImageViewInvertable(context); - backButton.setContentDescription(getString("AccDescrGoBack", R.string.AccDescrGoBack)); + backButton.setContentDescription(getString(R.string.AccDescrGoBack)); backButton.setScaleType(ImageView.ScaleType.CENTER); backButton.setImageResource(R.drawable.msg_photo_back); backButton.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.MULTIPLY)); @@ -2655,6 +2660,7 @@ protected void dispatchDraw(Canvas canvas) { AndroidUtilities.runOnUIThread(() -> { if (!outputEntry.isEditingCover && privacySheet != null && previewView != null) { previewView.getCoverBitmap(bitmap -> { + if (outputEntry == null) return; AndroidUtilities.recycleBitmap(outputEntry.coverBitmap); outputEntry.coverBitmap = bitmap; if (privacySheet == null) return; @@ -2740,7 +2746,7 @@ private void processDone() { ((Spannable) text).getSpans(0, text.length(), TextStyleSpan.class).length > 0 || ((Spannable) text).getSpans(0, text.length(), URLSpan.class).length > 0 )) { - BulletinFactory.of(windowView, resourcesProvider).createSimpleBulletin(R.raw.voip_invite, premiumText(getString("StoryPremiumFormatting", R.string.StoryPremiumFormatting))).show(true); + BulletinFactory.of(windowView, resourcesProvider).createSimpleBulletin(R.raw.voip_invite, premiumText(getString(R.string.StoryPremiumFormatting))).show(true); AndroidUtilities.shakeViewSpring(captionEdit, shiftDp = -shiftDp); return; } @@ -2793,6 +2799,7 @@ private void processDone() { if (previewView != null && !outputEntry.coverSet && currentPage != PAGE_COVER) { outputEntry.cover = previewView.getCurrentPosition(); previewView.getCoverBitmap(bitmap -> { + if (outputEntry == null) return; if (outputEntry.coverBitmap != null) { outputEntry.coverBitmap.recycle(); } @@ -3088,16 +3095,16 @@ private void setCameraFlashModeIcon(String mode, boolean animated) { switch (mode) { case Camera.Parameters.FLASH_MODE_ON: resId = R.drawable.media_photo_flash_on2; - flashButton.setContentDescription(getString("AccDescrCameraFlashOn", R.string.AccDescrCameraFlashOn)); + flashButton.setContentDescription(getString(R.string.AccDescrCameraFlashOn)); break; case Camera.Parameters.FLASH_MODE_AUTO: resId = R.drawable.media_photo_flash_auto2; - flashButton.setContentDescription(getString("AccDescrCameraFlashAuto", R.string.AccDescrCameraFlashAuto)); + flashButton.setContentDescription(getString(R.string.AccDescrCameraFlashAuto)); break; default: case Camera.Parameters.FLASH_MODE_OFF: resId = R.drawable.media_photo_flash_off2; - flashButton.setContentDescription(getString("AccDescrCameraFlashOff", R.string.AccDescrCameraFlashOff)); + flashButton.setContentDescription(getString(R.string.AccDescrCameraFlashOff)); break; } flashButton.setIcon(flashButtonResId = resId, animated && flashButtonResId != resId); @@ -3311,7 +3318,7 @@ private void startRecording(boolean byLongPress, Runnable whenStarted) { }, () /* onVideoStart */ -> { whenStarted.run(); - hintTextView.setText(byLongPress ? getString("StoryHintSwipeToZoom", R.string.StoryHintSwipeToZoom) : getString("StoryHintPinchToZoom", R.string.StoryHintPinchToZoom), false); + hintTextView.setText(getString(byLongPress ? R.string.StoryHintSwipeToZoom : R.string.StoryHintPinchToZoom), false); animateRecording(true, true); setAwakeLock(true); @@ -3329,7 +3336,7 @@ private void startRecording(boolean byLongPress, Runnable whenStarted) { @Override public void onVideoRecordLocked() { - hintTextView.setText(getString("StoryHintPinchToZoom", R.string.StoryHintPinchToZoom), true); + hintTextView.setText(getString(R.string.StoryHintPinchToZoom), true); } @Override @@ -4188,7 +4195,7 @@ private void onNavigateStart(int fromPage, int toPage) { } previewAlreadySet = false; captionEdit.editText.getEditText().setOnPremiumMenuLockClickListener(MessagesController.getInstance(currentAccount).storyEntitiesAllowed() ? null : () -> { - BulletinFactory.of(windowView, resourcesProvider).createSimpleBulletin(R.raw.voip_invite, premiumText(getString("StoryPremiumFormatting", R.string.StoryPremiumFormatting))).show(true); + BulletinFactory.of(windowView, resourcesProvider).createSimpleBulletin(R.raw.voip_invite, premiumText(getString(R.string.StoryPremiumFormatting))).show(true); }); if (outputEntry != null && (outputEntry.isDraft || outputEntry.isEdit || isReposting)) { if (outputEntry.paintFile != null) { @@ -5725,10 +5732,10 @@ private void saveLastCameraBitmap(Runnable whenDone) { private void showDismissEntry() { AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), resourcesProvider); - builder.setTitle(getString("DiscardChanges", R.string.DiscardChanges)); - builder.setMessage(getString("PhotoEditorDiscardAlert", R.string.PhotoEditorDiscardAlert)); + builder.setTitle(getString(R.string.DiscardChanges)); + builder.setMessage(getString(R.string.PhotoEditorDiscardAlert)); if (outputEntry != null && !outputEntry.isEdit) { - builder.setNeutralButton(outputEntry.isDraft ? getString("StoryKeepDraft") : getString("StorySaveDraft"), (di, i) -> { + builder.setNeutralButton(getString(outputEntry.isDraft ? R.string.StoryKeepDraft : R.string.StorySaveDraft), (di, i) -> { if (outputEntry == null) { return; } @@ -5752,7 +5759,7 @@ private void showDismissEntry() { navigateTo(PAGE_CAMERA, true); }); } - builder.setPositiveButton(outputEntry != null && outputEntry.isDraft && !outputEntry.isEdit ? getString("StoryDeleteDraft") : getString("Discard", R.string.Discard), (dialogInterface, i) -> { + builder.setPositiveButton(outputEntry != null && outputEntry.isDraft && !outputEntry.isEdit ? getString(R.string.StoryDeleteDraft) : getString(R.string.Discard), (dialogInterface, i) -> { if (outputEntry != null && !(outputEntry.isEdit || outputEntry.isRepost && !outputEntry.isRepostMessage) && outputEntry.isDraft) { MessagesController.getInstance(currentAccount).getStoriesController().getDraftsController().delete(outputEntry); outputEntry = null; @@ -5763,7 +5770,7 @@ private void showDismissEntry() { navigateTo(PAGE_CAMERA, true); } }); - builder.setNegativeButton(getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); dialog.show(); View positiveButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE); @@ -5819,8 +5826,8 @@ private void requestCameraPermission(boolean force) { if (activity.shouldShowRequestPermissionRationale(Manifest.permission.CAMERA)) { new AlertDialog.Builder(getContext(), resourcesProvider) .setTopAnimation(R.raw.permission_request_camera, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)) - .setMessage(AndroidUtilities.replaceTags(getString("PermissionNoCameraWithHint", R.string.PermissionNoCameraWithHint))) - .setPositiveButton(getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialogInterface, i) -> { + .setMessage(AndroidUtilities.replaceTags(getString(R.string.PermissionNoCameraWithHint))) + .setPositiveButton(getString(R.string.PermissionOpenSettings), (dialogInterface, i) -> { try { Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); @@ -5829,7 +5836,7 @@ private void requestCameraPermission(boolean force) { FileLog.e(e); } }) - .setNegativeButton(getString("ContactsPermissionAlertNotNow", R.string.ContactsPermissionAlertNotNow), null) + .setNegativeButton(getString(R.string.ContactsPermissionAlertNotNow), null) .create() .show(); return; @@ -5958,7 +5965,7 @@ private void onRequestPermissionsResultInternal(int requestCode, String[] permis new AlertDialog.Builder(getContext(), resourcesProvider) .setTopAnimation(R.raw.permission_request_folder, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)) .setMessage(AndroidUtilities.replaceTags(getString(R.string.PermissionStorageWithHint))) - .setPositiveButton(getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialogInterface, i) -> { + .setPositiveButton(getString(R.string.PermissionOpenSettings), (dialogInterface, i) -> { try { Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); @@ -5967,7 +5974,7 @@ private void onRequestPermissionsResultInternal(int requestCode, String[] permis FileLog.e(e); } }) - .setNegativeButton(getString("ContactsPermissionAlertNotNow", R.string.ContactsPermissionAlertNotNow), null) + .setNegativeButton(getString(R.string.ContactsPermissionAlertNotNow), null) .create() .show(); } @@ -5975,8 +5982,8 @@ private void onRequestPermissionsResultInternal(int requestCode, String[] permis if (!granted) { new AlertDialog.Builder(getContext(), resourcesProvider) .setTopAnimation(R.raw.permission_request_camera, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)) - .setMessage(AndroidUtilities.replaceTags(getString("PermissionNoCameraMicVideo", R.string.PermissionNoCameraMicVideo))) - .setPositiveButton(getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialogInterface, i) -> { + .setMessage(AndroidUtilities.replaceTags(getString(R.string.PermissionNoCameraMicVideo))) + .setPositiveButton(getString(R.string.PermissionOpenSettings), (dialogInterface, i) -> { try { Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); @@ -5985,7 +5992,7 @@ private void onRequestPermissionsResultInternal(int requestCode, String[] permis FileLog.e(e); } }) - .setNegativeButton(getString("ContactsPermissionAlertNotNow", R.string.ContactsPermissionAlertNotNow), null) + .setNegativeButton(getString(R.string.ContactsPermissionAlertNotNow), null) .create() .show(); } @@ -5993,8 +6000,8 @@ private void onRequestPermissionsResultInternal(int requestCode, String[] permis if (!granted) { new AlertDialog.Builder(getContext(), resourcesProvider) .setTopAnimation(R.raw.permission_request_folder, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)) - .setMessage(AndroidUtilities.replaceTags(getString("PermissionNoAudioStorageStory", R.string.PermissionNoAudioStorageStory))) - .setPositiveButton(getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialogInterface, i) -> { + .setMessage(AndroidUtilities.replaceTags(getString(R.string.PermissionNoAudioStorageStory))) + .setPositiveButton(getString(R.string.PermissionOpenSettings), (dialogInterface, i) -> { try { Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); @@ -6003,7 +6010,7 @@ private void onRequestPermissionsResultInternal(int requestCode, String[] permis FileLog.e(e); } }) - .setNegativeButton(getString("ContactsPermissionAlertNotNow", R.string.ContactsPermissionAlertNotNow), null) + .setNegativeButton(getString(R.string.ContactsPermissionAlertNotNow), null) .create() .show(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryUploadingService.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryUploadingService.java index dd6a19674d..093fd2603f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryUploadingService.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/StoryUploadingService.java @@ -98,9 +98,9 @@ public int onStartCommand(Intent intent, int flags, int startId) { builder.setSmallIcon(android.R.drawable.stat_sys_upload); builder.setWhen(System.currentTimeMillis()); builder.setChannelId(NotificationsController.OTHER_NOTIFICATIONS_CHANNEL); - builder.setContentTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setTicker(LocaleController.getString("StoryUploading", R.string.StoryUploading)); - builder.setContentText(LocaleController.getString("StoryUploading", R.string.StoryUploading)); + builder.setContentTitle(LocaleController.getString(R.string.AppName)); + builder.setTicker(LocaleController.getString(R.string.StoryUploading)); + builder.setContentText(LocaleController.getString(R.string.StoryUploading)); } currentProgress = 0; builder.setProgress(100, Math.round(100 * currentProgress), false); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/TrashView.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/TrashView.java index 7662d173d0..6e310baa0a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/TrashView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/TrashView.java @@ -64,7 +64,7 @@ public TrashView(Context context) { textDrawable.setTextSize(dp(14)); textDrawable.setTextColor(0xffffffff); textDrawable.setShadowLayer(dpf2(1.33f), 0, dp(1), 0x40000000); - textDrawable.setText(LocaleController.getString("TrashHintDrag", R.string.TrashHintDrag)); + textDrawable.setText(LocaleController.getString(R.string.TrashHintDrag)); textDrawable.setGravity(Gravity.CENTER); } @@ -100,7 +100,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { public void onDragInfo(boolean dragged, boolean deleted) { bounce.setPressed(dragged); - textDrawable.setText(dragged || deleted ? LocaleController.getString("TrashHintRelease", R.string.TrashHintRelease) : LocaleController.getString("TrashHintDrag", R.string.TrashHintDrag)); + textDrawable.setText(dragged || deleted ? LocaleController.getString(R.string.TrashHintRelease) : LocaleController.getString(R.string.TrashHintDrag)); if (this.dragged = (dragged && !deleted)) { if (drawable.getCurrentFrame() > 34) { drawable.setCurrentFrame(0, false); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/Weather.java b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/Weather.java index c169b58b5b..1b92cbea34 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/Weather.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Stories/recorder/Weather.java @@ -31,6 +31,7 @@ import org.telegram.ui.ActionBar.AlertDialog; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Components.AlertsCreator; +import org.telegram.ui.Components.PermissionRequest; import org.telegram.ui.LaunchActivity; import org.telegram.ui.Stories.DarkThemeResourceProvider; @@ -472,85 +473,14 @@ public static Runnable fetch(double lat, double lng, Utilities.Callback w }; } - public static int LOCATION_REQUEST = 3332; - private static Utilities.Callback latestPermissionCallback; - - public static boolean hasLocationPermission() { - Activity _activity = LaunchActivity.instance; - if (_activity == null) _activity = AndroidUtilities.findActivity(ApplicationLoader.applicationContext); - if (_activity == null) return false; - final Activity activity = _activity; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (activity.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - return true; - } - return false; - } else { - return true; - } - } - - public static void ensureLocationPermission(Utilities.Callback ensured) { - if (ensured == null) return; - Activity _activity = LaunchActivity.instance; - if (_activity == null) _activity = AndroidUtilities.findActivity(ApplicationLoader.applicationContext); - if (_activity == null) return; - final Activity activity = _activity; - - latestPermissionCallback = ensured; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if ( - ApplicationLoader.applicationContext.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED || - ApplicationLoader.applicationContext.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED - ) { - ensured.run(true); - return; - } - if (activity.shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_COARSE_LOCATION) || activity.shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_FINE_LOCATION)) { - new AlertDialog.Builder(activity, null) - .setTopAnimation(R.raw.permission_request_location, AlertsCreator.PERMISSIONS_REQUEST_TOP_ICON_SIZE, false, Theme.getColor(Theme.key_dialogTopBackground)) - .setMessage(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PermissionNoLocationStory))) - .setPositiveButton(LocaleController.getString("PermissionOpenSettings", R.string.PermissionOpenSettings), (dialogInterface, i) -> { - try { - Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); - intent.setData(Uri.parse("package:" + ApplicationLoader.applicationContext.getPackageName())); - activity.startActivity(intent); - } catch (Exception e) { - FileLog.e(e); - } - }) - .setNegativeButton(LocaleController.getString("ContactsPermissionAlertNotNow", R.string.ContactsPermissionAlertNotNow), null) - .create() - .show(); - ensured.run(false); - return; - } - activity.requestPermissions(new String[]{ Manifest.permission.ACCESS_COARSE_LOCATION }, LOCATION_REQUEST); - } else { - ensured.run(true); - } - } - - public static void receivePermissionIntent(String[] permissions, int[] grantResults) { - boolean granted = false; - for (int i = 0; i < permissions.length; ++i) { - if (Manifest.permission.ACCESS_COARSE_LOCATION.equals(permissions[i]) || Manifest.permission.ACCESS_FINE_LOCATION.equals(permissions[i])) { - granted = grantResults[i] == PackageManager.PERMISSION_GRANTED; - break; - } - } - if (latestPermissionCallback != null) { - Utilities.Callback callback = latestPermissionCallback; - latestPermissionCallback = null; - callback.run(granted); - } - } - @SuppressLint("MissingPermission") public static void getUserLocation(boolean withProgress, Utilities.Callback whenGot) { if (whenGot == null) return; - ensureLocationPermission(granted -> { + PermissionRequest.ensureEitherPermission(R.raw.permission_request_location, R.string.PermissionNoLocationStory, + new String[] { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION }, + new String[] { Manifest.permission.ACCESS_COARSE_LOCATION }, granted -> { + if (!granted) { whenGot.run(null); return; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SuggestClearDatabaseBottomSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/SuggestClearDatabaseBottomSheet.java index f7cbfe01b3..968fdff772 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SuggestClearDatabaseBottomSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SuggestClearDatabaseBottomSheet.java @@ -53,7 +53,7 @@ private SuggestClearDatabaseBottomSheet(BaseFragment fragment) { title.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); title.setTypeface(AndroidUtilities.bold()); - title.setText(LocaleController.getString("SuggestClearDatabaseTitle", R.string.SuggestClearDatabaseTitle)); + title.setText(LocaleController.getString(R.string.SuggestClearDatabaseTitle)); linearLayout.addView(title, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 21, 30, 21, 0)); TextView description = new TextView(context); @@ -69,7 +69,7 @@ private SuggestClearDatabaseBottomSheet(BaseFragment fragment) { buttonTextView.setGravity(Gravity.CENTER); buttonTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); buttonTextView.setTypeface(AndroidUtilities.bold()); - buttonTextView.setText(LocaleController.getString("ClearLocalDatabase", R.string.ClearLocalDatabase)); + buttonTextView.setText(LocaleController.getString(R.string.ClearLocalDatabase)); buttonTextView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText)); buttonTextView.setBackgroundDrawable(Theme.createSimpleSelectorRoundRectDrawable(AndroidUtilities.dp(6), Theme.getColor(Theme.key_featuredStickers_addButton), ColorUtils.setAlphaComponent(Theme.getColor(Theme.key_windowBackgroundWhite), 120))); @@ -78,10 +78,10 @@ private SuggestClearDatabaseBottomSheet(BaseFragment fragment) { buttonTextView.setOnClickListener(view -> { AlertDialog.Builder builder = new AlertDialog.Builder(fragment.getParentActivity()); - builder.setTitle(LocaleController.getString("LocalDatabaseClearTextTitle", R.string.LocalDatabaseClearTextTitle)); - builder.setMessage(LocaleController.getString("LocalDatabaseClearText", R.string.LocalDatabaseClearText)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("CacheClear", R.string.CacheClear), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.LocalDatabaseClearTextTitle)); + builder.setMessage(LocaleController.getString(R.string.LocalDatabaseClearText)); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.CacheClear), (dialogInterface, i) -> { if (fragment.getParentActivity() == null) { return; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/TextMessageEnterTransition.java b/TMessagesProj/src/main/java/org/telegram/ui/TextMessageEnterTransition.java index 3b865ecdb2..33bbcf6837 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/TextMessageEnterTransition.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/TextMessageEnterTransition.java @@ -526,6 +526,7 @@ public void onDraw(Canvas canvas) { messageView.drawCommentButton(canvas, alphaProgress); messageView.drawCaptionLayout(canvas, false, alphaProgress); messageView.drawReactionsLayout(canvas, alphaProgress, null); + messageView.drawCommentLayout(canvas, alphaProgress); messageView.drawLinkPreview(canvas, alphaProgress); canvas.restore(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ThemeActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ThemeActivity.java index dc46df04fe..9e3568dc74 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ThemeActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ThemeActivity.java @@ -94,6 +94,7 @@ import org.telegram.ui.Components.AlertsCreator; import org.telegram.ui.Components.CubicBezierInterpolator; import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.Components.PermissionRequest; import org.telegram.ui.Components.RLottieDrawable; import org.telegram.ui.Components.RecyclerListView; import org.telegram.ui.Components.SeekBarView; @@ -106,6 +107,7 @@ import java.io.File; import java.io.FileOutputStream; +import java.security.Permission; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; @@ -1246,6 +1248,22 @@ public void onItemClick(int id) { cell.setBackground(Theme.createSelectorDrawable(Theme.getColor(Theme.key_listSelector), Theme.RIPPLE_MASK_ALL)); linearLayout.addView(cell); cell.setOnClickListener(v -> { + PermissionRequest.ensurePermission(R.raw.permission_request_microphone, R.string.PermissionNoBluetoothWithHint, Manifest.permission.BLUETOOTH_CONNECT, granted -> { + if (!granted) { + SharedConfig.recordViaSco = false; + SharedConfig.saveConfig(); + updateRecordViaSco = true; + dialogRef.get().dismiss(); + + if (listView != null && listView.isAttachedToWindow()) { + RecyclerView.ViewHolder holder = listView.findViewHolderForAdapterPosition(bluetoothScoRow); + if (holder != null) { + listAdapter.onBindViewHolder(holder, bluetoothScoRow); + } + } + } + }); + SharedConfig.recordViaSco = true; SharedConfig.saveConfig(); updateRecordViaSco = true; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ThemePreviewActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ThemePreviewActivity.java index c8551a2d5c..92c79275f2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ThemePreviewActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ThemePreviewActivity.java @@ -639,9 +639,9 @@ public View createView(Context context) { hintView.setShowingDuration(4000); frameLayout.addView(hintView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 4, 0, 4, 0)); if (onSwitchDayNightDelegate.isDark()) { - hintView.setText(LocaleController.getString("PreviewWallpaperDay", R.string.PreviewWallpaperDay)); + hintView.setText(LocaleController.getString(R.string.PreviewWallpaperDay)); } else { - hintView.setText(LocaleController.getString("PreviewWallpaperNight", R.string.PreviewWallpaperNight)); + hintView.setText(LocaleController.getString(R.string.PreviewWallpaperNight)); } hintView.setBackgroundColor(0xea272f38, 0xffffffff); hintView.showForView(dayNightItem, true); @@ -672,11 +672,11 @@ public void onTextChanged(EditText editText) { } }); - item.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); + item.setSearchFieldHint(LocaleController.getString(R.string.Search)); actionBar.setBackButtonDrawable(new MenuDrawable()); actionBar.setAddToContainer(false); - actionBar.setTitle(LocaleController.getString("ThemePreview", R.string.ThemePreview)); + actionBar.setTitle(LocaleController.getString(R.string.ThemePreview)); page1 = new FrameLayout(context) { @Override @@ -1088,9 +1088,9 @@ public boolean allowCaption() { } else { if (screenType == SCREEN_TYPE_CHANGE_BACKGROUND) { if (dialogId != 0) { - actionBar2.setTitle(LocaleController.getString("WallpaperPreview", R.string.WallpaperPreview)); + actionBar2.setTitle(LocaleController.getString(R.string.WallpaperPreview)); } else { - actionBar2.setTitle(LocaleController.getString("BackgroundPreview", R.string.BackgroundPreview)); + actionBar2.setTitle(LocaleController.getString(R.string.BackgroundPreview)); } ActionBarMenu menu2 = actionBar2.createMenu(); if (currentWallpaper instanceof WallpapersListActivity.FileWallpaper) { @@ -1124,7 +1124,7 @@ public boolean allowCaption() { } } else if (screenType == SCREEN_TYPE_ACCENT_COLOR) { ActionBarMenu menu2 = actionBar2.createMenu(); - saveItem = menu2.addItem(4, LocaleController.getString("Save", R.string.Save).toUpperCase()); + saveItem = menu2.addItem(4, LocaleController.getString(R.string.Save).toUpperCase()); dropDownContainer = new ActionBarMenuItem(context, menu2, 0, 0) { @Override @@ -1134,9 +1134,9 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { } }; dropDownContainer.setSubMenuOpenSide(1); - dropDownContainer.addSubItem(2, LocaleController.getString("ColorPickerBackground", R.string.ColorPickerBackground)); - dropDownContainer.addSubItem(1, LocaleController.getString("ColorPickerMainColor", R.string.ColorPickerMainColor)); - dropDownContainer.addSubItem(3, LocaleController.getString("ColorPickerMyMessages", R.string.ColorPickerMyMessages)); + dropDownContainer.addSubItem(2, LocaleController.getString(R.string.ColorPickerBackground)); + dropDownContainer.addSubItem(1, LocaleController.getString(R.string.ColorPickerMainColor)); + dropDownContainer.addSubItem(3, LocaleController.getString(R.string.ColorPickerMyMessages)); dropDownContainer.setAllowCloseAnimation(false); dropDownContainer.setForceSmoothKeyboard(true); actionBar2.addView(dropDownContainer, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT, AndroidUtilities.isTablet() ? 64 : 56, 0, 40, 0)); @@ -1151,7 +1151,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { dropDown.setEllipsize(TextUtils.TruncateAt.END); dropDown.setTextColor(getThemedColor(Theme.key_actionBarDefaultTitle)); dropDown.setTypeface(AndroidUtilities.bold()); - dropDown.setText(LocaleController.getString("ColorPickerMainColor", R.string.ColorPickerMainColor)); + dropDown.setText(LocaleController.getString(R.string.ColorPickerMainColor)); Drawable dropDownDrawable = context.getResources().getDrawable(R.drawable.ic_arrow_drop_down).mutate(); dropDownDrawable.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_actionBarDefaultTitle), PorterDuff.Mode.MULTIPLY)); dropDown.setCompoundDrawablesWithIntrinsicBounds(null, null, dropDownDrawable, null); @@ -1601,12 +1601,12 @@ public boolean dispatchTouchEvent(MotionEvent event) { if (textsCount != 0) { backgroundButtonsContainer = new FrameLayout(context); if (screenType == SCREEN_TYPE_ACCENT_COLOR || currentWallpaper instanceof WallpapersListActivity.ColorWallpaper) { - texts[0] = LocaleController.getString("BackgroundColors", R.string.BackgroundColors); - texts[1] = LocaleController.getString("BackgroundPattern", R.string.BackgroundPattern); - texts[2] = LocaleController.getString("BackgroundMotion", R.string.BackgroundMotion); + texts[0] = LocaleController.getString(R.string.BackgroundColors); + texts[1] = LocaleController.getString(R.string.BackgroundPattern); + texts[2] = LocaleController.getString(R.string.BackgroundMotion); } else { - texts[0] = LocaleController.getString("BackgroundBlurred", R.string.BackgroundBlurred); - texts[1] = LocaleController.getString("BackgroundMotion", R.string.BackgroundMotion); + texts[0] = LocaleController.getString(R.string.BackgroundBlurred); + texts[1] = LocaleController.getString(R.string.BackgroundMotion); } for (int a = 0; a < texts.length; a++) { textSizes[a] = (int) Math.ceil(textPaint.measureText(texts[a])); @@ -1769,8 +1769,8 @@ public void onClick(View v) { messagesButtonsContainer = new FrameLayout(context); - texts[0] = LocaleController.getString("BackgroundAnimate", R.string.BackgroundAnimate); - texts[1] = LocaleController.getString("BackgroundColors", R.string.BackgroundColors); + texts[0] = LocaleController.getString(R.string.BackgroundAnimate); + texts[1] = LocaleController.getString(R.string.BackgroundColors); for (int a = 0; a < texts.length; a++) { textSizes[a] = (int) Math.ceil(textPaint.measureText(texts[a])); @@ -1939,7 +1939,7 @@ public void onDraw(Canvas canvas) { patternsCancelButton[a].setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); patternsCancelButton[a].setTypeface(AndroidUtilities.bold()); patternsCancelButton[a].setTextColor(getThemedColor(Theme.key_chat_fieldOverlayText)); - patternsCancelButton[a].setText(LocaleController.getString("Cancel", R.string.Cancel).toUpperCase()); + patternsCancelButton[a].setText(LocaleController.getString(R.string.Cancel).toUpperCase()); patternsCancelButton[a].setGravity(Gravity.CENTER); patternsCancelButton[a].setPadding(dp(21), 0, dp(21), 0); patternsCancelButton[a].setBackgroundDrawable(Theme.createSelectorDrawable(getThemedColor(Theme.key_listSelector), 0)); @@ -1988,7 +1988,7 @@ public void onDraw(Canvas canvas) { patternsSaveButton[a].setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); patternsSaveButton[a].setTypeface(AndroidUtilities.bold()); patternsSaveButton[a].setTextColor(getThemedColor(Theme.key_chat_fieldOverlayText)); - patternsSaveButton[a].setText(LocaleController.getString("ApplyTheme", R.string.ApplyTheme).toUpperCase()); + patternsSaveButton[a].setText(LocaleController.getString(R.string.ApplyTheme).toUpperCase()); patternsSaveButton[a].setGravity(Gravity.CENTER); patternsSaveButton[a].setPadding(dp(21), 0, dp(21), 0); patternsSaveButton[a].setBackgroundDrawable(Theme.createSelectorDrawable(getThemedColor(Theme.key_listSelector), 0)); @@ -2009,7 +2009,7 @@ public void onDraw(Canvas canvas) { patternTitleView = new TextView(context); patternTitleView.setLines(1); patternTitleView.setSingleLine(true); - patternTitleView.setText(LocaleController.getString("BackgroundChoosePattern", R.string.BackgroundChoosePattern)); + patternTitleView.setText(LocaleController.getString(R.string.BackgroundChoosePattern)); patternTitleView.setTextColor(getThemedColor(Theme.key_windowBackgroundWhiteBlackText)); patternTitleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); @@ -2065,7 +2065,7 @@ public void getItemOffsets(Rect outRect, View view, RecyclerView parent, Recycle }); intensityCell = new HeaderCell(context); - intensityCell.setText(LocaleController.getString("BackgroundIntensity", R.string.BackgroundIntensity)); + intensityCell.setText(LocaleController.getString(R.string.BackgroundIntensity)); patternLayout[a].addView(intensityCell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 0, 175, 0, 0)); intensitySeekBar = new SeekBarView(context, getResourceProvider()) { @@ -2125,16 +2125,16 @@ public void deleteTheme() { return; } AlertDialog.Builder builder1 = new AlertDialog.Builder(getParentActivity()); - builder1.setTitle(LocaleController.getString("DeleteThemeTitle", R.string.DeleteThemeTitle)); - builder1.setMessage(LocaleController.getString("DeleteThemeAlert", R.string.DeleteThemeAlert)); - builder1.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialogInterface, i) -> { + builder1.setTitle(LocaleController.getString(R.string.DeleteThemeTitle)); + builder1.setMessage(LocaleController.getString(R.string.DeleteThemeAlert)); + builder1.setPositiveButton(LocaleController.getString(R.string.Delete), (dialogInterface, i) -> { Theme.deleteThemeAccent(applyingTheme, accent, true); Theme.applyPreviousTheme(); Theme.refreshThemeColors(); NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.needSetDayNightTheme, applyingTheme, nightTheme, null, -1); finishFragment(); }); - builder1.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder1.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder1.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -2327,7 +2327,7 @@ protected void onDraw(Canvas canvas) { cancelButton.setGravity(Gravity.CENTER); cancelButton.setBackgroundDrawable(Theme.createSelectorDrawable(0x0f000000, 0)); cancelButton.setPadding(dp(29), 0, dp(29), 0); - cancelButton.setText(LocaleController.getString("Cancel", R.string.Cancel).toUpperCase()); + cancelButton.setText(LocaleController.getString(R.string.Cancel).toUpperCase()); cancelButton.setTypeface(AndroidUtilities.bold()); saveButtonsContainer.addView(cancelButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT)); cancelButton.setOnClickListener(v -> cancelThemeApply(false)); @@ -2338,7 +2338,7 @@ protected void onDraw(Canvas canvas) { doneButton.setGravity(Gravity.CENTER); doneButton.setBackgroundDrawable(Theme.createSelectorDrawable(0x0f000000, 0)); doneButton.setPadding(dp(29), 0, dp(29), 0); - doneButton.setText(LocaleController.getString("ApplyTheme", R.string.ApplyTheme).toUpperCase()); + doneButton.setText(LocaleController.getString(R.string.ApplyTheme).toUpperCase()); doneButton.setTypeface(AndroidUtilities.bold()); saveButtonsContainer.addView(doneButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.RIGHT)); doneButton.setOnClickListener(v -> { @@ -2835,10 +2835,10 @@ private void selectColorType(int id, boolean ask) { } if (ask && id == 2 && (Theme.hasCustomWallpaper() || accent.backgroundOverrideColor == 0x100000000L)) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("ChangeChatBackground", R.string.ChangeChatBackground)); + builder.setTitle(LocaleController.getString(R.string.ChangeChatBackground)); if (!Theme.hasCustomWallpaper() || Theme.isCustomWallpaperColor()) { - builder.setMessage(LocaleController.getString("ChangeColorToColor", R.string.ChangeColorToColor)); - builder.setPositiveButton(LocaleController.getString("Reset", R.string.Reset), (dialog, which) -> { + builder.setMessage(LocaleController.getString(R.string.ChangeColorToColor)); + builder.setPositiveButton(LocaleController.getString(R.string.Reset), (dialog, which) -> { if (accent.backgroundOverrideColor == 0x100000000L) { accent.backgroundOverrideColor = 0; accent.backgroundGradientOverrideColor1 = 0; @@ -2851,7 +2851,7 @@ private void selectColorType(int id, boolean ask) { Theme.resetCustomWallpaper(true); selectColorType(2, false); }); - builder.setNegativeButton(LocaleController.getString("Continue", R.string.Continue), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Continue), (dialog, which) -> { if (Theme.isCustomWallpaperColor()) { accent.backgroundOverrideColor = accent.overrideWallpaper.color; accent.backgroundGradientOverrideColor1 = accent.overrideWallpaper.gradientColor1; @@ -2900,8 +2900,8 @@ private void selectColorType(int id, boolean ask) { selectColorType(2, false); }); } else { - builder.setMessage(LocaleController.getString("ChangeWallpaperToColor", R.string.ChangeWallpaperToColor)); - builder.setPositiveButton(LocaleController.getString("Change", R.string.Change), (dialog, which) -> { + builder.setMessage(LocaleController.getString(R.string.ChangeWallpaperToColor)); + builder.setPositiveButton(LocaleController.getString(R.string.Change), (dialog, which) -> { if (accent.backgroundOverrideColor == 0x100000000L) { accent.backgroundOverrideColor = 0; accent.backgroundGradientOverrideColor1 = 0; @@ -2914,7 +2914,7 @@ private void selectColorType(int id, boolean ask) { Theme.resetCustomWallpaper(true); selectColorType(2, false); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); } showDialog(builder.create()); return; @@ -2923,7 +2923,7 @@ private void selectColorType(int id, boolean ask) { colorType = id; switch (id) { case 1: - dropDown.setText(LocaleController.getString("ColorPickerMainColor", R.string.ColorPickerMainColor)); + dropDown.setText(LocaleController.getString(R.string.ColorPickerMainColor)); int colorsCount = accent.accentColor2 != 0 ? 2 : 1; colorPicker.setType(1, hasChanges(1), 2, colorsCount, false, 0, false); colorPicker.setColor(accent.accentColor, 0); @@ -2935,7 +2935,7 @@ private void selectColorType(int id, boolean ask) { } break; case 2: { - dropDown.setText(LocaleController.getString("ColorPickerBackground", R.string.ColorPickerBackground)); + dropDown.setText(LocaleController.getString(R.string.ColorPickerBackground)); int defaultBackground = getThemedColor(Theme.key_chat_wallpaper); int defaultGradient1 = Theme.hasThemeKey(Theme.key_chat_wallpaper_gradient_to1) ? getThemedColor(Theme.key_chat_wallpaper_gradient_to1) : 0; @@ -2981,7 +2981,7 @@ private void selectColorType(int id, boolean ask) { break; } case 3: { - dropDown.setText(LocaleController.getString("ColorPickerMyMessages", R.string.ColorPickerMyMessages)); + dropDown.setText(LocaleController.getString(R.string.ColorPickerMyMessages)); int count; if (accent.myMessagesGradientAccentColor1 != 0) { if (accent.myMessagesGradientAccentColor3 != 0) { @@ -3252,10 +3252,10 @@ private boolean checkDiscard() { selectedPattern != null && accent.patternIntensity != currentIntensity )) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("SaveChangesAlertTitle", R.string.SaveChangesAlertTitle)); - builder.setMessage(LocaleController.getString("SaveChangesAlertText", R.string.SaveChangesAlertText)); - builder.setPositiveButton(LocaleController.getString("Save", R.string.Save), (dialogInterface, i) -> actionBar2.getActionBarMenuOnItemClick().onItemClick(4)); - builder.setNegativeButton(LocaleController.getString("PassportDiscard", R.string.PassportDiscard), (dialog, which) -> cancelThemeApply(false)); + builder.setTitle(LocaleController.getString(R.string.SaveChangesAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.SaveChangesAlertText)); + builder.setPositiveButton(LocaleController.getString(R.string.Save), (dialogInterface, i) -> actionBar2.getActionBarMenuOnItemClick().onItemClick(4)); + builder.setNegativeButton(LocaleController.getString(R.string.PassportDiscard), (dialog, which) -> cancelThemeApply(false)); showDialog(builder.create()); return false; } @@ -3948,7 +3948,7 @@ private void updateButtonState(boolean ifSame, boolean animated) { } else { DownloadController.getInstance(currentAccount).addLoadingFileObserver(fileName, null, this); if (screenType == SCREEN_TYPE_CHANGE_BACKGROUND && dialogId == 0) { - actionBar2.setSubtitle(LocaleController.getString("LoadingFullImage", R.string.LoadingFullImage)); + actionBar2.setSubtitle(LocaleController.getString(R.string.LoadingFullImage)); } backgroundImage.invalidate(); } @@ -4007,7 +4007,7 @@ private void showAnimationHint() { animationHint.setShowingDuration(5000); animationHint.setAlpha(0); animationHint.setVisibility(View.INVISIBLE); - animationHint.setText(LocaleController.getString("BackgroundAnimateInfo", R.string.BackgroundAnimateInfo)); + animationHint.setText(LocaleController.getString(R.string.BackgroundAnimateInfo)); animationHint.setExtraTranslationY(dp(6)); frameLayout.addView(animationHint, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 10, 0, 10, 0)); } @@ -4714,8 +4714,8 @@ public DialogsAdapter(Context context) { int date = (int) (System.currentTimeMillis() / 1000); DialogCell.CustomDialog customDialog = new DialogCell.CustomDialog(); - customDialog.name = LocaleController.getString("ThemePreviewDialog1", R.string.ThemePreviewDialog1); - customDialog.message = LocaleController.getString("ThemePreviewDialogMessage1", R.string.ThemePreviewDialogMessage1); + customDialog.name = LocaleController.getString(R.string.ThemePreviewDialog1); + customDialog.message = LocaleController.getString(R.string.ThemePreviewDialogMessage1); customDialog.id = 0; customDialog.unread_count = 0; customDialog.pinned = true; @@ -4728,8 +4728,8 @@ public DialogsAdapter(Context context) { dialogs.add(customDialog); customDialog = new DialogCell.CustomDialog(); - customDialog.name = LocaleController.getString("ThemePreviewDialog2", R.string.ThemePreviewDialog2); - customDialog.message = LocaleController.getString("ThemePreviewDialogMessage2", R.string.ThemePreviewDialogMessage2); + customDialog.name = LocaleController.getString(R.string.ThemePreviewDialog2); + customDialog.message = LocaleController.getString(R.string.ThemePreviewDialogMessage2); customDialog.id = 1; customDialog.unread_count = 2; customDialog.pinned = false; @@ -4742,8 +4742,8 @@ public DialogsAdapter(Context context) { dialogs.add(customDialog); customDialog = new DialogCell.CustomDialog(); - customDialog.name = LocaleController.getString("ThemePreviewDialog3", R.string.ThemePreviewDialog3); - customDialog.message = LocaleController.getString("ThemePreviewDialogMessage3", R.string.ThemePreviewDialogMessage3); + customDialog.name = LocaleController.getString(R.string.ThemePreviewDialog3); + customDialog.message = LocaleController.getString(R.string.ThemePreviewDialogMessage3); customDialog.id = 2; customDialog.unread_count = 3; customDialog.pinned = false; @@ -4756,8 +4756,8 @@ public DialogsAdapter(Context context) { dialogs.add(customDialog); customDialog = new DialogCell.CustomDialog(); - customDialog.name = LocaleController.getString("ThemePreviewDialog4", R.string.ThemePreviewDialog4); - customDialog.message = LocaleController.getString("ThemePreviewDialogMessage4", R.string.ThemePreviewDialogMessage4); + customDialog.name = LocaleController.getString(R.string.ThemePreviewDialog4); + customDialog.message = LocaleController.getString(R.string.ThemePreviewDialogMessage4); customDialog.id = 3; customDialog.unread_count = 0; customDialog.pinned = false; @@ -4770,8 +4770,8 @@ public DialogsAdapter(Context context) { dialogs.add(customDialog); customDialog = new DialogCell.CustomDialog(); - customDialog.name = LocaleController.getString("ThemePreviewDialog5", R.string.ThemePreviewDialog5); - customDialog.message = LocaleController.getString("ThemePreviewDialogMessage5", R.string.ThemePreviewDialogMessage5); + customDialog.name = LocaleController.getString(R.string.ThemePreviewDialog5); + customDialog.message = LocaleController.getString(R.string.ThemePreviewDialogMessage5); customDialog.id = 4; customDialog.unread_count = 0; customDialog.pinned = false; @@ -4784,8 +4784,8 @@ public DialogsAdapter(Context context) { dialogs.add(customDialog); customDialog = new DialogCell.CustomDialog(); - customDialog.name = LocaleController.getString("ThemePreviewDialog6", R.string.ThemePreviewDialog6); - customDialog.message = LocaleController.getString("ThemePreviewDialogMessage6", R.string.ThemePreviewDialogMessage6); + customDialog.name = LocaleController.getString(R.string.ThemePreviewDialog6); + customDialog.message = LocaleController.getString(R.string.ThemePreviewDialogMessage6); customDialog.id = 5; customDialog.unread_count = 0; customDialog.pinned = false; @@ -4798,8 +4798,8 @@ public DialogsAdapter(Context context) { dialogs.add(customDialog); customDialog = new DialogCell.CustomDialog(); - customDialog.name = LocaleController.getString("ThemePreviewDialog7", R.string.ThemePreviewDialog7); - customDialog.message = LocaleController.getString("ThemePreviewDialogMessage7", R.string.ThemePreviewDialogMessage7); + customDialog.name = LocaleController.getString(R.string.ThemePreviewDialog7); + customDialog.message = LocaleController.getString(R.string.ThemePreviewDialogMessage7); customDialog.id = 6; customDialog.unread_count = 0; customDialog.pinned = false; @@ -4812,8 +4812,8 @@ public DialogsAdapter(Context context) { dialogs.add(customDialog); customDialog = new DialogCell.CustomDialog(); - customDialog.name = LocaleController.getString("ThemePreviewDialog8", R.string.ThemePreviewDialog8); - customDialog.message = LocaleController.getString("ThemePreviewDialogMessage8", R.string.ThemePreviewDialogMessage8); + customDialog.name = LocaleController.getString(R.string.ThemePreviewDialog8); + customDialog.message = LocaleController.getString(R.string.ThemePreviewDialogMessage8); customDialog.id = 0; customDialog.unread_count = 0; customDialog.pinned = false; @@ -5001,7 +5001,7 @@ public boolean needDrawAvatar() { message.media.document.size = (int) (1024 * 1024 * 2.5f); message.media.document.dc_id = Integer.MIN_VALUE; TLRPC.TL_documentAttributeFilename attributeFilename = new TLRPC.TL_documentAttributeFilename(); - attributeFilename.file_name = LocaleController.getString("NewThemePreviewReply2", R.string.NewThemePreviewReply2) + ".mp3"; + attributeFilename.file_name = LocaleController.getString(R.string.NewThemePreviewReply2) + ".mp3"; message.media.document.attributes.add(attributeFilename); message.date = date + 60; message.dialog_id = 1; @@ -5034,7 +5034,7 @@ public boolean needDrawAvatar() { } message = new TLRPC.TL_message(); - String text = LocaleController.getString("NewThemePreviewLine3", R.string.NewThemePreviewLine3); + String text = LocaleController.getString(R.string.NewThemePreviewLine3); StringBuilder builder = new StringBuilder(text); int index1 = text.indexOf('*'); int index2 = text.lastIndexOf('*'); @@ -5066,7 +5066,7 @@ public boolean needDrawAvatar() { messages.add(message1); message = new TLRPC.TL_message(); - message.message = LocaleController.getString("NewThemePreviewLine1", R.string.NewThemePreviewLine1); + message.message = LocaleController.getString(R.string.NewThemePreviewLine1); message.date = date + 60; message.dialog_id = 1; message.flags = 257 + 8; @@ -5080,7 +5080,7 @@ public boolean needDrawAvatar() { message.peer_id = new TLRPC.TL_peerUser(); message.peer_id.user_id = UserConfig.getInstance(UserConfig.selectedAccount).getClientUserId(); MessageObject message2 = new MessageObject(UserConfig.selectedAccount, message, true, false); - message2.customReplyName = LocaleController.getString("NewThemePreviewName", R.string.NewThemePreviewName); + message2.customReplyName = LocaleController.getString(R.string.NewThemePreviewName); message1.customReplyName = "Test User"; message2.eventId = 1; message2.resetLayout(); @@ -5178,7 +5178,7 @@ public boolean needDrawAvatar() { messages.add(new MessageObject(currentAccount, message, true, false)); } else { message = new TLRPC.TL_message(); - message.message = LocaleController.getString("ThemePreviewLine1", R.string.ThemePreviewLine1); + message.message = LocaleController.getString(R.string.ThemePreviewLine1); message.date = date + 60; message.dialog_id = 1; message.flags = 259; @@ -5192,7 +5192,7 @@ public boolean needDrawAvatar() { MessageObject replyMessageObject = new MessageObject(currentAccount, message, true, false); message = new TLRPC.TL_message(); - message.message = LocaleController.getString("ThemePreviewLine2", R.string.ThemePreviewLine2); + message.message = LocaleController.getString(R.string.ThemePreviewLine2); message.date = date + 960; message.dialog_id = 1; message.flags = 259; @@ -5218,8 +5218,8 @@ public boolean needDrawAvatar() { message.media.document.file_reference = new byte[0]; TLRPC.TL_documentAttributeAudio audio = new TLRPC.TL_documentAttributeAudio(); audio.duration = 243; - audio.performer = LocaleController.getString("ThemePreviewSongPerformer", R.string.ThemePreviewSongPerformer); - audio.title = LocaleController.getString("ThemePreviewSongTitle", R.string.ThemePreviewSongTitle); + audio.performer = LocaleController.getString(R.string.ThemePreviewSongPerformer); + audio.title = LocaleController.getString(R.string.ThemePreviewSongTitle); message.media.document.attributes.add(audio); message.out = false; message.peer_id = new TLRPC.TL_peerUser(); @@ -5227,7 +5227,7 @@ public boolean needDrawAvatar() { messages.add(new MessageObject(currentAccount, message, true, false)); message = new TLRPC.TL_message(); - message.message = LocaleController.getString("ThemePreviewLine3", R.string.ThemePreviewLine3); + message.message = LocaleController.getString(R.string.ThemePreviewLine3); message.date = date + 60; message.dialog_id = 1; message.flags = 257 + 8; @@ -5241,7 +5241,7 @@ public boolean needDrawAvatar() { message.peer_id = new TLRPC.TL_peerUser(); message.peer_id.user_id = UserConfig.getInstance(currentAccount).getClientUserId(); messageObject = new MessageObject(currentAccount, message, true, false); - messageObject.customReplyName = LocaleController.getString("ThemePreviewLine3Reply", R.string.ThemePreviewLine3Reply); + messageObject.customReplyName = LocaleController.getString(R.string.ThemePreviewLine3Reply); messageObject.replyMessageObject = replyMessageObject; messages.add(messageObject); @@ -5297,7 +5297,7 @@ public boolean needDrawAvatar() { photoSize.type = "s"; photoSize.location = new TLRPC.TL_fileLocationUnavailable(); message.media.photo.sizes.add(photoSize); - message.message = LocaleController.getString("ThemePreviewLine4", R.string.ThemePreviewLine4); + message.message = LocaleController.getString(R.string.ThemePreviewLine4); message.out = false; message.peer_id = new TLRPC.TL_peerUser(); message.peer_id.user_id = UserConfig.getInstance(currentAccount).getClientUserId(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ThemeSetUrlActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ThemeSetUrlActivity.java index 60a511e127..a29b31c940 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ThemeSetUrlActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ThemeSetUrlActivity.java @@ -167,9 +167,9 @@ public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); if (creatingNewTheme) { - actionBar.setTitle(LocaleController.getString("NewThemeTitle", R.string.NewThemeTitle)); + actionBar.setTitle(LocaleController.getString(R.string.NewThemeTitle)); } else { - actionBar.setTitle(LocaleController.getString("EditThemeTitle", R.string.EditThemeTitle)); + actionBar.setTitle(LocaleController.getString(R.string.EditThemeTitle)); } actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override @@ -183,7 +183,7 @@ public void onItemClick(int id) { }); ActionBarMenu menu = actionBar.createMenu(); - doneButton = menu.addItem(done_button, LocaleController.getString("Done", R.string.Done).toUpperCase()); + doneButton = menu.addItem(done_button, LocaleController.getString(R.string.Done).toUpperCase()); fragmentView = new LinearLayout(context); fragmentView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundGray)); @@ -197,7 +197,7 @@ public void onItemClick(int id) { linearLayout.addView(linearLayoutTypeContainer, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); headerCell = new HeaderCell(context, 23); - headerCell.setText(LocaleController.getString("Info", R.string.Info)); + headerCell.setText(LocaleController.getString(R.string.Info)); linearLayoutTypeContainer.addView(headerCell); nameField = new EditTextBoldCursor(context); @@ -215,7 +215,7 @@ public void onItemClick(int id) { nameField.setFilters(inputFilters); nameField.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); nameField.setImeOptions(EditorInfo.IME_ACTION_DONE); - nameField.setHint(LocaleController.getString("ThemeNamePlaceholder", R.string.ThemeNamePlaceholder)); + nameField.setHint(LocaleController.getString(R.string.ThemeNamePlaceholder)); nameField.setCursorColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); nameField.setCursorSize(AndroidUtilities.dp(20)); nameField.setCursorWidth(1.5f); @@ -266,7 +266,7 @@ protected void onDraw(Canvas canvas) { linkField.setSingleLine(true); linkField.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); linkField.setImeOptions(EditorInfo.IME_ACTION_DONE); - linkField.setHint(LocaleController.getString("SetUrlPlaceholder", R.string.SetUrlPlaceholder)); + linkField.setHint(LocaleController.getString(R.string.SetUrlPlaceholder)); linkField.setCursorColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); linkField.setCursorSize(AndroidUtilities.dp(20)); linkField.setCursorWidth(1.5f); @@ -314,9 +314,9 @@ public void afterTextChanged(Editable editable) { if (creatingNewTheme) { linkField.setOnFocusChangeListener((v, hasFocus) -> { if (hasFocus) { - helpInfoCell.setText(AndroidUtilities.replaceTags(LocaleController.getString("ThemeCreateHelp2", R.string.ThemeCreateHelp2))); + helpInfoCell.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.ThemeCreateHelp2))); } else { - helpInfoCell.setText(AndroidUtilities.replaceTags(LocaleController.getString("ThemeCreateHelp", R.string.ThemeCreateHelp))); + helpInfoCell.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.ThemeCreateHelp))); } }); } @@ -331,9 +331,9 @@ public void afterTextChanged(Editable editable) { helpInfoCell.getTextView().setMovementMethod(new LinkMovementMethodMy()); helpInfoCell.getTextView().setHighlightColor(Theme.getColor(Theme.key_windowBackgroundWhiteLinkSelection)); if (creatingNewTheme) { - helpInfoCell.setText(AndroidUtilities.replaceTags(LocaleController.getString("ThemeCreateHelp", R.string.ThemeCreateHelp))); + helpInfoCell.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.ThemeCreateHelp))); } else { - helpInfoCell.setText(infoText = AndroidUtilities.replaceTags(LocaleController.getString("ThemeSetUrlHelp", R.string.ThemeSetUrlHelp))); + helpInfoCell.setText(infoText = AndroidUtilities.replaceTags(LocaleController.getString(R.string.ThemeSetUrlHelp))); } linearLayout.addView(helpInfoCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); @@ -344,7 +344,7 @@ public void afterTextChanged(Editable editable) { createCell = new TextSettingsCell(context); createCell.setBackgroundDrawable(Theme.getSelectorDrawable(true)); - createCell.setText(LocaleController.getString("UseDifferentTheme", R.string.UseDifferentTheme), false); + createCell.setText(LocaleController.getString(R.string.UseDifferentTheme), false); linearLayout.addView(createCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); createCell.setOnClickListener(v -> { if (getParentActivity() == null) { @@ -357,7 +357,7 @@ public void afterTextChanged(Editable editable) { container.setOrientation(LinearLayout.VERTICAL); TextView titleView = new TextView(context); - titleView.setText(LocaleController.getString("ChooseTheme", R.string.ChooseTheme)); + titleView.setText(LocaleController.getString(R.string.ChooseTheme)); titleView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); titleView.setTypeface(AndroidUtilities.bold()); @@ -385,7 +385,7 @@ protected void updateRows() { }); createInfoCell = new TextInfoPrivacyCell(context); - createInfoCell.setText(AndroidUtilities.replaceTags(LocaleController.getString("UseDifferentThemeInfo", R.string.UseDifferentThemeInfo))); + createInfoCell.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.UseDifferentThemeInfo))); createInfoCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(context, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); linearLayout.addView(createInfoCell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); } else { @@ -458,24 +458,24 @@ private boolean checkUrl(final String url, boolean alert) { lastNameAvailable = false; if (url != null) { if (url.startsWith("_") || url.endsWith("_")) { - setCheckText(LocaleController.getString("SetUrlInvalid", R.string.SetUrlInvalid), Theme.key_text_RedRegular); + setCheckText(LocaleController.getString(R.string.SetUrlInvalid), Theme.key_text_RedRegular); return false; } for (int a = 0; a < url.length(); a++) { char ch = url.charAt(a); if (a == 0 && ch >= '0' && ch <= '9') { if (alert) { - AlertsCreator.showSimpleAlert(this, LocaleController.getString("Theme", R.string.Theme), LocaleController.getString("SetUrlInvalidStartNumber", R.string.SetUrlInvalidStartNumber)); + AlertsCreator.showSimpleAlert(this, LocaleController.getString(R.string.Theme), LocaleController.getString(R.string.SetUrlInvalidStartNumber)); } else { - setCheckText(LocaleController.getString("SetUrlInvalidStartNumber", R.string.SetUrlInvalidStartNumber), Theme.key_text_RedRegular); + setCheckText(LocaleController.getString(R.string.SetUrlInvalidStartNumber), Theme.key_text_RedRegular); } return false; } if (!(ch >= '0' && ch <= '9' || ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z' || ch == '_')) { if (alert) { - AlertsCreator.showSimpleAlert(this, LocaleController.getString("Theme", R.string.Theme), LocaleController.getString("SetUrlInvalid", R.string.SetUrlInvalid)); + AlertsCreator.showSimpleAlert(this, LocaleController.getString(R.string.Theme), LocaleController.getString(R.string.SetUrlInvalid)); } else { - setCheckText(LocaleController.getString("SetUrlInvalid", R.string.SetUrlInvalid), Theme.key_text_RedRegular); + setCheckText(LocaleController.getString(R.string.SetUrlInvalid), Theme.key_text_RedRegular); } return false; } @@ -483,17 +483,17 @@ private boolean checkUrl(final String url, boolean alert) { } if (url == null || url.length() < 5) { if (alert) { - AlertsCreator.showSimpleAlert(this, LocaleController.getString("Theme", R.string.Theme), LocaleController.getString("SetUrlInvalidShort", R.string.SetUrlInvalidShort)); + AlertsCreator.showSimpleAlert(this, LocaleController.getString(R.string.Theme), LocaleController.getString(R.string.SetUrlInvalidShort)); } else { - setCheckText(LocaleController.getString("SetUrlInvalidShort", R.string.SetUrlInvalidShort), Theme.key_text_RedRegular); + setCheckText(LocaleController.getString(R.string.SetUrlInvalidShort), Theme.key_text_RedRegular); } return false; } if (url.length() > 64) { if (alert) { - AlertsCreator.showSimpleAlert(this, LocaleController.getString("Theme", R.string.Theme), LocaleController.getString("SetUrlInvalidLong", R.string.SetUrlInvalidLong)); + AlertsCreator.showSimpleAlert(this, LocaleController.getString(R.string.Theme), LocaleController.getString(R.string.SetUrlInvalidLong)); } else { - setCheckText(LocaleController.getString("SetUrlInvalidLong", R.string.SetUrlInvalidLong), Theme.key_text_RedRegular); + setCheckText(LocaleController.getString(R.string.SetUrlInvalidLong), Theme.key_text_RedRegular); } return false; } @@ -505,7 +505,7 @@ private boolean checkUrl(final String url, boolean alert) { return true; } - setCheckText(LocaleController.getString("SetUrlChecking", R.string.SetUrlChecking), Theme.key_windowBackgroundWhiteGrayText8); + setCheckText(LocaleController.getString(R.string.SetUrlChecking), Theme.key_windowBackgroundWhiteGrayText8); lastCheckName = url; checkRunnable = () -> { TLRPC.TL_account_createTheme req = new TLRPC.TL_account_createTheme(); @@ -519,7 +519,7 @@ private boolean checkUrl(final String url, boolean alert) { setCheckText(LocaleController.formatString("SetUrlAvailable", R.string.SetUrlAvailable, url), Theme.key_windowBackgroundWhiteGreenText); lastNameAvailable = true; } else { - setCheckText(LocaleController.getString("SetUrlInUse", R.string.SetUrlInUse), Theme.key_text_RedRegular); + setCheckText(LocaleController.getString(R.string.SetUrlInUse), Theme.key_text_RedRegular); lastNameAvailable = false; } } @@ -559,7 +559,7 @@ private void saveTheme() { return; } if (nameField.length() == 0) { - AlertsCreator.showSimpleAlert(this, LocaleController.getString("Theme", R.string.Theme), LocaleController.getString("ThemeNameInvalid", R.string.ThemeNameInvalid)); + AlertsCreator.showSimpleAlert(this, LocaleController.getString(R.string.Theme), LocaleController.getString(R.string.ThemeNameInvalid)); return; } if (creatingNewTheme) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/TooManyCommunitiesActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/TooManyCommunitiesActivity.java index 7e06d11ddf..e23254f53e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/TooManyCommunitiesActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/TooManyCommunitiesActivity.java @@ -127,7 +127,7 @@ public View createView(Context context) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); - actionBar.setTitle(LocaleController.getString("LimitReached", R.string.LimitReached)); + actionBar.setTitle(LocaleController.getString(R.string.LimitReached)); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { @@ -188,8 +188,8 @@ public void onAnimationEnd(Animator animation) { } } }); - searchItem.setContentDescription(LocaleController.getString("Search", R.string.Search)); - searchItem.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); + searchItem.setContentDescription(LocaleController.getString(R.string.Search)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.Search)); FrameLayout contentView = new FrameLayout(context); fragmentView = contentView; @@ -215,7 +215,7 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) { }); emptyView = new EmptyTextProgressView(context); emptyView.setShowAtCenter(true); - emptyView.setText(LocaleController.getString("NoResult", R.string.NoResult)); + emptyView.setText(LocaleController.getString(R.string.NoResult)); emptyView.showTextView(); @@ -449,11 +449,11 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int view = hintCell; String message; if (type == TYPE_JOIN) { - message = LocaleController.getString("TooManyCommunitiesHintJoin", R.string.TooManyCommunitiesHintJoin); + message = LocaleController.getString(R.string.TooManyCommunitiesHintJoin); } else if (type == TYPE_EDIT) { - message = LocaleController.getString("TooManyCommunitiesHintEdit", R.string.TooManyCommunitiesHintEdit); + message = LocaleController.getString(R.string.TooManyCommunitiesHintEdit); } else { - message = LocaleController.getString("TooManyCommunitiesHintCreate", R.string.TooManyCommunitiesHintCreate); + message = LocaleController.getString(R.string.TooManyCommunitiesHintCreate); } hintCell.setMessageText(message); RecyclerView.LayoutParams lp = new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); @@ -473,7 +473,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int HeaderCell header = new HeaderCell(parent.getContext(), Theme.key_windowBackgroundWhiteBlueHeader, 21, 8, false); view = header; header.setHeight(54); - header.setText(LocaleController.getString("InactiveChats", R.string.InactiveChats)); + header.setText(LocaleController.getString(R.string.InactiveChats)); break; case 5: view = new EmptyCell(parent.getContext(), AndroidUtilities.dp(12)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/TopicCreateFragment.java b/TMessagesProj/src/main/java/org/telegram/ui/TopicCreateFragment.java index 5993bb753d..24d4106462 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/TopicCreateFragment.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/TopicCreateFragment.java @@ -109,9 +109,9 @@ public boolean onFragmentCreate() { @Override public View createView(Context context) { if (topicForEdit != null) { - actionBar.setTitle(LocaleController.getString("EditTopic", R.string.EditTopic)); + actionBar.setTitle(LocaleController.getString(R.string.EditTopic)); } else { - actionBar.setTitle(LocaleController.getString("NewTopic", R.string.NewTopic)); + actionBar.setTitle(LocaleController.getString(R.string.NewTopic)); } actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() { @@ -260,7 +260,7 @@ public void onItemClick(int id) { } }); if (topicForEdit == null) { - actionBar.createMenu().addItem(CREATE_ID, LocaleController.getString("Create", R.string.Create).toUpperCase()); + actionBar.createMenu().addItem(CREATE_ID, LocaleController.getString(R.string.Create).toUpperCase()); } else { actionBar.createMenu().addItem(EDIT_ID, R.drawable.ic_ab_done); } @@ -289,15 +289,15 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { HeaderCell headerCell = new HeaderCell(context); if (topicForEdit != null && topicForEdit.id == 1) { - headerCell.setText(LocaleController.getString("CreateGeneralTopicTitle", R.string.CreateGeneralTopicTitle)); + headerCell.setText(LocaleController.getString(R.string.CreateGeneralTopicTitle)); } else { - headerCell.setText(LocaleController.getString("CreateTopicTitle", R.string.CreateTopicTitle)); + headerCell.setText(LocaleController.getString(R.string.CreateTopicTitle)); } FrameLayout editTextContainer = new FrameLayout(context); editTextBoldCursor = new EditTextBoldCursor(context); - editTextBoldCursor.setHintText(LocaleController.getString("EnterTopicName", R.string.EnterTopicName)); + editTextBoldCursor.setHintText(LocaleController.getString(R.string.EnterTopicName)); editTextBoldCursor.setHintColor(getThemedColor(Theme.key_chat_messagePanelHint)); editTextBoldCursor.setTextColor(getThemedColor(Theme.key_chat_messagePanelText)); editTextBoldCursor.setPadding(AndroidUtilities.dp(0), editTextBoldCursor.getPaddingTop(), AndroidUtilities.dp(0), editTextBoldCursor.getPaddingBottom()); @@ -477,7 +477,7 @@ protected void onEmojiSelected(View view, Long documentId, TLRPC.Document docume checkBoxCell = new TextCheckCell2(context); checkBoxCell.getCheckBox().setDrawIconType(0); - checkBoxCell.setTextAndCheck(LocaleController.getString("EditTopicHide", R.string.EditTopicHide), !topicForEdit.hidden, false); + checkBoxCell.setTextAndCheck(LocaleController.getString(R.string.EditTopicHide), !topicForEdit.hidden, false); checkBoxCell.setBackground(Theme.createSelectorWithBackgroundDrawable(getThemedColor(Theme.key_windowBackgroundWhite), getThemedColor(Theme.key_listSelector))); checkBoxCell.setOnClickListener(e -> { checkBoxCell.setChecked(!checkBoxCell.isChecked()); @@ -485,7 +485,7 @@ protected void onEmojiSelected(View view, Long documentId, TLRPC.Document docume emojiContainer.addView(checkBoxCell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 50, Gravity.TOP, 0, 8, 0, 0)); TextInfoPrivacyCell infoCell = new TextInfoPrivacyCell(context); - infoCell.setText(LocaleController.getString("EditTopicHideInfo", R.string.EditTopicHideInfo)); + infoCell.setText(LocaleController.getString(R.string.EditTopicHideInfo)); infoCell.setBackground(Theme.getThemedDrawableByKey(getContext(), R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow, getResourceProvider())); emojiContainer.addView(infoCell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP, 0, 8 + 50, 0, 0)); } @@ -517,8 +517,8 @@ private void selectEmoji(Long documentId, boolean free) { BulletinFactory.of(this) .createEmojiBulletin( emoji, - AndroidUtilities.replaceTags(LocaleController.getString("UnlockPremiumEmojiHint", R.string.UnlockPremiumEmojiHint)), - LocaleController.getString("PremiumMore", R.string.PremiumMore), + AndroidUtilities.replaceTags(LocaleController.getString(R.string.UnlockPremiumEmojiHint)), + LocaleController.getString(R.string.PremiumMore), () -> { new PremiumFeatureBottomSheet(this, PremiumPreviewFragment.PREMIUM_FEATURE_ANIMATED_EMOJI, false).show(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/TopicsFragment.java b/TMessagesProj/src/main/java/org/telegram/ui/TopicsFragment.java index 1eee5fda12..e23c51ce06 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/TopicsFragment.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/TopicsFragment.java @@ -753,18 +753,18 @@ public void onSearchFilterCleared(FiltersView.MediaFilterData filterData) { } }); searchItem.setSearchPaddingStart(56); - searchItem.setSearchFieldHint(LocaleController.getString("Search", R.string.Search)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.Search)); EditTextBoldCursor editText = searchItem.getSearchField(); editText.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); editText.setHintTextColor(Theme.getColor(Theme.key_player_time)); editText.setCursorColor(Theme.getColor(Theme.key_chat_messagePanelCursor)); } other = menu.addItem(0, R.drawable.ic_ab_other, themeDelegate); - other.addSubItem(toggle_id, R.drawable.msg_discussion, LocaleController.getString("TopicViewAsMessages", R.string.TopicViewAsMessages)); - addMemberSubMenu = other.addSubItem(add_member_id, R.drawable.msg_addcontact, LocaleController.getString("AddMember", R.string.AddMember)); - boostGroupSubmenu = other.addSubItem(boost_group_id, 0, new RLottieDrawable(R.raw.boosts, "" + R.raw.boosts, AndroidUtilities.dp(24), AndroidUtilities.dp(24)), TextCell.applyNewSpan(LocaleController.getString(R.string.BoostingBoostGroupMenu)), true, false); - createTopicSubmenu = other.addSubItem(create_topic_id, R.drawable.msg_topic_create, LocaleController.getString("CreateTopic", R.string.CreateTopic)); - deleteChatSubmenu = other.addSubItem(delete_chat_id, R.drawable.msg_leave, LocaleController.getString("LeaveMegaMenu", R.string.LeaveMegaMenu), themeDelegate); + other.addSubItem(toggle_id, R.drawable.msg_discussion, LocaleController.getString(R.string.TopicViewAsMessages)); + addMemberSubMenu = other.addSubItem(add_member_id, R.drawable.msg_addcontact, LocaleController.getString(R.string.AddMember)); + boostGroupSubmenu = other.addSubItem(boost_group_id, 0, new RLottieDrawable(R.raw.boosts, "" + R.raw.boosts, AndroidUtilities.dp(24), AndroidUtilities.dp(24)), LocaleController.getString(R.string.BoostingBoostGroupMenu), true, false); + createTopicSubmenu = other.addSubItem(create_topic_id, R.drawable.msg_topic_create, LocaleController.getString(R.string.CreateTopic)); + deleteChatSubmenu = other.addSubItem(delete_chat_id, R.drawable.msg_leave, LocaleController.getString(R.string.LeaveMegaMenu), themeDelegate); avatarContainer = new ChatAvatarContainer(context, this, false); avatarContainer.getAvatarImageView().setRoundRadius(AndroidUtilities.dp(16)); @@ -802,8 +802,8 @@ public boolean emptyViewIsVisible() { generalIconDrawable.setBounds(0, AndroidUtilities.dp(2), AndroidUtilities.dp(16), AndroidUtilities.dp(18)); generalIcon.setSpan(new ImageSpan(generalIconDrawable, DynamicDrawableSpan.ALIGN_CENTER), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); pullForegroundDrawable = new PullForegroundDrawable( - AndroidUtilities.replaceCharSequence("#", LocaleController.getString("AccSwipeForGeneral", R.string.AccSwipeForGeneral), generalIcon), - AndroidUtilities.replaceCharSequence("#", LocaleController.getString("AccReleaseForGeneral", R.string.AccReleaseForGeneral), generalIcon) + AndroidUtilities.replaceCharSequence("#", LocaleController.getString(R.string.AccSwipeForGeneral), generalIcon), + AndroidUtilities.replaceCharSequence("#", LocaleController.getString(R.string.AccReleaseForGeneral), generalIcon) ) { @Override protected float getViewOffset() { @@ -1199,7 +1199,7 @@ public void getOutline(View view, Outline outline) { floatingButtonContainer.setBackground(drawable); floatingButton = new RLottieImageView(context); floatingButton.setImageResource(R.drawable.ic_chatlist_add_2); - floatingButtonContainer.setContentDescription(LocaleController.getString("CreateTopic", R.string.CreateTopic)); + floatingButtonContainer.setContentDescription(LocaleController.getString(R.string.CreateTopic)); floatingButtonContainer.addView(floatingButton, LayoutHelper.createFrame(24, 24, Gravity.CENTER)); @@ -1232,7 +1232,7 @@ public void showProgress(boolean show, boolean animated) { } catch (Exception ignore) { } topicsEmptyView.showProgress(loadingTopics, fragmentBeginToShow); - topicsEmptyView.title.setText(LocaleController.getString("NoTopics", R.string.NoTopics)); + topicsEmptyView.title.setText(LocaleController.getString(R.string.NoTopics)); updateTopicsEmptyViewText(); emptyViewContainer.addView(flickerLoadingView); @@ -1277,7 +1277,7 @@ public void onClick(View v) { closeReportSpam = new ImageView(context); closeReportSpam.setImageResource(R.drawable.miniplayer_close); - closeReportSpam.setContentDescription(LocaleController.getString("Close", R.string.Close)); + closeReportSpam.setContentDescription(LocaleController.getString(R.string.Close)); if (Build.VERSION.SDK_INT >= 21) { closeReportSpam.setBackground(Theme.AdaptiveRipple.circle(getThemedColor(Theme.key_chat_topPanelClose))); } @@ -1410,10 +1410,10 @@ private void updateTopicsEmptyViewText() { spannableStringBuilder.setSpan(coloredImageSpan, 0, 1, 0); if (ChatObject.canUserDoAdminAction(getCurrentChat(), ChatObject.ACTION_MANAGE_TOPICS)) { topicsEmptyView.subtitle.setText( - AndroidUtilities.replaceCharSequence("%s", AndroidUtilities.replaceTags(LocaleController.getString("NoTopicsDescription", R.string.NoTopicsDescription)), spannableStringBuilder) + AndroidUtilities.replaceCharSequence("%s", AndroidUtilities.replaceTags(LocaleController.getString(R.string.NoTopicsDescription)), spannableStringBuilder) ); } else { - String general = LocaleController.getString("General", R.string.General); + String general = LocaleController.getString(R.string.General); TLRPC.TL_forumTopic topic = getMessagesController().getTopicsController().findTopic(chatId, 1); if (topic != null) { general = topic.title; @@ -1821,9 +1821,9 @@ private void deleteTopics(HashSet selectedTopics, Runnable runnable) { TLRPC.TL_forumTopic topic = topicsController.findTopic(chatId, topicsToRemove.get(0)); builder.setMessage(LocaleController.formatString("DeleteSelectedTopic", R.string.DeleteSelectedTopic, topic.title)); } else { - builder.setMessage(LocaleController.getString("DeleteSelectedTopics", R.string.DeleteSelectedTopics)); + builder.setMessage(LocaleController.getString(R.string.DeleteSelectedTopics)); } - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), new DialogInterface.OnClickListener() { + builder.setPositiveButton(LocaleController.getString(R.string.Delete), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { excludeTopics = new HashSet<>(); @@ -1840,7 +1840,7 @@ public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), new DialogInterface.OnClickListener() { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); @@ -1928,9 +1928,9 @@ public void toggleMute() { if (ChatObject.canManageTopics(getCurrentChat())) { ActionBarMenuSubItem pinItem = new ActionBarMenuSubItem(getParentActivity(), true, false); if (topic.pinned) { - pinItem.setTextAndIcon(LocaleController.getString("DialogUnpin", R.string.DialogUnpin), R.drawable.msg_unpin); + pinItem.setTextAndIcon(LocaleController.getString(R.string.DialogUnpin), R.drawable.msg_unpin); } else { - pinItem.setTextAndIcon(LocaleController.getString("DialogPin", R.string.DialogPin), R.drawable.msg_pin); + pinItem.setTextAndIcon(LocaleController.getString(R.string.DialogPin), R.drawable.msg_pin); } pinItem.setMinimumWidth(160); pinItem.setOnClickListener(e -> { @@ -1945,9 +1945,9 @@ public void toggleMute() { ActionBarMenuSubItem muteItem = new ActionBarMenuSubItem(getParentActivity(), false, false); if (getMessagesController().isDialogMuted(-chatId, topic.id)) { - muteItem.setTextAndIcon(LocaleController.getString("Unmute", R.string.Unmute), R.drawable.msg_mute); + muteItem.setTextAndIcon(LocaleController.getString(R.string.Unmute), R.drawable.msg_mute); } else { - muteItem.setTextAndIcon(LocaleController.getString("Mute", R.string.Mute), R.drawable.msg_unmute); + muteItem.setTextAndIcon(LocaleController.getString(R.string.Mute), R.drawable.msg_unmute); } muteItem.setMinimumWidth(160); muteItem.setOnClickListener(e -> { @@ -1966,9 +1966,9 @@ public void toggleMute() { if (ChatObject.canManageTopic(currentAccount, getCurrentChat(), topic)) { ActionBarMenuSubItem closeItem = new ActionBarMenuSubItem(getParentActivity(), false, false); if (topic.closed) { - closeItem.setTextAndIcon(LocaleController.getString("RestartTopic", R.string.RestartTopic), R.drawable.msg_topic_restart); + closeItem.setTextAndIcon(LocaleController.getString(R.string.RestartTopic), R.drawable.msg_topic_restart); } else { - closeItem.setTextAndIcon(LocaleController.getString("CloseTopic", R.string.CloseTopic), R.drawable.msg_topic_close); + closeItem.setTextAndIcon(LocaleController.getString(R.string.CloseTopic), R.drawable.msg_topic_close); } closeItem.setMinimumWidth(160); closeItem.setOnClickListener(e -> { @@ -2207,18 +2207,18 @@ private void toggleSelection(View view) { if (unreadCount > 0) { readItem.setVisibility(View.VISIBLE); - readItem.setTextAndIcon(LocaleController.getString("MarkAsRead", R.string.MarkAsRead), R.drawable.msg_markread); + readItem.setTextAndIcon(LocaleController.getString(R.string.MarkAsRead), R.drawable.msg_markread); } else { readItem.setVisibility(View.GONE); } if (canUnmuteCount != 0) { mute = false; muteItem.setIcon(R.drawable.msg_unmute); - muteItem.setContentDescription(LocaleController.getString("ChatsUnmute", R.string.ChatsUnmute)); + muteItem.setContentDescription(LocaleController.getString(R.string.ChatsUnmute)); } else { mute = true; muteItem.setIcon(R.drawable.msg_mute); - muteItem.setContentDescription(LocaleController.getString("ChatsMute", R.string.ChatsMute)); + muteItem.setContentDescription(LocaleController.getString(R.string.ChatsMute)); } pinItem.setVisibility(canPinCount == 1 && canUnpinCount == 0 ? View.VISIBLE : View.GONE); @@ -2262,9 +2262,9 @@ private void toggleSelection(View view) { } } closeTopic.setVisibility(closedTopicsCount == 0 && openTopicsCount > 0 ? View.VISIBLE : View.GONE); - closeTopic.setText(openTopicsCount > 1 ? LocaleController.getString("CloseTopics", R.string.CloseTopics) : LocaleController.getString("CloseTopic", R.string.CloseTopic)); + closeTopic.setText(openTopicsCount > 1 ? LocaleController.getString(R.string.CloseTopics) : LocaleController.getString(R.string.CloseTopic)); restartTopic.setVisibility(openTopicsCount == 0 && closedTopicsCount > 0 ? View.VISIBLE : View.GONE); - restartTopic.setText(closedTopicsCount > 1 ? LocaleController.getString("RestartTopics", R.string.RestartTopics) : LocaleController.getString("RestartTopic", R.string.RestartTopic)); + restartTopic.setText(closedTopicsCount > 1 ? LocaleController.getString(R.string.RestartTopics) : LocaleController.getString(R.string.RestartTopic)); deleteItem.setVisibility(canDeleteCount == selectedTopics.size() ? View.VISIBLE : View.GONE); hideItem.setVisibility(canHideCount == 1 && selectedTopics.size() == 1 ? View.VISIBLE : View.GONE); showItem.setVisibility(canShowCount == 1 && selectedTopics.size() == 1 ? View.VISIBLE : View.GONE); @@ -2316,16 +2316,16 @@ private void chekActionMode() { pinItem = actionMode.addItemWithWidth(pin_id, R.drawable.msg_pin, AndroidUtilities.dp(54)); unpinItem = actionMode.addItemWithWidth(unpin_id, R.drawable.msg_unpin, AndroidUtilities.dp(54)); muteItem = actionMode.addItemWithWidth(mute_id, R.drawable.msg_mute, AndroidUtilities.dp(54)); - deleteItem = actionMode.addItemWithWidth(delete_id, R.drawable.msg_delete, AndroidUtilities.dp(54), LocaleController.getString("Delete", R.string.Delete)); - hideItem = actionMode.addItemWithWidth(hide_id, R.drawable.msg_archive_hide, AndroidUtilities.dp(54), LocaleController.getString("Hide", R.string.Hide)); + deleteItem = actionMode.addItemWithWidth(delete_id, R.drawable.msg_delete, AndroidUtilities.dp(54), LocaleController.getString(R.string.Delete)); + hideItem = actionMode.addItemWithWidth(hide_id, R.drawable.msg_archive_hide, AndroidUtilities.dp(54), LocaleController.getString(R.string.Hide)); hideItem.setVisibility(View.GONE); - showItem = actionMode.addItemWithWidth(show_id, R.drawable.msg_archive_show, AndroidUtilities.dp(54), LocaleController.getString("Show", R.string.Show)); + showItem = actionMode.addItemWithWidth(show_id, R.drawable.msg_archive_show, AndroidUtilities.dp(54), LocaleController.getString(R.string.Show)); showItem.setVisibility(View.GONE); - otherItem = actionMode.addItemWithWidth(0, R.drawable.ic_ab_other, AndroidUtilities.dp(54), LocaleController.getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); - readItem = otherItem.addSubItem(read_id, R.drawable.msg_markread, LocaleController.getString("MarkAsRead", R.string.MarkAsRead)); - closeTopic = otherItem.addSubItem(close_topic_id, R.drawable.msg_topic_close, LocaleController.getString("CloseTopic", R.string.CloseTopic)); - restartTopic = otherItem.addSubItem(restart_topic_id, R.drawable.msg_topic_restart, LocaleController.getString("RestartTopic", R.string.RestartTopic)); + otherItem = actionMode.addItemWithWidth(0, R.drawable.ic_ab_other, AndroidUtilities.dp(54), LocaleController.getString(R.string.AccDescrMoreOptions)); + readItem = otherItem.addSubItem(read_id, R.drawable.msg_markread, LocaleController.getString(R.string.MarkAsRead)); + closeTopic = otherItem.addSubItem(close_topic_id, R.drawable.msg_topic_close, LocaleController.getString(R.string.CloseTopic)); + restartTopic = otherItem.addSubItem(restart_topic_id, R.drawable.msg_topic_restart, LocaleController.getString(R.string.RestartTopic)); } private DialogCell slidingView; @@ -2456,11 +2456,11 @@ private void updateChatInfo(boolean forceAnimate) { if (openedForReply) { avatarContainer.setTitle(LocaleController.getString(R.string.ReplyToDialog)); } else if (openedForQuote) { - avatarContainer.setTitle(LocaleController.getString("QuoteTo", R.string.QuoteTo)); + avatarContainer.setTitle(LocaleController.getString(R.string.QuoteTo)); } else if (openedForForward) { - avatarContainer.setTitle(LocaleController.getString("ForwardTo", R.string.ForwardTo)); + avatarContainer.setTitle(LocaleController.getString(R.string.ForwardTo)); } else { - avatarContainer.setTitle(LocaleController.getString("SelectTopic", R.string.SelectTopic)); + avatarContainer.setTitle(LocaleController.getString(R.string.SelectTopic)); } searchItem.setVisibility(View.GONE); if (avatarContainer != null && avatarContainer.getLayoutParams() != null) { @@ -2475,7 +2475,7 @@ private void updateChatInfo(boolean forceAnimate) { if (chatLocal != null && ChatObject.isNotInChat(chatLocal) && (requestedTime > 0 && System.currentTimeMillis() - requestedTime < 1000 * 60 * 2)) { bottomPannelVisibleLocal = true; - bottomOverlayChatText.setText(LocaleController.getString("ChannelJoinRequestSent", R.string.ChannelJoinRequestSent), animated); + bottomOverlayChatText.setText(LocaleController.getString(R.string.ChannelJoinRequestSent), animated); bottomOverlayChatText.setEnabled(false); AndroidUtilities.updateViewVisibilityAnimated(bottomOverlayProgress, false, 0.5f, animated); AndroidUtilities.updateViewVisibilityAnimated(bottomOverlayChatText, true, 0.5f, animated); @@ -2488,9 +2488,9 @@ private void updateChatInfo(boolean forceAnimate) { showProgress = true; } else { if (chatLocal.join_request) { - bottomOverlayChatText.setText(LocaleController.getString("ChannelJoinRequest", R.string.ChannelJoinRequest)); + bottomOverlayChatText.setText(LocaleController.getString(R.string.ChannelJoinRequest)); } else { - bottomOverlayChatText.setText(LocaleController.getString("ChannelJoin", R.string.ChannelJoin)); + bottomOverlayChatText.setText(LocaleController.getString(R.string.ChannelJoin)); } bottomOverlayChatText.setClickable(true); bottomOverlayChatText.setEnabled(true); @@ -2500,7 +2500,7 @@ private void updateChatInfo(boolean forceAnimate) { AndroidUtilities.updateViewVisibilityAnimated(bottomOverlayChatText, !showProgress, 0.5f, animated); setButtonType(BOTTOM_BUTTON_TYPE_JOIN); } else if (show && (showBlock || showReport)) { - bottomOverlayChatText.setText(LocaleController.getString("ReportSpamAndLeave", R.string.ReportSpamAndLeave)); + bottomOverlayChatText.setText(LocaleController.getString(R.string.ReportSpamAndLeave)); bottomOverlayChatText.setClickable(true); bottomOverlayChatText.setEnabled(true); @@ -2559,7 +2559,7 @@ private void updateSubtitle() { if (chatFull != null) { newSubtitle = LocaleController.formatPluralString("Members", chatFull.participants_count); } else { - newSubtitle = LocaleController.getString("Loading", R.string.Loading).toLowerCase(); + newSubtitle = LocaleController.getString(R.string.Loading).toLowerCase(); } avatarContainer.setSubtitle(newSubtitle); @@ -3179,9 +3179,9 @@ public EmptyViewContainer(Context context) { if (LocaleController.isRTL) { spannableStringBuilder = new SpannableStringBuilder(" "); spannableStringBuilder.setSpan(new ColoredImageSpan(R.drawable.attach_arrow_left), 0, 1, 0); - spannableStringBuilder.append(LocaleController.getString("TapToCreateTopicHint", R.string.TapToCreateTopicHint)); + spannableStringBuilder.append(LocaleController.getString(R.string.TapToCreateTopicHint)); } else { - spannableStringBuilder = new SpannableStringBuilder(LocaleController.getString("TapToCreateTopicHint", R.string.TapToCreateTopicHint)); + spannableStringBuilder = new SpannableStringBuilder(LocaleController.getString(R.string.TapToCreateTopicHint)); spannableStringBuilder.append(" "); spannableStringBuilder.setSpan(new ColoredImageSpan(R.drawable.arrow_newchat), spannableStringBuilder.length() - 1, spannableStringBuilder.length(), 0); } @@ -3319,7 +3319,7 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { flickerLoadingView.setUseHeaderOffset(true); emptyView = new StickerEmptyView(context, flickerLoadingView, StickerEmptyView.STICKER_TYPE_SEARCH); - emptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); + emptyView.title.setText(LocaleController.getString(R.string.NoResult)); emptyView.subtitle.setVisibility(View.GONE); emptyView.setVisibility(View.GONE); emptyView.addView(flickerLoadingView, 0); @@ -3412,9 +3412,9 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { @Override public String getItemTitle(int position) { if (items.get(position).type == DIALOGS_TYPE) { - return LocaleController.getString("SearchMessages", R.string.SearchMessages); + return LocaleController.getString(R.string.SearchMessages); } else if (items.get(position).type == DOWNLOADS_TYPE) { - return LocaleController.getString("DownloadsTabs", R.string.DownloadsTabs); + return LocaleController.getString(R.string.DownloadsTabs); } else { return FiltersView.filters[items.get(position).filterIndex].getTitle(); } @@ -3695,10 +3695,10 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi if (getItemViewType(position) == VIEW_TYPE_HEADER) { GraySectionCell headerCell = (GraySectionCell) holder.itemView; if (position == topicsHeaderRow) { - headerCell.setText(LocaleController.getString("Topics", R.string.Topics)); + headerCell.setText(LocaleController.getString(R.string.Topics)); } if (position == messagesHeaderRow) { - headerCell.setText(LocaleController.getString("SearchMessages", R.string.SearchMessages)); + headerCell.setText(LocaleController.getString(R.string.SearchMessages)); } } if (getItemViewType(position) == VIEW_TYPE_TOPIC) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/TopicsNotifySettingsFragments.java b/TMessagesProj/src/main/java/org/telegram/ui/TopicsNotifySettingsFragments.java index b9247f16cd..166aadddc1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/TopicsNotifySettingsFragments.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/TopicsNotifySettingsFragments.java @@ -126,9 +126,9 @@ public void didRemoveException(long dialog_id) { if (items.get(position).viewType == VIEW_TYPE_DELETE_ALL) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("NotificationsDeleteAllExceptionTitle", R.string.NotificationsDeleteAllExceptionTitle)); - builder.setMessage(LocaleController.getString("NotificationsDeleteAllExceptionAlert", R.string.NotificationsDeleteAllExceptionAlert)); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.NotificationsDeleteAllExceptionTitle)); + builder.setMessage(LocaleController.getString(R.string.NotificationsDeleteAllExceptionAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialogInterface, i) -> { Iterator iterator = exceptionsTopics.iterator(); while (iterator.hasNext()) { int topicId = iterator.next(); @@ -137,7 +137,7 @@ public void didRemoveException(long dialog_id) { exceptionsTopics.clear(); updateRows(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -218,7 +218,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int break; case VIEW_TYPE_ADD_EXCEPTION: TextCell textCell = new TextCell(parent.getContext()); - textCell.setTextAndIcon(LocaleController.getString("NotificationsAddAnException", R.string.NotificationsAddAnException), R.drawable.msg_contact_add, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.NotificationsAddAnException), R.drawable.msg_contact_add, true); textCell.setColors(Theme.key_windowBackgroundWhiteBlueIcon, Theme.key_windowBackgroundWhiteBlueButton); view = textCell; view.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); @@ -228,7 +228,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int break; case VIEW_TYPE_DELETE_ALL: textCell = new TextCell(parent.getContext()); - textCell.setText(LocaleController.getString("NotificationsDeleteAllException", R.string.NotificationsDeleteAllException), false); + textCell.setText(LocaleController.getString(R.string.NotificationsDeleteAllException), false); textCell.setColors(-1, Theme.key_text_RedRegular); view = textCell; view.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationActivity.java index 5f2db106f6..6eba09bfc9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationActivity.java @@ -319,7 +319,7 @@ public void afterTextChanged(Editable s) { bottomTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText6)); bottomTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); bottomTextView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP); - bottomTextView.setText(LocaleController.getString("YourEmailInfo", R.string.YourEmailInfo)); + bottomTextView.setText(LocaleController.getString(R.string.YourEmailInfo)); linearLayout.addView(bottomTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 40, 30, 40, 0)); resetWaitView = new TextView(context); @@ -346,7 +346,7 @@ public void afterTextChanged(Editable s) { cancelResetButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); cancelResetButton.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL); cancelResetButton.setPadding(AndroidUtilities.dp(32), 0, AndroidUtilities.dp(32), 0); - cancelResetButton.setText(LocaleController.getString("CancelReset", R.string.CancelReset)); + cancelResetButton.setText(LocaleController.getString(R.string.CancelReset)); cancelResetButton.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText4)); cancelResetButton.setVisibility(View.GONE); frameLayout.addView(cancelResetButton, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? 56 : 60, Gravity.BOTTOM, 0, 0, 0, 16)); @@ -413,17 +413,17 @@ public void getOutline(View view, Outline outline) { } else if (position == turnPasswordOffRow) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - String text = LocaleController.getString("TurnPasswordOffQuestion", R.string.TurnPasswordOffQuestion); + String text = LocaleController.getString(R.string.TurnPasswordOffQuestion); if (currentPassword.has_secure_values) { - text += "\n\n" + LocaleController.getString("TurnPasswordOffPassport", R.string.TurnPasswordOffPassport); + text += "\n\n" + LocaleController.getString(R.string.TurnPasswordOffPassport); } - String title = LocaleController.getString("TurnPasswordOffQuestionTitle", R.string.TurnPasswordOffQuestionTitle); - String buttonText = LocaleController.getString("Disable", R.string.Disable); + String title = LocaleController.getString(R.string.TurnPasswordOffQuestionTitle); + String buttonText = LocaleController.getString(R.string.Disable); builder.setMessage(text); builder.setTitle(title); builder.setPositiveButton(buttonText, (dialogInterface, i) -> clearPassword()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -451,7 +451,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { updateRows(); if (passwordEntered && delegate == null) { - actionBar.setTitle(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle)); + actionBar.setTitle(LocaleController.getString(R.string.TwoStepVerificationTitle)); } else { actionBar.setTitle(null); } @@ -489,7 +489,7 @@ private void cancelPasswordReset() { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("CancelPasswordResetYes", R.string.CancelPasswordResetYes), (dialog, which) -> { + builder.setPositiveButton(LocaleController.getString(R.string.CancelPasswordResetYes), (dialog, which) -> { TLRPC.TL_account_declinePasswordReset req = new TLRPC.TL_account_declinePasswordReset(); getConnectionsManager().sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> { if (response instanceof TLRPC.TL_boolTrue) { @@ -498,9 +498,9 @@ private void cancelPasswordReset() { } })); }); - builder.setNegativeButton(LocaleController.getString("CancelPasswordResetNo", R.string.CancelPasswordResetNo), null); - builder.setTitle(LocaleController.getString("CancelReset", R.string.CancelReset)); - builder.setMessage(LocaleController.getString("CancelPasswordReset", R.string.CancelPasswordReset)); + builder.setNegativeButton(LocaleController.getString(R.string.CancelPasswordResetNo), null); + builder.setTitle(LocaleController.getString(R.string.CancelReset)); + builder.setMessage(LocaleController.getString(R.string.CancelPasswordReset)); showDialog(builder.create()); } @@ -515,9 +515,9 @@ private void resetPassword() { needHideProgress(); if (response instanceof TLRPC.TL_account_resetPasswordOk) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setNegativeButton(LocaleController.getString("OK", R.string.OK), null); - builder.setTitle(LocaleController.getString("ResetPassword", R.string.ResetPassword)); - builder.setMessage(LocaleController.getString("RestorePasswordResetPasswordOk", R.string.RestorePasswordResetPasswordOk)); + builder.setNegativeButton(LocaleController.getString(R.string.OK), null); + builder.setTitle(LocaleController.getString(R.string.ResetPassword)); + builder.setMessage(LocaleController.getString(R.string.RestorePasswordResetPasswordOk)); showDialog(builder.create(), dialog -> { getNotificationCenter().postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword); finishFragment(); @@ -539,7 +539,7 @@ private void resetPassword() { } else { timeString = LocaleController.formatPluralString("Seconds", Math.max(1, time)); } - showAlertWithText(LocaleController.getString("ResetPassword", R.string.ResetPassword), LocaleController.formatString("ResetPasswordWait", R.string.ResetPasswordWait, timeString)); + showAlertWithText(LocaleController.getString(R.string.ResetPassword), LocaleController.formatString("ResetPasswordWait", R.string.ResetPasswordWait, timeString)); } })); } @@ -551,11 +551,11 @@ private void updateBottomButton() { resetWaitView.setVisibility(View.GONE); } if (currentPassword.pending_reset_date == 0) { - bottomButton.setText(LocaleController.getString("ForgotPassword", R.string.ForgotPassword)); + bottomButton.setText(LocaleController.getString(R.string.ForgotPassword)); cancelResetButton.setVisibility(View.GONE); bottomButton.setVisibility(View.VISIBLE); } else { - bottomButton.setText(LocaleController.getString("ResetPassword", R.string.ResetPassword)); + bottomButton.setText(LocaleController.getString(R.string.ResetPassword)); cancelResetButton.setVisibility(View.VISIBLE); bottomButton.setVisibility(View.VISIBLE); } @@ -619,9 +619,9 @@ protected void onReset() { } else { timeString = LocaleController.formatPluralString("Minutes", time / 60); } - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + showAlertWithText(LocaleController.getString(R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + showAlertWithText(LocaleController.getString(R.string.AppName), error.text); } } }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); @@ -632,10 +632,10 @@ protected void onReset() { if (currentPassword.pending_reset_date != 0) { if (getConnectionsManager().getCurrentTime() > currentPassword.pending_reset_date) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("Reset", R.string.Reset), (dialog, which) -> resetPassword()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setTitle(LocaleController.getString("ResetPassword", R.string.ResetPassword)); - builder.setMessage(LocaleController.getString("RestorePasswordResetPasswordText", R.string.RestorePasswordResetPasswordText)); + builder.setPositiveButton(LocaleController.getString(R.string.Reset), (dialog, which) -> resetPassword()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.ResetPassword)); + builder.setMessage(LocaleController.getString(R.string.RestorePasswordResetPasswordText)); AlertDialog dialog = builder.create(); showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -647,10 +647,10 @@ protected void onReset() { } } else { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("Reset", R.string.Reset), (dialog, which) -> resetPassword()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setTitle(LocaleController.getString("ResetPassword", R.string.ResetPassword)); - builder.setMessage(LocaleController.getString("RestorePasswordNoEmailText2", R.string.RestorePasswordNoEmailText2)); + builder.setPositiveButton(LocaleController.getString(R.string.Reset), (dialog, which) -> resetPassword()); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setTitle(LocaleController.getString(R.string.ResetPassword)); + builder.setMessage(LocaleController.getString(R.string.RestorePasswordNoEmailText2)); showDialog(builder.create()); } } @@ -737,7 +737,7 @@ private void loadPasswordInfo(boolean first, final boolean silent, Runnable when loading = false; currentPassword = (TLRPC.account_Password) response; if (!canHandleCurrentPassword(currentPassword, false)) { - AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString(R.string.UpdateAppAlert), true); return; } if (!silent || first) { @@ -918,7 +918,7 @@ private void showAlertWithText(String title, String text) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); builder.setTitle(title); builder.setMessage(text); showDialog(builder.create()); @@ -990,9 +990,9 @@ private void clearPassword() { } else { timeString = LocaleController.formatPluralString("Minutes", time / 60); } - showAlertWithText(LocaleController.getString("NekoX", R.string.NekoX), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + showAlertWithText(LocaleController.getString(R.string.NekoX), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); } else { - showAlertWithText(LocaleController.getString("NekoX", R.string.NekoX), error.text); + showAlertWithText(LocaleController.getString(R.string.NekoX), error.text); } } }); @@ -1100,7 +1100,7 @@ private void processDone() { } } } else { - AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString(R.string.UpdateAppAlert), true); } }); }); @@ -1129,9 +1129,9 @@ private void processDone() { } else { timeString = LocaleController.formatPluralString("Minutes", time / 60); } - showAlertWithText(LocaleController.getString("NekoX", R.string.NekoX), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + showAlertWithText(LocaleController.getString(R.string.NekoX), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); } else { - showAlertWithText(LocaleController.getString("NekoX", R.string.NekoX), error.text); + showAlertWithText(LocaleController.getString(R.string.NekoX), error.text); } }); } @@ -1215,24 +1215,24 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { textCell.setTag(Theme.key_windowBackgroundWhiteBlackText); textCell.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText)); if (position == changePasswordRow) { - textCell.setText(LocaleController.getString("ChangePassword", R.string.ChangePassword), true); + textCell.setText(LocaleController.getString(R.string.ChangePassword), true); } else if (position == setPasswordRow) { - textCell.setText(LocaleController.getString("SetAdditionalPassword", R.string.SetAdditionalPassword), true); + textCell.setText(LocaleController.getString(R.string.SetAdditionalPassword), true); } else if (position == turnPasswordOffRow) { - textCell.setText(LocaleController.getString("TurnPasswordOff", R.string.TurnPasswordOff), true); + textCell.setText(LocaleController.getString(R.string.TurnPasswordOff), true); } else if (position == changeRecoveryEmailRow) { - textCell.setText(LocaleController.getString("ChangeRecoveryEmail", R.string.ChangeRecoveryEmail), false); + textCell.setText(LocaleController.getString(R.string.ChangeRecoveryEmail), false); } else if (position == setRecoveryEmailRow) { - textCell.setText(LocaleController.getString("SetRecoveryEmail", R.string.SetRecoveryEmail), false); + textCell.setText(LocaleController.getString(R.string.SetRecoveryEmail), false); } break; case 1: TextInfoPrivacyCell privacyCell = (TextInfoPrivacyCell) holder.itemView; if (position == setPasswordDetailRow) { - privacyCell.setText(LocaleController.getString("SetAdditionalPasswordInfo", R.string.SetAdditionalPasswordInfo)); + privacyCell.setText(LocaleController.getString(R.string.SetAdditionalPasswordInfo)); privacyCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); } else if (position == passwordEnabledDetailRow) { - privacyCell.setText(LocaleController.getString("EnabledPasswordText", R.string.EnabledPasswordText)); + privacyCell.setText(LocaleController.getString(R.string.EnabledPasswordText)); privacyCell.setBackgroundDrawable(Theme.getThemedDrawableByKey(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); } break; @@ -1299,11 +1299,11 @@ public boolean onBackPressed() { private void showSetForcePasswordAlert() { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("Warning", R.string.Warning)); + builder.setTitle(LocaleController.getString(R.string.Warning)); builder.setMessage(LocaleController.formatPluralString("ForceSetPasswordAlertMessageShort", otherwiseReloginDays)); - builder.setPositiveButton(LocaleController.getString("TwoStepVerificationSetPassword", R.string.TwoStepVerificationSetPassword), null); + builder.setPositiveButton(LocaleController.getString(R.string.TwoStepVerificationSetPassword), null); - builder.setNegativeButton(LocaleController.getString("ForceSetPasswordCancel", R.string.ForceSetPasswordCancel), (a1, a2) -> finishFragment()); + builder.setNegativeButton(LocaleController.getString(R.string.ForceSetPasswordCancel), (a1, a2) -> finishFragment()); AlertDialog alertDialog = builder.show(); ((TextView)alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE)).setTextColor(Theme.getColor(Theme.key_text_RedBold)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationSetupActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationSetupActivity.java index 6c32b06e64..25aee9f318 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationSetupActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/TwoStepVerificationSetupActivity.java @@ -272,16 +272,16 @@ public void onItemClick(int id) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); String text; if (currentPassword != null && currentPassword.has_password) { - text = LocaleController.getString("CancelEmailQuestion", R.string.CancelEmailQuestion); + text = LocaleController.getString(R.string.CancelEmailQuestion); } else { - text = LocaleController.getString("CancelPasswordQuestion", R.string.CancelPasswordQuestion); + text = LocaleController.getString(R.string.CancelPasswordQuestion); } - String title = LocaleController.getString("CancelEmailQuestionTitle", R.string.CancelEmailQuestionTitle); - String buttonText = LocaleController.getString("Abort", R.string.Abort); + String title = LocaleController.getString(R.string.CancelEmailQuestionTitle); + String buttonText = LocaleController.getString(R.string.Abort); builder.setMessage(text); builder.setTitle(title); builder.setPositiveButton(buttonText, (dialogInterface, i) -> setNewPassword(true)); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -295,7 +295,7 @@ public void onItemClick(int id) { if (currentType == TYPE_EMAIL_CONFIRM) { ActionBarMenu menu = actionBar.createMenu(); ActionBarMenuItem item = menu.addItem(0, R.drawable.ic_ab_other); - item.addSubItem(item_abort, LocaleController.getString("AbortPasswordMenu", R.string.AbortPasswordMenu)); + item.addSubItem(item_abort, LocaleController.getString(R.string.AbortPasswordMenu)); } floatingButtonContainer = new FrameLayout(context); @@ -360,15 +360,15 @@ public void getOutline(View view, Outline outline) { if (error == null) { getMessagesController().removeSuggestion(0, "VALIDATE_PASSWORD"); AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> { for (int a = 0, N = fragmentsToClose.size(); a < N; a++) { fragmentsToClose.get(a).removeSelfFromStack(); } NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.twoStepPasswordChanged); finishFragment(); }); - builder.setMessage(LocaleController.getString("PasswordReset", R.string.PasswordReset)); - builder.setTitle(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle)); + builder.setMessage(LocaleController.getString(R.string.PasswordReset)); + builder.setTitle(LocaleController.getString(R.string.TwoStepVerificationTitle)); Dialog dialog = showDialog(builder.create()); if (dialog != null) { dialog.setCanceledOnTouchOutside(false); @@ -383,21 +383,21 @@ public void getOutline(View view, Outline outline) { } else { timeString = LocaleController.formatPluralString("Minutes", time / 60); } - showAlertWithText(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + showAlertWithText(LocaleController.getString(R.string.TwoStepVerificationTitle), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); } else { - showAlertWithText(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle), error.text); + showAlertWithText(LocaleController.getString(R.string.TwoStepVerificationTitle), error.text); } } })); } else if (currentType == TYPE_ENTER_EMAIL) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setMessage(LocaleController.getString("YourEmailSkipWarningText", R.string.YourEmailSkipWarningText)); - builder.setTitle(LocaleController.getString("YourEmailSkipWarning", R.string.YourEmailSkipWarning)); - builder.setPositiveButton(LocaleController.getString("YourEmailSkip", R.string.YourEmailSkip), (dialogInterface, i) -> { + builder.setMessage(LocaleController.getString(R.string.YourEmailSkipWarningText)); + builder.setTitle(LocaleController.getString(R.string.YourEmailSkipWarning)); + builder.setPositiveButton(LocaleController.getString(R.string.YourEmailSkip), (dialogInterface, i) -> { email = ""; setNewPassword(false); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -926,17 +926,17 @@ public void afterTextChanged(Editable s) { descriptionText3.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); descriptionText3.setLineSpacing(AndroidUtilities.dp(2), 1); descriptionText3.setPadding(AndroidUtilities.dp(32), 0, AndroidUtilities.dp(32), 0); - descriptionText3.setText(LocaleController.getString("RestoreEmailTroubleNoEmail", R.string.RestoreEmailTroubleNoEmail)); + descriptionText3.setText(LocaleController.getString(R.string.RestoreEmailTroubleNoEmail)); scrollViewLinearLayout.addView(descriptionText3, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 0, 0, 0, 25)); descriptionText3.setOnClickListener(v -> { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); - builder.setPositiveButton(LocaleController.getString("Reset", R.string.Reset), (dialog, which) -> { + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString(R.string.Reset), (dialog, which) -> { onReset(); finishFragment(); }); - builder.setTitle(LocaleController.getString("ResetPassword", R.string.ResetPassword)); - builder.setMessage(LocaleController.getString("RestoreEmailTroubleText2", R.string.RestoreEmailTroubleText2)); + builder.setTitle(LocaleController.getString(R.string.ResetPassword)); + builder.setMessage(LocaleController.getString(R.string.RestoreEmailTroubleText2)); showDialog(builder.create()); }); } @@ -974,9 +974,9 @@ protected void onDraw(Canvas canvas) { switch (currentType) { case TYPE_INTRO: { - titleTextView.setText(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle)); - descriptionText.setText(LocaleController.getString("SetAdditionalPasswordInfo", R.string.SetAdditionalPasswordInfo)); - buttonTextView.setText(LocaleController.getString("TwoStepVerificationSetPassword", R.string.TwoStepVerificationSetPassword)); + titleTextView.setText(LocaleController.getString(R.string.TwoStepVerificationTitle)); + descriptionText.setText(LocaleController.getString(R.string.SetAdditionalPasswordInfo)); + buttonTextView.setText(LocaleController.getString(R.string.TwoStepVerificationSetPassword)); descriptionText.setVisibility(View.VISIBLE); imageView.setAnimation(R.raw.tsv_setup_intro, 140, 140); @@ -984,14 +984,14 @@ protected void onDraw(Canvas canvas) { break; } case TYPE_PASSWORD_SET: { - titleTextView.setText(LocaleController.getString("TwoStepVerificationPasswordSet", R.string.TwoStepVerificationPasswordSet)); - descriptionText.setText(LocaleController.getString("TwoStepVerificationPasswordSetInfo", R.string.TwoStepVerificationPasswordSetInfo)); + titleTextView.setText(LocaleController.getString(R.string.TwoStepVerificationPasswordSet)); + descriptionText.setText(LocaleController.getString(R.string.TwoStepVerificationPasswordSetInfo)); if (closeAfterSet) { - buttonTextView.setText(LocaleController.getString("TwoStepVerificationPasswordReturnPassport", R.string.TwoStepVerificationPasswordReturnPassport)); + buttonTextView.setText(LocaleController.getString(R.string.TwoStepVerificationPasswordReturnPassport)); } else if (fromRegistration) { buttonTextView.setText(LocaleController.getString(R.string.Continue)); } else { - buttonTextView.setText(LocaleController.getString("TwoStepVerificationPasswordReturnSettings", R.string.TwoStepVerificationPasswordReturnSettings)); + buttonTextView.setText(LocaleController.getString(R.string.TwoStepVerificationPasswordReturnSettings)); } descriptionText.setVisibility(View.VISIBLE); @@ -1000,9 +1000,9 @@ protected void onDraw(Canvas canvas) { break; } case TYPE_VERIFY_OK: { - titleTextView.setText(LocaleController.getString("CheckPasswordPerfect", R.string.CheckPasswordPerfect)); - descriptionText.setText(LocaleController.getString("CheckPasswordPerfectInfo", R.string.CheckPasswordPerfectInfo)); - buttonTextView.setText(LocaleController.getString("CheckPasswordBackToSettings", R.string.CheckPasswordBackToSettings)); + titleTextView.setText(LocaleController.getString(R.string.CheckPasswordPerfect)); + descriptionText.setText(LocaleController.getString(R.string.CheckPasswordPerfectInfo)); + buttonTextView.setText(LocaleController.getString(R.string.CheckPasswordBackToSettings)); descriptionText.setVisibility(View.VISIBLE); imageView.setAnimation(R.raw.wallet_perfect, 140, 140); @@ -1010,13 +1010,13 @@ protected void onDraw(Canvas canvas) { break; } case TYPE_VERIFY: { - actionBar.setTitle(LocaleController.getString("PleaseEnterCurrentPassword", R.string.PleaseEnterCurrentPassword)); - titleTextView.setText(LocaleController.getString("PleaseEnterCurrentPassword", R.string.PleaseEnterCurrentPassword)); - descriptionText.setText(LocaleController.getString("CheckPasswordInfo", R.string.CheckPasswordInfo)); + actionBar.setTitle(LocaleController.getString(R.string.PleaseEnterCurrentPassword)); + titleTextView.setText(LocaleController.getString(R.string.PleaseEnterCurrentPassword)); + descriptionText.setText(LocaleController.getString(R.string.CheckPasswordInfo)); descriptionText.setVisibility(View.VISIBLE); actionBar.getTitleTextView().setAlpha(0.0f); - descriptionText2.setText(LocaleController.getString("ForgotPassword", R.string.ForgotPassword)); + descriptionText2.setText(LocaleController.getString(R.string.ForgotPassword)); descriptionText2.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText2)); outlineTextFirstRow.setText(LocaleController.getString(R.string.LoginPassword)); editTextFirstRow.setContentDescription(LocaleController.getString(R.string.LoginPassword)); @@ -1032,8 +1032,8 @@ protected void onDraw(Canvas canvas) { case TYPE_CREATE_PASSWORD_STEP_1: case TYPE_CREATE_PASSWORD_STEP_2: { if (currentPassword.has_password) { - actionBar.setTitle(LocaleController.getString("PleaseEnterNewFirstPassword", R.string.PleaseEnterNewFirstPassword)); - titleTextView.setText(LocaleController.getString("PleaseEnterNewFirstPassword", R.string.PleaseEnterNewFirstPassword)); + actionBar.setTitle(LocaleController.getString(R.string.PleaseEnterNewFirstPassword)); + titleTextView.setText(LocaleController.getString(R.string.PleaseEnterNewFirstPassword)); } else { CharSequence title = LocaleController.getString(currentType == TYPE_CREATE_PASSWORD_STEP_1 ? R.string.CreatePassword : R.string.ReEnterPassword); actionBar.setTitle(title); @@ -1041,7 +1041,7 @@ protected void onDraw(Canvas canvas) { } if (!TextUtils.isEmpty(emailCode)) { bottomSkipButton.setVisibility(View.VISIBLE); - bottomSkipButton.setText(LocaleController.getString("YourEmailSkip", R.string.YourEmailSkip)); + bottomSkipButton.setText(LocaleController.getString(R.string.YourEmailSkip)); } actionBar.getTitleTextView().setAlpha(0.0f); outlineTextFirstRow.setText(LocaleController.getString(currentType == TYPE_CREATE_PASSWORD_STEP_1 ? R.string.EnterPassword : R.string.ReEnterPassword)); @@ -1070,11 +1070,11 @@ protected void onDraw(Canvas canvas) { break; } case TYPE_ENTER_HINT: { - actionBar.setTitle(LocaleController.getString("PasswordHint", R.string.PasswordHint)); + actionBar.setTitle(LocaleController.getString(R.string.PasswordHint)); actionBar.getTitleTextView().setAlpha(0.0f); bottomSkipButton.setVisibility(View.VISIBLE); - bottomSkipButton.setText(LocaleController.getString("YourEmailSkip", R.string.YourEmailSkip)); - titleTextView.setText(LocaleController.getString("PasswordHint", R.string.PasswordHint)); + bottomSkipButton.setText(LocaleController.getString(R.string.YourEmailSkip)); + titleTextView.setText(LocaleController.getString(R.string.PasswordHint)); descriptionText.setText(LocaleController.getString(R.string.PasswordHintDescription)); descriptionText.setVisibility(View.VISIBLE); @@ -1088,15 +1088,15 @@ protected void onDraw(Canvas canvas) { break; } case TYPE_ENTER_EMAIL: { - actionBar.setTitle(LocaleController.getString("RecoveryEmailTitle", R.string.RecoveryEmailTitle)); + actionBar.setTitle(LocaleController.getString(R.string.RecoveryEmailTitle)); actionBar.getTitleTextView().setAlpha(0.0f); if (!emailOnly) { bottomSkipButton.setVisibility(View.VISIBLE); bottomSkipButton.setAlpha(0f); - bottomSkipButton.setText(LocaleController.getString("YourEmailSkip", R.string.YourEmailSkip)); + bottomSkipButton.setText(LocaleController.getString(R.string.YourEmailSkip)); } - titleTextView.setText(LocaleController.getString("RecoveryEmailTitle", R.string.RecoveryEmailTitle)); - descriptionText.setText(LocaleController.getString("RecoveryEmailSubtitle", R.string.RecoveryEmailSubtitle)); + titleTextView.setText(LocaleController.getString(R.string.RecoveryEmailTitle)); + descriptionText.setText(LocaleController.getString(R.string.RecoveryEmailSubtitle)); descriptionText.setVisibility(View.VISIBLE); outlineTextFirstRow.setText(LocaleController.getString(R.string.PaymentShippingEmailPlaceholder)); editTextFirstRow.setContentDescription(LocaleController.getString(R.string.PaymentShippingEmailPlaceholder)); @@ -1109,9 +1109,9 @@ protected void onDraw(Canvas canvas) { break; } case TYPE_EMAIL_CONFIRM: { - actionBar.setTitle(LocaleController.getString("VerificationCode", R.string.VerificationCode)); + actionBar.setTitle(LocaleController.getString(R.string.VerificationCode)); actionBar.getTitleTextView().setAlpha(0.0f); - titleTextView.setText(LocaleController.getString("VerificationCode", R.string.VerificationCode)); + titleTextView.setText(LocaleController.getString(R.string.VerificationCode)); outlineTextFirstRow.setVisibility(View.GONE); keyboardView.setVisibility(View.VISIBLE); descriptionText.setText(LocaleController.formatString("EmailPasswordConfirmText2", R.string.EmailPasswordConfirmText2, currentPassword.email_unconfirmed_pattern != null ? currentPassword.email_unconfirmed_pattern : "")); @@ -1127,9 +1127,9 @@ protected void onDraw(Canvas canvas) { TLRPC.TL_account_resendPasswordEmail req = new TLRPC.TL_account_resendPasswordEmail(); ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> {}); showDialog(new AlertDialog.Builder(getParentActivity()) - .setMessage(LocaleController.getString("ResendCodeInfo", R.string.ResendCodeInfo)) - .setTitle(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle)) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), null) + .setMessage(LocaleController.getString(R.string.ResendCodeInfo)) + .setTitle(LocaleController.getString(R.string.TwoStepVerificationTitle)) + .setPositiveButton(LocaleController.getString(R.string.OK), null) .create()); }); @@ -1140,9 +1140,9 @@ protected void onDraw(Canvas canvas) { break; } case TYPE_EMAIL_RECOVERY: { - actionBar.setTitle(LocaleController.getString("PasswordRecovery", R.string.PasswordRecovery)); + actionBar.setTitle(LocaleController.getString(R.string.PasswordRecovery)); actionBar.getTitleTextView().setAlpha(0.0f); - titleTextView.setText(LocaleController.getString("PasswordRecovery", R.string.PasswordRecovery)); + titleTextView.setText(LocaleController.getString(R.string.PasswordRecovery)); keyboardView.setVisibility(View.VISIBLE); outlineTextFirstRow.setVisibility(View.GONE); @@ -1409,7 +1409,7 @@ private void processNext() { } needHideProgress(); if ("PASSWORD_HASH_INVALID".equals(error.text)) { - descriptionText.setText(LocaleController.getString("CheckPasswordWrong", R.string.CheckPasswordWrong)); + descriptionText.setText(LocaleController.getString(R.string.CheckPasswordWrong)); descriptionText.setTextColor(Theme.getColor(Theme.key_text_RedRegular)); onFieldError(outlineTextFirstRow, editTextFirstRow, true); showDoneButton(false); @@ -1421,9 +1421,9 @@ private void processNext() { } else { timeString = LocaleController.formatPluralString("Minutes", time / 60); } - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + showAlertWithText(LocaleController.getString(R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + showAlertWithText(LocaleController.getString(R.string.AppName), error.text); } }); } @@ -1460,7 +1460,7 @@ private void processNext() { outlineTextFirstRow.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); } catch (Exception ignored) {} try { - Toast.makeText(getParentActivity(), LocaleController.getString("PasswordDoNotMatch", R.string.PasswordDoNotMatch), Toast.LENGTH_SHORT).show(); + Toast.makeText(getParentActivity(), LocaleController.getString(R.string.PasswordDoNotMatch), Toast.LENGTH_SHORT).show(); } catch (Exception e) { FileLog.e(e); } @@ -1483,7 +1483,7 @@ private void processNext() { hint = editTextFirstRow.getText().toString(); if (hint.equalsIgnoreCase(firstPassword)) { try { - Toast.makeText(getParentActivity(), LocaleController.getString("PasswordAsHintError", R.string.PasswordAsHintError), Toast.LENGTH_SHORT).show(); + Toast.makeText(getParentActivity(), LocaleController.getString(R.string.PasswordAsHintError), Toast.LENGTH_SHORT).show(); } catch (Exception e) { FileLog.e(e); } @@ -1532,9 +1532,9 @@ private void processNext() { } else { timeString = LocaleController.formatPluralString("Minutes", time / 60); } - showAlertWithText(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + showAlertWithText(LocaleController.getString(R.string.TwoStepVerificationTitle), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); } else { - showAlertWithText(LocaleController.getString("TwoStepVerificationTitle", R.string.TwoStepVerificationTitle), error.text); + showAlertWithText(LocaleController.getString(R.string.TwoStepVerificationTitle), error.text); } } }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); @@ -1552,7 +1552,7 @@ private void processNext() { animateSuccess(()->{ if (currentPassword.has_password) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> { for (int a = 0, N = fragmentsToClose.size(); a < N; a++) { fragmentsToClose.get(a).removeSelfFromStack(); } @@ -1567,11 +1567,11 @@ private void processNext() { NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword, currentPassword); }); if (currentPassword.has_recovery) { - builder.setMessage(LocaleController.getString("YourEmailSuccessChangedText", R.string.YourEmailSuccessChangedText)); + builder.setMessage(LocaleController.getString(R.string.YourEmailSuccessChangedText)); } else { - builder.setMessage(LocaleController.getString("YourEmailSuccessText", R.string.YourEmailSuccessText)); + builder.setMessage(LocaleController.getString(R.string.YourEmailSuccessText)); } - builder.setTitle(LocaleController.getString("YourPasswordSuccess", R.string.YourPasswordSuccess)); + builder.setTitle(LocaleController.getString(R.string.YourPasswordSuccess)); Dialog dialog = showDialog(builder.create()); if (dialog != null) { dialog.setCanceledOnTouchOutside(false); @@ -1606,9 +1606,9 @@ private void processNext() { } else { timeString = LocaleController.formatPluralString("Minutes", time / 60); } - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + showAlertWithText(LocaleController.getString(R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + showAlertWithText(LocaleController.getString(R.string.AppName), error.text); } } }), ConnectionsManager.RequestFlagFailOnServerErrors | ConnectionsManager.RequestFlagWithoutLogin); @@ -1767,7 +1767,7 @@ private void loadPasswordInfo() { if (error == null) { currentPassword = (TLRPC.account_Password) response; if (!TwoStepVerificationActivity.canHandleCurrentPassword(currentPassword, false)) { - AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString("UpdateAppAlert", R.string.UpdateAppAlert), true); + AlertsCreator.showUpdateAppAlert(getParentActivity(), LocaleController.getString(R.string.UpdateAppAlert), true); return; } waitingForEmail = !TextUtils.isEmpty(currentPassword.email_unconfirmed_pattern); @@ -1854,7 +1854,7 @@ private void showAlertWithText(String title, String text) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); + builder.setPositiveButton(LocaleController.getString(R.string.OK), null); builder.setTitle(title); builder.setMessage(text); showDialog(builder.create()); @@ -1981,7 +1981,7 @@ private void setNewPassword(final boolean clear) { } if (currentPassword.has_password) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> { for (int a = 0, N = fragmentsToClose.size(); a < N; a++) { fragmentsToClose.get(a).removeSelfFromStack(); } @@ -1996,11 +1996,11 @@ private void setNewPassword(final boolean clear) { NotificationCenter.getInstance(currentAccount).postNotificationName(NotificationCenter.didSetOrRemoveTwoStepPassword, currentPassword); }); if (password == null && currentPassword != null && currentPassword.has_password) { - builder.setMessage(LocaleController.getString("YourEmailSuccessText", R.string.YourEmailSuccessText)); + builder.setMessage(LocaleController.getString(R.string.YourEmailSuccessText)); } else { - builder.setMessage(LocaleController.getString("YourPasswordChangedSuccessText", R.string.YourPasswordChangedSuccessText)); + builder.setMessage(LocaleController.getString(R.string.YourPasswordChangedSuccessText)); } - builder.setTitle(LocaleController.getString("YourPasswordSuccess", R.string.YourPasswordSuccess)); + builder.setTitle(LocaleController.getString(R.string.YourPasswordSuccess)); Dialog dialog = showDialog(builder.create()); if (dialog != null) { dialog.setCanceledOnTouchOutside(false); @@ -2042,7 +2042,7 @@ private void setNewPassword(final boolean clear) { presentFragment(fragment, true); } else { if ("EMAIL_INVALID".equals(error.text)) { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.getString("PasswordEmailInvalid", R.string.PasswordEmailInvalid)); + showAlertWithText(LocaleController.getString(R.string.AppName), LocaleController.getString(R.string.PasswordEmailInvalid)); } else if (error.text.startsWith("FLOOD_WAIT")) { int time = Utilities.parseInt(error.text); String timeString; @@ -2051,9 +2051,9 @@ private void setNewPassword(final boolean clear) { } else { timeString = LocaleController.formatPluralString("Minutes", time / 60); } - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); + showAlertWithText(LocaleController.getString(R.string.AppName), LocaleController.formatString("FloodWaitTime", R.string.FloodWaitTime, timeString)); } else { - showAlertWithText(LocaleController.getString("AppName", R.string.AppName), error.text); + showAlertWithText(LocaleController.getString(R.string.AppName), error.text); } } } @@ -2179,11 +2179,11 @@ public boolean finishFragment(boolean animated) { private void showSetForcePasswordAlert() { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("Warning", R.string.Warning)); + builder.setTitle(LocaleController.getString(R.string.Warning)); builder.setMessage(LocaleController.formatPluralString("ForceSetPasswordAlertMessageShort", otherwiseReloginDays)); - builder.setPositiveButton(LocaleController.getString("TwoStepVerificationSetPassword", R.string.TwoStepVerificationSetPassword), null); + builder.setPositiveButton(LocaleController.getString(R.string.TwoStepVerificationSetPassword), null); - builder.setNegativeButton(LocaleController.getString("ForceSetPasswordCancel", R.string.ForceSetPasswordCancel), (a1, a2) -> finishFragment()); + builder.setNegativeButton(LocaleController.getString(R.string.ForceSetPasswordCancel), (a1, a2) -> finishFragment()); AlertDialog alertDialog = builder.show(); ((TextView)alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE)).setTextColor(Theme.getColor(Theme.key_text_RedBold)); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/UnlockPremiumView.java b/TMessagesProj/src/main/java/org/telegram/ui/UnlockPremiumView.java index 49645f2d22..74b7061e6f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/UnlockPremiumView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/UnlockPremiumView.java @@ -37,9 +37,9 @@ public UnlockPremiumView(@NonNull Context context, int type, Theme.ResourcesProv descriptionTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); descriptionTextView.setGravity(Gravity.CENTER); if (type == TYPE_STICKERS) { - descriptionTextView.setText(LocaleController.getString("UnlockPremiumStickersDescription", R.string.UnlockPremiumStickersDescription)); + descriptionTextView.setText(LocaleController.getString(R.string.UnlockPremiumStickersDescription)); } else if (type == TYPE_REACTIONS) { - descriptionTextView.setText(LocaleController.getString("UnlockPremiumReactionsDescription", R.string.UnlockPremiumReactionsDescription)); + descriptionTextView.setText(LocaleController.getString(R.string.UnlockPremiumReactionsDescription)); } linearLayout.addView(descriptionTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 16, 17, 17, 16)); @@ -47,9 +47,9 @@ public UnlockPremiumView(@NonNull Context context, int type, Theme.ResourcesProv String text; if (type == TYPE_STICKERS) { - text = LocaleController.getString("UnlockPremiumStickers", R.string.UnlockPremiumStickers); + text = LocaleController.getString(R.string.UnlockPremiumStickers); } else { - text = LocaleController.getString("UnlockPremiumReactions", R.string.UnlockPremiumReactions); + text = LocaleController.getString(R.string.UnlockPremiumReactions); } SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(); spannableStringBuilder.append("d ").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.msg_premium_normal)), 0, 1, 0); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/UserInfoActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/UserInfoActivity.java index a1265cb029..a6b1b7e4bf 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/UserInfoActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/UserInfoActivity.java @@ -136,7 +136,7 @@ public void onItemClick(int id) { Drawable checkmark = context.getResources().getDrawable(R.drawable.ic_ab_done).mutate(); checkmark.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultIcon), PorterDuff.Mode.MULTIPLY)); doneButtonDrawable = new CrossfadeDrawable(checkmark, new CircularProgressDrawable(Theme.getColor(Theme.key_actionBarDefaultIcon))); - doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, dp(56), LocaleController.getString("Done", R.string.Done)); + doneButton = actionBar.createMenu().addItemWithWidth(done_button, doneButtonDrawable, dp(56), LocaleController.getString(R.string.Done)); checkDone(false); setValue(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/UsersSelectActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/UsersSelectActivity.java index 656987ee2f..1ac3d4911e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/UsersSelectActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/UsersSelectActivity.java @@ -461,9 +461,9 @@ public View createView(Context context) { actionBar.setAllowOverlayTitle(true); if (type == TYPE_FILTER || type == TYPE_PRIVATE) { if (isInclude) { - actionBar.setTitle(LocaleController.getString("FilterAlwaysShow", R.string.FilterAlwaysShow)); + actionBar.setTitle(LocaleController.getString(R.string.FilterAlwaysShow)); } else { - actionBar.setTitle(LocaleController.getString("FilterNeverShow", R.string.FilterNeverShow)); + actionBar.setTitle(LocaleController.getString(R.string.FilterNeverShow)); } } else if (type == TYPE_AUTO_DELETE_EXISTING_CHATS){ updateHint(); @@ -594,7 +594,7 @@ public boolean onTouchEvent(MotionEvent event) { editText.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI); editText.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL); spansContainer.addView(editText); - editText.setHintText(LocaleController.getString("SearchForPeopleAndGroups", R.string.SearchForPeopleAndGroups)); + editText.setHintText(LocaleController.getString(R.string.SearchForPeopleAndGroups)); editText.setCustomSelectionActionModeCallback(new ActionMode.Callback() { public boolean onPrepareActionMode(ActionMode mode, Menu menu) { @@ -683,7 +683,7 @@ public void afterTextChanged(Editable editable) { adapter.setSearching(true); listView.setFastScrollVisible(false); listView.setVerticalScrollBarEnabled(true); - emptyView.title.setText(LocaleController.getString("NoResult", R.string.NoResult)); + emptyView.title.setText(LocaleController.getString(R.string.NoResult)); } emptyView.showProgress(true); adapter.searchDialogs(editText.getText().toString()); @@ -710,7 +710,7 @@ public void setVisibility(int visibility) { } }; emptyView.showProgress(ContactsController.getInstance(currentAccount).isLoadingContacts()); - emptyView.title.setText(LocaleController.getString("NoContacts", R.string.NoContacts)); + emptyView.title.setText(LocaleController.getString(R.string.NoContacts)); frameLayout.addView(emptyView); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false); @@ -785,7 +785,7 @@ public void setVisibility(int visibility) { } else if (object instanceof TLRPC.Chat) { id = -((TLRPC.Chat) object).id; if (type == TYPE_AUTO_DELETE_EXISTING_CHATS && !ChatObject.canUserDoAdminAction((TLRPC.Chat) object, ChatObject.ACTION_DELETE_MESSAGES)) { - BulletinFactory.of(this).createErrorBulletin(LocaleController.getString("NeedAdminRightForSetAutoDeleteTimer", R.string.NeedAdminRightForSetAutoDeleteTimer)).show(); + BulletinFactory.of(this).createErrorBulletin(LocaleController.getString(R.string.NeedAdminRightForSetAutoDeleteTimer)).show(); return; } } else { @@ -867,7 +867,7 @@ public void getOutline(View view, Outline outline) { floatingButton.setScaleX(0.0f); floatingButton.setScaleY(0.0f); floatingButton.setAlpha(0.0f);*/ - floatingButton.setContentDescription(LocaleController.getString("Next", R.string.Next)); + floatingButton.setContentDescription(LocaleController.getString(R.string.Next)); for (int position = 1, N = (isInclude ? 5 : 3); position <= N; position++) { int id; @@ -1077,7 +1077,7 @@ private void closeSearch() { adapter.searchDialogs(null); listView.setFastScrollVisible(true); listView.setVerticalScrollBarEnabled(false); - emptyView.title.setText(LocaleController.getString("NoContacts", R.string.NoContacts)); + emptyView.title.setText(LocaleController.getString(R.string.NoContacts)); } private void updateHint() { @@ -1093,11 +1093,11 @@ private void updateHint() { actionBar.setSubtitle(""); if (selectedCount == 0) { - animatedAvatarContainer.getTitle().setText(LocaleController.getString("SelectChats", R.string.SelectChats), true); + animatedAvatarContainer.getTitle().setText(LocaleController.getString(R.string.SelectChats), true); if (ttlPeriod > 0) { - animatedAvatarContainer.getSubtitleTextView().setText(LocaleController.getString("SelectChatsForAutoDelete", R.string.SelectChatsForAutoDelete), true); + animatedAvatarContainer.getSubtitleTextView().setText(LocaleController.getString(R.string.SelectChatsForAutoDelete), true); } else { - animatedAvatarContainer.getSubtitleTextView().setText(LocaleController.getString("SelectChatsForDisableAutoDelete", R.string.SelectChatsForDisableAutoDelete), true); + animatedAvatarContainer.getSubtitleTextView().setText(LocaleController.getString(R.string.SelectChatsForDisableAutoDelete), true); } } else { animatedAvatarContainer.getTitle().setText(LocaleController.formatPluralString("Chats", selectedCount, selectedCount)); @@ -1380,37 +1380,37 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } } else if (isInclude) { if (position == 1) { - name = LocaleController.getString("FilterContacts", R.string.FilterContacts); + name = LocaleController.getString(R.string.FilterContacts); object = "contacts"; flag = MessagesController.DIALOG_FILTER_FLAG_CONTACTS; } else if (position == 2) { - name = LocaleController.getString("FilterNonContacts", R.string.FilterNonContacts); + name = LocaleController.getString(R.string.FilterNonContacts); object = "non_contacts"; flag = MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS; } else if (position == 3) { - name = LocaleController.getString("FilterGroups", R.string.FilterGroups); + name = LocaleController.getString(R.string.FilterGroups); object = "groups"; flag = MessagesController.DIALOG_FILTER_FLAG_GROUPS; } else if (position == 4) { - name = LocaleController.getString("FilterChannels", R.string.FilterChannels); + name = LocaleController.getString(R.string.FilterChannels); object = "channels"; flag = MessagesController.DIALOG_FILTER_FLAG_CHANNELS; } else { - name = LocaleController.getString("FilterBots", R.string.FilterBots); + name = LocaleController.getString(R.string.FilterBots); object = "bots"; flag = MessagesController.DIALOG_FILTER_FLAG_BOTS; } } else { if (position == 1) { - name = LocaleController.getString("FilterMuted", R.string.FilterMuted); + name = LocaleController.getString(R.string.FilterMuted); object = "muted"; flag = MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED; } else if (position == 2) { - name = LocaleController.getString("FilterRead", R.string.FilterRead); + name = LocaleController.getString(R.string.FilterRead); object = "read"; flag = MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_READ; } else { - name = LocaleController.getString("FilterArchived", R.string.FilterArchived); + name = LocaleController.getString(R.string.FilterArchived); object = "archived"; flag = MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_ARCHIVED; } @@ -1489,9 +1489,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 2: { GraySectionCell cell = (GraySectionCell) holder.itemView; if (position == 0 && !noChatTypes) { - cell.setText(LocaleController.getString("FilterChatTypes", R.string.FilterChatTypes)); + cell.setText(LocaleController.getString(R.string.FilterChatTypes)); } else { - cell.setText(LocaleController.getString("FilterChats", R.string.FilterChats)); + cell.setText(LocaleController.getString(R.string.FilterChats)); } break; } @@ -1591,10 +1591,10 @@ public void searchDialogs(final String query) { names[0] = ContactsController.formatName(user.first_name, user.last_name).toLowerCase(); username = UserObject.getPublicUsername(user); if (UserObject.isReplyUser(user)) { - names[2] = LocaleController.getString("RepliesTitle", R.string.RepliesTitle).toLowerCase(); + names[2] = LocaleController.getString(R.string.RepliesTitle).toLowerCase(); } else if (UserObject.isUserSelf(user)) { if (!allowSelf) continue; - names[2] = LocaleController.getString("SavedMessages", R.string.SavedMessages).toLowerCase(); + names[2] = LocaleController.getString(R.string.SavedMessages).toLowerCase(); } else if (user.bot && !allowBots) { continue; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/VoIPFragment.java b/TMessagesProj/src/main/java/org/telegram/ui/VoIPFragment.java index 228bdaca1a..eae08d18b4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/VoIPFragment.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/VoIPFragment.java @@ -15,6 +15,7 @@ import android.annotation.TargetApi; import android.app.Activity; import android.app.KeyguardManager; +import android.app.Service; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; @@ -76,7 +77,9 @@ import org.telegram.messenger.voip.EncryptionKeyEmojifier; import org.telegram.messenger.voip.Instance; import org.telegram.messenger.voip.VideoCapturerDevice; +import org.telegram.messenger.voip.VoIPPreNotificationService; import org.telegram.messenger.voip.VoIPService; +import org.telegram.messenger.voip.VoIPServiceState; import org.telegram.messenger.voip.VoipAudioManager; import org.telegram.tgnet.TLRPC; import org.telegram.ui.ActionBar.ActionBar; @@ -287,6 +290,9 @@ public static void show(Activity activity, boolean overlay, int account) { instance.callingUserTextureView.renderer.release(); instance.currentUserTextureView.renderer.release(); instance.callingUserMiniTextureRenderer.release(); + if (instance.windowView != null) { + instance.windowView.finishImmediate(); + } instance.destroy(); } instance = null; @@ -295,7 +301,10 @@ public static void show(Activity activity, boolean overlay, int account) { return; } boolean transitionFromPip = VoIPPiPView.getInstance() != null; - if (VoIPService.getSharedInstance() == null || VoIPService.getSharedInstance().getUser() == null) { + if (VoIPService.getSharedState() == null) { + return; + } + if (VoIPService.getSharedState().getUser() == null) { return; } VoIPFragment fragment = new VoIPFragment(account); @@ -318,7 +327,7 @@ public boolean dispatchKeyEvent(KeyEvent event) { } if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || keyCode == KeyEvent.KEYCODE_VOLUME_UP) { if (fragment.currentState == VoIPService.STATE_WAITING_INCOMING) { - final VoIPService service = VoIPService.getSharedInstance(); + final VoIPServiceState service = VoIPService.getSharedState(); if (service != null) { service.stopRinging(); return true; @@ -484,11 +493,15 @@ private void setInsets(WindowInsets windowInsets) { public VoIPFragment(int account) { currentAccount = account; currentUser = MessagesController.getInstance(currentAccount).getUser(UserConfig.getInstance(currentAccount).getClientUserId()); - callingUser = VoIPService.getSharedInstance().getUser(); - VoIPService.getSharedInstance().registerStateListener(this); - isOutgoing = VoIPService.getSharedInstance().isOutgoing(); + final VoIPServiceState state = VoIPService.getSharedState(); + if (state == null) return; + callingUser = state.getUser(); + if (VoIPService.getSharedInstance() != null) { + VoIPService.getSharedInstance().registerStateListener(this); + } + isOutgoing = state.isOutgoing(); previousState = -1; - currentState = VoIPService.getSharedInstance().getCallState(); + currentState = state.getCallState(); NotificationCenter.getGlobalInstance().addObserver(this, NotificationCenter.webRtcSpeakerAmplitudeEvent); NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.voipServiceCreated); NotificationCenter.getGlobalInstance().addObserver(this, NotificationCenter.emojiLoaded); @@ -497,9 +510,8 @@ public VoIPFragment(int account) { } private void destroy() { - final VoIPService service = VoIPService.getSharedInstance(); - if (service != null) { - service.unregisterStateListener(this); + if (VoIPService.getSharedInstance() != null) { + VoIPService.getSharedInstance().unregisterStateListener(this); } NotificationCenter.getGlobalInstance().removeObserver(this, NotificationCenter.webRtcSpeakerAmplitudeEvent); NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.voipServiceCreated); @@ -830,8 +842,8 @@ public void onAllSizesReady() { callingUserMiniTextureRenderer.setFpsReduction(30); callingUserMiniTextureRenderer.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT); - View backgroundView = new View(context); - backgroundView.setBackgroundColor(0xff1b1f23); +// View backgroundView = new View(context); +// backgroundView.setBackgroundColor(0xff1b1f23); //callingUserMiniFloatingLayout.addView(backgroundView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); callingUserMiniFloatingLayout.addView(callingUserMiniTextureRenderer, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER)); callingUserMiniFloatingLayout.setOnTapListener(view -> { @@ -869,7 +881,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { emojiLayout.setOrientation(LinearLayout.HORIZONTAL); emojiLayout.setPadding(0, 0, 0, AndroidUtilities.dp(30)); emojiLayout.setClipToPadding(false); - emojiLayout.setContentDescription(LocaleController.getString("VoipHintEncryptionKey", R.string.VoipHintEncryptionKey)); + emojiLayout.setContentDescription(LocaleController.getString(R.string.VoipHintEncryptionKey)); emojiLayout.setOnClickListener(view -> { if (System.currentTimeMillis() - lastContentTapTime < 500) { return; @@ -899,7 +911,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { emojiRationalLayout.setOrientation(LinearLayout.VERTICAL); emojiRationalTopTextView = new TextView(context); - emojiRationalTopTextView.setText(LocaleController.getString("VoipCallEncryptionEndToEnd", R.string.VoipCallEncryptionEndToEnd)); + emojiRationalTopTextView.setText(LocaleController.getString(R.string.VoipCallEncryptionEndToEnd)); emojiRationalTopTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15); emojiRationalTopTextView.setTypeface(AndroidUtilities.bold()); emojiRationalTopTextView.setTextColor(Color.WHITE); @@ -934,16 +946,16 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto @Override public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); - final VoIPService service = VoIPService.getSharedInstance(); + final VoIPServiceState service = VoIPService.getSharedState(); final CharSequence callingUserTitleText = callingUserTitle.getText(); if (service != null && !TextUtils.isEmpty(callingUserTitleText)) { final StringBuilder builder = new StringBuilder(callingUserTitleText); builder.append(", "); - if (service.privateCall != null && service.privateCall.video) { - builder.append(LocaleController.getString("VoipInVideoCallBranding", R.string.VoipInVideoCallBranding)); + if (service.getPrivateCall() != null && service.getPrivateCall().video) { + builder.append(LocaleController.getString(R.string.VoipInVideoCallBranding)); } else { - builder.append(LocaleController.getString("VoipInCallBranding", R.string.VoipInCallBranding)); + builder.append(LocaleController.getString(R.string.VoipInCallBranding)); } final long callDuration = service.getCallDuration(); @@ -1055,11 +1067,11 @@ public void onAccept() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && activity.checkSelfPermission(Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) { activity.requestPermissions(new String[]{Manifest.permission.RECORD_AUDIO}, 101); } else { - if (VoIPService.getSharedInstance() != null) { + if (VoIPService.getSharedState() != null) { runAcceptCallAnimation(() -> { - if (VoIPService.getSharedInstance() != null) { - VoIPService.getSharedInstance().acceptIncomingCall(); - if (currentUserIsVideo) { + if (VoIPService.getSharedState() != null) { + VoIPService.getSharedState().acceptIncomingCall(); + if (currentUserIsVideo && VoIPService.getSharedInstance() != null) { VoIPService.getSharedInstance().requestVideoCall(false); } } @@ -1074,8 +1086,10 @@ public void onDecline() { if (currentState == VoIPService.STATE_BUSY) { windowView.finish(); } else { - if (VoIPService.getSharedInstance() != null) { - VoIPService.getSharedInstance().declineIncomingCall(); + if (VoIPService.getSharedState() != null) { + VoIPService.getSharedState().declineIncomingCall(); + } else { + windowView.finish(); } } } @@ -1091,7 +1105,7 @@ public void onDecline() { backIcon.setBackground(Theme.createSelectorDrawable(ColorUtils.setAlphaComponent(Color.WHITE, (int) (255 * 0.3f)))); backIcon.setImageResource(R.drawable.msg_call_minimize_shadow); backIcon.setPadding(AndroidUtilities.dp(16), AndroidUtilities.dp(16), AndroidUtilities.dp(16), AndroidUtilities.dp(16)); - backIcon.setContentDescription(LocaleController.getString("Back", R.string.Back)); + backIcon.setContentDescription(LocaleController.getString(R.string.Back)); frameLayout.addView(backIcon, LayoutHelper.createFrame(56, 56, Gravity.TOP | Gravity.LEFT)); speakerPhoneIcon = new ImageView(context) { @@ -1106,7 +1120,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { } } }; - speakerPhoneIcon.setContentDescription(LocaleController.getString("VoipSpeaker", R.string.VoipSpeaker)); + speakerPhoneIcon.setContentDescription(LocaleController.getString(R.string.VoipSpeaker)); speakerPhoneIcon.setBackground(Theme.createSelectorDrawable(ColorUtils.setAlphaComponent(Color.WHITE, (int) (255 * 0.3f)))); speakerPhoneIcon.setPadding(AndroidUtilities.dp(12), AndroidUtilities.dp(12), AndroidUtilities.dp(12), AndroidUtilities.dp(12)); frameLayout.addView(speakerPhoneIcon, LayoutHelper.createFrame(56, 56, Gravity.TOP | Gravity.RIGHT)); @@ -1157,7 +1171,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { .useScale(true) .setInnerPadding(10, 6, 10, 6) .setRounding(8); - tapToVideoTooltip.setText(LocaleController.getString("TapToTurnCamera", R.string.TapToTurnCamera)); + tapToVideoTooltip.setText(LocaleController.getString(R.string.TapToTurnCamera)); frameLayout.addView(tapToVideoTooltip, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM, 19, 0, 19, 0)); encryptionTooltip = new VoIpHintView(context, HintView2.DIRECTION_TOP, backgroundProvider, false) @@ -1169,7 +1183,7 @@ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { .useScale(true) .setInnerPadding(10, 6, 10, 6) .setRounding(8); - encryptionTooltip.setText(LocaleController.getString("VoipHintEncryptionKey", R.string.VoipHintEncryptionKey)); + encryptionTooltip.setText(LocaleController.getString(R.string.VoipHintEncryptionKey)); frameLayout.addView(encryptionTooltip, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL, 0, 0, 0, 0)); updateViewState(); @@ -1203,7 +1217,7 @@ private void runAcceptCallAnimation(final Runnable after) { acceptDeclineView.getLocationOnScreen(loc); acceptDeclineView.stopAnimations(); //callingUserPhotoView.switchToCallConnected(loc[0] + AndroidUtilities.dp(82), loc[1] + AndroidUtilities.dp(74)); - bottomEndCallBtn.setData(R.drawable.calls_decline, Color.WHITE, 0xFFF01D2C, LocaleController.getString("VoipEndCall2", R.string.VoipEndCall2), false, false); + bottomEndCallBtn.setData(R.drawable.calls_decline, Color.WHITE, 0xFFF01D2C, LocaleController.getString(R.string.VoipEndCall2), false, false); bottomSpeakerBtn.setType(VoIpSwitchLayout.Type.SPEAKER, false); bottomMuteBtn.setType(VoIpSwitchLayout.Type.MICRO, false); bottomVideoBtn.setType(VoIpSwitchLayout.Type.VIDEO, true); @@ -1687,6 +1701,7 @@ private void updateViewState() { boolean showTimer = false; boolean showReconnecting = false; int statusLayoutOffset = 0; + final VoIPServiceState state = VoIPService.getSharedState(); final VoIPService service = VoIPService.getSharedInstance(); switch (currentState) { @@ -1694,39 +1709,39 @@ private void updateViewState() { showAcceptDeclineView = true; lockOnScreen = false; acceptDeclineView.setRetryMod(false); - if (service != null && service.privateCall != null && service.privateCall.video) { - statusTextView.setText(LocaleController.getString("VoipInVideoCallBranding", R.string.VoipInVideoCallBranding), false, animated); + if (state != null && state.getPrivateCall() != null && state.getPrivateCall().video) { + statusTextView.setText(LocaleController.getString(R.string.VoipInVideoCallBranding), false, animated); acceptDeclineView.setTranslationY(-AndroidUtilities.dp(60)); } else { - statusTextView.setText(LocaleController.getString("VoipInCallBranding", R.string.VoipInCallBranding), false, animated); + statusTextView.setText(LocaleController.getString(R.string.VoipInCallBranding), false, animated); acceptDeclineView.setTranslationY(0); } break; case VoIPService.STATE_WAIT_INIT: case VoIPService.STATE_WAIT_INIT_ACK: - statusTextView.setText(LocaleController.getString("VoipConnecting", R.string.VoipConnecting), true, animated); + statusTextView.setText(LocaleController.getString(R.string.VoipConnecting), true, animated); break; case VoIPService.STATE_EXCHANGING_KEYS: if (previousState != VoIPService.STATE_EXCHANGING_KEYS) { - statusTextView.setText(LocaleController.getString("VoipExchangingKeys", R.string.VoipExchangingKeys), true, animated); + statusTextView.setText(LocaleController.getString(R.string.VoipExchangingKeys), true, animated); } break; case VoIPService.STATE_WAITING: - statusTextView.setText(LocaleController.getString("VoipWaiting", R.string.VoipWaiting), true, animated); + statusTextView.setText(LocaleController.getString(R.string.VoipWaiting), true, animated); break; case VoIPService.STATE_RINGING: if (previousState != VoIPService.STATE_RINGING) { - statusTextView.setText(LocaleController.getString("VoipRinging", R.string.VoipRinging), true, animated); + statusTextView.setText(LocaleController.getString(R.string.VoipRinging), true, animated); } break; case VoIPService.STATE_REQUESTING: - statusTextView.setText(LocaleController.getString("VoipRequesting", R.string.VoipRequesting), true, animated); + statusTextView.setText(LocaleController.getString(R.string.VoipRequesting), true, animated); break; case VoIPService.STATE_HANGING_UP: break; case VoIPService.STATE_BUSY: showAcceptDeclineView = true; - statusTextView.setText(LocaleController.getString("VoipBusy", R.string.VoipBusy), false, animated); + statusTextView.setText(LocaleController.getString(R.string.VoipBusy), false, animated); acceptDeclineView.setRetryMod(true); currentUserIsVideo = false; callingUserIsVideo = false; @@ -1737,7 +1752,7 @@ private void updateViewState() { if (currentState == VoIPService.STATE_RECONNECTING) { showReconnecting = wasEstablished; if (!wasEstablished && previousState != VoIPService.STATE_RECONNECTING) { - statusTextView.setText(LocaleController.getString("VoipConnecting", R.string.VoipConnecting), true, animated); + statusTextView.setText(LocaleController.getString(R.string.VoipConnecting), true, animated); } } else { wasEstablished = true; @@ -1801,7 +1816,7 @@ private void updateViewState() { callingUserTitle.animate().alpha(0f).setDuration(70).setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { - callingUserTitle.setText(LocaleController.getString("VoipCallEnded", R.string.VoipCallEnded)); + callingUserTitle.setText(LocaleController.getString(R.string.VoipCallEnded)); callingUserTitle.animate().alpha(1f).setDuration(70).setListener(null).start(); } }).start(); @@ -1826,7 +1841,7 @@ public void onAnimationEnd(Animator animation) { } break; case VoIPService.STATE_FAILED: - statusTextView.setText(LocaleController.getString("VoipFailed", R.string.VoipFailed), false, animated); + statusTextView.setText(LocaleController.getString(R.string.VoipFailed), false, animated); final VoIPService voipService = VoIPService.getSharedInstance(); final String lastError = voipService != null ? voipService.getLastError() : Instance.ERROR_UNKNOWN; if (!TextUtils.equals(lastError, Instance.ERROR_UNKNOWN)) { @@ -1840,10 +1855,10 @@ public void onAnimationEnd(Animator animation) { final String message = LocaleController.formatString("VoipPeerVideoOutdated", R.string.VoipPeerVideoOutdated, name); boolean[] callAgain = new boolean[1]; AlertDialog dlg = new DarkAlertDialog.Builder(activity) - .setTitle(LocaleController.getString("VoipFailed", R.string.VoipFailed)) + .setTitle(LocaleController.getString(R.string.VoipFailed)) .setMessage(AndroidUtilities.replaceTags(message)) - .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialogInterface, i) -> windowView.finish()) - .setPositiveButton(LocaleController.getString("VoipPeerVideoOutdatedMakeVoice", R.string.VoipPeerVideoOutdatedMakeVoice), (dialogInterface, i) -> { + .setNegativeButton(LocaleController.getString(R.string.Cancel), (dialogInterface, i) -> windowView.finish()) + .setPositiveButton(LocaleController.getString(R.string.VoipPeerVideoOutdatedMakeVoice), (dialogInterface, i) -> { callAgain[0] = true; currentState = VoIPService.STATE_BUSY; Intent intent = new Intent(activity, VoIPService.class); @@ -1880,7 +1895,7 @@ public void onAnimationEnd(Animator animation) { } else if (TextUtils.equals(lastError, Instance.ERROR_LOCALIZED)) { windowView.finish(); } else if (TextUtils.equals(lastError, Instance.ERROR_CONNECTION_SERVICE)) { - showErrorDialog(LocaleController.getString("VoipErrorUnknown", R.string.VoipErrorUnknown)); + showErrorDialog(LocaleController.getString(R.string.VoipErrorUnknown)); } else { AndroidUtilities.runOnUIThread(() -> windowView.finish(), 1000); } @@ -2546,7 +2561,7 @@ public Animator onDisappear(ViewGroup sceneRoot, View view, TransitionValues sta setVideoAction(bottomVideoBtn, service, false); setMicrohoneAction(bottomMuteBtn, service, animated); - bottomEndCallBtn.setData(R.drawable.calls_decline, Color.WHITE, 0xFFF01D2C, LocaleController.getString("VoipEndCall2", R.string.VoipEndCall2), false, animated); + bottomEndCallBtn.setData(R.drawable.calls_decline, Color.WHITE, 0xFFF01D2C, LocaleController.getString(R.string.VoipEndCall2), false, animated); bottomEndCallBtn.setOnClickListener(view -> { if (VoIPService.getSharedInstance() != null) { AndroidUtilities.cancelRunOnUIThread(hideUIRunnable); @@ -2587,9 +2602,9 @@ private void setMicrohoneAction(VoIpSwitchLayout bottomButton, VoIPService servi if (accessibilityManager.isTouchExplorationEnabled()) { final String text; if (micMute) { - text = LocaleController.getString("AccDescrVoipMicOff", R.string.AccDescrVoipMicOff); + text = LocaleController.getString(R.string.AccDescrVoipMicOff); } else { - text = LocaleController.getString("AccDescrVoipMicOn", R.string.AccDescrVoipMicOn); + text = LocaleController.getString(R.string.AccDescrVoipMicOn); } view.announceForAccessibility(text); } @@ -2625,12 +2640,12 @@ private void setVideoAction(VoIpSwitchLayout bottomButton, VoIPService service, } else { if (Build.VERSION.SDK_INT < 21 && service.privateCall != null && !service.privateCall.video && !callingUserIsVideo && !service.sharedUIParams.cameraAlertWasShowed) { AlertDialog.Builder builder = new AlertDialog.Builder(activity); - builder.setMessage(LocaleController.getString("VoipSwitchToVideoCall", R.string.VoipSwitchToVideoCall)); - builder.setPositiveButton(LocaleController.getString("VoipSwitch", R.string.VoipSwitch), (dialogInterface, i) -> { + builder.setMessage(LocaleController.getString(R.string.VoipSwitchToVideoCall)); + builder.setPositiveButton(LocaleController.getString(R.string.VoipSwitch), (dialogInterface, i) -> { service.sharedUIParams.cameraAlertWasShowed = true; toggleCameraInput(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.create().show(); } else { toggleCameraInput(); @@ -2708,9 +2723,9 @@ private void setFrontalCameraAction(VoIpSwitchLayout bottomButton, VoIPService s if (accessibilityManager.isTouchExplorationEnabled()) { final String text; if (service.isFrontFaceCamera()) { - text = LocaleController.getString("AccDescrVoipCamSwitchedToBack", R.string.AccDescrVoipCamSwitchedToBack); + text = LocaleController.getString(R.string.AccDescrVoipCamSwitchedToBack); } else { - text = LocaleController.getString("AccDescrVoipCamSwitchedToFront", R.string.AccDescrVoipCamSwitchedToFront); + text = LocaleController.getString(R.string.AccDescrVoipCamSwitchedToFront); } view.announceForAccessibility(text); } @@ -2734,9 +2749,9 @@ private void toggleCameraInput() { if (accessibilityManager.isTouchExplorationEnabled()) { final String text; if (!currentUserIsVideo) { - text = LocaleController.getString("AccDescrVoipCamOn", R.string.AccDescrVoipCamOn); + text = LocaleController.getString(R.string.AccDescrVoipCamOn); } else { - text = LocaleController.getString("AccDescrVoipCamOff", R.string.AccDescrVoipCamOff); + text = LocaleController.getString(R.string.AccDescrVoipCamOff); } fragmentView.announceForAccessibility(text); } @@ -2838,26 +2853,28 @@ public static void onRequestPermissionsResult(int requestCode, String[] permissi @TargetApi(Build.VERSION_CODES.M) private void onRequestPermissionsResultInternal(int requestCode, String[] permissions, int[] grantResults) { if (requestCode == 101) { - if (VoIPService.getSharedInstance() == null) { + if (VoIPService.getSharedState() == null) { windowView.finish(); return; } if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { runAcceptCallAnimation(() -> { - if (VoIPService.getSharedInstance() != null) { - VoIPService.getSharedInstance().acceptIncomingCall(); + if (VoIPService.getSharedState() != null) { + VoIPService.getSharedState().acceptIncomingCall(); } }); } else { if (!activity.shouldShowRequestPermissionRationale(Manifest.permission.RECORD_AUDIO)) { - VoIPService.getSharedInstance().declineIncomingCall(); + if (VoIPService.getSharedState() != null) { + VoIPService.getSharedState().declineIncomingCall(); + } VoIPHelper.permissionDenied(activity, () -> windowView.finish(), requestCode); return; } } } if (requestCode == 102) { - if (VoIPService.getSharedInstance() == null) { + if (VoIPService.getSharedState() == null) { windowView.finish(); return; } @@ -2932,7 +2949,7 @@ public void onResumeInternal() { service.setVideoState(false, Instance.VIDEO_STATE_ACTIVE); } updateViewState(); - } else { + } else if (VoIPService.getSharedState() == null) { windowView.finish(); } @@ -2944,9 +2961,9 @@ private void showErrorDialog(CharSequence message) { return; } AlertDialog dlg = new DarkAlertDialog.Builder(activity) - .setTitle(LocaleController.getString("VoipFailed", R.string.VoipFailed)) + .setTitle(LocaleController.getString(R.string.VoipFailed)) .setMessage(message) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), null) + .setPositiveButton(LocaleController.getString(R.string.OK), null) .show(); dlg.setCanceledOnTouchOutside(true); dlg.setOnDismissListener(dialog -> windowView.finish()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/VoIPPermissionActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/VoIPPermissionActivity.java index a223f50177..ae02f6b550 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/VoIPPermissionActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/VoIPPermissionActivity.java @@ -8,6 +8,7 @@ import android.os.Bundle; import org.telegram.messenger.FileLog; +import org.telegram.messenger.voip.VoIPPreNotificationService; import org.telegram.messenger.voip.VoIPService; import org.telegram.ui.Components.voip.VoIPHelper; @@ -19,8 +20,10 @@ public class VoIPPermissionActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - VoIPService service = VoIPService.getSharedInstance(); - boolean isVideoCall = service != null && service.privateCall != null && service.privateCall.video; + final VoIPService service = VoIPService.getSharedInstance(); + final boolean isVideoCall = service != null ? + service.privateCall != null && service.privateCall.video : + VoIPPreNotificationService.isVideo(); ArrayList permissions = new ArrayList<>(); if (checkSelfPermission(Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) { @@ -51,6 +54,8 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in if (grantResults.length > 0 && allGranted) { if (VoIPService.getSharedInstance() != null) { VoIPService.getSharedInstance().acceptIncomingCall(); + } else { + VoIPPreNotificationService.answer(this); } finish(); startActivity(new Intent(this, LaunchActivity.class).setAction("voip")); @@ -58,6 +63,8 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in if (!shouldShowRequestPermissionRationale(Manifest.permission.RECORD_AUDIO)) { if (VoIPService.getSharedInstance() != null) { VoIPService.getSharedInstance().declineIncomingCall(); + } else { + VoIPPreNotificationService.decline(this, VoIPService.DISCARD_REASON_HANGUP); } VoIPHelper.permissionDenied(this, this::finish, requestCode); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/WallpapersListActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/WallpapersListActivity.java index 1dcf4764a3..479ff2968f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/WallpapersListActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/WallpapersListActivity.java @@ -523,7 +523,7 @@ public void onItemClick(int id) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); builder.setTitle(LocaleController.formatPluralString("DeleteBackground", selectedWallPapers.size())); builder.setMessage(LocaleController.formatString("DeleteChatBackgroundsAlert", R.string.DeleteChatBackgroundsAlert)); - builder.setPositiveButton(LocaleController.getString("Delete", R.string.Delete), (dialogInterface, i) -> { + builder.setPositiveButton(LocaleController.getString(R.string.Delete), (dialogInterface, i) -> { progressDialog = new AlertDialog(getParentActivity(), AlertDialog.ALERT_TYPE_SPINNER); progressDialog.setCanCancel(false); progressDialog.show(); @@ -582,7 +582,7 @@ public void onItemClick(int id) { actionBar.hideActionMode(); actionBar.closeSearchField(); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog alertDialog = builder.create(); showDialog(alertDialog); TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -594,7 +594,7 @@ public void onItemClick(int id) { args.putBoolean("onlySelect", true); args.putInt("dialogsType", DialogsActivity.DIALOGS_TYPE_FORWARD); DialogsActivity fragment = new DialogsActivity(args); - fragment.setDelegate((fragment1, dids, message, param, topicsFragment) -> { + fragment.setDelegate((fragment1, dids, message, param, notify, scheduleDate, topicsFragment) -> { StringBuilder fmessage = new StringBuilder(); for (int b = 0; b < selectedWallPapers.size(); b++) { Object object = selectedWallPapers.valueAt(b); @@ -684,10 +684,10 @@ public void onTextChanged(EditText editText) { @Override public void onCaptionCleared() { searchAdapter.clearColor(); - searchItem.setSearchFieldHint(LocaleController.getString("SearchBackgrounds", R.string.SearchBackgrounds)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.SearchBackgrounds)); } }); - searchItem.setSearchFieldHint(LocaleController.getString("SearchBackgrounds", R.string.SearchBackgrounds)); + searchItem.setSearchFieldHint(LocaleController.getString(R.string.SearchBackgrounds)); final ActionBarMenu actionMode = actionBar.createActionMode(false, null); actionMode.setBackgroundColor(Theme.getColor(Theme.key_actionBarDefault)); @@ -701,8 +701,8 @@ public void onCaptionCleared() { selectedMessagesCountTextView.setOnTouchListener((v, event) -> true); actionMode.addView(selectedMessagesCountTextView, LayoutHelper.createLinear(0, LayoutHelper.MATCH_PARENT, 1.0f, 65, 0, 0, 0)); - actionModeViews.add(actionMode.addItemWithWidth(forward, R.drawable.msg_forward_noquote, AndroidUtilities.dp(54), LocaleController.getString("Forward", R.string.Forward))); - actionModeViews.add(actionMode.addItemWithWidth(delete, R.drawable.msg_delete, AndroidUtilities.dp(54), LocaleController.getString("Delete", R.string.Delete))); + actionModeViews.add(actionMode.addItemWithWidth(forward, R.drawable.msg_forward, AndroidUtilities.dp(54), LocaleController.getString(R.string.Forward))); + actionModeViews.add(actionMode.addItemWithWidth(delete, R.drawable.msg_delete, AndroidUtilities.dp(54), LocaleController.getString(R.string.Delete))); selectedWallPapers.clear(); } @@ -774,9 +774,9 @@ public boolean supportsPredictiveItemAnimations() { presentFragment(activity); } else if (position == resetRow) { AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("ResetChatBackgroundsAlertTitle", R.string.ResetChatBackgroundsAlertTitle)); - builder.setMessage(LocaleController.getString("ResetChatBackgroundsAlert", R.string.ResetChatBackgroundsAlert)); - builder.setPositiveButton(LocaleController.getString("Reset", R.string.Reset), (dialogInterface, i) -> { + builder.setTitle(LocaleController.getString(R.string.ResetChatBackgroundsAlertTitle)); + builder.setMessage(LocaleController.getString(R.string.ResetChatBackgroundsAlert)); + builder.setPositiveButton(LocaleController.getString(R.string.Reset), (dialogInterface, i) -> { if (actionBar.isActionModeShowed()) { selectedWallPapers.clear(); actionBar.hideActionMode(); @@ -788,7 +788,7 @@ public boolean supportsPredictiveItemAnimations() { TLRPC.TL_account_resetWallPapers req = new TLRPC.TL_account_resetWallPapers(); ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> loadWallpapers(false))); }); - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); AlertDialog dialog = builder.create(); showDialog(dialog); TextView button = (TextView) dialog.getButton(DialogInterface.BUTTON_POSITIVE); @@ -826,7 +826,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { searchEmptyView.setVisibility(View.GONE); searchEmptyView.setShowAtCenter(true); searchEmptyView.setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite)); - searchEmptyView.setText(LocaleController.getString("NoResult", R.string.NoResult)); + searchEmptyView.setText(LocaleController.getString(R.string.NoResult)); listView.setEmptyView(searchEmptyView); frameLayout.addView(searchEmptyView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); @@ -1769,7 +1769,7 @@ public boolean supportsPredictiveItemAnimations() { horizontalListView.setLayoutManager(layoutManager); horizontalListView.setAdapter(new CategoryAdapterRecycler()); horizontalListView.setOnItemClickListener((view1, position) -> { - String color = LocaleController.getString("BackgroundSearchColor", R.string.BackgroundSearchColor); + String color = LocaleController.getString(R.string.BackgroundSearchColor); Spannable spannable = new SpannableString(color + " " + LocaleController.getString(searchColorsNames[position], searchColorsNamesR[position])); spannable.setSpan(new ForegroundColorSpan(Theme.getColor(Theme.key_actionBarDefaultSubtitle)), color.length(), spannable.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); searchItem.setSearchFieldCaption(spannable); @@ -1810,7 +1810,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } case 2: { GraySectionCell cell = (GraySectionCell) holder.itemView; - cell.setText(LocaleController.getString("SearchByColor", R.string.SearchByColor)); + cell.setText(LocaleController.getString(R.string.SearchByColor)); break; } } @@ -1896,11 +1896,11 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 0: { TextCell textCell = (TextCell) holder.itemView; if (position == uploadImageRow) { - textCell.setTextAndIcon(LocaleController.getString("SelectFromGallery", R.string.SelectFromGallery), R.drawable.msg_photos, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.SelectFromGallery), R.drawable.msg_photos, true); } else if (position == setColorRow) { - textCell.setTextAndIcon(LocaleController.getString("SetColor", R.string.SetColor), R.drawable.msg_palette, true); + textCell.setTextAndIcon(LocaleController.getString(R.string.SetColor), R.drawable.msg_palette, true); } else if (position == resetRow) { - textCell.setText(LocaleController.getString("ResetChatBackgrounds", R.string.ResetChatBackgrounds), false); + textCell.setText(LocaleController.getString(R.string.ResetChatBackgrounds), false); } else if (position == galleryRow) { textCell.setTextAndIcon("Choose from gallery", R.drawable.msg_background, false); textCell.setLockLevel(false, 10); @@ -1910,7 +1910,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case 3: { TextInfoPrivacyCell cell = (TextInfoPrivacyCell) holder.itemView; if (position == resetInfoRow) { - cell.setText(LocaleController.getString("ResetChatBackgroundsInfo", R.string.ResetChatBackgroundsInfo)); + cell.setText(LocaleController.getString(R.string.ResetChatBackgroundsInfo)); } else if (position == galleryHintRow) { cell.setText("Upload your own background for the channel."); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/WebAppDisclaimerAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/WebAppDisclaimerAlert.java index 9bdda36ff8..16e54d1893 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/WebAppDisclaimerAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/WebAppDisclaimerAlert.java @@ -36,7 +36,7 @@ public static void show(Context context, Consumer consumer, TLRPC.User WebAppDisclaimerAlert alert = new WebAppDisclaimerAlert(); AlertDialog.Builder alertDialog = new AlertDialog.Builder(context); - alertDialog.setTitle(LocaleController.getString("TermsOfUse", R.string.TermsOfUse)); + alertDialog.setTitle(LocaleController.getString(R.string.TermsOfUse)); LinearLayout linearLayout = new LinearLayout(context); linearLayout.setOrientation(LinearLayout.VERTICAL); @@ -64,17 +64,17 @@ public static void show(Context context, Consumer consumer, TLRPC.User // } final boolean[] dismissing = new boolean[1]; - textView.setText(AndroidUtilities.replaceTags(LocaleController.getString("BotWebAppDisclaimerSubtitle", R.string.BotWebAppDisclaimerSubtitle))); - alert.cell.setText(AndroidUtilities.replaceSingleTag(LocaleController.getString("BotWebAppDisclaimerCheck", R.string.BotWebAppDisclaimerCheck), () -> { - Browser.openUrl(context, LocaleController.getString("WebAppDisclaimerUrl", R.string.WebAppDisclaimerUrl)); + textView.setText(AndroidUtilities.replaceTags(LocaleController.getString(R.string.BotWebAppDisclaimerSubtitle))); + alert.cell.setText(AndroidUtilities.replaceSingleTag(LocaleController.getString(R.string.BotWebAppDisclaimerCheck), () -> { + Browser.openUrl(context, LocaleController.getString(R.string.WebAppDisclaimerUrl)); }), "", false, false); alertDialog.setView(linearLayout); - alertDialog.setPositiveButton(LocaleController.getString("Continue", R.string.Continue), (dialog, which) -> { + alertDialog.setPositiveButton(LocaleController.getString(R.string.Continue), (dialog, which) -> { consumer.accept(true); dismissing[0] = true; dialog.dismiss(); }); - alertDialog.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialog, which) -> { + alertDialog.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialog, which) -> { dialog.dismiss(); }); alert.alert = alertDialog.create(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/WebviewActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/WebviewActivity.java index 109877e8b3..adbf3aa502 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/WebviewActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/WebviewActivity.java @@ -179,7 +179,7 @@ public void onItemClick(int id) { progressItem = menu.addItemWithWidth(share, R.drawable.share, AndroidUtilities.dp(54)); if (type == TYPE_GAME) { ActionBarMenuItem menuItem = menu.addItem(0, R.drawable.ic_ab_other); - menuItem.addSubItem(open_in, R.drawable.msg_openin, LocaleController.getString("OpenInExternalApp", R.string.OpenInExternalApp)); + menuItem.addSubItem(open_in, R.drawable.msg_openin, LocaleController.getString(R.string.OpenInExternalApp)); actionBar.setTitle(currentGame); actionBar.setSubtitle("@" + currentBot); @@ -197,7 +197,7 @@ public void onItemClick(int id) { actionBar.setItemsBackgroundColor(Theme.getColor(Theme.key_player_actionBarSelector), false); actionBar.setTitleColor(Theme.getColor(Theme.key_player_actionBarTitle)); actionBar.setSubtitleColor(Theme.getColor(Theme.key_player_actionBarSubtitle)); - actionBar.setTitle(LocaleController.getString("Statistics", R.string.Statistics)); + actionBar.setTitle(LocaleController.getString(R.string.Statistics)); progressView = new ContextProgressView(context, 3); progressItem.addView(progressView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/bots/BotButtons.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotButtons.java new file mode 100644 index 0000000000..d633c18403 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotButtons.java @@ -0,0 +1,357 @@ +package org.telegram.ui.bots; + +import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.AndroidUtilities.lerp; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.RectF; +import android.graphics.drawable.Drawable; +import android.os.Build; +import android.util.Log; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.MotionEvent; +import android.widget.FrameLayout; + +import androidx.annotation.NonNull; + +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.Utilities; +import org.telegram.ui.ActionBar.Theme; +import org.telegram.ui.Components.AnimatedColor; +import org.telegram.ui.Components.AnimatedFloat; +import org.telegram.ui.Components.AnimatedTextView; +import org.telegram.ui.Components.ButtonBounce; +import org.telegram.ui.Components.CircularProgressDrawable; +import org.telegram.ui.Components.CubicBezierInterpolator; +import org.telegram.ui.Components.voip.CellFlickerDrawable; + +public class BotButtons extends FrameLayout { + + public static class ButtonState { + public boolean visible; + public boolean active; + public boolean progressVisible; + public boolean shineEffect; + public String text; + public int color; + public int textColor; + + public String position; + + public static ButtonState of(boolean visible, boolean active, boolean progress, boolean shine, String text, int color, int textColor) { + return of(visible, active, progress, shine, text, color, textColor, null); + } + + public static ButtonState of(boolean visible, boolean active, boolean progress, boolean shine, String text, int color, int textColor, String position) { + ButtonState state = new ButtonState(); + state.visible = visible; + state.active = active; + state.progressVisible = progress; + state.shineEffect = shine; + state.text = text; + state.color = color; + state.textColor = textColor; + state.position = position; + return state; + } + } + + public static class ButtonsState { + public ButtonState main = new ButtonState(); + public ButtonState secondary = new ButtonState(); + public int backgroundColor; + } + + private class Button { + public final RectF bounds = new RectF(); + + public final AnimatedFloat alpha = new AnimatedFloat(BotButtons.this, 0, 320, CubicBezierInterpolator.EASE_OUT_QUINT); + public final AnimatedFloat x = new AnimatedFloat(BotButtons.this, 0, 320, CubicBezierInterpolator.EASE_OUT_QUINT); + public final AnimatedFloat y = new AnimatedFloat(BotButtons.this, 0, 320, CubicBezierInterpolator.EASE_OUT_QUINT); + public final AnimatedFloat w = new AnimatedFloat(BotButtons.this, 0, 320, CubicBezierInterpolator.EASE_OUT_QUINT); + + public final AnimatedColor backgroundColor = new AnimatedColor(BotButtons.this, 0, 320, CubicBezierInterpolator.EASE_OUT_QUINT); + public final AnimatedColor textColor = new AnimatedColor(BotButtons.this, 0, 320, CubicBezierInterpolator.EASE_OUT_QUINT); + + public final AnimatedFloat progressAlpha = new AnimatedFloat(BotButtons.this, 0, 320, CubicBezierInterpolator.EASE_OUT_QUINT); + public final AnimatedFloat flickerAlpha = new AnimatedFloat(BotButtons.this, 0, 320, CubicBezierInterpolator.EASE_OUT_QUINT); + + public final ButtonBounce bounce = new ButtonBounce(BotButtons.this); + public final Paint backgroundPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + public final AnimatedTextView.AnimatedTextDrawable textDrawable = new AnimatedTextView.AnimatedTextDrawable(true, true, true); + + public int rippleColor; + public final Drawable ripple = Theme.createRadSelectorDrawable(0, 9, 9); + public final CircularProgressDrawable progress = new CircularProgressDrawable(); + + public final CellFlickerDrawable flicker = new CellFlickerDrawable(); + + { + textDrawable.setGravity(Gravity.CENTER); + textDrawable.setTextSize(dp(14)); + textDrawable.setTypeface(AndroidUtilities.bold()); + textDrawable.setOverrideFullWidth(AndroidUtilities.displaySize.x * 4); + textDrawable.setEllipsizeByGradient(true); + + progress.setCallback(BotButtons.this); + ripple.setCallback(BotButtons.this); + + flicker.frameInside = true; + flicker.repeatProgress = 2f; + } + } + + private final Paint backgroundPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + private final Paint separatorPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + + public final AnimatedFloat height = new AnimatedFloat(BotButtons.this, 0, 320, CubicBezierInterpolator.EASE_OUT_QUINT); + public final AnimatedColor background = new AnimatedColor(BotButtons.this, 0, 320, CubicBezierInterpolator.EASE_OUT_QUINT); + + public ButtonsState state = new ButtonsState(); + public final Button[] buttons = new Button[2]; + + public BotButtons(Context context, Theme.ResourcesProvider resourcesProvider) { + super(context); + + setWillNotDraw(false); + + separatorPaint.setColor(Theme.multAlpha(Color.BLACK, .1f)); + backgroundPaint.setColor(state.backgroundColor = Theme.getColor(Theme.key_windowBackgroundWhite, resourcesProvider)); + + buttons[0] = new Button(); + buttons[1] = new Button(); + } + + @Override + protected void dispatchDraw(@NonNull Canvas canvas) { + final float height = this.height.set(getTotalHeight()); + + final float t = getHeight() - height; + canvas.drawRect(0, t - 1, getWidth(), t, separatorPaint); + backgroundPaint.setColor(background.set(state.backgroundColor)); + canvas.drawRect(0, t, getWidth(), getHeight(), backgroundPaint); + + final String secondary_pos = state.secondary.position; + boolean r = buttons[1].alpha.get() < buttons[0].alpha.get(); + for (int i = (r ? 1 : 0); r ? i >= 0 : i <= 1; i += (r ? -1 : +1)) { + final Button button = buttons[i]; + final ButtonState state = i == 0 ? this.state.main : this.state.secondary; + + final float alpha = button.alpha.set(state.visible); + final float bx = !state.visible ? button.x.get() : button.x.set( + this.state.secondary.visible && this.state.main.visible ? ( + "left".equalsIgnoreCase(secondary_pos) ? (i == 0 ? 1 : 0) : + "right".equalsIgnoreCase(secondary_pos) ? (i == 0 ? 0 : 1) : + 0 + ) : 0 + ); + final float by = !state.visible ? button.y.get() : button.y.set( + this.state.secondary.visible && this.state.main.visible ? ( + "top".equalsIgnoreCase(secondary_pos) ? (i == 0 ? 1 : 0) : + "bottom".equalsIgnoreCase(secondary_pos) ? (i == 0 ? 0 : 1) : + 0 + ) : 0 + ); + final float bw = !state.visible ? button.w.get() : button.w.set( + this.state.secondary.visible && this.state.main.visible && ( + "left".equalsIgnoreCase(secondary_pos) || + "right".equalsIgnoreCase(secondary_pos) + ) ? 0 : 1 + ); + + final float w = lerp((getWidth() - dp(16 + 10)) / 2f, getWidth() - dp(16), bw); + final float h = dp(44); + final float cx = lerp(dp(8), dp(8 + 10) + (getWidth() - dp(16 + 10)) / 2f, bx) + w / 2f; + final float cy = lerp(dp(7), dp(7 + 44 + 7), by) + h / 2f; + button.bounds.set(cx - w / 2f, t + cy - h / 2f, cx + w / 2f, t + cy + h / 2f); + + final float progress = button.progressAlpha.set(state.progressVisible); + final float flicker = button.flickerAlpha.set(state.shineEffect); + + canvas.save(); + final float s = button.bounce.getScale(0.02f) * lerp(.7f, 1f, alpha); + canvas.scale(s, s, cx, t + cy); + + button.backgroundPaint.setColor(Theme.multAlpha(button.backgroundColor.set(state.color), alpha)); + canvas.drawRoundRect(button.bounds, dp(9), dp(9), button.backgroundPaint); + + if (progress < 1) { + canvas.save(); + final float s2 = lerp(.75f, 1f, 1f - progress); + canvas.scale(s2, s2, cx, t + cy); + canvas.translate(0, dp(-10) * progress); + button.textDrawable.setTextColor(Theme.multAlpha(button.textColor.set(state.textColor), alpha * (1f - progress))); + button.textDrawable.setBounds(button.bounds); + button.textDrawable.draw(canvas); + canvas.restore(); + } + if (progress > 0) { + canvas.save(); + final float s2 = lerp(.75f, 1f, progress); + canvas.scale(s2, s2, cx, t + cy); + canvas.translate(0, dp(10) * (1f - progress)); + button.progress.setColor(Theme.multAlpha(button.textColor.set(state.textColor), alpha * progress)); + button.progress.setBounds((int) button.bounds.left, (int) button.bounds.top, (int) button.bounds.right, (int) button.bounds.bottom); + button.progress.draw(canvas); + canvas.restore(); + } + if (flicker > 0) { + button.flicker.setColors(Theme.multAlpha(button.textColor.set(state.textColor), alpha * flicker)); + button.flicker.draw(canvas, button.bounds, dp(8), this); + } + + if (button.rippleColor != Theme.multAlpha(state.textColor, .15f)) { + Theme.setSelectorDrawableColor(button.ripple, button.rippleColor = Theme.multAlpha(state.textColor, .15f), true); + } + button.ripple.setBounds((int) button.bounds.left, (int) button.bounds.top, (int) button.bounds.right, (int) button.bounds.bottom); + button.ripple.draw(canvas); + + canvas.restore(); + } + } + + public void setMainState(ButtonState newState, boolean animated) { + final int wasHeight = getTotalHeight(); + this.state.main = newState; + buttons[0].textDrawable.cancelAnimation(); + buttons[0].textDrawable.setText(newState.text, animated); + invalidate(); + if (wasHeight != getTotalHeight() && whenResized != null) { + if (wasHeight < getTotalHeight()) { + AndroidUtilities.runOnUIThread(whenResized, 200); + } else { + whenResized.run(); + } + } + } + + public void setSecondaryState(ButtonState newState, boolean animated) { + final int wasHeight = getTotalHeight(); + this.state.secondary = newState; + buttons[1].textDrawable.cancelAnimation(); + buttons[1].textDrawable.setText(newState.text, animated); + invalidate(); + if (wasHeight != getTotalHeight() && whenResized != null) { + if (wasHeight < getTotalHeight()) { + AndroidUtilities.runOnUIThread(whenResized, 200); + } else { + whenResized.run(); + } + } + } + + public void setState(ButtonsState newState, boolean animated) { + final int wasHeight = getTotalHeight(); + this.state = newState; + buttons[0].textDrawable.cancelAnimation(); + buttons[0].textDrawable.setText(newState.main.text, animated); + buttons[1].textDrawable.cancelAnimation(); + buttons[1].textDrawable.setText(newState.secondary.text, animated); + invalidate(); + if (wasHeight != getTotalHeight() && whenResized != null) { + if (wasHeight < getTotalHeight()) { + AndroidUtilities.runOnUIThread(whenResized, 200); + } else { + whenResized.run(); + } + } + setBackgroundColor(newState.backgroundColor, animated); + } + + public void setBackgroundColor(int color, boolean animated) { + backgroundPaint.setColor(state.backgroundColor = color); + if (!animated) { + background.set(color, true); + } + } + + public int getTotalHeight() { + int rowsCount = 0; + if (state.main.visible || state.secondary.visible) { + rowsCount++; + } + if (state.main.visible && state.secondary.visible && ("top".equalsIgnoreCase(state.secondary.position) || "bottom".equalsIgnoreCase(state.secondary.position))) { + rowsCount++; + } + if (rowsCount == 0) { + return 0; + } else if (rowsCount == 1) { + return dp(7 + 44 + 7); + } else { + return dp(7 + 44 + 7 + 44 + 7); + } + } + + public float getAnimatedTotalHeight() { + return this.height.get(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure( + MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), + MeasureSpec.makeMeasureSpec(dp(7 + 44 + 7 + 44 + 7) + 1, MeasureSpec.EXACTLY) + ); + } + + private Button getHitButton(float x, float y) { + for (int i = 0; i < buttons.length; ++i) { + final ButtonState state = i == 0 ? this.state.main : this.state.secondary; + if (buttons[i].bounds.contains(x, y) && state.visible && state.active) { + return buttons[i]; + } + } + return null; + } + + private Button pressedButton; + + @Override + public boolean onTouchEvent(MotionEvent event) { + if (event.getAction() == MotionEvent.ACTION_DOWN) { + pressedButton = getHitButton(event.getX(), event.getY()); + if (pressedButton != null) { + pressedButton.bounce.setPressed(true); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + pressedButton.ripple.setHotspot(event.getX(), event.getY()); + } + pressedButton.ripple.setState(new int[] { android.R.attr.state_pressed, android.R.attr.state_enabled }); + } + } else if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) { + if (pressedButton != null) { + if (event.getAction() == MotionEvent.ACTION_UP && getHitButton(event.getX(), event.getY()) == pressedButton) { + if (whenClicked != null) { + whenClicked.run(pressedButton == buttons[0]); + } + } + pressedButton.bounce.setPressed(false); + pressedButton.ripple.setState(new int[0]); + pressedButton = null; + } + } + return pressedButton != null; + } + + private Utilities.Callback whenClicked; + public void setOnButtonClickListener(Utilities.Callback whenClicked) { + this.whenClicked = whenClicked; + } + + private Runnable whenResized; + public void setOnResizeListener(Runnable whenResized) { + this.whenResized = whenResized; + } + + @Override + protected boolean verifyDrawable(@NonNull Drawable who) { + return ( + buttons[0].ripple == who || buttons[0].progress == who || + buttons[1].ripple == who || buttons[1].progress == who || + super.verifyDrawable(who) + ); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/bots/BotCommandsMenuContainer.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotCommandsMenuContainer.java index 90efbd4a72..e9e1a5d434 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/bots/BotCommandsMenuContainer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotCommandsMenuContainer.java @@ -93,6 +93,7 @@ protected void dispatchDraw(Canvas canvas) { } public float clipBottom() { + if (dismissed) return 0; return Math.max(0, getMeasuredHeight() - (containerY + listView.getTranslationY())); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/bots/BotCommandsMenuView.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotCommandsMenuView.java index a8f4412420..5c6b120562 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/bots/BotCommandsMenuView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotCommandsMenuView.java @@ -1,5 +1,7 @@ package org.telegram.ui.bots; +import static org.telegram.messenger.LocaleController.getString; + import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; @@ -70,7 +72,7 @@ protected void invalidateInternal() { public boolean expanded; float expandProgress; - private String menuText = LocaleController.getString(R.string.BotsMenuTitle); + private String menuText = getString(R.string.BotsMenuTitle); StaticLayout menuTextLayout; private float menuTextWidth; boolean isOpened; @@ -92,7 +94,7 @@ public BotCommandsMenuView(Context context) { backDrawable.setRoundCap(); backgroundDrawable = Theme.createSimpleSelectorRoundRectDrawable(AndroidUtilities.dp(16), Color.TRANSPARENT, Theme.getColor(Theme.key_featuredStickers_addButtonPressed)); backgroundDrawable.setCallback(this); - setContentDescription(LocaleController.getString("AccDescrBotMenu", R.string.AccDescrBotMenu)); + setContentDescription(getString("AccDescrBotMenu", R.string.AccDescrBotMenu)); } public void setDrawBackgroundDrawable(boolean drawBackgroundDrawable) { @@ -236,7 +238,7 @@ protected void onTranslationChanged(float translationX) { public boolean setMenuText(String menuText) { if (menuText == null) { - menuText = LocaleController.getString(R.string.BotsMenuTitle); + menuText = getString(R.string.BotsMenuTitle); } boolean changed = this.menuText == null || !this.menuText.equals(menuText); this.menuText = menuText; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewAttachedSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewAttachedSheet.java index 1c2b5f3d3c..b8497a1bf6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewAttachedSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewAttachedSheet.java @@ -25,7 +25,6 @@ import android.os.Bundle; import android.text.TextPaint; import android.text.TextUtils; -import android.util.TypedValue; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; @@ -82,7 +81,6 @@ import org.telegram.ui.Components.CubicBezierInterpolator; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.OverlayActionBarLayoutDialog; -import org.telegram.ui.Components.RadialProgressView; import org.telegram.ui.Components.ShareAlert; import org.telegram.ui.Components.SimpleFloatPropertyCompat; import org.telegram.ui.Components.SizeNotifierFrameLayout; @@ -206,6 +204,7 @@ public static class MainButtonSettings { public int color; public int textColor; public boolean isProgressVisible; + public boolean hasShineEffect; public static MainButtonSettings of(boolean isVisible, boolean isActive, String text, int color, int textColor, boolean isProgressVisible) { MainButtonSettings s = new MainButtonSettings(); @@ -235,10 +234,11 @@ public BottomSheetTabs.WebTabData saveState() { tab.expandedOffset = swipeContainer != null ? swipeContainer.getOffsetY() : Float.MAX_VALUE; tab.backButton = backButtonShown; tab.settings = settingsItem != null && settingsItem.getVisibility() == View.VISIBLE; - tab.main = mainButtonSettings; + tab.buttons = botButtons.state; tab.confirmDismiss = needCloseConfirmation; tab.needsContext = needsContext; tab.allowSwipes = swipeContainer == null || swipeContainer.isAllowedSwipes(); + tab.navigationBarColor = navBarColor; BotWebViewContainer.MyWebView webView = webViewContainer == null ? null : webViewContainer.getWebView(); if (webView != null) { webViewContainer.preserveWebView(); @@ -270,8 +270,9 @@ public boolean restoreState(BaseFragment fragment, BottomSheetTabs.WebTabData ta if (backDrawable != null) { backDrawable.setRotation(backButtonShown ? 0f : 1f, false); } - if (tab.main != null) { - setMainButton(tab.main); + if (tab.buttons != null) { +// setMainButton(tab.main); + botButtons.setState(tab.buttons, false); } needCloseConfirmation = tab.confirmDismiss; if (tab.webView != null) { @@ -309,6 +310,7 @@ public boolean restoreState(BaseFragment fragment, BottomSheetTabs.WebTabData ta settingsItem.setVisibility(tab.settings ? View.VISIBLE : View.GONE); } setActionBarColor(!tab.overrideActionBarColor ? Theme.getColor(tab.actionBarColorKey < 0 ? Theme.key_windowBackgroundWhite : tab.actionBarColorKey, resourcesProvider) : tab.actionBarColor, tab.overrideActionBarColor, false); + setNavigationBarColor(tab.navigationBarColor, false); return true; } @@ -336,9 +338,7 @@ public boolean restoreState(BaseFragment fragment, BottomSheetTabs.WebTabData ta private Activity parentActivity; - private boolean mainButtonWasVisible, mainButtonProgressWasVisible; - private TextView mainButton; - private RadialProgressView radialProgressView; + private BotButtons botButtons; private boolean needCloseConfirmation; @@ -402,7 +402,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { ignoreLayout = false; } - super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(heightMeasureSpec) - ActionBar.getCurrentActionBarHeight() - AndroidUtilities.statusBarHeight + dp(24) - (mainButtonWasVisible ? mainButton.getLayoutParams().height : 0), MeasureSpec.EXACTLY)); + super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(heightMeasureSpec) - ActionBar.getCurrentActionBarHeight() - AndroidUtilities.statusBarHeight + dp(24) - (botButtons != null ? botButtons.getTotalHeight() : 0), MeasureSpec.EXACTLY)); } @Override @@ -471,6 +471,11 @@ public void onWebAppSetActionBarColor(int colorKey, int color, boolean isOverrid setActionBarColor(color, isOverrideColor, true); } + @Override + public void onWebAppSetNavigationBarColor(int color) { + setNavigationBarColor(color, true); + } + @Override public void onWebAppSetBackgroundColor(int color) { setBackgroundColor(color, true); @@ -565,7 +570,7 @@ public void onWebAppSwitchInlineQuery(TLRPC.User botUser, String query, List { + dialogsActivity.setDelegate((fragment, dids, message1, param, notify, scheduleDate, topicsFragment) -> { long did = dids.get(0).dialogId; Bundle args1 = new Bundle(); @@ -603,8 +608,13 @@ public void onWebAppSwitchInlineQuery(TLRPC.User botUser, String query, List { @@ -637,40 +646,23 @@ public boolean isClipboardAvailable() { }); windowView.addView(swipeContainer, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 24, 0, 0)); - mainButton = new TextView(getContext()) { - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); + botButtons = new BotButtons(getContext(), resourcesProvider); + botButtons.setOnButtonClickListener(main -> { + if (webViewContainer != null) { + if (main) { + webViewContainer.onMainButtonPressed(); + } else { + webViewContainer.onSecondaryButtonPressed(); + } } - }; - mainButton.setVisibility(View.GONE); - mainButton.setAlpha(0f); - mainButton.setSingleLine(); - mainButton.setGravity(Gravity.CENTER); - mainButton.setTypeface(AndroidUtilities.bold()); - int padding = dp(16); - mainButton.setPadding(padding, 0, padding, 0); - mainButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); - mainButton.setOnClickListener(v -> webViewContainer.onMainButtonPressed()); - windowView.addView(mainButton, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL)); - mainButtonAutoAnimator = VerticalPositionAutoAnimator.attach(mainButton); - - radialProgressView = new RadialProgressView(getContext()) { - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); + }); + botButtons.setOnResizeListener(() -> { + swipeContainer.requestLayout(); + }); + windowView.addView(botButtons, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL)); + mainButtonAutoAnimator = VerticalPositionAutoAnimator.attach(botButtons); - ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) getLayoutParams(); - params.rightMargin = dp(10); - } - }; - radialProgressView.setSize(dp(18)); - radialProgressView.setAlpha(0f); - radialProgressView.setScaleX(0.1f); - radialProgressView.setScaleY(0.1f); - radialProgressView.setVisibility(View.GONE); - windowView.addView(radialProgressView, LayoutHelper.createFrame(28, 28, Gravity.BOTTOM | Gravity.RIGHT, 0, 0, 10, 10)); - radialProgressAutoAnimator = VerticalPositionAutoAnimator.attach(radialProgressView); + setNavigationBarColor(getColor(Theme.key_windowBackgroundGray), false); actionBarShadow = ContextCompat.getDrawable(getContext(), R.drawable.header_shadow).mutate(); @@ -724,7 +716,7 @@ public void onAnimationEnd(Animator animation) { } swipeContainer.addView(webViewContainer, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); - swipeContainer.setScrollListener(()->{ + swipeContainer.setScrollListener(() -> { if (swipeContainer.getSwipeOffsetY() > 0) { dimPaint.setAlpha((int) (0x40 * (1f - MathUtils.clamp(swipeContainer.getSwipeOffsetY() / (float)swipeContainer.getHeight(), 0, 1)))); } else { @@ -745,10 +737,10 @@ public void onAnimationEnd(Animator animation) { } float offsetY = Math.max(0, swipeContainer.getSwipeOffsetY()); mainButtonAutoAnimator.setOffsetY(offsetY); - radialProgressAutoAnimator.setOffsetY(offsetY); +// radialProgressAutoAnimator.setOffsetY(offsetY); lastSwipeTime = System.currentTimeMillis(); }); - swipeContainer.setScrollEndListener(()-> webViewContainer.invalidateViewPortHeight(true)); + swipeContainer.setScrollEndListener(() -> webViewContainer.invalidateViewPortHeight(true)); swipeContainer.setDelegate(() -> { // if (can_minimize) { dismiss(true, null); @@ -885,6 +877,7 @@ public static JSONObject makeThemeParams(Theme.ResourcesProvider resourcesProvid jsonObject.put("subtitle_text_color", Theme.blendOver(backgroundColor, Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2, resourcesProvider))); jsonObject.put("destructive_text_color", Theme.blendOver(backgroundColor, Theme.getColor(Theme.key_text_RedRegular, resourcesProvider))); jsonObject.put("section_separator_color", Theme.blendOver(backgroundColor, Theme.getColor(Theme.key_divider, resourcesProvider))); + jsonObject.put("bottom_bar_bg_color", Theme.getColor(Theme.key_windowBackgroundGray, resourcesProvider)); return jsonObject; } catch (Exception e) { FileLog.e(e); @@ -902,6 +895,12 @@ public void setDefaultFullsize(boolean fullsize) { } } + public void setWasOpenedByBot(WebViewRequestProps props) { + if (webViewContainer != null) { + webViewContainer.setWasOpenedByBot(props); + } + } + public void setWasOpenedByLinkIntent(boolean value) { if (webViewContainer != null) { webViewContainer.setWasOpenedByLinkIntent(value); @@ -1300,7 +1299,7 @@ public static void deleteBot(int currentAccount, long botId, Runnable onDone) { new AlertDialog.Builder(LaunchActivity.getLastFragment().getContext()) .setTitle(LocaleController.getString(R.string.BotRemoveFromMenuTitle)) .setMessage(AndroidUtilities.replaceTags(description)) - .setPositiveButton(LocaleController.getString("OK", R.string.OK), (dialogInterface, i) -> { + .setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> { TLRPC.TL_messages_toggleBotInAttachMenu req = new TLRPC.TL_messages_toggleBotInAttachMenu(); req.bot = MessagesController.getInstance(currentAccount).getInputUser(botId); req.enabled = false; @@ -1314,7 +1313,7 @@ public static void deleteBot(int currentAccount, long botId, Runnable onDone) { onDone.run(); } }) - .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null) + .setNegativeButton(LocaleController.getString(R.string.Cancel), null) .show(); } @@ -1537,14 +1536,6 @@ public void didReceivedNotification(int id, int account, Object... args) { } } - public static int navigationBarColor(int actionBarColor) { -// final boolean isDark = AndroidUtilities.computePerceivedBrightness(actionBarColor) < 0.721f; -// final int themeNavBarColor = (Theme.isCurrentThemeDark() == isDark ? Theme.getColor(Theme.key_windowBackgroundGray) : (isDark ? 0xFF151E27 : 0xFFF0F0F0)); -// return Theme.adaptHue(themeNavBarColor, actionBarColor); -// return OKLCH.adapt(themeNavBarColor, actionBarColor); - return Theme.adaptHSV(actionBarColor, +.35f, -.1f); - } - public void checkNavBarColor() { if (dialog != null) { dialog.updateNavigationBarColor(); @@ -1750,11 +1741,38 @@ public void setBackgroundColor(int color, boolean animated) { } } + public void setNavigationBarColor(int color, boolean animated) { + int from = navBarColor; + int to = color; + + botButtons.setBackgroundColor(color, animated); + if (animated) { + ValueAnimator animator = ValueAnimator.ofFloat(0, 1).setDuration(200); + animator.setInterpolator(CubicBezierInterpolator.DEFAULT); + animator.addUpdateListener(animation -> { + float progress = (float) animation.getAnimatedValue(); + navBarColor = ColorUtils.blendARGB(from, to, progress); + checkNavBarColor(); + }); + animator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + float progress = 1f; + navBarColor = ColorUtils.blendARGB(from, to, progress); + checkNavBarColor(); + } + }); + animator.start(); + } else { + navBarColor = to; + checkNavBarColor(); + } + } + public void setActionBarColor(int color, boolean isOverrideColor, boolean animated) { int from = actionBarColor; int navBarFrom = navBarColor; int to = color; - int navBarTo = navigationBarColor(color); BotWebViewMenuContainer.ActionBarColorsAnimating actionBarColorsAnimating = new BotWebViewMenuContainer.ActionBarColorsAnimating(); actionBarColorsAnimating.setFrom(overrideBackgroundColor ? actionBarColor : 0, resourcesProvider); @@ -1768,7 +1786,7 @@ public void setActionBarColor(int color, boolean isOverrideColor, boolean animat animator.addUpdateListener(animation -> { float progress = (float) animation.getAnimatedValue(); actionBarColor = ColorUtils.blendARGB(from, to, progress); - navBarColor = ColorUtils.blendARGB(navBarFrom, navBarTo, progress); +// navBarColor = ColorUtils.blendARGB(navBarFrom, navBarTo, progress); checkNavBarColor(); windowView.invalidate(); actionBar.setBackgroundColor(actionBarColor); @@ -1783,7 +1801,7 @@ public void setActionBarColor(int color, boolean isOverrideColor, boolean animat public void onAnimationEnd(Animator animation) { float progress = 1f; actionBarColor = ColorUtils.blendARGB(from, to, progress); - navBarColor = ColorUtils.blendARGB(navBarFrom, navBarTo, progress); +// navBarColor = ColorUtils.blendARGB(navBarFrom, navBarTo, progress); checkNavBarColor(); windowView.invalidate(); actionBar.setBackgroundColor(actionBarColor); @@ -1798,7 +1816,7 @@ public void onAnimationEnd(Animator animation) { } else { float progress = 1f; actionBarColor = to; - navBarColor = navBarTo; +// navBarColor = navBarTo; checkNavBarColor(); windowView.invalidate(); actionBar.setBackgroundColor(actionBarColor); @@ -1821,55 +1839,6 @@ public void onAnimationEnd(Animator animation) { } } - private MainButtonSettings mainButtonSettings; - - public void setMainButton(MainButtonSettings s) { - mainButtonSettings = s; - - mainButton.setClickable(s.isActive); - mainButton.setText(s.text); - mainButton.setTextColor(s.textColor); - mainButton.setBackground(BotWebViewContainer.getMainButtonRippleDrawable(s.color)); - if (s.isVisible != mainButtonWasVisible) { - mainButtonWasVisible = s.isVisible; - mainButton.animate().cancel(); - if (s.isVisible) { - mainButton.setAlpha(0f); - mainButton.setVisibility(View.VISIBLE); - } - mainButton.animate().alpha(s.isVisible ? 1f : 0f).setDuration(150).setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (!s.isVisible) { - mainButton.setVisibility(View.GONE); - } - swipeContainer.requestLayout(); - } - }).start(); - } - radialProgressView.setProgressColor(s.textColor); - if (s.isProgressVisible != mainButtonProgressWasVisible) { - mainButtonProgressWasVisible = s.isProgressVisible; - radialProgressView.animate().cancel(); - if (s.isProgressVisible) { - radialProgressView.setAlpha(0f); - radialProgressView.setVisibility(View.VISIBLE); - } - radialProgressView.animate().alpha(s.isProgressVisible ? 1f : 0f) - .scaleX(s.isProgressVisible ? 1f : 0.1f) - .scaleY(s.isProgressVisible ? 1f : 0.1f) - .setDuration(250) - .setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (!s.isProgressVisible) { - radialProgressView.setVisibility(View.GONE); - } - } - }).start(); - } - } - public static void hasPrivacy(int currentAccount, long botId, Utilities.Callback whenDone) { if (whenDone == null) return; TLRPC.UserFull userFull = MessagesController.getInstance(currentAccount).getUserFull(botId); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewMenuContainer.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewMenuContainer.java index cb1d11f240..a57cc1475b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewMenuContainer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewMenuContainer.java @@ -369,7 +369,7 @@ public void onWebAppSwitchInlineQuery(TLRPC.User botUser, String query, List { + dialogsActivity.setDelegate((fragment, dids, message1, param, notify, scheduleDate, topicsFragment) -> { long did = dids.get(0).dialogId; Bundle args1 = new Bundle(); @@ -420,10 +420,15 @@ public void onWebAppOpenInvoice(TLRPC.InputInvoice inputInvoice, String slug, TL } @Override - public void onSetupMainButton(boolean isVisible, boolean isActive, String text, int color, int textColor, boolean isProgressVisible) { + public void onSetupMainButton(boolean isVisible, boolean isActive, String text, int color, int textColor, boolean isProgressVisible, boolean hasShineEffect) { setMainButton(BotWebViewAttachedSheet.MainButtonSettings.of(isVisible, isActive, text, color, textColor, isProgressVisible)); } + @Override + public void onSetupSecondaryButton(boolean isVisible, boolean isActive, String text, int color, int textColor, boolean isProgressVisible, boolean hasShineEffect, String position) { + + } + @Override public void onSetBackButtonVisible(boolean visible) { if (actionBarTransitionProgress == 1f) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewSheet.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewSheet.java index 17a38c362b..db6a0e790f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewSheet.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/BotWebViewSheet.java @@ -515,7 +515,7 @@ public void onWebAppSwitchInlineQuery(TLRPC.User botUser, String query, List { + dialogsActivity.setDelegate((fragment, dids, message1, param, notify, scheduleDate, topicsFragment) -> { long did = dids.get(0).dialogId; Bundle args1 = new Bundle(); @@ -553,10 +553,15 @@ public void onWebAppSwitchInlineQuery(TLRPC.User botUser, String query, List { + .setPositiveButton(LocaleController.getString(R.string.OK), (dialogInterface, i) -> { TLRPC.TL_messages_toggleBotInAttachMenu req = new TLRPC.TL_messages_toggleBotInAttachMenu(); req.bot = MessagesController.getInstance(currentAccount).getInputUser(botId); req.enabled = false; @@ -1282,7 +1294,7 @@ public static void deleteBot(int currentAccount, long botId, Runnable onDone) { onDone.run(); } }) - .setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null) + .setNegativeButton(LocaleController.getString(R.string.Cancel), null) .show(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/bots/ChatAttachAlertBotWebViewLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/bots/ChatAttachAlertBotWebViewLayout.java index 4df5c85cd6..f8201cd340 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/bots/ChatAttachAlertBotWebViewLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/bots/ChatAttachAlertBotWebViewLayout.java @@ -1189,8 +1189,10 @@ public void setLoadProgress(float loadProgress) { public void draw(Canvas canvas) { super.draw(canvas); - float y = getHeight() - bluePaint.getStrokeWidth() / 2f; - canvas.drawLine(0, y, getWidth() * loadProgress, y, bluePaint); + if (loadProgress > 0) { + float y = getHeight() - bluePaint.getStrokeWidth() / 2f; + canvas.drawLine(0, y, getWidth() * loadProgress, y, bluePaint); + } } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/web/AddressBarList.java b/TMessagesProj/src/main/java/org/telegram/ui/web/AddressBarList.java index f2418669d7..3ef552a3ab 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/web/AddressBarList.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/web/AddressBarList.java @@ -66,6 +66,7 @@ import org.telegram.ui.Components.UItem; import org.telegram.ui.Components.UniversalAdapter; import org.telegram.ui.Components.UniversalRecyclerView; +import org.telegram.ui.Stars.StarsIntroActivity; import org.telegram.ui.WrappedResourceProvider; import java.net.IDN; @@ -594,6 +595,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } public static class Factory extends UItem.UItemFactory { + static { setup(new Factory()); } @Override public Address2View createView(Context context, int currentAccount, int classGuid, Theme.ResourcesProvider resourcesProvider) { return new Address2View(context); @@ -898,6 +900,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } public static class Factory extends UItem.UItemFactory { + static { setup(new Factory()); } @Override public BookmarkView createView(Context context, int currentAccount, int classGuid, Theme.ResourcesProvider resourcesProvider) { return new BookmarkView(context, resourcesProvider); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/web/BotWebViewContainer.java b/TMessagesProj/src/main/java/org/telegram/ui/web/BotWebViewContainer.java index ffb47bfe35..e41a21007c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/web/BotWebViewContainer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/web/BotWebViewContainer.java @@ -1,5 +1,6 @@ package org.telegram.ui.web; +import static org.telegram.messenger.AndroidUtilities.readRes; import static org.telegram.messenger.LocaleController.formatString; import static org.telegram.messenger.LocaleController.getString; @@ -42,7 +43,6 @@ import android.webkit.JavascriptInterface; import android.webkit.PermissionRequest; import android.webkit.RenderProcessGoneDetail; -import android.webkit.SafeBrowsingResponse; import android.webkit.SslErrorHandler; import android.webkit.URLUtil; import android.webkit.ValueCallback; @@ -99,6 +99,7 @@ import org.telegram.ui.ActionBar.AlertDialog; import org.telegram.ui.ActionBar.BaseFragment; import org.telegram.ui.ActionBar.BottomSheet; +import org.telegram.ui.ActionBar.BottomSheetTabs; import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.ArticleViewer; import org.telegram.ui.CameraScanActivity; @@ -110,7 +111,6 @@ import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.Paint.Views.LinkPreview; import org.telegram.ui.Components.Premium.PremiumFeatureBottomSheet; -import org.telegram.ui.Components.RLottieDrawable; import org.telegram.ui.Components.voip.CellFlickerDrawable; import org.telegram.ui.LaunchActivity; import org.telegram.ui.PremiumPreviewFragment; @@ -121,6 +121,7 @@ import org.telegram.ui.bots.BotBiometrySettings; import org.telegram.ui.bots.BotWebViewSheet; import org.telegram.ui.bots.ChatAttachAlertBotWebViewLayout; +import org.telegram.ui.bots.WebViewRequestProps; import java.io.File; import java.io.FileOutputStream; @@ -128,6 +129,7 @@ import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.IDN; +import java.net.URISyntaxException; import java.net.URL; import java.net.URLDecoder; import java.net.URLEncoder; @@ -168,6 +170,12 @@ public abstract class BotWebViewContainer extends FrameLayout implements Notific private String lastButtonText = ""; private String buttonData; + private int lastSecondaryButtonColor = getColor(Theme.key_featuredStickers_addButton); + private int lastSecondaryButtonTextColor = getColor(Theme.key_featuredStickers_buttonText); + private String lastSecondaryButtonText = ""; + private String lastSecondaryButtonPosition = ""; + private String secondaryButtonData; + private int currentAccount; private boolean isPageLoaded; private boolean lastExpanded; @@ -370,6 +378,7 @@ private void setupWebView(MyWebView replaceWith, Object proxy) { String useragent = settings.getUserAgentString(); useragent = useragent.replace("; wv)", ")"); useragent = useragent.replaceAll("\\(Linux; Android.+;[^)]+\\)", "(Linux; Android " + Build.VERSION.RELEASE + "; K)"); + useragent = useragent.replaceAll("Version/[\\d\\.]+ ", ""); settings.setUserAgentString(useragent); } catch (Exception e) { FileLog.e(e); @@ -426,7 +435,7 @@ private void onOpenUri(Uri uri) { } private void onOpenUri(Uri uri, String browser, boolean tryInstantView, boolean suppressPopup) { - if (isRequestingPageOpen || System.currentTimeMillis() - lastClickMs > 1000 && suppressPopup) { + if (isRequestingPageOpen || System.currentTimeMillis() - lastClickMs > 10_000 && suppressPopup) { return; } @@ -438,7 +447,7 @@ private void onOpenUri(Uri uri, String browser, boolean tryInstantView, boolean setKeyboardFocusable(false); } - Browser.openUrl(getContext(), uri, true, tryInstantView, false, null, browser, false); + Browser.openUrl(getContext(), uri, true, tryInstantView, false, null, browser, false, true); } private boolean keyboardFocusable; @@ -508,7 +517,7 @@ public boolean onBackPressed() { return false; } - private void setPageLoaded(String url, boolean animated) { + public void setPageLoaded(String url, boolean animated) { onURLChanged(webView != null && webView.dangerousUrl ? webView.urlFallback : url, !(webView != null && webView.canGoBack()), !(webView != null && webView.canGoForward())); if (webView != null) { @@ -619,6 +628,9 @@ public void restoreButtonData() { if (buttonData != null) { onEventReceived("web_app_setup_main_button", buttonData); } + if (secondaryButtonData != null) { + onEventReceived("web_app_setup_secondary_button", secondaryButtonData); + } } public void onInvoiceStatusUpdate(String slug, String status) { @@ -651,6 +663,11 @@ public void onMainButtonPressed() { notifyEvent("main_button_pressed", null); } + public void onSecondaryButtonPressed() { + lastClickMs = System.currentTimeMillis(); + notifyEvent("secondary_button_pressed", null); + } + public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (requestCode == REQUEST_CODE_WEB_PERMISSION) { if (onPermissionsRequestResultCallback != null) { @@ -691,6 +708,10 @@ public void invalidateViewPortHeight(boolean isStable) { invalidateViewPortHeight(isStable, false); } + private int lastViewportHeightReported; + private boolean lastViewportStateStable; + private boolean lastViewportIsExpanded; + public void invalidateViewPortHeight(boolean isStable, boolean force) { invalidate(); if (!isPageLoaded && !force || !bot) { @@ -705,14 +726,23 @@ public void invalidateViewPortHeight(boolean isStable, boolean force) { } int viewPortHeight = (int) (swipeContainer.getMeasuredHeight() - swipeContainer.getOffsetY() - swipeContainer.getSwipeOffsetY() + swipeContainer.getTopActionBarOffsetY()); - try { - JSONObject data = new JSONObject(); - data.put("height", viewPortHeight / AndroidUtilities.density); - data.put("is_state_stable", isStable); - data.put("is_expanded", lastExpanded); - notifyEvent("viewport_changed", data); - } catch (JSONException e) { - e.printStackTrace(); + if ( + force || + viewPortHeight != lastViewportHeightReported || + lastViewportStateStable != isStable || + lastViewportIsExpanded != lastExpanded + ) { + lastViewportHeightReported = viewPortHeight; + lastViewportStateStable = isStable; + lastViewportIsExpanded = lastExpanded; + + try { + JSONObject data = new JSONObject(); + data.put("height", viewPortHeight / AndroidUtilities.density); + data.put("is_state_stable", isStable); + data.put("is_expanded", lastExpanded); + notifyEvent("viewport_changed", data); + } catch (JSONException ignore) {} } } } @@ -945,17 +975,7 @@ public void evaluateJs(String script, boolean create) { if (webView == null) { return; } - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - webView.evaluateJavascript(script, value -> { - }); - } else { - try { - webView.loadUrl("javascript:" + URLEncoder.encode(script, "UTF-8")); - } catch (UnsupportedEncodingException e) { - webView.loadUrl("javascript:" + URLEncoder.encode(script)); - } - } + webView.evaluateJS(script); }); } @@ -983,6 +1003,13 @@ private void notifyEvent(String event, JSONObject eventData) { evaluateJs("window.Telegram.WebView.receiveEvent('" + event + "', " + eventData + ");", false); } + private static void notifyEvent(int currentAccount, MyWebView webView, String event, JSONObject eventData) { + if (webView == null) return; + NotificationCenter.getInstance(currentAccount).doOnIdle(() -> { + webView.evaluateJS("window.Telegram.WebView.receiveEvent('" + event + "', " + eventData + ");"); + }); + } + public void setWebViewScrollListener(WebViewScrollListener webViewScrollListener) { this.webViewScrollListener = webViewScrollListener; if (webView != null) { @@ -1003,6 +1030,11 @@ public void setWasOpenedByLinkIntent(boolean value) { wasOpenedByLinkIntent = value; } + private WebViewRequestProps wasOpenedByBot; + public void setWasOpenedByBot(WebViewRequestProps props) { + wasOpenedByBot = props; + } + public void setDelegate(Delegate delegate) { this.delegate = delegate; } @@ -1096,11 +1128,27 @@ private void onEventReceived(String eventType, String eventData) { } delegate.onCloseRequested(null); - if (wasOpenedByLinkIntent && return_back && LaunchActivity.instance != null) { - Activity activity = AndroidUtilities.findActivity(getContext()); - if (activity == null) activity = LaunchActivity.instance; - if (activity != null && !activity.isFinishing()) { - activity.moveTaskToBack(true); + if (return_back) { + if (wasOpenedByLinkIntent && LaunchActivity.instance != null) { + Activity activity = AndroidUtilities.findActivity(getContext()); + if (activity == null) activity = LaunchActivity.instance; + if (activity != null && !activity.isFinishing()) { + activity.moveTaskToBack(true); + } + } else if (wasOpenedByBot != null && LaunchActivity.instance != null && LaunchActivity.instance.getBottomSheetTabs() != null) { + final BottomSheetTabs bottomSheetTabs = LaunchActivity.instance.getBottomSheetTabs(); + final ArrayList allTabs = bottomSheetTabs.getTabs(); + BottomSheetTabs.WebTabData openedByTab = null; + for (int i = 0; i < allTabs.size(); ++i) { + BottomSheetTabs.WebTabData tab = allTabs.get(i); + if (wasOpenedByBot.equals(tab.props) && tab.webView != webView) { + openedByTab = tab; + break; + } + } + if (openedByTab != null) { + bottomSheetTabs.openTab(openedByTab); + } } } break; @@ -1124,7 +1172,7 @@ private void onEventReceived(String eventType, String eventData) { try { JSONObject jsonObject = new JSONObject(eventData); String reqId = jsonObject.getString("req_id"); - if (!delegate.isClipboardAvailable() || System.currentTimeMillis() - lastClickMs > 10000) { + if (!delegate.isClipboardAvailable() || System.currentTimeMillis() - lastClickMs > 10_000) { notifyEvent("clipboard_text_received", new JSONObject().put("req_id", reqId)); break; } @@ -1357,6 +1405,24 @@ public void didReceivedNotification(int id, int account, Object... args) { } break; } + case "web_app_set_bottom_bar_color": { + try { + JSONObject jsonObject = new JSONObject(eventData); + String colorString = jsonObject.optString("color", null); + int color; + if (TextUtils.isEmpty(colorString)) { + color = Theme.getColor(Theme.key_windowBackgroundGray, resourcesProvider); + } else { + color = Color.parseColor(colorString); + } + if (delegate != null) { + delegate.onWebAppSetNavigationBarColor(color); + } + } catch (Exception e) { + FileLog.e(e); + } + break; + } case "web_app_data_send": { try { JSONObject jsonData = new JSONObject(eventData); @@ -1538,13 +1604,39 @@ public void didReceivedNotification(int id, int account, Object... args) { int color = info.has("color") ? Color.parseColor(info.optString("color")) : lastButtonColor; int textColor = info.has("text_color") ? Color.parseColor(info.optString("text_color")) : lastButtonTextColor; boolean isProgressVisible = info.optBoolean("is_progress_visible", false) && isVisible; + boolean hasShineEffect = info.optBoolean("has_shine_effect", false) && isVisible; lastButtonColor = color; lastButtonTextColor = textColor; lastButtonText = text; buttonData = eventData; - delegate.onSetupMainButton(isVisible, isActive, text, color, textColor, isProgressVisible); + delegate.onSetupMainButton(isVisible, isActive, text, color, textColor, isProgressVisible, hasShineEffect); + } catch (JSONException | IllegalArgumentException e) { + FileLog.e(e); + } + break; + } + case "web_app_setup_secondary_button": { + try { + JSONObject info = new JSONObject(eventData); + boolean isActive = info.optBoolean("is_active", false); + String text = info.optString("text", lastSecondaryButtonText).trim(); + boolean isVisible = info.optBoolean("is_visible", false) && !TextUtils.isEmpty(text); + int color = info.has("color") ? Color.parseColor(info.optString("color")) : lastSecondaryButtonColor; + int textColor = info.has("text_color") ? Color.parseColor(info.optString("text_color")) : lastSecondaryButtonTextColor; + boolean isProgressVisible = info.optBoolean("is_progress_visible", false) && isVisible; + boolean hasShineEffect = info.optBoolean("has_shine_effect", false) && isVisible; + String position = info.has("position") ? info.optString("position") : lastSecondaryButtonPosition; + if (position == null) position = "left"; + + lastSecondaryButtonColor = color; + lastSecondaryButtonTextColor = textColor; + lastSecondaryButtonText = text; + lastSecondaryButtonPosition = position; + secondaryButtonData = eventData; + + delegate.onSetupSecondaryButton(isVisible, isActive, text, color, textColor, isProgressVisible, hasShineEffect, position); } catch (JSONException | IllegalArgumentException e) { FileLog.e(e); } @@ -1561,6 +1653,9 @@ public void didReceivedNotification(int id, int account, Object... args) { } return; } + + final int account = currentAccount; + final MyWebView finalWebView = webView; TL_bots.canSendMessage req = new TL_bots.canSendMessage(); req.bot = MessagesController.getInstance(currentAccount).getInputUser(botUser); ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { @@ -1568,7 +1663,7 @@ public void didReceivedNotification(int id, int account, Object... args) { try { JSONObject data = new JSONObject(); data.put("status", "allowed"); - notifyEvent("write_access_requested", data); + notifyEvent(account, finalWebView, "write_access_requested", data); } catch (Exception e) { FileLog.e(e); } @@ -1606,7 +1701,7 @@ public void didReceivedNotification(int id, int account, Object... args) { try { JSONObject data = new JSONObject(); data.put("status", status[0]); - notifyEvent("write_access_requested", data); + notifyEvent(account, finalWebView, "write_access_requested", data); } catch (Exception e) { FileLog.e(e); } @@ -1616,6 +1711,8 @@ public void didReceivedNotification(int id, int account, Object... args) { break; } case "web_app_invoke_custom_method": { + if (botUser == null) return; + String reqId, method, paramsString; try { JSONObject jsonObject = new JSONObject(eventData); @@ -1633,12 +1730,14 @@ public void didReceivedNotification(int id, int account, Object... args) { return; } + final int account = currentAccount; + final MyWebView finalWebView = webView; TL_bots.invokeWebViewCustomMethod req = new TL_bots.invokeWebViewCustomMethod(); - req.bot = MessagesController.getInstance(currentAccount).getInputUser(botUser); + req.bot = MessagesController.getInstance(account).getInputUser(botUser.id); req.custom_method = method; req.params = new TLRPC.TL_dataJSON(); req.params.data = paramsString; - ConnectionsManager.getInstance(currentAccount).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { + ConnectionsManager.getInstance(account).sendRequest(req, (res, err) -> AndroidUtilities.runOnUIThread(() -> { try { JSONObject data = new JSONObject(); data.put("req_id", reqId); @@ -1648,7 +1747,7 @@ public void didReceivedNotification(int id, int account, Object... args) { } else if (err != null) { data.put("error", err.text); } - notifyEvent("custom_method_invoked", data); + notifyEvent(account, finalWebView, "custom_method_invoked", data); } catch (Exception e) { FileLog.e(e); unknownError(); @@ -1668,9 +1767,11 @@ public void didReceivedNotification(int id, int account, Object... args) { return; } + final int account = currentAccount; + final MyWebView finalWebView = webView; final String[] status = new String[] { "cancelled" }; AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), resourcesProvider); - builder.setTitle(getString("ShareYouPhoneNumberTitle", R.string.ShareYouPhoneNumberTitle)); + builder.setTitle(getString(R.string.ShareYouPhoneNumberTitle)); SpannableStringBuilder message = new SpannableStringBuilder(); String botName = UserObject.getUserName(botUser); if (!TextUtils.isEmpty(botName)) { @@ -1684,7 +1785,7 @@ public void didReceivedNotification(int id, int account, Object... args) { message.append(getString(R.string.AreYouSureShareMyContactInfoBotUnblock)); } builder.setMessage(message); - builder.setPositiveButton(getString("ShareContact", R.string.ShareContact), (di, i) -> { + builder.setPositiveButton(getString(R.string.ShareContact), (di, i) -> { status[0] = null; di.dismiss(); @@ -1695,7 +1796,7 @@ public void didReceivedNotification(int id, int account, Object... args) { try { JSONObject data = new JSONObject(); data.put("status", "sent"); - notifyEvent("phone_requested", data); + notifyEvent(account, finalWebView, "phone_requested", data); } catch (Exception e) { FileLog.e(e); } @@ -1706,13 +1807,13 @@ public void didReceivedNotification(int id, int account, Object... args) { try { JSONObject data = new JSONObject(); data.put("status", "sent"); - notifyEvent("phone_requested", data); + notifyEvent(account, finalWebView, "phone_requested", data); } catch (Exception e) { FileLog.e(e); } } }); - builder.setNegativeButton(getString("Cancel", R.string.Cancel), (di, i) -> { + builder.setNegativeButton(getString(R.string.Cancel), (di, i) -> { di.dismiss(); }); showDialog(4, builder.create(), () -> { @@ -1722,7 +1823,7 @@ public void didReceivedNotification(int id, int account, Object... args) { try { JSONObject data = new JSONObject(); data.put("status", status[0]); - notifyEvent("phone_requested", data); + notifyEvent(account, finalWebView, "phone_requested", data); } catch (Exception e) { FileLog.e(e); } @@ -1880,7 +1981,7 @@ public void didReceivedNotification(int id, int account, Object... args) { break; } case "web_app_biometry_open_settings": { - if (isRequestingPageOpen || System.currentTimeMillis() - lastClickMs > 1000) { + if (isRequestingPageOpen || System.currentTimeMillis() - lastClickMs > 10_000) { return; } @@ -1896,7 +1997,7 @@ public void didReceivedNotification(int id, int account, Object... args) { break; } case "web_app_share_to_story": { - if (isRequestingPageOpen || System.currentTimeMillis() - lastClickMs > 1000 || System.currentTimeMillis() - lastPostStoryMs < 2000) { + if (isRequestingPageOpen || System.currentTimeMillis() - lastClickMs > 10_000 || System.currentTimeMillis() - lastPostStoryMs < 2000) { return; } lastClickMs = 0; @@ -2125,6 +2226,7 @@ private void openQrScanActivity() { @Override public void didFindQr(String text) { try { + lastClickMs = System.currentTimeMillis(); notifyEvent("qr_text_received", new JSONObject().put("data", text)); } catch (JSONException e) { FileLog.e(e); @@ -2227,7 +2329,7 @@ public void post(String type, String data) { public void resolveShare(String json, byte[] file, String fileName, String fileMimeType) { AndroidUtilities.runOnUIThread(() -> { if (container == null) return; - if (System.currentTimeMillis() - container.lastClickMs > 1000) { + if (System.currentTimeMillis() - container.lastClickMs > 10_000) { webView.evaluateJS("window.navigator.__share__receive(\"security\")"); return; } @@ -2359,6 +2461,8 @@ default void onSendWebViewData(String data) {} */ void onWebAppSetActionBarColor(int colorKey, int color, boolean isOverrideColor); + default void onWebAppSetNavigationBarColor(int color) {}; + default void onWebAppBackgroundChanged(boolean actionBarColor, int color) {}; /** @@ -2394,7 +2498,8 @@ default void onSendWebViewData(String data) {} /** * Setups main button */ - void onSetupMainButton(boolean isVisible, boolean isActive, String text, int color, int textColor, boolean isProgressVisible); + void onSetupMainButton(boolean isVisible, boolean isActive, String text, int color, int textColor, boolean isProgressVisible, boolean hasShineEffect); + void onSetupSecondaryButton(boolean isVisible, boolean isActive, String text, int color, int textColor, boolean isProgressVisible, boolean hasShineEffect, String position); /** * Sets back button enabled and visible @@ -2618,10 +2723,15 @@ public boolean onLongClick(View v) { if (which == 0) { loadUrl(url); } else if (which == 1) { - Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - intent.putExtra(android.provider.Browser.EXTRA_CREATE_NEW_TAB, true); - intent.putExtra(android.provider.Browser.EXTRA_APPLICATION_ID, getContext().getPackageName()); - getContext().startActivity(intent); + try { + Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + intent.putExtra(android.provider.Browser.EXTRA_CREATE_NEW_TAB, true); + intent.putExtra(android.provider.Browser.EXTRA_APPLICATION_ID, getContext().getPackageName()); + getContext().startActivity(intent); + } catch (Exception e) { + FileLog.e(e); + loadUrl(url); + } } else if (which == 2) { AndroidUtilities.addToClipboard(url); if (botWebViewContainer != null) { @@ -2656,10 +2766,15 @@ public boolean onLongClick(View v) { LocaleController.getString(R.string.CopyLink) }, (dialog, which) -> { if (which == 0) { - Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(imageUrl)); - intent.putExtra(android.provider.Browser.EXTRA_CREATE_NEW_TAB, true); - intent.putExtra(android.provider.Browser.EXTRA_APPLICATION_ID, getContext().getPackageName()); - getContext().startActivity(intent); + try { + Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(imageUrl)); + intent.putExtra(android.provider.Browser.EXTRA_CREATE_NEW_TAB, true); + intent.putExtra(android.provider.Browser.EXTRA_APPLICATION_ID, getContext().getPackageName()); + getContext().startActivity(intent); + } catch (Exception e) { + FileLog.e(e); + loadUrl(imageUrl); + } } else if (which == 1) { try { String filename = URLUtil.guessFileName(imageUrl, null, "image/*"); @@ -2793,11 +2908,11 @@ public void onPageCommitVisible(WebView view, String url) { d("onPageCommitVisible " + url); if (!bot) { injectedJS = true; - evaluateJS(RLottieDrawable.readRes(null, R.raw.webview_ext).replace("$DEBUG$", "" + BuildVars.DEBUG_VERSION)); - evaluateJS(RLottieDrawable.readRes(null, R.raw.webview_share)); + evaluateJS(readRes(R.raw.webview_ext).replace("$DEBUG$", "" + BuildVars.DEBUG_VERSION)); + evaluateJS(readRes(R.raw.webview_share)); } else { injectedJS = true; - evaluateJS(RLottieDrawable.readRes(null, R.raw.webview_app_ext).replace("$DEBUG$", "" + BuildVars.DEBUG_VERSION)); + evaluateJS(readRes(R.raw.webview_app_ext).replace("$DEBUG$", "" + BuildVars.DEBUG_VERSION)); } super.onPageCommitVisible(view, url); } @@ -2870,9 +2985,11 @@ public boolean shouldOverrideUrlLoading(WebView view, String url) { } // ----- Nagram Hook end ----- - if (!bot && Browser.openInExternalApp(context, url, true)) { - d("shouldOverrideUrlLoading("+url+") = true (openInExternalBrowser)"); - if (!isPageLoaded && !canGoBack()) { + if (url.trim().startsWith("sms:")) { + return false; + } + if (url.trim().startsWith("tel:")) { + if (opener != null) { if (botWebViewContainer.delegate != null) { botWebViewContainer.delegate.onInstantClose(); } else if (onCloseListener != null) { @@ -2880,12 +2997,39 @@ public boolean shouldOverrideUrlLoading(WebView view, String url) { onCloseListener = null; } } + Browser.openUrl(context, url); return true; } - if (!bot && uriNew != null && uriNew.getScheme() != null && !("https".equals(uriNew.getScheme()) || "http".equals(uriNew.getScheme()) || "tonsite".equals(uriNew.getScheme()))) { - d("shouldOverrideUrlLoading("+url+") = true (browser open)"); - Browser.openUrl(getContext(), uriNew); - return true; + if (!bot) { + if (Browser.openInExternalApp(context, url, true)) { + d("shouldOverrideUrlLoading("+url+") = true (openInExternalBrowser)"); + if (!isPageLoaded && !canGoBack()) { + if (botWebViewContainer.delegate != null) { + botWebViewContainer.delegate.onInstantClose(); + } else if (onCloseListener != null) { + onCloseListener.run(); + onCloseListener = null; + } + } + return true; + } + if (url.startsWith("intent://") || uriNew != null && uriNew.getScheme() != null && uriNew.getScheme().equalsIgnoreCase("intent")) { + try { + final Intent intent = Intent.parseUri(uriNew.toString(), Intent.URI_INTENT_SCHEME); + final String fallbackUrl = intent.getStringExtra("browser_fallback_url"); + if (!TextUtils.isEmpty(fallbackUrl)) { + loadUrl(fallbackUrl); + return true; + } + } catch (Exception e) { + FileLog.e(e); + } + } + if (uriNew != null && uriNew.getScheme() != null && !("https".equals(uriNew.getScheme()) || "http".equals(uriNew.getScheme()) || "tonsite".equals(uriNew.getScheme()))) { + d("shouldOverrideUrlLoading("+url+") = true (browser open)"); + Browser.openUrl(getContext(), uriNew); + return true; + } } if (botWebViewContainer != null && Browser.isInternalUri(uriNew, null)) { if (!bot && "1".equals(uriNew.getQueryParameter("embed")) && "t.me".equals(uriNew.getAuthority())) { @@ -2959,11 +3103,11 @@ public void onPageFinished(WebView view, String url) { } if (!bot) { injectedJS = true; - evaluateJS(RLottieDrawable.readRes(null, R.raw.webview_ext).replace("$DEBUG$", "" + BuildVars.DEBUG_VERSION)); - evaluateJS(RLottieDrawable.readRes(null, R.raw.webview_share)); + evaluateJS(readRes(R.raw.webview_ext).replace("$DEBUG$", "" + BuildVars.DEBUG_VERSION)); + evaluateJS(readRes(R.raw.webview_share)); } else { injectedJS = true; - evaluateJS(RLottieDrawable.readRes(null, R.raw.webview_app_ext).replace("$DEBUG$", "" + BuildVars.DEBUG_VERSION)); + evaluateJS(readRes(R.raw.webview_app_ext).replace("$DEBUG$", "" + BuildVars.DEBUG_VERSION)); } saveHistory(); if (botWebViewContainer != null) { @@ -3221,7 +3365,7 @@ public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermiss new String[] {Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}, R.raw.permission_request_location, formatString(bot ? R.string.BotWebViewRequestGeolocationPermission : R.string.WebViewRequestGeolocationPermission, name), - formatString(bot ? R.string.BotWebViewRequestGeolocationPermissionWithHint : R.string.BotWebViewRequestGeolocationPermissionWithHint, name), + formatString(bot ? R.string.BotWebViewRequestGeolocationPermissionWithHint : R.string.WebViewRequestGeolocationPermissionWithHint, name), allow -> { if (lastPermissionsDialog != null) { lastPermissionsDialog = null; @@ -3917,6 +4061,6 @@ public static String magic2tonsite(String url) { } String tonsite_host = rotatedTONHosts.get(host); if (tonsite_host == null) return url; - return Browser.replace(Uri.parse(url), "tonsite", tonsite_host, null); + return Browser.replace(Uri.parse(url), "tonsite", null, tonsite_host, null); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/web/HttpGetBitmapTask.java b/TMessagesProj/src/main/java/org/telegram/ui/web/HttpGetBitmapTask.java new file mode 100644 index 0000000000..0119d3474e --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/web/HttpGetBitmapTask.java @@ -0,0 +1,74 @@ +package org.telegram.ui.web; + + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.os.AsyncTask; + +import org.telegram.messenger.SvgHelper; +import org.telegram.messenger.Utilities; + +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +public class HttpGetBitmapTask extends AsyncTask { + + private final HashMap headers = new HashMap<>(); + private final Utilities.Callback callback; + private Exception exception; + + public HttpGetBitmapTask(Utilities.Callback callback) { + this.callback = callback; + } + + public HttpGetBitmapTask setHeader(String key, String value) { + headers.put(key, value); + return this; + } + + @Override + protected Bitmap doInBackground(String... params) { + String urlString = params[0]; + + try { + URL url = new URL(urlString); + HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); + for (Map.Entry e : headers.entrySet()) { + if (e.getKey() == null || e.getValue() == null) continue; + urlConnection.setRequestProperty(e.getKey(), e.getValue()); + } + urlConnection.setRequestMethod("GET"); + urlConnection.setDoInput(true); + + int statusCode = urlConnection.getResponseCode(); + if (statusCode >= 200 && statusCode < 300) { + if (urlConnection.getContentType() != null && urlConnection.getContentType().contains("svg")) { + return SvgHelper.getBitmap(new BufferedInputStream(urlConnection.getInputStream()), 64, 64, false); + } + return BitmapFactory.decodeStream(new BufferedInputStream(urlConnection.getInputStream())); + } else { + urlConnection.disconnect(); + return null; + } + } catch (Exception e) { + this.exception = e; + return null; + } + } + + @Override + protected void onPostExecute(Bitmap result) { + if (callback != null) { + if (exception == null) { + callback.run(result); + } else { + callback.run(null); + } + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/web/MHTML.java b/TMessagesProj/src/main/java/org/telegram/ui/web/MHTML.java new file mode 100644 index 0000000000..68729e6982 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/web/MHTML.java @@ -0,0 +1,296 @@ +package org.telegram.ui.web; + +import android.util.Base64; +import android.util.Base64InputStream; + +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FilterInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.HashMap; + +public class MHTML { + + public final File file; + public final HashMap headers = new HashMap<>(); + public final String boundary; + + public final ArrayList entries = new ArrayList<>(); + public final HashMap entriesByLocation = new HashMap<>(); + private final long[] filePos = new long[1]; + + public MHTML(File file) throws FileNotFoundException, IOException { + this.file = file; + + final FileInputStream fileInputStream = new FileInputStream(file); + final BufferedReader reader = new BufferedReader(new InputStreamReader(fileInputStream)); + + this.headers.putAll(parseHeaders(reader)); + this.boundary = HeaderValue.getProp(headers.get("content-type"), "boundary"); + if (this.boundary != null) { + parseEntries(reader, fileInputStream); + } + + reader.close(); + } + + private void parseEntries(BufferedReader reader, FileInputStream stream) throws IOException { + String line; + Entry currentEntry = null; + final int boundarylen = 2 + boundary.length(); + while ((line = reader.readLine()) != null) { + filePos[0] += line.getBytes().length + 2; // 2 = CRLF, TODO(@dkaraush): support proper offset calc + if (line.length() == boundarylen && line.substring(2).equals(boundary)) { + if (currentEntry != null) { + currentEntry.end = filePos[0] - boundarylen - 2; + entries.add(currentEntry); + entriesByLocation.put(currentEntry.getLocation(), currentEntry); + } + currentEntry = new Entry(); + currentEntry.file = file; + currentEntry.headers.putAll(parseHeaders(reader)); + currentEntry.start = filePos[0]; + } + } + if (currentEntry != null && currentEntry.start != 0 && currentEntry.end != 0) { + entries.add(currentEntry); + entriesByLocation.put(currentEntry.getLocation(), currentEntry); + } + } + + private HashMap parseHeaders(BufferedReader reader) throws IOException { + final HashMap headers = new HashMap<>(); + String line; + String currentHeader = null; + StringBuilder currentValue = null; + while ((line = reader.readLine()) != null) { + filePos[0] += line.getBytes().length + 2; // 2 = CRLF, TODO(@dkaraush): support proper offset calc + line = line.trim(); + if (line.isEmpty()) { + break; + } + + if (currentHeader != null && currentValue != null) { + currentValue.append(line); + if (!line.endsWith(";")) { + appendHeader(currentHeader, currentValue.toString(), headers); + currentHeader = null; + currentValue = null; + } + } else { + int index = line.indexOf(':'); + if (index < 0) { + continue; + } + + final String name = line.substring(0, index).trim(); + final String value = line.substring(index + 1).trim(); + if (value.endsWith(";")) { + currentHeader = name; + currentValue = new StringBuilder(); + currentValue.append(value); + } else { + appendHeader(name, value, headers); + } + } + } + if (currentHeader != null && currentValue != null) { + appendHeader(currentHeader, currentValue.toString(), headers); + } + return headers; + } + + private static void appendHeader(String nameString, String valueString, final HashMap headers) { + final HeaderValue headerValue = new HeaderValue(); + final String[] parts = valueString.split(";(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"); + for (int i = 0; i < parts.length; ++i) { + final String part = parts[i].trim(); + if (part.isEmpty()) continue; + int index = part.indexOf('='); + if (i == 0 || index < 0) { + headerValue.value = part; + continue; + } + String name = part.substring(0, index).trim(); + String value = part.substring(index + 1).trim(); + if (value.length() >= 2 && value.charAt(0) == '"' && value.charAt(value.length() - 1) == '"') + value = value.substring(1, value.length() - 1); + headerValue.props.put(name, value); + } + headers.put(nameString.trim().toLowerCase(), headerValue); + } + + public static class Entry { + public final HashMap headers = new HashMap<>(); + + public File file; + public long start, end; + + private Entry() {} + + public String getType() { + return HeaderValue.getValue(headers.get("content-type")); + } + + public String getLocation() { + return HeaderValue.getValue(headers.get("content-location")); + } + + public String getTransferEncoding() { + return HeaderValue.getValue(headers.get("content-transfer-encoding")); + } + + public String getId() { + return HeaderValue.getValue(headers.get("content-id")); + } + + public InputStream getRawInputStream() throws IOException { + return new BoundedInputStream(file, start, end); + } + + public InputStream getInputStream() throws IOException { + InputStream stream = new BufferedInputStream(getRawInputStream()); + if ("base64".equals(getTransferEncoding())) { + return new Base64InputStream(stream, Base64.DEFAULT); + } else if ("quoted-printable".equalsIgnoreCase(getTransferEncoding())) { + return new QuotedPrintableInputStream(stream); + } else { + return stream; + } + } + + public String getData() throws IOException { + final InputStream inputStream = getInputStream(); + StringBuilder stringBuilder = new StringBuilder(); + String line; + try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream), 8192 * 4)) { + while ((line = bufferedReader.readLine()) != null) { + stringBuilder.append(line); + stringBuilder.append(System.lineSeparator()); + } + } + inputStream.close(); + return stringBuilder.toString(); + } + } + + public static class HeaderValue { + public String value; + public final HashMap props = new HashMap<>(); + + private HeaderValue() {} + + public static String getValue(HeaderValue headerValue) { + if (headerValue == null) return null; + return headerValue.value; + } + + public static String getProp(HeaderValue headerValue, String name) { + if (headerValue == null) return null; + return headerValue.props.get(name); + } + } + + public static class QuotedPrintableInputStream extends FilterInputStream { + + public QuotedPrintableInputStream(InputStream stream) { + super(stream); + } + + @Override + public int read() throws IOException { + int c = in.read(); + if (c == '=') { + int next1 = in.read(); + int next2 = in.read(); + if (next1 == -1 || next2 == -1) { + throw new IOException("Invalid quoted-printable encoding"); + } + if (next1 == '\r' && next2 == '\n') { + return read(); + } else if (next1 == '\n' || next2 == '\n') { + return next2; + } else { + return hexToByte(next1, next2); + } + } + return c; + } + + @Override + public int read(byte[] b, int off, int len) throws IOException { + int bytesRead = 0; + for (int i = 0; i < len; i++) { + int c = read(); + if (c == -1) { + if (bytesRead == 0) { + return -1; // End of stream + } + break; // Partial read + } + b[off + i] = (byte) c; + bytesRead++; + } + return bytesRead; + } + + private int hexToByte(int high, int low) { + return (hexDigitToInt(high) << 4) | hexDigitToInt(low); + } + + private int hexDigitToInt(int digit) { + if (digit >= '0' && digit <= '9') { + return digit - '0'; + } else if (digit >= 'A' && digit <= 'F') { + return digit - 'A' + 10; + } else if (digit >= 'a' && digit <= 'f') { + return digit - 'a' + 10; + } else { + throw new IllegalArgumentException("Invalid hexadecimal digit"); + } + } + } + + public static class BoundedInputStream extends FileInputStream { + private final long endOffset; + private long bytesRead = 0; + + public BoundedInputStream(File file, long startOffset, long endOffset) throws FileNotFoundException, IOException { + super(file); + this.endOffset = endOffset; + if (startOffset > 0) { + long skipped = skip(startOffset); + if (skipped != startOffset) { + throw new RuntimeException("BoundedInputStream failed to skip"); + } + } + } + + @Override + public int read() throws IOException { + if (getChannel().position() >= endOffset) { + return -1; + } + return super.read(); + } + + @Override + public int read(byte[] b, int off, int len) throws IOException { + if (getChannel().position() >= endOffset) { + return -1; + } + long maxLen = endOffset - getChannel().position(); + if (len > maxLen) { + len = (int) maxLen; + } + return super.read(b, off, len); + } + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/web/WebActionBar.java b/TMessagesProj/src/main/java/org/telegram/ui/web/WebActionBar.java index 2c728e55dd..28037a4d79 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/web/WebActionBar.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/web/WebActionBar.java @@ -21,6 +21,7 @@ import android.graphics.RectF; import android.graphics.drawable.Drawable; import android.text.Editable; +import android.text.TextPaint; import android.text.TextUtils; import android.text.TextWatcher; import android.util.TypedValue; @@ -45,6 +46,8 @@ import org.telegram.messenger.R; import org.telegram.messenger.SharedConfig; import org.telegram.messenger.Utilities; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.ActionBar.ActionBarMenuSubItem; import org.telegram.ui.ActionBar.BackDrawable; import org.telegram.ui.ActionBar.OKLCH; import org.telegram.ui.ActionBar.Theme; @@ -78,6 +81,10 @@ public class WebActionBar extends FrameLayout { public int textColor, iconColor; public int addressBackgroundColor, addressTextColor; + public final TextPaint titlePaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); + + public boolean isMenuShown = false; + public int height = dp(56); public float scale = 1f; @@ -120,6 +127,7 @@ public class WebActionBar extends FrameLayout { public static final int bookmarks_item = 7; public static final int history_item = 8; public static final int forward_item = 9; + public static final int instant_item = 10; public static final int trans_item = 100; public boolean trans = false; @@ -128,6 +136,9 @@ public WebActionBar(Context context, Theme.ResourcesProvider resourcesProvider) super(context); this.resourcesProvider = resourcesProvider; + titlePaint.setTypeface(AndroidUtilities.bold()); + titlePaint.setTextSize(dp(18.33f)); + for (int i = 0; i < 2; ++i) { backgroundPaint[i] = new Paint(Paint.ANTI_ALIAS_FLAG); progressBackgroundPaint[i] = new Paint(Paint.ANTI_ALIAS_FLAG); @@ -216,6 +227,18 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (hasForward) { o.add(R.drawable.msg_arrow_forward, getString(R.string.WebForward), click.run(forward_item)); } + final WebInstantView.Loader instantView = getInstantViewLoader(); + if (instantView != null && !(instantView.isDone() && instantView.getWebPage() == null)) { + o.add(R.drawable.menu_instant_view, getString(R.string.OpenLocalInstantView), click.run(instant_item)); + ActionBarMenuSubItem item = o.getLast(); + item.setEnabled(instantView.getWebPage() != null); + item.setAlpha(item.isEnabled() ? 1f : 0.5f); + Runnable cancel = instantView.listen(() -> { + item.setEnabled(instantView.getWebPage() != null); + item.animate().alpha(item.isEnabled() ? 1f : 0.5f); + }); + o.setOnDismiss(cancel); + } o.add(R.drawable.msg_reset, getString(R.string.Refresh), click.run(reload_item)); o.add(R.drawable.msg_search, getString(R.string.Search), click.run(search_item)); o.add(R.drawable.msg_saved, getString(R.string.WebBookmark), click.run(bookmark_item)); @@ -227,7 +250,11 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { o.add(R.drawable.menu_browser_bookmarks, getString(R.string.WebBookmarks), click.run(bookmarks_item)); o.add(R.drawable.msg_settings_old, getString(R.string.Settings), click.run(settings_item)); } + o.setOnDismiss(() -> { + isMenuShown = false; + }); o.show(); + isMenuShown = true; }); menuButton.setBackground(menuButtonSelector = Theme.createSelectorDrawable(Theme.ACTION_BAR_WHITE_SELECTOR_COLOR)); menuButton.setContentDescription(getString("AccDescrMoreOptions", R.string.AccDescrMoreOptions)); @@ -338,6 +365,10 @@ public boolean onTouchEvent(MotionEvent event) { setMenuColors(Theme.getColor(Theme.key_iv_background, resourcesProvider)); } + protected WebInstantView.Loader getInstantViewLoader() { + return null; + } + private boolean occupyStatusBar; public void occupyStatusBar(boolean occupyStatusBar) { this.occupyStatusBar = occupyStatusBar; @@ -469,12 +500,17 @@ public int getBackgroundColor(int i) { public int menuTextColor; public int menuIconColor; public boolean hasForward; + public boolean hasLoaded; public boolean isTonsite; public void setHasForward(boolean value) { this.hasForward = value; } + public void setIsLoaded(boolean value) { + this.hasLoaded = value; + } + public void setMenuColors(int backgroundColor) { double[] lch = OKLCH.rgb2oklch(OKLCH.rgb(backgroundColor)); final boolean isDark = lch[0] < .5f; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/web/WebBrowserSettings.java b/TMessagesProj/src/main/java/org/telegram/ui/web/WebBrowserSettings.java index 1b2e705f78..4bb3530f5c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/web/WebBrowserSettings.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/web/WebBrowserSettings.java @@ -58,7 +58,8 @@ import org.telegram.ui.Components.UItem; import org.telegram.ui.Components.UniversalAdapter; import org.telegram.ui.Components.UniversalFragment; - +import org.telegram.ui.Stars.StarsIntroActivity; +import org.telegram.ui.Stories.bots.BotPreviewsEditContainer; import java.io.File; import java.util.ArrayList; import java.util.concurrent.atomic.AtomicReference; @@ -239,6 +240,7 @@ protected void fillItems(ArrayList items, UniversalAdapter adapter) { } if (BuildVars.DEBUG_PRIVATE_VERSION) { items.add(UItem.asCheck(12, "adaptable colors").setChecked(SharedConfig.adaptableColorInBrowser)); + items.add(UItem.asCheck(13, "only local IV").setChecked(SharedConfig.onlyLocalInstantView)); } } @@ -247,6 +249,9 @@ protected void onClick(UItem item, View view, int position, float x, float y) { if (item.id == 12) { SharedConfig.toggleBrowserAdaptableColors(); ((TextCheckCell) view).setChecked(SharedConfig.adaptableColorInBrowser); + } else if (item.id == 13) { + SharedConfig.toggleLocalInstantView(); + ((TextCheckCell) view).setChecked(SharedConfig.onlyLocalInstantView); } else if (item.id == BUTTON_TOGGLE) { SharedConfig.toggleInappBrowser(); ((TextCheckCell) view).setChecked(SharedConfig.inappBrowser); @@ -485,7 +490,7 @@ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { b.setPositiveButton(LocaleController.getString(R.string.Done), (dialogInterface, i) -> { done.run(); }); - b.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), (dialogInterface, i) -> { + b.setNegativeButton(LocaleController.getString(R.string.Cancel), (dialogInterface, i) -> { dialogInterface.dismiss(); }); @@ -619,6 +624,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } public static class Factory extends UItem.UItemFactory { + static { setup(new Factory()); } @Override public WebsiteView createView(Context context, int currentAccount, int classGuid, Theme.ResourcesProvider resourcesProvider) { return new WebsiteView(context); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/web/WebInstantView.java b/TMessagesProj/src/main/java/org/telegram/ui/web/WebInstantView.java new file mode 100644 index 0000000000..ce78dc60e8 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/web/WebInstantView.java @@ -0,0 +1,1288 @@ +package org.telegram.ui.web; + +import static org.telegram.messenger.AndroidUtilities.dp; +import static org.telegram.messenger.AndroidUtilities.readRes; +import static org.telegram.messenger.LocaleController.getString; + +import android.app.Activity; +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.os.Build; +import android.text.TextUtils; +import android.util.JsonReader; +import android.util.Log; +import android.util.Pair; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.webkit.JavascriptInterface; +import android.webkit.WebChromeClient; +import android.webkit.WebResourceResponse; +import android.webkit.WebSettings; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.FrameLayout; + +import com.google.common.collect.Lists; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.telegram.messenger.AndroidUtilities; +import org.telegram.messenger.ApplicationLoader; +import org.telegram.messenger.BuildVars; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.ImageReceiver; +import org.telegram.messenger.MessagesController; +import org.telegram.messenger.R; +import org.telegram.messenger.SharedConfig; +import org.telegram.messenger.SvgHelper; +import org.telegram.messenger.Timer; +import org.telegram.messenger.Utilities; +import org.telegram.messenger.browser.Browser; +import org.telegram.tgnet.ConnectionsManager; +import org.telegram.tgnet.TLRPC; +import org.telegram.ui.Components.LayoutHelper; +import org.telegram.ui.LaunchActivity; + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.StringReader; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; + +import javax.annotation.Nullable; + +public class WebInstantView { + + public String url; + public MHTML mhtml; + public TLRPC.WebPage webpage; + + public final HashMap loadedPhotos = new HashMap<>(); + public static final HashMap instants = new HashMap<>(); + + public static Runnable generate(WebView webView, boolean unsafe, Utilities.Callback whenDone) { + if (whenDone == null) return null; + if (webView == null) { + whenDone.run(null); + return null; + } + + final boolean[] cancelled = new boolean[] { false }; + + final WebInstantView instant = new WebInstantView(); + instant.url = webView.getUrl(); + + final Timer t = Timer.create("WebInstantView"); + final Timer.Task task_getHTML = Timer.start(t, "getHTML"); + instant.getHTML(webView, unsafe, dirty_html -> { + Timer.done(task_getHTML); + if (cancelled[0]) { + return; + } + final Timer.Task task_readHTML = Timer.start(t, "readHTML"); + instant.readHTML(instant.url, dirty_html, json -> { + Timer.done(task_readHTML); + if (cancelled[0]) { + return; + } + final Timer.Task task_parseJSON = Timer.start(t, "parseJSON"); + try { + instant.webpage = instant.parseJSON(instant.url, json); + } catch (Exception e) { + Timer.log(t, "error: " + e); + FileLog.e(e); + } + Timer.done(task_parseJSON); + whenDone.run(instant); + if (instant.webpage != null) { + instants.put(instant.webpage, instant); + } + Timer.finish(t); + }); + }); + + return () -> { + cancelled[0] = true; + }; + } + + public void recycle() { + instants.remove(webpage); + for (Map.Entry e : loadedPhotos.entrySet()) { + AndroidUtilities.recycleBitmap(e.getValue()); + } + loadedPhotos.clear(); + if (webpage != null && webpage.cached_page != null && webpage.cached_page.photos != null) { + for (TLRPC.Photo photo : webpage.cached_page.photos) { + if (photo instanceof WebPhoto) { + WebPhoto webPhoto = (WebPhoto) photo; + if (loadingPhotos != null) { + loadingPhotos.remove(webPhoto.url); + } + } + } + } + } + + public class WebPhoto extends TLRPC.Photo { + public WebInstantView instantView; + + public String url; + public HashSet urls = new HashSet<>(); + public int w, h; + + public TLRPC.TL_textImage inlineImage; + } + + public static void loadPhoto(WebPhoto photo, ImageReceiver imageReceiver, Runnable receivedSize) { + if (photo == null || photo.instantView == null) return; + photo.instantView.loadPhotoInternal(photo, imageReceiver, receivedSize); + } + + private static HashMap>> loadingPhotos; + + private void loadPhotoInternal(WebPhoto photo, ImageReceiver imageReceiver, Runnable receivedSize) { + try { + MHTML.Entry entry = null; + if (mhtml != null) { + for (String url : photo.urls) { + entry = mhtml.entriesByLocation.get(url); + if (entry != null) break; + } + } + if (entry != null) { + Bitmap bitmap; + if (entry.getType().contains("svg")) { + if (photo.w <= 0 || photo.h <= 0) return; + bitmap = SvgHelper.getBitmap(entry.getInputStream(), dp(photo.w), dp(photo.h), false); + } else { + if (photo.w <= 0 || photo.h <= 0) { + final BitmapFactory.Options opts = new BitmapFactory.Options(); + opts.inJustDecodeBounds = true; + BitmapFactory.decodeStream(entry.getInputStream(), null, opts); + + if (photo.w == 0 && photo.h == 0) { + photo.w = opts.outWidth; + photo.h = opts.outHeight; + } else if (photo.w == 0) { + photo.w = (int) ((float) opts.outWidth / opts.outHeight * photo.h); + } else if (photo.h == 0) { + photo.h = (int) ((float) opts.outHeight / opts.outWidth * photo.w); + } + if (photo.inlineImage != null) { + photo.inlineImage.w = photo.w; + photo.inlineImage.h = photo.h; + } + if (receivedSize != null) { + receivedSize.run(); + } + } + bitmap = BitmapFactory.decodeStream(entry.getInputStream()); + } + imageReceiver.setImageBitmap(bitmap); + return; + } + if (loadedPhotos.containsKey(photo.url)) { + final Bitmap bitmap = loadedPhotos.get(photo.url); + imageReceiver.setImageBitmap(bitmap); + return; + } + if (loadingPhotos == null) loadingPhotos = new HashMap<>(); + ArrayList> currentImageReceivers = loadingPhotos.get(photo.url); + if (currentImageReceivers != null) { + boolean contains = false; + for (int i = 0; i < currentImageReceivers.size(); ++i) { + if (currentImageReceivers.get(i).first == imageReceiver) { + contains = true; + break; + } + } + if (!contains) + currentImageReceivers.add(new Pair<>(imageReceiver, receivedSize)); + return; + } + currentImageReceivers = new ArrayList<>(); + loadingPhotos.put(photo.url, currentImageReceivers); + new HttpGetBitmapTask(bitmap -> AndroidUtilities.runOnUIThread(() -> { + if (loadingPhotos == null) return; + final boolean updatedSize = (photo.w <= 0 || photo.h <= 0) && bitmap != null; + if (bitmap != null) { + loadedPhotos.put(photo.url, bitmap); + if (updatedSize) { + if (photo.w == 0 && photo.h == 0) { + photo.w = bitmap.getWidth(); + photo.h = bitmap.getHeight(); + } else if (photo.w == 0) { + photo.w = (int) ((float) bitmap.getWidth() / bitmap.getHeight() * photo.h); + } else if (photo.h == 0) { + photo.h = (int) ((float) bitmap.getHeight() / bitmap.getWidth() * photo.w); + } + if (photo.inlineImage != null) { + photo.inlineImage.w = photo.w; + photo.inlineImage.h = photo.h; + } + } + } + final ArrayList> receivingImageReceivers = loadingPhotos.remove(photo.url); + if (receivingImageReceivers == null) return; + for (Pair pair : receivingImageReceivers) { + pair.first.setImageBitmap(bitmap); + if (updatedSize && pair.second != null) { + pair.second.run(); + } + } + + })).execute(photo.url); + } catch (Exception e) { + FileLog.e(e); + } + } + + public static void cancelLoadPhoto(ImageReceiver imageReceiver) { + if (loadingPhotos == null) return; + for (Map.Entry>> e : loadingPhotos.entrySet()) { + final String url = e.getKey(); + final ArrayList> imageReceivers = e.getValue(); + for (int i = 0; i < imageReceivers.size(); ++i) { + if (imageReceivers.get(i).first == imageReceiver) { + imageReceivers.remove(i); + break; + } + } + if (imageReceivers.isEmpty()) { + loadingPhotos.remove(url); + break; + } + } + } + + public static void recycle(TLRPC.WebPage webPage) { + WebInstantView webInstantView = instants.remove(webPage); + if (webInstantView != null) { + webInstantView.recycle(); + } + } + + public void getHTML(WebView webView, boolean unsafe, Utilities.Callback whenDone) { + if (whenDone == null) return; + if (webView == null) { + whenDone.run(null); + return; + } + + if (unsafe) { + webView.evaluateJavascript("document.documentElement.outerHTML", str -> { + try { + JsonReader reader = new JsonReader(new StringReader(str)); + reader.setLenient(true); + String html = reader.nextString(); + reader.close(); + whenDone.run(new ByteArrayInputStream(html.getBytes(StandardCharsets.UTF_8))); + } catch (Exception e) { + FileLog.e(e); + whenDone.run(null); + } + }); + return; + } + + final long start = System.currentTimeMillis(); + + final File archiveFile = new File(AndroidUtilities.getCacheDir(), "archive.mht"); + webView.evaluateJavascript(readRes(R.raw.open_collapsed).replace("$OPEN$", "true"), v -> { + webView.saveWebArchive(archiveFile.getAbsolutePath(), false, filename -> { + webView.evaluateJavascript(readRes(R.raw.open_collapsed).replace("$OPEN$", "false"), v2 -> {}); + + String html = null; + + try { + mhtml = new MHTML(archiveFile); + if (!mhtml.entries.isEmpty()) { + whenDone.run(mhtml.entries.get(0).getInputStream()); + return; + } + } catch (Exception e) { + FileLog.e(e); + } + + whenDone.run(null); + }); + }); + } + + public void readHTML(String url, InputStream stream, Utilities.Callback whenDone) { + if (whenDone == null) return; + if (stream == null) { + whenDone.run(null); + return; + } + + Context context = LaunchActivity.instance; + if (context == null) context = ApplicationLoader.applicationContext; + + final Activity activity = AndroidUtilities.findActivity(context); + if (activity == null) { + whenDone.run(null); + return; + } + final View rootView = activity.findViewById(android.R.id.content).getRootView(); + if (!(rootView instanceof ViewGroup)) { + whenDone.run(null); + return; + } + final ViewGroup container = (ViewGroup) rootView; + final FrameLayout webViewContainer = new FrameLayout(context) { + @Override + protected boolean drawChild(Canvas canvas, View child, long drawingTime) { + return false; + } + @Override + public boolean onTouchEvent(MotionEvent event) { + return false; + } + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + return false; + } + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(MeasureSpec.makeMeasureSpec(dp(500), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(dp(500), MeasureSpec.EXACTLY)); + } + }; + container.addView(webViewContainer); + + final WebView webView = new WebView(context); + final WebSettings settings = webView.getSettings(); + settings.setAllowContentAccess(false); + settings.setDatabaseEnabled(false); + settings.setAllowFileAccess(false); + settings.setJavaScriptEnabled(true); + settings.setSaveFormData(false); + settings.setGeolocationEnabled(false); + settings.setDomStorageEnabled(false); + settings.setAllowFileAccessFromFileURLs(false); + settings.setAllowUniversalAccessFromFileURLs(false); + + webView.setWebViewClient(new WebViewClient() { + private boolean firstLoad = true; + private boolean streamLoaded; + @androidx.annotation.Nullable + @Override + public WebResourceResponse shouldInterceptRequest(WebView view, String url) { + InputStream requestStream = null; + String mime = "text/html"; + if (firstLoad) { + firstLoad = false; + final String script = readRes(R.raw.instant).replace("$DEBUG$", "" + BuildVars.DEBUG_VERSION); + final String html = ""; + return new WebResourceResponse("text/html", "UTF-8", new ByteArrayInputStream(html.getBytes(StandardCharsets.UTF_8))); + } else if (url != null && url.endsWith("/index.html")) { + mime = "application/octet-stream"; + if (streamLoaded) { + MHTML.Entry entry = mhtml != null ? mhtml.entries.get(0) : null; + if (entry == null) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return new WebResourceResponse(mime, "UTF-8", null); + return new WebResourceResponse("text/plain", "utf-8", 404, "Not Found", null, null); + } + try { + requestStream = entry.getInputStream(); + } catch (IOException e) { + FileLog.e(e); + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return new WebResourceResponse(mime, "UTF-8", null); + return new WebResourceResponse("text/plain", "utf-8", 503, "Server error", null, null); + } + } else { + requestStream = stream; + streamLoaded = true; + } + } else { + MHTML.Entry entry = mhtml != null ? mhtml.entriesByLocation.get(url) : null; + if (entry == null) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return new WebResourceResponse(mime, "UTF-8", null); + return new WebResourceResponse("text/plain", "utf-8", 404, "Not Found", null, null); + } + mime = entry.getType(); + if (!"text/html".equalsIgnoreCase(mime) && !"text/css".equalsIgnoreCase(mime)) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return new WebResourceResponse(mime, "UTF-8", null); + return new WebResourceResponse("text/plain", "utf-8", 404, "Not Found", null, null); + } + try { + requestStream = entry.getInputStream(); + } catch (IOException e) { + FileLog.e(e); + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return new WebResourceResponse(mime, "UTF-8", null); + return new WebResourceResponse("text/plain", "utf-8", 503, "Server error", null, null); + } + } + return new WebResourceResponse(mime, null, requestStream); + } + }); + webView.setWebChromeClient(new WebChromeClient() { + + }); + webViewContainer.addView(webView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT)); + final boolean[] done = new boolean[] { false }; + webView.addJavascriptInterface(new Object() { + @JavascriptInterface + public void done(String json) { + AndroidUtilities.runOnUIThread(() -> { + if (done[0]) return; + done[0] = true; + + if (!BuildVars.DEBUG_PRIVATE_VERSION) { + webView.onPause(); + webView.destroy(); + AndroidUtilities.removeFromParent(webView); + AndroidUtilities.removeFromParent(webViewContainer); + } + + JSONObject rez = null; + try { + rez = new JSONObject(json); + } catch (Exception e) { + FileLog.e(e); + } + whenDone.run(rez); + }); + } + }, "Instant"); + webView.loadUrl(url); + } + + public TLRPC.TL_webPage parseJSON(String url, JSONObject root) throws JSONException { + TLRPC.TL_webPage webpage = new TLRPC.TL_webPage(); + + webpage.id = 0L; + webpage.url = url; + webpage.display_url = url; + + String sitename = root.getString("siteName"); + if (sitename != null && !"null".equals(sitename)) { + webpage.flags |= 2; + webpage.site_name = sitename; + } + + String title = root.optString("title"); + if (title != null && !"null".equals(title)) { + webpage.flags |= 4; + webpage.title = title; + } + + String byline = root.optString("byline"); + if (byline != null && !"null".equals(byline) && !"by".equalsIgnoreCase(byline)) { + webpage.flags |= 256; + webpage.author = byline; + } + + String excerpt = root.optString("excerpt"); + if (excerpt != null && !"null".equals(excerpt)) { + webpage.flags |= 8; + webpage.description = excerpt; + } + + JSONArray content = root.optJSONArray("content"); + if (content != null && !"null".equals(content)) { + webpage.flags |= 1024; + webpage.cached_page = parsePage(url, root); + } + + return webpage; + } + + public TLRPC.TL_page parsePage(String url, JSONObject parsed) throws JSONException { + String title = parsed.optString("title"); + if ("null".equals(title)) title = null; +// String byline = parsed.optString("byline"); +// if ("null".equals(byline) || "by".equalsIgnoreCase(byline)) byline = null; + String publishedTime = parsed.optString("publishedTime"); + if ("null".equals(publishedTime)) publishedTime = null; + + final JSONArray content = parsed.optJSONArray("content"); + + final TLRPC.TL_page page = new TLRPC.TL_page(); + page.web = true; + page.url = url; + page.blocks.addAll(parsePageBlocks(url, content, page)); + if (page.blocks.isEmpty() || !(page.blocks.get(0) instanceof TLRPC.TL_pageBlockHeader)) { +// if (byline != null || publishedTime != null) { +// final TLRPC.TL_pageBlockAuthorDate authorDate = new TLRPC.TL_pageBlockAuthorDate(); +// authorDate.author = trim(parseRichText(byline)); +// page.blocks.add(0, authorDate); +// } + + final TLRPC.TL_pageBlockTitle blockTitle = new TLRPC.TL_pageBlockTitle(); + blockTitle.text = trim(parseRichText(title)); + page.blocks.add(0, blockTitle); + } + return page; + } + + public ArrayList parsePageBlocks(String url, JSONArray json, TLRPC.TL_page page) throws JSONException { + final ArrayList blocks = new ArrayList<>(); + for (int i = 0; i < json.length(); ++i) { + Object obj = json.get(i); + TLRPC.PageBlock block = null; + if (obj instanceof String) { + TLRPC.TL_pageBlockParagraph p = new TLRPC.TL_pageBlockParagraph(); + p.text = parseRichText((String) obj); + blocks.add(p); + } else if (obj instanceof JSONObject) { + JSONObject o = (JSONObject) obj; + final String tag = o.optString("tag"); + final JSONArray content = o.optJSONArray("content"); + switch (tag) { + case "p": + TLRPC.TL_pageBlockParagraph p = new TLRPC.TL_pageBlockParagraph(); + p.text = trim(parseRichText(o, page)); + blocks.add(p); + break; + case "h1": + case "h2": + TLRPC.TL_pageBlockHeader h1 = new TLRPC.TL_pageBlockHeader(); + h1.text = trim(parseRichText(o, page)); + blocks.add(h1); + break; + case "h3": + case "h4": + case "h5": + case "h6": + TLRPC.TL_pageBlockSubheader h = new TLRPC.TL_pageBlockSubheader(); + h.text = trim(parseRichText(o, page)); + blocks.add(h); + break; + case "pre": + TLRPC.TL_pageBlockPreformatted pre = new TLRPC.TL_pageBlockPreformatted(); + TLRPC.TL_textFixed text = new TLRPC.TL_textFixed(); + text.text = trim(parseRichText(o, page)); + pre.text = text; + pre.language = ""; + blocks.add(pre); + break; + case "blockquote": + TLRPC.TL_pageBlockBlockquote blockquote = new TLRPC.TL_pageBlockBlockquote(); + blockquote.text = trim(parseRichText(o, page)); + TLRPC.TL_textItalic italic = new TLRPC.TL_textItalic(); + italic.text = blockquote.text; + blockquote.text = italic; + blocks.add(blockquote); + break; + case "img": + TLRPC.TL_pageBlockPhoto img = parseImage(o, page); + if (img != null) { + blocks.add(img); + } + break; + case "figure": + case "picture": + TLRPC.TL_pageBlockPhoto figure = parseFigure(o, page); + if (figure != null) { + blocks.add(figure); + } + break; + case "table": + blocks.add(parseTable(url, o, page)); + break; + case "ul": + case "ol": + blocks.add(parseList(url, o, page)); + break; + case "hr": + blocks.add(new TLRPC.TL_pageBlockDivider()); + break; + case "details": + TLRPC.TL_pageBlockDetails details = parseDetails(url, o, page); + if (details != null) { + blocks.add(details); + } + break; + case "b": + case "strong": + case "i": + case "s": + case "a": + case "code": + case "mark": + case "sub": + case "sup": + case "span": + JSONArray arr = new JSONArray(); + arr.put(o); + + TLRPC.TL_pageBlockParagraph p2 = new TLRPC.TL_pageBlockParagraph(); + p2.text = parseRichText(arr, page); + blocks.add(p2); + break; + default: + if (content != null) { + ArrayList subblocks = parsePageBlocks(url, content, page); + blocks.addAll(subblocks); + } + break; + } + } + } + return blocks; + } + + public static TLRPC.RichText applyAnchor(TLRPC.RichText text, JSONObject tag) { + if (tag == null) return text; + final String id = tag.optString("id"); + if (TextUtils.isEmpty(id)) return text; + TLRPC.TL_textAnchor anchor = new TLRPC.TL_textAnchor(); + anchor.text = text; + anchor.name = id; + return anchor; + } + + @Nullable + public TLRPC.TL_pageBlockPhoto parseFigure(JSONObject figure, TLRPC.TL_page page) throws JSONException { + final JSONArray content = figure.optJSONArray("content"); + TLRPC.TL_pageBlockPhoto block = null; + TLRPC.RichText caption = null; + final ArrayList urls = new ArrayList<>(); + for (int i = 0; i < content.length(); ++i) { + Object o = content.get(i); + if (o instanceof JSONObject) { + JSONObject element = (JSONObject) o; + final String tag = element.optString("tag"); + if ("figurecaption".equalsIgnoreCase(tag) || "caption".equalsIgnoreCase(tag)) { + caption = trim(parseRichText(element, page)); + } else if ("img".equalsIgnoreCase(tag)) { + block = parseImage(element, page); + } else if ("source".equalsIgnoreCase(tag)) { + String src = element.optString("src"); + if (!TextUtils.isEmpty(src)) { + urls.add(src); + } else { + src = element.optString("srcset"); + if (!TextUtils.isEmpty(src)) { + String[] sets = src.split(","); + for (int j = 0; j < sets.length; ++j) { + String set = sets[j].trim(); + set = set.split(" ")[0]; + set = set.trim(); + urls.add(set); + } + } + } + } + } + } + if (block == null) return null; + if (caption != null) { + block.caption = new TLRPC.TL_pageCaption(); + block.caption.text = caption; + block.caption.credit = new TLRPC.TL_textEmpty(); + } + WebPhoto photo = null; + for (int i = 0; i < page.photos.size(); ++i) { + if (page.photos.get(i) instanceof WebPhoto && page.photos.get(i).id == block.photo_id) { + photo = ((WebPhoto) page.photos.get(i)); + break; + } + } + if (photo != null) { + photo.urls.addAll(urls); + } + return block; + } + + public TLRPC.TL_pageBlockPhoto parseImage(JSONObject img, TLRPC.TL_page page) { + TLRPC.TL_pageBlockPhoto block = new TLRPC.TL_pageBlockPhoto(); + block.caption = new TLRPC.TL_pageCaption(); + final String alt = img.optString("alt"); + if (alt != null) { + block.caption.text = trim(parseRichText(alt)); + block.caption.credit = trim(parseRichText("")); + } + final String src = img.optString("src"); + if (src == null) return null; + + WebPhoto photo = new WebPhoto(); + photo.instantView = this; + photo.id = -1 - page.photos.size(); + photo.url = src; + photo.urls.add(src); + try { + photo.w = Integer.parseInt(img.optString("width")); + } catch (Exception ignore) {} + try { + photo.h = Integer.parseInt(img.optString("height")); + } catch (Exception ignore) {} + if (photo.w == 0) photo.w = photo.h; + if (photo.h == 0) photo.h = photo.w; + block.photo_id = photo.id; + block.url = src; + page.photos.add(photo); + + return block; + } + + public TLRPC.TL_textImage parseInlineImage(JSONObject o, TLRPC.TL_page page) { + TLRPC.TL_textImage img = new TLRPC.TL_textImage(); + final String src = o.optString("src"); + if (src == null) { + return null; + } + WebPhoto photo = new WebPhoto(); + photo.instantView = this; + photo.id = -1 - page.photos.size(); + photo.url = src; + photo.urls.add(src); + try { + photo.w = Integer.parseInt(o.optString("width")); + } catch (Exception ignore) {} + try { + photo.h = Integer.parseInt(o.optString("height")); + } catch (Exception ignore) {} + img.url = src; + page.photos.add(photo); + if (photo.w == 0) photo.w = photo.h; + if (photo.h == 0) photo.h = photo.w; + + try { + img.w = Integer.parseInt(o.optString("width")); + } catch (Exception ignore) {} + try { + img.h = Integer.parseInt(o.optString("height")); + } catch (Exception ignore) {} + if (img.w == 0) img.w = img.h; + if (img.h == 0) img.h = img.w; + img.photo_id = photo.id; + return img; + } + + public TLRPC.TL_pageBlockDetails parseDetails(String url, JSONObject details, TLRPC.TL_page page) throws JSONException { + final TLRPC.TL_pageBlockDetails block = new TLRPC.TL_pageBlockDetails(); + final JSONArray content = details.optJSONArray("content"); + if (content == null) return null; + for (int j = 0; j < content.length(); ++j) { + Object o2 = content.get(j); + if (o2 instanceof JSONObject) { + final JSONObject obj = (JSONObject) o2; + final String tag = obj.optString("tag"); + if ("summary".equals(tag)) { + block.title = trim(parseRichText(obj, page)); + content.remove(j); + break; + } + } + } + block.blocks.addAll(parsePageBlocks(url, content, page)); + block.open = details.has("open"); + return block; + } + + public TLRPC.RichText parseRichText(JSONObject tag, TLRPC.TL_page page) throws JSONException { + TLRPC.RichText text = applyAnchor(parseRichText(tag.getJSONArray("content"), page), tag); + if (tag.has("bold")) { + TLRPC.TL_textBold bold = new TLRPC.TL_textBold(); + bold.text = text; + text = bold; + } + if (tag.has("italic")) { + TLRPC.TL_textItalic italic = new TLRPC.TL_textItalic(); + italic.text = text; + text = italic; + } + return text; + } + + public TLRPC.RichText parseRichText(JSONArray json, TLRPC.TL_page page) throws JSONException { + ArrayList texts = new ArrayList<>(); + for (int i = 0; i < json.length(); ++i) { + Object obj = json.get(i); + if (obj instanceof String) { + texts.add(parseRichText((String) obj)); + } else { + JSONObject o = (JSONObject) obj; + final String tag = o.optString("tag"); + TLRPC.RichText text; + switch (tag) { + case "b": + case "strong": + TLRPC.TL_textBold bold = new TLRPC.TL_textBold(); + bold.text = parseRichText(o, page); + text = bold; + break; + case "i": + TLRPC.TL_textItalic italic = new TLRPC.TL_textItalic(); + italic.text = parseRichText(o, page); + text = italic; + break; + case "s": + TLRPC.TL_textStrike strike = new TLRPC.TL_textStrike(); + strike.text = parseRichText(o, page); + text = strike; + break; + case "p": + if (!texts.isEmpty()) { + addNewLine(texts.get(texts.size() - 1)); + } + text = parseRichText(o, page); + break; + case "a": + final String href = o.optString("href"); + if (href == null) { + text = parseRichText(o, page); + } else if (href.startsWith("tel:")) { + TLRPC.TL_textPhone phoneLink = new TLRPC.TL_textPhone(); + phoneLink.phone = href.substring(4); + phoneLink.text = parseRichText(o, page); + text = phoneLink; + } else if (href.startsWith("mailto:")) { + TLRPC.TL_textEmail emailLink = new TLRPC.TL_textEmail(); + emailLink.email = href.substring(7); + emailLink.text = parseRichText(o, page); + text = emailLink; + } else { + TLRPC.TL_textUrl urlLink = new TLRPC.TL_textUrl(); + urlLink.url = href; + urlLink.text = parseRichText(o, page); + text = urlLink; + } + break; + case "pre": + case "code": + TLRPC.TL_textFixed code = new TLRPC.TL_textFixed(); + code.text = parseRichText(o, page); + text = code; + break; + case "mark": + TLRPC.TL_textMarked marked = new TLRPC.TL_textMarked(); + marked.text = parseRichText(o, page); + text = marked; + break; + case "sub": + TLRPC.TL_textSubscript sub = new TLRPC.TL_textSubscript(); + sub.text = parseRichText(o, page); + text = sub; + break; + case "sup": + TLRPC.TL_textSuperscript sup = new TLRPC.TL_textSuperscript(); + sup.text = parseRichText(o, page); + text = sup; + break; + case "img": + if (!texts.isEmpty()) { + addLastSpace(texts.get(texts.size() - 1)); + } + text = parseInlineImage(o, page); + break; + case "br": + text = null; + if (!texts.isEmpty()) { + addNewLine(texts.get(texts.size() - 1)); + } + break; + default: + text = parseRichText(o, page); + break; + } + if (text != null) { + text = applyAnchor(text, o); + texts.add(text); + } + } + } + if (texts.isEmpty()) { + return new TLRPC.TL_textEmpty(); + } else if (texts.size() == 1) { + return texts.get(0); + } else { + TLRPC.TL_textConcat concat = new TLRPC.TL_textConcat(); + concat.texts = texts; + return concat; + } + } + + public static TLRPC.RichText addLastSpace(TLRPC.RichText text) { + if (text == null) return text; + if (text.text != null) { + addLastSpace(text.text); + } else if (!text.texts.isEmpty()) { + addLastSpace(text.texts.get(text.texts.size() - 1)); + } else if (text instanceof TLRPC.TL_textPlain) { + final TLRPC.TL_textPlain textPlain = (TLRPC.TL_textPlain) text; + if (textPlain.text != null && !textPlain.text.endsWith(" ")) + textPlain.text += ' '; + } + return text; + } + + public static TLRPC.RichText addNewLine(TLRPC.RichText text) { + if (text == null) return text; + if (text.text != null) { + addNewLine(text.text); + } else if (!text.texts.isEmpty()) { + addNewLine(text.texts.get(text.texts.size() - 1)); + } else if (text instanceof TLRPC.TL_textPlain) { + ((TLRPC.TL_textPlain) text).text += '\n'; + } + return text; + } + + public static TLRPC.RichText trimStart(TLRPC.RichText text) { + if (text == null) return text; + if (text.text != null) { + trimStart(text.text); + } else if (!text.texts.isEmpty()) { + trimStart(text.texts.get(0)); + } else if (text instanceof TLRPC.TL_textPlain && ((TLRPC.TL_textPlain) text).text != null) { + ((TLRPC.TL_textPlain) text).text = ((TLRPC.TL_textPlain) text).text.replaceAll("^\\s+", ""); + } + return text; + } + + public static TLRPC.RichText trim(TLRPC.RichText text) { + if (text == null) return text; + if (text.text != null) { + trim(text.text); + } else if (text.texts.size() == 1) { + trim(text.texts.get(0)); + } else if (!text.texts.isEmpty()) { + trimStart(text.texts.get(0)); + trimEnd(text.texts.get(text.texts.size() - 1)); + } else if (text instanceof TLRPC.TL_textPlain && ((TLRPC.TL_textPlain) text).text != null) { + ((TLRPC.TL_textPlain) text).text = ((TLRPC.TL_textPlain) text).text.trim(); + } + return text; + } + + public static TLRPC.RichText trimEnd(TLRPC.RichText text) { + if (text == null) return text; + if (text.text != null) { + trimEnd(text.text); + } else if (!text.texts.isEmpty()) { + trimEnd(text.texts.get(text.texts.size() - 1)); + } else if (text instanceof TLRPC.TL_textPlain && ((TLRPC.TL_textPlain) text).text != null) { + ((TLRPC.TL_textPlain) text).text = ((TLRPC.TL_textPlain) text).text.replaceAll("\\s+$", ""); + } + return text; + } + + public static TLRPC.RichText parseRichText(String str) { + TLRPC.TL_textPlain richText = new TLRPC.TL_textPlain(); + richText.text = str; + return richText; + } + + public TLRPC.TL_pageBlockTable parseTable(String url, JSONObject json, TLRPC.TL_page page) throws JSONException { + TLRPC.TL_pageBlockTable table = new TLRPC.TL_pageBlockTable(); + table.bordered = true; + table.striped = true; + + String title = json.optString("title"); + if (title == null) title = ""; + table.title = trim(applyAnchor(parseRichText(title), json)); + + final JSONArray content = json.getJSONArray("content"); + table.rows.addAll(parseTableRows(url, content, page)); + + return table; + } + + public ArrayList parseTableRows(String url, JSONArray table_content, TLRPC.TL_page page) throws JSONException { + final ArrayList rows = new ArrayList<>(); + ArrayList rowuntil = new ArrayList<>(); + for (int y = 0; y < table_content.length(); ++y) { + Object o = table_content.get(y); + if (!(o instanceof JSONObject)) continue; + + JSONObject tr_json = (JSONObject) o; + String tr_tag = tr_json.optString("tag"); + if ("tr".equals(tr_tag)) { + final TLRPC.TL_pageTableRow row = parseTableRow(url, tr_json, page); + rows.add(row); + } else { + JSONArray content = tr_json.optJSONArray("content"); + if (content != null) { + rows.addAll(parseTableRows(url, content, page)); + } + } + } + return rows; + } + + public TLRPC.TL_pageTableRow parseTableRow(String url, JSONObject tr_json, TLRPC.TL_page page) throws JSONException { + TLRPC.TL_pageTableRow row = new TLRPC.TL_pageTableRow(); + + JSONArray tr_content = tr_json.getJSONArray("content"); + for (int x = 0; x < tr_content.length(); ++x) { + Object o2 = tr_content.get(x); + if (!(o2 instanceof JSONObject)) continue; + + JSONObject td_json = (JSONObject) o2; + String td_tag = td_json.optString("tag"); + if (td_tag == null || !("td".equals(td_tag) || "th".equals(td_tag))) continue; + + TLRPC.TL_pageTableCell cell = new TLRPC.TL_pageTableCell(); + cell.header = "th".equals(td_tag); + try { + cell.colspan = Integer.parseInt(td_json.optString("colspan")); + cell.flags |= 2; + } catch (Exception ignore) {} + try { + cell.rowspan = Integer.parseInt(td_json.optString("rowspan")); + cell.flags |= 4; + } catch (Exception ignore) {} + cell.text = trim(parseRichText(td_json.getJSONArray("content"), page)); + if (td_json.has("bold") || cell.header) { + TLRPC.TL_textBold bold = new TLRPC.TL_textBold(); + bold.text = cell.text; + cell.text = bold; + } + if (td_json.has("italic")) { + TLRPC.TL_textItalic italic = new TLRPC.TL_textItalic(); + italic.text = cell.text; + cell.text = italic; + } + cell.align_center = td_json.has("xcenter"); + + row.cells.add(cell); + } + + return row; + } + + public boolean isInline(JSONArray content) throws JSONException { + final List inlineTags = Arrays.asList("b", "strong", "span", "img", "i", "s", "a", "code", "mark", "sub", "sup"); + boolean isInline = true; + for (int j = 0; j < content.length(); ++j) { + Object o = content.get(j); + if (o instanceof String) continue; + if (o instanceof JSONObject) { + JSONObject obj = (JSONObject) o; + final String tagName = obj.optString("tag"); + if (inlineTags.contains(tagName)) + continue; + if ("div".equalsIgnoreCase(tagName) || "span".equalsIgnoreCase(tagName)) { + JSONArray content2 = obj.optJSONArray("content"); + if (!isInline(content2)) + return false; + } + } + return false; + } + return true; + } + + public TLRPC.PageBlock parseList(String url, JSONObject json, TLRPC.TL_page page) throws JSONException { + final String tag = json.optString("tag"); + if ("ol".equals(tag)) { + TLRPC.TL_pageBlockOrderedList list = new TLRPC.TL_pageBlockOrderedList(); + final JSONArray content = json.getJSONArray("content"); + for (int i = 0; i < content.length(); ++i) { + Object o = content.get(i); + if (!(o instanceof JSONObject)) continue; + JSONObject li = (JSONObject) o; + if (!"li".equals(li.optString("tag"))) continue; + + final JSONArray li_content = li.optJSONArray("content"); + final boolean isInline = isInline(li_content); + + if (isInline) { + final TLRPC.TL_pageListOrderedItemText item = new TLRPC.TL_pageListOrderedItemText(); + item.text = parseRichText(li_content, page); + list.items.add(item); + } else { + final TLRPC.TL_pageListOrderedItemBlocks item = new TLRPC.TL_pageListOrderedItemBlocks(); + item.blocks.addAll(parsePageBlocks(url, li_content, page)); + list.items.add(item); + } + } + return list; + } else { + final TLRPC.TL_pageBlockList list = new TLRPC.TL_pageBlockList(); + final JSONArray content = json.getJSONArray("content"); + for (int i = 0; i < content.length(); ++i) { + Object o = content.get(i); + if (!(o instanceof JSONObject)) continue; + JSONObject li = (JSONObject) o; + if (!"li".equals(li.optString("tag"))) continue; + + final JSONArray li_content = li.optJSONArray("content"); + final boolean isInline = isInline(li_content); + + if (isInline) { + final TLRPC.TL_pageListItemText item = new TLRPC.TL_pageListItemText(); + item.text = parseRichText(li_content, page); + list.items.add(item); + } else { + final TLRPC.TL_pageListItemBlocks item = new TLRPC.TL_pageListItemBlocks(); + item.blocks.addAll(parsePageBlocks(url, li_content, page)); + list.items.add(item); + } + } + return list; + } + } + + public static class Loader { + + private final int currentAccount; + + private boolean started; + private boolean cancelled; + + public String currentUrl; + public float currentProgress; + public boolean currentIsLoaded; + + private boolean gotRemote; + private TLRPC.WebPage remotePage; + private boolean gotLocal; + private TLRPC.WebPage localPage; + + private int reqId; + private Runnable cancelLocal; + + public Loader(int currentAccount) { + this.currentAccount = currentAccount; + } + + public void retryLocal(BotWebViewContainer.MyWebView webView) { + if (cancelled) return; + if (localPage != null) { + WebInstantView.recycle(localPage); + localPage = null; + } + gotLocal = false; + currentUrl = webView.getUrl(); + currentProgress = webView.getProgress(); + currentIsLoaded = webView.isPageLoaded(); + if (cancelLocal != null) { + cancelLocal.run(); + } + cancelLocal = WebInstantView.generate(webView, false, instant -> { + cancelLocal = null; + gotLocal = true; + if (localPage != null) { + WebInstantView.recycle(localPage); + } + localPage = instant.webpage; + notifyUpdate(); + }); + } + + public void start(BotWebViewContainer.MyWebView webView) { + if (started) return; + started = true; + + currentUrl = webView.getUrl(); + currentProgress = webView.getProgress(); + currentIsLoaded = webView.isPageLoaded(); + + cancelLocal = WebInstantView.generate(webView, false, instant -> { + cancelLocal = null; + gotLocal = true; + if (localPage != null) { + WebInstantView.recycle(localPage); + } + localPage = instant.webpage; + notifyUpdate(); + }); + + TLRPC.TL_messages_getWebPage req = new TLRPC.TL_messages_getWebPage(); + req.url = currentUrl; + req.hash = 0; + reqId = ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, err) -> AndroidUtilities.runOnUIThread(() -> { + gotRemote = true; + if (response instanceof TLRPC.TL_messages_webPage) { + TLRPC.TL_messages_webPage res = (TLRPC.TL_messages_webPage) response; + MessagesController.getInstance(currentAccount).putUsers(res.users, false); + MessagesController.getInstance(currentAccount).putChats(res.chats, false); + remotePage = res.webpage; + } else if (response instanceof TLRPC.TL_webPage && ((TLRPC.TL_webPage) response).cached_page instanceof TLRPC.TL_page) { + remotePage = (TLRPC.TL_webPage) response; + } else { + remotePage = null; + } + if (remotePage != null && remotePage.cached_page == null) { + remotePage = null; + } + if (!SharedConfig.onlyLocalInstantView && remotePage != null && cancelLocal != null) { + cancelLocal.run(); + } + notifyUpdate(); + })); + } + + public boolean isDone() { + return gotRemote && gotLocal || remotePage != null || localPage != null || cancelled; + } + + public TLRPC.WebPage getWebPage() { + if (!SharedConfig.onlyLocalInstantView && remotePage != null) return remotePage; + if (localPage != null) return localPage; + return null; + } + + public void cancel() { + if (cancelled) return; + cancelled = true; + if (!gotRemote) { + ConnectionsManager.getInstance(currentAccount).cancelRequest(reqId, true); + } + if (!gotLocal && cancelLocal != null) { + cancelLocal.run(); + } + } + + public void recycle() { + if (localPage != null) { + WebInstantView.recycle(localPage); + localPage = null; + } + } + + private final ArrayList listeners = new ArrayList<>(); + public Runnable listen(Runnable whenUpdated) { + listeners.add(whenUpdated); + return () -> { + listeners.remove(whenUpdated); + }; + } + + private void notifyUpdate() { + for (Runnable listener : listeners) { + listener.run(); + } + } + + } + + public static TLRPC.RichText filterRecursiveAnchorLinks(TLRPC.RichText text, String url, String anchor) { + if (text == null) return text; + if (text instanceof TLRPC.TL_textConcat) { + TLRPC.TL_textConcat textConcat = (TLRPC.TL_textConcat) text; + TLRPC.TL_textConcat newTextConcat = new TLRPC.TL_textConcat(); + for (int i = 0; i < textConcat.texts.size(); ++i) { + TLRPC.RichText child = textConcat.texts.get(i); + child = filterRecursiveAnchorLinks(child, url, anchor); + if (child != null) { + newTextConcat.texts.add(child); + } + } + return newTextConcat; + } else if (text instanceof TLRPC.TL_textUrl) { + TLRPC.TL_textUrl textUrl = (TLRPC.TL_textUrl) text; + if (textUrl.url != null && (textUrl.url.toLowerCase().equals("#" + anchor) || TextUtils.equals(textUrl.url.toLowerCase(), url + "#" + anchor))) { + return null; + } + } + return text; + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/web/WebMetadataCache.java b/TMessagesProj/src/main/java/org/telegram/ui/web/WebMetadataCache.java index 4848223b3f..7d792e9f26 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/web/WebMetadataCache.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/web/WebMetadataCache.java @@ -32,7 +32,6 @@ import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; import org.telegram.ui.Components.LayoutHelper; -import org.telegram.ui.Components.RLottieDrawable; import org.telegram.ui.LaunchActivity; import java.io.ByteArrayInputStream; @@ -411,7 +410,7 @@ public void onReceivedIcon(WebView view, Bitmap icon) { } }); Runnable putJS = () -> { - final String js = RLottieDrawable.readRes(null, R.raw.webview_ext).replace("$DEBUG$", "" + BuildVars.DEBUG_VERSION); + final String js = AndroidUtilities.readRes(R.raw.webview_ext).replace("$DEBUG$", "" + BuildVars.DEBUG_VERSION); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { webView.evaluateJavascript(js, value -> {}); } else { diff --git a/TMessagesProj/src/main/java/org/webrtc/NetworkMonitorAutoDetect.java b/TMessagesProj/src/main/java/org/webrtc/NetworkMonitorAutoDetect.java index 1968577cea..d496e5d340 100644 --- a/TMessagesProj/src/main/java/org/webrtc/NetworkMonitorAutoDetect.java +++ b/TMessagesProj/src/main/java/org/webrtc/NetworkMonitorAutoDetect.java @@ -442,8 +442,14 @@ static class WifiManagerDelegate { } String getWifiSSID() { - final Intent intent = context.registerReceiver( - null, new IntentFilter(WifiManager.NETWORK_STATE_CHANGED_ACTION)); + final Intent intent; + if (Build.VERSION.SDK_INT >= 33) { + intent = context.registerReceiver( + null, new IntentFilter(WifiManager.NETWORK_STATE_CHANGED_ACTION), Context.RECEIVER_NOT_EXPORTED); + } else { + intent = context.registerReceiver( + null, new IntentFilter(WifiManager.NETWORK_STATE_CHANGED_ACTION)); + } if (intent != null) { final WifiInfo wifiInfo = intent.getParcelableExtra(WifiManager.EXTRA_WIFI_INFO); if (wifiInfo != null) { @@ -474,7 +480,11 @@ static class WifiDirectManagerDelegate extends BroadcastReceiver { IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION); intentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION); - context.registerReceiver(this, intentFilter); + if (Build.VERSION.SDK_INT >= 33) { + context.registerReceiver(this, intentFilter, Context.RECEIVER_NOT_EXPORTED); + } else { + context.registerReceiver(this, intentFilter); + } if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) { // Starting with Android Q (10), WIFI_P2P_CONNECTION_CHANGED_ACTION is no longer sticky. // This means we have to explicitly request WifiP2pGroup info during initialization in order @@ -672,7 +682,11 @@ private void registerReceiver() { return; isRegistered = true; - context.registerReceiver(this, intentFilter); + if (Build.VERSION.SDK_INT >= 33) { + context.registerReceiver(this, intentFilter, Context.RECEIVER_NOT_EXPORTED); + } else { + context.registerReceiver(this, intentFilter); + } } /** diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/folder/FolderIconHelper.java b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/folder/FolderIconHelper.java index 4e3a5ec15c..6c7a1e0442 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/folder/FolderIconHelper.java +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/folder/FolderIconHelper.java @@ -63,40 +63,40 @@ public static Pair getEmoticonFromFlags(int newFilterFlags) { String newEmoticon = ""; if ((flags & MessagesController.DIALOG_FILTER_FLAG_ALL_CHATS) == MessagesController.DIALOG_FILTER_FLAG_ALL_CHATS) { if ((newFilterFlags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_READ) != 0) { - newName = LocaleController.getString("FilterNameUnread", R.string.FilterNameUnread); + newName = LocaleController.getString(R.string.FilterNameUnread); newEmoticon = "\u2705"; } else if ((newFilterFlags & MessagesController.DIALOG_FILTER_FLAG_EXCLUDE_MUTED) != 0) { - newName = LocaleController.getString("FilterNameNonMuted", R.string.FilterNameNonMuted); + newName = LocaleController.getString(R.string.FilterNameNonMuted); newEmoticon = "\uD83D\uDD14"; } } else if ((flags & MessagesController.DIALOG_FILTER_FLAG_CONTACTS) != 0) { flags &= ~MessagesController.DIALOG_FILTER_FLAG_CONTACTS; if (flags == 0) { - newName = LocaleController.getString("FilterContacts", R.string.FilterContacts); + newName = LocaleController.getString(R.string.FilterContacts); newEmoticon = "\uD83D\uDC64"; } } else if ((flags & MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS) != 0) { flags &= ~MessagesController.DIALOG_FILTER_FLAG_NON_CONTACTS; if (flags == 0) { - newName = LocaleController.getString("FilterNonContacts", R.string.FilterNonContacts); + newName = LocaleController.getString(R.string.FilterNonContacts); newEmoticon = "\uD83D\uDC64"; } } else if ((flags & MessagesController.DIALOG_FILTER_FLAG_GROUPS) != 0) { flags &= ~MessagesController.DIALOG_FILTER_FLAG_GROUPS; if (flags == 0) { - newName = LocaleController.getString("FilterGroups", R.string.FilterGroups); + newName = LocaleController.getString(R.string.FilterGroups); newEmoticon = "\uD83D\uDC65"; } } else if ((flags & MessagesController.DIALOG_FILTER_FLAG_BOTS) != 0) { flags &= ~MessagesController.DIALOG_FILTER_FLAG_BOTS; if (flags == 0) { - newName = LocaleController.getString("FilterBots", R.string.FilterBots); + newName = LocaleController.getString(R.string.FilterBots); newEmoticon = "\uD83E\uDD16"; } } else if ((flags & MessagesController.DIALOG_FILTER_FLAG_CHANNELS) != 0) { flags &= ~MessagesController.DIALOG_FILTER_FLAG_CHANNELS; if (flags == 0) { - newName = LocaleController.getString("FilterChannels", R.string.FilterChannels); + newName = LocaleController.getString(R.string.FilterChannels); newEmoticon = "\uD83D\uDCE2"; } } diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoEmojiSettingsActivity.java b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoEmojiSettingsActivity.java index c1cc0d13f3..1ae71fd075 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoEmojiSettingsActivity.java +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoEmojiSettingsActivity.java @@ -422,7 +422,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi if (partial) { textCheckCell.setChecked(NekoConfig.useSystemEmoji.Bool()); } else { - textCheckCell.setTextAndCheck(LocaleController.getString("EmojiUseDefault", R.string.EmojiUseDefault), NekoConfig.useSystemEmoji.Bool(), false); + textCheckCell.setTextAndCheck(LocaleController.getString(R.string.EmojiUseDefault), NekoConfig.useSystemEmoji.Bool(), false); } } break; diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/Translator.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/Translator.kt index ca175afc99..40027f452e 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/Translator.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/Translator.kt @@ -99,11 +99,11 @@ interface Translator { providerYouDao -> if (language == "zh") { language = "zh-CHS" } - providerDeepL -> language = language.toUpperCase() + providerDeepL -> language = language.uppercase() providerMicrosoft, providerGoogle, providerGoogleCN -> if (language == "zh") { - val countryUpperCase = country.toUpperCase() + val countryUpperCase = country.uppercase() if (countryUpperCase == "CN" || countryUpperCase == "DUANG") { language = if (provider == providerMicrosoft) "zh-Hans" else "zh-CN" } else if (countryUpperCase == "TW" || countryUpperCase == "HK") { @@ -135,7 +135,7 @@ interface Translator { } if (language == "zh") { - val countryUpperCase = country.toUpperCase() + val countryUpperCase = country.uppercase() if (countryUpperCase == "CN") { return CCConverter.get(CCTarget.SP).convert(result) } else if (countryUpperCase == "TW") { @@ -185,7 +185,7 @@ interface Translator { localeNames[i] = if (!full && i == 0) { - LocaleController.getString("Default", R.string.Default) + " ( " + locales[i].getDisplayName(currLocale) + " )" + LocaleController.getString(R.string.Default) + " ( " + locales[i].getDisplayName(currLocale) + " )" } else { @@ -197,7 +197,7 @@ interface Translator { if (!full) { - localeNames[localeNames.size - 1] = LocaleController.getString("More", R.string.More) + localeNames[localeNames.size - 1] = LocaleController.getString(R.string.More) } @@ -226,13 +226,13 @@ interface Translator { val builder = PopupBuilder(anchor) builder.setItems(arrayOf( - if (!input) LocaleController.getString("CCNo", R.string.CCNo) else null, - LocaleController.getString("CCSC", R.string.CCSC), - LocaleController.getString("CCSP", R.string.CCSP), - LocaleController.getString("CCTC", R.string.CCTC), - LocaleController.getString("CCHK", R.string.CCHK), - LocaleController.getString("CCTT", R.string.CCTT), - LocaleController.getString("CCJP", R.string.CCJP) + if (!input) LocaleController.getString(R.string.CCNo) else null, + LocaleController.getString(R.string.CCSC), + LocaleController.getString(R.string.CCSP), + LocaleController.getString(R.string.CCTC), + LocaleController.getString(R.string.CCHK), + LocaleController.getString(R.string.CCTT), + LocaleController.getString(R.string.CCJP) )) { index: Int, _ -> callback(when (index) { 1 -> CCTarget.SC.name diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/DeepLTranslator.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/DeepLTranslator.kt index c7860c50ea..2b890668c7 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/DeepLTranslator.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/DeepLTranslator.kt @@ -17,7 +17,7 @@ object DeepLTranslator : Translator { if (to !in targetLanguages) { - throw UnsupportedOperationException(LocaleController.getString("TranslateApiUnsupported", R.string.TranslateApiUnsupported)) + throw UnsupportedOperationException(LocaleController.getString(R.string.TranslateApiUnsupported)) } diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/GoogleAppTranslator.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/GoogleAppTranslator.kt index c9e1c3682d..962b078df8 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/GoogleAppTranslator.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/GoogleAppTranslator.kt @@ -19,7 +19,7 @@ object GoogleAppTranslator : Translator { if (to !in targetLanguages) { - throw UnsupportedOperationException(LocaleController.getString("TranslateApiUnsupported", R.string.TranslateApiUnsupported)) + throw UnsupportedOperationException(LocaleController.getString(R.string.TranslateApiUnsupported)) } diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/GoogleCloudTranslator.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/GoogleCloudTranslator.kt index 620a2086b2..14f3c86269 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/GoogleCloudTranslator.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/GoogleCloudTranslator.kt @@ -14,7 +14,7 @@ object GoogleCloudTranslator : Translator { if (to !in targetLanguages) { - throw UnsupportedOperationException(LocaleController.getString("TranslateApiUnsupported", R.string.TranslateApiUnsupported)) + throw UnsupportedOperationException(LocaleController.getString(R.string.TranslateApiUnsupported)) } diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/LingoTranslator.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/LingoTranslator.kt index 44d7cb324d..e349318461 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/LingoTranslator.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/LingoTranslator.kt @@ -15,7 +15,7 @@ object LingoTranslator : Translator { if (to !in listOf("zh", "en", "es", "fr", "ja", "ru")) { - error(LocaleController.getString("TranslateApiUnsupported", R.string.TranslateApiUnsupported)) + error(LocaleController.getString(R.string.TranslateApiUnsupported)) } diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/MicrosoftTranslator.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/MicrosoftTranslator.kt index e6c2e4ea71..26f651a99f 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/MicrosoftTranslator.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/MicrosoftTranslator.kt @@ -32,7 +32,7 @@ object MicrosoftTranslator : Translator { override suspend fun doTranslate(from: String, to: String, query: String): String { if (to !in targetLanguages) { - throw UnsupportedOperationException(LocaleController.getString("TranslateApiUnsupported", R.string.TranslateApiUnsupported)) + throw UnsupportedOperationException(LocaleController.getString(R.string.TranslateApiUnsupported)) } return withContext(Dispatchers.IO) { diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/TranSmartTranslator.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/TranSmartTranslator.kt index 312b85e9e3..71c8f65c8b 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/TranSmartTranslator.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/TranSmartTranslator.kt @@ -32,7 +32,7 @@ object TranSmartTranslator : Translator { override suspend fun doTranslate(from: String, to: String, query: String): String { if (to !in targetLanguages) { - error(LocaleController.getString("TranslateApiUnsupported", R.string.TranslateApiUnsupported)) + error(LocaleController.getString(R.string.TranslateApiUnsupported)) } val source = JSONArray() diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/YouDaoTranslator.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/YouDaoTranslator.kt index ae75c5cb0f..184cf435d0 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/YouDaoTranslator.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/transtale/source/YouDaoTranslator.kt @@ -22,7 +22,7 @@ object YouDaoTranslator : Translator { override suspend fun doTranslate(from: String, to: String, query: String): String { if (to !in targetLanguages) { - throw UnsupportedOperationException(LocaleController.getString("TranslateApiUnsupported", R.string.TranslateApiUnsupported)) + throw UnsupportedOperationException(LocaleController.getString(R.string.TranslateApiUnsupported)) } return withContext(Dispatchers.IO) { diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/ui/BottomBuilder.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/ui/BottomBuilder.kt index 5f448bf315..3e877ece21 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/ui/BottomBuilder.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/ui/BottomBuilder.kt @@ -180,18 +180,18 @@ class BottomBuilder(val ctx: Context, val needFocus: Boolean = true, val bgColor } fun addCancelItem() { - addItem(LocaleController.getString("Cancel", R.string.Cancel), R.drawable.baseline_cancel_24) {} + addItem(LocaleController.getString(R.string.Cancel), R.drawable.baseline_cancel_24) {} } @JvmOverloads fun addCancelButton(left: Boolean = true) { - addButton(LocaleController.getString("Cancel", R.string.Cancel), left = left) {} + addButton(LocaleController.getString(R.string.Cancel), left = left) {} } @JvmOverloads fun addOkButton(listener: ((TextView) -> Unit), noAutoDismiss: Boolean = false) { - addButton(LocaleController.getString("OK", R.string.OK), noAutoDismiss) { listener(it); } + addButton(LocaleController.getString(R.string.OK), noAutoDismiss) { listener(it); } } @JvmOverloads diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/AlertUtil.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/AlertUtil.kt index 2b9524bc40..6a23fc7342 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/AlertUtil.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/AlertUtil.kt @@ -26,7 +26,7 @@ object AlertUtil { AndroidUtilities.addToClipboard(text) - AlertUtil.showToast(LocaleController.getString("TextCopied", R.string.TextCopied)) + AlertUtil.showToast(LocaleController.getString(R.string.TextCopied)) } @@ -35,7 +35,7 @@ object AlertUtil { AndroidUtilities.addToClipboard(text) - AlertUtil.showToast(LocaleController.getString("LinkCopied", R.string.LinkCopied)) + AlertUtil.showToast(LocaleController.getString(R.string.LinkCopied)) } @@ -98,10 +98,10 @@ object AlertUtil { val builder = AlertDialog.Builder(ctx) - builder.setTitle(title ?: LocaleController.getString("NekoX", R.string.NekoX)) + builder.setTitle(title ?: LocaleController.getString(R.string.NekoX)) builder.setMessage(text) - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK)) { _, _ -> + builder.setPositiveButton(LocaleController.getString(R.string.OK)) { _, _ -> builder.dismissRunnable?.run() listener?.invoke(builder) @@ -117,20 +117,20 @@ object AlertUtil { val builder = AlertDialog.Builder(ctx) - builder.setTitle(LocaleController.getString("Translate", R.string.Translate)) + builder.setTitle(LocaleController.getString(R.string.Translate)) builder.setMessage(text) - builder.setNegativeButton(LocaleController.getString("Copy", R.string.Copy)) { _, _ -> + builder.setNegativeButton(LocaleController.getString(R.string.Copy)) { _, _ -> AndroidUtilities.addToClipboard(text) - AlertUtil.showToast(LocaleController.getString("TextCopied", R.string.TextCopied)) + AlertUtil.showToast(LocaleController.getString(R.string.TextCopied)) builder.dismissRunnable.run() } - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK)) { _, _ -> + builder.setPositiveButton(LocaleController.getString(R.string.OK)) { _, _ -> builder.dismissRunnable.run() @@ -142,7 +142,7 @@ object AlertUtil { @JvmOverloads @JvmStatic - fun showProgress(ctx: Context, text: String = LocaleController.getString("Loading", R.string.Loading)): AlertDialog { + fun showProgress(ctx: Context, text: String = LocaleController.getString(R.string.Loading)): AlertDialog { return AlertDialog.Builder(ctx, AlertDialog.ALERT_TYPE_MESSAGE).apply { @@ -222,13 +222,13 @@ object AlertUtil { val builder = AlertDialog.Builder(ctx) - builder.setTitle(LocaleController.getString("TranslateFailed", R.string.TranslateFailed)) + builder.setTitle(LocaleController.getString(R.string.TranslateFailed)) builder.setMessage(message) val reference = AtomicReference() - builder.setNeutralButton(LocaleController.getString("ChangeTranslateProvider", R.string.ChangeTranslateProvider)) { + builder.setNeutralButton(LocaleController.getString(R.string.ChangeTranslateProvider)) { _, _ -> @@ -240,14 +240,14 @@ object AlertUtil { items.addAll( arrayOf( - LocaleController.getString("ProviderGoogleTranslate", R.string.ProviderGoogleTranslate), - LocaleController.getString("ProviderGoogleTranslateCN", R.string.ProviderGoogleTranslateCN), - LocaleController.getString("ProviderYandexTranslate", R.string.ProviderYandexTranslate), - LocaleController.getString("ProviderLingocloud", R.string.ProviderLingocloud), - LocaleController.getString("ProviderMicrosoftTranslator", R.string.ProviderMicrosoftTranslator), - LocaleController.getString("ProviderYouDao", R.string.ProviderYouDao), - LocaleController.getString("ProviderDeepLTranslate", R.string.ProviderDeepLTranslate), - LocaleController.getString("ProviderTelegramAPI", R.string.ProviderTelegramAPI) + LocaleController.getString(R.string.ProviderGoogleTranslate), + LocaleController.getString(R.string.ProviderGoogleTranslateCN), + LocaleController.getString(R.string.ProviderYandexTranslate), + LocaleController.getString(R.string.ProviderLingocloud), + LocaleController.getString(R.string.ProviderMicrosoftTranslator), + LocaleController.getString(R.string.ProviderYouDao), + LocaleController.getString(R.string.ProviderDeepLTranslate), + LocaleController.getString(R.string.ProviderTelegramAPI) ).toList() ) @@ -267,7 +267,7 @@ object AlertUtil { if (noRetry) { - builder.setPositiveButton(LocaleController.getString("Cancel", R.string.Cancel)) { _, _ -> + builder.setPositiveButton(LocaleController.getString(R.string.Cancel)) { _, _ -> reference.get().dismiss() @@ -275,7 +275,7 @@ object AlertUtil { } else { - builder.setPositiveButton(LocaleController.getString("Retry", R.string.Retry)) { _, _ -> + builder.setPositiveButton(LocaleController.getString(R.string.Retry)) { _, _ -> reference.get().dismiss() @@ -283,7 +283,7 @@ object AlertUtil { } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel)) { _, _ -> + builder.setNegativeButton(LocaleController.getString(R.string.Cancel)) { _, _ -> reference.get().dismiss() diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/PrivacyUtil.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/PrivacyUtil.kt index acf6c0b638..8088516825 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/PrivacyUtil.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/PrivacyUtil.kt @@ -174,15 +174,15 @@ object PrivacyUtil { val builder = AlertDialog.Builder(ctx) - builder.setTitle(LocaleController.getString("PrivacyNotice", R.string.PrivacyNotice)) + builder.setTitle(LocaleController.getString(R.string.PrivacyNotice)) builder.setMessage(AndroidUtilities.replaceTags(when (type) { - 0 -> LocaleController.getString("PrivacyNoticePhoneVisible", R.string.PrivacyNoticePhoneVisible) - 1 -> LocaleController.getString("PrivacyNoticeAddByPhone", R.string.PrivacyNoticeAddByPhone) - else -> LocaleController.getString("PrivacyNoticeP2p", R.string.PrivacyNoticeP2p) + 0 -> LocaleController.getString(R.string.PrivacyNoticePhoneVisible) + 1 -> LocaleController.getString(R.string.PrivacyNoticeAddByPhone) + else -> LocaleController.getString(R.string.PrivacyNoticeP2p) })) - builder.setPositiveButton(LocaleController.getString("ApplySuggestion", R.string.ApplySuggestion)) { _, _ -> + builder.setPositiveButton(LocaleController.getString(R.string.ApplySuggestion)) { _, _ -> ConnectionsManager.getInstance(account).sendRequest(TLRPC.TL_account_setPrivacy().apply { @@ -207,9 +207,9 @@ object PrivacyUtil { } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null) + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null) - builder.setNeutralButton(LocaleController.getString("DoNotRemindAgain", R.string.DoNotRemindAgain)) { _, _ -> + builder.setNeutralButton(LocaleController.getString(R.string.DoNotRemindAgain)) { _, _ -> MessagesController.getMainSettings(account).edit().putBoolean("privacy_warning_skip_${when (type) { 0 -> "phone_number" @@ -233,11 +233,11 @@ object PrivacyUtil { val builder = AlertDialog.Builder(ctx) - builder.setTitle(LocaleController.getString("PrivacyNotice", R.string.PrivacyNotice)) + builder.setTitle(LocaleController.getString(R.string.PrivacyNotice)) - builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString("PrivacyNotice2fa", R.string.PrivacyNotice2fa))) + builder.setMessage(AndroidUtilities.replaceTags(LocaleController.getString(R.string.PrivacyNotice2fa))) - builder.setPositiveButton(LocaleController.getString("Set", R.string.Set)) { _, _ -> + builder.setPositiveButton(LocaleController.getString(R.string.Set)) { _, _ -> if (ctx is LaunchActivity) { @@ -251,9 +251,9 @@ object PrivacyUtil { } - builder.setNeutralButton(LocaleController.getString("Cancel", R.string.Cancel), null) + builder.setNeutralButton(LocaleController.getString(R.string.Cancel), null) - builder.setNeutralButton(LocaleController.getString("DoNotRemindAgain", R.string.DoNotRemindAgain)) { _, _ -> + builder.setNeutralButton(LocaleController.getString(R.string.DoNotRemindAgain)) { _, _ -> MessagesController.getMainSettings(account).edit().putBoolean("privacy_warning_skip_2fa", true).apply() diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/ProxyUtil.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/ProxyUtil.kt index b10a8f46d4..2a92e86876 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/ProxyUtil.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/ProxyUtil.kt @@ -563,8 +563,8 @@ object ProxyUtil { builder.addItems(arrayOf( - LocaleController.getString("SaveToGallery", R.string.SaveToGallery), - LocaleController.getString("Cancel", R.string.Cancel) + LocaleController.getString(R.string.SaveToGallery), + LocaleController.getString(R.string.Cancel) ), intArrayOf( @@ -598,7 +598,7 @@ object ProxyUtil { } AndroidUtilities.addMediaToGallery(saveTo.path) - showToast(LocaleController.getString("PhotoSavedHint", R.string.PhotoSavedHint)) + showToast(LocaleController.getString(R.string.PhotoSavedHint)) }.onFailure { FileLog.e(it) @@ -677,7 +677,7 @@ object ProxyUtil { } catch (e: Throwable) { - showToast(LocaleController.getString("NoQrFound", R.string.NoQrFound)) + showToast(LocaleController.getString(R.string.NoQrFound)) } @@ -701,9 +701,9 @@ object ProxyUtil { builder.addTitle(text) builder.addItems(arrayOf( - LocaleController.getString("Open", R.string.Open), - LocaleController.getString("Copy", R.string.Copy), - LocaleController.getString("ShareQRCode", R.string.ShareQRCode) + LocaleController.getString(R.string.Open), + LocaleController.getString(R.string.Copy), + LocaleController.getString(R.string.ShareQRCode) ), intArrayOf( R.drawable.baseline_open_in_browser_24, R.drawable.baseline_content_copy_24, @@ -713,7 +713,7 @@ object ProxyUtil { 0 -> Browser.openUrl(ctx, text) 1 -> { AndroidUtilities.addToClipboard(text) - showToast(LocaleController.getString("LinkCopied", R.string.LinkCopied)) + showToast(LocaleController.getString(R.string.LinkCopied)) } else -> showQrDialog(ctx, text) } diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/UpdateUtil.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/UpdateUtil.kt index 4520d0e50e..a2c68ce2df 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/UpdateUtil.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/UpdateUtil.kt @@ -56,17 +56,17 @@ object UpdateUtil { val builder = AlertDialog.Builder(ctx) - builder.setTitle(LocaleController.getString("FCTitle", R.string.FCTitle)) - builder.setMessage(LocaleController.getString("FCInfo", R.string.FCInfo)) + builder.setTitle(LocaleController.getString(R.string.FCTitle)) + builder.setMessage(LocaleController.getString(R.string.FCInfo)) - builder.setPositiveButton(LocaleController.getString("ChannelJoin", R.string.ChannelJoin)) { _, _ -> + builder.setPositiveButton(LocaleController.getString(R.string.ChannelJoin)) { _, _ -> messagesCollector.addUserToChat(channel.id, userConfig.currentUser, 0, null, null, null) Browser.openUrl(ctx, "https://t.me/$channelUsername") } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null) + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null) - builder.setNeutralButton(LocaleController.getString("DoNotRemindAgain", R.string.DoNotRemindAgain)) { _, _ -> + builder.setNeutralButton(LocaleController.getString(R.string.DoNotRemindAgain)) { _, _ -> MessagesController.getMainSettings(currentAccount).edit().putBoolean("update_channel_skip", true).apply() } @@ -116,17 +116,17 @@ object UpdateUtil { val builder = AlertDialog.Builder(ctx) - builder.setTitle(LocaleController.getString("FCTitle", R.string.FCTitle)) - builder.setMessage(LocaleController.getString("TipsInfo", R.string.TipsInfo)) + builder.setTitle(LocaleController.getString(R.string.FCTitle)) + builder.setMessage(LocaleController.getString(R.string.TipsInfo)) - builder.setPositiveButton(LocaleController.getString("ChannelJoin", R.string.ChannelJoin)) { _, _ -> + builder.setPositiveButton(LocaleController.getString(R.string.ChannelJoin)) { _, _ -> messagesCollector.addUserToChat(channel.id, userConfig.currentUser, 0, null, null, null) Browser.openUrl(ctx, "https://t.me/$channelUsernameTips") } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null) + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null) - builder.setNeutralButton(LocaleController.getString("DoNotRemindAgain", R.string.DoNotRemindAgain)) { _, _ -> + builder.setNeutralButton(LocaleController.getString(R.string.DoNotRemindAgain)) { _, _ -> MessagesController.getMainSettings(currentAccount).edit().putBoolean("update_channel_tip_skip", true).apply() } diff --git a/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/NaConfig.kt b/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/NaConfig.kt index 1dae2d16d0..05f3f31670 100644 --- a/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/NaConfig.kt +++ b/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/NaConfig.kt @@ -165,7 +165,6 @@ object NaConfig { "CustomTitle", ConfigItem.configTypeString, LocaleController.getString( - "NekoX", R.string.NekoX ) ) @@ -258,7 +257,6 @@ object NaConfig { "CustomChannelLabel", ConfigItem.configTypeString, LocaleController.getString( - "channelLabel", R.string.channelLabel ) ) @@ -297,7 +295,6 @@ object NaConfig { "CustomGreat", ConfigItem.configTypeString, LocaleController.getString( - "Great", R.string.Great ) ) @@ -306,7 +303,6 @@ object NaConfig { "CustomPoor", ConfigItem.configTypeString, LocaleController.getString( - "Pool", R.string.Poor ) @@ -564,7 +560,7 @@ object NaConfig { addConfig( "PushServiceTypeUnifiedGateway", ConfigItem.configTypeString, - "https://p2p.belloworld.it/" + "https://p2p.xtaolabs.com/" ) val sendMp4DocumentAsVideo = addConfig( diff --git a/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/helper/Dialogs.kt b/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/helper/Dialogs.kt index 7b8628a594..d2f3df6f7e 100644 --- a/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/helper/Dialogs.kt +++ b/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/helper/Dialogs.kt @@ -24,7 +24,7 @@ object Dialogs { timestamps: ArrayList, finish: (String) -> Unit ) { - val captionString = LocaleController.getString("Caption", R.string.Caption); + val captionString = LocaleController.getString(R.string.Caption); val builder = AlertDialog.Builder(context); builder.setTitle(captionString); @@ -52,13 +52,12 @@ object Dialogs { builder.setView(textLayout); builder.setPositiveButton( LocaleController.getString( - "Send", R.string.Send ) ) { _: DialogInterface?, _: Int -> finish(editText.text.toString()); } - builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setNegativeButton(LocaleController.getString(R.string.Cancel), null); builder.show().setOnShowListener { dialog: DialogInterface? -> editText.requestFocus(); AndroidUtilities.showKeyboard(editText); @@ -77,14 +76,9 @@ object Dialogs { @JvmStatic fun createNeedChangeNekoSettingsAlert(context: Context) { val builder = AlertDialog.Builder(context) - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)) - builder.setMessage( - LocaleController.getString( - "NeedChangeNekoSettings", - R.string.NeedChangeNekoSettings - ) - ) - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null) + builder.setTitle(LocaleController.getString(R.string.AppName)) + builder.setMessage(LocaleController.getString(R.string.NeedChangeNekoSettings)) + builder.setPositiveButton(LocaleController.getString(R.string.OK), null) builder.show() } } diff --git a/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/helper/DoubleTap.kt b/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/helper/DoubleTap.kt index 44954bbe38..228638cb3f 100644 --- a/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/helper/DoubleTap.kt +++ b/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/helper/DoubleTap.kt @@ -29,47 +29,38 @@ object DoubleTap { init { doubleTapActionMap[DOUBLE_TAP_ACTION_NONE] = LocaleController.getString( - "Disable", R.string.Disable ) doubleTapActionMap[DOUBLE_TAP_ACTION_SEND_REACTIONS] = LocaleController.getString( - "SendReactions", R.string.SendReactions ) doubleTapActionMap[DOUBLE_TAP_ACTION_SHOW_REACTIONS] = LocaleController.getString( - "ShowReactions", R.string.ShowReactions ) doubleTapActionMap[DOUBLE_TAP_ACTION_TRANSLATE] = LocaleController.getString( - "TranslateMessage", R.string.TranslateMessage ) doubleTapActionMap[DOUBLE_TAP_ACTION_REPLY] = LocaleController.getString( - "Reply", R.string.Reply ) doubleTapActionMap[DOUBLE_TAP_ACTION_SAVE] = LocaleController.getString( - "AddToSavedMessages", R.string.AddToSavedMessages ) doubleTapActionMap[DOUBLE_TAP_ACTION_REPEAT] = LocaleController.getString( - "Repeat", R.string.Repeat ) doubleTapActionMap[DOUBLE_TAP_ACTION_REPEAT_AS_COPY] = LocaleController.getString( - "RepeatAsCopy", R.string.RepeatAsCopy ) doubleTapActionMap[DOUBLE_TAP_ACTION_EDIT] = LocaleController.getString( - "Edit", R.string.Edit ) } diff --git a/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/helper/audio/GenAudioInfo.kt b/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/helper/audio/GenAudioInfo.kt deleted file mode 100644 index dca6366c4f..0000000000 --- a/TMessagesProj/src/main/kotlin/xyz/nextalone/nagram/helper/audio/GenAudioInfo.kt +++ /dev/null @@ -1,84 +0,0 @@ -package xyz.nextalone.nagram.helper.audio - -import android.graphics.Bitmap -import android.graphics.BitmapFactory - -import org.jaudiotagger.audio.AudioFileIO -import org.jaudiotagger.tag.FieldKey -import org.jaudiotagger.tag.Tag - -import org.telegram.messenger.audioinfo.AudioInfo - -import java.io.ByteArrayInputStream -import java.io.File -import java.util.logging.Level -import java.util.logging.Logger - -import kotlin.math.max - - -class GenAudioInfo @JvmOverloads constructor(file: File?, format: String? = "FLAC", debugLevel: Level? = Level.FINEST) : - AudioInfo() { - init { - brand = format - version = "0" - val f = AudioFileIO.read(file) - val info = f.tag as Tag - val header = f.audioHeader - album = info.getFirst(FieldKey.ALBUM) - albumArtist = info.getFirst(FieldKey.ALBUM_ARTIST) - artist = info.getFirst(FieldKey.ARTIST) - comment = info.getFirst(FieldKey.COMMENT) - val image = info.artworkList[0] - cover = if (image != null) { - BitmapFactory.decodeStream(ByteArrayInputStream(image.binaryData)) - } else { - null - } - if (cover != null) { - val scale = max(cover.width, cover.height) / 120.0f - smallCover = if (scale > 0) { - Bitmap.createScaledBitmap( - cover, - (cover.width / scale).toInt(), - (cover.height / scale).toInt(), - true - ) - } else { - cover - } - if (smallCover == null) { - smallCover = cover - } - } - compilation = info.getFirst(FieldKey.IS_COMPILATION).toBoolean() - composer = info.getFirst(FieldKey.COMPOSER) - copyright = "" - try { - disc = info.getFirst(FieldKey.DISC_NO).toShort() - discs = info.getFirst(FieldKey.DISC_TOTAL).toShort() - } catch (ignored: NumberFormatException) {} - duration = header.trackLength.toLong() - genre = info.getFirst(FieldKey.GENRE) - grouping = info.getFirst(FieldKey.GROUPING) - lyrics = info.getFirst(FieldKey.LYRICS) - title = info.getFirst(FieldKey.TITLE) - try { - track = info.getFirst(FieldKey.TRACK).toShort() - tracks = info.getFirst(FieldKey.TRACK_TOTAL).toShort() - } catch (ignored: NumberFormatException) {} - try { - year = info.getFirst(FieldKey.YEAR).toShort() - } catch (ignored: NumberFormatException) {} - - if (duration <= 0 || duration >= 3600000L) { - if (debugLevel?.let { LOGGER.isLoggable(it) } == true) { - LOGGER.log(debugLevel, "Maybe false $format duration.") - } - } - } - - companion object { - val LOGGER: Logger = Logger.getLogger(GenAudioInfo::class.java.name) - } -} diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ab_progress.png b/TMessagesProj/src/main/res/drawable-hdpi/ab_progress.png index f134949d89..79a9d29b56 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ab_progress.png and b/TMessagesProj/src/main/res/drawable-hdpi/ab_progress.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/account_check.png b/TMessagesProj/src/main/res/drawable-hdpi/account_check.png index 12fd63f71b..28dbd5cd0e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/account_check.png and b/TMessagesProj/src/main/res/drawable-hdpi/account_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/album_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/album_shadow.png index 41e77412f0..b57d0462bf 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/album_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/album_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/animationpin.png b/TMessagesProj/src/main/res/drawable-hdpi/animationpin.png index 65ae758446..58c211524f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/animationpin.png and b/TMessagesProj/src/main/res/drawable-hdpi/animationpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/animationpinleft.png b/TMessagesProj/src/main/res/drawable-hdpi/animationpinleft.png index e3e90be685..58f6d50cb9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/animationpinleft.png and b/TMessagesProj/src/main/res/drawable-hdpi/animationpinleft.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/animationpinright.png b/TMessagesProj/src/main/res/drawable-hdpi/animationpinright.png index db90bf7598..8ba301d6da 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/animationpinright.png and b/TMessagesProj/src/main/res/drawable-hdpi/animationpinright.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/arrow_more.png b/TMessagesProj/src/main/res/drawable-hdpi/arrow_more.png index 46f8ff5582..d5f03e55be 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/arrow_more.png and b/TMessagesProj/src/main/res/drawable-hdpi/arrow_more.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/arrow_newchat.png b/TMessagesProj/src/main/res/drawable-hdpi/arrow_newchat.png index 85f4d74913..2a02ffcbc6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/arrow_newchat.png and b/TMessagesProj/src/main/res/drawable-hdpi/arrow_newchat.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/attach_arrow_left.png b/TMessagesProj/src/main/res/drawable-hdpi/attach_arrow_left.png index 3fe1c1e636..185bd751a4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/attach_arrow_left.png and b/TMessagesProj/src/main/res/drawable-hdpi/attach_arrow_left.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/attach_arrow_right.png b/TMessagesProj/src/main/res/drawable-hdpi/attach_arrow_right.png index 9fea10a426..c4482cdf9b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/attach_arrow_right.png and b/TMessagesProj/src/main/res/drawable-hdpi/attach_arrow_right.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/attach_send.png b/TMessagesProj/src/main/res/drawable-hdpi/attach_send.png index fa8b68e080..073869e980 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/attach_send.png and b/TMessagesProj/src/main/res/drawable-hdpi/attach_send.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/attach_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/attach_shadow.png index ec451b9fb6..113e05cc9f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/attach_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/attach_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/authorize.png b/TMessagesProj/src/main/res/drawable-hdpi/authorize.png index 36b18aef9a..d2d15e2c76 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/authorize.png and b/TMessagesProj/src/main/res/drawable-hdpi/authorize.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/background_selected.png b/TMessagesProj/src/main/res/drawable-hdpi/background_selected.png index 4a6ac82a2c..ddae00f0a1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/background_selected.png and b/TMessagesProj/src/main/res/drawable-hdpi/background_selected.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/bg_rotate_large.png b/TMessagesProj/src/main/res/drawable-hdpi/bg_rotate_large.png index 15833be6d7..c059650728 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/bg_rotate_large.png and b/TMessagesProj/src/main/res/drawable-hdpi/bg_rotate_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/blockpanel.png b/TMessagesProj/src/main/res/drawable-hdpi/blockpanel.png index 006ce5cb9d..d3ed6c44e1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/blockpanel.png and b/TMessagesProj/src/main/res/drawable-hdpi/blockpanel.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/blockpanel_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/blockpanel_shadow.png index 83faa725d6..2dec0271f6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/blockpanel_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/blockpanel_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/book_bot.png b/TMessagesProj/src/main/res/drawable-hdpi/book_bot.png old mode 100755 new mode 100644 index f38c1a2ee9..fb455f23ef Binary files a/TMessagesProj/src/main/res/drawable-hdpi/book_bot.png and b/TMessagesProj/src/main/res/drawable-hdpi/book_bot.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/book_channel.png b/TMessagesProj/src/main/res/drawable-hdpi/book_channel.png old mode 100755 new mode 100644 index d969b5f798..9c14769a70 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/book_channel.png and b/TMessagesProj/src/main/res/drawable-hdpi/book_channel.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/book_group.png b/TMessagesProj/src/main/res/drawable-hdpi/book_group.png old mode 100755 new mode 100644 index c1b6a3d425..7d8e650d04 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/book_group.png and b/TMessagesProj/src/main/res/drawable-hdpi/book_group.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/book_user.png b/TMessagesProj/src/main/res/drawable-hdpi/book_user.png old mode 100755 new mode 100644 index 0a4565e388..fc7218eb16 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/book_user.png and b/TMessagesProj/src/main/res/drawable-hdpi/book_user.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/bot_card.png b/TMessagesProj/src/main/res/drawable-hdpi/bot_card.png index ebe0630d57..e237a8f7b4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/bot_card.png and b/TMessagesProj/src/main/res/drawable-hdpi/bot_card.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/bot_file.png b/TMessagesProj/src/main/res/drawable-hdpi/bot_file.png old mode 100755 new mode 100644 index 9bc629bb98..7d8dcf5574 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/bot_file.png and b/TMessagesProj/src/main/res/drawable-hdpi/bot_file.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/bot_invite.png b/TMessagesProj/src/main/res/drawable-hdpi/bot_invite.png index 73e5707c13..0034d39f2c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/bot_invite.png and b/TMessagesProj/src/main/res/drawable-hdpi/bot_invite.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/bot_lines.png b/TMessagesProj/src/main/res/drawable-hdpi/bot_lines.png old mode 100755 new mode 100644 index 634fde9339..04b356d3d7 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/bot_lines.png and b/TMessagesProj/src/main/res/drawable-hdpi/bot_lines.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/bot_link.png b/TMessagesProj/src/main/res/drawable-hdpi/bot_link.png old mode 100755 new mode 100644 index 61bf43aa00..b038631426 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/bot_link.png and b/TMessagesProj/src/main/res/drawable-hdpi/bot_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/bot_location.png b/TMessagesProj/src/main/res/drawable-hdpi/bot_location.png old mode 100755 new mode 100644 index 305781d5cb..2003a6fec0 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/bot_location.png and b/TMessagesProj/src/main/res/drawable-hdpi/bot_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/bot_music.png b/TMessagesProj/src/main/res/drawable-hdpi/bot_music.png old mode 100755 new mode 100644 index 22fcb27270..120182da52 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/bot_music.png and b/TMessagesProj/src/main/res/drawable-hdpi/bot_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/bot_webview.png b/TMessagesProj/src/main/res/drawable-hdpi/bot_webview.png index 475d08f2e0..754c59841e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/bot_webview.png and b/TMessagesProj/src/main/res/drawable-hdpi/bot_webview.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/bottom_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/bottom_shadow.png old mode 100755 new mode 100644 index 918305f8a5..3a5f695739 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/bottom_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/bottom_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/call_arrow_right.png b/TMessagesProj/src/main/res/drawable-hdpi/call_arrow_right.png deleted file mode 100644 index f7d24d9adc..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/call_arrow_right.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/calls_bluetooth.png b/TMessagesProj/src/main/res/drawable-hdpi/calls_bluetooth.png index 9f881bf62a..9d9a13d5c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/calls_bluetooth.png and b/TMessagesProj/src/main/res/drawable-hdpi/calls_bluetooth.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/calls_camera_mini.png b/TMessagesProj/src/main/res/drawable-hdpi/calls_camera_mini.png index bf5992638e..c7c3501fa0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/calls_camera_mini.png and b/TMessagesProj/src/main/res/drawable-hdpi/calls_camera_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/calls_decline.png b/TMessagesProj/src/main/res/drawable-hdpi/calls_decline.png index 54c9ba6fa4..0769578f54 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/calls_decline.png and b/TMessagesProj/src/main/res/drawable-hdpi/calls_decline.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/calls_flip.png b/TMessagesProj/src/main/res/drawable-hdpi/calls_flip.png deleted file mode 100644 index b572603936..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/calls_flip.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/calls_headphones.png b/TMessagesProj/src/main/res/drawable-hdpi/calls_headphones.png index 17a2a630a7..70b91b7d05 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/calls_headphones.png and b/TMessagesProj/src/main/res/drawable-hdpi/calls_headphones.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/calls_menu_bluetooth.png b/TMessagesProj/src/main/res/drawable-hdpi/calls_menu_bluetooth.png deleted file mode 100644 index 8821cfaef5..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/calls_menu_bluetooth.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/calls_menu_headset.png b/TMessagesProj/src/main/res/drawable-hdpi/calls_menu_headset.png index 596b5ace3e..5d76de4a7d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/calls_menu_headset.png and b/TMessagesProj/src/main/res/drawable-hdpi/calls_menu_headset.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/calls_menu_phone.png b/TMessagesProj/src/main/res/drawable-hdpi/calls_menu_phone.png index 22220a7167..93508d2fd6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/calls_menu_phone.png and b/TMessagesProj/src/main/res/drawable-hdpi/calls_menu_phone.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/calls_menu_speaker.png b/TMessagesProj/src/main/res/drawable-hdpi/calls_menu_speaker.png deleted file mode 100644 index 76591fa939..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/calls_menu_speaker.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/calls_mute_mini.png b/TMessagesProj/src/main/res/drawable-hdpi/calls_mute_mini.png index e6d842397c..08269fd89f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/calls_mute_mini.png and b/TMessagesProj/src/main/res/drawable-hdpi/calls_mute_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/calls_sharescreen.png b/TMessagesProj/src/main/res/drawable-hdpi/calls_sharescreen.png deleted file mode 100644 index 159d264a58..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/calls_sharescreen.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/calls_speaker.png b/TMessagesProj/src/main/res/drawable-hdpi/calls_speaker.png index 17eee8d92f..085347e2e2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/calls_speaker.png and b/TMessagesProj/src/main/res/drawable-hdpi/calls_speaker.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/calls_unmute.png b/TMessagesProj/src/main/res/drawable-hdpi/calls_unmute.png index 901dc053c9..3982e3904e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/calls_unmute.png and b/TMessagesProj/src/main/res/drawable-hdpi/calls_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/calls_video.png b/TMessagesProj/src/main/res/drawable-hdpi/calls_video.png index e3b0bff414..76aea9f7da 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/calls_video.png and b/TMessagesProj/src/main/res/drawable-hdpi/calls_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/camera_btn.png b/TMessagesProj/src/main/res/drawable-hdpi/camera_btn.png old mode 100755 new mode 100644 index bb17f21cb3..8d1241ff4c Binary files a/TMessagesProj/src/main/res/drawable-hdpi/camera_btn.png and b/TMessagesProj/src/main/res/drawable-hdpi/camera_btn.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/camera_revert1.png b/TMessagesProj/src/main/res/drawable-hdpi/camera_revert1.png old mode 100755 new mode 100644 index 7cf7678dea..641c72b877 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/camera_revert1.png and b/TMessagesProj/src/main/res/drawable-hdpi/camera_revert1.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/camera_revert2.png b/TMessagesProj/src/main/res/drawable-hdpi/camera_revert2.png old mode 100755 new mode 100644 index 7878862191..e8a0d52708 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/camera_revert2.png and b/TMessagesProj/src/main/res/drawable-hdpi/camera_revert2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/cancel_big.png b/TMessagesProj/src/main/res/drawable-hdpi/cancel_big.png old mode 100755 new mode 100644 index 96035d5cca..506358b095 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/cancel_big.png and b/TMessagesProj/src/main/res/drawable-hdpi/cancel_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_incoming.png b/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_incoming.png index f5910fd152..0e268cac54 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_incoming.png and b/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_incoming.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_outgoing.png b/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_outgoing.png index 7db609af23..4a00bd4510 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_outgoing.png and b/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_outgoing.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_video.png b/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_video.png index 872ea8bbac..7a148e1182 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_video.png and b/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_voice.png b/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_voice.png index 2230fb9522..57242f8153 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_voice.png and b/TMessagesProj/src/main/res/drawable-hdpi/chat_calls_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/chats_archive.png b/TMessagesProj/src/main/res/drawable-hdpi/chats_archive.png index 2dc731bc59..8c30da23d6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/chats_archive.png and b/TMessagesProj/src/main/res/drawable-hdpi/chats_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_arrow.png b/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_arrow.png index 64ff332efe..21340b43cb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_arrow.png and b/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_box.png b/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_box.png index a3485aa9f9..0fd57d36a5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_box.png and b/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_box.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_muted.png b/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_muted.png index c27940ae2e..8a3f182c1e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_muted.png and b/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_pin.png b/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_pin.png index 9d31f4f94f..dee105a40e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_pin.png and b/TMessagesProj/src/main/res/drawable-hdpi/chats_archive_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/chats_pin.png b/TMessagesProj/src/main/res/drawable-hdpi/chats_pin.png index 751476b124..82ebd0d135 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/chats_pin.png and b/TMessagesProj/src/main/res/drawable-hdpi/chats_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/chats_replies.png b/TMessagesProj/src/main/res/drawable-hdpi/chats_replies.png index b48db87e97..81e006c6b9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/chats_replies.png and b/TMessagesProj/src/main/res/drawable-hdpi/chats_replies.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/chats_saved.png b/TMessagesProj/src/main/res/drawable-hdpi/chats_saved.png index a4a4830c24..eb3d138a2f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/chats_saved.png and b/TMessagesProj/src/main/res/drawable-hdpi/chats_saved.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/chats_undo.png b/TMessagesProj/src/main/res/drawable-hdpi/chats_undo.png index bc86be1a04..cefce00765 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/chats_undo.png and b/TMessagesProj/src/main/res/drawable-hdpi/chats_undo.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/chats_unpin.png b/TMessagesProj/src/main/res/drawable-hdpi/chats_unpin.png index c11e9e1e24..2f20cff267 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/chats_unpin.png and b/TMessagesProj/src/main/res/drawable-hdpi/chats_unpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/checkbig.png b/TMessagesProj/src/main/res/drawable-hdpi/checkbig.png index dcb4876a3c..682e59bb65 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/checkbig.png and b/TMessagesProj/src/main/res/drawable-hdpi/checkbig.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/circle.png b/TMessagesProj/src/main/res/drawable-hdpi/circle.png old mode 100755 new mode 100644 index ce1018b1f8..36141afb4e Binary files a/TMessagesProj/src/main/res/drawable-hdpi/circle.png and b/TMessagesProj/src/main/res/drawable-hdpi/circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/circle_big.png b/TMessagesProj/src/main/res/drawable-hdpi/circle_big.png old mode 100755 new mode 100644 index f65999d44b..5696ffd59e Binary files a/TMessagesProj/src/main/res/drawable-hdpi/circle_big.png and b/TMessagesProj/src/main/res/drawable-hdpi/circle_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/compose_panel_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/compose_panel_shadow.png old mode 100755 new mode 100644 index 2620208866..b17f60c3b2 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/compose_panel_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/compose_panel_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/delete.png b/TMessagesProj/src/main/res/drawable-hdpi/delete.png index fccd26a4a1..4e16cffa8e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/delete.png and b/TMessagesProj/src/main/res/drawable-hdpi/delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/device_desktop_osx.png b/TMessagesProj/src/main/res/drawable-hdpi/device_desktop_osx.png index 01127c643c..6a5747fe7f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/device_desktop_osx.png and b/TMessagesProj/src/main/res/drawable-hdpi/device_desktop_osx.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/device_desktop_other.png b/TMessagesProj/src/main/res/drawable-hdpi/device_desktop_other.png index c42b092c77..4f204aa7db 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/device_desktop_other.png and b/TMessagesProj/src/main/res/drawable-hdpi/device_desktop_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/device_desktop_win.png b/TMessagesProj/src/main/res/drawable-hdpi/device_desktop_win.png index 80a77c6258..f9140f98d8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/device_desktop_win.png and b/TMessagesProj/src/main/res/drawable-hdpi/device_desktop_win.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/device_phone_android.png b/TMessagesProj/src/main/res/drawable-hdpi/device_phone_android.png index 8a96504d0f..44d37c5b13 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/device_phone_android.png and b/TMessagesProj/src/main/res/drawable-hdpi/device_phone_android.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/device_phone_ios.png b/TMessagesProj/src/main/res/drawable-hdpi/device_phone_ios.png index dcc8bbfdb0..8dfd156ba3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/device_phone_ios.png and b/TMessagesProj/src/main/res/drawable-hdpi/device_phone_ios.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/device_tablet_android.png b/TMessagesProj/src/main/res/drawable-hdpi/device_tablet_android.png index 7a7426e82b..6716fc6eaf 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/device_tablet_android.png and b/TMessagesProj/src/main/res/drawable-hdpi/device_tablet_android.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/device_tablet_ios.png b/TMessagesProj/src/main/res/drawable-hdpi/device_tablet_ios.png index e1270952b1..9602051c83 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/device_tablet_ios.png and b/TMessagesProj/src/main/res/drawable-hdpi/device_tablet_ios.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/device_web_chrome.png b/TMessagesProj/src/main/res/drawable-hdpi/device_web_chrome.png index 19473d3bc9..bdb71719f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/device_web_chrome.png and b/TMessagesProj/src/main/res/drawable-hdpi/device_web_chrome.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/device_web_edge.png b/TMessagesProj/src/main/res/drawable-hdpi/device_web_edge.png index 0586a986c1..de17dc59d3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/device_web_edge.png and b/TMessagesProj/src/main/res/drawable-hdpi/device_web_edge.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/device_web_firefox.png b/TMessagesProj/src/main/res/drawable-hdpi/device_web_firefox.png index 46ea2e6ee0..4bc117f629 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/device_web_firefox.png and b/TMessagesProj/src/main/res/drawable-hdpi/device_web_firefox.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/device_web_opera.png b/TMessagesProj/src/main/res/drawable-hdpi/device_web_opera.png index 97693369f4..64873ba6c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/device_web_opera.png and b/TMessagesProj/src/main/res/drawable-hdpi/device_web_opera.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/device_web_other.png b/TMessagesProj/src/main/res/drawable-hdpi/device_web_other.png index b80a5b6843..90b7ca6549 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/device_web_other.png and b/TMessagesProj/src/main/res/drawable-hdpi/device_web_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/device_web_safari.png b/TMessagesProj/src/main/res/drawable-hdpi/device_web_safari.png index 8d3de2aba9..9dbfb722f2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/device_web_safari.png and b/TMessagesProj/src/main/res/drawable-hdpi/device_web_safari.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/emoji_love.png b/TMessagesProj/src/main/res/drawable-hdpi/emoji_love.png index 1f844a2736..a25595a242 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/emoji_love.png and b/TMessagesProj/src/main/res/drawable-hdpi/emoji_love.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/emoji_tabs_faves.png b/TMessagesProj/src/main/res/drawable-hdpi/emoji_tabs_faves.png index ad0473042c..7609c06d6c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/emoji_tabs_faves.png and b/TMessagesProj/src/main/res/drawable-hdpi/emoji_tabs_faves.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/emoji_tabs_new1.png b/TMessagesProj/src/main/res/drawable-hdpi/emoji_tabs_new1.png index 2351d3c95e..02a3e7c247 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/emoji_tabs_new1.png and b/TMessagesProj/src/main/res/drawable-hdpi/emoji_tabs_new1.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/emoji_tabs_new3.png b/TMessagesProj/src/main/res/drawable-hdpi/emoji_tabs_new3.png index ea2dede324..cb1c231d63 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/emoji_tabs_new3.png and b/TMessagesProj/src/main/res/drawable-hdpi/emoji_tabs_new3.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/fab_compose_small.png b/TMessagesProj/src/main/res/drawable-hdpi/fab_compose_small.png index fe3cfd3769..b053e605df 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/fab_compose_small.png and b/TMessagesProj/src/main/res/drawable-hdpi/fab_compose_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/fast_scroll_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/fast_scroll_shadow.png index 529005b73e..0e536814d4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/fast_scroll_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/fast_scroll_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/files_folder.png b/TMessagesProj/src/main/res/drawable-hdpi/files_folder.png index 99a3a747f4..54933bda90 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/files_folder.png and b/TMessagesProj/src/main/res/drawable-hdpi/files_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/files_gallery.png b/TMessagesProj/src/main/res/drawable-hdpi/files_gallery.png index a45f2b6a03..979e66d107 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/files_gallery.png and b/TMessagesProj/src/main/res/drawable-hdpi/files_gallery.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/files_internal.png b/TMessagesProj/src/main/res/drawable-hdpi/files_internal.png index 679c0328e4..038478d0bf 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/files_internal.png and b/TMessagesProj/src/main/res/drawable-hdpi/files_internal.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/files_music.png b/TMessagesProj/src/main/res/drawable-hdpi/files_music.png index aa8c403706..8af0594f9d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/files_music.png and b/TMessagesProj/src/main/res/drawable-hdpi/files_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/files_storage.png b/TMessagesProj/src/main/res/drawable-hdpi/files_storage.png index 536a6ff30f..d2bbd806b6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/files_storage.png and b/TMessagesProj/src/main/res/drawable-hdpi/files_storage.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_add_photo.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_add_photo.png index 32cdf35f33..92ddedcc17 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_add_photo.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_add_photo.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_add_sticker.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_add_sticker.png index 754a068444..8b6d32985c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_add_sticker.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_add_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_boost_plus.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_boost_plus.png index 299802f0de..84ab06daef 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_boost_plus.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_boost_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_button_reply.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_button_reply.png index 47a535d4e9..c716fa08da 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_button_reply.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_button_reply.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_button_share.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_button_share.png index 540fb3b399..45d7963bef 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_button_share.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_button_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_chatlink_large.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_chatlink_large.png index 88a4bf4c63..2b7571baa9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_chatlink_large.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_chatlink_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_clear.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_clear.png index e6c5f61026..9dffa0721d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_clear.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_directions.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_directions.png index 68c556abed..1ddefce254 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_directions.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_directions.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_extend_location.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_extend_location.png index bc79a6ec77..8dd83a0f11 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_extend_location.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_extend_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_fire.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_fire.png index db7bb482d0..dee3fd1a87 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_fire.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_fire.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_folder_existing.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_folder_existing.png index 87c692151a..e49ab6de12 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_folder_existing.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_folder_existing.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_folder_new.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_folder_new.png index 4b92769bc1..cebd6f0b2b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_folder_new.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_folder_new.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_forward.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_forward.png index 1ba4cf37a4..c2d4997385 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_forward.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_gift_premium.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_gift_premium.png index a280b1a78c..68034da741 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_gift_premium.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_gift_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_giveaway_premium.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_giveaway_premium.png new file mode 100644 index 0000000000..d5f396a516 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/filled_giveaway_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_giveaway_stars.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_giveaway_stars.png new file mode 100644 index 0000000000..2621eb4864 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/filled_giveaway_stars.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_info.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_info.png index a3ebd48a4f..2674924d83 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_info.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_limit_boost.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_limit_boost.png index d1e6a8a77a..5e0d43586a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_limit_boost.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_limit_boost.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_link.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_link.png index 278c510a3c..2b25bae0b0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_link.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_location.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_location.png index 2c092306f6..f3324f8902 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_location.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_location_forever.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_location_forever.png index 68b42e964b..aba0c49eb7 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_location_forever.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_location_forever.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_open_message.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_open_message.png index 5dcd28d630..d64234d3ec 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_open_message.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_open_message.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_away.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_away.png index 78eb9ed919..f229fedbd3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_away.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_away.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_bots.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_bots.png index 652f2b0448..10e82f1e86 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_bots.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_business.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_business.png index 3fccf28a9b..d4e68e814f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_business.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_business.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_camera.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_camera.png index 6ee3fd6da1..f76273b2e1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_camera.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_camera.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_chatlink.png index b3376a27a0..8a0c81a2b1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_chatlink.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_hours.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_hours.png index c656392ab9..a62af6645a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_hours.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_hours.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_intro.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_intro.png index 7df7ea74cb..c8ecf6e54c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_intro.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_status2.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_status2.png index aa3d81e787..b8bc7a9b24 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_status2.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_premium_status2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_reply_quote.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_reply_quote.png index 96391d5956..e0159493c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_reply_quote.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_reply_quote.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_reply_settings.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_reply_settings.png index a5cdda0211..d164d0c97c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_reply_settings.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_reply_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_sensitive.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_sensitive.png index 377255c2c0..af3eb2dc35 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_sensitive.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_sensitive.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_star_plus.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_star_plus.png index 5512ca23a6..0efc626fca 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_star_plus.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_star_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_stop_location.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_stop_location.png index 12c43b9721..4e828a9056 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_stop_location.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_stop_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_unclaimed.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_unclaimed.png index aed8a880f7..e5a52c494b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_unclaimed.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_unclaimed.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_unknown.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_unknown.png index 43408185fc..ed224298ab 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_unknown.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_unknown.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_username.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_username.png index b77d0777f4..1398911d2d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_username.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_username.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_views.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_views.png index e005cbcfdd..d829a7cd8c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_views.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_views.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/filled_widget_music.png b/TMessagesProj/src/main/res/drawable-hdpi/filled_widget_music.png index 4e4c853849..5cc8f06371 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/filled_widget_music.png and b/TMessagesProj/src/main/res/drawable-hdpi/filled_widget_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/fingerprint.png b/TMessagesProj/src/main/res/drawable-hdpi/fingerprint.png index a4e333471a..d6bd373824 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/fingerprint.png and b/TMessagesProj/src/main/res/drawable-hdpi/fingerprint.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/flash_auto.png b/TMessagesProj/src/main/res/drawable-hdpi/flash_auto.png old mode 100755 new mode 100644 index bd7b1629b7..3d89406ed9 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/flash_auto.png and b/TMessagesProj/src/main/res/drawable-hdpi/flash_auto.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/flash_off.png b/TMessagesProj/src/main/res/drawable-hdpi/flash_off.png old mode 100755 new mode 100644 index ce1ea3d824..106e3e9819 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/flash_off.png and b/TMessagesProj/src/main/res/drawable-hdpi/flash_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/flash_on.png b/TMessagesProj/src/main/res/drawable-hdpi/flash_on.png old mode 100755 new mode 100644 index d59f1d90fb..3111726dc8 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/flash_on.png and b/TMessagesProj/src/main/res/drawable-hdpi/flash_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/floating_check.png b/TMessagesProj/src/main/res/drawable-hdpi/floating_check.png index a821547091..dabcc1816b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/floating_check.png and b/TMessagesProj/src/main/res/drawable-hdpi/floating_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/floating_pencil.png b/TMessagesProj/src/main/res/drawable-hdpi/floating_pencil.png old mode 100755 new mode 100644 index 8889aa0031..bea761a023 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/floating_pencil.png and b/TMessagesProj/src/main/res/drawable-hdpi/floating_pencil.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/floating_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/floating_shadow.png old mode 100755 new mode 100644 index 3a5fcd7cf6..da0989ba33 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/floating_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/floating_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/floating_shadow_profile.png b/TMessagesProj/src/main/res/drawable-hdpi/floating_shadow_profile.png old mode 100755 new mode 100644 index 8f7c2ca412..83f950d383 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/floating_shadow_profile.png and b/TMessagesProj/src/main/res/drawable-hdpi/floating_shadow_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/foursquare.png b/TMessagesProj/src/main/res/drawable-hdpi/foursquare.png old mode 100755 new mode 100644 index 4650d7f770..5b7696ba13 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/foursquare.png and b/TMessagesProj/src/main/res/drawable-hdpi/foursquare.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ghost.png b/TMessagesProj/src/main/res/drawable-hdpi/ghost.png index 4d9d8b6a03..3a8d6511af 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ghost.png and b/TMessagesProj/src/main/res/drawable-hdpi/ghost.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/gif_empty.png b/TMessagesProj/src/main/res/drawable-hdpi/gif_empty.png index 75b69f5090..e0dd3dbd09 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/gif_empty.png and b/TMessagesProj/src/main/res/drawable-hdpi/gif_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/googlepay_button_background_image.9.png b/TMessagesProj/src/main/res/drawable-hdpi/googlepay_button_background_image.9.png deleted file mode 100644 index 7091d810af..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/googlepay_button_background_image.9.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/group_edit.png b/TMessagesProj/src/main/res/drawable-hdpi/group_edit.png old mode 100755 new mode 100644 index f2157994c0..e77b5b5af2 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/group_edit.png and b/TMessagesProj/src/main/res/drawable-hdpi/group_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/group_edit_profile.png b/TMessagesProj/src/main/res/drawable-hdpi/group_edit_profile.png index b5126b1685..03b7fd09e6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/group_edit_profile.png and b/TMessagesProj/src/main/res/drawable-hdpi/group_edit_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/groups_limit1.png b/TMessagesProj/src/main/res/drawable-hdpi/groups_limit1.png index 53b5235903..0b7eb3b545 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/groups_limit1.png and b/TMessagesProj/src/main/res/drawable-hdpi/groups_limit1.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/groups_overview_check.png b/TMessagesProj/src/main/res/drawable-hdpi/groups_overview_check.png index 875403a396..fc8d99a7d3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/groups_overview_check.png and b/TMessagesProj/src/main/res/drawable-hdpi/groups_overview_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/groupsintro.png b/TMessagesProj/src/main/res/drawable-hdpi/groupsintro.png index f2e878ccd4..fafc44c769 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/groupsintro.png and b/TMessagesProj/src/main/res/drawable-hdpi/groupsintro.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/groupsintro2.png b/TMessagesProj/src/main/res/drawable-hdpi/groupsintro2.png index f7285ed0cd..2aa01d4581 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/groupsintro2.png and b/TMessagesProj/src/main/res/drawable-hdpi/groupsintro2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/heart_confetti.png b/TMessagesProj/src/main/res/drawable-hdpi/heart_confetti.png index a957257580..0b4b303db5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/heart_confetti.png and b/TMessagesProj/src/main/res/drawable-hdpi/heart_confetti.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_back.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_back.png old mode 100755 new mode 100644 index 486f9c1a0d..9c9bbab236 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_back.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_back.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_done.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_done.png old mode 100755 new mode 100644 index bff32c9fdd..2c1d205bcc Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_done.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_done.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_new.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_new.png old mode 100755 new mode 100644 index 8db1903b85..6c265bc795 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_new.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_new.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_other.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_other.png old mode 100755 new mode 100644 index 95c025f093..7cfc685efc Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_other.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_reply.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_reply.png index c9cc46b805..88fbba369c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_reply.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_reply.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_reply2.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_reply2.png old mode 100755 new mode 100644 index 6775d9b9ca..b00519894e Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_reply2.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_reply2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_search.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_search.png old mode 100755 new mode 100644 index 452a8970d1..abbee53bb0 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_search.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_again.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_again.png index 51381a9816..b3de94d20b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_again.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_again.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_againinline.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_againinline.png index b943d84f8c..5bbaa89475 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_againinline.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_againinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_arrow_drop_down.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_arrow_drop_down.png old mode 100755 new mode 100644 index 622e66ffed..f5df4ae737 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_arrow_drop_down.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_arrow_drop_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_call.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_call.png index b3a24d546f..52151f8f41 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_call.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_call.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_call_end_white_24dp.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_call_end_white_24dp.png index 958cd742b0..ad193c03be 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_call_end_white_24dp.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_call_end_white_24dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_call_made_green_18dp.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_call_made_green_18dp.png index 354221821a..9fa2e96e3a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_call_made_green_18dp.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_call_made_green_18dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_call_received_green_18dp.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_call_received_green_18dp.png old mode 100755 new mode 100644 index 4455c04587..b98899746c Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_call_received_green_18dp.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_call_received_green_18dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_chatlist_add_2.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_chatlist_add_2.png index 36f91c45ec..1c644c4491 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_chatlist_add_2.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_chatlist_add_2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_chevron_right_black_18dp.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_chevron_right_black_18dp.png old mode 100755 new mode 100644 index 823d50d0db..0e6c9f05b3 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_chevron_right_black_18dp.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_chevron_right_black_18dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_close_white.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_close_white.png old mode 100755 new mode 100644 index a9ee77fbdb..d3272f7632 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_close_white.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_close_white.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_fp_40px.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_fp_40px.png deleted file mode 100644 index 3d6eef4512..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_fp_40px.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_gallery_background.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_gallery_background.png index 00e7fde401..58d908eea5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_gallery_background.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_gallery_background.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_gofullscreen.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_gofullscreen.png index 6e9f9652c4..3812d8db5f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_gofullscreen.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_gofullscreen.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_goinline.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_goinline.png index 8f7849e3ba..eb9fc261a9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_goinline.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_goinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_launcher_dr.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_launcher_dr.png index 6e16733c9f..8be85cd019 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_launcher_dr.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_launcher_dr.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_lock_header.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_lock_header.png old mode 100755 new mode 100644 index 5d480448e0..da0b8a7836 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_lock_header.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_lock_header.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_lock_white.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_lock_white.png index 34afbbbc56..4eb38f2f7c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_lock_white.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_lock_white.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_masks_msk1.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_masks_msk1.png index ff92a0fe2f..9051e81137 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_masks_msk1.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_masks_msk1.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_outfullscreen.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_outfullscreen.png index d48664a761..92a596afbd 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_outfullscreen.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_outfullscreen.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_outinline.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_outinline.png index 868469b22a..3b3cbc0ca4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_outinline.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_outinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_pause.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_pause.png index 5882c75fef..8c3ee1c2fa 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_pause.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_pause.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_pauseinline.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_pauseinline.png index 389c4101b2..4801518768 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_pauseinline.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_pauseinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_play.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_play.png index 86709a9af7..0e509d4b70 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_play.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_play.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_playinline.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_playinline.png index d2562fcf25..59901d4752 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_playinline.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_playinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_rating_star.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_rating_star.png index 557538de28..c11212ff7a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_rating_star.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_rating_star.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_rating_star_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_rating_star_filled.png index 38c6014f3b..28e07929de 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_rating_star_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_rating_star_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_reply_icon.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_reply_icon.png old mode 100755 new mode 100644 index ebe314ac63..b8505009f6 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_reply_icon.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_reply_icon.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_send.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_send.png old mode 100755 new mode 100644 index 1be7ad9428..1b612330ca Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_send.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_send.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_share_video.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_share_video.png index e428faa28f..1289bcc6a3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_share_video.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_share_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_video.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_video.png index 8160264c36..ed5aa258d0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/ic_video.png and b/TMessagesProj/src/main/res/drawable-hdpi/ic_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_attach.png b/TMessagesProj/src/main/res/drawable-hdpi/input_attach.png index 57a5a51852..7c46426bf8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_attach.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_attach.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_bot1.png b/TMessagesProj/src/main/res/drawable-hdpi/input_bot1.png index f5fddbe29c..61f128d520 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_bot1.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_bot1.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_bot2.png b/TMessagesProj/src/main/res/drawable-hdpi/input_bot2.png index eaecf8c1f2..f6cd9fdd1c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_bot2.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_bot2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_calendar1.png b/TMessagesProj/src/main/res/drawable-hdpi/input_calendar1.png index 4aed846c3c..240fda980e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_calendar1.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_calendar1.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_calendar2.png b/TMessagesProj/src/main/res/drawable-hdpi/input_calendar2.png index f89d4c68b4..aa3654724a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_calendar2.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_calendar2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_clear.png b/TMessagesProj/src/main/res/drawable-hdpi/input_clear.png index 2bfaebd8b0..5644f4a7d5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_clear.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_done.png b/TMessagesProj/src/main/res/drawable-hdpi/input_done.png index e35e3ddd24..98480cbf7b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_done.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_done.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_forward.png b/TMessagesProj/src/main/res/drawable-hdpi/input_forward.png index 6606e1cabb..cd21534ce3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_forward.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_keyboard.png b/TMessagesProj/src/main/res/drawable-hdpi/input_keyboard.png index e8f7779d97..d57fe9d54e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_keyboard.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_keyboard.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_mic.png b/TMessagesProj/src/main/res/drawable-hdpi/input_mic.png index e34ad493f8..278a84161b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_mic.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_mic.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_mic_pressed.png b/TMessagesProj/src/main/res/drawable-hdpi/input_mic_pressed.png index e309109cc0..d2555f8439 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_mic_pressed.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_mic_pressed.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_notify_off.png b/TMessagesProj/src/main/res/drawable-hdpi/input_notify_off.png index 283703fdc2..55b4f54a2f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_notify_off.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_notify_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_notify_on.png b/TMessagesProj/src/main/res/drawable-hdpi/input_notify_on.png index 8b2ddbc987..f4617890bb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_notify_on.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_notify_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_reply.png b/TMessagesProj/src/main/res/drawable-hdpi/input_reply.png index 5e1868710e..ec22c12ccc 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_reply.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_reply.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_schedule.png b/TMessagesProj/src/main/res/drawable-hdpi/input_schedule.png index 83a6a9b3e3..b2ce2832dc 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_schedule.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_schedule.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_smile.png b/TMessagesProj/src/main/res/drawable-hdpi/input_smile.png index c3acc1a2b7..51fa28a7d7 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_smile.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_smile.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_video.png b/TMessagesProj/src/main/res/drawable-hdpi/input_video.png index bd1d5fe935..e23c4436d2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_video.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_video_pressed.png b/TMessagesProj/src/main/res/drawable-hdpi/input_video_pressed.png index 4b0caec135..63e07f93dd 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_video_pressed.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_video_pressed.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_video_story.png b/TMessagesProj/src/main/res/drawable-hdpi/input_video_story.png index 03b2d45ef7..446a71abe6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_video_story.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_video_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/input_video_story_remove.png b/TMessagesProj/src/main/res/drawable-hdpi/input_video_story_remove.png index 2245861dc8..dc0d1ecb3c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/input_video_story_remove.png and b/TMessagesProj/src/main/res/drawable-hdpi/input_video_story_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/instant_camera.png b/TMessagesProj/src/main/res/drawable-hdpi/instant_camera.png old mode 100755 new mode 100644 index de6404d5fe..59411609b7 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/instant_camera.png and b/TMessagesProj/src/main/res/drawable-hdpi/instant_camera.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_arrow.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_arrow.png old mode 100755 new mode 100644 index 46850d2992..251c3d0e4b Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_arrow.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_arrow_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_arrow_shadow.png old mode 100755 new mode 100644 index 854523a2c7..5dd6351646 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_arrow_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_arrow_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_body.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_body.png index 3faa0e25a2..ac339c0449 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_body.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_body.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_spiral.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_spiral.png old mode 100755 new mode 100644 index 8ee8ca78c9..2e94f17b6a Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_spiral.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_fast_spiral.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_bubble.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_bubble.png old mode 100755 new mode 100644 index e11f1bd960..b600e9a960 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_bubble.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_bubble.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_bubble_dot.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_bubble_dot.png old mode 100755 new mode 100644 index 0411d28ab3..fa7edac1f4 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_bubble_dot.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_bubble_dot.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_cam.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_cam.png old mode 100755 new mode 100644 index f43036cb8c..112d1e51fc Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_cam.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_cam.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_cam_lens.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_cam_lens.png old mode 100755 new mode 100644 index abee554eda..df09243ea1 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_cam_lens.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_cam_lens.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_pencil.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_pencil.png old mode 100755 new mode 100644 index f8774abbe3..095306b406 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_pencil.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_pencil.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_pin.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_pin.png old mode 100755 new mode 100644 index 6815b778b2..a4d71c5a78 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_pin.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_smile.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_smile.png old mode 100755 new mode 100644 index 922be73e6e..24b908b9ba Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_smile.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_smile.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_smile_eye.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_smile_eye.png old mode 100755 new mode 100644 index 39106f184f..0c04cdfc46 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_smile_eye.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_smile_eye.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_videocam.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_videocam.png old mode 100755 new mode 100644 index 1840b1b59d..f6b0353849 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_videocam.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_ic_videocam.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_knot_down.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_knot_down.png old mode 100755 new mode 100644 index 61c6cc828a..9e36e3ee50 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_knot_down.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_knot_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_knot_up.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_knot_up.png old mode 100755 new mode 100644 index 1cc83d7824..0c6a816fd1 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_knot_up.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_knot_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_infinity.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_infinity.png old mode 100755 new mode 100644 index 28b1082c5f..bab6bf7827 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_infinity.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_infinity.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_infinity_white.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_infinity_white.png old mode 100755 new mode 100644 index ef3b2bdcaf..b05598fc09 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_infinity_white.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_infinity_white.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_mask.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_mask.png old mode 100755 new mode 100644 index 5112ff6de4..b38ff7584c Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_mask.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_mask.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_star.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_star.png old mode 100755 new mode 100644 index a7b23643a9..3592481c10 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_star.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_powerful_star.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_private_door.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_private_door.png old mode 100755 new mode 100644 index 88fd080748..31b1af3d6f Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_private_door.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_private_door.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_private_screw.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_private_screw.png old mode 100755 new mode 100644 index 09703406dd..6c572f5b89 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_private_screw.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_private_screw.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/intro_tg_plane.png b/TMessagesProj/src/main/res/drawable-hdpi/intro_tg_plane.png old mode 100755 new mode 100644 index 5d9407ff1d..ec6fb9c65a Binary files a/TMessagesProj/src/main/res/drawable-hdpi/intro_tg_plane.png and b/TMessagesProj/src/main/res/drawable-hdpi/intro_tg_plane.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/knob_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/knob_shadow.png index ef2c82c249..12a5e8167d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/knob_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/knob_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_ads_info.png b/TMessagesProj/src/main/res/drawable-hdpi/large_ads_info.png index c49a6b53ad..e5d4f97672 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_ads_info.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_ads_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_archive.png b/TMessagesProj/src/main/res/drawable-hdpi/large_archive.png index d32d52b568..88e0117f0c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_archive.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_away.png b/TMessagesProj/src/main/res/drawable-hdpi/large_away.png index 11670c24ef..1eece437e7 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_away.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_away.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_boosts.png b/TMessagesProj/src/main/res/drawable-hdpi/large_boosts.png index 4f7db9b9a2..f5bebcb7d8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_boosts.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_boosts.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_greeting.png b/TMessagesProj/src/main/res/drawable-hdpi/large_greeting.png index ef9eedeef6..95dcec12ff 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_greeting.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_greeting.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_hashtags.png b/TMessagesProj/src/main/res/drawable-hdpi/large_hashtags.png index 54aeb1acc6..5958e4bb09 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_hashtags.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_hashtags.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_hidden.png b/TMessagesProj/src/main/res/drawable-hdpi/large_hidden.png index 21b72c8ca1..9a3fafdc95 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_hidden.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_hidden.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_income.png b/TMessagesProj/src/main/res/drawable-hdpi/large_income.png index a4119d1db9..ac7458cde7 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_income.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_income.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_locked_post.png b/TMessagesProj/src/main/res/drawable-hdpi/large_locked_post.png index 725967a3f3..2274e0225f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_locked_post.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_locked_post.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_log_actions.png b/TMessagesProj/src/main/res/drawable-hdpi/large_log_actions.png index 89a977be43..868ee51b3b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_log_actions.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_log_actions.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_message_lock.png b/TMessagesProj/src/main/res/drawable-hdpi/large_message_lock.png deleted file mode 100644 index 96c5177789..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_message_lock.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_monetize.png b/TMessagesProj/src/main/res/drawable-hdpi/large_monetize.png index 21f9112717..86c98873a7 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_monetize.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_monetize.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_notes.png b/TMessagesProj/src/main/res/drawable-hdpi/large_notes.png index 223a0f1230..eef4f0ff04 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_notes.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_notes.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_quickreplies.png b/TMessagesProj/src/main/res/drawable-hdpi/large_quickreplies.png index e8b8376db1..9fe418dd29 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_quickreplies.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_quickreplies.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_repost_story.png b/TMessagesProj/src/main/res/drawable-hdpi/large_repost_story.png index 355c4f13f0..ee3deb224a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_repost_story.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_repost_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_stealth.png b/TMessagesProj/src/main/res/drawable-hdpi/large_stealth.png index a8ada6754a..9f4fdf474e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_stealth.png and b/TMessagesProj/src/main/res/drawable-hdpi/large_stealth.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/large_username.png b/TMessagesProj/src/main/res/drawable-hdpi/large_username.png deleted file mode 100644 index 2a26b945f0..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/large_username.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/layer_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/layer_shadow.png index d728919737..9741a9c3fd 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/layer_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/layer_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/left_status_profile.png b/TMessagesProj/src/main/res/drawable-hdpi/left_status_profile.png index af74317b88..018fb70e70 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/left_status_profile.png and b/TMessagesProj/src/main/res/drawable-hdpi/left_status_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/list_check.png b/TMessagesProj/src/main/res/drawable-hdpi/list_check.png index 8f21f0f8cd..08bad9a220 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/list_check.png and b/TMessagesProj/src/main/res/drawable-hdpi/list_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/list_circle.png b/TMessagesProj/src/main/res/drawable-hdpi/list_circle.png old mode 100755 new mode 100644 index 9236ee8158..ecaea72020 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/list_circle.png and b/TMessagesProj/src/main/res/drawable-hdpi/list_circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/list_halfcheck.png b/TMessagesProj/src/main/res/drawable-hdpi/list_halfcheck.png index 5cc9a09ec9..66fef1d965 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/list_halfcheck.png and b/TMessagesProj/src/main/res/drawable-hdpi/list_halfcheck.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/list_mute.png b/TMessagesProj/src/main/res/drawable-hdpi/list_mute.png index 6886760b06..1d969e4069 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/list_mute.png and b/TMessagesProj/src/main/res/drawable-hdpi/list_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/list_pin.png b/TMessagesProj/src/main/res/drawable-hdpi/list_pin.png index eabebd24e8..66ea104801 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/list_pin.png and b/TMessagesProj/src/main/res/drawable-hdpi/list_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/list_reorder.png b/TMessagesProj/src/main/res/drawable-hdpi/list_reorder.png index 4928a9d543..ac0b93d408 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/list_reorder.png and b/TMessagesProj/src/main/res/drawable-hdpi/list_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/list_secret.png b/TMessagesProj/src/main/res/drawable-hdpi/list_secret.png old mode 100755 new mode 100644 index 6a7f312c5e..356767e761 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/list_secret.png and b/TMessagesProj/src/main/res/drawable-hdpi/list_secret.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/list_unmute.png b/TMessagesProj/src/main/res/drawable-hdpi/list_unmute.png index a6735ccfea..3e4e912dad 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/list_unmute.png and b/TMessagesProj/src/main/res/drawable-hdpi/list_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/list_warning_sign.png b/TMessagesProj/src/main/res/drawable-hdpi/list_warning_sign.png old mode 100755 new mode 100644 index 379f633b44..a1b5d44fe5 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/list_warning_sign.png and b/TMessagesProj/src/main/res/drawable-hdpi/list_warning_sign.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/live_loc.png b/TMessagesProj/src/main/res/drawable-hdpi/live_loc.png index b319350e15..66e3bdb7aa 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/live_loc.png and b/TMessagesProj/src/main/res/drawable-hdpi/live_loc.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/livepin.png b/TMessagesProj/src/main/res/drawable-hdpi/livepin.png index ac6680e832..4abdf9682b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/livepin.png and b/TMessagesProj/src/main/res/drawable-hdpi/livepin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/load_big.png b/TMessagesProj/src/main/res/drawable-hdpi/load_big.png old mode 100755 new mode 100644 index be32293656..a5ef3f3cb9 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/load_big.png and b/TMessagesProj/src/main/res/drawable-hdpi/load_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/location_empty.png b/TMessagesProj/src/main/res/drawable-hdpi/location_empty.png index 8591709ef5..86aa4dcabd 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/location_empty.png and b/TMessagesProj/src/main/res/drawable-hdpi/location_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/login_arrow1.png b/TMessagesProj/src/main/res/drawable-hdpi/login_arrow1.png index cfa1b52ea7..004240226d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/login_arrow1.png and b/TMessagesProj/src/main/res/drawable-hdpi/login_arrow1.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/logo_middle.png b/TMessagesProj/src/main/res/drawable-hdpi/logo_middle.png index 2d209f206a..66b392e6ab 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/logo_middle.png and b/TMessagesProj/src/main/res/drawable-hdpi/logo_middle.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/map_pin.png b/TMessagesProj/src/main/res/drawable-hdpi/map_pin.png index 667b8b3a10..b0ea4a25c7 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/map_pin.png and b/TMessagesProj/src/main/res/drawable-hdpi/map_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/map_pin2.png b/TMessagesProj/src/main/res/drawable-hdpi/map_pin2.png index d96916fda4..5431eeb7d4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/map_pin2.png and b/TMessagesProj/src/main/res/drawable-hdpi/map_pin2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/map_pin_circle.png b/TMessagesProj/src/main/res/drawable-hdpi/map_pin_circle.png index 0216074abb..0bc158f8d8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/map_pin_circle.png and b/TMessagesProj/src/main/res/drawable-hdpi/map_pin_circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/map_pin_cone2.png b/TMessagesProj/src/main/res/drawable-hdpi/map_pin_cone2.png index f7f1fe1f5d..4446b47218 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/map_pin_cone2.png and b/TMessagesProj/src/main/res/drawable-hdpi/map_pin_cone2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/map_pin_photo.png b/TMessagesProj/src/main/res/drawable-hdpi/map_pin_photo.png index a8f5769249..7d927ec002 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/map_pin_photo.png and b/TMessagesProj/src/main/res/drawable-hdpi/map_pin_photo.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_button_erase.png b/TMessagesProj/src/main/res/drawable-hdpi/media_button_erase.png index c10494655f..c473ea384a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_button_erase.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_button_erase.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_button_restore.png b/TMessagesProj/src/main/res/drawable-hdpi/media_button_restore.png index 66009667d6..d5e82e19d8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_button_restore.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_button_restore.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_button_undo.png b/TMessagesProj/src/main/res/drawable-hdpi/media_button_undo.png deleted file mode 100644 index 6578b283cf..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_button_undo.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_crop.png b/TMessagesProj/src/main/res/drawable-hdpi/media_crop.png index 8ed6d0c77c..444b025502 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_crop.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_crop.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_blue.png b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_blue.png index 0ec63cbe57..c60fba80bf 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_blue.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_blue.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_blue_b.png b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_blue_b.png index 79b0735976..70132aa959 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_blue_b.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_blue_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_green.png b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_green.png index 50a1a6d73c..6b2a097d15 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_green.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_green.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_green_b.png b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_green_b.png index 5d6a02c71f..4cbed99751 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_green_b.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_green_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_red.png b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_red.png index fc3cf22d87..13cc37231b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_red.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_red.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_red_b.png b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_red_b.png index 6af22de933..add06110ed 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_red_b.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_red_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_yellow.png b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_yellow.png index 74bc973a7e..1f8573047b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_yellow.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_yellow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_yellow_b.png b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_yellow_b.png index bd8b328b0f..33fddf9fc6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_doc_yellow_b.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_doc_yellow_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_download.png b/TMessagesProj/src/main/res/drawable-hdpi/media_download.png index daf56bd4b9..0c21c7f4e6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_download.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_download.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_draw.png b/TMessagesProj/src/main/res/drawable-hdpi/media_draw.png index 40965a3945..a4ddf4167a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_draw.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_draw.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_dual_camera2.png b/TMessagesProj/src/main/res/drawable-hdpi/media_dual_camera2.png index 637a1e5785..7813fbaf71 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_dual_camera2.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_dual_camera2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_dual_camera2_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/media_dual_camera2_shadow.png index 0ee4c769d6..93e45d3e71 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_dual_camera2_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_dual_camera2_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_flip.png b/TMessagesProj/src/main/res/drawable-hdpi/media_flip.png index 69b923bbe8..a4f3fd5ddd 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_flip.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_flip.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_like.png b/TMessagesProj/src/main/res/drawable-hdpi/media_like.png index 2e8421f2fc..979b376d63 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_like.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_like.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_like_active.png b/TMessagesProj/src/main/res/drawable-hdpi/media_like_active.png index 9f5f32c202..e6c343f90d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_like_active.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_like_active.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_magic_cut.png b/TMessagesProj/src/main/res/drawable-hdpi/media_magic_cut.png index 5e38cc04fa..9b2d5154bd 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_magic_cut.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_magic_cut.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_more.png b/TMessagesProj/src/main/res/drawable-hdpi/media_more.png index ad7a1bad06..671db89ced 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_more.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_more.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_mute.png b/TMessagesProj/src/main/res/drawable-hdpi/media_mute.png index 5a076e828d..29a4feaa2e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_mute.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_photo_flash_auto2.png b/TMessagesProj/src/main/res/drawable-hdpi/media_photo_flash_auto2.png index c0db5663a1..04d772c82e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_photo_flash_auto2.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_photo_flash_auto2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_photo_flash_off2.png b/TMessagesProj/src/main/res/drawable-hdpi/media_photo_flash_off2.png index 416d86d227..997e3b5752 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_photo_flash_off2.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_photo_flash_off2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_photo_flash_on2.png b/TMessagesProj/src/main/res/drawable-hdpi/media_photo_flash_on2.png index 8d357b5b83..dd95cee393 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_photo_flash_on2.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_photo_flash_on2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_repost.png b/TMessagesProj/src/main/res/drawable-hdpi/media_repost.png index 808f9ae3ce..2cefdea693 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_repost.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_repost.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_settings.png b/TMessagesProj/src/main/res/drawable-hdpi/media_settings.png index 24099817fa..49acfddeef 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_settings.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_share.png b/TMessagesProj/src/main/res/drawable-hdpi/media_share.png index 727e5c1756..17810a7337 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_share.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_sticker_stroke.png b/TMessagesProj/src/main/res/drawable-hdpi/media_sticker_stroke.png index 7f7acef8a8..3c4061f5d5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_sticker_stroke.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_sticker_stroke.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/media_unmute.png b/TMessagesProj/src/main/res/drawable-hdpi/media_unmute.png index e638bf475a..4a0aa203ca 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/media_unmute.png and b/TMessagesProj/src/main/res/drawable-hdpi/media_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mentionbutton.png b/TMessagesProj/src/main/res/drawable-hdpi/mentionbutton.png index 9dddb3fbcd..387d45d390 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mentionbutton.png and b/TMessagesProj/src/main/res/drawable-hdpi/mentionbutton.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mentionchatslist.png b/TMessagesProj/src/main/res/drawable-hdpi/mentionchatslist.png index d1bf448538..ec4b329fb0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mentionchatslist.png and b/TMessagesProj/src/main/res/drawable-hdpi/mentionchatslist.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_birthday.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_birthday.png index 697cb3a174..36812ad2ca 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_birthday.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_birthday.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_arrowup.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_arrowup.png index 699954b16b..85b7aefd4d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_arrowup.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_arrowup.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_bookmark.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_bookmark.png index 51cb0e7cb6..50e2b60814 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_bookmark.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_bookmark.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_bookmarks.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_bookmarks.png index ef1394f5cb..2f97d999de 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_bookmarks.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_bookmarks.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_refresh.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_refresh.png index 0ed008b3fa..38f1923c9b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_refresh.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_refresh.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_search.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_search.png index 7066fb356f..53361efa68 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_search.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_browser_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_cashtag.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_cashtag.png index f5c586dc97..8e1b8cadbd 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_cashtag.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_cashtag.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_cache.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_cache.png index e57e3fa6cd..3393009cdc 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_cache.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_cache.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_cookies.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_cookies.png index d6fc958e22..637ec21b8e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_cookies.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_cookies.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_history.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_history.png index 8aee059c29..4574a754a7 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_history.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_history.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_recent.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_recent.png index 38be7b9b7a..e7b31bd7e2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_recent.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_clear_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_contact_existing.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_contact_existing.png index 672c531a58..2444addb13 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_contact_existing.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_contact_existing.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_copy_s.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_copy_s.png index 709571fa61..d885471ca5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_copy_s.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_copy_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_cover_stories.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_cover_stories.png index dc88f3bae0..703409d16c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_cover_stories.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_cover_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_delete_old.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_delete_old.png index 66dfa47046..ed752225f6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_delete_old.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_delete_old.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_devices.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_devices.png index 4a8003c9be..c518a80531 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_devices.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_devices.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_edit_appearance.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_edit_appearance.png index 9711b42ec1..e0381af089 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_edit_appearance.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_edit_appearance.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_external_link.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_external_link.png index cc35cd339e..0c77252122 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_external_link.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_external_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_factcheck.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_factcheck.png index 2a4635c270..746d61a430 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_factcheck.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_factcheck.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_color_name.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_color_name.png index 662f51cafa..53cdb32b33 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_color_name.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_color_name.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_color_profile.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_color_profile.png index dc32983922..484267bb56 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_color_profile.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_color_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_cover.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_cover.png index 0f7e5f6281..944164bc54 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_cover.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_cover.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_cpm.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_cpm.png index d6c0317c6a..6d801447a4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_cpm.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_cpm.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_custombg.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_custombg.png index 707a0f35e0..90185f9911 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_custombg.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_custombg.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_intro.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_intro.png index 0d2ac26b8c..f7b2ebf90e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_intro.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_links.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_links.png index 3758211e17..2d12298f67 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_links.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_links.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_links2.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_links2.png index 16e8585e1b..825c233915 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_links2.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_links2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_noads.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_noads.png index dcec674633..012d8f6a87 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_noads.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_noads.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_pack.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_pack.png index b97cdec4f3..67191f1ec1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_pack.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_pack.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_paid.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_paid.png index 4a605d5075..819616e257 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_paid.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_paid.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_reactions.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_reactions.png index aff27dbabe..ef6e9ced6f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_reactions.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_split.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_split.png index 95addc9140..1be41fa729 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_split.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_split.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_status.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_status.png index 0b23197bc4..8b683eaaab 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_status.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_stories.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_stories.png index daeb0abfd7..6ac0fe6ed8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_stories.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_translate.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_translate.png index 3b332dd7f1..77bd8fb7a1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_translate.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_translate.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_voice.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_voice.png index 2818c4f3fc..e0715227e1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_voice.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_wallpaper.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_wallpaper.png index 1873851bb6..23a79db08d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_wallpaper.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_wallpaper.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_withdrawals.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_withdrawals.png index e61cec96e9..e0a09740fe 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_withdrawals.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_feature_withdrawals.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_gift.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_gift.png index ce511f8cf7..7a22669f29 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_gift.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_hashtag.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_hashtag.png index 6fff886853..08f8648449 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_hashtag.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_hashtag.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_instant_view.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_instant_view.png index 538c21b9da..93d83b19c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_instant_view.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_instant_view.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_intro.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_intro.png index 1fed265343..fcdadb14c1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_intro.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_invit_telegram.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_invit_telegram.png index 0af0e46fd1..73db2b2774 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_invit_telegram.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_invit_telegram.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_link_create.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_link_create.png index d6f24424f8..a1ba736425 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_link_create.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_link_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_away.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_away.png index 330a75825d..aa6e91dad3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_away.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_away.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_chatbot.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_chatbot.png index 6d6364f54e..0296606c0d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_chatbot.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_chatbot.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_chatlink.png index 075dcae643..e31a7ea051 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_chatlink.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_clock.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_clock.png index 9badea245c..e429299bf8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_clock.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_clock.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_clock_add.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_clock_add.png index 3d4fdf421c..723b5b486c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_clock_add.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_clock_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_effects.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_effects.png index 9a7830f918..3b660f3692 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_effects.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_effects.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_location.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_location.png index f2b6ba7c7b..01d2098598 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_location.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_main.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_main.png index 9c4fdb7c48..c20a624098 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_main.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_main.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_privacy.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_privacy.png index 94e831c6df..1547e16a89 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_privacy.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_privacy.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_seen.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_seen.png index 9ab075e9cf..0fa93202a2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_seen.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_seen.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_tools.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_tools.png index 537a056d90..87d175641c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_tools.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_premium_tools.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_privacy.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_privacy.png index 299551bebd..cd7f06555b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_privacy.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_privacy.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_privacy_policy.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_privacy_policy.png index dd1fff2e09..402d58d726 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_privacy_policy.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_privacy_policy.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_profile_colors.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_profile_colors.png index 377ca4a58f..ba28996cc2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_profile_colors.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_profile_colors.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_profile_colors_locked.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_profile_colors_locked.png index 394cfe2f0e..032dffdb89 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_profile_colors_locked.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_profile_colors_locked.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_quality_hd.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_quality_hd.png index bf43988e8d..cb3c75b7de 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_quality_hd.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_quality_hd.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_quality_hd2.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_quality_hd2.png index a7a8312bdd..80607389aa 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_quality_hd2.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_quality_hd2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_quality_sd.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_quality_sd.png index 66c6ce2bd1..666f54012b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_quality_sd.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_quality_sd.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_quickreply.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_quickreply.png index 455501bb63..0aac312f22 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_quickreply.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_quickreply.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_quote_delete.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_quote_delete.png index becddb26e5..d6ecb27116 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_quote_delete.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_quote_delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_quote_specific.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_quote_specific.png index ab482f2325..76dd731381 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_quote_specific.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_quote_specific.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_random.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_random.png new file mode 100644 index 0000000000..a8004126a3 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/menu_random.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_select_quote.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_select_quote.png index b66246d6e4..fc783b80a0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_select_quote.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_select_quote.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_shadow.png old mode 100755 new mode 100644 index 419835a858..5862d261b7 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_shop.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_shop.png index 42e9c69887..7aa35ae464 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_shop.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_shop.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_stars_gift.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_stars_gift.png index ac47c72e24..a4fbf8e777 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_stars_gift.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_stars_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_sticker_add.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_sticker_add.png index f2cf2b02c8..f211e73c61 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_sticker_add.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_sticker_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_sticker_select.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_sticker_select.png index 5791ae1f8b..898c8d88f7 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_sticker_select.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_sticker_select.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_storage_path.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_storage_path.png index bc216c845f..22880314eb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_storage_path.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_storage_path.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_delete.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_delete.png index 90ea3da0a0..de59569ba2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_delete.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_edit.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_edit.png index cd79e07874..4c177f4fab 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_edit.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_filter.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_filter.png index 2ad3859802..8e22156c51 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_filter.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_filter.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_plus.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_plus.png index b245c6b440..b299372b0e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_plus.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_rename.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_rename.png index 947153aa32..8dd80d4e07 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_rename.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_tag_rename.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_unsave_story.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_unsave_story.png index c834b394c7..df47cd46b1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_unsave_story.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_unsave_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_username_change.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_username_change.png index 194c013d7f..2148a2dba0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_username_change.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_username_change.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_username_set.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_username_set.png index f3dae9065f..c5232b4fcd 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_username_set.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_username_set.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reactions.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reactions.png index fbf9e5ee43..ba9b8e9761 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reactions.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reactions2.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reactions2.png index b38460061a..273ea9281e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reactions2.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reactions2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reactions3.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reactions3.png index 915bd80ec8..a42de9928a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reactions3.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reactions3.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_recent.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_recent.png index cc24af69b9..3211d79d05 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_recent.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_recent2.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_recent2.png index 14a846f3b3..ff39dc5811 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_recent2.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_recent2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_recent3.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_recent3.png index 390b4ccbe1..c485a57dd1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_recent3.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_recent3.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reposts.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reposts.png index 0190535968..ec74affdc3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reposts.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reposts.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reposts3.png b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reposts3.png index ac87d66d33..a50a0a47f6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reposts3.png and b/TMessagesProj/src/main/res/drawable-hdpi/menu_views_reposts3.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/message_arrow.png b/TMessagesProj/src/main/res/drawable-hdpi/message_arrow.png old mode 100755 new mode 100644 index 6d2d500010..f6377b3a89 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/message_arrow.png and b/TMessagesProj/src/main/res/drawable-hdpi/message_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_badge.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_badge.png index 8b66194ecc..0298efd4e8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_badge.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_badge.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_button.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_button.png index a7b1e5d4b7..b826977159 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_button.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_button.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_profile_badge.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_profile_badge.png index 060ae647b0..254fbb75b3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_profile_badge.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_profile_badge.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_profile_badge2.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_profile_badge2.png index dd35952dea..0d305e5483 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_profile_badge2.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_profile_badge2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_remove.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_remove.png index 0ccee741cf..68884756f2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_remove.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_boost_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_browser_iv.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_browser_iv.png new file mode 100644 index 0000000000..c773d081d8 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/mini_browser_iv.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_external_link.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_external_link.png index 0a896857c6..d92d1039cb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_external_link.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_external_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_forward_story.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_forward_story.png index 46c001119b..380def359c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_forward_story.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_forward_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_forwarded.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_forwarded.png index fe642d6c34..67cf826e04 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_forwarded.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_forwarded.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_gift.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_gift.png index c7b422d2d1..0080bcb740 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_gift.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_giveaway.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_giveaway.png index 67314a38f7..b2351a5bca 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_giveaway.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_giveaway.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_like_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_like_filled.png index a642922f58..d14d50a7f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_like_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_like_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_more_dots.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_more_dots.png index 69ac5f9f6a..fd07449dbe 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_more_dots.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_more_dots.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_quote.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_quote.png index 2fc9ff1550..f79408f38a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_quote.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_quote.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_reply_user.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_reply_user.png index 3e6c43aac1..5ab2fc4953 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_reply_user.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_reply_user.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_repost_story.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_repost_story.png index c47e4e9e61..4a73ed9df8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_repost_story.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_repost_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_repost_story2.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_repost_story2.png index 99bccfe6f4..ae6c64b6cf 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_repost_story2.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_repost_story2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_stats_likes.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_stats_likes.png index be789e65a9..0154fbc96c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_stats_likes.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_stats_likes.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_stats_shares.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_stats_shares.png index 6f5e67b253..3023cf9536 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_stats_shares.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_stats_shares.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_switch_lock.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_switch_lock.png index d40990d277..8a40e73b1a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_switch_lock.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_switch_lock.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_ton.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_ton.png index f2ebb0a972..6c4c772c6e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_ton.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_ton.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_viewonce.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_viewonce.png index ced9808677..3247b9e965 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_viewonce.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_viewonce.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/mini_views_likes.png b/TMessagesProj/src/main/res/drawable-hdpi/mini_views_likes.png index 7f57986a9e..fa09e5454e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/mini_views_likes.png and b/TMessagesProj/src/main/res/drawable-hdpi/mini_views_likes.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/minibubble_in.png b/TMessagesProj/src/main/res/drawable-hdpi/minibubble_in.png index 62720e630e..76e39d2f63 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/minibubble_in.png and b/TMessagesProj/src/main/res/drawable-hdpi/minibubble_in.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/minibubble_out.png b/TMessagesProj/src/main/res/drawable-hdpi/minibubble_out.png index 233edc75e2..d2286603f8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/minibubble_out.png and b/TMessagesProj/src/main/res/drawable-hdpi/minibubble_out.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/miniplayer_close.png b/TMessagesProj/src/main/res/drawable-hdpi/miniplayer_close.png index fa21608f9a..5755332819 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/miniplayer_close.png and b/TMessagesProj/src/main/res/drawable-hdpi/miniplayer_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/minithumb_play.png b/TMessagesProj/src/main/res/drawable-hdpi/minithumb_play.png index 917963f691..a10004d8bc 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/minithumb_play.png and b/TMessagesProj/src/main/res/drawable-hdpi/minithumb_play.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_animations.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_animations.png index 5afe044392..9fd658f123 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_animations.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_animations.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_archived_stickers.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_archived_stickers.png index 77c2c9679e..f015c37835 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_archived_stickers.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_archived_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_ask_question.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_ask_question.png index e8d5da1b69..f636c9474d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_ask_question.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_ask_question.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_autodelete.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_autodelete.png index d2d25eed7a..f5f08cff2f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_autodelete.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_autodelete.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_battery.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_battery.png index c7c8ce57bb..3d7901332c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_battery.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_battery.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_block2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_block2.png index f334bccf8a..f7af7a3337 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_block2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_block2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_call_earpiece.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_call_earpiece.png index 35039d66ab..438d1ab251 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_call_earpiece.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_call_earpiece.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_chats_add.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_chats_add.png index 4b302023ec..5f00d6bc5f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_chats_add.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_chats_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_data.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_data.png index 26006f4f40..31f0ce9747 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_data.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_data.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_devices.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_devices.png index 1456a3a701..6d4d2da0a2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_devices.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_devices.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_discussion.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_discussion.png index 704c7bfe6c..5631a396b2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_discussion.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_discussion.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_email.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_email.png index 1f893a7440..dc8c42de27 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_email.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_email.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_folder.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_folder.png index 207b9819ae..5180a94892 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_folder.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_gif.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_gif.png index 0ea5659d8e..06a8bacd39 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_gif.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_gif.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_help.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_help.png index ab942869b5..855bc1edbb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_help.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_help.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_language.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_language.png index 081966ff8b..e8b1f1a1c8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_language.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_language.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_link2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_link2.png index c6f12123c6..29046e799c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_link2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_link2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_night_auto.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_night_auto.png index d06fb88bac..ccc7b20eec 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_night_auto.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_night_auto.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_notifications.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_notifications.png index e32e2f83f5..7177e8df39 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_notifications.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_notifications.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_permissions.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_permissions.png index 99e7ed63b8..bf1444d0a6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_permissions.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_permissions.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_policy.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_policy.png index 83d0aa8d27..97263ac112 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_policy.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_policy.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_proxy_off.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_proxy_off.png index 35fef92acc..803b8bcc18 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_proxy_off.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_proxy_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_proxy_on.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_proxy_on.png index dc62ce20e1..3bffb09628 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_proxy_on.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_proxy_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_reactions2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_reactions2.png index a20b9fa96a..b792c81e00 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_reactions2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_reactions2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_secret.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_secret.png index dd741c7705..7c62082129 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_secret.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_secret.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_smile_status.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_smile_status.png index 4111702813..ebd08a6cdd 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_smile_status.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_smile_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_sticker.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_sticker.png index 6b17ff8076..1424e9c31e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_sticker.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_trending.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_trending.png index 211f10f673..0524baf3f6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_trending.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_trending.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg2_videocall.png b/TMessagesProj/src/main/res/drawable-hdpi/msg2_videocall.png index e7b11c32eb..96447b7a51 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg2_videocall.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg2_videocall.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_actions.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_actions.png old mode 100755 new mode 100644 index 8d02cdfcfb..a5196b2126 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_actions.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_actions.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_add.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_add.png index d8129b132b..dcf8549ff4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_add.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_addbio.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_addbio.png index a55912bc8f..985fb58397 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_addbio.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_addbio.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_addbot.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_addbot.png index 885958fbb7..25275fc264 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_addbot.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_addbot.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_addcontact.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_addcontact.png index b52f8de458..7094e21869 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_addcontact.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_addcontact.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_addfolder.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_addfolder.png index 84afef5ee2..5271b5b5af 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_addfolder.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_addfolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_addphoto.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_addphoto.png index c0e0903576..176e9748a4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_addphoto.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_addphoto.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_admin_add.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_admin_add.png index 256ee3257d..5effa99f00 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_admin_add.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_admin_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_admins.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_admins.png index beaa00ac5f..af496b3025 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_admins.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_admins.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_allowspeak.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_allowspeak.png index 5a62194e23..2183f33b88 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_allowspeak.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_allowspeak.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_archive.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_archive.png index c13e8d9f3a..f62e558347 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_archive.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_archive.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_archive.png index 64b44e1f1e..e2f1cfa2c3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_archive.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_hide.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_hide.png index c7007407f2..91134cdfa6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_hide.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_hide.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_show.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_show.png index 2dcaf2c4d2..1ddb31fd60 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_show.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_show.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_stories.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_stories.png index e494ef31f6..1046290de5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_stories.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_archive_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_arrow_avatar.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_arrow_avatar.png index 28c5ed97b4..6d80ce3b13 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_arrow_avatar.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_arrow_avatar.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_arrow_back.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_arrow_back.png index 9814ae7ea2..5f2c0561f4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_arrow_back.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_arrow_back.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_arrow_forward.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_arrow_forward.png index 8f31a10273..5115055c02 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_arrow_forward.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_arrow_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_arrowright.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_arrowright.png index 9395fb7a16..29d55f8847 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_arrowright.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_arrowright.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete.png index d80d1e9f16..37269add60 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_1d.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_1d.png index 26d3a207c8..c73324782e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_1d.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_1d.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_1m.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_1m.png index c087d2a9fa..9ca38365ce 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_1m.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_1m.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_1w.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_1w.png index 9559485ecc..7e905ffda1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_1w.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_1w.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_2d.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_2d.png index ecd6762e63..50a81ee3c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_2d.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_2d.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_badge2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_badge2.png index 5ef950aac1..0dabdb641a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_badge2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_autodelete_badge2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_background.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_background.png index 815a9425dc..e255df8a1c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_background.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_background.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_block.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_block.png index 801d8becc7..cd62187af6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_block.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_block.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_block2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_block2.png index ac82c563e8..708b3cea63 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_block2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_block2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_blur_linear.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_blur_linear.png index 5dac89eb87..ed244ea8c3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_blur_linear.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_blur_linear.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_blur_off.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_blur_off.png index 04b207a65a..b2448ddfe1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_blur_off.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_blur_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_blur_radial.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_blur_radial.png index 1bbd25efc4..7d9675d2b6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_blur_radial.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_blur_radial.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_bot.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_bot.png index 32fb81e8d5..55da298331 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_bot.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_bot.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_bots.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_bots.png index 9b631b865c..ef94c3fd4b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_bots.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_brightness_high.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_brightness_high.png index 6b2a022610..6b08d77bfe 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_brightness_high.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_brightness_high.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_brightness_low.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_brightness_low.png index b438294a85..64f614907f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_brightness_low.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_brightness_low.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_calendar.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_calendar.png index e386d1946c..39650100cb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_calendar.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_calendar.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_calendar2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_calendar2.png index a8b6cbd031..182d66ad4a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_calendar2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_calendar2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_call_bluetooth.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_call_bluetooth.png index e467aa35d3..4aee565b01 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_call_bluetooth.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_call_bluetooth.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_call_earpiece.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_call_earpiece.png index 846bd69498..37668fea61 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_call_earpiece.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_call_earpiece.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_call_minimize.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_call_minimize.png index e0a9fd2740..8284ceb29e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_call_minimize.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_call_minimize.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_call_minimize_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_call_minimize_shadow.png index 409f662ea1..258227129a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_call_minimize_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_call_minimize_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_call_speaker.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_call_speaker.png index 9f0fdec200..0014b4ef7b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_call_speaker.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_call_speaker.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_callback.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_callback.png index cabffcae96..a0becced49 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_callback.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_callback.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_calls.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_calls.png index a42b87fd16..e178a5592f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_calls.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_calls.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_14.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_14.png index ce6658ecf0..f3e4daefcc 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_14.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_hw.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_hw.png index 2011e6f074..20ef01a799 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_hw.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_minimize.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_minimize.png index cb6a6cb18f..e769b31652 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_minimize.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_minimize.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_ny.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_ny.png index 504e1bf9ed..57bd997fc0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_ny.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_regular.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_regular.png index 2a33cb36a3..0f34a3e7d8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_regular.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_calls_regular.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_camera.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_camera.png index 4c042bf6b5..103cda3c4b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_camera.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_camera.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_cancel.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_cancel.png index fe66e460d1..f2f0ed9685 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_cancel.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_cancel.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_channel.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_channel.png index 8c404584af..a749fdb133 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_channel.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_channel.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_channel_create.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_channel_create.png index c7ecdb1815..863c6db4da 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_channel_create.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_channel_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_chats_remove.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_chats_remove.png index 7493140934..7505205973 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_chats_remove.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_chats_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_check_s.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_check_s.png index f03c1ac28d..0cf19848f3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_check_s.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_check_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_clear.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_clear.png index 18e3db88a8..49bde5063b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_clear.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_clear_input.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_clear_input.png index b9714f11a0..9a20404099 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_clear_input.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_clear_input.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_clear_recent.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_clear_recent.png index 924a1c5e07..f16e3d9378 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_clear_recent.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_clear_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_clearcache.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_clearcache.png index a20a7ab22e..e0fc72f6cb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_clearcache.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_clearcache.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_close.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_close.png index d4cf96e172..0d213d7d20 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_close.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_colors.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_colors.png index 4259bc98f5..d64aa3e89d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_colors.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_colors.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_contact.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_contact.png old mode 100755 new mode 100644 index b545d95e67..da35681a5b Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_contact.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_contact.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_contact_add.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_contact_add.png index 2e5f1c7483..ebf72274a0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_contact_add.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_contact_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts.png index 4f52806794..8cd64bf7c5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_14.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_14.png index ca0cf5c54c..1f17a83636 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_14.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_hw.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_hw.png index 7076969a7b..4d355d91f6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_hw.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_name.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_name.png index 4a3ab58535..cb86ebffd3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_name.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_name.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_ny.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_ny.png index bb4cad11bd..34a73f7604 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_ny.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_time.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_time.png index 795043d4da..875c313ba6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_time.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_contacts_time.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_copy.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_copy.png index c8061c9d52..792d7d0b73 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_copy.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_copy.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_copy_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_copy_filled.png index eedf2dcf6a..dbcb69cec0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_copy_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_copy_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_current_location.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_current_location.png index d87ad5bcbe..a8a86cbc60 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_current_location.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_current_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_customize.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_customize.png index dfd2793fc2..6eb7e8df34 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_customize.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_customize.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_customize_s.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_customize_s.png index e6fb8a1d76..608e2eb137 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_customize_s.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_customize_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_delete.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_delete.png index d9c67081dd..521ea76d49 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_delete.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_delete_auto.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_delete_auto.png index 1cd99d93dd..09ae797a86 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_delete_auto.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_delete_auto.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_delete_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_delete_filled.png index b076e59476..05c33fecae 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_delete_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_delete_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_disable.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_disable.png index 772be08742..9067a76f5c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_disable.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_disable.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_discuss.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_discuss.png index 7fb980e0c4..2b30805221 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_discuss.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_discuss.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_discussion.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_discussion.png index 90e2c8ef49..20ccced3fc 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_discussion.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_discussion.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_download.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_download.png index 6cc3995813..c743fd1f7a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_download.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_download.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_download_settings.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_download_settings.png index da98eae6c8..f24840d4af 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_download_settings.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_download_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_edit.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_edit.png index 8c3e92fcb9..9d4bae26b5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_edit.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_activities.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_activities.png index d9f07f2792..ec67b9cbbc 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_activities.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_activities.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_cat.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_cat.png index 7db4277cb6..ab1cde72ad 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_cat.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_cat.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_flags.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_flags.png index 902dd07cf6..37016f110a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_flags.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_flags.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_food.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_food.png index 0911c7093f..b296d3f5bf 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_food.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_food.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_objects.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_objects.png index a977827ee2..be6a8b2156 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_objects.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_objects.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_other.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_other.png index eca2c6513e..2073e6ecda 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_other.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_question.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_question.png index 7bc30ab131..3c2ee2ee5d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_question.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_question.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_recent.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_recent.png index b1d44377f9..983d576e73 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_recent.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_smiles.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_smiles.png index 9de8458394..9f46ea4c75 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_smiles.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_smiles.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_stickers.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_stickers.png index b0eec70492..85682fe63d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_stickers.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_travel.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_travel.png index defbfef020..14a0336291 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_travel.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_emoji_travel.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_endcall.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_endcall.png index bbb986f5f5..0f3e9a43de 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_endcall.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_endcall.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_expand.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_expand.png index af14cfab22..3a9be505d6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_expand.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_fave.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_fave.png index d3ec39c068..ea134536f3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_fave.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_fave.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filehq.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filehq.png index c9f3d8fabb..8e3a39fd65 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filehq.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filehq.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_blocked.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_blocked.png index fa005bc31c..9e0bc0842a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_blocked.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_blocked.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_calls.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_calls.png index 43f3b8a210..3d61da70e4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_calls.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_calls.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_files.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_files.png index d05ffda5f9..a8115b33b3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_files.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_files.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_messages.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_messages.png index 858706671e..04466f1b46 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_messages.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_messages.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_music.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_music.png index 3ab0452378..4bf0fd9281 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_music.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_photos.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_photos.png index 1d308d57d6..e5228bbc3b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_photos.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_photos.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_received.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_received.png index 68caa3dd4c..418b91af45 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_received.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_received.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_sent.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_sent.png index fbddd3a92a..d6a0c0c3da 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_sent.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_sent.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_videos.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_videos.png index 5443cb1e26..dad1a97eb5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_videos.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_videos.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_voice.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_voice.png index 8ac581698e..b1e631bb6b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_voice.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_data_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_general.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_general.png index d726602bc3..a2cb758da7 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_general.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_general.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_general_large.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_general_large.png index f0839c0178..d56213bda2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_general_large.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_general_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_lockedrecord.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_lockedrecord.png index 726a07fbdf..7b7c604aea 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_lockedrecord.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_lockedrecord.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_menu_channels.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_menu_channels.png index 269115d764..0a6777c22f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_menu_channels.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_menu_channels.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_menu_groups.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_menu_groups.png index 03ff1c1856..3cfea53d85 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_menu_groups.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_menu_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_menu_users.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_menu_users.png index 9cfda48ee3..b764fd65e0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_menu_users.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_menu_users.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_plus.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_plus.png index a7e13b41d0..0078efc855 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_plus.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_sdcard.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_sdcard.png index 1181f57ef9..7b4948560d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_sdcard.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_sdcard.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_shareout.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_shareout.png index ee40812968..bebbdebaf4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_shareout.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_shareout.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_storageusage.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_storageusage.png index 2a3959fda0..c234f18a78 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_storageusage.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_storageusage.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_stories.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_stories.png index 369b0b5c60..b0c988a250 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_stories.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_unlockedrecord.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_unlockedrecord.png index 28f76f1b94..891fb72e75 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_unlockedrecord.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_filled_unlockedrecord.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders.png index 565e20943a..c99d79aab6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_archive.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_archive.png index 3b960e7e14..ffeca16de1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_archive.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_bots.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_bots.png index 626d598c9a..65214b2409 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_bots.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_channels.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_channels.png index 3e9614f7ea..921744cde5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_channels.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_channels.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_groups.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_groups.png index cb63e4184c..9d275cb3c8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_groups.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_muted.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_muted.png index c7e8c75869..df38465bfc 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_muted.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_private.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_private.png index eb1386aa94..912dbd9ac9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_private.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_private.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_read.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_read.png index 4bfb24412d..091fb34639 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_read.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_read.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_requests.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_requests.png index 6254455f17..b6c12563bb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_requests.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_folders_requests.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_forward.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_forward.png index 0fa803631f..da97d847d1 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_forward_replace.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_forward_replace.png index daf438674b..047a3ba006 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_forward_replace.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_forward_replace.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_gallery.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_gallery.png index aa532930dd..451271391e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_gallery.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_gallery.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_gallery_locked1.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_gallery_locked1.png index 799662cae5..42a5798daa 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_gallery_locked1.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_gallery_locked1.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_gallery_locked2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_gallery_locked2.png index 3f9cc5a165..64962b2e2e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_gallery_locked2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_gallery_locked2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_gif.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_gif.png index 62db427eed..1ab0ee691f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_gif.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_gif.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_gif_add.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_gif_add.png index 7ad13d8fd2..76e56d061c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_gif_add.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_gif_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_gift_premium.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_gift_premium.png index bcfaf6ccb3..35e9d812b5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_gift_premium.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_gift_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_go_down.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_go_down.png index 38377f0d37..5d6faa66c3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_go_down.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_go_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_go_up.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_go_up.png index 0983c75b29..8f83c93ad7 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_go_up.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_go_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_groups.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_groups.png index 2f0102478f..bbad948293 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_groups.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_14.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_14.png index 9d844f6978..dd04d582a6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_14.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_create.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_create.png index 30eb68bdf7..3a8b3cc7a8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_create.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_hw.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_hw.png index d081bb9ff2..af64397952 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_hw.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_ny.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_ny.png index 7001488e8d..f0e2ff1fca 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_ny.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_groups_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_halfcheck.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_halfcheck.png index def92d6047..cd800bfa65 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_halfcheck.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_halfcheck.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_halfcheck_s.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_halfcheck_s.png index f97dce91cb..0bcf280ee4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_halfcheck_s.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_halfcheck_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_handdown.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_handdown.png index c14054ba56..bf326955c7 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_handdown.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_handdown.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_header_draw.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_header_draw.png index f3938176d9..9a5dcb6063 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_header_draw.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_header_draw.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_header_share.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_header_share.png index 67c8649dca..e518371daf 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_header_share.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_header_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_help.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_help.png index 17d6465e09..22acf5aa14 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_help.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_help.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_help_hw.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_help_hw.png index 5cfe477524..73dcc47014 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_help_hw.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_help_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_help_ny.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_help_ny.png index bfb12be94a..b92ddc4417 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_help_ny.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_help_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_home.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_home.png index a5b331379b..4acdb6a778 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_home.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_home.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_hybrid.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_hybrid.png index 38a3424a3d..7506363406 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_hybrid.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_hybrid.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_info.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_info.png index 326bbcda28..3bd75f7306 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_info.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_input_attach2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_input_attach2.png index e07d6cddfd..f101fb021e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_input_attach2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_input_attach2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_input_gift.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_input_gift.png index 06f273bf40..bd35d94256 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_input_gift.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_input_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_input_like.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_input_like.png index f523d5d83e..b564b4da83 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_input_like.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_input_like.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_input_send_mini.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_input_send_mini.png index 252d0d4493..0b46278e8b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_input_send_mini.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_input_send_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_inputarrow.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_inputarrow.png index cddd06958f..68f6ca1419 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_inputarrow.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_inputarrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_instant.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_instant.png old mode 100755 new mode 100644 index 3669d8c545..aafe5b2810 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_instant.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_instant.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_instant_link.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_instant_link.png index bd7ad46160..30fa9df86d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_instant_link.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_instant_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_invite.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_invite.png index e49823a3cc..72895303b6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_invite.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_invite.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_invite_hw.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_invite_hw.png index ed8c6e7732..82e50d8577 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_invite_hw.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_invite_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_invite_ny.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_invite_ny.png index 69a6ad5c7c..02fbcbdfa6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_invite_ny.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_invite_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_invited.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_invited.png index 354334d624..312a11df0c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_invited.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_invited.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_jobtitle.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_jobtitle.png index 04ac2787ee..e3a0f9e00d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_jobtitle.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_jobtitle.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_language.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_language.png index 355abdd7e7..eac819e397 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_language.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_language.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_leave.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_leave.png index 3db8918388..9cf0ff1fcb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_leave.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_leave.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_accounts.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_accounts.png index eb1386aa94..912dbd9ac9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_accounts.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_accounts.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_chats.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_chats.png index e8f8d01d7e..d6632b6a30 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_chats.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_chats.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_folder.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_folder.png index 976af9ff67..5e3bba8011 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_folder.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_groups.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_groups.png index 46fe6e9666..e95a688493 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_groups.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_links.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_links.png index 867e186668..e509ffd918 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_links.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_links.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_pin.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_pin.png index 4f3dc847a5..6d8efb5453 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_pin.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_stories.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_stories.png index 49471b4a31..2d8dd75161 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_stories.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_limit_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_link.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_link.png index 3dbf03894c..d5c84b86a6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_link.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_link2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_link2.png index 0f34b6ccbe..a177292395 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_link2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_link2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_link_1.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_link_1.png index 903c418c90..fd71c37aba 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_link_1.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_link_1.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_link_2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_link_2.png index 3dbcca8efc..f344710e05 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_link_2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_link_2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_link_folder.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_link_folder.png index 7aaa478872..aa74ca89be 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_link_folder.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_link_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_list.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_list.png index 5aff80e7e9..0145459c58 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_list.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_list.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_location.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_location.png index a6aa262e7b..cf2a87e177 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_location.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_location_alert.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_location_alert.png index a4c4b9a317..69954001ec 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_location_alert.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_location_alert.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_location_alert2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_location_alert2.png index 3743e1e110..4fb04eeaf5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_location_alert2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_location_alert2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_log.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_log.png index 2f978ca11a..c6adcc51f4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_log.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_log.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_map.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_map.png index d47516a607..bb4087c53a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_map.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_map.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_map_type.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_map_type.png index f21a2141d4..a31aaf6f3a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_map_type.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_map_type.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_markread.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_markread.png index 1260af6e0c..77419ffd2f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_markread.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_markread.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_markunread.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_markunread.png index 299328149b..755c9f6bd4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_markunread.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_markunread.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mask.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mask.png index 23e61e5694..70536b6578 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mask.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mask.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_maxvideo.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_maxvideo.png index a24b82874c..086f8cd403 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_maxvideo.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_maxvideo.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_media.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_media.png index 2c63e7686b..69d60bcefd 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_media.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_media.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_members_list2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_members_list2.png index 4ba6a7fc9f..6e0c1ba1cb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_members_list2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_members_list2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mention.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mention.png index d83b746efe..52d3e8cdef 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mention.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mention.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_menu_stories.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_menu_stories.png index 59bacc7a16..8d3607b875 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_menu_stories.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_menu_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_message.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_message.png index 5b1ad3f2e8..135a0751e4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_message.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_message.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_message_s.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_message_s.png index 77df303eaa..eb045e96c5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_message_s.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_message_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_addemoji.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_addemoji.png index b94a87135e..1b6e566ae6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_addemoji.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_addemoji.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_addstory.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_addstory.png index aea0749a30..9b6244f08c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_addstory.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_addstory.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_arrow_mediabold.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_arrow_mediabold.png index 55ade156b0..860ce50995 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_arrow_mediabold.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_arrow_mediabold.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_arrow_mediathin.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_arrow_mediathin.png index dbcccb9396..2d75440c5a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_arrow_mediathin.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_arrow_mediathin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_autodelete.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_autodelete.png index 407311479d..11fb1812e6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_autodelete.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_autodelete.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_autodelete_empty.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_autodelete_empty.png index ac2a3098cc..ae590475ac 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_autodelete_empty.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_autodelete_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_autodelete_timer.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_autodelete_timer.png index 3615aa74b3..ef69331e43 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_autodelete_timer.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_autodelete_timer.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_bomb.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_bomb.png index 92e69c18e4..88ecd5e89b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_bomb.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_bomb.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_checks.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_checks.png index 6ee146a765..70ef0085b2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_checks.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_checks.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_close_tooltip.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_close_tooltip.png index c8f82afa54..6b8b4eaa11 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_close_tooltip.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_close_tooltip.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_closefriends.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_closefriends.png index 7f5bc8d2bb..a506d148da 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_closefriends.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_closefriends.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_customize.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_customize.png index fe3699ba6d..d6bed939f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_customize.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_customize.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_download.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_download.png index 80d3f89afa..9380b136f2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_download.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_download.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_fireoff.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_fireoff.png index cf539082fd..ae6d282510 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_fireoff.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_fireoff.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_fireon.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_fireon.png index bf50c33598..d2eaefb23a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_fireon.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_fireon.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_forumarrow.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_forumarrow.png index 19afa7b515..eea7b5c2ec 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_forumarrow.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_forumarrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_lock2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_lock2.png index 7779e7c66a..bb7209efda 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_lock2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_lock2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_lock3.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_lock3.png index e1fa596d0a..1e2ef1d8c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_lock3.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_lock3.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_lockedemoji.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_lockedemoji.png index 41eda94917..4e362ec60e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_lockedemoji.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_lockedemoji.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_premiumlock.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_premiumlock.png index 44a9eac919..bafb345e9e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_premiumlock.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_premiumlock.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_qr.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_qr.png index 3a97c287ec..50fce8f617 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_qr.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_qr.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_replystory.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_replystory.png index 861684f73e..70b9e6ef12 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_replystory.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_replystory.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_replystory2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_replystory2.png index 090d08dc58..c63d63b0b0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_replystory2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_replystory2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_stickerstar.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_stickerstar.png index b2318b5bd6..ca68b13995 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_stickerstar.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_stickerstar.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_topicarrow.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_topicarrow.png index d4b506f094..5be3174481 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_topicarrow.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mini_topicarrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_minvideo.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_minvideo.png index 4343be4bc1..dc353d6a6a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_minvideo.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_minvideo.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_msgbubble.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_msgbubble.png index 8669debdeb..773da5bee0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_msgbubble.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_msgbubble.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_msgbubble2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_msgbubble2.png index b9b7b74e6e..9f9119bea5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_msgbubble2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_msgbubble2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_msgbubble3.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_msgbubble3.png index 68ec833361..f3480de90d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_msgbubble3.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_msgbubble3.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mute.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mute.png index 56bb35b67f..548745435a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mute.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mute_1h.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mute_1h.png index 4d95025d8c..484c494f52 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mute_1h.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mute_1h.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_mute_period.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_mute_period.png index 940b323dc6..f6e76857f9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_mute_period.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_mute_period.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_nearby.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_nearby.png deleted file mode 100644 index b1209e201b..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_nearby.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_nearby_ny.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_nearby_ny.png deleted file mode 100644 index fd53f5d788..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_nearby_ny.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_newphone.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_newphone.png index ca705b4bb4..fa72c9e719 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_newphone.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_newphone.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_noise_off.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_noise_off.png index 88334c0290..548f12020f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_noise_off.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_noise_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_noise_on.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_noise_on.png index 7b5cd57b02..afcaf3128f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_noise_on.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_noise_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_notifications.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_notifications.png index b36543c0ee..3e46463cf8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_notifications.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_notifications.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_notspam.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_notspam.png index b62bf74037..86dbb9ef8a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_notspam.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_notspam.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_online.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_online.png index be42492d26..3107b59d6a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_online.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_online.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_openin.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_openin.png index 6d119b9c62..8f378e1862 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_openin.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_openin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_openprofile.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_openprofile.png index 5324896972..b79997c157 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_openprofile.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_openprofile.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_other_new_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_other_new_filled.png index eb43b008b2..32e4f406d3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_other_new_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_other_new_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_other_new_filled_text.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_other_new_filled_text.png index c10dd28819..97b819a3f3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_other_new_filled_text.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_other_new_filled_text.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_other_new_outline.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_other_new_outline.png index 1171cf460b..60329a0dc9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_other_new_outline.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_other_new_outline.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_palette.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_palette.png index deaa1b183e..f92617f153 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_palette.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_palette.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_panel_clear.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_panel_clear.png old mode 100755 new mode 100644 index cb02bfd4f1..7b32a18b30 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_panel_clear.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_panel_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_address.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_address.png index 4d60eb2b5d..6f5887c6b0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_address.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_address.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_card.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_card.png index 4e12ad8a73..2a95dfa512 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_card.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_card.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_delivery.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_delivery.png index 0c7cbb41cc..c3af538295 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_delivery.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_delivery.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_provider.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_provider.png index 53a2876a1a..fc7758fd3b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_provider.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_payment_provider.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_permissions.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_permissions.png index b2b173f9cd..b082ecde3f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_permissions.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_permissions.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_back.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_back.png index 65c45eed4e..c771bed660 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_back.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_back.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_blur.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_blur.png index 4b27f99de4..25b48dc62f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_blur.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_blur.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_cropfix.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_cropfix.png index b417d54ab3..ef3ea2cbd0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_cropfix.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_cropfix.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_curve.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_curve.png index fa8476dd23..9541cbce2a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_curve.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_curve.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_flip.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_flip.png index bf8b41fe9f..9e4e66cb87 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_flip.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_flip.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_rotate.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_rotate.png index 55f9d0feee..900bca3f51 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_rotate.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_rotate.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_settings.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_settings.png index b2b0e3efc9..2941d2a26b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_settings.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_sticker.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_sticker.png index 5ab0b7116e..1a012c3181 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_sticker.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_switch2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_switch2.png index 4731183ed9..9d5bf62e4c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_switch2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_switch2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text2.png index 87f9f7dca2..3d206a0769 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_framed.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_framed.png index bce63a1de4..aec759e06d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_framed.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_framed.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_framed2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_framed2.png index 5e03275a4f..9074a3a205 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_framed2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_framed2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_framed3.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_framed3.png index 4566cea3b2..a16287c55e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_framed3.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_framed3.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_regular.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_regular.png index ae30a937db..77d8e8b7e0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_regular.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photo_text_regular.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photoeditor.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photoeditor.png index e8d5fdac2d..fba3c5f498 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photoeditor.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photoeditor.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_photos.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_photos.png index 12288d38e3..13b4853104 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_photos.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_photos.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_pin.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_pin.png index e19bcf5fb8..eb5b5b304c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_pin.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_pin_code.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_pin_code.png index 51e3fdf00d..d3faa9b7fa 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_pin_code.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_pin_code.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_pin_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_pin_filled.png index 5f02413c55..6b0ab3820e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_pin_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_pin_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_pin_mini.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_pin_mini.png index 426c3b7f33..e6f2e8dc22 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_pin_mini.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_pin_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_pinnedlist.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_pinnedlist.png index 28a4b95eb4..7e81c05d43 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_pinnedlist.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_pinnedlist.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_played.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_played.png index d0f145a0f6..44ff00f94e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_played.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_played.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_policy.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_policy.png index ce6f810a61..0a178583e2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_policy.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_policy.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_pollstop.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_pollstop.png index 7122e82a20..f21863048e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_pollstop.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_pollstop.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_ads.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_ads.png index d7f854b2bb..6df931317d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_ads.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_ads.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_avatar.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_avatar.png index ba61e60ad7..890a1296d6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_avatar.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_avatar.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_badge.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_badge.png index 3e41a8a322..8d25ae9c26 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_badge.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_badge.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_emoji.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_emoji.png index 9542895fbe..183999c841 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_emoji.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_emoji.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_icons.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_icons.png index 2c669aae0c..83eb2aee1b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_icons.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_icons.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_limits.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_limits.png index c932a63fa7..ae363a5f0a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_limits.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_limits.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_liststar.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_liststar.png index bb47e46a46..5530c5b7a5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_liststar.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_liststar.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_lock2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_lock2.png index e52e780140..cef53b0542 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_lock2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_lock2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_normal.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_normal.png index f9e36b481a..5e703baadd 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_normal.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_normal.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_prolfilestar.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_prolfilestar.png index 9a55175cd4..6de54b7d2b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_prolfilestar.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_prolfilestar.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_reactions.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_reactions.png index f10c8ed36b..1527e1867c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_reactions.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_speed.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_speed.png index e3718cdb60..f552d57fe5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_speed.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_speed.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_status.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_status.png index 4f4b243f38..7c6263084b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_status.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_stickers.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_stickers.png index 151ade623e..1d95d11a33 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_stickers.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_tools.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_tools.png index 3e004f7734..7ada2c21af 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_tools.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_tools.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_translate.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_translate.png index 17c47dd47e..6512c94350 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_translate.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_translate.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_uploads.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_uploads.png index 88f3181bff..17c14134eb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_uploads.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_uploads.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_voice.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_voice.png index b78bd28c12..1a590a8fee 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_voice.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_premium_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_psa.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_psa.png index a4c2c399a9..db175cde58 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_psa.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_psa.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_qr_mini.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_qr_mini.png index 4ca349fe9f..cf15e029ba 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_qr_mini.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_qr_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_qrcode.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_qrcode.png index b8c0ae4e52..1ba4d43d16 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_qrcode.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_qrcode.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_rate_down.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_rate_down.png index 8866a70aa5..625760a524 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_rate_down.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_rate_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_rate_up.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_rate_up.png index b7ea84420d..e19418b5e9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_rate_up.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_rate_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions.png index b816d1c3f4..3372b568e7 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions2.png index cb5231ee8c..0fe5326f00 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions_expand.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions_expand.png index 658dbd4ac7..85b68d619b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions_expand.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions_filled.png index 18ed382505..d69f11b288 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_reactions_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_recent.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_recent.png index 0a4186fdeb..b13f9c7ab4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_recent.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_remove.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_remove.png index a368914602..37b15fcf4f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_remove.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_removefolder.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_removefolder.png index dbe30e0fb1..b53fedc478 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_removefolder.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_removefolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_reorder.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_reorder.png index a8bd6082e1..a2d9656379 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_reorder.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_replace.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_replace.png index dbe0c5588a..f5e4f76993 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_replace.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_replace.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_reply_small.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_reply_small.png index 533612da0f..51bb48d70b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_reply_small.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_reply_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_report.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_report.png index f9982fd48c..d95de3dffc 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_report.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_report.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_report_drugs.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_report_drugs.png index 75542dd0c9..507bc0fcc6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_report_drugs.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_report_drugs.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_report_fake.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_report_fake.png index d94c395f26..11dcbe93b1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_report_fake.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_report_fake.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_report_other.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_report_other.png index c803a127c0..63c2ed7fa0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_report_other.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_report_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_report_personal.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_report_personal.png index 390ac84663..508abeecdf 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_report_personal.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_report_personal.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_report_violence.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_report_violence.png index 32a0ba8b97..480529df9d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_report_violence.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_report_violence.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_report_xxx.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_report_xxx.png index 0e189821eb..bb45676def 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_report_xxx.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_report_xxx.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_requests.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_requests.png index e4707dc0fa..f9eb5ed0ff 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_requests.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_requests.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_reset.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_reset.png index d3c26e7b31..6f34045841 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_reset.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_reset.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_retry.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_retry.png index 14cd387b7c..3c8571e9fe 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_retry.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_retry.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_round_cancel_m.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_round_cancel_m.png old mode 100755 new mode 100644 index 54b0d11b4b..0ec84c08a7 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_round_cancel_m.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_round_cancel_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_round_file_s.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_round_file_s.png old mode 100755 new mode 100644 index 55384a43bb..777a04078a Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_round_file_s.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_round_file_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_round_gif_m.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_round_gif_m.png old mode 100755 new mode 100644 index 9155508fbc..085b7d9542 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_round_gif_m.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_round_gif_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_round_load_m.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_round_load_m.png old mode 100755 new mode 100644 index f9aebaaa82..cdc70240a8 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_round_load_m.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_round_load_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_round_pause_m.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_round_pause_m.png old mode 100755 new mode 100644 index 5e5f6e8dce..68b5a96014 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_round_pause_m.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_round_pause_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_round_play_m.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_round_play_m.png old mode 100755 new mode 100644 index f760d19dce..f88376fd63 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_round_play_m.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_round_play_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_satellite.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_satellite.png index 3a858a2ab8..9fae535133 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_satellite.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_satellite.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_save_story.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_save_story.png index eb5c81ce14..a6531a4b2f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_save_story.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_save_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_saved.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_saved.png index aa2f913280..c487a1ed79 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_saved.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_saved.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_saved_14.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_saved_14.png index ad3454f11d..600f60c19f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_saved_14.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_saved_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_saved_hw.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_saved_hw.png index 482e02099e..773232c2d1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_saved_hw.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_saved_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_saved_ny.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_saved_ny.png index 8504598a5f..f0e389bd90 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_saved_ny.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_saved_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_screencast.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_screencast.png index 26cf0c552a..53262c203f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_screencast.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_screencast.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_screencast_off.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_screencast_off.png index 81bd70176c..7ab67c5523 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_screencast_off.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_screencast_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_search.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_search.png index 13d5fe2664..6c83918a6c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_search.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_secret.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_secret.png index a478e8019f..9e428aadb6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_secret.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_secret.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_secret_14.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_secret_14.png deleted file mode 100644 index bced7a502c..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_secret_14.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_secret_hw.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_secret_hw.png deleted file mode 100644 index bfbc944b92..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_secret_hw.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_secret_ny.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_secret_ny.png index b409f6df6f..728edf0ae6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_secret_ny.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_secret_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_seen.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_seen.png index 7c517a3893..756326e880 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_seen.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_seen.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_select.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_select.png index 64949fd07a..7d0423a02b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_select.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_select.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_send.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_send.png index e806b99871..dc70ab6d11 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_send.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_send.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_sendfile.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_sendfile.png index 90962561c6..1236cec8a5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_sendfile.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_sendfile.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_settings.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_settings.png index 2be50ce583..c580e26e6a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_settings.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_14.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_14.png index b60f71b669..bf3f0c89c3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_14.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_hw.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_hw.png index 87e20c73d9..aa0a35e32e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_hw.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_ny.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_ny.png index c3382096b5..bc8154bc82 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_ny.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_old.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_old.png index 816ad38770..ceddf276e1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_old.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_old.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_premium.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_premium.png index acde2ab030..7ddd122e3e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_premium.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_settings_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_share.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_share.png index 1e41c5a277..0e9f62c1be 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_share.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_share_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_share_filled.png index 49dd1f7157..cd9423cabb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_share_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_share_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_shareout.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_shareout.png index 58faee9a30..84b92d02c0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_shareout.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_shareout.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_signed.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_signed.png deleted file mode 100644 index 3a1c939813..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_signed.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_silent.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_silent.png index 7f5a2f869f..11c7199b40 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_silent.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_silent.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_smile_status.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_smile_status.png index 3aa209db4a..607daa5c2f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_smile_status.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_smile_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed.png index 7a8eb9794a..a9ba045771 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_0_2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_0_2.png index 553d565f22..9b6fe71572 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_0_2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_0_2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_fast.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_fast.png index 2715b3b072..130152ceaf 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_fast.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_fast.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_medium.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_medium.png index e109cbd894..5e94ffcaf9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_medium.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_medium.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_normal.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_normal.png index dbec3a5b3c..ee5fb59ba2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_normal.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_normal.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_slow.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_slow.png index 71240d78ce..5fdaad376a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_slow.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_slow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_superfast.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_superfast.png index 6daf154335..d6afb7c74b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_superfast.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_superfast.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_veryfast.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_veryfast.png index 2125d9a334..a941d98dc3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_veryfast.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_speed_veryfast.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_spoiler.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_spoiler.png index 01ad1942c1..702e550deb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_spoiler.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_spoiler.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_spoiler_off.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_spoiler_off.png index 251882bef8..609e548474 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_spoiler_off.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_spoiler_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stats.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stats.png index a5d4e01fe3..5ad9fa6f21 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stats.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stats.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_status_edit.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_status_edit.png index d972c30aef..48e89fd97d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_status_edit.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_status_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_status_set.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_status_set.png index a18fe2553d..a2c362cdac 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_status_set.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_status_set.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stealth_25min.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stealth_25min.png index c5fd5d21e9..0b421c8e3f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stealth_25min.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stealth_25min.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stealth_5min.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stealth_5min.png index e67173eb92..c609bc3e32 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stealth_5min.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stealth_5min.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stealth_locked.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stealth_locked.png index 515f9848ab..d8b10098ca 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stealth_locked.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stealth_locked.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_sticker.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_sticker.png index e605f13b67..2c23d14e5f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_sticker.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_add.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_add.png index c61a06339e..014ee8d74d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_add.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_archive.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_archive.png index c8c1db57bb..7871bb8914 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_archive.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_caption.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_caption.png index f360b3bbcf..a3b2fd394e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_caption.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_caption.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_closefriends.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_closefriends.png index 32c74a5fa4..59d3704244 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_closefriends.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_closefriends.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_link.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_link.png index c6f12123c6..29046e799c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_link.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_myhide.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_myhide.png index a81201a02c..f6ed97797d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_myhide.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_myhide.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_order.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_order.png index c5d514be9a..64591275cb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_order.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_order.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_save.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_save.png index f36eb1c8c6..2f4a9e1122 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_save.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_save.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_saved.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_saved.png index 280dd44340..954fa674f4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_saved.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_saved.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_stealth.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_stealth.png index c7007407f2..91134cdfa6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_stealth.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_stealth.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_stealth2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_stealth2.png index cf43299c66..7a9e778f65 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_stealth2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_stealth2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_timer.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_timer.png index 13e2f1e439..9bea1b59a9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_timer.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_timer.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_views.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_views.png index 42e456991f..6a62cacf74 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_views.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_stories_views.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_story_12h.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_story_12h.png deleted file mode 100644 index a4f1855a1c..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_story_12h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_story_24h.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_story_24h.png deleted file mode 100644 index cf06905c2b..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_story_24h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_story_48h.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_story_48h.png deleted file mode 100644 index 3aeebddde5..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_story_48h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_story_6h.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_story_6h.png deleted file mode 100644 index 50b2adc9c8..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_story_6h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_tabs_mic1.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_tabs_mic1.png index b14c6210e9..ad0ad395f4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_tabs_mic1.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_tabs_mic1.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_tabs_mic2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_tabs_mic2.png index 0126103dd8..cfc88e14ed 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_tabs_mic2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_tabs_mic2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_text_check.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_text_check.png index 05c1476eb8..0469f0fbe6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_text_check.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_text_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_text_outlined.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_text_outlined.png index 0045d5fa48..b07eeb7285 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_text_outlined.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_text_outlined.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_theme.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_theme.png index d4f6ce12e8..290df935af 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_theme.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_theme.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_ton.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_ton.png index 5831602acf..2c132ca491 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_ton.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_ton.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_tone_add.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_tone_add.png index f3d77ea6e5..f5169fb999 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_tone_add.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_tone_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_tone_off.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_tone_off.png index 9490dd8bc5..a46e7a869b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_tone_off.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_tone_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_tone_on.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_tone_on.png index 73f20cef99..7f4ba0cfb2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_tone_on.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_tone_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_topic_close.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_topic_close.png index f01297f99f..9939abb6ed 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_topic_close.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_topic_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_topic_create.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_topic_create.png index e238024b97..5dc91d5082 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_topic_create.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_topic_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_topic_restart.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_topic_restart.png index 70df24b4a3..1f88eca537 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_topic_restart.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_topic_restart.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_topics.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_topics.png index 18357687d6..b6dd39355a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_topics.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_topics.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_translate.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_translate.png index 38251c33ee..983b22a3fe 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_translate.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_translate.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_unarchive.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_unarchive.png index f9f9e54c36..ca542d4d24 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_unarchive.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_unarchive.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_unfave.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_unfave.png index b43f69f983..5d9e91378c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_unfave.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_unfave.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_ungroup.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_ungroup.png index 301f7a8588..52a00e3607 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_ungroup.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_ungroup.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_unmute.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_unmute.png index 9f0fdec200..0014b4ef7b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_unmute.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_unpin.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_unpin.png index c6764df7c4..7a23866af0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_unpin.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_unpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_unvote.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_unvote.png index 0048f025ec..4ae59b10aa 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_unvote.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_unvote.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_user_remove.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_user_remove.png index d91305d226..d36ac8fd89 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_user_remove.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_user_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_user_search.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_user_search.png index f7db3ede14..c7c732f2ff 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_user_search.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_user_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_usersearch.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_usersearch.png index 9a5aeaeefb..041a665324 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_usersearch.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_usersearch.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_video.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_video.png index 316f82c5bb..6db161b41a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_video.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_videocall.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_videocall.png index 0faa29a9c2..a290884d17 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_videocall.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_videocall.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_view_file.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_view_file.png index f4c6cc7d1a..6d513bdd4f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_view_file.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_view_file.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_viewchats.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_viewchats.png index 7a9bfb1484..8f18951810 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_viewchats.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_viewchats.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_viewintopic.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_viewintopic.png index d3ff440389..610a55bcae 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_viewintopic.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_viewintopic.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_viewreplies.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_viewreplies.png index 58ba679748..46043adca8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_viewreplies.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_viewreplies.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_views.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_views.png old mode 100755 new mode 100644 index b20d01a62d..dff6ee87dc Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_views.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_views.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_bluetooth.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_bluetooth.png index 38107aa687..19527b5bb6 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_bluetooth.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_bluetooth.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_headphones.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_headphones.png index fd43a84ddc..f10edef64b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_headphones.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_headphones.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_muted.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_muted.png index 02228c8167..56f7a1aeee 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_muted.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_phone.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_phone.png index 8e900055c9..cc1dd9e349 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_phone.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_phone.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_pip.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_pip.png index 4cd0cc91e4..95916e740e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_pip.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_pip.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_speaker.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_speaker.png index 14c3ff9921..4c4cb22b46 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_speaker.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_speaker.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_unmuted.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_unmuted.png index 543e9ca813..a1496ac2a5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_unmuted.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_voice_unmuted.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_voicechat.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_voicechat.png index 46d7ca258d..8c886b6c3d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_voicechat.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_voicechat.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_voicechat2.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_voicechat2.png index 63b30ba041..e395f01229 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_voicechat2.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_voicechat2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_voiceclose.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_voiceclose.png index 4ae89b7c63..75dfdd7f89 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_voiceclose.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_voiceclose.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_voiceshare.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_voiceshare.png index 00aea32dc8..b22db5ecd0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_voiceshare.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_voiceshare.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_warning.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_warning.png old mode 100755 new mode 100644 index 05b84d8510..d42de374c7 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_warning.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_warning.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_work.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_work.png index ad17ef6adb..bf2fc14924 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_work.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_work.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_zoomin.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_zoomin.png index 13e16d7525..b1dedfd22e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_zoomin.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_zoomin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_zoomout.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_zoomout.png index ab970390c5..5602e695f9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_zoomout.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_zoomout.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_zoomout_stats.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_zoomout_stats.png index 362823c7c7..2171239574 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_zoomout_stats.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_zoomout_stats.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/music_empty.png b/TMessagesProj/src/main/res/drawable-hdpi/music_empty.png index 5e4a71acc5..6207e9686b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/music_empty.png and b/TMessagesProj/src/main/res/drawable-hdpi/music_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/navbar_search_tag.png b/TMessagesProj/src/main/res/drawable-hdpi/navbar_search_tag.png index 9957f98715..009d05027d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/navbar_search_tag.png and b/TMessagesProj/src/main/res/drawable-hdpi/navbar_search_tag.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/navigate.png b/TMessagesProj/src/main/res/drawable-hdpi/navigate.png deleted file mode 100644 index 9af674cbd4..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/navigate.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/nearby_l.png b/TMessagesProj/src/main/res/drawable-hdpi/nearby_l.png deleted file mode 100644 index e70b4e09a0..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/nearby_l.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/nearby_m.png b/TMessagesProj/src/main/res/drawable-hdpi/nearby_m.png deleted file mode 100644 index 3c6e8e0664..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/nearby_m.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/newmsg_divider.png b/TMessagesProj/src/main/res/drawable-hdpi/newmsg_divider.png old mode 100755 new mode 100644 index 7de83c5934..aed70be0b2 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/newmsg_divider.png and b/TMessagesProj/src/main/res/drawable-hdpi/newmsg_divider.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/newyear.png b/TMessagesProj/src/main/res/drawable-hdpi/newyear.png index f4db07f3e3..2eb5515c10 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/newyear.png and b/TMessagesProj/src/main/res/drawable-hdpi/newyear.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/no_passport.png b/TMessagesProj/src/main/res/drawable-hdpi/no_passport.png index febd0e49a5..755f6465be 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/no_passport.png and b/TMessagesProj/src/main/res/drawable-hdpi/no_passport.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/no_password.png b/TMessagesProj/src/main/res/drawable-hdpi/no_password.png index 12941ed781..d209a599d1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/no_password.png and b/TMessagesProj/src/main/res/drawable-hdpi/no_password.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/notifications_mute1h.png b/TMessagesProj/src/main/res/drawable-hdpi/notifications_mute1h.png index 1d11c0d189..84428b9e4a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/notifications_mute1h.png and b/TMessagesProj/src/main/res/drawable-hdpi/notifications_mute1h.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/notifications_mute2d.png b/TMessagesProj/src/main/res/drawable-hdpi/notifications_mute2d.png index 9410ddf270..f95c7764ca 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/notifications_mute2d.png and b/TMessagesProj/src/main/res/drawable-hdpi/notifications_mute2d.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/notifications_off.png b/TMessagesProj/src/main/res/drawable-hdpi/notifications_off.png index eae18160b4..0d1885673e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/notifications_off.png and b/TMessagesProj/src/main/res/drawable-hdpi/notifications_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/notifications_on.png b/TMessagesProj/src/main/res/drawable-hdpi/notifications_on.png index e20c79ae41..ad911e589e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/notifications_on.png and b/TMessagesProj/src/main/res/drawable-hdpi/notifications_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/notifications_settings.png b/TMessagesProj/src/main/res/drawable-hdpi/notifications_settings.png index 3ecfbe5270..7dbc3f1ade 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/notifications_settings.png and b/TMessagesProj/src/main/res/drawable-hdpi/notifications_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/other_2x_large.png b/TMessagesProj/src/main/res/drawable-hdpi/other_2x_large.png index 36d3d1c1ad..4409107171 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/other_2x_large.png and b/TMessagesProj/src/main/res/drawable-hdpi/other_2x_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/other_lockedfolders.png b/TMessagesProj/src/main/res/drawable-hdpi/other_lockedfolders.png index 80b9b924f9..04701ee05a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/other_lockedfolders.png and b/TMessagesProj/src/main/res/drawable-hdpi/other_lockedfolders.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/other_lockedfolders2.png b/TMessagesProj/src/main/res/drawable-hdpi/other_lockedfolders2.png index 63801ce51c..c6ac014b2c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/other_lockedfolders2.png and b/TMessagesProj/src/main/res/drawable-hdpi/other_lockedfolders2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/pagedown.png b/TMessagesProj/src/main/res/drawable-hdpi/pagedown.png index d79d992955..88ecf13ade 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/pagedown.png and b/TMessagesProj/src/main/res/drawable-hdpi/pagedown.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/pagedown_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/pagedown_shadow.png old mode 100755 new mode 100644 index 6f23d83d16..aba6b46c30 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/pagedown_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/pagedown_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/passcode_check.png b/TMessagesProj/src/main/res/drawable-hdpi/passcode_check.png index b01e6151bd..1754053739 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/passcode_check.png and b/TMessagesProj/src/main/res/drawable-hdpi/passcode_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/passcode_delete.png b/TMessagesProj/src/main/res/drawable-hdpi/passcode_delete.png deleted file mode 100644 index b8f57271d4..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/passcode_delete.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/permission_locked.png b/TMessagesProj/src/main/res/drawable-hdpi/permission_locked.png index b085f8887c..349a4475f3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/permission_locked.png and b/TMessagesProj/src/main/res/drawable-hdpi/permission_locked.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/permissions_camera1.png b/TMessagesProj/src/main/res/drawable-hdpi/permissions_camera1.png index d43853083f..6a5b638f43 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/permissions_camera1.png and b/TMessagesProj/src/main/res/drawable-hdpi/permissions_camera1.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/permissions_camera2.png b/TMessagesProj/src/main/res/drawable-hdpi/permissions_camera2.png index 0584b0564a..a2623c5fd4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/permissions_camera2.png and b/TMessagesProj/src/main/res/drawable-hdpi/permissions_camera2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/permissions_gallery1.png b/TMessagesProj/src/main/res/drawable-hdpi/permissions_gallery1.png index e946a01511..a11937c316 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/permissions_gallery1.png and b/TMessagesProj/src/main/res/drawable-hdpi/permissions_gallery1.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/permissions_gallery2.png b/TMessagesProj/src/main/res/drawable-hdpi/permissions_gallery2.png index 5b7c9eab55..3470947712 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/permissions_gallery2.png and b/TMessagesProj/src/main/res/drawable-hdpi/permissions_gallery2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/phone_activate.png b/TMessagesProj/src/main/res/drawable-hdpi/phone_activate.png old mode 100755 new mode 100644 index 32cecba1d0..9c9fb07d5d Binary files a/TMessagesProj/src/main/res/drawable-hdpi/phone_activate.png and b/TMessagesProj/src/main/res/drawable-hdpi/phone_activate.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/photo_paint_brush.png b/TMessagesProj/src/main/res/drawable-hdpi/photo_paint_brush.png index be01a46460..60b01a78dd 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/photo_paint_brush.png and b/TMessagesProj/src/main/res/drawable-hdpi/photo_paint_brush.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/photo_tooltip2.png b/TMessagesProj/src/main/res/drawable-hdpi/photo_tooltip2.png index 5056ad9ce9..be3c1d7d45 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/photo_tooltip2.png and b/TMessagesProj/src/main/res/drawable-hdpi/photo_tooltip2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/photo_undo.png b/TMessagesProj/src/main/res/drawable-hdpi/photo_undo.png index cc19773078..d56694d84b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/photo_undo.png and b/TMessagesProj/src/main/res/drawable-hdpi/photo_undo.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/photos_arrow.png b/TMessagesProj/src/main/res/drawable-hdpi/photos_arrow.png index 6dc3cba319..e9a35da59b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/photos_arrow.png and b/TMessagesProj/src/main/res/drawable-hdpi/photos_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/photos_header_shadow.png b/TMessagesProj/src/main/res/drawable-hdpi/photos_header_shadow.png index 4c2c51cafb..4c742c3730 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/photos_header_shadow.png and b/TMessagesProj/src/main/res/drawable-hdpi/photos_header_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/pin.png b/TMessagesProj/src/main/res/drawable-hdpi/pin.png index 9bdb62bb89..62aacc4fc0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/pin.png and b/TMessagesProj/src/main/res/drawable-hdpi/pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/pip_close.png b/TMessagesProj/src/main/res/drawable-hdpi/pip_close.png index 6564beae80..fcef9ae3dc 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/pip_close.png and b/TMessagesProj/src/main/res/drawable-hdpi/pip_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/pip_enlarge.png b/TMessagesProj/src/main/res/drawable-hdpi/pip_enlarge.png index 0d369b3399..553df7e8c0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/pip_enlarge.png and b/TMessagesProj/src/main/res/drawable-hdpi/pip_enlarge.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/pip_pause_large.png b/TMessagesProj/src/main/res/drawable-hdpi/pip_pause_large.png index c24fc3c6b6..928cde2eef 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/pip_pause_large.png and b/TMessagesProj/src/main/res/drawable-hdpi/pip_pause_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/pip_play_large.png b/TMessagesProj/src/main/res/drawable-hdpi/pip_play_large.png index b256919d7e..a952a3183d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/pip_play_large.png and b/TMessagesProj/src/main/res/drawable-hdpi/pip_play_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/pip_replay_large.png b/TMessagesProj/src/main/res/drawable-hdpi/pip_replay_large.png index a09d4d71d7..28199d1cb4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/pip_replay_large.png and b/TMessagesProj/src/main/res/drawable-hdpi/pip_replay_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/pip_video_close.png b/TMessagesProj/src/main/res/drawable-hdpi/pip_video_close.png index d61d269ca3..a20eb9d7b5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/pip_video_close.png and b/TMessagesProj/src/main/res/drawable-hdpi/pip_video_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/pip_video_expand.png b/TMessagesProj/src/main/res/drawable-hdpi/pip_video_expand.png index 2a7061410d..59fe9de40c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/pip_video_expand.png and b/TMessagesProj/src/main/res/drawable-hdpi/pip_video_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/play_mini_video.png b/TMessagesProj/src/main/res/drawable-hdpi/play_mini_video.png index fa4bf44280..350401ad26 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/play_mini_video.png and b/TMessagesProj/src/main/res/drawable-hdpi/play_mini_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/player.png b/TMessagesProj/src/main/res/drawable-hdpi/player.png index a15c9a662c..3d923a58f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/player.png and b/TMessagesProj/src/main/res/drawable-hdpi/player.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/player_new_order.png b/TMessagesProj/src/main/res/drawable-hdpi/player_new_order.png index 952bd6f77b..025ccb6a83 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/player_new_order.png and b/TMessagesProj/src/main/res/drawable-hdpi/player_new_order.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeat_reverse.png b/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeat_reverse.png index 5529c60e18..277d483e2e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeat_reverse.png and b/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeat_reverse.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeat_shuffle.png b/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeat_shuffle.png index f0a6a79ba6..2cc1341a90 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeat_shuffle.png and b/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeat_shuffle.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeatall.png b/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeatall.png index c8b115badf..dc389fe27f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeatall.png and b/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeatall.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeatone.png b/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeatone.png index 30cc4179b9..11119ceea7 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeatone.png and b/TMessagesProj/src/main/res/drawable-hdpi/player_new_repeatone.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/player_new_shuffle.png b/TMessagesProj/src/main/res/drawable-hdpi/player_new_shuffle.png index 8760ea5c39..c18e52263b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/player_new_shuffle.png and b/TMessagesProj/src/main/res/drawable-hdpi/player_new_shuffle.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/poll_add_circle.png b/TMessagesProj/src/main/res/drawable-hdpi/poll_add_circle.png index be3ae08813..f08380a39f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/poll_add_circle.png and b/TMessagesProj/src/main/res/drawable-hdpi/poll_add_circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/poll_add_plus.png b/TMessagesProj/src/main/res/drawable-hdpi/poll_add_plus.png index 2b23840847..d7b3acd39d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/poll_add_plus.png and b/TMessagesProj/src/main/res/drawable-hdpi/poll_add_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/poll_remove.png b/TMessagesProj/src/main/res/drawable-hdpi/poll_remove.png index a83646148a..8a2b759cb3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/poll_remove.png and b/TMessagesProj/src/main/res/drawable-hdpi/poll_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/poll_reorder.png b/TMessagesProj/src/main/res/drawable-hdpi/poll_reorder.png index 4114a46076..72cea0e46d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/poll_reorder.png and b/TMessagesProj/src/main/res/drawable-hdpi/poll_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/poll_right.png b/TMessagesProj/src/main/res/drawable-hdpi/poll_right.png index 6c570417a0..ec10effe4e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/poll_right.png and b/TMessagesProj/src/main/res/drawable-hdpi/poll_right.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/poll_wrong.png b/TMessagesProj/src/main/res/drawable-hdpi/poll_wrong.png index 902efd09d6..81969aaa32 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/poll_wrong.png and b/TMessagesProj/src/main/res/drawable-hdpi/poll_wrong.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/premium_colors.png b/TMessagesProj/src/main/res/drawable-hdpi/premium_colors.png index 1036f89206..12638bbedf 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/premium_colors.png and b/TMessagesProj/src/main/res/drawable-hdpi/premium_colors.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/premium_status.png b/TMessagesProj/src/main/res/drawable-hdpi/premium_status.png index e803328fbb..ecd8171d4a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/premium_status.png and b/TMessagesProj/src/main/res/drawable-hdpi/premium_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/premium_tags.png b/TMessagesProj/src/main/res/drawable-hdpi/premium_tags.png index 076ee4d382..c404bec9cd 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/premium_tags.png and b/TMessagesProj/src/main/res/drawable-hdpi/premium_tags.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/premium_wallpaper.png b/TMessagesProj/src/main/res/drawable-hdpi/premium_wallpaper.png index d4deca8d7b..103fe7be19 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/premium_wallpaper.png and b/TMessagesProj/src/main/res/drawable-hdpi/premium_wallpaper.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/preview_arrow.png b/TMessagesProj/src/main/res/drawable-hdpi/preview_arrow.png index 2d252be15c..0382c95805 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/preview_arrow.png and b/TMessagesProj/src/main/res/drawable-hdpi/preview_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/preview_custom.png b/TMessagesProj/src/main/res/drawable-hdpi/preview_custom.png index 377e2b98ff..00e8e9e53c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/preview_custom.png and b/TMessagesProj/src/main/res/drawable-hdpi/preview_custom.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/preview_dots.png b/TMessagesProj/src/main/res/drawable-hdpi/preview_dots.png index 2a9fb6ba7a..dce2b81a8c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/preview_dots.png and b/TMessagesProj/src/main/res/drawable-hdpi/preview_dots.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/profile_discuss.png b/TMessagesProj/src/main/res/drawable-hdpi/profile_discuss.png index 3c87689bcf..5d655aab39 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/profile_discuss.png and b/TMessagesProj/src/main/res/drawable-hdpi/profile_discuss.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/profile_newmsg.png b/TMessagesProj/src/main/res/drawable-hdpi/profile_newmsg.png index f6d10d1131..36621759fb 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/profile_newmsg.png and b/TMessagesProj/src/main/res/drawable-hdpi/profile_newmsg.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/profile_phone.png b/TMessagesProj/src/main/res/drawable-hdpi/profile_phone.png index b3a24d546f..52151f8f41 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/profile_phone.png and b/TMessagesProj/src/main/res/drawable-hdpi/profile_phone.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/profile_video.png b/TMessagesProj/src/main/res/drawable-hdpi/profile_video.png index 655d70c902..ccc41e0ef1 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/profile_video.png and b/TMessagesProj/src/main/res/drawable-hdpi/profile_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/proxy_check.png b/TMessagesProj/src/main/res/drawable-hdpi/proxy_check.png index f3789ed596..78dc1112be 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/proxy_check.png and b/TMessagesProj/src/main/res/drawable-hdpi/proxy_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/qr_at_large.png b/TMessagesProj/src/main/res/drawable-hdpi/qr_at_large.png index 8001ab532b..7c4768bf62 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/qr_at_large.png and b/TMessagesProj/src/main/res/drawable-hdpi/qr_at_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/qr_at_medium.png b/TMessagesProj/src/main/res/drawable-hdpi/qr_at_medium.png index a18b3ab879..bd238cd163 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/qr_at_medium.png and b/TMessagesProj/src/main/res/drawable-hdpi/qr_at_medium.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/qr_at_small.png b/TMessagesProj/src/main/res/drawable-hdpi/qr_at_small.png index 6d1aaea985..1d747fe175 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/qr_at_small.png and b/TMessagesProj/src/main/res/drawable-hdpi/qr_at_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/qr_flashlight.png b/TMessagesProj/src/main/res/drawable-hdpi/qr_flashlight.png index fdc3918155..b779cd71cc 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/qr_flashlight.png and b/TMessagesProj/src/main/res/drawable-hdpi/qr_flashlight.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/qr_gallery.png b/TMessagesProj/src/main/res/drawable-hdpi/qr_gallery.png index 101ffa5e71..a08ddbfa23 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/qr_gallery.png and b/TMessagesProj/src/main/res/drawable-hdpi/qr_gallery.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/reactionbutton.png b/TMessagesProj/src/main/res/drawable-hdpi/reactionbutton.png index 8cd974a7a2..4240b92ae5 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/reactionbutton.png and b/TMessagesProj/src/main/res/drawable-hdpi/reactionbutton.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/reactionchatslist.png b/TMessagesProj/src/main/res/drawable-hdpi/reactionchatslist.png index 9fa686be94..c10088df58 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/reactionchatslist.png and b/TMessagesProj/src/main/res/drawable-hdpi/reactionchatslist.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/redcircle.png b/TMessagesProj/src/main/res/drawable-hdpi/redcircle.png old mode 100755 new mode 100644 index c3fff77536..ee33babb6d Binary files a/TMessagesProj/src/main/res/drawable-hdpi/redcircle.png and b/TMessagesProj/src/main/res/drawable-hdpi/redcircle.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/round_check2.png b/TMessagesProj/src/main/res/drawable-hdpi/round_check2.png old mode 100755 new mode 100644 index 9b77169963..64de80095b Binary files a/TMessagesProj/src/main/res/drawable-hdpi/round_check2.png and b/TMessagesProj/src/main/res/drawable-hdpi/round_check2.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/screencast_big.png b/TMessagesProj/src/main/res/drawable-hdpi/screencast_big.png index b8bdd80a20..ee253786e4 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/screencast_big.png and b/TMessagesProj/src/main/res/drawable-hdpi/screencast_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/search_arrow.png b/TMessagesProj/src/main/res/drawable-hdpi/search_arrow.png index 23d5743ea7..60fd6c73e3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/search_arrow.png and b/TMessagesProj/src/main/res/drawable-hdpi/search_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/search_date_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/search_date_filled.png index b64611cf4d..758ff1fa89 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/search_date_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/search_date_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/search_files_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/search_files_filled.png index 215befcff7..a811a12586 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/search_files_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/search_files_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/search_links_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/search_links_filled.png index 80ff78ee05..206116328b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/search_links_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/search_links_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/search_media_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/search_media_filled.png index c2f9857253..405ef40eda 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/search_media_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/search_media_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/search_music_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/search_music_filled.png index 8e01e1c131..0ab462cce2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/search_music_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/search_music_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/search_users_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/search_users_filled.png index 45649bf481..44e7d559fa 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/search_users_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/search_users_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/search_voice_filled.png b/TMessagesProj/src/main/res/drawable-hdpi/search_voice_filled.png index 179fa9efb9..d6461c84c8 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/search_voice_filled.png and b/TMessagesProj/src/main/res/drawable-hdpi/search_voice_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/selectphoto_large.png b/TMessagesProj/src/main/res/drawable-hdpi/selectphoto_large.png index facdd8a7d2..5d6e0e2f3a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/selectphoto_large.png and b/TMessagesProj/src/main/res/drawable-hdpi/selectphoto_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/settings_arrow.png b/TMessagesProj/src/main/res/drawable-hdpi/settings_arrow.png index a9c1f04014..5973db89d2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/settings_arrow.png and b/TMessagesProj/src/main/res/drawable-hdpi/settings_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/shadowdown.png b/TMessagesProj/src/main/res/drawable-hdpi/shadowdown.png index 880d19f557..2fd077de0d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/shadowdown.png and b/TMessagesProj/src/main/res/drawable-hdpi/shadowdown.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/share.png b/TMessagesProj/src/main/res/drawable-hdpi/share.png old mode 100755 new mode 100644 index a1b3b2a01a..a67164fb4d Binary files a/TMessagesProj/src/main/res/drawable-hdpi/share.png and b/TMessagesProj/src/main/res/drawable-hdpi/share.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/share_arrow.png b/TMessagesProj/src/main/res/drawable-hdpi/share_arrow.png index 2051bce29c..bea03e9dbc 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/share_arrow.png and b/TMessagesProj/src/main/res/drawable-hdpi/share_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/shortcut_compose.png b/TMessagesProj/src/main/res/drawable-hdpi/shortcut_compose.png old mode 100755 new mode 100644 index 7927b553f4..c9b27952cb Binary files a/TMessagesProj/src/main/res/drawable-hdpi/shortcut_compose.png and b/TMessagesProj/src/main/res/drawable-hdpi/shortcut_compose.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/shortcut_user.png b/TMessagesProj/src/main/res/drawable-hdpi/shortcut_user.png old mode 100755 new mode 100644 index c9fadd813a..4aa834f917 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/shortcut_user.png and b/TMessagesProj/src/main/res/drawable-hdpi/shortcut_user.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/slide_dot_big.png b/TMessagesProj/src/main/res/drawable-hdpi/slide_dot_big.png old mode 100755 new mode 100644 index 8016e5f97f..a71a7f5400 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/slide_dot_big.png and b/TMessagesProj/src/main/res/drawable-hdpi/slide_dot_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/slide_dot_small.png b/TMessagesProj/src/main/res/drawable-hdpi/slide_dot_small.png old mode 100755 new mode 100644 index b1faf7223f..afd409a802 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/slide_dot_small.png and b/TMessagesProj/src/main/res/drawable-hdpi/slide_dot_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/smallanimationpin.png b/TMessagesProj/src/main/res/drawable-hdpi/smallanimationpin.png index 6a759ea8c1..2584f7b39f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/smallanimationpin.png and b/TMessagesProj/src/main/res/drawable-hdpi/smallanimationpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/smallanimationpinleft.png b/TMessagesProj/src/main/res/drawable-hdpi/smallanimationpinleft.png index f95dc4d006..57e1fae81f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/smallanimationpinleft.png and b/TMessagesProj/src/main/res/drawable-hdpi/smallanimationpinleft.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/smallanimationpinright.png b/TMessagesProj/src/main/res/drawable-hdpi/smallanimationpinright.png index 9f819dcab5..92ffe80d0b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/smallanimationpinright.png and b/TMessagesProj/src/main/res/drawable-hdpi/smallanimationpinright.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/smiles_info.png b/TMessagesProj/src/main/res/drawable-hdpi/smiles_info.png index 965573ae57..dba4a29718 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/smiles_info.png and b/TMessagesProj/src/main/res/drawable-hdpi/smiles_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/smiles_inputsearch.png b/TMessagesProj/src/main/res/drawable-hdpi/smiles_inputsearch.png index a79f1c51cd..2218b8a1d9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/smiles_inputsearch.png and b/TMessagesProj/src/main/res/drawable-hdpi/smiles_inputsearch.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_clear.png b/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_clear.png index eb083ecf8a..5b7f234ca3 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_clear.png and b/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_gif.png b/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_gif.png index f307aad089..d202cf5421 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_gif.png and b/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_gif.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_search.png b/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_search.png index ca881e9fbd..5e246f302c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_search.png and b/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_settings.png b/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_settings.png index e304a275cc..026a399d8a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_settings.png and b/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_smiles.png b/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_smiles.png index 46ef42f7c0..04e73ef1dc 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_smiles.png and b/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_smiles.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_stickers.png b/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_stickers.png index ac28df7224..d8567d238d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_stickers.png and b/TMessagesProj/src/main/res/drawable-hdpi/smiles_tab_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/sms_bubble.png b/TMessagesProj/src/main/res/drawable-hdpi/sms_bubble.png index 9806626a5b..a8ccf49f15 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/sms_bubble.png and b/TMessagesProj/src/main/res/drawable-hdpi/sms_bubble.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/sms_code.png b/TMessagesProj/src/main/res/drawable-hdpi/sms_code.png index 25c19147e5..9221ed1f44 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/sms_code.png and b/TMessagesProj/src/main/res/drawable-hdpi/sms_code.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/sms_devices.png b/TMessagesProj/src/main/res/drawable-hdpi/sms_devices.png index b95c4734e8..d0bb324b49 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/sms_devices.png and b/TMessagesProj/src/main/res/drawable-hdpi/sms_devices.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/sticker_added.png b/TMessagesProj/src/main/res/drawable-hdpi/sticker_added.png old mode 100755 new mode 100644 index e8aad92089..52b5be81fc Binary files a/TMessagesProj/src/main/res/drawable-hdpi/sticker_added.png and b/TMessagesProj/src/main/res/drawable-hdpi/sticker_added.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/stickers_back_arrow.png b/TMessagesProj/src/main/res/drawable-hdpi/stickers_back_arrow.png index 411b6432c5..690bd54a5d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/stickers_back_arrow.png and b/TMessagesProj/src/main/res/drawable-hdpi/stickers_back_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/stickers_empty.png b/TMessagesProj/src/main/res/drawable-hdpi/stickers_empty.png index 475b1bc924..381eefd6c2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/stickers_empty.png and b/TMessagesProj/src/main/res/drawable-hdpi/stickers_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/stickers_favorites.png b/TMessagesProj/src/main/res/drawable-hdpi/stickers_favorites.png index 1750f2012e..948b51eab0 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/stickers_favorites.png and b/TMessagesProj/src/main/res/drawable-hdpi/stickers_favorites.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/stickers_gifs_trending.png b/TMessagesProj/src/main/res/drawable-hdpi/stickers_gifs_trending.png index d2351c1e5b..e52304bd31 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/stickers_gifs_trending.png and b/TMessagesProj/src/main/res/drawable-hdpi/stickers_gifs_trending.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/stickers_recent.png b/TMessagesProj/src/main/res/drawable-hdpi/stickers_recent.png index db2cebbc3b..e1ca62a15b 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/stickers_recent.png and b/TMessagesProj/src/main/res/drawable-hdpi/stickers_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/tabs_reorder.png b/TMessagesProj/src/main/res/drawable-hdpi/tabs_reorder.png index 4bfaa44dfc..1fca5fcf11 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/tabs_reorder.png and b/TMessagesProj/src/main/res/drawable-hdpi/tabs_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/theme_picker.png b/TMessagesProj/src/main/res/drawable-hdpi/theme_picker.png old mode 100755 new mode 100644 index 5bd1f182a6..91b4632a61 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/theme_picker.png and b/TMessagesProj/src/main/res/drawable-hdpi/theme_picker.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/toast_pallete.png b/TMessagesProj/src/main/res/drawable-hdpi/toast_pallete.png index 1d2aa01554..1636bde9a9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/toast_pallete.png and b/TMessagesProj/src/main/res/drawable-hdpi/toast_pallete.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/tooltip_arrow.png b/TMessagesProj/src/main/res/drawable-hdpi/tooltip_arrow.png index 5a6d561e82..34becc46f2 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/tooltip_arrow.png and b/TMessagesProj/src/main/res/drawable-hdpi/tooltip_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/tooltip_arrow_up.png b/TMessagesProj/src/main/res/drawable-hdpi/tooltip_arrow_up.png index 4caa5b517d..453905a03c 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/tooltip_arrow_up.png and b/TMessagesProj/src/main/res/drawable-hdpi/tooltip_arrow_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/tooltip_sound.png b/TMessagesProj/src/main/res/drawable-hdpi/tooltip_sound.png index e54076a3ac..ee79213b60 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/tooltip_sound.png and b/TMessagesProj/src/main/res/drawable-hdpi/tooltip_sound.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/verified_area.png b/TMessagesProj/src/main/res/drawable-hdpi/verified_area.png index 194e6a901c..a7e8943e76 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/verified_area.png and b/TMessagesProj/src/main/res/drawable-hdpi/verified_area.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/verified_check.png b/TMessagesProj/src/main/res/drawable-hdpi/verified_check.png index 8b5cdc2d78..d897c05f21 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/verified_check.png and b/TMessagesProj/src/main/res/drawable-hdpi/verified_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/verified_profile.png b/TMessagesProj/src/main/res/drawable-hdpi/verified_profile.png index 8ba1320d51..4e22f0a142 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/verified_profile.png and b/TMessagesProj/src/main/res/drawable-hdpi/verified_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/video_actions.png b/TMessagesProj/src/main/res/drawable-hdpi/video_actions.png old mode 100755 new mode 100644 index 2e33904eb9..accf9655c5 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/video_actions.png and b/TMessagesProj/src/main/res/drawable-hdpi/video_actions.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/video_mute.png b/TMessagesProj/src/main/res/drawable-hdpi/video_mute.png index 8a1a8ac00c..a76697dd51 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/video_mute.png and b/TMessagesProj/src/main/res/drawable-hdpi/video_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/video_muted.png b/TMessagesProj/src/main/res/drawable-hdpi/video_muted.png index 2057e3c113..ad250fbe43 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/video_muted.png and b/TMessagesProj/src/main/res/drawable-hdpi/video_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/video_send_mute.png b/TMessagesProj/src/main/res/drawable-hdpi/video_send_mute.png index b7a9f16990..65473f4de9 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/video_send_mute.png and b/TMessagesProj/src/main/res/drawable-hdpi/video_send_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/video_send_unmute.png b/TMessagesProj/src/main/res/drawable-hdpi/video_send_unmute.png index a25f4b4730..6b6271dacd 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/video_send_unmute.png and b/TMessagesProj/src/main/res/drawable-hdpi/video_send_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/voice_expand.png b/TMessagesProj/src/main/res/drawable-hdpi/voice_expand.png index 1dcd9270a9..63131b87b7 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/voice_expand.png and b/TMessagesProj/src/main/res/drawable-hdpi/voice_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/voice_minimize.png b/TMessagesProj/src/main/res/drawable-hdpi/voice_minimize.png index 72c344d831..53e1db249a 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/voice_minimize.png and b/TMessagesProj/src/main/res/drawable-hdpi/voice_minimize.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/voice_volume_mini.png b/TMessagesProj/src/main/res/drawable-hdpi/voice_volume_mini.png index 68ab5527f1..8dd57aac2e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/voice_volume_mini.png and b/TMessagesProj/src/main/res/drawable-hdpi/voice_volume_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/voicechat_active.png b/TMessagesProj/src/main/res/drawable-hdpi/voicechat_active.png index 4694cd3dd2..4241e9b3dc 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/voicechat_active.png and b/TMessagesProj/src/main/res/drawable-hdpi/voicechat_active.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/voicechat_muted.png b/TMessagesProj/src/main/res/drawable-hdpi/voicechat_muted.png index 15c159ad0f..4e3ef9752e 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/voicechat_muted.png and b/TMessagesProj/src/main/res/drawable-hdpi/voicechat_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/voicechat_screencast.png b/TMessagesProj/src/main/res/drawable-hdpi/voicechat_screencast.png index 520cd426fd..5f36cdfa00 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/voicechat_screencast.png and b/TMessagesProj/src/main/res/drawable-hdpi/voicechat_screencast.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/zoom_minus.png b/TMessagesProj/src/main/res/drawable-hdpi/zoom_minus.png index 7027f50878..26bc6f6f62 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/zoom_minus.png and b/TMessagesProj/src/main/res/drawable-hdpi/zoom_minus.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/zoom_plus.png b/TMessagesProj/src/main/res/drawable-hdpi/zoom_plus.png index 6544bd8fbf..2c6f4851ef 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/zoom_plus.png and b/TMessagesProj/src/main/res/drawable-hdpi/zoom_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/zoom_round.png b/TMessagesProj/src/main/res/drawable-hdpi/zoom_round.png index 173ad976a1..59f0aeaf3d 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/zoom_round.png and b/TMessagesProj/src/main/res/drawable-hdpi/zoom_round.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/zoom_round_b.png b/TMessagesProj/src/main/res/drawable-hdpi/zoom_round_b.png index 4f46b152a6..ab19ea1356 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/zoom_round_b.png and b/TMessagesProj/src/main/res/drawable-hdpi/zoom_round_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ab_progress.png b/TMessagesProj/src/main/res/drawable-mdpi/ab_progress.png index e9b0c34609..f3539fa1c2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ab_progress.png and b/TMessagesProj/src/main/res/drawable-mdpi/ab_progress.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/account_check.png b/TMessagesProj/src/main/res/drawable-mdpi/account_check.png index 6be339e80c..47ca9577f0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/account_check.png and b/TMessagesProj/src/main/res/drawable-mdpi/account_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/album_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/album_shadow.png index b78a45a55d..c4d75a5c5b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/album_shadow.png and b/TMessagesProj/src/main/res/drawable-mdpi/album_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/animationpin.png b/TMessagesProj/src/main/res/drawable-mdpi/animationpin.png index a431792fb0..a984d0ef32 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/animationpin.png and b/TMessagesProj/src/main/res/drawable-mdpi/animationpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/animationpinleft.png b/TMessagesProj/src/main/res/drawable-mdpi/animationpinleft.png index 00e89ab30f..eaf7f929f6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/animationpinleft.png and b/TMessagesProj/src/main/res/drawable-mdpi/animationpinleft.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/animationpinright.png b/TMessagesProj/src/main/res/drawable-mdpi/animationpinright.png index 56fff04f96..236bc0dbb5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/animationpinright.png and b/TMessagesProj/src/main/res/drawable-mdpi/animationpinright.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/arrow_more.png b/TMessagesProj/src/main/res/drawable-mdpi/arrow_more.png index 061c6f74a9..4127009177 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/arrow_more.png and b/TMessagesProj/src/main/res/drawable-mdpi/arrow_more.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/arrow_newchat.png b/TMessagesProj/src/main/res/drawable-mdpi/arrow_newchat.png index cafce73aca..ea7f194f94 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/arrow_newchat.png and b/TMessagesProj/src/main/res/drawable-mdpi/arrow_newchat.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/attach_send.png b/TMessagesProj/src/main/res/drawable-mdpi/attach_send.png index 3d426209eb..6d52bfb27b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/attach_send.png and b/TMessagesProj/src/main/res/drawable-mdpi/attach_send.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/attach_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/attach_shadow.png index bff1fdbbdc..7fd2f78dbf 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/attach_shadow.png and b/TMessagesProj/src/main/res/drawable-mdpi/attach_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/authorize.png b/TMessagesProj/src/main/res/drawable-mdpi/authorize.png index a6f875150e..65ec41d913 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/authorize.png and b/TMessagesProj/src/main/res/drawable-mdpi/authorize.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/background_selected.png b/TMessagesProj/src/main/res/drawable-mdpi/background_selected.png index e9ed77824d..59171b7b5b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/background_selected.png and b/TMessagesProj/src/main/res/drawable-mdpi/background_selected.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/bg_rotate_large.png b/TMessagesProj/src/main/res/drawable-mdpi/bg_rotate_large.png index 740b8e677e..308b438f05 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/bg_rotate_large.png and b/TMessagesProj/src/main/res/drawable-mdpi/bg_rotate_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/blockpanel.png b/TMessagesProj/src/main/res/drawable-mdpi/blockpanel.png index 3ca6bd9837..ab00d742c7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/blockpanel.png and b/TMessagesProj/src/main/res/drawable-mdpi/blockpanel.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/blockpanel_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/blockpanel_shadow.png index e5ef73a01f..956d60b8fa 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/blockpanel_shadow.png and b/TMessagesProj/src/main/res/drawable-mdpi/blockpanel_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/book_bot.png b/TMessagesProj/src/main/res/drawable-mdpi/book_bot.png old mode 100755 new mode 100644 index f8b0be758a..04eebaefee Binary files a/TMessagesProj/src/main/res/drawable-mdpi/book_bot.png and b/TMessagesProj/src/main/res/drawable-mdpi/book_bot.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/book_channel.png b/TMessagesProj/src/main/res/drawable-mdpi/book_channel.png old mode 100755 new mode 100644 index 504d1e2965..a92e78764b Binary files a/TMessagesProj/src/main/res/drawable-mdpi/book_channel.png and b/TMessagesProj/src/main/res/drawable-mdpi/book_channel.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/book_group.png b/TMessagesProj/src/main/res/drawable-mdpi/book_group.png old mode 100755 new mode 100644 index 6f96f55dca..9e021e9dce Binary files a/TMessagesProj/src/main/res/drawable-mdpi/book_group.png and b/TMessagesProj/src/main/res/drawable-mdpi/book_group.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/book_user.png b/TMessagesProj/src/main/res/drawable-mdpi/book_user.png old mode 100755 new mode 100644 index 8886e58e29..3e8a171bcb Binary files a/TMessagesProj/src/main/res/drawable-mdpi/book_user.png and b/TMessagesProj/src/main/res/drawable-mdpi/book_user.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/bot_card.png b/TMessagesProj/src/main/res/drawable-mdpi/bot_card.png index 471992ec89..81677edb7e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/bot_card.png and b/TMessagesProj/src/main/res/drawable-mdpi/bot_card.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/bot_file.png b/TMessagesProj/src/main/res/drawable-mdpi/bot_file.png old mode 100755 new mode 100644 index d55ddc39a8..533e2c013e Binary files a/TMessagesProj/src/main/res/drawable-mdpi/bot_file.png and b/TMessagesProj/src/main/res/drawable-mdpi/bot_file.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/bot_invite.png b/TMessagesProj/src/main/res/drawable-mdpi/bot_invite.png index e5655fb051..9be1e26a5f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/bot_invite.png and b/TMessagesProj/src/main/res/drawable-mdpi/bot_invite.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/bot_lines.png b/TMessagesProj/src/main/res/drawable-mdpi/bot_lines.png old mode 100755 new mode 100644 index ea85c9a810..3da7c21074 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/bot_lines.png and b/TMessagesProj/src/main/res/drawable-mdpi/bot_lines.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/bot_link.png b/TMessagesProj/src/main/res/drawable-mdpi/bot_link.png old mode 100755 new mode 100644 index c6891320ed..3bf4e58704 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/bot_link.png and b/TMessagesProj/src/main/res/drawable-mdpi/bot_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/bot_location.png b/TMessagesProj/src/main/res/drawable-mdpi/bot_location.png old mode 100755 new mode 100644 index 010aa170db..1a1285b7fb Binary files a/TMessagesProj/src/main/res/drawable-mdpi/bot_location.png and b/TMessagesProj/src/main/res/drawable-mdpi/bot_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/bot_music.png b/TMessagesProj/src/main/res/drawable-mdpi/bot_music.png old mode 100755 new mode 100644 index 00cc78cf5f..a2d1230291 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/bot_music.png and b/TMessagesProj/src/main/res/drawable-mdpi/bot_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/bot_webview.png b/TMessagesProj/src/main/res/drawable-mdpi/bot_webview.png index c5de9be147..bc05c61874 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/bot_webview.png and b/TMessagesProj/src/main/res/drawable-mdpi/bot_webview.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/bottom_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/bottom_shadow.png old mode 100755 new mode 100644 index 4a16cd3953..33f7818e55 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/bottom_shadow.png and b/TMessagesProj/src/main/res/drawable-mdpi/bottom_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/call_arrow_right.png b/TMessagesProj/src/main/res/drawable-mdpi/call_arrow_right.png deleted file mode 100644 index a90fb170c9..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/call_arrow_right.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/calls_bluetooth.png b/TMessagesProj/src/main/res/drawable-mdpi/calls_bluetooth.png index e07ee32616..f48a338970 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/calls_bluetooth.png and b/TMessagesProj/src/main/res/drawable-mdpi/calls_bluetooth.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/calls_camera_mini.png b/TMessagesProj/src/main/res/drawable-mdpi/calls_camera_mini.png index c8b67a12b2..6e07861983 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/calls_camera_mini.png and b/TMessagesProj/src/main/res/drawable-mdpi/calls_camera_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/calls_decline.png b/TMessagesProj/src/main/res/drawable-mdpi/calls_decline.png index 47dee33e60..0077b218af 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/calls_decline.png and b/TMessagesProj/src/main/res/drawable-mdpi/calls_decline.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/calls_flip.png b/TMessagesProj/src/main/res/drawable-mdpi/calls_flip.png deleted file mode 100644 index 7ae8f5f441..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/calls_flip.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/calls_headphones.png b/TMessagesProj/src/main/res/drawable-mdpi/calls_headphones.png index a2445b2a4d..50962624ec 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/calls_headphones.png and b/TMessagesProj/src/main/res/drawable-mdpi/calls_headphones.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/calls_menu_bluetooth.png b/TMessagesProj/src/main/res/drawable-mdpi/calls_menu_bluetooth.png deleted file mode 100644 index 75cee4a4c3..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/calls_menu_bluetooth.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/calls_menu_headset.png b/TMessagesProj/src/main/res/drawable-mdpi/calls_menu_headset.png index e2894edb04..71cd24f040 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/calls_menu_headset.png and b/TMessagesProj/src/main/res/drawable-mdpi/calls_menu_headset.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/calls_menu_phone.png b/TMessagesProj/src/main/res/drawable-mdpi/calls_menu_phone.png index 45ec40ae42..620fd36435 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/calls_menu_phone.png and b/TMessagesProj/src/main/res/drawable-mdpi/calls_menu_phone.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/calls_menu_speaker.png b/TMessagesProj/src/main/res/drawable-mdpi/calls_menu_speaker.png deleted file mode 100644 index acac8c0aa1..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/calls_menu_speaker.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/calls_mute_mini.png b/TMessagesProj/src/main/res/drawable-mdpi/calls_mute_mini.png index 8b11374a0e..2f50bfae17 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/calls_mute_mini.png and b/TMessagesProj/src/main/res/drawable-mdpi/calls_mute_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/calls_sharescreen.png b/TMessagesProj/src/main/res/drawable-mdpi/calls_sharescreen.png deleted file mode 100644 index 4891f90ce1..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/calls_sharescreen.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/calls_speaker.png b/TMessagesProj/src/main/res/drawable-mdpi/calls_speaker.png index 5af0ddee17..efe5f1f6a0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/calls_speaker.png and b/TMessagesProj/src/main/res/drawable-mdpi/calls_speaker.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/calls_unmute.png b/TMessagesProj/src/main/res/drawable-mdpi/calls_unmute.png index 06d09c4326..0688d70426 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/calls_unmute.png and b/TMessagesProj/src/main/res/drawable-mdpi/calls_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/calls_video.png b/TMessagesProj/src/main/res/drawable-mdpi/calls_video.png index 09dd0a7e7c..6fa3796f60 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/calls_video.png and b/TMessagesProj/src/main/res/drawable-mdpi/calls_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/camera_btn.png b/TMessagesProj/src/main/res/drawable-mdpi/camera_btn.png old mode 100755 new mode 100644 index 4acbc3467c..0315b8b7cc Binary files a/TMessagesProj/src/main/res/drawable-mdpi/camera_btn.png and b/TMessagesProj/src/main/res/drawable-mdpi/camera_btn.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/camera_revert1.png b/TMessagesProj/src/main/res/drawable-mdpi/camera_revert1.png old mode 100755 new mode 100644 index 4475f01bdd..5a27117c9e Binary files a/TMessagesProj/src/main/res/drawable-mdpi/camera_revert1.png and b/TMessagesProj/src/main/res/drawable-mdpi/camera_revert1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/camera_revert2.png b/TMessagesProj/src/main/res/drawable-mdpi/camera_revert2.png old mode 100755 new mode 100644 index 75b6aa33c5..f79401c6c6 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/camera_revert2.png and b/TMessagesProj/src/main/res/drawable-mdpi/camera_revert2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/cancel_big.png b/TMessagesProj/src/main/res/drawable-mdpi/cancel_big.png old mode 100755 new mode 100644 index dce25d97b6..319be67b5e Binary files a/TMessagesProj/src/main/res/drawable-mdpi/cancel_big.png and b/TMessagesProj/src/main/res/drawable-mdpi/cancel_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_incoming.png b/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_incoming.png index a443bfbbfe..5807e7137f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_incoming.png and b/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_incoming.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_outgoing.png b/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_outgoing.png index 9ddb75a9a6..8bb466831d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_outgoing.png and b/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_outgoing.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_video.png b/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_video.png index d9b0cf71fe..ba735335f5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_video.png and b/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_voice.png b/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_voice.png index 68a532e931..1fb55b6331 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_voice.png and b/TMessagesProj/src/main/res/drawable-mdpi/chat_calls_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/chats_archive.png b/TMessagesProj/src/main/res/drawable-mdpi/chats_archive.png index c4538882ec..e31b4c4515 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/chats_archive.png and b/TMessagesProj/src/main/res/drawable-mdpi/chats_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_arrow.png b/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_arrow.png index 3e07345ab1..04f75cc671 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_arrow.png and b/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_box.png b/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_box.png index 529072322d..3cd450773d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_box.png and b/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_box.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_muted.png b/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_muted.png index 1c1cc8f06a..b3d111cb12 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_muted.png and b/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_pin.png b/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_pin.png index d4d37a95f7..5271cbbc4e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_pin.png and b/TMessagesProj/src/main/res/drawable-mdpi/chats_archive_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/chats_pin.png b/TMessagesProj/src/main/res/drawable-mdpi/chats_pin.png index 1463ef6468..777377d923 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/chats_pin.png and b/TMessagesProj/src/main/res/drawable-mdpi/chats_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/chats_replies.png b/TMessagesProj/src/main/res/drawable-mdpi/chats_replies.png index 789fcfe7d3..52c96339d0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/chats_replies.png and b/TMessagesProj/src/main/res/drawable-mdpi/chats_replies.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/chats_saved.png b/TMessagesProj/src/main/res/drawable-mdpi/chats_saved.png index e80b5c6a73..365fe473b0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/chats_saved.png and b/TMessagesProj/src/main/res/drawable-mdpi/chats_saved.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/chats_undo.png b/TMessagesProj/src/main/res/drawable-mdpi/chats_undo.png index 13532af65a..e3515a2437 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/chats_undo.png and b/TMessagesProj/src/main/res/drawable-mdpi/chats_undo.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/chats_unpin.png b/TMessagesProj/src/main/res/drawable-mdpi/chats_unpin.png index 4bfc74b9a6..dd25f767ce 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/chats_unpin.png and b/TMessagesProj/src/main/res/drawable-mdpi/chats_unpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/checkbig.png b/TMessagesProj/src/main/res/drawable-mdpi/checkbig.png index 1689692687..ecb34ec45b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/checkbig.png and b/TMessagesProj/src/main/res/drawable-mdpi/checkbig.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/circle.png b/TMessagesProj/src/main/res/drawable-mdpi/circle.png old mode 100755 new mode 100644 index c1ae2bc589..095b48b148 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/circle.png and b/TMessagesProj/src/main/res/drawable-mdpi/circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/circle_big.png b/TMessagesProj/src/main/res/drawable-mdpi/circle_big.png old mode 100755 new mode 100644 index 3b335c57e5..76607e9098 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/circle_big.png and b/TMessagesProj/src/main/res/drawable-mdpi/circle_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/compose_panel_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/compose_panel_shadow.png old mode 100755 new mode 100644 diff --git a/TMessagesProj/src/main/res/drawable-mdpi/delete.png b/TMessagesProj/src/main/res/drawable-mdpi/delete.png index cc787b6327..26894de83c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/delete.png and b/TMessagesProj/src/main/res/drawable-mdpi/delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/device_desktop_osx.png b/TMessagesProj/src/main/res/drawable-mdpi/device_desktop_osx.png index c85505188a..69ed5a2587 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/device_desktop_osx.png and b/TMessagesProj/src/main/res/drawable-mdpi/device_desktop_osx.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/device_desktop_other.png b/TMessagesProj/src/main/res/drawable-mdpi/device_desktop_other.png index 9bbf7489cb..a32ffa1436 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/device_desktop_other.png and b/TMessagesProj/src/main/res/drawable-mdpi/device_desktop_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/device_desktop_win.png b/TMessagesProj/src/main/res/drawable-mdpi/device_desktop_win.png index 64363b2fbc..aa13947478 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/device_desktop_win.png and b/TMessagesProj/src/main/res/drawable-mdpi/device_desktop_win.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/device_phone_android.png b/TMessagesProj/src/main/res/drawable-mdpi/device_phone_android.png index 66953a7e8c..02a56728dc 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/device_phone_android.png and b/TMessagesProj/src/main/res/drawable-mdpi/device_phone_android.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/device_phone_ios.png b/TMessagesProj/src/main/res/drawable-mdpi/device_phone_ios.png index 74243c6ce0..ed80a0b7f9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/device_phone_ios.png and b/TMessagesProj/src/main/res/drawable-mdpi/device_phone_ios.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/device_tablet_android.png b/TMessagesProj/src/main/res/drawable-mdpi/device_tablet_android.png index 54afe76902..1dcf1672bf 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/device_tablet_android.png and b/TMessagesProj/src/main/res/drawable-mdpi/device_tablet_android.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/device_tablet_ios.png b/TMessagesProj/src/main/res/drawable-mdpi/device_tablet_ios.png index c1b8038fdf..40af8ce239 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/device_tablet_ios.png and b/TMessagesProj/src/main/res/drawable-mdpi/device_tablet_ios.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/device_web_chrome.png b/TMessagesProj/src/main/res/drawable-mdpi/device_web_chrome.png index 3d02b5ebd2..44daf8a7c7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/device_web_chrome.png and b/TMessagesProj/src/main/res/drawable-mdpi/device_web_chrome.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/device_web_edge.png b/TMessagesProj/src/main/res/drawable-mdpi/device_web_edge.png index c8935db077..b1268083d6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/device_web_edge.png and b/TMessagesProj/src/main/res/drawable-mdpi/device_web_edge.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/device_web_firefox.png b/TMessagesProj/src/main/res/drawable-mdpi/device_web_firefox.png index 907691f83c..9f0ce06928 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/device_web_firefox.png and b/TMessagesProj/src/main/res/drawable-mdpi/device_web_firefox.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/device_web_opera.png b/TMessagesProj/src/main/res/drawable-mdpi/device_web_opera.png index 319ce56870..ec5b885d81 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/device_web_opera.png and b/TMessagesProj/src/main/res/drawable-mdpi/device_web_opera.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/device_web_other.png b/TMessagesProj/src/main/res/drawable-mdpi/device_web_other.png index 081c7a6252..fc882713b9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/device_web_other.png and b/TMessagesProj/src/main/res/drawable-mdpi/device_web_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/device_web_safari.png b/TMessagesProj/src/main/res/drawable-mdpi/device_web_safari.png index f783086acf..8cbc96f139 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/device_web_safari.png and b/TMessagesProj/src/main/res/drawable-mdpi/device_web_safari.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/dice.png b/TMessagesProj/src/main/res/drawable-mdpi/dice.png index 99d1452b34..fc2f8feb14 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/dice.png and b/TMessagesProj/src/main/res/drawable-mdpi/dice.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/emoji_love.png b/TMessagesProj/src/main/res/drawable-mdpi/emoji_love.png index de4e490c91..82e428b05b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/emoji_love.png and b/TMessagesProj/src/main/res/drawable-mdpi/emoji_love.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_faves.png b/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_faves.png index 8ad401049d..5ff8b04899 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_faves.png and b/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_faves.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_new1.png b/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_new1.png index 4b150192a4..9db5cb3859 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_new1.png and b/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_new1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_new2.png b/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_new2.png index 62da1aeb4c..a8a9c19bcf 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_new2.png and b/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_new2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_new3.png b/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_new3.png index 98c9d2aa1b..da82a73cff 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_new3.png and b/TMessagesProj/src/main/res/drawable-mdpi/emoji_tabs_new3.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/fab_compose_small.png b/TMessagesProj/src/main/res/drawable-mdpi/fab_compose_small.png index ca475345b5..0b60c0c117 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/fab_compose_small.png and b/TMessagesProj/src/main/res/drawable-mdpi/fab_compose_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/fast_scroll_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/fast_scroll_shadow.png index 386d02678b..f5d6c1ad15 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/fast_scroll_shadow.png and b/TMessagesProj/src/main/res/drawable-mdpi/fast_scroll_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/files_folder.png b/TMessagesProj/src/main/res/drawable-mdpi/files_folder.png index c3619450cc..331998d1cf 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/files_folder.png and b/TMessagesProj/src/main/res/drawable-mdpi/files_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/files_gallery.png b/TMessagesProj/src/main/res/drawable-mdpi/files_gallery.png index 97b65372eb..ed7187b40a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/files_gallery.png and b/TMessagesProj/src/main/res/drawable-mdpi/files_gallery.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/files_internal.png b/TMessagesProj/src/main/res/drawable-mdpi/files_internal.png index 6196714b22..8becc6a8c5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/files_internal.png and b/TMessagesProj/src/main/res/drawable-mdpi/files_internal.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/files_music.png b/TMessagesProj/src/main/res/drawable-mdpi/files_music.png index b1e54d85ff..82231ad1ce 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/files_music.png and b/TMessagesProj/src/main/res/drawable-mdpi/files_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/files_storage.png b/TMessagesProj/src/main/res/drawable-mdpi/files_storage.png index e4fffbddc2..53e22ca90c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/files_storage.png and b/TMessagesProj/src/main/res/drawable-mdpi/files_storage.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_add_photo.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_add_photo.png index 08ffd96568..e1060a08ec 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_add_photo.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_add_photo.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_add_sticker.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_add_sticker.png index 87916b8473..be5b65bb9e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_add_sticker.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_add_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_boost_plus.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_boost_plus.png index d5e7a5fdff..ea7423daa1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_boost_plus.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_boost_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_button_reply.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_button_reply.png index d246eca62b..7215878f16 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_button_reply.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_button_reply.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_button_share.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_button_share.png index 0b30f5e264..2fab711004 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_button_share.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_button_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_chatlink_large.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_chatlink_large.png index 437f62b437..50e779429a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_chatlink_large.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_chatlink_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_clear.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_clear.png index 3b381c699b..dfbb24c31b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_clear.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_directions.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_directions.png index f26155df32..f3a06761f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_directions.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_directions.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_extend_location.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_extend_location.png index d61f44ae22..8138b1a13a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_extend_location.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_extend_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_fire.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_fire.png index d8e03f4fd1..6f6376451a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_fire.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_fire.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_folder_existing.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_folder_existing.png index 3c40e82771..04db7304cf 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_folder_existing.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_folder_existing.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_folder_new.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_folder_new.png index 6d4f8317e9..f21718725d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_folder_new.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_folder_new.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_forward.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_forward.png index 26568658b5..940c48c74c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_forward.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_gift_premium.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_gift_premium.png index 61b34b6b29..ba425e6ad0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_gift_premium.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_gift_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_giveaway_premium.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_giveaway_premium.png new file mode 100644 index 0000000000..94c8b81d3b Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/filled_giveaway_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_giveaway_stars.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_giveaway_stars.png new file mode 100644 index 0000000000..c766696095 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/filled_giveaway_stars.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_info.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_info.png index 935e1dda37..4f4b2d4a9a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_info.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_limit_boost.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_limit_boost.png index f12300eda5..18e0f51424 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_limit_boost.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_limit_boost.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_link.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_link.png index 2a620770c1..a435766e9c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_link.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_location.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_location.png index ff30bb05cd..cba88f9f70 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_location.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_location_forever.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_location_forever.png index 9542a68d0f..10bc8f3991 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_location_forever.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_location_forever.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_open_message.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_open_message.png index 92c7fd550c..4a6b847dd1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_open_message.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_open_message.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_away.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_away.png index fa9e990011..b68f140262 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_away.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_away.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_bots.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_bots.png index 39e22ddaf8..1be504111a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_bots.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_business.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_business.png index d87952934f..66430bce3d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_business.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_business.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_camera.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_camera.png index 2556dfca9e..c157d366a1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_camera.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_camera.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_chatlink.png index 34147412a4..3f29699d99 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_chatlink.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_hours.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_hours.png index 5dd91533ed..52e8dc3d6b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_hours.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_hours.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_intro.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_intro.png index b7e66ab235..653518e8f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_intro.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_status2.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_status2.png index 1262a863fd..f10bd7c057 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_status2.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_premium_status2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_reply_quote.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_reply_quote.png index 112328be7e..1ae43faa33 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_reply_quote.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_reply_quote.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_reply_settings.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_reply_settings.png index 63afc7deda..83b2a9ec14 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_reply_settings.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_reply_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_sensitive.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_sensitive.png index e446ab3e62..164462ff90 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_sensitive.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_sensitive.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_star_plus.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_star_plus.png index 75544301ca..c689436069 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_star_plus.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_star_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_stop_location.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_stop_location.png index ee5f790adb..314c8e378f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_stop_location.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_stop_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_unclaimed.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_unclaimed.png index bbf06f2cf2..9e36a05443 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_unclaimed.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_unclaimed.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_unknown.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_unknown.png index 1bd0f15d8d..65d23e3c80 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_unknown.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_unknown.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_username.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_username.png index a5c80b4f04..1a131769e1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_username.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_username.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_views.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_views.png index 086ae690d2..2dd9ff05d3 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_views.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_views.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/filled_widget_music.png b/TMessagesProj/src/main/res/drawable-mdpi/filled_widget_music.png index 12a01e491d..02f5ca1781 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/filled_widget_music.png and b/TMessagesProj/src/main/res/drawable-mdpi/filled_widget_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/fingerprint.png b/TMessagesProj/src/main/res/drawable-mdpi/fingerprint.png index c811128f59..9cb71192b1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/fingerprint.png and b/TMessagesProj/src/main/res/drawable-mdpi/fingerprint.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/flash_auto.png b/TMessagesProj/src/main/res/drawable-mdpi/flash_auto.png old mode 100755 new mode 100644 index 738526d4a5..859b837302 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/flash_auto.png and b/TMessagesProj/src/main/res/drawable-mdpi/flash_auto.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/flash_off.png b/TMessagesProj/src/main/res/drawable-mdpi/flash_off.png old mode 100755 new mode 100644 index 8134a1466a..799b50c9db Binary files a/TMessagesProj/src/main/res/drawable-mdpi/flash_off.png and b/TMessagesProj/src/main/res/drawable-mdpi/flash_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/flash_on.png b/TMessagesProj/src/main/res/drawable-mdpi/flash_on.png old mode 100755 new mode 100644 index 150356a386..cdbebe2af7 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/flash_on.png and b/TMessagesProj/src/main/res/drawable-mdpi/flash_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/floating_check.png b/TMessagesProj/src/main/res/drawable-mdpi/floating_check.png index 879de57aaf..e2eb6b72d4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/floating_check.png and b/TMessagesProj/src/main/res/drawable-mdpi/floating_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/floating_pencil.png b/TMessagesProj/src/main/res/drawable-mdpi/floating_pencil.png old mode 100755 new mode 100644 index 5af5a8326b..22f705caba Binary files a/TMessagesProj/src/main/res/drawable-mdpi/floating_pencil.png and b/TMessagesProj/src/main/res/drawable-mdpi/floating_pencil.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/floating_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/floating_shadow.png old mode 100755 new mode 100644 index 1e758db848..94833584c6 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/floating_shadow.png and b/TMessagesProj/src/main/res/drawable-mdpi/floating_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/floating_shadow_profile.png b/TMessagesProj/src/main/res/drawable-mdpi/floating_shadow_profile.png old mode 100755 new mode 100644 index 91ddeede82..f46662b7d7 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/floating_shadow_profile.png and b/TMessagesProj/src/main/res/drawable-mdpi/floating_shadow_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/foursquare.png b/TMessagesProj/src/main/res/drawable-mdpi/foursquare.png old mode 100755 new mode 100644 index 94c15cffcf..607780c1bd Binary files a/TMessagesProj/src/main/res/drawable-mdpi/foursquare.png and b/TMessagesProj/src/main/res/drawable-mdpi/foursquare.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ghost.png b/TMessagesProj/src/main/res/drawable-mdpi/ghost.png index 1c765b71e6..f07292d491 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ghost.png and b/TMessagesProj/src/main/res/drawable-mdpi/ghost.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/gif_empty.png b/TMessagesProj/src/main/res/drawable-mdpi/gif_empty.png index ff9dec2f47..8052c59b0c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/gif_empty.png and b/TMessagesProj/src/main/res/drawable-mdpi/gif_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/googlepay_button_background_image.9.png b/TMessagesProj/src/main/res/drawable-mdpi/googlepay_button_background_image.9.png deleted file mode 100644 index a60464a360..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/googlepay_button_background_image.9.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/group_edit.png b/TMessagesProj/src/main/res/drawable-mdpi/group_edit.png old mode 100755 new mode 100644 index 62794d8281..2b4dd831b8 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/group_edit.png and b/TMessagesProj/src/main/res/drawable-mdpi/group_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/group_edit_profile.png b/TMessagesProj/src/main/res/drawable-mdpi/group_edit_profile.png index 6ec2cd52c7..5288685afe 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/group_edit_profile.png and b/TMessagesProj/src/main/res/drawable-mdpi/group_edit_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/groups_limit1.png b/TMessagesProj/src/main/res/drawable-mdpi/groups_limit1.png index 412f1f0774..50bbfe9bde 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/groups_limit1.png and b/TMessagesProj/src/main/res/drawable-mdpi/groups_limit1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/groups_overview_check.png b/TMessagesProj/src/main/res/drawable-mdpi/groups_overview_check.png index abd0205029..69b92d0094 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/groups_overview_check.png and b/TMessagesProj/src/main/res/drawable-mdpi/groups_overview_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/groupsintro.png b/TMessagesProj/src/main/res/drawable-mdpi/groupsintro.png index e06b7856e0..9b89478867 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/groupsintro.png and b/TMessagesProj/src/main/res/drawable-mdpi/groupsintro.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/groupsintro2.png b/TMessagesProj/src/main/res/drawable-mdpi/groupsintro2.png index c5d89599ff..781ea20ae9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/groupsintro2.png and b/TMessagesProj/src/main/res/drawable-mdpi/groupsintro2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/header_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/header_shadow.png old mode 100755 new mode 100644 index fc6a8053c0..4fedbfb6d2 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/header_shadow.png and b/TMessagesProj/src/main/res/drawable-mdpi/header_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/header_shadow_reverse.png b/TMessagesProj/src/main/res/drawable-mdpi/header_shadow_reverse.png index ec685369b0..cf248fba4e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/header_shadow_reverse.png and b/TMessagesProj/src/main/res/drawable-mdpi/header_shadow_reverse.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/heart_confetti.png b/TMessagesProj/src/main/res/drawable-mdpi/heart_confetti.png index 7b3eb49a96..50f1f0ffdb 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/heart_confetti.png and b/TMessagesProj/src/main/res/drawable-mdpi/heart_confetti.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_back.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_back.png old mode 100755 new mode 100644 index afe6c4a909..5440995d79 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_back.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_back.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_done.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_done.png old mode 100755 new mode 100644 index a610f99b70..ac961f1d6b Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_done.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_done.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_new.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_new.png old mode 100755 new mode 100644 index 1d80781378..44ea201e52 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_new.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_new.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_other.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_other.png old mode 100755 new mode 100644 index 3d19133f76..c2db595897 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_other.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_reply.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_reply.png index dc1c0810b0..68c18c0776 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_reply.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_reply.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_reply2.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_reply2.png old mode 100755 new mode 100644 index 30d186ce10..a62e444b5e Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_reply2.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_reply2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_search.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_search.png old mode 100755 new mode 100644 index 2090d8fa84..1b45c9159a Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_search.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_again.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_again.png index 87ad2fbe95..23a0ff311b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_again.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_again.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_againinline.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_againinline.png index b554d2d349..b624611100 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_againinline.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_againinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_arrow_drop_down.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_arrow_drop_down.png old mode 100755 new mode 100644 index 120e8bc2f7..a671753648 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_arrow_drop_down.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_arrow_drop_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_call.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_call.png index 11abd1a02e..f4d77acffb 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_call.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_call.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_call_end_white_24dp.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_call_end_white_24dp.png index 2865973ad8..34c939303f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_call_end_white_24dp.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_call_end_white_24dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_call_made_green_18dp.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_call_made_green_18dp.png index dd42b7ddd1..4e3e5fd135 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_call_made_green_18dp.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_call_made_green_18dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_call_received_green_18dp.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_call_received_green_18dp.png old mode 100755 new mode 100644 index e42fce636a..63d5877206 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_call_received_green_18dp.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_call_received_green_18dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_chatlist_add_2.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_chatlist_add_2.png index 1d40579036..96fdbf0ed2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_chatlist_add_2.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_chatlist_add_2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_chevron_right_black_18dp.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_chevron_right_black_18dp.png old mode 100755 new mode 100644 index e8be8a6d87..6d86683673 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_chevron_right_black_18dp.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_chevron_right_black_18dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_close_white.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_close_white.png old mode 100755 new mode 100644 index 8228961727..a135eab38e Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_close_white.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_close_white.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_fp_40px.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_fp_40px.png deleted file mode 100644 index ed8012f08d..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_fp_40px.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_gallery_background.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_gallery_background.png index 5795c70d5a..761a58b9cd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_gallery_background.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_gallery_background.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_gofullscreen.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_gofullscreen.png index 5d9930c00b..50860e11a4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_gofullscreen.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_gofullscreen.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_goinline.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_goinline.png index aa02907be0..30c6289d6b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_goinline.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_goinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_launcher_dr.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_launcher_dr.png index ef397fd79e..a70a7bac7b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_launcher_dr.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_launcher_dr.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_layer_close.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_layer_close.png index bb40d67fad..acbf52abb1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_layer_close.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_layer_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_lock_header.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_lock_header.png old mode 100755 new mode 100644 index 2ff251dea9..af6f186e4e Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_lock_header.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_lock_header.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_lock_white.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_lock_white.png index e0c6b583ad..30591e5625 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_lock_white.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_lock_white.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_masks_msk1.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_masks_msk1.png index a65e2b6bc5..efcb77bc16 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_masks_msk1.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_masks_msk1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_outfullscreen.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_outfullscreen.png index d267c6942b..5d666ad3bd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_outfullscreen.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_outfullscreen.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_outinline.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_outinline.png index 565ac15551..7e8df77a5b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_outinline.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_outinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_pause.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_pause.png index c6dc73c938..a7bd54c467 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_pause.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_pause.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_pauseinline.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_pauseinline.png index 1818039e51..825163d693 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_pauseinline.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_pauseinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_play.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_play.png index f18fdea5f9..e64479dc43 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_play.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_play.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_playinline.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_playinline.png index 94722cea5a..1a8ba3bb71 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_playinline.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_playinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_rating_star.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_rating_star.png index 97371d5a19..219341c4c7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_rating_star.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_rating_star.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_rating_star_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_rating_star_filled.png index a8edeacf12..c08a31de22 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_rating_star_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_rating_star_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_reply_icon.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_reply_icon.png old mode 100755 new mode 100644 index a8a07a94c8..69d903aa98 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_reply_icon.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_reply_icon.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_send.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_send.png old mode 100755 new mode 100644 index 7c439115f9..7f7a32c0e8 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_send.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_send.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_share_video.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_share_video.png index 1ed63ca851..d69bb46113 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_share_video.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_share_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_video.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_video.png index 1d840f4068..d6e64b778f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/ic_video.png and b/TMessagesProj/src/main/res/drawable-mdpi/ic_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_attach.png b/TMessagesProj/src/main/res/drawable-mdpi/input_attach.png index ae24662adc..78d32c821a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_attach.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_attach.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_bot1.png b/TMessagesProj/src/main/res/drawable-mdpi/input_bot1.png index fea8796c1b..5375063185 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_bot1.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_bot1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_bot2.png b/TMessagesProj/src/main/res/drawable-mdpi/input_bot2.png index 682e2a35d4..fa42a7ba15 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_bot2.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_bot2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_calendar1.png b/TMessagesProj/src/main/res/drawable-mdpi/input_calendar1.png index 71b8a6bff1..6112011c21 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_calendar1.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_calendar1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_calendar2.png b/TMessagesProj/src/main/res/drawable-mdpi/input_calendar2.png index c582f03c37..7cf24f1988 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_calendar2.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_calendar2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_clear.png b/TMessagesProj/src/main/res/drawable-mdpi/input_clear.png index 54521055f4..0f267043ad 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_clear.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_done.png b/TMessagesProj/src/main/res/drawable-mdpi/input_done.png index 685914f922..f5396568f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_done.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_done.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_forward.png b/TMessagesProj/src/main/res/drawable-mdpi/input_forward.png index 1d2d109d82..8049c3fc58 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_forward.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_keyboard.png b/TMessagesProj/src/main/res/drawable-mdpi/input_keyboard.png index 1e23b72253..3bda68846b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_keyboard.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_keyboard.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_mic.png b/TMessagesProj/src/main/res/drawable-mdpi/input_mic.png index bf85b1e758..12aa039590 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_mic.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_mic.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_mic_pressed.png b/TMessagesProj/src/main/res/drawable-mdpi/input_mic_pressed.png index 4bf4fe5cc3..cd5478e23d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_mic_pressed.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_mic_pressed.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_notify_off.png b/TMessagesProj/src/main/res/drawable-mdpi/input_notify_off.png index 591c1bffd6..422070af95 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_notify_off.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_notify_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_notify_on.png b/TMessagesProj/src/main/res/drawable-mdpi/input_notify_on.png index 5afbfcc41b..09cebcaf5e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_notify_on.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_notify_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_reply.png b/TMessagesProj/src/main/res/drawable-mdpi/input_reply.png index 8a3bb8754e..237ef97642 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_reply.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_reply.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_schedule.png b/TMessagesProj/src/main/res/drawable-mdpi/input_schedule.png index 4a27f4e1de..f05f82cb24 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_schedule.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_schedule.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_smile.png b/TMessagesProj/src/main/res/drawable-mdpi/input_smile.png index 82ab6cdb17..a531c29602 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_smile.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_smile.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_video.png b/TMessagesProj/src/main/res/drawable-mdpi/input_video.png index 15a54b9e91..41096c1087 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_video.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_video_pressed.png b/TMessagesProj/src/main/res/drawable-mdpi/input_video_pressed.png index c1ee0765b2..4d2bc59465 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_video_pressed.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_video_pressed.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_video_story.png b/TMessagesProj/src/main/res/drawable-mdpi/input_video_story.png index d64b98a4b7..4abc66c0b7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_video_story.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_video_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/input_video_story_remove.png b/TMessagesProj/src/main/res/drawable-mdpi/input_video_story_remove.png index 8dc4d326de..9945bf48a8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/input_video_story_remove.png and b/TMessagesProj/src/main/res/drawable-mdpi/input_video_story_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/instant_camera.png b/TMessagesProj/src/main/res/drawable-mdpi/instant_camera.png old mode 100755 new mode 100644 index a130cc7307..3c329f8b81 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/instant_camera.png and b/TMessagesProj/src/main/res/drawable-mdpi/instant_camera.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_arrow.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_arrow.png old mode 100755 new mode 100644 index 8bb275018e..dcb7838987 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_arrow.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_arrow_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_arrow_shadow.png old mode 100755 new mode 100644 index 6a1548c3ff..24145e2bcb Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_arrow_shadow.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_arrow_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_body.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_body.png index 21d14b3f1c..6c8b01ef01 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_body.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_body.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_spiral.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_spiral.png old mode 100755 new mode 100644 index c7a82bf1b3..2b26538aa4 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_spiral.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_fast_spiral.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_bubble.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_bubble.png old mode 100755 new mode 100644 index b8a8e05007..f674938fd5 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_bubble.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_bubble.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_bubble_dot.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_bubble_dot.png old mode 100755 new mode 100644 index 05777def30..09e390b048 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_bubble_dot.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_bubble_dot.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_cam.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_cam.png old mode 100755 new mode 100644 index f4da301f18..2ea233e213 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_cam.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_cam.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_cam_lens.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_cam_lens.png old mode 100755 new mode 100644 index 4e954ccfa5..0a814375ef Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_cam_lens.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_cam_lens.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_pencil.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_pencil.png old mode 100755 new mode 100644 index a57d6143db..8e4d220daf Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_pencil.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_pencil.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_pin.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_pin.png old mode 100755 new mode 100644 index 092ec5c9fc..85f5d1f785 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_pin.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_smile.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_smile.png old mode 100755 new mode 100644 index 1105bbae5c..fc1067da90 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_smile.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_smile.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_smile_eye.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_smile_eye.png old mode 100755 new mode 100644 index 4065fd8ce8..d65745d6dd Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_smile_eye.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_smile_eye.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_videocam.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_videocam.png old mode 100755 new mode 100644 index 71ea9528ff..a33261da27 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_videocam.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_ic_videocam.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_knot_down.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_knot_down.png old mode 100755 new mode 100644 index 510701f604..504a5ad43b Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_knot_down.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_knot_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_knot_up.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_knot_up.png old mode 100755 new mode 100644 index 2062893c3d..6d2e9ed9af Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_knot_up.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_knot_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_infinity.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_infinity.png old mode 100755 new mode 100644 index 6952c47d92..ff888c93b3 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_infinity.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_infinity.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_infinity_white.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_infinity_white.png old mode 100755 new mode 100644 index 81f5983461..e2dcc542fc Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_infinity_white.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_infinity_white.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_mask.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_mask.png old mode 100755 new mode 100644 index e627a51b20..f0e6bce7b2 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_mask.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_mask.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_star.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_star.png old mode 100755 new mode 100644 index e5b9aac383..bdc411a068 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_star.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_powerful_star.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_private_door.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_private_door.png old mode 100755 new mode 100644 index 52a7fd4b4f..2d2455e690 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_private_door.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_private_door.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_private_screw.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_private_screw.png old mode 100755 new mode 100644 index 75993711a6..57296be2b8 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_private_screw.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_private_screw.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/intro_tg_plane.png b/TMessagesProj/src/main/res/drawable-mdpi/intro_tg_plane.png old mode 100755 new mode 100644 index 8822b3837d..a2b08d03dd Binary files a/TMessagesProj/src/main/res/drawable-mdpi/intro_tg_plane.png and b/TMessagesProj/src/main/res/drawable-mdpi/intro_tg_plane.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/knob_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/knob_shadow.png index 465978b9d6..7d268889f6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/knob_shadow.png and b/TMessagesProj/src/main/res/drawable-mdpi/knob_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_ads_info.png b/TMessagesProj/src/main/res/drawable-mdpi/large_ads_info.png index b9de77b6c8..1b8aa991b9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_ads_info.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_ads_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_archive.png b/TMessagesProj/src/main/res/drawable-mdpi/large_archive.png index 7808654aeb..4dc388f2fb 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_archive.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_away.png b/TMessagesProj/src/main/res/drawable-mdpi/large_away.png index 24f2a4377a..4d35b35500 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_away.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_away.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_boosts.png b/TMessagesProj/src/main/res/drawable-mdpi/large_boosts.png index fd7d4608d0..7e5a212355 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_boosts.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_boosts.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_greeting.png b/TMessagesProj/src/main/res/drawable-mdpi/large_greeting.png index 1bc565149d..2908c6e6e4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_greeting.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_greeting.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_hashtags.png b/TMessagesProj/src/main/res/drawable-mdpi/large_hashtags.png index e578a259df..52f63714e2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_hashtags.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_hashtags.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_hidden.png b/TMessagesProj/src/main/res/drawable-mdpi/large_hidden.png index 37acae5ab9..69d1f5a91b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_hidden.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_hidden.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_income.png b/TMessagesProj/src/main/res/drawable-mdpi/large_income.png index e94c34caad..9f1d141480 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_income.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_income.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_locked_post.png b/TMessagesProj/src/main/res/drawable-mdpi/large_locked_post.png index 7f021e2e96..3dd4df6e6d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_locked_post.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_locked_post.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_log_actions.png b/TMessagesProj/src/main/res/drawable-mdpi/large_log_actions.png index 41e266dd5c..c4c58b43e4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_log_actions.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_log_actions.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_message_lock.png b/TMessagesProj/src/main/res/drawable-mdpi/large_message_lock.png deleted file mode 100644 index 67cdc9a615..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_message_lock.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_monetize.png b/TMessagesProj/src/main/res/drawable-mdpi/large_monetize.png index f6974a9c5b..2eaca78412 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_monetize.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_monetize.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_notes.png b/TMessagesProj/src/main/res/drawable-mdpi/large_notes.png index d0adc95fd4..efd0659205 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_notes.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_notes.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_quickreplies.png b/TMessagesProj/src/main/res/drawable-mdpi/large_quickreplies.png index a4d1f4fe05..5935f5f2a6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_quickreplies.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_quickreplies.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_repost_story.png b/TMessagesProj/src/main/res/drawable-mdpi/large_repost_story.png index 07bb83dbb6..398787fc01 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_repost_story.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_repost_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_stealth.png b/TMessagesProj/src/main/res/drawable-mdpi/large_stealth.png index db311b22ad..027269d3a9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_stealth.png and b/TMessagesProj/src/main/res/drawable-mdpi/large_stealth.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/large_username.png b/TMessagesProj/src/main/res/drawable-mdpi/large_username.png deleted file mode 100644 index e95e34d28f..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/large_username.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/layer_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/layer_shadow.png index be5e51fe9c..68ab9c6ba6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/layer_shadow.png and b/TMessagesProj/src/main/res/drawable-mdpi/layer_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/left_status_profile.png b/TMessagesProj/src/main/res/drawable-mdpi/left_status_profile.png index 06e1b645d4..09e4306cf4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/left_status_profile.png and b/TMessagesProj/src/main/res/drawable-mdpi/left_status_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/list_check.png b/TMessagesProj/src/main/res/drawable-mdpi/list_check.png index 4200117124..984957256e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/list_check.png and b/TMessagesProj/src/main/res/drawable-mdpi/list_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/list_circle.png b/TMessagesProj/src/main/res/drawable-mdpi/list_circle.png old mode 100755 new mode 100644 index ef7069e559..36ad7426b7 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/list_circle.png and b/TMessagesProj/src/main/res/drawable-mdpi/list_circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/list_halfcheck.png b/TMessagesProj/src/main/res/drawable-mdpi/list_halfcheck.png index 5854a4a9dd..5632ad8392 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/list_halfcheck.png and b/TMessagesProj/src/main/res/drawable-mdpi/list_halfcheck.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/list_mute.png b/TMessagesProj/src/main/res/drawable-mdpi/list_mute.png index 8ccb01c1b7..eaac062a06 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/list_mute.png and b/TMessagesProj/src/main/res/drawable-mdpi/list_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/list_pin.png b/TMessagesProj/src/main/res/drawable-mdpi/list_pin.png index 26075d5fab..e228f2627d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/list_pin.png and b/TMessagesProj/src/main/res/drawable-mdpi/list_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/list_reorder.png b/TMessagesProj/src/main/res/drawable-mdpi/list_reorder.png index 64bb73c2be..78be71da38 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/list_reorder.png and b/TMessagesProj/src/main/res/drawable-mdpi/list_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/list_secret.png b/TMessagesProj/src/main/res/drawable-mdpi/list_secret.png old mode 100755 new mode 100644 index ff046cf73b..fd1b390f8b Binary files a/TMessagesProj/src/main/res/drawable-mdpi/list_secret.png and b/TMessagesProj/src/main/res/drawable-mdpi/list_secret.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/list_unmute.png b/TMessagesProj/src/main/res/drawable-mdpi/list_unmute.png index fa7fac92ee..0be8f1c7a7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/list_unmute.png and b/TMessagesProj/src/main/res/drawable-mdpi/list_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/list_warning_sign.png b/TMessagesProj/src/main/res/drawable-mdpi/list_warning_sign.png old mode 100755 new mode 100644 index 4c0839b9a3..1b00ab0e0d Binary files a/TMessagesProj/src/main/res/drawable-mdpi/list_warning_sign.png and b/TMessagesProj/src/main/res/drawable-mdpi/list_warning_sign.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/live_loc.png b/TMessagesProj/src/main/res/drawable-mdpi/live_loc.png index ae07b67a46..5400cfe003 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/live_loc.png and b/TMessagesProj/src/main/res/drawable-mdpi/live_loc.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/livepin.png b/TMessagesProj/src/main/res/drawable-mdpi/livepin.png index ace90aabb9..9637ef967a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/livepin.png and b/TMessagesProj/src/main/res/drawable-mdpi/livepin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/load_big.png b/TMessagesProj/src/main/res/drawable-mdpi/load_big.png old mode 100755 new mode 100644 index 10b4922aef..c132f35601 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/load_big.png and b/TMessagesProj/src/main/res/drawable-mdpi/load_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/location_empty.png b/TMessagesProj/src/main/res/drawable-mdpi/location_empty.png index 9409f64a98..a3122924ae 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/location_empty.png and b/TMessagesProj/src/main/res/drawable-mdpi/location_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/login_arrow1.png b/TMessagesProj/src/main/res/drawable-mdpi/login_arrow1.png index 73fba76eed..bbc7705a50 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/login_arrow1.png and b/TMessagesProj/src/main/res/drawable-mdpi/login_arrow1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/login_phone1.png b/TMessagesProj/src/main/res/drawable-mdpi/login_phone1.png index c1bbebf342..abfaaa138c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/login_phone1.png and b/TMessagesProj/src/main/res/drawable-mdpi/login_phone1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/logo_middle.png b/TMessagesProj/src/main/res/drawable-mdpi/logo_middle.png index fb126a8389..98e6ce5ea9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/logo_middle.png and b/TMessagesProj/src/main/res/drawable-mdpi/logo_middle.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/map_pin.png b/TMessagesProj/src/main/res/drawable-mdpi/map_pin.png index 67f418ee4e..7808c66533 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/map_pin.png and b/TMessagesProj/src/main/res/drawable-mdpi/map_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/map_pin2.png b/TMessagesProj/src/main/res/drawable-mdpi/map_pin2.png index b54ba74282..fc853a3af8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/map_pin2.png and b/TMessagesProj/src/main/res/drawable-mdpi/map_pin2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/map_pin_circle.png b/TMessagesProj/src/main/res/drawable-mdpi/map_pin_circle.png index 8791bd7654..d6cfc0795a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/map_pin_circle.png and b/TMessagesProj/src/main/res/drawable-mdpi/map_pin_circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/map_pin_cone2.png b/TMessagesProj/src/main/res/drawable-mdpi/map_pin_cone2.png index 2ad32c3a45..c0e78cf190 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/map_pin_cone2.png and b/TMessagesProj/src/main/res/drawable-mdpi/map_pin_cone2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/map_pin_photo.png b/TMessagesProj/src/main/res/drawable-mdpi/map_pin_photo.png index 5e58ff0f8f..bc5c8f3cad 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/map_pin_photo.png and b/TMessagesProj/src/main/res/drawable-mdpi/map_pin_photo.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_button_erase.png b/TMessagesProj/src/main/res/drawable-mdpi/media_button_erase.png index 569802025d..a9e3f5461b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_button_erase.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_button_erase.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_button_restore.png b/TMessagesProj/src/main/res/drawable-mdpi/media_button_restore.png index 1150e2b8bb..65e06d90ed 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_button_restore.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_button_restore.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_button_undo.png b/TMessagesProj/src/main/res/drawable-mdpi/media_button_undo.png deleted file mode 100644 index e27bdb34f1..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_button_undo.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_crop.png b/TMessagesProj/src/main/res/drawable-mdpi/media_crop.png index f3fccccccf..584dd1b63f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_crop.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_crop.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_blue.png b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_blue.png index 11c167e909..a9e5f2f539 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_blue.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_blue.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_blue_b.png b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_blue_b.png index 2672b05cb4..bdd5c8c40f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_blue_b.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_blue_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_green.png b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_green.png index ffbd82bea7..449ba1883a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_green.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_green.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_green_b.png b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_green_b.png index b9b0686d53..84988eaaf6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_green_b.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_green_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_red.png b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_red.png index 8697b8301a..1c305e0824 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_red.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_red.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_red_b.png b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_red_b.png index 069d42fc1d..527c84df45 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_red_b.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_red_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_yellow.png b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_yellow.png index de7c2a101a..3c0c04e14a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_yellow.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_yellow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_yellow_b.png b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_yellow_b.png index 2f910224da..ee62548c73 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_doc_yellow_b.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_doc_yellow_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_download.png b/TMessagesProj/src/main/res/drawable-mdpi/media_download.png index 527fbd6b0c..d36b81d024 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_download.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_download.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_draw.png b/TMessagesProj/src/main/res/drawable-mdpi/media_draw.png index e673622295..677c0200a2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_draw.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_draw.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_dual_camera2.png b/TMessagesProj/src/main/res/drawable-mdpi/media_dual_camera2.png index 4824024b4f..c768d958a8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_dual_camera2.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_dual_camera2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_dual_camera2_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/media_dual_camera2_shadow.png index 1fee07bb9a..43dd6b7954 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_dual_camera2_shadow.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_dual_camera2_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_flip.png b/TMessagesProj/src/main/res/drawable-mdpi/media_flip.png index 882a2f96de..8912ac8d7c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_flip.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_flip.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_like.png b/TMessagesProj/src/main/res/drawable-mdpi/media_like.png index 19d4006850..2fef370b15 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_like.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_like.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_like_active.png b/TMessagesProj/src/main/res/drawable-mdpi/media_like_active.png index 19f5d4702b..80d7e5dc5e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_like_active.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_like_active.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_magic_cut.png b/TMessagesProj/src/main/res/drawable-mdpi/media_magic_cut.png index 0e6e2748ae..55e2855d07 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_magic_cut.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_magic_cut.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_more.png b/TMessagesProj/src/main/res/drawable-mdpi/media_more.png index e60af13d9b..9279c497a1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_more.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_more.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_mute.png b/TMessagesProj/src/main/res/drawable-mdpi/media_mute.png index 6280bedd78..86ed6276ff 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_mute.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_photo_flash_auto2.png b/TMessagesProj/src/main/res/drawable-mdpi/media_photo_flash_auto2.png index 0d38e17582..fce98fe356 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_photo_flash_auto2.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_photo_flash_auto2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_photo_flash_off2.png b/TMessagesProj/src/main/res/drawable-mdpi/media_photo_flash_off2.png index 2e67eacbb9..51641c127a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_photo_flash_off2.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_photo_flash_off2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_photo_flash_on2.png b/TMessagesProj/src/main/res/drawable-mdpi/media_photo_flash_on2.png index b88532d51d..e87bb467c4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_photo_flash_on2.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_photo_flash_on2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_repost.png b/TMessagesProj/src/main/res/drawable-mdpi/media_repost.png index af6140b39a..a75fcf1de1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_repost.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_repost.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_settings.png b/TMessagesProj/src/main/res/drawable-mdpi/media_settings.png index 6f746da45a..6318969bca 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_settings.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_share.png b/TMessagesProj/src/main/res/drawable-mdpi/media_share.png index 9835d61431..8b0e57b311 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_share.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_sticker_stroke.png b/TMessagesProj/src/main/res/drawable-mdpi/media_sticker_stroke.png index c65e16cd03..22b2124b5b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_sticker_stroke.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_sticker_stroke.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/media_unmute.png b/TMessagesProj/src/main/res/drawable-mdpi/media_unmute.png index 0baa71cc27..ef9b3663b3 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/media_unmute.png and b/TMessagesProj/src/main/res/drawable-mdpi/media_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mentionbutton.png b/TMessagesProj/src/main/res/drawable-mdpi/mentionbutton.png index 0d6554425a..fa5033835a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mentionbutton.png and b/TMessagesProj/src/main/res/drawable-mdpi/mentionbutton.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mentionchatslist.png b/TMessagesProj/src/main/res/drawable-mdpi/mentionchatslist.png index 97a62ca51f..b060e7b869 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mentionchatslist.png and b/TMessagesProj/src/main/res/drawable-mdpi/mentionchatslist.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_birthday.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_birthday.png index 65912197d0..8e7a87aa64 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_birthday.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_birthday.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_arrowup.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_arrowup.png index d59fbee964..5bcd3ee67d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_arrowup.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_arrowup.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_bookmark.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_bookmark.png index c3c5cc552f..ebf0a1b3cc 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_bookmark.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_bookmark.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_bookmarks.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_bookmarks.png index c736d15760..edfd7cfc07 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_bookmarks.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_bookmarks.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_refresh.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_refresh.png index 6dfdfb7b6b..8e59f83dbb 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_refresh.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_refresh.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_search.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_search.png index 9fc5a3e132..11ffb77063 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_search.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_browser_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_cashtag.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_cashtag.png index 3f58e59d86..ae985143b3 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_cashtag.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_cashtag.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_cache.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_cache.png index a288790a9d..3d7e0edb8d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_cache.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_cache.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_cookies.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_cookies.png index eea1499b68..a451740a5c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_cookies.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_cookies.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_history.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_history.png index 30af26e26b..c9f5271875 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_history.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_history.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_recent.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_recent.png index da26d1e52b..c2bd016157 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_recent.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_clear_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_contact_existing.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_contact_existing.png index 47fa158003..860158d10b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_contact_existing.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_contact_existing.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_copy_s.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_copy_s.png index 73c8be7f13..ae524f8ce0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_copy_s.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_copy_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_cover_stories.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_cover_stories.png index b0fc834547..b0a13f51ad 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_cover_stories.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_cover_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_delete_old.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_delete_old.png index 2499f8ec06..5107681623 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_delete_old.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_delete_old.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_devices.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_devices.png index d2143f03a0..8f79325ee4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_devices.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_devices.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_edit_appearance.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_edit_appearance.png index cfe520dea0..cf7505f9ea 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_edit_appearance.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_edit_appearance.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_external_link.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_external_link.png index 742dbd18e2..21c0a84cae 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_external_link.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_external_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_factcheck.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_factcheck.png index 4e9d457eda..f3cceaf439 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_factcheck.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_factcheck.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_color_name.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_color_name.png index 49a4e707a1..f38b6ddb6c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_color_name.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_color_name.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_color_profile.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_color_profile.png index dd4933933f..043f21ba6b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_color_profile.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_color_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_cover.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_cover.png index b43120dda8..5b34bec43f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_cover.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_cover.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_cpm.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_cpm.png index 60ef9e761c..0651f79817 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_cpm.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_cpm.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_custombg.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_custombg.png index 9ab59e359b..ffcc9add68 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_custombg.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_custombg.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_intro.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_intro.png index c32c3ea254..07d71546ee 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_intro.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_links.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_links.png index b71a5e05a6..06a16b1221 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_links.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_links.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_links2.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_links2.png index 07e4e8b6fc..d3c6efb766 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_links2.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_links2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_noads.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_noads.png index 020884552c..5145a9c26d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_noads.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_noads.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_pack.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_pack.png index 0f5ccdeac7..c01cfab201 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_pack.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_pack.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_paid.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_paid.png index 399460c364..6ef65a3b6b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_paid.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_paid.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_reactions.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_reactions.png index 0952e8e4b8..61c5875bc8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_reactions.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_split.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_split.png index 6ccc644902..cf1eeb1a26 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_split.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_split.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_status.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_status.png index 3db161145a..da35fe0b98 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_status.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_stories.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_stories.png index aafa5eefa3..1be4ee1727 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_stories.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_translate.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_translate.png index b826994d50..350084b856 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_translate.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_translate.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_voice.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_voice.png index 694391b084..21b3088182 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_voice.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_wallpaper.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_wallpaper.png index 2c8208d3f6..ef551533e6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_wallpaper.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_wallpaper.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_withdrawals.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_withdrawals.png index 109cad9d64..afbea106b7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_withdrawals.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_feature_withdrawals.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_gift.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_gift.png index 02d9fa3e95..93da3fe04b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_gift.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_hashtag.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_hashtag.png index 07937ac3a9..01361649ff 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_hashtag.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_hashtag.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_instant_view.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_instant_view.png index bd03d366ba..dc315a8cff 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_instant_view.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_instant_view.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_intro.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_intro.png index 6072f66ee6..dede49fc9a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_intro.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_invit_telegram.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_invit_telegram.png index ebcc8b9b0a..bc7d1c3c2f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_invit_telegram.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_invit_telegram.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_link_create.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_link_create.png index e0c640c931..01a69e3210 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_link_create.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_link_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_away.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_away.png index 079d76e59a..8a7a002e51 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_away.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_away.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_chatbot.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_chatbot.png index 3e589d811c..3130040738 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_chatbot.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_chatbot.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_chatlink.png index e3b14ac852..91b312cd3c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_chatlink.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_clock.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_clock.png index bd30b23993..c5b9307df4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_clock.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_clock.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_clock_add.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_clock_add.png index 43be994a91..c5a492b799 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_clock_add.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_clock_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_effects.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_effects.png index 7fb66d1110..78f639bc9a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_effects.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_effects.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_location.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_location.png index da5b2418cd..10ad8a2e71 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_location.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_main.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_main.png index 0f578be0d3..df091805fe 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_main.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_main.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_privacy.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_privacy.png index d22ad8d29d..c50c494863 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_privacy.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_privacy.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_seen.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_seen.png index 5c767c0b16..6b97ae0029 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_seen.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_seen.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_tools.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_tools.png index 9635343325..4f24ee27a2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_tools.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_premium_tools.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_privacy.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_privacy.png index 6a811e964c..343ed7961a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_privacy.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_privacy.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_privacy_policy.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_privacy_policy.png index 231a7a401b..9f09574567 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_privacy_policy.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_privacy_policy.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_profile_colors.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_profile_colors.png index b31bdd94d9..5877192103 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_profile_colors.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_profile_colors.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_profile_colors_locked.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_profile_colors_locked.png index 2f1e76de4a..00a5f61dcd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_profile_colors_locked.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_profile_colors_locked.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_quality_hd.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_quality_hd.png index 79d0ad3417..5eaffb50ee 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_quality_hd.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_quality_hd.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_quality_hd2.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_quality_hd2.png index f8eb46600c..7bca3c8dd2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_quality_hd2.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_quality_hd2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_quality_sd.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_quality_sd.png index 425129fa9b..b24aad7807 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_quality_sd.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_quality_sd.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_quickreply.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_quickreply.png index 60d540bb0e..ecbe2ecd95 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_quickreply.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_quickreply.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_quote_delete.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_quote_delete.png index de19b60904..09efbf45c2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_quote_delete.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_quote_delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_quote_specific.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_quote_specific.png index e7474a5a39..135dffcd7e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_quote_specific.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_quote_specific.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_random.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_random.png new file mode 100644 index 0000000000..f4101823ab Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/menu_random.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_select_quote.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_select_quote.png index 8ecbb19f5f..ce127c5b35 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_select_quote.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_select_quote.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_shadow.png old mode 100755 new mode 100644 index f22b515da7..7cb3eb86d7 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_shadow.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_shop.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_shop.png index d36fb3e83d..5a11fc1bbe 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_shop.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_shop.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_stars_gift.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_stars_gift.png index 2d4a5a8571..784c0cf82a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_stars_gift.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_stars_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_sticker_add.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_sticker_add.png index 76cfaecb7b..87aa3a2005 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_sticker_add.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_sticker_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_sticker_select.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_sticker_select.png index 8066761027..abb9e79b67 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_sticker_select.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_sticker_select.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_storage_path.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_storage_path.png index 21d5bf31be..de02c1a3ee 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_storage_path.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_storage_path.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_delete.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_delete.png index 28c4aaad02..ed0b737ffd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_delete.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_edit.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_edit.png index aaca45a7b5..6018d0fe70 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_edit.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_filter.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_filter.png index 515dcdc988..b630f50cdf 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_filter.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_filter.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_plus.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_plus.png index adc388dbf4..8633a2b3b9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_plus.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_rename.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_rename.png index 0dbcde6a94..19852045bb 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_rename.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_tag_rename.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_unsave_story.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_unsave_story.png index 3312063fcc..1ab7208431 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_unsave_story.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_unsave_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_username_change.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_username_change.png index 3d7bfda3e5..9c3e29b688 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_username_change.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_username_change.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_username_set.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_username_set.png index 0c9abc3216..367423de25 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_username_set.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_username_set.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reactions.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reactions.png index 6a17ae52ed..c44c2fdabc 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reactions.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reactions2.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reactions2.png index 502e3ec436..0eeaef25a4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reactions2.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reactions2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reactions3.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reactions3.png index d6e756f11c..51de4448b2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reactions3.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reactions3.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_recent.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_recent.png index 69f3f2a062..725b04e59f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_recent.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_recent2.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_recent2.png index ddda6321a6..60c0e793ad 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_recent2.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_recent2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_recent3.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_recent3.png index dd76255955..a3edd03c3a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_recent3.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_recent3.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reposts.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reposts.png index 2cecdc8566..19cba24490 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reposts.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reposts.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reposts3.png b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reposts3.png index e8c64ff626..fb77cb77c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reposts3.png and b/TMessagesProj/src/main/res/drawable-mdpi/menu_views_reposts3.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/message_arrow.png b/TMessagesProj/src/main/res/drawable-mdpi/message_arrow.png old mode 100755 new mode 100644 index 19264a870c..61ec008b99 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/message_arrow.png and b/TMessagesProj/src/main/res/drawable-mdpi/message_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_badge.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_badge.png index b111598280..c6ef40bafc 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_badge.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_badge.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_button.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_button.png index ac0461a648..62203f89a6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_button.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_button.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_profile_badge.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_profile_badge.png index 493feba1f5..7c6a3c8b2e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_profile_badge.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_profile_badge.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_profile_badge2.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_profile_badge2.png index 334ef6cdf1..23ef535e51 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_profile_badge2.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_profile_badge2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_remove.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_remove.png index c04306002b..7af9e46b26 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_remove.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_boost_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_browser_iv.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_browser_iv.png new file mode 100644 index 0000000000..0a39e46f53 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/mini_browser_iv.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_external_link.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_external_link.png index 40a565a7ae..eb6ed28f0b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_external_link.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_external_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_forward_story.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_forward_story.png index a871596cfd..0ba4ba2ee0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_forward_story.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_forward_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_forwarded.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_forwarded.png index ef1015cda7..f63d25cf32 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_forwarded.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_forwarded.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_gift.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_gift.png index 8fe56b4675..d4cecc5f71 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_gift.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_giveaway.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_giveaway.png index 9a37d58c8e..3dcf94dcfe 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_giveaway.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_giveaway.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_like_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_like_filled.png index 10bf679ffe..221d622898 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_like_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_like_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_more_dots.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_more_dots.png index c9bf1221e0..9ef114e482 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_more_dots.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_more_dots.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_quote.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_quote.png index d67840d3c6..7f7a0548bd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_quote.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_quote.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_reply_user.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_reply_user.png index 33d004f948..8f19bfdfcc 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_reply_user.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_reply_user.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_repost_story.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_repost_story.png index 14365619c2..8f132371d5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_repost_story.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_repost_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_repost_story2.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_repost_story2.png index df8e932c5e..e4020ec133 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_repost_story2.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_repost_story2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_stats_likes.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_stats_likes.png index 29916aec8e..f52e5a861e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_stats_likes.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_stats_likes.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_stats_shares.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_stats_shares.png index efa599654f..59f469c7ee 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_stats_shares.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_stats_shares.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_switch_lock.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_switch_lock.png index dff98af839..07dae9d79d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_switch_lock.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_switch_lock.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_ton.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_ton.png index 49bd35c279..1e75a8d1b8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_ton.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_ton.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_viewonce.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_viewonce.png index 02e6db33ac..23fbaa93be 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_viewonce.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_viewonce.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/mini_views_likes.png b/TMessagesProj/src/main/res/drawable-mdpi/mini_views_likes.png index d22e53988f..e4e336c19b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/mini_views_likes.png and b/TMessagesProj/src/main/res/drawable-mdpi/mini_views_likes.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/minibubble_in.png b/TMessagesProj/src/main/res/drawable-mdpi/minibubble_in.png index 87e3a8a2b6..b88e3834e6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/minibubble_in.png and b/TMessagesProj/src/main/res/drawable-mdpi/minibubble_in.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/minibubble_out.png b/TMessagesProj/src/main/res/drawable-mdpi/minibubble_out.png index 9d8abf57d7..949662a61a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/minibubble_out.png and b/TMessagesProj/src/main/res/drawable-mdpi/minibubble_out.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/miniplayer_close.png b/TMessagesProj/src/main/res/drawable-mdpi/miniplayer_close.png index 1880618d35..721ecff291 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/miniplayer_close.png and b/TMessagesProj/src/main/res/drawable-mdpi/miniplayer_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/minithumb_play.png b/TMessagesProj/src/main/res/drawable-mdpi/minithumb_play.png index 6b9d14faba..0205a8a7d1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/minithumb_play.png and b/TMessagesProj/src/main/res/drawable-mdpi/minithumb_play.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_animations.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_animations.png index c9ae6e7814..3f8893614b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_animations.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_animations.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_archived_stickers.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_archived_stickers.png index 256269b602..125d5e996b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_archived_stickers.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_archived_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_ask_question.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_ask_question.png index 9aae4dbcc4..515c96fd4f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_ask_question.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_ask_question.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_autodelete.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_autodelete.png index 702b02d54b..c957bf96b0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_autodelete.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_autodelete.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_battery.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_battery.png index 1154dfa62b..a5eeceec37 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_battery.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_battery.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_block2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_block2.png index 16eeb64f5a..1839877693 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_block2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_block2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_call_earpiece.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_call_earpiece.png index b295f1bab2..91844bd434 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_call_earpiece.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_call_earpiece.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_chats_add.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_chats_add.png index 4a36dddbe1..534e91a871 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_chats_add.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_chats_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_data.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_data.png index 923e527029..91df2c98ac 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_data.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_data.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_devices.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_devices.png index ad06587352..a3a413aec1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_devices.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_devices.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_discussion.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_discussion.png index deb54d6983..f7caea21c6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_discussion.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_discussion.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_email.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_email.png index 5bcf413fc6..235b2da7bc 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_email.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_email.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_folder.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_folder.png index 458459abfe..678bbbc938 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_folder.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_gif.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_gif.png index ed7bed0e1f..aea76cd914 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_gif.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_gif.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_help.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_help.png index 48e16ccb72..ec64b80222 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_help.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_help.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_language.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_language.png index 29ceec54a6..9b2db6a0ce 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_language.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_language.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_link2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_link2.png index 60f5659574..476479e37d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_link2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_link2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_night_auto.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_night_auto.png index bd72aa392c..a6ba41c9ea 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_night_auto.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_night_auto.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_notifications.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_notifications.png index 01484cca06..0dd99ee456 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_notifications.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_notifications.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_permissions.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_permissions.png index 43ec6cde81..718c69d0fd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_permissions.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_permissions.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_policy.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_policy.png index 0859c7dcf5..e268cf0e8e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_policy.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_policy.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_proxy_off.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_proxy_off.png index e9b7691a1e..66e7f40ece 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_proxy_off.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_proxy_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_proxy_on.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_proxy_on.png index 75ccd6e480..2c3f412cbf 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_proxy_on.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_proxy_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_reactions2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_reactions2.png index 0ba486f2e1..d0dafd53f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_reactions2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_reactions2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_secret.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_secret.png index 207f3f861d..e6cf06d611 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_secret.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_secret.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_smile_status.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_smile_status.png index 0b300dc820..b99059124d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_smile_status.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_smile_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_sticker.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_sticker.png index 6b335d0ee5..5545519426 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_sticker.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_trending.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_trending.png index 095a39da70..fed1caa8d9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_trending.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_trending.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg2_videocall.png b/TMessagesProj/src/main/res/drawable-mdpi/msg2_videocall.png index 9f9af2dbb1..51af6f22d1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg2_videocall.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg2_videocall.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_actions.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_actions.png old mode 100755 new mode 100644 index 6dda25d243..6bc526dea7 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_actions.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_actions.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_add.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_add.png index 40963359e4..0bbd428d08 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_add.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_addbio.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_addbio.png index a933079278..4d61b90c10 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_addbio.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_addbio.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_addbot.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_addbot.png index 9d93367cf6..96c2eca0e5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_addbot.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_addbot.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_addcontact.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_addcontact.png index 5c1cdbeadd..435cff3477 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_addcontact.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_addcontact.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_addfolder.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_addfolder.png index 7af3678bd9..e450a1d397 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_addfolder.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_addfolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_addphoto.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_addphoto.png index d73fe16545..a8921ed9ef 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_addphoto.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_addphoto.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_admin_add.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_admin_add.png index a05a756a53..ed670face2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_admin_add.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_admin_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_admins.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_admins.png index 37ac7952b7..9b8c38554a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_admins.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_admins.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_allowspeak.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_allowspeak.png index 719315207d..f1fd74c8f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_allowspeak.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_allowspeak.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_archive.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_archive.png index fe2f84768e..7f981d8d5f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_archive.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_archive.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_archive.png index bba37cb1c0..a5a2f0a69b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_archive.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_hide.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_hide.png index 1714a7de1f..41ae09312e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_hide.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_hide.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_show.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_show.png index 4928d6c83c..7c68f3db28 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_show.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_show.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_stories.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_stories.png index 3d4c5de686..a78f0f9338 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_stories.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_archive_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_arrow_avatar.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_arrow_avatar.png index 9ec75ce9d0..ce642694fe 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_arrow_avatar.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_arrow_avatar.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_arrow_back.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_arrow_back.png index 683e020929..53ebd2ec84 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_arrow_back.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_arrow_back.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_arrow_forward.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_arrow_forward.png index ae0315aceb..7b90cb5035 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_arrow_forward.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_arrow_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_arrowright.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_arrowright.png index 5bcad55a52..ea66216dc4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_arrowright.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_arrowright.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete.png index e5da19b865..d1ca24359b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_1d.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_1d.png index 5ae1da8c78..dc91a1854e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_1d.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_1d.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_1m.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_1m.png index e9f49e51f4..48ea0db77c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_1m.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_1m.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_1w.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_1w.png index 3447cc773f..a5c6c5c3dd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_1w.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_1w.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_2d.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_2d.png index f7922ebc3a..4e4be98bc5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_2d.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_2d.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_badge2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_badge2.png index a1ea8118a5..ce48fab473 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_badge2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_autodelete_badge2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_background.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_background.png index 700c85553f..164e5bb19e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_background.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_background.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_block.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_block.png index b3e24f1e81..2c97a69a62 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_block.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_block.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_block2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_block2.png index 33b4c641a2..38daa956bb 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_block2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_block2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_blur_linear.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_blur_linear.png index ca451ffef9..664428704a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_blur_linear.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_blur_linear.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_blur_off.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_blur_off.png index 2b30b4d3bc..1710e0ea55 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_blur_off.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_blur_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_blur_radial.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_blur_radial.png index af45ee3fd0..9d5aaf30a1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_blur_radial.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_blur_radial.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_bot.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_bot.png index a76e39048d..5673fb2528 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_bot.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_bot.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_bots.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_bots.png index 68bdc04d89..5523307430 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_bots.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_brightness_high.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_brightness_high.png index cf60dc79f9..1e0959571d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_brightness_high.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_brightness_high.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_brightness_low.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_brightness_low.png index 4c05413320..77c847c93c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_brightness_low.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_brightness_low.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_calendar.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_calendar.png index 667230535e..2d98f2bc49 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_calendar.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_calendar.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_calendar2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_calendar2.png index 4d98650b3f..07372e429d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_calendar2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_calendar2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_call_bluetooth.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_call_bluetooth.png index dae338222d..4f7aefd6b8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_call_bluetooth.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_call_bluetooth.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_call_earpiece.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_call_earpiece.png index c4ed82f919..9a6b3d0a63 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_call_earpiece.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_call_earpiece.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_call_minimize.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_call_minimize.png index c1a2ff8c95..6800f7766b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_call_minimize.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_call_minimize.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_call_minimize_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_call_minimize_shadow.png index 3075eb64f6..612788b159 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_call_minimize_shadow.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_call_minimize_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_call_speaker.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_call_speaker.png index 8a16c35f2d..ed9b7752cd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_call_speaker.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_call_speaker.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_callback.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_callback.png index e786dfa03d..fb2e17d1ee 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_callback.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_callback.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_calls.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_calls.png index 7e17192bee..9bd51f7b06 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_calls.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_calls.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_14.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_14.png index 3fd9a07db1..ef03d36e61 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_14.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_hw.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_hw.png index 11932f1074..4598372067 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_hw.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_minimize.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_minimize.png index 3093fde145..f5e32e2bf5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_minimize.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_minimize.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_ny.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_ny.png index 3116370f7f..9cb9757524 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_ny.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_regular.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_regular.png index f69fdb61f9..862960db2f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_regular.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_calls_regular.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_camera.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_camera.png index 158fddd8bc..cc07a5276c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_camera.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_camera.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_cancel.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_cancel.png index 904c0f9250..dc311f059c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_cancel.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_cancel.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_channel.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_channel.png index 0df25a1f25..590e7d2349 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_channel.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_channel.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_channel_create.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_channel_create.png index 9b5a168160..f09d2d14f7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_channel_create.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_channel_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_chats_remove.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_chats_remove.png index dec8fd51a1..185cd4bec7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_chats_remove.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_chats_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_check_s.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_check_s.png index 75b40f5c79..507f8d5539 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_check_s.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_check_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_clear.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_clear.png index 528881811c..12c9fc7a8d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_clear.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_clear_input.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_clear_input.png index c575f7c908..8fa4b77e12 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_clear_input.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_clear_input.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_clear_recent.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_clear_recent.png index f3ac618248..a2776ee0f5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_clear_recent.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_clear_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_clearcache.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_clearcache.png index 17737dacda..9baca34843 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_clearcache.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_clearcache.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_close.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_close.png index f2d0bc01df..c2164aa059 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_close.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_colors.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_colors.png index ef7645b451..f487886b3f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_colors.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_colors.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_contact.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_contact.png old mode 100755 new mode 100644 index 534467d936..594b1fdc9b Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_contact.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_contact.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_contact_add.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_contact_add.png index ce4c815744..22749db83d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_contact_add.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_contact_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts.png index 66ef892210..10cb29411f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_14.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_14.png index 59d8811270..c0107a2839 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_14.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_hw.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_hw.png index f5f1107340..a8d5987632 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_hw.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_name.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_name.png index c45bf3f8a2..6a0f14fd9d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_name.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_name.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_ny.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_ny.png index 963bf11cef..28f0611e5c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_ny.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_time.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_time.png index cbdd98e3ca..2b6488ad75 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_time.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_contacts_time.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_copy.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_copy.png index 2509826a82..676ced36a5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_copy.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_copy.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_copy_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_copy_filled.png index 149942a86f..ed1d6d39ed 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_copy_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_copy_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_current_location.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_current_location.png index 4706cc612a..b933a3fe15 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_current_location.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_current_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_customize.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_customize.png index 744313cd2d..602f2ddc99 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_customize.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_customize.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_customize_s.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_customize_s.png index 95fd2bd4fa..46982c5ec0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_customize_s.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_customize_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_delete.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_delete.png index 569da93099..3de3ae7893 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_delete.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_delete_auto.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_delete_auto.png index 15070643bc..b3928a27f0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_delete_auto.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_delete_auto.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_delete_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_delete_filled.png index 6750c87fc0..e1e7bbbabf 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_delete_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_delete_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_disable.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_disable.png index 079b57fb8b..9a0ea29e63 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_disable.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_disable.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_discuss.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_discuss.png index 229c42f1c4..ceae17aed4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_discuss.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_discuss.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_discussion.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_discussion.png index 5cfe93e8a6..0bc9b2153e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_discussion.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_discussion.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_download.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_download.png index e223f0d66e..cde93e5e6a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_download.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_download.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_download_settings.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_download_settings.png index 2f3c231aee..1981409ba1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_download_settings.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_download_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_edit.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_edit.png index 1b45d8cbe7..d2ba2e419e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_edit.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_activities.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_activities.png index 6a118c73e7..2d00c631a8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_activities.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_activities.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_cat.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_cat.png index 47f2aa4fd9..aac49528b8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_cat.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_cat.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_flags.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_flags.png index bf5a5e34d6..b4bcf9dafe 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_flags.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_flags.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_food.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_food.png index 2924d3d8a9..5b47a9d9a8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_food.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_food.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_objects.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_objects.png index bd82687395..0e00ffce15 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_objects.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_objects.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_other.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_other.png index bb598d3175..789a70cc99 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_other.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_question.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_question.png index 66685630d1..79047788d6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_question.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_question.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_recent.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_recent.png index 63618f5c07..99d963192b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_recent.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_smiles.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_smiles.png index ec3e4985c2..4768084627 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_smiles.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_smiles.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_stickers.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_stickers.png index daa3f215e5..5264c34c86 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_stickers.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_travel.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_travel.png index 64bc433264..de8d2bffd3 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_travel.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_emoji_travel.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_endcall.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_endcall.png index 52f55e0260..e72aab95ab 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_endcall.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_endcall.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_expand.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_expand.png index 9e82c5b798..8afe004af2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_expand.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_fave.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_fave.png index 5b334ee50c..3fd7c32f5a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_fave.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_fave.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filehq.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filehq.png index 7f3fd239a9..ed49bc7bca 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filehq.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filehq.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_blocked.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_blocked.png index c26c84d67c..e402f22e32 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_blocked.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_blocked.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_calls.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_calls.png index ebd73c3bb2..878e2b34d5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_calls.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_calls.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_files.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_files.png index 88e155d3dc..ba4187bf5f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_files.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_files.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_messages.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_messages.png index 51ed58fc9e..9e3442a6e6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_messages.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_messages.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_music.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_music.png index cf0f6d5ee4..c21589a5bd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_music.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_photos.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_photos.png index 03a9d7bebd..bd9481d498 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_photos.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_photos.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_received.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_received.png index 348a364606..4e7299fd58 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_received.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_received.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_sent.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_sent.png index f03c8cd983..20122c642a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_sent.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_sent.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_videos.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_videos.png index e68b58bf20..6569432f9e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_videos.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_videos.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_voice.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_voice.png index eec3fbf10a..967d08b4da 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_voice.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_data_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_datausage.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_datausage.png index 8f40261639..8ca2ce5399 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_datausage.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_datausage.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_general.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_general.png index 4ad17a35e8..afb7049271 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_general.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_general.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_general_large.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_general_large.png index 5b3f69e71d..3b16906f7f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_general_large.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_general_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_lockedrecord.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_lockedrecord.png index 4b36baf403..209d0e5da7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_lockedrecord.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_lockedrecord.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_menu_channels.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_menu_channels.png index 72638acefa..d1262dd559 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_menu_channels.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_menu_channels.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_menu_groups.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_menu_groups.png index dc30171351..b355c6780a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_menu_groups.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_menu_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_menu_users.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_menu_users.png index 756ee412a3..653135d6fd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_menu_users.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_menu_users.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_plus.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_plus.png index 960dd89153..5ef8abe0fc 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_plus.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_sdcard.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_sdcard.png index 80b7d06c49..c2ca51cbbe 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_sdcard.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_sdcard.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_shareout.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_shareout.png index d05f969e99..9985168b9c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_shareout.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_shareout.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_storageusage.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_storageusage.png index c4a0bf9ba4..9fe2159c11 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_storageusage.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_storageusage.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_stories.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_stories.png index 79311e37b3..ee476d259d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_stories.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_unlockedrecord.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_unlockedrecord.png index 4c46b827d9..8b98e1e5a2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_unlockedrecord.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_filled_unlockedrecord.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders.png index 850035ca77..e3e10c8bfd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_archive.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_archive.png index 586f4f385d..d2e188eb14 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_archive.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_bots.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_bots.png index 7225b288d7..cb962e9432 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_bots.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_channels.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_channels.png index 106a21fe3d..0598b3a466 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_channels.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_channels.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_groups.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_groups.png index acb6cdd047..439c49a32b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_groups.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_muted.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_muted.png index 73cbccf35f..d3eb445c32 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_muted.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_private.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_private.png index 660c678b4c..1cf4c8fc38 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_private.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_private.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_read.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_read.png index e02aeb1a7b..606238db36 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_read.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_read.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_requests.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_requests.png index bdf643d7e3..0886b3346f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_requests.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_folders_requests.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 f98cecc73d..8bee3f6a17 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_forward_replace.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_forward_replace.png index 888952ba72..b77104fa69 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_forward_replace.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_forward_replace.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_gallery.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_gallery.png index 5afebfdc47..b3b530fdf0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_gallery.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_gallery.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_gallery_locked1.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_gallery_locked1.png index 4d73ed812c..2d7f6afe8a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_gallery_locked1.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_gallery_locked1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_gallery_locked2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_gallery_locked2.png index 2828a543df..3daa1e3787 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_gallery_locked2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_gallery_locked2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_gif.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_gif.png index d3439c1e0a..790ec808ff 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_gif.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_gif.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_gif_add.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_gif_add.png index c098fde5c1..8013c06c0d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_gif_add.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_gif_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_gift_premium.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_gift_premium.png index 2a8a55403d..a04e1c3ade 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_gift_premium.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_gift_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_go_down.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_go_down.png index ff04fa67bd..4200932aa0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_go_down.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_go_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_go_up.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_go_up.png index 8e5fb1a541..29c7f1195f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_go_up.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_go_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_groups.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_groups.png index f52e63a986..3fa06052e6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_groups.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_14.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_14.png index 1928557da0..a4f1d421c1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_14.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_create.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_create.png index 5f3a0d349d..f992170f15 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_create.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_hw.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_hw.png index f12041c199..3e94c6b990 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_hw.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_ny.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_ny.png index 02d401fe7d..caead18353 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_ny.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_groups_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_halfcheck.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_halfcheck.png index 5fe8229f7a..b565128e55 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_halfcheck.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_halfcheck.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_halfcheck_s.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_halfcheck_s.png index 312f1a132e..e5313e4303 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_halfcheck_s.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_halfcheck_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_handdown.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_handdown.png index 055c3ef81a..c187a94d40 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_handdown.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_handdown.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_header_draw.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_header_draw.png index d8de5cc1eb..857ac125a2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_header_draw.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_header_draw.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_header_share.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_header_share.png index d5bdcb92a3..c33a946b4c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_header_share.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_header_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_help.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_help.png index 2995931b7e..2d60a7abf6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_help.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_help.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_help_hw.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_help_hw.png index db6825f850..98628131a3 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_help_hw.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_help_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_help_ny.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_help_ny.png index b926e87b0d..9052b27505 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_help_ny.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_help_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_home.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_home.png index 99ef999f74..e9dd3a0ed4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_home.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_home.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_hybrid.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_hybrid.png index a1272439fe..af6d9e20c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_hybrid.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_hybrid.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_info.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_info.png index 99b1b458c8..13519f6f5a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_info.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_input_attach2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_input_attach2.png index 53ed2045b0..0ff3f230df 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_input_attach2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_input_attach2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_input_gift.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_input_gift.png index 9ef3bb75cd..d2c821d722 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_input_gift.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_input_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_input_like.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_input_like.png index 5ec07c6562..2db3be8486 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_input_like.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_input_like.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_input_send_mini.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_input_send_mini.png index 32b576207f..3b47a1b97f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_input_send_mini.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_input_send_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_inputarrow.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_inputarrow.png index 1ba9376cd1..84812a3e58 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_inputarrow.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_inputarrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_instant.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_instant.png old mode 100755 new mode 100644 index c5d1a41a91..9d67ea980f Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_instant.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_instant.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_instant_link.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_instant_link.png index c3247285ca..e3b1732edf 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_instant_link.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_instant_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_invite.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_invite.png index 3da8bb1fd6..b275843dd1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_invite.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_invite.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_invite_hw.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_invite_hw.png index e81e59267a..1096fbe0e9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_invite_hw.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_invite_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_invite_ny.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_invite_ny.png index b6e3743c7b..dae1d603b1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_invite_ny.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_invite_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_invited.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_invited.png index 707886bff6..b8283418d8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_invited.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_invited.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_jobtitle.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_jobtitle.png index 913fb6f141..2aae272596 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_jobtitle.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_jobtitle.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_language.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_language.png index c20221cc53..6d9d5e4cff 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_language.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_language.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_leave.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_leave.png index 24542b472d..b84b595dd7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_leave.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_leave.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_accounts.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_accounts.png index 660c678b4c..1cf4c8fc38 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_accounts.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_accounts.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_chats.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_chats.png index 296ffe919f..0dc68633f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_chats.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_chats.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_folder.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_folder.png index 4533dd4d3d..5fe6d1f201 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_folder.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_groups.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_groups.png index de447a519b..d590596b68 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_groups.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_links.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_links.png index 433760a7a3..4fbff23a46 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_links.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_links.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_pin.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_pin.png index f9d7608680..c45e22767d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_pin.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_stories.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_stories.png index 09730116c4..3515e6cbd4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_stories.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_limit_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_link.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_link.png index 640edac801..ba4f90179a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_link.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_link2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_link2.png index d25db6eaab..fa19b62614 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_link2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_link2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_link_1.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_link_1.png index faba339b98..36c3173957 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_link_1.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_link_1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_link_2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_link_2.png index 6f4b1c8130..d080bd6681 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_link_2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_link_2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_link_folder.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_link_folder.png index 0bd4896d08..254ab7395a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_link_folder.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_link_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_list.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_list.png index 1f42b7f7bb..4d4e4d60b3 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_list.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_list.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_location.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_location.png index 9775374d5f..fa31cc87e9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_location.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_location_alert.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_location_alert.png index fb743b0345..92d9c5ba0d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_location_alert.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_location_alert.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_location_alert2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_location_alert2.png index 3942951baf..41e772310b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_location_alert2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_location_alert2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_log.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_log.png index 33fb5c9ae9..8d15775aee 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_log.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_log.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_map.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_map.png index caedc4d8a7..787b32d54e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_map.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_map.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_map_type.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_map_type.png index c55827661a..8855b3cfec 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_map_type.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_map_type.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_markread.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_markread.png index 08019c53d1..f4fa920504 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_markread.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_markread.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_markunread.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_markunread.png index c39fba2283..4e13004554 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_markunread.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_markunread.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mask.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mask.png index bf2934aeae..88ddd7710b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mask.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mask.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_maxvideo.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_maxvideo.png index c25a69afa6..a88e761733 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_maxvideo.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_maxvideo.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_media.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_media.png index b7d1abb2f3..1644b21b5e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_media.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_media.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_members_list2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_members_list2.png index 5345bb2518..a8856787cf 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_members_list2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_members_list2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mention.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mention.png index 4a3c7d882f..5547db2c54 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mention.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mention.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_menu_stories.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_menu_stories.png index be4cd195a5..be25656870 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_menu_stories.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_menu_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_message.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_message.png index 5bd4299560..a1ba0e824c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_message.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_message.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_message_s.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_message_s.png index 7b991cbcd1..138e182004 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_message_s.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_message_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_addemoji.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_addemoji.png index 95e1fddc95..f44ad697c2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_addemoji.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_addemoji.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_addstory.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_addstory.png index bd702849ac..5e9ecedb75 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_addstory.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_addstory.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_arrow_mediabold.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_arrow_mediabold.png index 27b56ebb62..fd2aa1ebbc 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_arrow_mediabold.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_arrow_mediabold.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_arrow_mediathin.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_arrow_mediathin.png index 8f97d68d31..1b90f8d90f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_arrow_mediathin.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_arrow_mediathin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_autodelete.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_autodelete.png index 9d5689ce41..89831904b3 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_autodelete.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_autodelete.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_autodelete_empty.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_autodelete_empty.png index 6af06598f0..ea0dee1142 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_autodelete_empty.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_autodelete_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_autodelete_timer.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_autodelete_timer.png index 7e177ecf1f..39b35bcaa7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_autodelete_timer.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_autodelete_timer.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_bomb.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_bomb.png index c7e60ce192..5c7e09c750 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_bomb.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_bomb.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_checks.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_checks.png index e9aa7fea47..b2f6f2a7e2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_checks.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_checks.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_close_tooltip.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_close_tooltip.png index ee9ec1a15e..5c42199892 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_close_tooltip.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_close_tooltip.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_closefriends.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_closefriends.png index db7f1f0005..479fb8a384 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_closefriends.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_closefriends.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_customize.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_customize.png index 895a36c9fa..f5a168ce37 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_customize.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_customize.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_download.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_download.png index fd404abd4a..8f2b4d56fd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_download.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_download.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_fireoff.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_fireoff.png index e55da14104..869849e55d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_fireoff.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_fireoff.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_fireon.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_fireon.png index 68ded11f2a..7992bf7cef 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_fireon.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_fireon.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_forumarrow.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_forumarrow.png index dda06da60e..526cf1cf02 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_forumarrow.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_forumarrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_lock2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_lock2.png index 029a8f8054..3e0ce3f4ec 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_lock2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_lock2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_lock3.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_lock3.png index 4d562a90aa..ad7f7a5ad8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_lock3.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_lock3.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_lockedemoji.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_lockedemoji.png index 42bbc9d84b..b9a9e8396b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_lockedemoji.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_lockedemoji.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_premiumlock.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_premiumlock.png index cb32e03ac9..d46f81ab51 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_premiumlock.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_premiumlock.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_qr.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_qr.png index 0679eb4643..7c07adc6de 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_qr.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_qr.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_replystory.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_replystory.png index 8617750dc5..304b7fd04b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_replystory.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_replystory.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_replystory2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_replystory2.png index cecd2fc580..14b9673504 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_replystory2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_replystory2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_stickerstar.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_stickerstar.png index 6e5c81323a..53cf99e200 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_stickerstar.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_stickerstar.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_topicarrow.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_topicarrow.png index 2a4f18e446..fb7124859a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_topicarrow.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_topicarrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_upload.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_upload.png index 2f82a04d2c..742cf9ff60 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_upload.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mini_upload.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_minvideo.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_minvideo.png index 7ffaff9f52..5b8d9cd028 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_minvideo.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_minvideo.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_msgbubble.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_msgbubble.png index 8b8c946066..4f9dfd9df7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_msgbubble.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_msgbubble.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_msgbubble2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_msgbubble2.png index 62647170c4..d15352840e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_msgbubble2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_msgbubble2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_msgbubble3.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_msgbubble3.png index 8eca937237..0d0c724623 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_msgbubble3.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_msgbubble3.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mute.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mute.png index ad16e80d6c..d682c49333 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mute.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mute_1h.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mute_1h.png index 0fa0e550f0..ae3b64e5e3 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mute_1h.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mute_1h.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_mute_period.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_mute_period.png index 6d41cc8092..3a5d160789 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_mute_period.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_mute_period.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_nearby.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_nearby.png deleted file mode 100644 index c8c42b75dc..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_nearby.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_nearby_ny.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_nearby_ny.png deleted file mode 100644 index 8c1fefedaf..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_nearby_ny.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_newphone.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_newphone.png index 176d646adf..a3b48c101a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_newphone.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_newphone.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_noise_off.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_noise_off.png index ff4cd89a11..0615fa8eb1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_noise_off.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_noise_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_noise_on.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_noise_on.png index 079de54235..53be71ff6d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_noise_on.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_noise_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_notifications.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_notifications.png index d50b2bf7d9..6bf5a5d1ae 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_notifications.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_notifications.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_notspam.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_notspam.png index 350553deb9..3b7fc2e95a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_notspam.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_notspam.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_online.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_online.png index 9e3e22f417..3d4234edb1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_online.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_online.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_openin.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_openin.png index b8b5698d7a..e3fc7e8eb7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_openin.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_openin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_openprofile.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_openprofile.png index 8ba236a82b..4ffdbbd5e0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_openprofile.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_openprofile.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_other_new_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_other_new_filled.png index 8a546ef95f..4d2df5f8bf 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_other_new_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_other_new_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_other_new_filled_text.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_other_new_filled_text.png index 0f62d8cca1..e239f6b9de 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_other_new_filled_text.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_other_new_filled_text.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_other_new_outline.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_other_new_outline.png index 2851a88ce0..eaa247b530 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_other_new_outline.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_other_new_outline.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_palette.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_palette.png index a0e85cf733..c1bb7cee86 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_palette.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_palette.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_panel_clear.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_panel_clear.png old mode 100755 new mode 100644 index a7f343f93e..36f42a9465 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_panel_clear.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_panel_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_address.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_address.png index 9a3cd95a69..7492bd7059 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_address.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_address.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_card.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_card.png index 700ee4817f..8cf1798e19 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_card.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_card.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_delivery.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_delivery.png index 28baa86725..88f4b6dea9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_delivery.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_delivery.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_provider.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_provider.png index 92404b0f79..250812c703 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_provider.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_payment_provider.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_permissions.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_permissions.png index f1742a9f87..5167ca59e3 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_permissions.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_permissions.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_back.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_back.png index 83c3f2b634..4f9329e4f3 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_back.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_back.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_blur.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_blur.png index d319a1d590..893e280a8e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_blur.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_blur.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_cropfix.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_cropfix.png index 080d749631..08a38431a1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_cropfix.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_cropfix.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_curve.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_curve.png index 5289df2abe..85d5e3ce69 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_curve.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_curve.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_flip.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_flip.png index 8cd308291d..ada99cd7c4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_flip.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_flip.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_rotate.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_rotate.png index 21a0c933b4..f942a283c8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_rotate.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_rotate.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_settings.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_settings.png index 5aa5c908e5..9037288baa 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_settings.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_sticker.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_sticker.png index 9ee3b51fdc..a40691c1f3 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_sticker.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_switch2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_switch2.png index 0e38103cd0..6eb771f020 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_switch2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_switch2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text2.png index 92881d7ed3..7283b5c405 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_framed.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_framed.png index d03e2e38bc..1ab14a0af7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_framed.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_framed.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_framed2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_framed2.png index 9d0b336d44..7ad0564199 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_framed2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_framed2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_framed3.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_framed3.png index 43133b902e..02b2852dca 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_framed3.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_framed3.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_regular.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_regular.png index 1921b645b9..4aa744a101 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_regular.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photo_text_regular.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photoeditor.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photoeditor.png index 61e08c6788..68a3cdc237 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photoeditor.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photoeditor.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_photos.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_photos.png index 81efac9a20..8a4fcb956f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_photos.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_photos.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_pin.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_pin.png index 628669457b..1d807cf49f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_pin.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_pin_code.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_pin_code.png index 93d4aea25c..1c8a8e0b17 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_pin_code.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_pin_code.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_pin_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_pin_filled.png index c6f98f7be2..4b073d3c65 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_pin_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_pin_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_pin_mini.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_pin_mini.png index d4fd000bc6..9d57742ab4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_pin_mini.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_pin_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_pinnedlist.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_pinnedlist.png index f0976ea91b..fa2695a0e3 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_pinnedlist.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_pinnedlist.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_played.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_played.png index e24942bac1..403ff53d15 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_played.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_played.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_policy.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_policy.png index 073dd4a25a..1a17f689af 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_policy.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_policy.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_pollstop.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_pollstop.png index 39eb6c6b25..e8bf29bda0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_pollstop.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_pollstop.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_ads.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_ads.png index 2ef411017d..8012febe3c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_ads.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_ads.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_avatar.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_avatar.png index 8c6e52c68e..136d247029 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_avatar.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_avatar.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_badge.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_badge.png index 96ca2c01e3..dd03273c1c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_badge.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_badge.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_emoji.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_emoji.png index f255eac516..58bbff7236 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_emoji.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_emoji.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_icons.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_icons.png index 56af6a14b9..e20481d198 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_icons.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_icons.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_limits.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_limits.png index 05f5c33d49..8457b6217d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_limits.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_limits.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_liststar.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_liststar.png index 354f6fd222..128881f91c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_liststar.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_liststar.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_lock2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_lock2.png index f1ec031f1e..3625daf243 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_lock2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_lock2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_normal.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_normal.png index dc8791b35a..33ccd5c822 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_normal.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_normal.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_prolfilestar.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_prolfilestar.png index 20edf63dc2..f98696c50b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_prolfilestar.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_prolfilestar.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_reactions.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_reactions.png index d3dabb8a9e..cba5a25e8d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_reactions.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_speed.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_speed.png index 9ba628be0a..e7058b580c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_speed.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_speed.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_status.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_status.png index c2cd3f170b..ed32bcf587 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_status.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_stickers.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_stickers.png index ab1b00f87f..48ba3ede07 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_stickers.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_tools.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_tools.png index 3a0beb2e7a..e1b47715f2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_tools.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_tools.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_translate.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_translate.png index 32a3942ef8..8655b29b90 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_translate.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_translate.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_uploads.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_uploads.png index d332d536bf..0c7018a038 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_uploads.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_uploads.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_voice.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_voice.png index 81e4b7aef3..bbaa808702 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_voice.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_premium_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_psa.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_psa.png index d741893363..c1482abed5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_psa.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_psa.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_qr_mini.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_qr_mini.png index b26188bcd6..d7b7e23cb8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_qr_mini.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_qr_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_qrcode.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_qrcode.png index 4928dc6591..f50eaff565 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_qrcode.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_qrcode.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_rate_down.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_rate_down.png index 0327165e99..b9bdc8349c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_rate_down.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_rate_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_rate_up.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_rate_up.png index de9213a9d7..c128c04248 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_rate_up.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_rate_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions.png index 2657641100..19a5636500 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions2.png index 4501afa12a..62e4931960 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions_expand.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions_expand.png index 86446a037c..8f2152777e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions_expand.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions_filled.png index bd959b3859..0c1a223d2a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_reactions_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_recent.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_recent.png index 6d405a5320..eff343938e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_recent.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_remove.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_remove.png index 7c46feb1c2..0682f7b352 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_remove.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_removefolder.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_removefolder.png index 92b7d538bb..7b2fc16be9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_removefolder.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_removefolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_reorder.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_reorder.png index 78d6ee3717..f07fea32e8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_reorder.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_replace.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_replace.png index 3bc01e7134..06236d3b26 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_replace.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_replace.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_reply_small.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_reply_small.png index 2cdbbd97fb..d8af938391 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_reply_small.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_reply_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_report.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_report.png index 07d2713e43..c6dac36043 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_report.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_report.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_report_drugs.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_report_drugs.png index f40e482e04..c6281a6841 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_report_drugs.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_report_drugs.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_report_fake.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_report_fake.png index 3522a2110a..ee52bb4591 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_report_fake.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_report_fake.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_report_other.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_report_other.png index d0c12380ed..5e81cd6454 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_report_other.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_report_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_report_personal.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_report_personal.png index 488ee04c93..73d6dcf6bc 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_report_personal.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_report_personal.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_report_violence.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_report_violence.png index cfc54b43cb..2911946257 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_report_violence.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_report_violence.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_report_xxx.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_report_xxx.png index 9e193a737a..88bbcc57d4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_report_xxx.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_report_xxx.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_requests.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_requests.png index 14a8b61a5c..ec342bc4ea 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_requests.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_requests.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_reset.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_reset.png index 4eea7d15aa..d8c8998916 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_reset.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_reset.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_retry.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_retry.png index 84632d17d0..43dbb84633 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_retry.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_retry.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_round_cancel_m.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_round_cancel_m.png old mode 100755 new mode 100644 index 88d1316dd6..0de2779502 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_round_cancel_m.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_round_cancel_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_round_file_s.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_round_file_s.png old mode 100755 new mode 100644 index 68f20b2778..1bf3970bfe Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_round_file_s.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_round_file_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_round_gif_m.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_round_gif_m.png old mode 100755 new mode 100644 index ebc432037a..8c9e73e258 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_round_gif_m.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_round_gif_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_round_load_m.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_round_load_m.png old mode 100755 new mode 100644 index a1103cabba..bcec3e8875 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_round_load_m.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_round_load_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_round_pause_m.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_round_pause_m.png old mode 100755 new mode 100644 index 38d7a46965..861416efe4 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_round_pause_m.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_round_pause_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_round_play_m.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_round_play_m.png old mode 100755 new mode 100644 index 9488d86aca..542938d29c Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_round_play_m.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_round_play_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_satellite.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_satellite.png index 0d2226c8a1..6ee81a9a28 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_satellite.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_satellite.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_save_story.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_save_story.png index a67ed70024..ce1b54125a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_save_story.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_save_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_saved.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_saved.png index 16daa4e559..8dd52dce8a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_saved.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_saved.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_saved_14.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_saved_14.png index cd7e345ba3..fd09f398e9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_saved_14.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_saved_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_saved_hw.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_saved_hw.png index 5571c4c4cb..89c1dd5391 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_saved_hw.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_saved_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_saved_ny.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_saved_ny.png index b9e58caa60..2b14caa7bc 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_saved_ny.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_saved_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_screencast.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_screencast.png index d816c87119..11b49ff528 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_screencast.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_screencast.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_screencast_off.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_screencast_off.png index 871e48aa4f..3b24c0360a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_screencast_off.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_screencast_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_search.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_search.png index f6b2d88c3b..b80e0b0477 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_search.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_secret.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_secret.png index ca2b1fd36e..ad359949bd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_secret.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_secret.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_secret_14.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_secret_14.png deleted file mode 100644 index 1509970644..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_secret_14.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_secret_hw.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_secret_hw.png deleted file mode 100644 index bb1ead59e7..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_secret_hw.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_secret_ny.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_secret_ny.png index f34448e323..89d00c1172 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_secret_ny.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_secret_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_seen.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_seen.png index 908618117f..7b24c4e06a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_seen.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_seen.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_select.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_select.png index a4d3d13ae0..e3188a6a7d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_select.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_select.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_send.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_send.png index 884fc81667..513330831b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_send.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_send.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_sendfile.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_sendfile.png index 44d54f7b40..a9c5e02c84 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_sendfile.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_sendfile.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_settings.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_settings.png index 359cac087b..c9b6bda771 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_settings.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_14.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_14.png index 1f2b0e83b0..57e0264e3d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_14.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_hw.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_hw.png index ac89857616..0671114cc5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_hw.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_ny.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_ny.png index ce12eaf3d3..31c54a2024 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_ny.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_old.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_old.png index 40ad03b713..6f7a1c676c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_old.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_old.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_premium.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_premium.png index 0d8b9e5e8b..139be2ca84 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_premium.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_settings_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_share.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_share.png index fcb6d9ed5c..a7376599df 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_share.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_share_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_share_filled.png index 0b351db93a..c33b32d3ce 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_share_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_share_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_shareout.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_shareout.png index 75ca77204c..d9d5af78ca 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_shareout.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_shareout.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_signed.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_signed.png deleted file mode 100644 index bc02b6ba94..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_signed.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_silent.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_silent.png index 6b37956a9e..bf951c8f35 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_silent.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_silent.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_smile_status.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_smile_status.png index 0761be6979..77c3be6855 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_smile_status.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_smile_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed.png index b063dd17f0..55a9b1974b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_0_2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_0_2.png index 5c99959cf4..e436f895aa 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_0_2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_0_2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_fast.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_fast.png index ca87f0faac..a9ad517eb9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_fast.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_fast.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_medium.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_medium.png index 186c06b298..632184267f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_medium.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_medium.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_normal.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_normal.png index 1752fd063a..57cafada53 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_normal.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_normal.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_slow.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_slow.png index 817ac76fa9..052d239b00 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_slow.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_slow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_superfast.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_superfast.png index 55e11af18b..22f449d26c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_superfast.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_superfast.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_veryfast.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_veryfast.png index 2210e458aa..1bb9888a64 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_veryfast.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_speed_veryfast.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_spoiler.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_spoiler.png index 776074b5a9..51627e3ed7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_spoiler.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_spoiler.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_spoiler_off.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_spoiler_off.png index 5402c0db72..47be2499b8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_spoiler_off.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_spoiler_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stats.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stats.png index bb6d9d3446..ebd4cfc61a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stats.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stats.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_status_edit.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_status_edit.png index c6c1616ae8..c31f1f9799 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_status_edit.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_status_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_status_set.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_status_set.png index e32a6c2462..b7830b28b7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_status_set.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_status_set.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stealth_25min.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stealth_25min.png index eacf135409..628bb6b7ab 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stealth_25min.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stealth_25min.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stealth_5min.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stealth_5min.png index d2ad3cb186..399a7ff8fb 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stealth_5min.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stealth_5min.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stealth_locked.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stealth_locked.png index 90873ab934..bab0dd719d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stealth_locked.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stealth_locked.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_sticker.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_sticker.png index e6f67444e4..e93ce63ca6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_sticker.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_add.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_add.png index 77e8d8c818..c6649f9069 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_add.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_archive.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_archive.png index 95c60f4abb..8d6f16168a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_archive.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_caption.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_caption.png index 811b82fa0b..8cd2bdab87 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_caption.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_caption.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_closefriends.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_closefriends.png index 9d443aabb8..b5c4c05e93 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_closefriends.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_closefriends.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_link.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_link.png index 60f5659574..476479e37d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_link.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_myhide.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_myhide.png index 8c4cc9db1d..932a0b464e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_myhide.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_myhide.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_order.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_order.png index e4592b0d05..32a5cefdde 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_order.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_order.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_save.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_save.png index 902afb1284..4e990d9c15 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_save.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_save.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_saved.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_saved.png index 6d5f4e1231..6350dc6b92 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_saved.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_saved.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_stealth.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_stealth.png index 1714a7de1f..41ae09312e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_stealth.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_stealth.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_stealth2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_stealth2.png index ef082bdf58..69dc80b4d5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_stealth2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_stealth2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_timer.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_timer.png index 0f5f475852..a071a54af3 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_timer.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_timer.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_views.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_views.png index 2519835fc1..04c01f4eff 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_views.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_stories_views.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_story_12h.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_story_12h.png deleted file mode 100644 index dcdbe13971..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_story_12h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_story_24h.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_story_24h.png deleted file mode 100644 index b8ae2d6327..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_story_24h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_story_48h.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_story_48h.png deleted file mode 100644 index f27049b9c0..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_story_48h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_story_6h.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_story_6h.png deleted file mode 100644 index 9d1f89729f..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_story_6h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_tabs_mic1.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_tabs_mic1.png index 65d90a7489..5af70f1fe7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_tabs_mic1.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_tabs_mic1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_tabs_mic2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_tabs_mic2.png index 4d3ab38eb7..c9d77b6f70 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_tabs_mic2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_tabs_mic2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_text_check.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_text_check.png index 4bb906c2da..66333cd621 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_text_check.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_text_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_text_outlined.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_text_outlined.png index 371ef9d04f..bb875f6350 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_text_outlined.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_text_outlined.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_theme.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_theme.png index 4497446cc3..2f21f77794 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_theme.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_theme.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_ton.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_ton.png index eee393e9f3..400c792569 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_ton.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_ton.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_tone_add.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_tone_add.png index d4db1a856f..4f5973e310 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_tone_add.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_tone_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_tone_off.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_tone_off.png index 8c655b0871..58bba34760 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_tone_off.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_tone_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_tone_on.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_tone_on.png index 2e5121fb52..9afb25b3ae 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_tone_on.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_tone_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_topic_close.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_topic_close.png index c3d7cff17d..6fe7e28975 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_topic_close.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_topic_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_topic_create.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_topic_create.png index ec3a3ee56f..2f7c6e1b40 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_topic_create.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_topic_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_topic_restart.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_topic_restart.png index 4c42344d9c..9a20bb6d09 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_topic_restart.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_topic_restart.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_topics.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_topics.png index 3b4d3fb87a..353c879d79 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_topics.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_topics.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_translate.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_translate.png index 9ae22ae746..e8b7b82e7a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_translate.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_translate.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_unarchive.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_unarchive.png index 3f7f3cd4fc..07cdf86890 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_unarchive.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_unarchive.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_unfave.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_unfave.png index 08d307459b..29fa945c17 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_unfave.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_unfave.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_ungroup.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_ungroup.png index bc802f21e3..1cca43167e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_ungroup.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_ungroup.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_unmute.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_unmute.png index 8a16c35f2d..ed9b7752cd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_unmute.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_unpin.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_unpin.png index 7e6b753b7f..f5075a8c3b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_unpin.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_unpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_unvote.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_unvote.png index cbef233c5e..8604a9feeb 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_unvote.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_unvote.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_user_remove.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_user_remove.png index cc001558ed..ec767a8a2a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_user_remove.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_user_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_user_search.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_user_search.png index dc5dd6da9a..eaa59990a5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_user_search.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_user_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_usersearch.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_usersearch.png index d0b2909167..7143e90b64 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_usersearch.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_usersearch.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_video.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_video.png index 95bc2feccd..1cbe725485 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_video.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_videocall.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_videocall.png index 8e005ed8fb..44c56360bd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_videocall.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_videocall.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_view_file.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_view_file.png index 3b1080d173..cb867849de 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_view_file.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_view_file.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_viewchats.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_viewchats.png index 5db04eff13..9bc1b28e8e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_viewchats.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_viewchats.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_viewintopic.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_viewintopic.png index 93b8d0ee37..ea6b669893 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_viewintopic.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_viewintopic.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_viewreplies.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_viewreplies.png index 0e1136371d..97d365c8a0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_viewreplies.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_viewreplies.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_views.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_views.png old mode 100755 new mode 100644 index 258e9bd02d..526c8485a5 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_views.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_views.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_bluetooth.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_bluetooth.png index 137ac98f8f..ed3e1b6a7f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_bluetooth.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_bluetooth.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_headphones.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_headphones.png index 59d80f3973..3ed398bb27 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_headphones.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_headphones.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_muted.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_muted.png index cfc7f3a94b..06319b09f5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_muted.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_phone.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_phone.png index 9433e18452..37c237b374 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_phone.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_phone.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_pip.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_pip.png index 943f8089ff..29b83c0c48 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_pip.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_pip.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_speaker.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_speaker.png index 95277fe3da..b8547f03cc 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_speaker.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_speaker.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_unmuted.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_unmuted.png index 7b6c005a41..c4a02cd0fa 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_unmuted.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_voice_unmuted.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_voicechat.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_voicechat.png index 0428350e68..f5b5bd577c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_voicechat.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_voicechat.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_voicechat2.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_voicechat2.png index b501942962..920929dfcd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_voicechat2.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_voicechat2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_voiceclose.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_voiceclose.png index fcaed946b8..d1a66c0b46 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_voiceclose.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_voiceclose.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_voiceshare.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_voiceshare.png index 6102619002..964ab48c43 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_voiceshare.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_voiceshare.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_warning.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_warning.png old mode 100755 new mode 100644 index 448063eded..46f4c82ea5 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_warning.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_warning.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_work.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_work.png index f1638a1c69..8d72585757 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_work.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_work.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_zoomin.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_zoomin.png index 48bc6d90fc..faa7ed0664 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_zoomin.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_zoomin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_zoomout.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_zoomout.png index 96a2b6573d..1b8a16a003 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_zoomout.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_zoomout.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_zoomout_stats.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_zoomout_stats.png index bded3f8091..55e53076a9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_zoomout_stats.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_zoomout_stats.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/music_empty.png b/TMessagesProj/src/main/res/drawable-mdpi/music_empty.png index 198f34c154..577558df86 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/music_empty.png and b/TMessagesProj/src/main/res/drawable-mdpi/music_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/navbar_search_tag.png b/TMessagesProj/src/main/res/drawable-mdpi/navbar_search_tag.png index 865782ccaf..671a6f0f38 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/navbar_search_tag.png and b/TMessagesProj/src/main/res/drawable-mdpi/navbar_search_tag.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/navigate.png b/TMessagesProj/src/main/res/drawable-mdpi/navigate.png deleted file mode 100644 index 3aa139836c..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/navigate.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/nearby_l.png b/TMessagesProj/src/main/res/drawable-mdpi/nearby_l.png deleted file mode 100644 index 8ac5a0a3e9..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/nearby_l.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/nearby_m.png b/TMessagesProj/src/main/res/drawable-mdpi/nearby_m.png deleted file mode 100644 index 1c5589c088..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/nearby_m.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/newmsg_divider.png b/TMessagesProj/src/main/res/drawable-mdpi/newmsg_divider.png old mode 100755 new mode 100644 index 3f7dbcd121..1864e5505a Binary files a/TMessagesProj/src/main/res/drawable-mdpi/newmsg_divider.png and b/TMessagesProj/src/main/res/drawable-mdpi/newmsg_divider.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/newyear.png b/TMessagesProj/src/main/res/drawable-mdpi/newyear.png index 957881bd92..051b751ef5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/newyear.png and b/TMessagesProj/src/main/res/drawable-mdpi/newyear.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/no_passport.png b/TMessagesProj/src/main/res/drawable-mdpi/no_passport.png index a52fd01efb..b10f36f3ec 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/no_passport.png and b/TMessagesProj/src/main/res/drawable-mdpi/no_passport.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/no_password.png b/TMessagesProj/src/main/res/drawable-mdpi/no_password.png index 7350f803b1..dacde70cac 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/no_password.png and b/TMessagesProj/src/main/res/drawable-mdpi/no_password.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/notifications_mute1h.png b/TMessagesProj/src/main/res/drawable-mdpi/notifications_mute1h.png index ed980c76ce..9f431b3623 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/notifications_mute1h.png and b/TMessagesProj/src/main/res/drawable-mdpi/notifications_mute1h.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/notifications_mute2d.png b/TMessagesProj/src/main/res/drawable-mdpi/notifications_mute2d.png index 7675c726d8..c24e73760c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/notifications_mute2d.png and b/TMessagesProj/src/main/res/drawable-mdpi/notifications_mute2d.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/notifications_off.png b/TMessagesProj/src/main/res/drawable-mdpi/notifications_off.png index 0f92fdae55..9a16849b14 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/notifications_off.png and b/TMessagesProj/src/main/res/drawable-mdpi/notifications_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/notifications_on.png b/TMessagesProj/src/main/res/drawable-mdpi/notifications_on.png index 43ef6ec417..9b277ec8bf 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/notifications_on.png and b/TMessagesProj/src/main/res/drawable-mdpi/notifications_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/notifications_settings.png b/TMessagesProj/src/main/res/drawable-mdpi/notifications_settings.png index bf910a41d5..b89637d5b6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/notifications_settings.png and b/TMessagesProj/src/main/res/drawable-mdpi/notifications_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/other_2x_large.png b/TMessagesProj/src/main/res/drawable-mdpi/other_2x_large.png index ba8a0e34e4..9ed8f649bc 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/other_2x_large.png and b/TMessagesProj/src/main/res/drawable-mdpi/other_2x_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/other_lockedfolders.png b/TMessagesProj/src/main/res/drawable-mdpi/other_lockedfolders.png index 0ed4533bf1..3eb268b8c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/other_lockedfolders.png and b/TMessagesProj/src/main/res/drawable-mdpi/other_lockedfolders.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/other_lockedfolders2.png b/TMessagesProj/src/main/res/drawable-mdpi/other_lockedfolders2.png index 9b05b93681..059b16ee16 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/other_lockedfolders2.png and b/TMessagesProj/src/main/res/drawable-mdpi/other_lockedfolders2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/pagedown.png b/TMessagesProj/src/main/res/drawable-mdpi/pagedown.png index c21b132d6d..56a96536b2 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/pagedown.png and b/TMessagesProj/src/main/res/drawable-mdpi/pagedown.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/pagedown_shadow.png b/TMessagesProj/src/main/res/drawable-mdpi/pagedown_shadow.png old mode 100755 new mode 100644 index 5af9bfebc2..16d6050ba7 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/pagedown_shadow.png and b/TMessagesProj/src/main/res/drawable-mdpi/pagedown_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/passcode_check.png b/TMessagesProj/src/main/res/drawable-mdpi/passcode_check.png index cc8ce7ee1a..3c8eba9cc1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/passcode_check.png and b/TMessagesProj/src/main/res/drawable-mdpi/passcode_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/passcode_delete.png b/TMessagesProj/src/main/res/drawable-mdpi/passcode_delete.png deleted file mode 100644 index 0c87b8d889..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/passcode_delete.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/permission_locked.png b/TMessagesProj/src/main/res/drawable-mdpi/permission_locked.png index 307d8d1824..e64f69d34e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/permission_locked.png and b/TMessagesProj/src/main/res/drawable-mdpi/permission_locked.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/permissions_camera1.png b/TMessagesProj/src/main/res/drawable-mdpi/permissions_camera1.png index 5d4278cebf..ffdbe37daa 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/permissions_camera1.png and b/TMessagesProj/src/main/res/drawable-mdpi/permissions_camera1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/permissions_camera2.png b/TMessagesProj/src/main/res/drawable-mdpi/permissions_camera2.png index aa95da8d99..818bf74845 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/permissions_camera2.png and b/TMessagesProj/src/main/res/drawable-mdpi/permissions_camera2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/permissions_gallery1.png b/TMessagesProj/src/main/res/drawable-mdpi/permissions_gallery1.png index 0267a6c447..1fa48df957 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/permissions_gallery1.png and b/TMessagesProj/src/main/res/drawable-mdpi/permissions_gallery1.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/permissions_gallery2.png b/TMessagesProj/src/main/res/drawable-mdpi/permissions_gallery2.png index 03332b1d46..e2d6e0538e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/permissions_gallery2.png and b/TMessagesProj/src/main/res/drawable-mdpi/permissions_gallery2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/phone_activate.png b/TMessagesProj/src/main/res/drawable-mdpi/phone_activate.png old mode 100755 new mode 100644 index 58f95cdce2..41000f9099 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/phone_activate.png and b/TMessagesProj/src/main/res/drawable-mdpi/phone_activate.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/photo_paint_brush.png b/TMessagesProj/src/main/res/drawable-mdpi/photo_paint_brush.png index 47a797e31d..6e2b09ab41 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/photo_paint_brush.png and b/TMessagesProj/src/main/res/drawable-mdpi/photo_paint_brush.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/photo_tooltip2.png b/TMessagesProj/src/main/res/drawable-mdpi/photo_tooltip2.png index 8cea1d0a7a..97e420c091 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/photo_tooltip2.png and b/TMessagesProj/src/main/res/drawable-mdpi/photo_tooltip2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/photo_undo.png b/TMessagesProj/src/main/res/drawable-mdpi/photo_undo.png index 235b8d8cbf..deed09689d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/photo_undo.png and b/TMessagesProj/src/main/res/drawable-mdpi/photo_undo.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/photos_arrow.png b/TMessagesProj/src/main/res/drawable-mdpi/photos_arrow.png index 1b229476a2..4fbf8b37fd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/photos_arrow.png and b/TMessagesProj/src/main/res/drawable-mdpi/photos_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/pin.png b/TMessagesProj/src/main/res/drawable-mdpi/pin.png index 5681553217..0a56f95b72 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/pin.png and b/TMessagesProj/src/main/res/drawable-mdpi/pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/pip_close.png b/TMessagesProj/src/main/res/drawable-mdpi/pip_close.png index 3dbe17d99c..cb6d18aa6a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/pip_close.png and b/TMessagesProj/src/main/res/drawable-mdpi/pip_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/pip_enlarge.png b/TMessagesProj/src/main/res/drawable-mdpi/pip_enlarge.png index 9daddc8321..396d7f4843 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/pip_enlarge.png and b/TMessagesProj/src/main/res/drawable-mdpi/pip_enlarge.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/pip_pause_large.png b/TMessagesProj/src/main/res/drawable-mdpi/pip_pause_large.png index b8691206d7..3c53aab2f5 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/pip_pause_large.png and b/TMessagesProj/src/main/res/drawable-mdpi/pip_pause_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/pip_play_large.png b/TMessagesProj/src/main/res/drawable-mdpi/pip_play_large.png index 2f91aa10a4..9844df6847 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/pip_play_large.png and b/TMessagesProj/src/main/res/drawable-mdpi/pip_play_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/pip_replay_large.png b/TMessagesProj/src/main/res/drawable-mdpi/pip_replay_large.png index e66c7b44ec..02d58c74a9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/pip_replay_large.png and b/TMessagesProj/src/main/res/drawable-mdpi/pip_replay_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/pip_video_close.png b/TMessagesProj/src/main/res/drawable-mdpi/pip_video_close.png index 6cc454a189..8cefe57760 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/pip_video_close.png and b/TMessagesProj/src/main/res/drawable-mdpi/pip_video_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/pip_video_expand.png b/TMessagesProj/src/main/res/drawable-mdpi/pip_video_expand.png index 0ca54db9c0..0069551c83 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/pip_video_expand.png and b/TMessagesProj/src/main/res/drawable-mdpi/pip_video_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/play_mini_video.png b/TMessagesProj/src/main/res/drawable-mdpi/play_mini_video.png index 86dad36332..6bf8f02441 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/play_mini_video.png and b/TMessagesProj/src/main/res/drawable-mdpi/play_mini_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/player.png b/TMessagesProj/src/main/res/drawable-mdpi/player.png index dad8cd1d8c..29ddec6b19 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/player.png and b/TMessagesProj/src/main/res/drawable-mdpi/player.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/player_new_order.png b/TMessagesProj/src/main/res/drawable-mdpi/player_new_order.png index 9b66cb66e9..585eb95ddb 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/player_new_order.png and b/TMessagesProj/src/main/res/drawable-mdpi/player_new_order.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeat_reverse.png b/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeat_reverse.png index 28f9cd66f0..29d4391e91 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeat_reverse.png and b/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeat_reverse.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeat_shuffle.png b/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeat_shuffle.png index b38f3c9e19..b243266e0c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeat_shuffle.png and b/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeat_shuffle.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeatall.png b/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeatall.png index 0cac573759..f46899ea6d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeatall.png and b/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeatall.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeatone.png b/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeatone.png index e2b2a81629..c469ad8505 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeatone.png and b/TMessagesProj/src/main/res/drawable-mdpi/player_new_repeatone.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/player_new_shuffle.png b/TMessagesProj/src/main/res/drawable-mdpi/player_new_shuffle.png index 0a753a3018..760ef9042c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/player_new_shuffle.png and b/TMessagesProj/src/main/res/drawable-mdpi/player_new_shuffle.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/poll_add_circle.png b/TMessagesProj/src/main/res/drawable-mdpi/poll_add_circle.png index 6950964e9b..cd727feb4f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/poll_add_circle.png and b/TMessagesProj/src/main/res/drawable-mdpi/poll_add_circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/poll_add_plus.png b/TMessagesProj/src/main/res/drawable-mdpi/poll_add_plus.png index d817758f01..86fc204302 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/poll_add_plus.png and b/TMessagesProj/src/main/res/drawable-mdpi/poll_add_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/poll_remove.png b/TMessagesProj/src/main/res/drawable-mdpi/poll_remove.png index 3f38cdd497..b888c307b8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/poll_remove.png and b/TMessagesProj/src/main/res/drawable-mdpi/poll_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/poll_reorder.png b/TMessagesProj/src/main/res/drawable-mdpi/poll_reorder.png index 21ed756755..a9b22e4282 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/poll_reorder.png and b/TMessagesProj/src/main/res/drawable-mdpi/poll_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/poll_right.png b/TMessagesProj/src/main/res/drawable-mdpi/poll_right.png index 4d1e48d80c..67d3645587 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/poll_right.png and b/TMessagesProj/src/main/res/drawable-mdpi/poll_right.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/poll_wrong.png b/TMessagesProj/src/main/res/drawable-mdpi/poll_wrong.png index 740edabe8e..d4bc396b86 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/poll_wrong.png and b/TMessagesProj/src/main/res/drawable-mdpi/poll_wrong.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/premium_colors.png b/TMessagesProj/src/main/res/drawable-mdpi/premium_colors.png index a6abb3cc0d..78351c793a 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/premium_colors.png and b/TMessagesProj/src/main/res/drawable-mdpi/premium_colors.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/premium_status.png b/TMessagesProj/src/main/res/drawable-mdpi/premium_status.png index 4b8689ba05..41ad073d66 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/premium_status.png and b/TMessagesProj/src/main/res/drawable-mdpi/premium_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/premium_tags.png b/TMessagesProj/src/main/res/drawable-mdpi/premium_tags.png index a4e3b0d541..e999e72f58 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/premium_tags.png and b/TMessagesProj/src/main/res/drawable-mdpi/premium_tags.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/premium_wallpaper.png b/TMessagesProj/src/main/res/drawable-mdpi/premium_wallpaper.png index 035182d87f..58cdef5409 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/premium_wallpaper.png and b/TMessagesProj/src/main/res/drawable-mdpi/premium_wallpaper.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/preview_arrow.png b/TMessagesProj/src/main/res/drawable-mdpi/preview_arrow.png index fcf1989f8e..7cf510d37c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/preview_arrow.png and b/TMessagesProj/src/main/res/drawable-mdpi/preview_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/preview_custom.png b/TMessagesProj/src/main/res/drawable-mdpi/preview_custom.png index ce256dab2d..6d63f40ca0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/preview_custom.png and b/TMessagesProj/src/main/res/drawable-mdpi/preview_custom.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/preview_dots.png b/TMessagesProj/src/main/res/drawable-mdpi/preview_dots.png index b16b6c4345..c9acc32ae3 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/preview_dots.png and b/TMessagesProj/src/main/res/drawable-mdpi/preview_dots.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/profile_discuss.png b/TMessagesProj/src/main/res/drawable-mdpi/profile_discuss.png index 27a81334e0..5fc50d5989 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/profile_discuss.png and b/TMessagesProj/src/main/res/drawable-mdpi/profile_discuss.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/profile_newmsg.png b/TMessagesProj/src/main/res/drawable-mdpi/profile_newmsg.png index 56ed64cf0b..80f5fde463 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/profile_newmsg.png and b/TMessagesProj/src/main/res/drawable-mdpi/profile_newmsg.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/profile_phone.png b/TMessagesProj/src/main/res/drawable-mdpi/profile_phone.png index 11abd1a02e..f4d77acffb 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/profile_phone.png and b/TMessagesProj/src/main/res/drawable-mdpi/profile_phone.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/profile_video.png b/TMessagesProj/src/main/res/drawable-mdpi/profile_video.png index 5fbbd85732..896089d620 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/profile_video.png and b/TMessagesProj/src/main/res/drawable-mdpi/profile_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/proxy_check.png b/TMessagesProj/src/main/res/drawable-mdpi/proxy_check.png index 13820112b2..501238722f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/proxy_check.png and b/TMessagesProj/src/main/res/drawable-mdpi/proxy_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/qr_at_large.png b/TMessagesProj/src/main/res/drawable-mdpi/qr_at_large.png index 005ccb04c5..229cc20bcc 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/qr_at_large.png and b/TMessagesProj/src/main/res/drawable-mdpi/qr_at_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/qr_at_medium.png b/TMessagesProj/src/main/res/drawable-mdpi/qr_at_medium.png index 31038e80c7..519185e78c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/qr_at_medium.png and b/TMessagesProj/src/main/res/drawable-mdpi/qr_at_medium.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/qr_at_small.png b/TMessagesProj/src/main/res/drawable-mdpi/qr_at_small.png index 480c304978..062b7827a1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/qr_at_small.png and b/TMessagesProj/src/main/res/drawable-mdpi/qr_at_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/qr_flashlight.png b/TMessagesProj/src/main/res/drawable-mdpi/qr_flashlight.png index c2aec4e9fd..098aa68ad8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/qr_flashlight.png and b/TMessagesProj/src/main/res/drawable-mdpi/qr_flashlight.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/qr_gallery.png b/TMessagesProj/src/main/res/drawable-mdpi/qr_gallery.png index fd1e8512f4..c7c1179540 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/qr_gallery.png and b/TMessagesProj/src/main/res/drawable-mdpi/qr_gallery.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/reactionbutton.png b/TMessagesProj/src/main/res/drawable-mdpi/reactionbutton.png index 1d2aeeeaac..ff827688a6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/reactionbutton.png and b/TMessagesProj/src/main/res/drawable-mdpi/reactionbutton.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/reactionchatslist.png b/TMessagesProj/src/main/res/drawable-mdpi/reactionchatslist.png index af9fe67461..5f1707e29b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/reactionchatslist.png and b/TMessagesProj/src/main/res/drawable-mdpi/reactionchatslist.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/redcircle.png b/TMessagesProj/src/main/res/drawable-mdpi/redcircle.png old mode 100755 new mode 100644 index 267fe7e4df..554f898053 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/redcircle.png and b/TMessagesProj/src/main/res/drawable-mdpi/redcircle.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/round_check2.png b/TMessagesProj/src/main/res/drawable-mdpi/round_check2.png old mode 100755 new mode 100644 index d83f0fa3f3..d6b074d4c4 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/round_check2.png and b/TMessagesProj/src/main/res/drawable-mdpi/round_check2.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/screencast_big.png b/TMessagesProj/src/main/res/drawable-mdpi/screencast_big.png index a84d92028d..b06eb86141 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/screencast_big.png and b/TMessagesProj/src/main/res/drawable-mdpi/screencast_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/search_arrow.png b/TMessagesProj/src/main/res/drawable-mdpi/search_arrow.png index c2fe8a429c..413f85b083 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/search_arrow.png and b/TMessagesProj/src/main/res/drawable-mdpi/search_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/search_date_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/search_date_filled.png index 148a8392a5..a7b3fe171f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/search_date_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/search_date_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/search_files_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/search_files_filled.png index 775940bb3e..155e8d4fb4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/search_files_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/search_files_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/search_links_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/search_links_filled.png index f9c2bbd102..4f6b0b6804 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/search_links_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/search_links_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/search_media_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/search_media_filled.png index ff1269c6f2..d476a18d87 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/search_media_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/search_media_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/search_music_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/search_music_filled.png index b55604f429..84479c8317 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/search_music_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/search_music_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/search_users_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/search_users_filled.png index bd1f1b7e14..85d1929c6d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/search_users_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/search_users_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/search_voice_filled.png b/TMessagesProj/src/main/res/drawable-mdpi/search_voice_filled.png index 12f640348c..9e0a8023e6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/search_voice_filled.png and b/TMessagesProj/src/main/res/drawable-mdpi/search_voice_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/selectphoto_large.png b/TMessagesProj/src/main/res/drawable-mdpi/selectphoto_large.png index 833aaf32cb..cd931b7bc8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/selectphoto_large.png and b/TMessagesProj/src/main/res/drawable-mdpi/selectphoto_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/settings_arrow.png b/TMessagesProj/src/main/res/drawable-mdpi/settings_arrow.png index 8895766c2f..2b82f34846 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/settings_arrow.png and b/TMessagesProj/src/main/res/drawable-mdpi/settings_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/shadowdown.png b/TMessagesProj/src/main/res/drawable-mdpi/shadowdown.png index 442455b65e..9f2e7c649e 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/shadowdown.png and b/TMessagesProj/src/main/res/drawable-mdpi/shadowdown.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/share.png b/TMessagesProj/src/main/res/drawable-mdpi/share.png old mode 100755 new mode 100644 index 849a026e08..aa88383c5b Binary files a/TMessagesProj/src/main/res/drawable-mdpi/share.png and b/TMessagesProj/src/main/res/drawable-mdpi/share.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/share_arrow.png b/TMessagesProj/src/main/res/drawable-mdpi/share_arrow.png index c397a821a0..fd0f9a303c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/share_arrow.png and b/TMessagesProj/src/main/res/drawable-mdpi/share_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/shortcut_compose.png b/TMessagesProj/src/main/res/drawable-mdpi/shortcut_compose.png old mode 100755 new mode 100644 index f8d86fc0b9..e05154b827 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/shortcut_compose.png and b/TMessagesProj/src/main/res/drawable-mdpi/shortcut_compose.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/shortcut_user.png b/TMessagesProj/src/main/res/drawable-mdpi/shortcut_user.png old mode 100755 new mode 100644 index 59aa1c45bc..7bb3eecd9e Binary files a/TMessagesProj/src/main/res/drawable-mdpi/shortcut_user.png and b/TMessagesProj/src/main/res/drawable-mdpi/shortcut_user.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/slide_dot_big.png b/TMessagesProj/src/main/res/drawable-mdpi/slide_dot_big.png old mode 100755 new mode 100644 index e3a1041bf5..c3f1318f9d Binary files a/TMessagesProj/src/main/res/drawable-mdpi/slide_dot_big.png and b/TMessagesProj/src/main/res/drawable-mdpi/slide_dot_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/slide_dot_small.png b/TMessagesProj/src/main/res/drawable-mdpi/slide_dot_small.png old mode 100755 new mode 100644 index 862f0817a1..704ad319b1 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/slide_dot_small.png and b/TMessagesProj/src/main/res/drawable-mdpi/slide_dot_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/smallanimationpin.png b/TMessagesProj/src/main/res/drawable-mdpi/smallanimationpin.png index 7ad7ffc821..b87df080ff 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/smallanimationpin.png and b/TMessagesProj/src/main/res/drawable-mdpi/smallanimationpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/smallanimationpinleft.png b/TMessagesProj/src/main/res/drawable-mdpi/smallanimationpinleft.png index 51384d162f..52d4b7223f 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/smallanimationpinleft.png and b/TMessagesProj/src/main/res/drawable-mdpi/smallanimationpinleft.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/smallanimationpinright.png b/TMessagesProj/src/main/res/drawable-mdpi/smallanimationpinright.png index 362ff18f37..1ce6c416f7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/smallanimationpinright.png and b/TMessagesProj/src/main/res/drawable-mdpi/smallanimationpinright.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/smiles_info.png b/TMessagesProj/src/main/res/drawable-mdpi/smiles_info.png index e25475c3a9..25dfce2a8b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/smiles_info.png and b/TMessagesProj/src/main/res/drawable-mdpi/smiles_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/smiles_inputsearch.png b/TMessagesProj/src/main/res/drawable-mdpi/smiles_inputsearch.png index ca5e707b73..da33dbd3b0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/smiles_inputsearch.png and b/TMessagesProj/src/main/res/drawable-mdpi/smiles_inputsearch.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_clear.png b/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_clear.png index d4368b2948..222062f9da 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_clear.png and b/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_gif.png b/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_gif.png index 7da3698c9f..df4a2c4356 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_gif.png and b/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_gif.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_search.png b/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_search.png index 5430eedc04..f158f4d9db 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_search.png and b/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_settings.png b/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_settings.png index 5e7278e84d..376f52d8d8 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_settings.png and b/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_smiles.png b/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_smiles.png index 2101c53179..4128c50836 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_smiles.png and b/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_smiles.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_stickers.png b/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_stickers.png index c16662c7d0..1e601c6a98 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_stickers.png and b/TMessagesProj/src/main/res/drawable-mdpi/smiles_tab_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/sms_bubble.png b/TMessagesProj/src/main/res/drawable-mdpi/sms_bubble.png index f49579e279..92cf5d43fb 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/sms_bubble.png and b/TMessagesProj/src/main/res/drawable-mdpi/sms_bubble.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/sms_code.png b/TMessagesProj/src/main/res/drawable-mdpi/sms_code.png index ee166e80b3..eae470f8f9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/sms_code.png and b/TMessagesProj/src/main/res/drawable-mdpi/sms_code.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/sms_devices.png b/TMessagesProj/src/main/res/drawable-mdpi/sms_devices.png index e67800bc6e..828202cf40 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/sms_devices.png and b/TMessagesProj/src/main/res/drawable-mdpi/sms_devices.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/sticker_added.png b/TMessagesProj/src/main/res/drawable-mdpi/sticker_added.png old mode 100755 new mode 100644 index 90ba9bd6e0..df68ea2485 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/sticker_added.png and b/TMessagesProj/src/main/res/drawable-mdpi/sticker_added.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/stickers_back_arrow.png b/TMessagesProj/src/main/res/drawable-mdpi/stickers_back_arrow.png index b4a42446e4..45a6bbc6c7 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/stickers_back_arrow.png and b/TMessagesProj/src/main/res/drawable-mdpi/stickers_back_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/stickers_empty.png b/TMessagesProj/src/main/res/drawable-mdpi/stickers_empty.png index 514d1edd57..fd4d75c280 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/stickers_empty.png and b/TMessagesProj/src/main/res/drawable-mdpi/stickers_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/stickers_favorites.png b/TMessagesProj/src/main/res/drawable-mdpi/stickers_favorites.png index 2bc53d122d..e75ddc0ec4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/stickers_favorites.png and b/TMessagesProj/src/main/res/drawable-mdpi/stickers_favorites.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/stickers_gifs_trending.png b/TMessagesProj/src/main/res/drawable-mdpi/stickers_gifs_trending.png index a8b5e0d85d..3a3d05c483 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/stickers_gifs_trending.png and b/TMessagesProj/src/main/res/drawable-mdpi/stickers_gifs_trending.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/stickers_recent.png b/TMessagesProj/src/main/res/drawable-mdpi/stickers_recent.png index 9732a8c9b1..c8f9c476fd 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/stickers_recent.png and b/TMessagesProj/src/main/res/drawable-mdpi/stickers_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/tabs_reorder.png b/TMessagesProj/src/main/res/drawable-mdpi/tabs_reorder.png index 0cdc9eae42..ecbf1ab0e0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/tabs_reorder.png and b/TMessagesProj/src/main/res/drawable-mdpi/tabs_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/theme_picker.png b/TMessagesProj/src/main/res/drawable-mdpi/theme_picker.png old mode 100755 new mode 100644 index e7d7f35a08..1d34a10bd7 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/theme_picker.png and b/TMessagesProj/src/main/res/drawable-mdpi/theme_picker.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/toast_pallete.png b/TMessagesProj/src/main/res/drawable-mdpi/toast_pallete.png index eee7752d94..806d46d6a1 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/toast_pallete.png and b/TMessagesProj/src/main/res/drawable-mdpi/toast_pallete.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/tooltip_arrow.png b/TMessagesProj/src/main/res/drawable-mdpi/tooltip_arrow.png index 8d38aac770..a69629e80c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/tooltip_arrow.png and b/TMessagesProj/src/main/res/drawable-mdpi/tooltip_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/tooltip_arrow_up.png b/TMessagesProj/src/main/res/drawable-mdpi/tooltip_arrow_up.png index 3cce311532..805b19cc90 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/tooltip_arrow_up.png and b/TMessagesProj/src/main/res/drawable-mdpi/tooltip_arrow_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/tooltip_sound.png b/TMessagesProj/src/main/res/drawable-mdpi/tooltip_sound.png index 2dda48f926..ab95f02148 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/tooltip_sound.png and b/TMessagesProj/src/main/res/drawable-mdpi/tooltip_sound.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/verified_area.png b/TMessagesProj/src/main/res/drawable-mdpi/verified_area.png index 7d2fec0453..e44cffd838 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/verified_area.png and b/TMessagesProj/src/main/res/drawable-mdpi/verified_area.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/verified_check.png b/TMessagesProj/src/main/res/drawable-mdpi/verified_check.png index 4cdbb8c08e..8a26c5da0d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/verified_check.png and b/TMessagesProj/src/main/res/drawable-mdpi/verified_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/verified_profile.png b/TMessagesProj/src/main/res/drawable-mdpi/verified_profile.png index 6328b9eb79..8f5c3e6736 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/verified_profile.png and b/TMessagesProj/src/main/res/drawable-mdpi/verified_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/video_actions.png b/TMessagesProj/src/main/res/drawable-mdpi/video_actions.png old mode 100755 new mode 100644 index 8dc45437b9..2c62939364 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/video_actions.png and b/TMessagesProj/src/main/res/drawable-mdpi/video_actions.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/video_mute.png b/TMessagesProj/src/main/res/drawable-mdpi/video_mute.png index df58fb265e..d054a0d1d4 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/video_mute.png and b/TMessagesProj/src/main/res/drawable-mdpi/video_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/video_muted.png b/TMessagesProj/src/main/res/drawable-mdpi/video_muted.png index f22d3fea16..72df766c17 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/video_muted.png and b/TMessagesProj/src/main/res/drawable-mdpi/video_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/video_send_mute.png b/TMessagesProj/src/main/res/drawable-mdpi/video_send_mute.png index c91ea55d47..8dce6583a6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/video_send_mute.png and b/TMessagesProj/src/main/res/drawable-mdpi/video_send_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/video_send_unmute.png b/TMessagesProj/src/main/res/drawable-mdpi/video_send_unmute.png index 73bc7ac3f1..24f6d124af 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/video_send_unmute.png and b/TMessagesProj/src/main/res/drawable-mdpi/video_send_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/voice_expand.png b/TMessagesProj/src/main/res/drawable-mdpi/voice_expand.png index f7a03110da..975c5849b0 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/voice_expand.png and b/TMessagesProj/src/main/res/drawable-mdpi/voice_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/voice_minimize.png b/TMessagesProj/src/main/res/drawable-mdpi/voice_minimize.png index ec4a69b693..b93b1fb54b 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/voice_minimize.png and b/TMessagesProj/src/main/res/drawable-mdpi/voice_minimize.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/voice_volume_mini.png b/TMessagesProj/src/main/res/drawable-mdpi/voice_volume_mini.png index 8438a4ebc8..335ec00260 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/voice_volume_mini.png and b/TMessagesProj/src/main/res/drawable-mdpi/voice_volume_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/voicechat_active.png b/TMessagesProj/src/main/res/drawable-mdpi/voicechat_active.png index 8818203a6f..8d53b3318c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/voicechat_active.png and b/TMessagesProj/src/main/res/drawable-mdpi/voicechat_active.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/voicechat_muted.png b/TMessagesProj/src/main/res/drawable-mdpi/voicechat_muted.png index 1ab729af02..b8808eb4e9 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/voicechat_muted.png and b/TMessagesProj/src/main/res/drawable-mdpi/voicechat_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/voicechat_screencast.png b/TMessagesProj/src/main/res/drawable-mdpi/voicechat_screencast.png index 02d2b7234e..797ac47738 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/voicechat_screencast.png and b/TMessagesProj/src/main/res/drawable-mdpi/voicechat_screencast.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/zoom_minus.png b/TMessagesProj/src/main/res/drawable-mdpi/zoom_minus.png index 11c467e005..88a4e5551c 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/zoom_minus.png and b/TMessagesProj/src/main/res/drawable-mdpi/zoom_minus.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/zoom_plus.png b/TMessagesProj/src/main/res/drawable-mdpi/zoom_plus.png index 2157ed3ca4..f49470b5e6 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/zoom_plus.png and b/TMessagesProj/src/main/res/drawable-mdpi/zoom_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/zoom_round.png b/TMessagesProj/src/main/res/drawable-mdpi/zoom_round.png index 47c84d3a29..56e63ca303 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/zoom_round.png and b/TMessagesProj/src/main/res/drawable-mdpi/zoom_round.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/zoom_round_b.png b/TMessagesProj/src/main/res/drawable-mdpi/zoom_round_b.png index 09f03b971c..47a38ea5ca 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/zoom_round_b.png and b/TMessagesProj/src/main/res/drawable-mdpi/zoom_round_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-v21/fab_highlight_dark.xml b/TMessagesProj/src/main/res/drawable-v21/fab_highlight_dark.xml deleted file mode 100644 index 61464aa894..0000000000 --- a/TMessagesProj/src/main/res/drawable-v21/fab_highlight_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable-v21/googlepay_button_background.xml b/TMessagesProj/src/main/res/drawable-v21/googlepay_button_background.xml deleted file mode 100644 index 4873ef2428..0000000000 --- a/TMessagesProj/src/main/res/drawable-v21/googlepay_button_background.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ab_progress.png b/TMessagesProj/src/main/res/drawable-xhdpi/ab_progress.png index 914eb94846..635268d40a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ab_progress.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ab_progress.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/account_check.png b/TMessagesProj/src/main/res/drawable-xhdpi/account_check.png index 4d07169d71..f705ddb368 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/account_check.png and b/TMessagesProj/src/main/res/drawable-xhdpi/account_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/album_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/album_shadow.png index 710d376204..24e7a95520 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/album_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/album_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/animationpin.png b/TMessagesProj/src/main/res/drawable-xhdpi/animationpin.png index ebcc0e6fa6..504345cdbf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/animationpin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/animationpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/animationpinleft.png b/TMessagesProj/src/main/res/drawable-xhdpi/animationpinleft.png index 3b5a48156a..0c8bdb1f0f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/animationpinleft.png and b/TMessagesProj/src/main/res/drawable-xhdpi/animationpinleft.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/animationpinright.png b/TMessagesProj/src/main/res/drawable-xhdpi/animationpinright.png index f1596dc2ec..dcc6ae7439 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/animationpinright.png and b/TMessagesProj/src/main/res/drawable-xhdpi/animationpinright.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/arrow_more.png b/TMessagesProj/src/main/res/drawable-xhdpi/arrow_more.png index 512852c181..51b42ea471 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/arrow_more.png and b/TMessagesProj/src/main/res/drawable-xhdpi/arrow_more.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/arrow_newchat.png b/TMessagesProj/src/main/res/drawable-xhdpi/arrow_newchat.png index 579616965f..91491a3b93 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/arrow_newchat.png and b/TMessagesProj/src/main/res/drawable-xhdpi/arrow_newchat.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/attach_arrow_left.png b/TMessagesProj/src/main/res/drawable-xhdpi/attach_arrow_left.png index 3853728627..a3628772a6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/attach_arrow_left.png and b/TMessagesProj/src/main/res/drawable-xhdpi/attach_arrow_left.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/attach_arrow_right.png b/TMessagesProj/src/main/res/drawable-xhdpi/attach_arrow_right.png index b609133260..8e1da43b3d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/attach_arrow_right.png and b/TMessagesProj/src/main/res/drawable-xhdpi/attach_arrow_right.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/attach_send.png b/TMessagesProj/src/main/res/drawable-xhdpi/attach_send.png index 73dc86a841..8864965815 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/attach_send.png and b/TMessagesProj/src/main/res/drawable-xhdpi/attach_send.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/attach_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/attach_shadow.png index 4a8d8d8489..eb80fff622 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/attach_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/attach_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/authorize.png b/TMessagesProj/src/main/res/drawable-xhdpi/authorize.png index 6a115e8671..af05598d63 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/authorize.png and b/TMessagesProj/src/main/res/drawable-xhdpi/authorize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/background_selected.png b/TMessagesProj/src/main/res/drawable-xhdpi/background_selected.png index b99b507584..c5cbbfe6ee 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/background_selected.png and b/TMessagesProj/src/main/res/drawable-xhdpi/background_selected.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/bg_rotate_large.png b/TMessagesProj/src/main/res/drawable-xhdpi/bg_rotate_large.png index eb7f1890ac..99a1ce46eb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/bg_rotate_large.png and b/TMessagesProj/src/main/res/drawable-xhdpi/bg_rotate_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/blockpanel.png b/TMessagesProj/src/main/res/drawable-xhdpi/blockpanel.png index 1df8b1eaeb..406d8bf3f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/blockpanel.png and b/TMessagesProj/src/main/res/drawable-xhdpi/blockpanel.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/blockpanel_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/blockpanel_shadow.png index 5ffe3c35f9..6eac7906dd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/blockpanel_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/blockpanel_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/book_bot.png b/TMessagesProj/src/main/res/drawable-xhdpi/book_bot.png old mode 100755 new mode 100644 index a204f7be44..6d8f7fa273 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/book_bot.png and b/TMessagesProj/src/main/res/drawable-xhdpi/book_bot.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/book_channel.png b/TMessagesProj/src/main/res/drawable-xhdpi/book_channel.png old mode 100755 new mode 100644 index 23564ce999..ff43139220 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/book_channel.png and b/TMessagesProj/src/main/res/drawable-xhdpi/book_channel.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/book_group.png b/TMessagesProj/src/main/res/drawable-xhdpi/book_group.png old mode 100755 new mode 100644 index 563c688779..75de20ad23 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/book_group.png and b/TMessagesProj/src/main/res/drawable-xhdpi/book_group.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/book_user.png b/TMessagesProj/src/main/res/drawable-xhdpi/book_user.png old mode 100755 new mode 100644 index 22975744dc..461021ea84 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/book_user.png and b/TMessagesProj/src/main/res/drawable-xhdpi/book_user.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/bot_card.png b/TMessagesProj/src/main/res/drawable-xhdpi/bot_card.png index 844da73b99..ef303c9bde 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/bot_card.png and b/TMessagesProj/src/main/res/drawable-xhdpi/bot_card.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/bot_file.png b/TMessagesProj/src/main/res/drawable-xhdpi/bot_file.png old mode 100755 new mode 100644 index 9bc629bb98..62bca8a9a4 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/bot_file.png and b/TMessagesProj/src/main/res/drawable-xhdpi/bot_file.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/bot_invite.png b/TMessagesProj/src/main/res/drawable-xhdpi/bot_invite.png index dfadd04494..ff2ec7e408 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/bot_invite.png and b/TMessagesProj/src/main/res/drawable-xhdpi/bot_invite.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/bot_lines.png b/TMessagesProj/src/main/res/drawable-xhdpi/bot_lines.png old mode 100755 new mode 100644 index d3f815f399..c9199aea6d Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/bot_lines.png and b/TMessagesProj/src/main/res/drawable-xhdpi/bot_lines.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/bot_link.png b/TMessagesProj/src/main/res/drawable-xhdpi/bot_link.png old mode 100755 new mode 100644 index d2661da8fb..61f003f6fb Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/bot_link.png and b/TMessagesProj/src/main/res/drawable-xhdpi/bot_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/bot_location.png b/TMessagesProj/src/main/res/drawable-xhdpi/bot_location.png old mode 100755 new mode 100644 index a24ff3c684..9ecc2237bd Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/bot_location.png and b/TMessagesProj/src/main/res/drawable-xhdpi/bot_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/bot_music.png b/TMessagesProj/src/main/res/drawable-xhdpi/bot_music.png old mode 100755 new mode 100644 index 7d855d279f..b878278e18 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/bot_music.png and b/TMessagesProj/src/main/res/drawable-xhdpi/bot_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/bot_webview.png b/TMessagesProj/src/main/res/drawable-xhdpi/bot_webview.png index f2ce512408..15e375e467 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/bot_webview.png and b/TMessagesProj/src/main/res/drawable-xhdpi/bot_webview.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/bottom_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/bottom_shadow.png old mode 100755 new mode 100644 index 3c93e9e888..c22f65d7cf Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/bottom_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/bottom_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/call_arrow_right.png b/TMessagesProj/src/main/res/drawable-xhdpi/call_arrow_right.png deleted file mode 100644 index afc8dab132..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/call_arrow_right.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/calls_bluetooth.png b/TMessagesProj/src/main/res/drawable-xhdpi/calls_bluetooth.png index 9961711e4f..69c8889629 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/calls_bluetooth.png and b/TMessagesProj/src/main/res/drawable-xhdpi/calls_bluetooth.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/calls_camera_mini.png b/TMessagesProj/src/main/res/drawable-xhdpi/calls_camera_mini.png index 919e890439..6353b3aa74 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/calls_camera_mini.png and b/TMessagesProj/src/main/res/drawable-xhdpi/calls_camera_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/calls_decline.png b/TMessagesProj/src/main/res/drawable-xhdpi/calls_decline.png index eacde5ca9a..422532844d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/calls_decline.png and b/TMessagesProj/src/main/res/drawable-xhdpi/calls_decline.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/calls_flip.png b/TMessagesProj/src/main/res/drawable-xhdpi/calls_flip.png deleted file mode 100644 index 14358783c1..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/calls_flip.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/calls_headphones.png b/TMessagesProj/src/main/res/drawable-xhdpi/calls_headphones.png index 18c30056c4..58ab377ed8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/calls_headphones.png and b/TMessagesProj/src/main/res/drawable-xhdpi/calls_headphones.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/calls_menu_bluetooth.png b/TMessagesProj/src/main/res/drawable-xhdpi/calls_menu_bluetooth.png deleted file mode 100644 index 62e9fdd030..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/calls_menu_bluetooth.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/calls_menu_headset.png b/TMessagesProj/src/main/res/drawable-xhdpi/calls_menu_headset.png index caa9b94da9..1103415a60 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/calls_menu_headset.png and b/TMessagesProj/src/main/res/drawable-xhdpi/calls_menu_headset.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/calls_menu_phone.png b/TMessagesProj/src/main/res/drawable-xhdpi/calls_menu_phone.png index f1af9c7bcd..9a31abaff3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/calls_menu_phone.png and b/TMessagesProj/src/main/res/drawable-xhdpi/calls_menu_phone.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/calls_menu_speaker.png b/TMessagesProj/src/main/res/drawable-xhdpi/calls_menu_speaker.png deleted file mode 100644 index deb08f484f..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/calls_menu_speaker.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/calls_mute_mini.png b/TMessagesProj/src/main/res/drawable-xhdpi/calls_mute_mini.png index 62c99f4009..61c6dec947 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/calls_mute_mini.png and b/TMessagesProj/src/main/res/drawable-xhdpi/calls_mute_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/calls_sharescreen.png b/TMessagesProj/src/main/res/drawable-xhdpi/calls_sharescreen.png deleted file mode 100644 index cd1682c44b..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/calls_sharescreen.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/calls_speaker.png b/TMessagesProj/src/main/res/drawable-xhdpi/calls_speaker.png index 57ba169122..a3873e5ba9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/calls_speaker.png and b/TMessagesProj/src/main/res/drawable-xhdpi/calls_speaker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/calls_unmute.png b/TMessagesProj/src/main/res/drawable-xhdpi/calls_unmute.png index b9bb6168d2..c715e9bcb3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/calls_unmute.png and b/TMessagesProj/src/main/res/drawable-xhdpi/calls_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/calls_video.png b/TMessagesProj/src/main/res/drawable-xhdpi/calls_video.png index 4b790d7ac7..1c8967d07b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/calls_video.png and b/TMessagesProj/src/main/res/drawable-xhdpi/calls_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/camera_btn.png b/TMessagesProj/src/main/res/drawable-xhdpi/camera_btn.png old mode 100755 new mode 100644 index fc890d443a..1226c73457 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/camera_btn.png and b/TMessagesProj/src/main/res/drawable-xhdpi/camera_btn.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/camera_revert1.png b/TMessagesProj/src/main/res/drawable-xhdpi/camera_revert1.png old mode 100755 new mode 100644 index 2036b95cbc..0faf0b9ca9 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/camera_revert1.png and b/TMessagesProj/src/main/res/drawable-xhdpi/camera_revert1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/camera_revert2.png b/TMessagesProj/src/main/res/drawable-xhdpi/camera_revert2.png old mode 100755 new mode 100644 index 19a55bb568..f1fdd9f4fd Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/camera_revert2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/camera_revert2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/cancel_big.png b/TMessagesProj/src/main/res/drawable-xhdpi/cancel_big.png old mode 100755 new mode 100644 index 24e0947730..580d13a329 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/cancel_big.png and b/TMessagesProj/src/main/res/drawable-xhdpi/cancel_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_incoming.png b/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_incoming.png index 839d72f220..651e3d8082 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_incoming.png and b/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_incoming.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_outgoing.png b/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_outgoing.png index f8c373b77d..645c516973 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_outgoing.png and b/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_outgoing.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_video.png b/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_video.png index 7f077a3708..631561d9c1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_video.png and b/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_voice.png b/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_voice.png index fc5908f461..c35b07ea42 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_voice.png and b/TMessagesProj/src/main/res/drawable-xhdpi/chat_calls_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive.png b/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive.png index 347f18ffc5..788a948367 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive.png and b/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_arrow.png b/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_arrow.png index 34b11daa78..1ad42b1378 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_arrow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_box.png b/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_box.png index e224b4f08d..670655f9bc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_box.png and b/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_box.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_muted.png b/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_muted.png index 272d3f2965..e249dc6be7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_muted.png and b/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_pin.png b/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_pin.png index 2009266707..94c1f6348a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_pin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/chats_archive_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/chats_pin.png b/TMessagesProj/src/main/res/drawable-xhdpi/chats_pin.png index 442cd410c1..ae1b7daba0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/chats_pin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/chats_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/chats_replies.png b/TMessagesProj/src/main/res/drawable-xhdpi/chats_replies.png index c4f06484ff..4f9716dff1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/chats_replies.png and b/TMessagesProj/src/main/res/drawable-xhdpi/chats_replies.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/chats_saved.png b/TMessagesProj/src/main/res/drawable-xhdpi/chats_saved.png index 4e40842b86..8b0adf47a8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/chats_saved.png and b/TMessagesProj/src/main/res/drawable-xhdpi/chats_saved.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/chats_undo.png b/TMessagesProj/src/main/res/drawable-xhdpi/chats_undo.png index 9971b4e19e..6707948706 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/chats_undo.png and b/TMessagesProj/src/main/res/drawable-xhdpi/chats_undo.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/chats_unpin.png b/TMessagesProj/src/main/res/drawable-xhdpi/chats_unpin.png index cec51347e8..95e3590475 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/chats_unpin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/chats_unpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/checkbig.png b/TMessagesProj/src/main/res/drawable-xhdpi/checkbig.png index b6926321ed..dd373532cf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/checkbig.png and b/TMessagesProj/src/main/res/drawable-xhdpi/checkbig.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/circle.png b/TMessagesProj/src/main/res/drawable-xhdpi/circle.png old mode 100755 new mode 100644 index efac085f92..fc0bc700ff Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/circle.png and b/TMessagesProj/src/main/res/drawable-xhdpi/circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/circle_big.png b/TMessagesProj/src/main/res/drawable-xhdpi/circle_big.png old mode 100755 new mode 100644 index fe63e6ef4e..be3fb6be0f Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/circle_big.png and b/TMessagesProj/src/main/res/drawable-xhdpi/circle_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/compose_panel_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/compose_panel_shadow.png old mode 100755 new mode 100644 index a4133d2b70..0f29d3b438 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/compose_panel_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/compose_panel_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/delete.png b/TMessagesProj/src/main/res/drawable-xhdpi/delete.png index 03bc6ca1be..5624e9287a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/delete.png and b/TMessagesProj/src/main/res/drawable-xhdpi/delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/device_desktop_osx.png b/TMessagesProj/src/main/res/drawable-xhdpi/device_desktop_osx.png index 1d6bc0bf46..0583b1835a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/device_desktop_osx.png and b/TMessagesProj/src/main/res/drawable-xhdpi/device_desktop_osx.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/device_desktop_other.png b/TMessagesProj/src/main/res/drawable-xhdpi/device_desktop_other.png index 28b168d044..015237a822 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/device_desktop_other.png and b/TMessagesProj/src/main/res/drawable-xhdpi/device_desktop_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/device_desktop_win.png b/TMessagesProj/src/main/res/drawable-xhdpi/device_desktop_win.png index 0a163d6862..60fa6713f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/device_desktop_win.png and b/TMessagesProj/src/main/res/drawable-xhdpi/device_desktop_win.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/device_phone_android.png b/TMessagesProj/src/main/res/drawable-xhdpi/device_phone_android.png index 68509224eb..24d4158c90 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/device_phone_android.png and b/TMessagesProj/src/main/res/drawable-xhdpi/device_phone_android.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/device_phone_ios.png b/TMessagesProj/src/main/res/drawable-xhdpi/device_phone_ios.png index 83e70eeb7b..aeee9486b4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/device_phone_ios.png and b/TMessagesProj/src/main/res/drawable-xhdpi/device_phone_ios.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/device_tablet_android.png b/TMessagesProj/src/main/res/drawable-xhdpi/device_tablet_android.png index 5a984f687c..55069b70db 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/device_tablet_android.png and b/TMessagesProj/src/main/res/drawable-xhdpi/device_tablet_android.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/device_tablet_ios.png b/TMessagesProj/src/main/res/drawable-xhdpi/device_tablet_ios.png index c42267278b..be78b142d6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/device_tablet_ios.png and b/TMessagesProj/src/main/res/drawable-xhdpi/device_tablet_ios.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/device_web_chrome.png b/TMessagesProj/src/main/res/drawable-xhdpi/device_web_chrome.png index 48c76cbedc..c81e297e7d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/device_web_chrome.png and b/TMessagesProj/src/main/res/drawable-xhdpi/device_web_chrome.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/device_web_edge.png b/TMessagesProj/src/main/res/drawable-xhdpi/device_web_edge.png index 850ba347b9..9bf3564b18 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/device_web_edge.png and b/TMessagesProj/src/main/res/drawable-xhdpi/device_web_edge.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/device_web_firefox.png b/TMessagesProj/src/main/res/drawable-xhdpi/device_web_firefox.png index 9931425b11..e4f0910a20 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/device_web_firefox.png and b/TMessagesProj/src/main/res/drawable-xhdpi/device_web_firefox.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/device_web_opera.png b/TMessagesProj/src/main/res/drawable-xhdpi/device_web_opera.png index 009ffad930..bbe4154439 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/device_web_opera.png and b/TMessagesProj/src/main/res/drawable-xhdpi/device_web_opera.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/device_web_other.png b/TMessagesProj/src/main/res/drawable-xhdpi/device_web_other.png index 4810a1eb7f..e87558fe93 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/device_web_other.png and b/TMessagesProj/src/main/res/drawable-xhdpi/device_web_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/device_web_safari.png b/TMessagesProj/src/main/res/drawable-xhdpi/device_web_safari.png index fbedfffbbd..e87fef1242 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/device_web_safari.png and b/TMessagesProj/src/main/res/drawable-xhdpi/device_web_safari.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/dice.png b/TMessagesProj/src/main/res/drawable-xhdpi/dice.png index 527ab27ca6..bf8cc0b17a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/dice.png and b/TMessagesProj/src/main/res/drawable-xhdpi/dice.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/emoji_love.png b/TMessagesProj/src/main/res/drawable-xhdpi/emoji_love.png index d33496c224..1e987c639b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/emoji_love.png and b/TMessagesProj/src/main/res/drawable-xhdpi/emoji_love.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_faves.png b/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_faves.png index bf480ecaa9..e7f4c9b1a1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_faves.png and b/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_faves.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_new1.png b/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_new1.png index a87c465249..ad16bcc718 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_new1.png and b/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_new1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_new2.png b/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_new2.png index e9f4acad40..e38c59476b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_new2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_new2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_new3.png b/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_new3.png index e3b6b9bca7..81508dfdab 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_new3.png and b/TMessagesProj/src/main/res/drawable-xhdpi/emoji_tabs_new3.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/fab_compose_small.png b/TMessagesProj/src/main/res/drawable-xhdpi/fab_compose_small.png index 02485d4c75..f39cd773f7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/fab_compose_small.png and b/TMessagesProj/src/main/res/drawable-xhdpi/fab_compose_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/fast_scroll_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/fast_scroll_shadow.png index 81deef97fd..5c7b384238 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/fast_scroll_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/fast_scroll_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/files_folder.png b/TMessagesProj/src/main/res/drawable-xhdpi/files_folder.png index 5fea87f23a..92b6dd7e1d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/files_folder.png and b/TMessagesProj/src/main/res/drawable-xhdpi/files_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/files_gallery.png b/TMessagesProj/src/main/res/drawable-xhdpi/files_gallery.png index 3948143d8c..3a8441d778 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/files_gallery.png and b/TMessagesProj/src/main/res/drawable-xhdpi/files_gallery.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/files_internal.png b/TMessagesProj/src/main/res/drawable-xhdpi/files_internal.png index 92bd0325e4..b3c8ae111a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/files_internal.png and b/TMessagesProj/src/main/res/drawable-xhdpi/files_internal.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/files_music.png b/TMessagesProj/src/main/res/drawable-xhdpi/files_music.png index f5ec28d2cf..78289ad824 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/files_music.png and b/TMessagesProj/src/main/res/drawable-xhdpi/files_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/files_storage.png b/TMessagesProj/src/main/res/drawable-xhdpi/files_storage.png index f725cca2fb..8a542c0652 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/files_storage.png and b/TMessagesProj/src/main/res/drawable-xhdpi/files_storage.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_add_photo.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_add_photo.png index da4c0838ad..4a10451400 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_add_photo.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_add_photo.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_add_sticker.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_add_sticker.png index a1dd3b5026..a0817e59fd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_add_sticker.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_add_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_boost_plus.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_boost_plus.png index 2ee37f89e6..676a2a9d65 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_boost_plus.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_boost_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_button_reply.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_button_reply.png index 2d97a30f3d..29744d8d7f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_button_reply.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_button_reply.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_button_share.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_button_share.png index b0cff9400e..e2f153e003 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_button_share.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_button_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_chatlink_large.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_chatlink_large.png index ddef1ac7b9..72b4e5adfe 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_chatlink_large.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_chatlink_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_clear.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_clear.png index f8217fd9ff..8e4f48625f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_clear.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_directions.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_directions.png index 5855ce02a6..5bb9b8f51b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_directions.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_directions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_extend_location.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_extend_location.png index 565be3b76d..2f90306539 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_extend_location.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_extend_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_fire.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_fire.png index 81b35e8893..15d629dfaa 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_fire.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_fire.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_folder_existing.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_folder_existing.png index 7ef56b7687..e7c951a6da 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_folder_existing.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_folder_existing.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_folder_new.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_folder_new.png index 292add32ec..6a0722dd4f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_folder_new.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_folder_new.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_forward.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_forward.png index 4d1f57ea43..db636fdf3b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_forward.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_gift_premium.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_gift_premium.png index 8613cb0fde..a29abbb6fa 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_gift_premium.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_gift_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_giveaway_premium.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_giveaway_premium.png new file mode 100644 index 0000000000..a877f27db6 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_giveaway_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_giveaway_stars.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_giveaway_stars.png new file mode 100644 index 0000000000..d8521c9320 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_giveaway_stars.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_info.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_info.png index 0cc1157af6..9c7b4a1063 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_info.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_limit_boost.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_limit_boost.png index 0694ba1a01..9fdb29bffe 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_limit_boost.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_limit_boost.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_link.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_link.png index dce945995d..be37313e46 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_link.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_location.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_location.png index 78e7296009..907f300a37 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_location.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_location_forever.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_location_forever.png index c79e516943..25b1deb3aa 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_location_forever.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_location_forever.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_open_message.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_open_message.png index e88a9db714..a308a3d76d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_open_message.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_open_message.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_away.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_away.png index b6aa4d287d..10b1969de4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_away.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_away.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_bots.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_bots.png index 35db556567..e0dd1823a6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_bots.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_business.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_business.png index 14d09c01f2..d4e455ec8a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_business.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_business.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_camera.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_camera.png index b4ccdb5f9a..efc483ed7e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_camera.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_camera.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_chatlink.png index d82e0ac2c4..d4bd1db36a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_chatlink.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_hours.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_hours.png index afb707b47a..5f7c999661 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_hours.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_hours.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_intro.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_intro.png index 8e3a9d0a3e..f00a4cd2ea 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_intro.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_status2.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_status2.png index fd8d8a6345..4ee31fa00a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_status2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_premium_status2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_reply_quote.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_reply_quote.png index dcb4aea4bf..4265bd092d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_reply_quote.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_reply_quote.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_reply_settings.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_reply_settings.png index 838a0acd93..9184c5fe25 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_reply_settings.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_reply_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_sensitive.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_sensitive.png index c751e42266..06ffce0144 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_sensitive.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_sensitive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_star_plus.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_star_plus.png index 54c90b4edb..f68f8ea1d2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_star_plus.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_star_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_stop_location.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_stop_location.png index 448e3c5a87..cccc604e3f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_stop_location.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_stop_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_unclaimed.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_unclaimed.png index e83fa55738..355a181709 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_unclaimed.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_unclaimed.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_unknown.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_unknown.png index 780b44634d..683ccda7ea 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_unknown.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_unknown.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_username.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_username.png index ff060f08c7..c464bf7294 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_username.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_username.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_views.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_views.png index 4e2f852bc4..376ef9e3eb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_views.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_views.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/filled_widget_music.png b/TMessagesProj/src/main/res/drawable-xhdpi/filled_widget_music.png index 2049c4b15c..eb58a4f7ca 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/filled_widget_music.png and b/TMessagesProj/src/main/res/drawable-xhdpi/filled_widget_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/fingerprint.png b/TMessagesProj/src/main/res/drawable-xhdpi/fingerprint.png index efc0033ca5..a5a2fa8ecb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/fingerprint.png and b/TMessagesProj/src/main/res/drawable-xhdpi/fingerprint.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/flash_auto.png b/TMessagesProj/src/main/res/drawable-xhdpi/flash_auto.png old mode 100755 new mode 100644 index 3095c2a91b..9770457f98 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/flash_auto.png and b/TMessagesProj/src/main/res/drawable-xhdpi/flash_auto.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/flash_off.png b/TMessagesProj/src/main/res/drawable-xhdpi/flash_off.png old mode 100755 new mode 100644 index 250a2631ef..fd41e2f9e3 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/flash_off.png and b/TMessagesProj/src/main/res/drawable-xhdpi/flash_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/flash_on.png b/TMessagesProj/src/main/res/drawable-xhdpi/flash_on.png old mode 100755 new mode 100644 index 93129c8f1e..99b967a843 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/flash_on.png and b/TMessagesProj/src/main/res/drawable-xhdpi/flash_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/floating_check.png b/TMessagesProj/src/main/res/drawable-xhdpi/floating_check.png index 38b710e3ef..7655c3b964 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/floating_check.png and b/TMessagesProj/src/main/res/drawable-xhdpi/floating_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/floating_pencil.png b/TMessagesProj/src/main/res/drawable-xhdpi/floating_pencil.png old mode 100755 new mode 100644 index 91a9e8347f..6bb2a043ec Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/floating_pencil.png and b/TMessagesProj/src/main/res/drawable-xhdpi/floating_pencil.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/floating_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/floating_shadow.png old mode 100755 new mode 100644 index 02befbe68f..cb3bb5a053 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/floating_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/floating_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/floating_shadow_profile.png b/TMessagesProj/src/main/res/drawable-xhdpi/floating_shadow_profile.png old mode 100755 new mode 100644 index a60788ce9d..d6492f904d Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/floating_shadow_profile.png and b/TMessagesProj/src/main/res/drawable-xhdpi/floating_shadow_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/foursquare.png b/TMessagesProj/src/main/res/drawable-xhdpi/foursquare.png old mode 100755 new mode 100644 index d8c5479a9c..0a741231f5 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/foursquare.png and b/TMessagesProj/src/main/res/drawable-xhdpi/foursquare.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ghost.png b/TMessagesProj/src/main/res/drawable-xhdpi/ghost.png index a241d8026a..2b77b1930c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ghost.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ghost.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/gif_empty.png b/TMessagesProj/src/main/res/drawable-xhdpi/gif_empty.png index 00dcda935a..11540c5c4c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/gif_empty.png and b/TMessagesProj/src/main/res/drawable-xhdpi/gif_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/googlepay_button_background_image.9.png b/TMessagesProj/src/main/res/drawable-xhdpi/googlepay_button_background_image.9.png deleted file mode 100644 index 40f767d533..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/googlepay_button_background_image.9.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/group_edit.png b/TMessagesProj/src/main/res/drawable-xhdpi/group_edit.png old mode 100755 new mode 100644 index 876a61cd4f..93623c22de Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/group_edit.png and b/TMessagesProj/src/main/res/drawable-xhdpi/group_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/group_edit_profile.png b/TMessagesProj/src/main/res/drawable-xhdpi/group_edit_profile.png index de12f915ec..da261b5392 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/group_edit_profile.png and b/TMessagesProj/src/main/res/drawable-xhdpi/group_edit_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/groups_limit1.png b/TMessagesProj/src/main/res/drawable-xhdpi/groups_limit1.png index 94f98f854b..ee392d27ad 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/groups_limit1.png and b/TMessagesProj/src/main/res/drawable-xhdpi/groups_limit1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/groups_overview_check.png b/TMessagesProj/src/main/res/drawable-xhdpi/groups_overview_check.png index 3cae657f61..4ee8d236d3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/groups_overview_check.png and b/TMessagesProj/src/main/res/drawable-xhdpi/groups_overview_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/groupsintro.png b/TMessagesProj/src/main/res/drawable-xhdpi/groupsintro.png index 15c42953a5..83e1a7ac31 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/groupsintro.png and b/TMessagesProj/src/main/res/drawable-xhdpi/groupsintro.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/groupsintro2.png b/TMessagesProj/src/main/res/drawable-xhdpi/groupsintro2.png index 0015b1e078..31669db254 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/groupsintro2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/groupsintro2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/header_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/header_shadow.png old mode 100755 new mode 100644 index e5a5299694..0cdbcf12b3 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/header_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/header_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/header_shadow_reverse.png b/TMessagesProj/src/main/res/drawable-xhdpi/header_shadow_reverse.png index 847c63757c..b8df1d5e90 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/header_shadow_reverse.png and b/TMessagesProj/src/main/res/drawable-xhdpi/header_shadow_reverse.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/heart_confetti.png b/TMessagesProj/src/main/res/drawable-xhdpi/heart_confetti.png index bf707d8dd9..05e1e1a5f4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/heart_confetti.png and b/TMessagesProj/src/main/res/drawable-xhdpi/heart_confetti.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_back.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_back.png old mode 100755 new mode 100644 index c10c032fce..b1084c13ff Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_back.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_back.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_done.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_done.png old mode 100755 new mode 100644 index 2e93a6b31e..5493ed89cc Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_done.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_done.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_new.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_new.png old mode 100755 new mode 100644 index e905189fc9..da4d8ba005 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_new.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_new.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_other.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_other.png old mode 100755 new mode 100644 index 6baec5634b..228eeea43d Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_other.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_reply.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_reply.png index f709064def..b4cfe8b7a4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_reply.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_reply.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_reply2.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_reply2.png old mode 100755 new mode 100644 index 92cd0c7821..b962cac89f Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_reply2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_reply2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_search.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_search.png old mode 100755 new mode 100644 index 776e2b9280..b915019f46 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_search.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_again.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_again.png index 1ff614ccbc..d0b9c5dd2a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_again.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_again.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_againinline.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_againinline.png index 8660cc2bfe..f2d08b9639 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_againinline.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_againinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_arrow_drop_down.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_arrow_drop_down.png old mode 100755 new mode 100644 index be37cf66f4..41ff50ef89 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_arrow_drop_down.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_arrow_drop_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_call.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_call.png index 373a1e1042..274a6d499b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_call.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_call.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_call_end_white_24dp.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_call_end_white_24dp.png index 698765d248..4a4c438d03 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_call_end_white_24dp.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_call_end_white_24dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_call_made_green_18dp.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_call_made_green_18dp.png index f245589437..6fa0e116ed 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_call_made_green_18dp.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_call_made_green_18dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_call_received_green_18dp.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_call_received_green_18dp.png old mode 100755 new mode 100644 index fa6cedb087..c8ba76a194 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_call_received_green_18dp.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_call_received_green_18dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_chatlist_add_2.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_chatlist_add_2.png index e73d034a31..50a31b9158 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_chatlist_add_2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_chatlist_add_2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_chevron_right_black_18dp.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_chevron_right_black_18dp.png old mode 100755 new mode 100644 index d1587570b8..5cfe15e91b Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_chevron_right_black_18dp.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_chevron_right_black_18dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_close_white.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_close_white.png old mode 100755 new mode 100644 index f8fc317e1d..89ca291292 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_close_white.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_close_white.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_fp_40px.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_fp_40px.png deleted file mode 100644 index d8318633d8..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_fp_40px.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_gallery_background.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_gallery_background.png index 5363abac82..ecfc212ecc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_gallery_background.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_gallery_background.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_gofullscreen.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_gofullscreen.png index 6c3333f63e..6fe3bfdbb8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_gofullscreen.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_gofullscreen.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_goinline.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_goinline.png index f907238080..65417a8b18 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_goinline.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_goinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_layer_close.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_layer_close.png index 7462d61284..1dd7f1b7de 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_layer_close.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_layer_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_lock_header.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_lock_header.png old mode 100755 new mode 100644 index 25f996dec4..7dacd5d0f9 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_lock_header.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_lock_header.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_lock_white.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_lock_white.png index 36e58e99c6..9054a068e6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_lock_white.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_lock_white.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_masks_msk1.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_masks_msk1.png index bf6abc1371..bef88d315b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_masks_msk1.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_masks_msk1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_outfullscreen.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_outfullscreen.png index f7f7d0b1bd..15beeeb983 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_outfullscreen.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_outfullscreen.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_outinline.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_outinline.png index d4f55a273d..ace01d4bdc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_outinline.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_outinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_pause.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_pause.png index 3d6a9c5eee..78ae720ac9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_pause.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_pause.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_pauseinline.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_pauseinline.png index f49aed7571..b136f2af42 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_pauseinline.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_pauseinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_play.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_play.png index df1953f260..aa31a63b2e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_play.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_play.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_playinline.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_playinline.png index cd449d9c66..ad69c2cc5a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_playinline.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_playinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_rating_star.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_rating_star.png index 5277bc6822..fcfb3bb996 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_rating_star.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_rating_star.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_rating_star_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_rating_star_filled.png index 65ed8c2d08..ca4b149c40 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_rating_star_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_rating_star_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_reply_icon.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_reply_icon.png old mode 100755 new mode 100644 index 2d90808b5a..6ece1bc1cb Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_reply_icon.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_reply_icon.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_send.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_send.png old mode 100755 new mode 100644 index 517f4d7bf3..09c934e3b2 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_send.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_send.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_share_video.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_share_video.png index c31183e3d4..fb1edcdce2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_share_video.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_share_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_video.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_video.png index a7beabab41..2a8478524c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/ic_video.png and b/TMessagesProj/src/main/res/drawable-xhdpi/ic_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_attach.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_attach.png index a1f5c24c70..b839d1f3df 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_attach.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_attach.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_bot1.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_bot1.png index 5a20aa2071..61e3de39c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_bot1.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_bot1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_bot2.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_bot2.png index 8e3a848385..b39e7e7b72 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_bot2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_bot2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_calendar1.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_calendar1.png index 97f763fb46..c64fb23c8c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_calendar1.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_calendar1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_calendar2.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_calendar2.png index 71a0ebd159..184d4b408c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_calendar2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_calendar2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_clear.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_clear.png index b427bfccc3..5697860d94 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_clear.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_done.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_done.png index 14ce71c9b9..aa2ff276cf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_done.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_done.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_forward.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_forward.png index 1dc4705173..8103b4027d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_forward.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_keyboard.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_keyboard.png index 38ca12f9e1..6a76dc6a4c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_keyboard.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_keyboard.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_mic.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_mic.png index 1addb71dff..b4b10fc66a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_mic.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_mic.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_mic_pressed.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_mic_pressed.png index 33a7b4576f..5b7b6a6499 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_mic_pressed.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_mic_pressed.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_notify_off.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_notify_off.png index c4f5191e42..cb17e343af 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_notify_off.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_notify_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_notify_on.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_notify_on.png index b926fa34be..387e0612d5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_notify_on.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_notify_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_reply.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_reply.png index fb37e0c9ee..ed89e68739 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_reply.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_reply.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_schedule.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_schedule.png index 2fee885949..02d0e023dc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_schedule.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_schedule.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_smile.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_smile.png index edb1c3a124..0d8fd10b09 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_smile.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_smile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_video.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_video.png index 62ce504b1c..f8c72bdd19 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_video.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_video_pressed.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_video_pressed.png index a7014e55a4..6de78099e7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_video_pressed.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_video_pressed.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_video_story.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_video_story.png index 2685bf33f0..e287464e27 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_video_story.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_video_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/input_video_story_remove.png b/TMessagesProj/src/main/res/drawable-xhdpi/input_video_story_remove.png index f80c8f39dd..6f984bd3a2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/input_video_story_remove.png and b/TMessagesProj/src/main/res/drawable-xhdpi/input_video_story_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/instant_camera.png b/TMessagesProj/src/main/res/drawable-xhdpi/instant_camera.png old mode 100755 new mode 100644 index f3d6e2d8c8..43ccb20ec4 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/instant_camera.png and b/TMessagesProj/src/main/res/drawable-xhdpi/instant_camera.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_arrow.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_arrow.png old mode 100755 new mode 100644 index 39a6890176..b4e87ebd4b Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_arrow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_arrow_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_arrow_shadow.png old mode 100755 new mode 100644 index dafc5e7d63..e9fbc18674 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_arrow_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_arrow_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_body.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_body.png index 01ac1eb229..a6d7ab7e59 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_body.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_body.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_spiral.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_spiral.png old mode 100755 new mode 100644 index 2bdc3e92b7..84466b2c80 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_spiral.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_fast_spiral.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_bubble.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_bubble.png old mode 100755 new mode 100644 index 0426bf44b3..a2a268012d Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_bubble.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_bubble.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_bubble_dot.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_bubble_dot.png old mode 100755 new mode 100644 index 1a810f741d..d552d3b4a0 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_bubble_dot.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_bubble_dot.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_cam.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_cam.png old mode 100755 new mode 100644 index 59b1eb50c2..120541dda9 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_cam.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_cam.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_cam_lens.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_cam_lens.png old mode 100755 new mode 100644 index 491be5e1b2..1af336698d Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_cam_lens.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_cam_lens.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_pencil.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_pencil.png old mode 100755 new mode 100644 index 070a657805..232e5f5b58 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_pencil.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_pencil.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_pin.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_pin.png old mode 100755 new mode 100644 index b8cb6ae5dd..cfd4807e43 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_pin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_smile.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_smile.png old mode 100755 new mode 100644 index 5c5bbf22a6..98b337dace Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_smile.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_smile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_smile_eye.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_smile_eye.png old mode 100755 new mode 100644 index 61541a38a5..262b338857 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_smile_eye.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_smile_eye.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_videocam.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_videocam.png old mode 100755 new mode 100644 index 38f74ed11f..41c353f52f Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_videocam.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_ic_videocam.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_knot_down.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_knot_down.png old mode 100755 new mode 100644 index 9c27b1143e..412f4ccf69 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_knot_down.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_knot_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_knot_up.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_knot_up.png old mode 100755 new mode 100644 index 2356b28950..70bd1f2c43 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_knot_up.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_knot_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_infinity.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_infinity.png old mode 100755 new mode 100644 index 4a0b010ea8..08628b15c5 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_infinity.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_infinity.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_infinity_white.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_infinity_white.png old mode 100755 new mode 100644 index 6fbe740f34..43d18547aa Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_infinity_white.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_infinity_white.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_mask.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_mask.png old mode 100755 new mode 100644 index 698d221ee2..37a0428019 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_mask.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_mask.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_star.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_star.png old mode 100755 new mode 100644 index 2fc0573e0b..1253717921 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_star.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_powerful_star.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_private_door.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_private_door.png old mode 100755 new mode 100644 index a349fa890e..59908e7fbb Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_private_door.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_private_door.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_private_screw.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_private_screw.png old mode 100755 new mode 100644 index 499e278200..5c2ecc4460 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_private_screw.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_private_screw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/intro_tg_plane.png b/TMessagesProj/src/main/res/drawable-xhdpi/intro_tg_plane.png old mode 100755 new mode 100644 index a71f0ef492..d15409874a Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/intro_tg_plane.png and b/TMessagesProj/src/main/res/drawable-xhdpi/intro_tg_plane.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/knob_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/knob_shadow.png index 326d847189..b881b32d99 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/knob_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/knob_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_ads_info.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_ads_info.png index e687098105..8b3988f2df 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_ads_info.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_ads_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_archive.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_archive.png index a15966db63..70ed413781 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_archive.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_away.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_away.png index 192a253336..f3357f1e0c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_away.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_away.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_boosts.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_boosts.png index ea035a8fc4..5a7b9d5382 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_boosts.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_boosts.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_greeting.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_greeting.png index 0aa1c386f0..5af250a180 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_greeting.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_greeting.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_hashtags.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_hashtags.png index 6870311d7c..69991ba861 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_hashtags.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_hashtags.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_hidden.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_hidden.png index 31c29045e9..1ee4a533e5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_hidden.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_hidden.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_income.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_income.png index f30849ec26..a700bdf55d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_income.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_income.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_locked_post.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_locked_post.png index a7e1a3a30d..60b6da34a4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_locked_post.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_locked_post.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_log_actions.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_log_actions.png index 9c80bd1b22..55f0324a57 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_log_actions.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_log_actions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_message_lock.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_message_lock.png deleted file mode 100644 index b27f95b57a..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_message_lock.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_monetize.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_monetize.png index f672d4fbe2..bf09f9cd57 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_monetize.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_monetize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_notes.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_notes.png index 7e80be4b0b..93fecc9a5b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_notes.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_notes.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_quickreplies.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_quickreplies.png index 0de6883cca..09ef58aa87 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_quickreplies.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_quickreplies.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_repost_story.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_repost_story.png index 3b8ad4a6ee..69cfb9346f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_repost_story.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_repost_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_stealth.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_stealth.png index 9a344f0f7a..a40bb4e16a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_stealth.png and b/TMessagesProj/src/main/res/drawable-xhdpi/large_stealth.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/large_username.png b/TMessagesProj/src/main/res/drawable-xhdpi/large_username.png deleted file mode 100644 index 078ee90c57..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/large_username.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/layer_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/layer_shadow.png index e400c0f498..f7ce4a92e4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/layer_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/layer_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/left_status_profile.png b/TMessagesProj/src/main/res/drawable-xhdpi/left_status_profile.png index 577e619343..e9a5f93b9c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/left_status_profile.png and b/TMessagesProj/src/main/res/drawable-xhdpi/left_status_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/list_check.png b/TMessagesProj/src/main/res/drawable-xhdpi/list_check.png index bdc715d8c5..a4b7dd035d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/list_check.png and b/TMessagesProj/src/main/res/drawable-xhdpi/list_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/list_circle.png b/TMessagesProj/src/main/res/drawable-xhdpi/list_circle.png old mode 100755 new mode 100644 index 6b5b03d687..30e2795f6d Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/list_circle.png and b/TMessagesProj/src/main/res/drawable-xhdpi/list_circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/list_halfcheck.png b/TMessagesProj/src/main/res/drawable-xhdpi/list_halfcheck.png index 6a0f88009b..71c7779bb8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/list_halfcheck.png and b/TMessagesProj/src/main/res/drawable-xhdpi/list_halfcheck.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/list_mute.png b/TMessagesProj/src/main/res/drawable-xhdpi/list_mute.png index 8394b2a3b8..d6072d9489 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/list_mute.png and b/TMessagesProj/src/main/res/drawable-xhdpi/list_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/list_pin.png b/TMessagesProj/src/main/res/drawable-xhdpi/list_pin.png index 0502fa00d9..b6090fc98d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/list_pin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/list_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/list_reorder.png b/TMessagesProj/src/main/res/drawable-xhdpi/list_reorder.png index b1ed0a1d00..d835919209 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/list_reorder.png and b/TMessagesProj/src/main/res/drawable-xhdpi/list_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/list_secret.png b/TMessagesProj/src/main/res/drawable-xhdpi/list_secret.png old mode 100755 new mode 100644 index 18b59d99f6..0b4fdcd9f5 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/list_secret.png and b/TMessagesProj/src/main/res/drawable-xhdpi/list_secret.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/list_unmute.png b/TMessagesProj/src/main/res/drawable-xhdpi/list_unmute.png index 136be0e40e..50aee03fdd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/list_unmute.png and b/TMessagesProj/src/main/res/drawable-xhdpi/list_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/list_warning_sign.png b/TMessagesProj/src/main/res/drawable-xhdpi/list_warning_sign.png old mode 100755 new mode 100644 index b0b0d969c1..efbf7e62c1 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/list_warning_sign.png and b/TMessagesProj/src/main/res/drawable-xhdpi/list_warning_sign.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/live_loc.png b/TMessagesProj/src/main/res/drawable-xhdpi/live_loc.png index 32028e8544..48e78ba98c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/live_loc.png and b/TMessagesProj/src/main/res/drawable-xhdpi/live_loc.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/livepin.png b/TMessagesProj/src/main/res/drawable-xhdpi/livepin.png index 9eb89fc396..cdf938bb05 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/livepin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/livepin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/load_big.png b/TMessagesProj/src/main/res/drawable-xhdpi/load_big.png old mode 100755 new mode 100644 index e8f2a10307..b1a60a8f18 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/load_big.png and b/TMessagesProj/src/main/res/drawable-xhdpi/load_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/location_empty.png b/TMessagesProj/src/main/res/drawable-xhdpi/location_empty.png index 86d59de351..730bda5fc9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/location_empty.png and b/TMessagesProj/src/main/res/drawable-xhdpi/location_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/login_arrow1.png b/TMessagesProj/src/main/res/drawable-xhdpi/login_arrow1.png index 91840c04bf..5bdbb8b770 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/login_arrow1.png and b/TMessagesProj/src/main/res/drawable-xhdpi/login_arrow1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/login_phone1.png b/TMessagesProj/src/main/res/drawable-xhdpi/login_phone1.png index cfb7173066..5b5b6a4900 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/login_phone1.png and b/TMessagesProj/src/main/res/drawable-xhdpi/login_phone1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/logo_middle.png b/TMessagesProj/src/main/res/drawable-xhdpi/logo_middle.png index 1a5cda5a8f..b5b4b176ed 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/logo_middle.png and b/TMessagesProj/src/main/res/drawable-xhdpi/logo_middle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/map_pin.png b/TMessagesProj/src/main/res/drawable-xhdpi/map_pin.png index 982737190a..4426252c66 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/map_pin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/map_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/map_pin2.png b/TMessagesProj/src/main/res/drawable-xhdpi/map_pin2.png index 3dd8a69b2c..c5d276eab9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/map_pin2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/map_pin2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/map_pin_circle.png b/TMessagesProj/src/main/res/drawable-xhdpi/map_pin_circle.png index 5bb002ab58..5cd8e3ddbe 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/map_pin_circle.png and b/TMessagesProj/src/main/res/drawable-xhdpi/map_pin_circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/map_pin_cone2.png b/TMessagesProj/src/main/res/drawable-xhdpi/map_pin_cone2.png index 68ec2ddb44..fd8701ccb6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/map_pin_cone2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/map_pin_cone2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/map_pin_photo.png b/TMessagesProj/src/main/res/drawable-xhdpi/map_pin_photo.png index 03fc81436d..40c41007b7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/map_pin_photo.png and b/TMessagesProj/src/main/res/drawable-xhdpi/map_pin_photo.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_button_erase.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_button_erase.png index 3e1167081a..6d6a38f4e1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_button_erase.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_button_erase.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_button_restore.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_button_restore.png index ee2b87758b..148e525078 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_button_restore.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_button_restore.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_button_undo.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_button_undo.png deleted file mode 100644 index b2bf2a8c0e..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_button_undo.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_crop.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_crop.png index a303f38d58..8a1cc6b001 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_crop.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_crop.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_blue.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_blue.png index 828d62d453..0446836d89 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_blue.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_blue.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_blue_b.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_blue_b.png index 7125c99b88..1bfa967424 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_blue_b.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_blue_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_green.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_green.png index 4643143618..ddcce5b7cc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_green.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_green.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_green_b.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_green_b.png index 32970944f3..fa670a5bb8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_green_b.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_green_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_red.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_red.png index 31270a8695..8e78ad44ab 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_red.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_red.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_red_b.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_red_b.png index 03a810e7f2..07ed5c2cb6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_red_b.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_red_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_yellow.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_yellow.png index c0ab837512..4865f6ebc6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_yellow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_yellow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_yellow_b.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_yellow_b.png index 8551c6a615..5e7157a15b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_yellow_b.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_doc_yellow_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_download.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_download.png index ccaa8194be..5dbd1a2651 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_download.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_download.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_draw.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_draw.png index f7567f2e74..370cd9a3c4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_draw.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_draw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_dual_camera2.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_dual_camera2.png index 503b769f93..90b41c1974 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_dual_camera2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_dual_camera2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_dual_camera2_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_dual_camera2_shadow.png index 49aa1a5159..e8fbd57c79 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_dual_camera2_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_dual_camera2_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_flip.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_flip.png index 5e4b9788a3..a95774b63f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_flip.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_flip.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_like.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_like.png index ba7f3d9322..e89f983a0b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_like.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_like.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_like_active.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_like_active.png index a09823c84f..cf0be8802c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_like_active.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_like_active.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_magic_cut.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_magic_cut.png index 0a83d74375..5cfb30d1a7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_magic_cut.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_magic_cut.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_more.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_more.png index e6773f82dd..49a43ec28f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_more.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_more.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_mute.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_mute.png index c3b687add9..0af2a08a97 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_mute.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_photo_flash_auto2.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_photo_flash_auto2.png index 947ef3e2df..2943f073cd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_photo_flash_auto2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_photo_flash_auto2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_photo_flash_off2.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_photo_flash_off2.png index b951375603..43dccd7ed1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_photo_flash_off2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_photo_flash_off2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_photo_flash_on2.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_photo_flash_on2.png index 13e59b3790..32c5408553 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_photo_flash_on2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_photo_flash_on2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_repost.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_repost.png index 8efc78de49..6757502422 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_repost.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_repost.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_settings.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_settings.png index b358190fed..4fe20cce16 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_settings.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_share.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_share.png index 2cdf169d00..d8231573f6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_share.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_sticker_stroke.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_sticker_stroke.png index d390a1bb87..bee3190300 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_sticker_stroke.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_sticker_stroke.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/media_unmute.png b/TMessagesProj/src/main/res/drawable-xhdpi/media_unmute.png index acd43dee50..1488c4109f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/media_unmute.png and b/TMessagesProj/src/main/res/drawable-xhdpi/media_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mentionbutton.png b/TMessagesProj/src/main/res/drawable-xhdpi/mentionbutton.png index 790344acda..4a5af183f3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mentionbutton.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mentionbutton.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mentionchatslist.png b/TMessagesProj/src/main/res/drawable-xhdpi/mentionchatslist.png index e8f0383f39..937e250ac3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mentionchatslist.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mentionchatslist.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_birthday.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_birthday.png index 641d3daaea..8c1dc4566b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_birthday.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_birthday.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_arrowup.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_arrowup.png index ad3b42ff0c..cb416cd76d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_arrowup.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_arrowup.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_bookmark.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_bookmark.png index fba8edcce2..f65de27445 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_bookmark.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_bookmark.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_bookmarks.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_bookmarks.png index 9787545a46..2af649aa95 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_bookmarks.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_bookmarks.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_refresh.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_refresh.png index 26d167380d..658067448d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_refresh.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_refresh.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_search.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_search.png index 54b1c4c791..a7242af000 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_search.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_browser_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_cashtag.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_cashtag.png index fcea05210f..1de3ecff42 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_cashtag.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_cashtag.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_cache.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_cache.png index 86a04122be..2eae8308ac 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_cache.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_cache.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_cookies.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_cookies.png index 8835d629ae..5d1f39db5b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_cookies.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_cookies.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_history.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_history.png index d45a2b97a3..c62e5c914d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_history.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_history.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_recent.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_recent.png index f2861d95ac..fc5d9ed8e0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_recent.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_clear_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_contact_existing.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_contact_existing.png index 3269edf417..64d7974701 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_contact_existing.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_contact_existing.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_copy_s.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_copy_s.png index 44e726d83b..a75171a75f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_copy_s.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_copy_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_cover_stories.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_cover_stories.png index e10ccef538..4f39218b56 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_cover_stories.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_cover_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_delete_old.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_delete_old.png index f3c08dbbac..75c93f01ff 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_delete_old.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_delete_old.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_devices.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_devices.png index 50c5d6b2bf..681d20a46a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_devices.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_devices.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_edit_appearance.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_edit_appearance.png index 9f719c49b6..e52c46e507 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_edit_appearance.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_edit_appearance.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_external_link.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_external_link.png index a58df3b3fe..0cb4543c71 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_external_link.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_external_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_factcheck.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_factcheck.png index c40298b854..1a04b6e253 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_factcheck.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_factcheck.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_color_name.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_color_name.png index e0e0b64b21..2ebb565cb4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_color_name.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_color_name.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_color_profile.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_color_profile.png index c323be6963..e592aaf103 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_color_profile.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_color_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_cover.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_cover.png index 1998d60f1f..0f56a0b512 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_cover.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_cover.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_cpm.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_cpm.png index 5b790290df..2e2d47abb5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_cpm.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_cpm.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_custombg.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_custombg.png index 1ce9d9c8a6..57c525194c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_custombg.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_custombg.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_intro.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_intro.png index bc3cea83eb..11142e4562 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_intro.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_links.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_links.png index 2bf1895d15..e6724d6b0a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_links.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_links.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_links2.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_links2.png index 6f7f647994..b5efc77c24 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_links2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_links2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_noads.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_noads.png index 9cf76da401..578c6953d3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_noads.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_noads.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_pack.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_pack.png index ffa0b64148..3f0b20f05f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_pack.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_pack.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_paid.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_paid.png index bd28b505c8..e37a7314d1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_paid.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_paid.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_reactions.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_reactions.png index 4203ca32d6..271517e8dc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_reactions.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_split.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_split.png index 496e4cde26..0fb4a2bf60 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_split.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_split.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_status.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_status.png index cb4008be77..ab4e161af5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_status.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_stories.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_stories.png index ea5f32b63e..582979364d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_stories.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_translate.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_translate.png index bbc7db1619..7115654901 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_translate.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_translate.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_voice.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_voice.png index b2aa749957..a2b4ef79fc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_voice.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_wallpaper.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_wallpaper.png index 2c8ad96ea0..a3d20da6ad 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_wallpaper.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_wallpaper.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_withdrawals.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_withdrawals.png index 8518fd9c2a..7fd85898d4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_withdrawals.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_feature_withdrawals.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_gift.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_gift.png index ddec205892..3874406b10 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_gift.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_hashtag.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_hashtag.png index a698811b59..3d32d3f823 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_hashtag.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_hashtag.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_instant_view.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_instant_view.png index f7de420ddd..4aeafc3525 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_instant_view.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_instant_view.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_intro.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_intro.png index 4a42fdb6ea..fac993e4c2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_intro.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_invit_telegram.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_invit_telegram.png index d3366ca955..0f5c7fe130 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_invit_telegram.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_invit_telegram.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_link_create.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_link_create.png index e2c5c0360f..c4b9be7d30 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_link_create.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_link_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_away.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_away.png index 2a9735b35b..9e1f01b3a1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_away.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_away.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_chatbot.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_chatbot.png index ee5c89c74f..2e159e610f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_chatbot.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_chatbot.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_chatlink.png index d034483d2c..053faa503b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_chatlink.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_clock.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_clock.png index 36c87ddf65..19689d4c9c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_clock.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_clock.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_clock_add.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_clock_add.png index d8975f62df..7a23aceccf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_clock_add.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_clock_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_effects.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_effects.png index ce83e1a0b1..6badbaad06 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_effects.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_effects.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_location.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_location.png index 09ee1ecf42..6581014934 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_location.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_main.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_main.png index 6b2dd92f49..66c3876c07 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_main.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_main.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_privacy.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_privacy.png index c04c185321..6e07fd580d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_privacy.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_privacy.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_seen.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_seen.png index 4d45b776b3..9bf31b9011 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_seen.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_seen.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_tools.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_tools.png index 51b04bea0d..c2049f8a35 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_tools.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_premium_tools.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_privacy.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_privacy.png index 8d5eff6c2c..7aa29a16b8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_privacy.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_privacy.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_privacy_policy.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_privacy_policy.png index aef39cac6b..940935a611 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_privacy_policy.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_privacy_policy.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_profile_colors.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_profile_colors.png index c775f7d6be..e88ea02bbb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_profile_colors.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_profile_colors.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_profile_colors_locked.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_profile_colors_locked.png index aae9a3cd73..c3e6d60cf4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_profile_colors_locked.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_profile_colors_locked.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_quality_hd.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_quality_hd.png index a2efe33ae5..4f68652047 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_quality_hd.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_quality_hd.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_quality_hd2.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_quality_hd2.png index 189f2dde2d..df16688e0d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_quality_hd2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_quality_hd2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_quality_sd.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_quality_sd.png index b90f9f1d38..4185ad712f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_quality_sd.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_quality_sd.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_quickreply.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_quickreply.png index ff397676a2..7d41fc6e98 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_quickreply.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_quickreply.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_quote_delete.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_quote_delete.png index 4b58a477f1..6c97f77aee 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_quote_delete.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_quote_delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_quote_specific.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_quote_specific.png index 1ed26f4e3b..a79ca27e86 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_quote_specific.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_quote_specific.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_random.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_random.png new file mode 100644 index 0000000000..a15d1e863d Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_random.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_select_quote.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_select_quote.png index cb8767be48..5edf4b045f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_select_quote.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_select_quote.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_shadow.png old mode 100755 new mode 100644 index 50dac59a05..7c8455c2c5 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_shop.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_shop.png index bc4ecf134a..7cbc678e43 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_shop.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_shop.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_stars_gift.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_stars_gift.png index 8dea765a3a..f2833cfca6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_stars_gift.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_stars_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_sticker_add.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_sticker_add.png index 0de7829c6c..5120fd8435 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_sticker_add.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_sticker_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_sticker_select.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_sticker_select.png index 58961d633b..3c4d8c91c8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_sticker_select.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_sticker_select.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_storage_path.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_storage_path.png index 4bc039d3e2..4cfdc9e077 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_storage_path.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_storage_path.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_delete.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_delete.png index 75f81bc71a..a38cd0c1c7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_delete.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_edit.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_edit.png index 23a6e406ff..d4a0c2b9f2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_edit.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_filter.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_filter.png index 3dec62c4d9..4892789bc8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_filter.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_filter.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_plus.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_plus.png index 6be83c70c4..e4320685dc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_plus.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_rename.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_rename.png index 3a428a24bb..2dbfa05ad0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_rename.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_tag_rename.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_unsave_story.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_unsave_story.png index 23ef396fa9..8e8936d5b4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_unsave_story.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_unsave_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_username_change.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_username_change.png index 2c1bd2ee78..88fdbc48d2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_username_change.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_username_change.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_username_set.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_username_set.png index 9a4a5d71ba..aa16ce3739 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_username_set.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_username_set.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reactions.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reactions.png index 95c19bc45d..25e96df3d8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reactions.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reactions2.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reactions2.png index 60a20efb2b..57a5a9102b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reactions2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reactions2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reactions3.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reactions3.png index 787c5f82ef..37241d5242 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reactions3.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reactions3.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_recent.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_recent.png index 64c0587127..417fcbfb69 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_recent.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_recent2.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_recent2.png index a9bb83f948..a586465291 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_recent2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_recent2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_recent3.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_recent3.png index cf3e74e1e5..7055f233d8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_recent3.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_recent3.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reposts.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reposts.png index 68b8b4279b..af6d25676d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reposts.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reposts.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reposts3.png b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reposts3.png index ebe9271c2e..236f6b347b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reposts3.png and b/TMessagesProj/src/main/res/drawable-xhdpi/menu_views_reposts3.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/message_arrow.png b/TMessagesProj/src/main/res/drawable-xhdpi/message_arrow.png old mode 100755 new mode 100644 index a74690ef36..bbb9fbf1f4 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/message_arrow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/message_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_badge.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_badge.png index 072c7609c9..af822cc5f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_badge.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_badge.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_button.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_button.png index b2ae96ea26..f1a9e1d09a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_button.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_button.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_profile_badge.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_profile_badge.png index 1b432add71..a76d323aa5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_profile_badge.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_profile_badge.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_profile_badge2.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_profile_badge2.png index 77a74d06fa..4f09ddada3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_profile_badge2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_profile_badge2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_remove.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_remove.png index 5a87e9dfb1..8baaf9b2e3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_remove.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_boost_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_browser_iv.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_browser_iv.png new file mode 100644 index 0000000000..c69eb9e19f Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_browser_iv.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_external_link.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_external_link.png index 51f1e7c335..c5af20661b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_external_link.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_external_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_forward_story.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_forward_story.png index 475754e90e..cde9c99c84 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_forward_story.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_forward_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_forwarded.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_forwarded.png index 0439efca21..f45dfd79e9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_forwarded.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_forwarded.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_gift.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_gift.png index 0935d6f046..82ab2862ee 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_gift.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_giveaway.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_giveaway.png index 98c4c579f6..877df10083 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_giveaway.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_giveaway.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_like_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_like_filled.png index 65a83fd373..a6a1de7057 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_like_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_like_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_more_dots.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_more_dots.png index 0fff3789b2..1dc5d3288a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_more_dots.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_more_dots.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_quote.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_quote.png index 8d689530c6..44bf47109b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_quote.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_quote.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_reply_user.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_reply_user.png index c3b1ae3348..9c6ba9543f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_reply_user.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_reply_user.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_repost_story.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_repost_story.png index bd39b06b3e..05ae55a9ac 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_repost_story.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_repost_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_repost_story2.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_repost_story2.png index 9f47146735..1a3ec564ad 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_repost_story2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_repost_story2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_stats_likes.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_stats_likes.png index f2491c4130..c45e74882d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_stats_likes.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_stats_likes.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_stats_shares.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_stats_shares.png index 7e8c3c573e..f5a35fdb26 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_stats_shares.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_stats_shares.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_switch_lock.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_switch_lock.png index fb85886d39..09077a4710 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_switch_lock.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_switch_lock.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_ton.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_ton.png index 265eb21a51..8a1705938c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_ton.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_ton.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_viewonce.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_viewonce.png index 304fd80958..43d09a1a56 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_viewonce.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_viewonce.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/mini_views_likes.png b/TMessagesProj/src/main/res/drawable-xhdpi/mini_views_likes.png index 0a4da8cbe3..0e978f1dad 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/mini_views_likes.png and b/TMessagesProj/src/main/res/drawable-xhdpi/mini_views_likes.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/minibubble_in.png b/TMessagesProj/src/main/res/drawable-xhdpi/minibubble_in.png index fc307d3491..e21e88b154 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/minibubble_in.png and b/TMessagesProj/src/main/res/drawable-xhdpi/minibubble_in.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/minibubble_out.png b/TMessagesProj/src/main/res/drawable-xhdpi/minibubble_out.png index 028aa62c4c..7b0a5e207a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/minibubble_out.png and b/TMessagesProj/src/main/res/drawable-xhdpi/minibubble_out.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/miniplayer_close.png b/TMessagesProj/src/main/res/drawable-xhdpi/miniplayer_close.png index 42b33699e5..3726523bc6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/miniplayer_close.png and b/TMessagesProj/src/main/res/drawable-xhdpi/miniplayer_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/minithumb_play.png b/TMessagesProj/src/main/res/drawable-xhdpi/minithumb_play.png index e5be4b4eb3..931489a7ed 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/minithumb_play.png and b/TMessagesProj/src/main/res/drawable-xhdpi/minithumb_play.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_animations.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_animations.png index 701ae27c3d..20749315ff 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_animations.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_animations.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_archived_stickers.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_archived_stickers.png index 1539ec746a..e39388bbcd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_archived_stickers.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_archived_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_ask_question.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_ask_question.png index 1039eb522e..1b12a38362 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_ask_question.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_ask_question.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_autodelete.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_autodelete.png index 4d734e91be..bf494b1982 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_autodelete.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_autodelete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_battery.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_battery.png index b437bf6350..d1cf3a67a5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_battery.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_battery.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_block2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_block2.png index 1d1aceec36..4e1838296a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_block2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_block2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_call_earpiece.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_call_earpiece.png index fba2c11c8c..0d31af9884 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_call_earpiece.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_call_earpiece.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_chats_add.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_chats_add.png index 13e2eadc03..910dc10f6c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_chats_add.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_chats_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_data.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_data.png index 174dc17246..391bda5a71 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_data.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_data.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_devices.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_devices.png index ae4978bb08..5334470c1d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_devices.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_devices.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_discussion.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_discussion.png index 0554f68ac6..a1a0f04404 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_discussion.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_discussion.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_email.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_email.png index 5afce21d89..541964c6d2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_email.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_email.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_folder.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_folder.png index d72caea0a6..af1a2be0fb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_folder.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_gif.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_gif.png index b8521c198d..4ac29f0984 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_gif.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_gif.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_help.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_help.png index 5b237db11b..c855368b3b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_help.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_help.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_language.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_language.png index 6aeb23e3ff..e54985b9b0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_language.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_language.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_link2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_link2.png index ce9169c113..15c5e29e93 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_link2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_link2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_night_auto.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_night_auto.png index c91c5465c3..2e3ab394cf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_night_auto.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_night_auto.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_notifications.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_notifications.png index 83d35bc62f..fe6daa95d4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_notifications.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_notifications.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_permissions.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_permissions.png index 2eec3be697..a7cda8c92d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_permissions.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_permissions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_policy.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_policy.png index ff4486d67e..bdb713721a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_policy.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_policy.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_proxy_off.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_proxy_off.png index 0fdccec40a..76202f23fe 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_proxy_off.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_proxy_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_proxy_on.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_proxy_on.png index 461b51da1f..ad914ddadd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_proxy_on.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_proxy_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_reactions2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_reactions2.png index bc596e4044..09123f303a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_reactions2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_reactions2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_secret.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_secret.png index ba31a862d5..9faa8ad29e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_secret.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_secret.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_smile_status.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_smile_status.png index 30ba292182..dadb735dd3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_smile_status.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_smile_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_sticker.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_sticker.png index c62dbc2ba7..ad5ffae226 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_sticker.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_trending.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_trending.png index d9ac089997..e0a64f4d68 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_trending.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_trending.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_videocall.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_videocall.png index 355af10bf7..a089dfdeff 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg2_videocall.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg2_videocall.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_actions.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_actions.png old mode 100755 new mode 100644 index 8f20d3a998..170a31768d Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_actions.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_actions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_add.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_add.png index a45346d8ad..5ba046d008 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_add.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_addbio.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_addbio.png index 39ae15d863..6afd581753 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_addbio.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_addbio.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_addbot.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_addbot.png index 6fdb01c03e..3b37aba7ea 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_addbot.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_addbot.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_addcontact.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_addcontact.png index 10fb39f154..d8c34d229e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_addcontact.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_addcontact.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_addfolder.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_addfolder.png index cb557d87f3..4466aab245 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_addfolder.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_addfolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_addphoto.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_addphoto.png index 8233b876d2..2eaa7e0f0c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_addphoto.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_addphoto.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_admin_add.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_admin_add.png index e8f19fc056..f7cc102e1d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_admin_add.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_admin_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_admins.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_admins.png index 08291300e2..07e444cfa8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_admins.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_admins.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_allowspeak.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_allowspeak.png index f165d1b4a2..f13639c14e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_allowspeak.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_allowspeak.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive.png index b6acc74b15..5104ba4b10 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_archive.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_archive.png index 867333abae..1f5e3ec77c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_archive.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_hide.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_hide.png index 48a1b81380..14e94912db 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_hide.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_hide.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_show.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_show.png index 26e00b1eae..f66c590e67 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_show.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_show.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_stories.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_stories.png index 395c354275..64a215484b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_stories.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_archive_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrow_avatar.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrow_avatar.png index 9ce02f52d4..f79ca97c11 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrow_avatar.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrow_avatar.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrow_back.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrow_back.png index 9eaff4e23a..1441aed72e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrow_back.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrow_back.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrow_forward.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrow_forward.png index 5b068f7d79..70353d908b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrow_forward.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrow_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrowright.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrowright.png index 8bd5a03821..1fc08bb9e1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrowright.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_arrowright.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete.png index 41b451a44b..891ffc3246 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_1d.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_1d.png index 04f068450f..73576ff8ca 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_1d.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_1d.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_1m.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_1m.png index f5c36154cd..27e7d7873e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_1m.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_1m.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_1w.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_1w.png index 58edfe6bf3..4f9b6b5bc4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_1w.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_1w.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_2d.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_2d.png index 85567a0cd7..3d794ba54e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_2d.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_2d.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_badge2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_badge2.png index 7e204e3eae..18ec3e14a0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_badge2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_autodelete_badge2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_background.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_background.png index f0566641eb..3b2c69770d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_background.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_background.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_block.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_block.png index 848bdaf89b..c0c9975b01 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_block.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_block.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_block2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_block2.png index 80c7299a49..2748e9b622 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_block2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_block2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_blur_linear.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_blur_linear.png index 1be0ee505e..d34fc987d1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_blur_linear.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_blur_linear.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_blur_off.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_blur_off.png index 3ba8546718..d89808427f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_blur_off.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_blur_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_blur_radial.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_blur_radial.png index 748dc45359..64366fdeb5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_blur_radial.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_blur_radial.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_bot.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_bot.png index 43c4a5a0e2..52e2046d05 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_bot.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_bot.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_bots.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_bots.png index a95bf9bea2..1eceb0796b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_bots.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_brightness_high.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_brightness_high.png index 6ddb51ddbc..b1f60affdb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_brightness_high.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_brightness_high.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_brightness_low.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_brightness_low.png index 750e1104bc..ed780e3c2a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_brightness_low.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_brightness_low.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calendar.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calendar.png index 8e24c41f13..b73003673e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calendar.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calendar.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calendar2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calendar2.png index f6ed76b785..a4e1750555 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calendar2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calendar2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_bluetooth.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_bluetooth.png index 9453e9f6ee..12d5b2e4a9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_bluetooth.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_bluetooth.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_earpiece.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_earpiece.png index 252f23fa0b..0bb1eb0e64 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_earpiece.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_earpiece.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_minimize.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_minimize.png index 80a9cd3cb8..4d514b128e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_minimize.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_minimize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_minimize_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_minimize_shadow.png index 90e8453646..6ba3ebb53c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_minimize_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_minimize_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_speaker.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_speaker.png index 88b012a680..d0e88a9683 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_speaker.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_call_speaker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_callback.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_callback.png index 22e43320d7..53c49e6cc6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_callback.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_callback.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls.png index a32738d845..44cbda9a73 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_14.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_14.png index 70ac7ca3c9..48f8baea46 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_14.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_hw.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_hw.png index 918b842fc0..383a87e1a9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_hw.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_minimize.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_minimize.png index 67e9e8147b..f1c17f1ba1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_minimize.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_minimize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_ny.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_ny.png index 8113c9a946..4635aef6d7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_ny.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_regular.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_regular.png index 54a9ab017b..9ce12eae3b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_regular.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_calls_regular.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_camera.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_camera.png index f594c73f5b..36881c971b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_camera.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_camera.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_cancel.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_cancel.png index e41b94ab09..71944245c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_cancel.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_cancel.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_channel.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_channel.png index b877a8f203..d776ed00eb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_channel.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_channel.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_channel_create.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_channel_create.png index 53b0a25c3c..53fe722685 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_channel_create.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_channel_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_chats_remove.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_chats_remove.png index 2edec14004..163a92926e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_chats_remove.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_chats_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_check_s.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_check_s.png index a78667817b..b70f7cc92e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_check_s.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_check_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_clear.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_clear.png index eb0ec071a8..890379ccaf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_clear.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_clear_input.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_clear_input.png index 6f6d641fb1..46156c2b1e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_clear_input.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_clear_input.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_clear_recent.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_clear_recent.png index d8a6f53218..c59a363bc6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_clear_recent.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_clear_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_clearcache.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_clearcache.png index ada3ce9bad..d9f5923b28 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_clearcache.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_clearcache.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_close.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_close.png index bb809fc7f5..64ce0d18d3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_close.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_colors.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_colors.png index a3d2a6e574..f184a533e1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_colors.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_colors.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contact.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contact.png old mode 100755 new mode 100644 index c2d5029f9a..81e3a39cad Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contact.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contact.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contact_add.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contact_add.png index cf1024fef0..36092babbe 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contact_add.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contact_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts.png index 17acf05b6e..4b6599b014 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_14.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_14.png index b753e44da0..dbae30321e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_14.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_hw.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_hw.png index 6fb388e3fc..13e3214d80 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_hw.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_name.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_name.png index bdcafccf4c..bd85985a65 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_name.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_name.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_ny.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_ny.png index 5c9cdb8ebe..16c667766d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_ny.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_time.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_time.png index 38083e8ba5..380604bd39 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_time.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_contacts_time.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_copy.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_copy.png index 366fa5280b..fd315c4800 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_copy.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_copy.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_copy_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_copy_filled.png index aef58235a2..456e479128 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_copy_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_copy_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_current_location.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_current_location.png index d8caf7e1a9..c78b13beb0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_current_location.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_current_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_customize.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_customize.png index d135532d59..bf1f731dca 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_customize.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_customize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_customize_s.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_customize_s.png index 4de08784af..8990a520b3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_customize_s.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_customize_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_delete.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_delete.png index 6feea8c689..b614b6fc59 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_delete.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_delete_auto.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_delete_auto.png index 22431d8d3e..348b4585db 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_delete_auto.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_delete_auto.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_delete_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_delete_filled.png index b96177128a..fc1b3b7736 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_delete_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_delete_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_disable.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_disable.png index eac4873c4b..9187948eee 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_disable.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_disable.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_discuss.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_discuss.png index 6c66533f88..b93d2502d1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_discuss.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_discuss.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_discussion.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_discussion.png index c621d0103d..c2782ff29a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_discussion.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_discussion.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_download.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_download.png index 2f9f7e7c2f..b92ea2130f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_download.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_download.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_download_settings.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_download_settings.png index c85c04fc42..84e6899b63 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_download_settings.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_download_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_edit.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_edit.png index 08d66c61ca..34e09c504c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_edit.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_activities.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_activities.png index af874d5507..9cb463c9e1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_activities.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_activities.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_cat.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_cat.png index 835c0e4467..c1bed1063d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_cat.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_cat.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_flags.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_flags.png index d7a98f26ca..be85843733 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_flags.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_flags.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_food.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_food.png index 10fedebf85..d07052a322 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_food.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_food.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_objects.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_objects.png index 65de909fd3..e1a0fe1009 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_objects.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_objects.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_other.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_other.png index 14449416f6..5e82c39ac1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_other.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_question.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_question.png index ac59fad103..2a93b4800f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_question.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_question.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_recent.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_recent.png index 1dd9f5f53f..de03319328 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_recent.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_smiles.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_smiles.png index bb64c7d0e3..988a91754e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_smiles.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_smiles.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_stickers.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_stickers.png index 050830b912..cd10444b6a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_stickers.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_travel.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_travel.png index e4685b932f..2f85bc4fa0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_travel.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_emoji_travel.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_endcall.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_endcall.png index ee279e3a55..aeb256b900 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_endcall.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_endcall.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_expand.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_expand.png index d75b695758..572a109f69 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_expand.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_fave.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_fave.png index 946c4fc45f..858d138c79 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_fave.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_fave.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filehq.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filehq.png index 6f9baf6d0a..d025bf5e97 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filehq.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filehq.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_blocked.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_blocked.png index 7cb4ed96f7..fe4d287d15 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_blocked.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_blocked.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_calls.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_calls.png index 207eedcbe0..523ee5d7f0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_calls.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_calls.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_files.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_files.png index 42f1c12e89..54a56ec168 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_files.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_files.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_messages.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_messages.png index b8877f0fb8..59f8a1a2dc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_messages.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_messages.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_music.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_music.png index 83f79b5a37..5fdf1b8c70 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_music.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_photos.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_photos.png index 2a5e999965..5138c210d4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_photos.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_photos.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_received.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_received.png index 31f4cb8fed..f5c6c08c5b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_received.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_received.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_sent.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_sent.png index 7ed2ebfffb..fcbe950ae9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_sent.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_sent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_videos.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_videos.png index 94c7081855..53b2589a30 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_videos.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_videos.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_voice.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_voice.png index f29be26a9b..a5ed3bd4c3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_voice.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_data_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_datausage.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_datausage.png index e6dc691bd0..1477fb806f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_datausage.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_datausage.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_general.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_general.png index ebc28a6b1b..fe19c78598 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_general.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_general.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_general_large.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_general_large.png index e64046e7d7..b31e077bbd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_general_large.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_general_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_lockedrecord.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_lockedrecord.png index 58d0dd8e19..45f2c1d0de 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_lockedrecord.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_lockedrecord.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_menu_channels.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_menu_channels.png index b162c1a525..70f0bcea36 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_menu_channels.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_menu_channels.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_menu_groups.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_menu_groups.png index d13de03667..c3fbb99ed0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_menu_groups.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_menu_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_menu_users.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_menu_users.png index 16c4ea86f0..086d1b24f7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_menu_users.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_menu_users.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_plus.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_plus.png index 9f98d9a812..a0e3a858d8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_plus.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_sdcard.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_sdcard.png index babdec449a..a502098039 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_sdcard.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_sdcard.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_shareout.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_shareout.png index 5ffe8a6b89..d974f4ced7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_shareout.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_shareout.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_storageusage.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_storageusage.png index 17fe0ab309..037234ec7a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_storageusage.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_storageusage.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_stories.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_stories.png index 3445b9e040..a700737c34 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_stories.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_unlockedrecord.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_unlockedrecord.png index 68319982b0..2912a882b6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_unlockedrecord.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_filled_unlockedrecord.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders.png index 71f1272e0a..82d101bb37 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_archive.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_archive.png index 037e56ac92..cd087b84de 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_archive.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_bots.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_bots.png index 17d7fb77bc..fdb1fc160b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_bots.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_channels.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_channels.png index 97fd4ee75f..6af4de612b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_channels.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_channels.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_groups.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_groups.png index fc437bebd7..55e0cbf585 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_groups.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_muted.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_muted.png index ac6e8d77ca..d2491fdca8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_muted.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_private.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_private.png index fbc50195aa..cb06d7f98a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_private.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_private.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_read.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_read.png index e4e865b66a..eca3e275ec 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_read.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_read.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_requests.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_requests.png index 76a5cd705d..ded81e4ce2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_requests.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_folders_requests.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_forward.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_forward.png index 263383d366..a972ccf028 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_forward_replace.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_forward_replace.png index ec7fd1ae50..8686dfbf16 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_forward_replace.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_forward_replace.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_gallery.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_gallery.png index e18e43da4e..0c5b7e5c20 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_gallery.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_gallery.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_gallery_locked1.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_gallery_locked1.png index ca40f9e6d0..f19aa37224 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_gallery_locked1.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_gallery_locked1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_gallery_locked2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_gallery_locked2.png index 8a54e0c327..c62234c4cb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_gallery_locked2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_gallery_locked2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_gif.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_gif.png index 8d942e993b..09ab69a7fb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_gif.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_gif.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_gif_add.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_gif_add.png index 8ebe8078da..e029d90ded 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_gif_add.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_gif_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_gift_premium.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_gift_premium.png index 1bad6b991c..3838fef1f3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_gift_premium.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_gift_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_go_down.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_go_down.png index 813e06e9c4..36dfa77643 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_go_down.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_go_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_go_up.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_go_up.png index 14319392df..affd33bc19 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_go_up.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_go_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups.png index 93c34ca97d..8ec6bdee37 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_14.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_14.png index 4332be11cb..f0cd36d337 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_14.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_create.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_create.png index 71d1384415..c980b79fc8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_create.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_hw.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_hw.png index 38ef333130..46a99a6e86 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_hw.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_ny.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_ny.png index c9988ab24b..973906cd0d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_ny.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_groups_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_halfcheck.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_halfcheck.png index 887534e6e9..9f54739c9e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_halfcheck.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_halfcheck.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_halfcheck_s.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_halfcheck_s.png index 540bcdc816..dfcc0252db 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_halfcheck_s.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_halfcheck_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_handdown.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_handdown.png index 526b55547d..5cfd46a733 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_handdown.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_handdown.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_header_draw.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_header_draw.png index 2ca49ccac5..9f84ebe83e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_header_draw.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_header_draw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_header_share.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_header_share.png index 13221af07a..3894a6f88d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_header_share.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_header_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_help.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_help.png index 0cbabde7c9..310daccbcf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_help.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_help.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_help_hw.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_help_hw.png index 1ef039b697..cf51aaabf2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_help_hw.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_help_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_help_ny.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_help_ny.png index 3cd633bf5a..a4574a5cf6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_help_ny.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_help_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_home.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_home.png index 4da6672f17..0eed50cb39 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_home.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_home.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_hybrid.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_hybrid.png index 1140e94501..774fca0a48 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_hybrid.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_hybrid.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_info.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_info.png index 3a9d6ffbaa..f7eaf509d9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_info.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_attach2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_attach2.png index e5941b0ae8..9b5ee11941 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_attach2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_attach2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_gift.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_gift.png index ac0c98070d..27d3d3c685 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_gift.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_like.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_like.png index 24e12ba493..7850b156d7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_like.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_like.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_send_mini.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_send_mini.png index 0279dde617..bca677a07c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_send_mini.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_input_send_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_inputarrow.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_inputarrow.png index 6a6214fb78..a3eca122e3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_inputarrow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_inputarrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_instant.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_instant.png old mode 100755 new mode 100644 index 0571be59df..6170fc7562 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_instant.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_instant.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_instant_link.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_instant_link.png index bc4206b1a2..2329347e22 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_instant_link.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_instant_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_invite.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_invite.png index cffffe6d52..11f91a9444 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_invite.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_invite.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_invite_hw.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_invite_hw.png index 234fc63004..8a314264af 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_invite_hw.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_invite_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_invite_ny.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_invite_ny.png index f212c10aa4..0b770bfd7f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_invite_ny.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_invite_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_invited.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_invited.png index b75aba2439..5dcbc3ec69 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_invited.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_invited.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_jobtitle.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_jobtitle.png index c43870c61a..3504426ae3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_jobtitle.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_jobtitle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_language.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_language.png index de962626ca..0534522a42 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_language.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_language.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_leave.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_leave.png index b9b57c1d3f..60d6baa3ad 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_leave.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_leave.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_accounts.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_accounts.png index fbc50195aa..cb06d7f98a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_accounts.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_accounts.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_chats.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_chats.png index b4fb00580e..9c58eee9e3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_chats.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_chats.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_folder.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_folder.png index 76d7f13a5b..5b2f91cf1b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_folder.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_groups.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_groups.png index b227731ed0..d2139be2c5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_groups.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_links.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_links.png index 309290a9ea..e516d5df2d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_links.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_links.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_pin.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_pin.png index 82f432ad3a..9735e66c08 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_pin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_stories.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_stories.png index 6f39e17fba..c1a20ec558 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_stories.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_limit_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_link.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_link.png index 135cbdf5d2..8655937e7b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_link.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_link2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_link2.png index 4e39a7765f..6bb85d09a5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_link2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_link2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_link_1.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_link_1.png index e2db663a92..d53b3a1264 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_link_1.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_link_1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_link_2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_link_2.png index 20801b8ede..898b4c5044 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_link_2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_link_2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_link_folder.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_link_folder.png index e4b4a655ad..5ed2b820ed 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_link_folder.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_link_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_list.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_list.png index 2c4d4a9a8c..fc057562c8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_list.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_list.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_location.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_location.png index 507c60d8f2..b18118a6c6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_location.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_location_alert.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_location_alert.png index d115d153a7..3ee655618f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_location_alert.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_location_alert.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_location_alert2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_location_alert2.png index 5024e7051d..e73a0439a0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_location_alert2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_location_alert2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_log.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_log.png index 138ed4af0a..a6017bd1b3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_log.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_log.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_map.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_map.png index 79b9f22685..a04ca6de0d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_map.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_map.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_map_type.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_map_type.png index c580bfdffe..14e84f2c28 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_map_type.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_map_type.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_markread.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_markread.png index 5db142b3fd..2e92be4823 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_markread.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_markread.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_markunread.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_markunread.png index 1e8e082bcf..380f603093 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_markunread.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_markunread.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mask.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mask.png index d4be58e71f..35b5d2f6e4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mask.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mask.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_maxvideo.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_maxvideo.png index 88a5818c46..3c26690e4f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_maxvideo.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_maxvideo.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_media.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_media.png index 3a717a3c8f..aa02ea77ed 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_media.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_media.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_members_list2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_members_list2.png index 17354c6668..10bae38ef6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_members_list2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_members_list2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mention.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mention.png index 376c68b7ac..b44d6f9400 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mention.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mention.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_menu_stories.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_menu_stories.png index 2b405925ce..96654994d6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_menu_stories.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_menu_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_message.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_message.png index 29a5fa84e7..e436073f19 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_message.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_message.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_message_s.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_message_s.png index 1713e90fa4..c313d2caa2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_message_s.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_message_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_addemoji.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_addemoji.png index 85aabbd210..d7d64ca0a5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_addemoji.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_addemoji.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_addstory.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_addstory.png index 85213a9815..25a1eac91c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_addstory.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_addstory.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_arrow_mediabold.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_arrow_mediabold.png index 84309b95f1..2dbe3bd1f5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_arrow_mediabold.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_arrow_mediabold.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_arrow_mediathin.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_arrow_mediathin.png index fdd88dde79..8230b158c8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_arrow_mediathin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_arrow_mediathin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_autodelete.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_autodelete.png index 3bbdcb5370..83d7f72d52 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_autodelete.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_autodelete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_autodelete_empty.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_autodelete_empty.png index 1758901a1a..839e8a7233 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_autodelete_empty.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_autodelete_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_autodelete_timer.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_autodelete_timer.png index 0845703044..aeb3deaf88 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_autodelete_timer.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_autodelete_timer.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_bomb.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_bomb.png index 991883ffdf..bb884ebcef 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_bomb.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_bomb.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_checks.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_checks.png index 3e76fe161e..2eec3a64ca 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_checks.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_checks.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_close_tooltip.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_close_tooltip.png index a458ce017e..2badc4b1df 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_close_tooltip.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_close_tooltip.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_closefriends.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_closefriends.png index 3f0bc43810..6d25e14648 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_closefriends.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_closefriends.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_customize.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_customize.png index 997e453249..c665f36ab7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_customize.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_customize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_download.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_download.png index 6e2ced23a9..8b12111cf3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_download.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_download.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_fireoff.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_fireoff.png index 72b52fcec7..3a7a374473 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_fireoff.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_fireoff.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_fireon.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_fireon.png index 1f0aa89d99..090b5ceaa5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_fireon.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_fireon.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_forumarrow.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_forumarrow.png index 681bbc4a81..ff61efcae1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_forumarrow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_forumarrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_lock2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_lock2.png index 78a9ddc219..9784398051 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_lock2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_lock2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_lock3.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_lock3.png index 5841c6cdce..6f1e1a46ae 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_lock3.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_lock3.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_lockedemoji.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_lockedemoji.png index c49dd6c63a..37fc990c52 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_lockedemoji.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_lockedemoji.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_premiumlock.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_premiumlock.png index 1f1c79418c..2c9fa47f71 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_premiumlock.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_premiumlock.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_qr.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_qr.png index e6832037e8..9208f9f63c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_qr.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_qr.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_replystory.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_replystory.png index 4b4eeb56ad..9c65619eb0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_replystory.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_replystory.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_replystory2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_replystory2.png index 9f09dbd362..ce7864cc63 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_replystory2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_replystory2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_stickerstar.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_stickerstar.png index ec8c37e751..2809665144 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_stickerstar.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_stickerstar.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_topicarrow.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_topicarrow.png index 8ab3f334e0..9dc430a83b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_topicarrow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_topicarrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_upload.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_upload.png index 04c63878fe..8c04518c75 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_upload.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mini_upload.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_minvideo.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_minvideo.png index a190f25bd5..4f7a7438dc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_minvideo.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_minvideo.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_msgbubble.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_msgbubble.png index 1b5083c5bb..e822b3a31a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_msgbubble.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_msgbubble.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_msgbubble2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_msgbubble2.png index b3eb60f189..a125f3ebe8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_msgbubble2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_msgbubble2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_msgbubble3.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_msgbubble3.png index 414300b2bd..95db4e29f3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_msgbubble3.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_msgbubble3.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mute.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mute.png index c5ccbddd13..92c588df84 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mute.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mute_1h.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mute_1h.png index 8a360a628b..f4d22b4699 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mute_1h.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mute_1h.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mute_period.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mute_period.png index 5ac88f770d..9494245f85 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_mute_period.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_mute_period.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_nearby.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_nearby.png deleted file mode 100644 index dd4b49a685..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_nearby.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_nearby_ny.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_nearby_ny.png deleted file mode 100644 index c10685cd82..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_nearby_ny.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_newphone.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_newphone.png index 0aa4c5fa9b..890bd3ccca 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_newphone.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_newphone.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_noise_off.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_noise_off.png index fe961cb4ad..0637befddc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_noise_off.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_noise_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_noise_on.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_noise_on.png index 47afc35cc4..1c726cc9b4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_noise_on.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_noise_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_notifications.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_notifications.png index 9824165de3..e19e99c620 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_notifications.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_notifications.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_notspam.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_notspam.png index 345f250a42..ee922a52dd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_notspam.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_notspam.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_online.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_online.png index 2494c4ad17..b26f42e72a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_online.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_online.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_openin.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_openin.png index e0372af815..cbf47e36ed 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_openin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_openin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_openprofile.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_openprofile.png index 37140f07f6..1f81d4ebf8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_openprofile.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_openprofile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_other_new_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_other_new_filled.png index 3335b1542c..db0d631b47 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_other_new_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_other_new_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_other_new_filled_text.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_other_new_filled_text.png index 1f87c2c621..d87da124f4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_other_new_filled_text.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_other_new_filled_text.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_other_new_outline.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_other_new_outline.png index 39600e4341..03c3bea323 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_other_new_outline.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_other_new_outline.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_palette.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_palette.png index 5e2e79a366..7aee03e4ec 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_palette.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_palette.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_panel_clear.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_panel_clear.png old mode 100755 new mode 100644 index 9260305107..9fb46e196c Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_panel_clear.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_panel_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_address.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_address.png index 249a9f838c..c2bdc96121 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_address.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_address.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_card.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_card.png index 7813ae714d..70591cb6c3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_card.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_card.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_delivery.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_delivery.png index e3ff74a8b7..d471ab4970 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_delivery.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_delivery.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_provider.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_provider.png index 5cabbc43b1..59a4e1f752 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_provider.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_payment_provider.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_permissions.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_permissions.png index c5f0e2acbe..77bec08dc6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_permissions.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_permissions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_back.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_back.png index 95b02a2175..9e51ad8f3a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_back.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_back.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_blur.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_blur.png index 7c8ea7ec6c..68e34a065c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_blur.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_blur.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_cropfix.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_cropfix.png index e877bce0d8..86bcf22470 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_cropfix.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_cropfix.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_curve.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_curve.png index e79cd3e5ad..e009862dab 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_curve.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_curve.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_flip.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_flip.png index eb0705bc25..9fa40a0f78 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_flip.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_flip.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_rotate.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_rotate.png index 295b3f1a32..693cf4f456 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_rotate.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_rotate.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_settings.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_settings.png index 01cf7cc2c2..fa8d836486 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_settings.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_sticker.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_sticker.png index d6f6c5e3ea..3befb81c8e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_sticker.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_switch2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_switch2.png index 3194d72ec3..1ade4aa084 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_switch2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_switch2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text2.png index 1f5746eac4..c9a77f55e1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_framed.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_framed.png index 0896a87e07..83f9abf1c3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_framed.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_framed.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_framed2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_framed2.png index b4cf3fef76..f75c601b4d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_framed2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_framed2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_framed3.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_framed3.png index 3ca3113d72..15bb542ae6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_framed3.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_framed3.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_regular.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_regular.png index 89bdd74f3e..8ffcfb026f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_regular.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_text_regular.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photoeditor.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photoeditor.png index a9e7ef7d43..f11233f791 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photoeditor.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photoeditor.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photos.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photos.png index d49b2f8451..846090d4c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_photos.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_photos.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin.png index 8bbc67e92d..b912823949 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin_code.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin_code.png index a46a3b0d5b..422425d145 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin_code.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin_code.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin_filled.png index 603efc89a5..49aec666fc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin_mini.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin_mini.png index 14051dfa71..3b20963115 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin_mini.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_pin_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_pinnedlist.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_pinnedlist.png index 2875ec01b6..b7c7d12a04 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_pinnedlist.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_pinnedlist.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_played.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_played.png index b0a50abc49..61120765ff 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_played.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_played.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_policy.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_policy.png index d0d98524bf..08a85d93ea 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_policy.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_policy.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_pollstop.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_pollstop.png index 63189f049b..aef33ef112 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_pollstop.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_pollstop.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_ads.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_ads.png index 69090cce94..2bdc1136f9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_ads.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_ads.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_avatar.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_avatar.png index d973a6b292..51a8f4401f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_avatar.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_avatar.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_badge.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_badge.png index b92fd51e0c..294540744c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_badge.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_badge.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_emoji.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_emoji.png index 1faf035823..0acb768d9c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_emoji.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_emoji.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_icons.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_icons.png index 8afab5397a..f078a5f4ab 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_icons.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_icons.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_limits.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_limits.png index 7ee1c1ef30..ad8fbd9fc5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_limits.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_limits.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_liststar.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_liststar.png index 414993c902..b2ae559eb1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_liststar.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_liststar.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_lock2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_lock2.png index 466550d6b7..4cd5b6f037 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_lock2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_lock2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_normal.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_normal.png index 61cde4e1c9..76390cb1bb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_normal.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_normal.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_prolfilestar.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_prolfilestar.png index ef6489aee9..97403d34cf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_prolfilestar.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_prolfilestar.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_reactions.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_reactions.png index fa6a7ef738..ce877c67ba 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_reactions.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_speed.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_speed.png index f5e6c8df93..de95cfbf63 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_speed.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_speed.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_status.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_status.png index cdcdb9ed2c..14e164619d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_status.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_stickers.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_stickers.png index f9e9266ad6..9a4bfe35a7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_stickers.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_tools.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_tools.png index e31257eb51..089a31b806 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_tools.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_tools.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_translate.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_translate.png index cf3aa07034..45c64acb95 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_translate.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_translate.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_uploads.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_uploads.png index e53cc2f619..8bd6de3c36 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_uploads.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_uploads.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_voice.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_voice.png index c99c3f2e8e..83262d9e9e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_voice.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_premium_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_psa.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_psa.png index ee0c2738fb..b4b7b876a2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_psa.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_psa.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_qr_mini.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_qr_mini.png index e3e3992d2b..1ef63584bf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_qr_mini.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_qr_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_qrcode.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_qrcode.png index 0aa996b4b5..ebc497e687 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_qrcode.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_qrcode.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_rate_down.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_rate_down.png index 19db6029ef..9afce299fe 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_rate_down.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_rate_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_rate_up.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_rate_up.png index ded2a665c8..3cccad111d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_rate_up.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_rate_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions.png index 0b2fc6dce9..b4f93ddcbf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions2.png index ad6143c0d7..183ca3aa19 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions_expand.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions_expand.png index 8712f1cb9f..f81960fe0d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions_expand.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions_filled.png index 1a24dcec70..8487db731f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_reactions_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_recent.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_recent.png index 87bdd4c0f9..d08d8e678a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_recent.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_remove.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_remove.png index 3ab5d7492a..9ee444fd37 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_remove.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_removefolder.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_removefolder.png index 8cae8301ca..76cf18a279 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_removefolder.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_removefolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_reorder.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_reorder.png index f903612c73..ab482b9ba2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_reorder.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_replace.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_replace.png index ea38d468f1..3426b8dabb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_replace.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_replace.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_reply_small.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_reply_small.png index 85e9c89682..c13b2266e4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_reply_small.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_reply_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_report.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_report.png index 418f0bf230..de5ece1a56 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_report.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_report.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_drugs.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_drugs.png index eedfa3e177..2fa2aa3eb6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_drugs.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_drugs.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_fake.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_fake.png index 6cac6da062..212c2a11d6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_fake.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_fake.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_other.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_other.png index 9499540aae..844ea18bf6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_other.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_personal.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_personal.png index d489877257..cb3f14aed4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_personal.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_personal.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_violence.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_violence.png index 3bfeee8aa2..d1fbc1b3a0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_violence.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_violence.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_xxx.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_xxx.png index 758e97a26e..1c998c5467 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_xxx.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_report_xxx.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_requests.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_requests.png index 2752acd1d8..271f8d1354 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_requests.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_requests.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_reset.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_reset.png index a305b62441..091ad9f85b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_reset.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_reset.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_retry.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_retry.png index 796fd61a2c..01dfd414ae 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_retry.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_retry.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_cancel_m.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_cancel_m.png old mode 100755 new mode 100644 index 8c8d868f0c..01940099bb Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_cancel_m.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_cancel_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_file_s.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_file_s.png old mode 100755 new mode 100644 index 029a961f0d..cb0b2466ee Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_file_s.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_file_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_gif_m.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_gif_m.png old mode 100755 new mode 100644 index aa862bc4a3..af39eefc9f Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_gif_m.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_gif_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_load_m.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_load_m.png index 73d863c816..5bd6e9b555 100755 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_load_m.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_load_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_pause_m.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_pause_m.png old mode 100755 new mode 100644 index 5e63548fd0..b51450b8c6 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_pause_m.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_pause_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_play_m.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_play_m.png old mode 100755 new mode 100644 index 579898b362..01f0e394a8 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_play_m.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_round_play_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_satellite.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_satellite.png index 5d0574e17c..f3bdd5ab33 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_satellite.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_satellite.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_save_story.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_save_story.png index a278afd742..79c01e5435 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_save_story.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_save_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved.png index b383a20f0a..bfb65c7b1f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved_14.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved_14.png index d3587d73ab..01104775f8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved_14.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved_hw.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved_hw.png index 4130f7d1a9..b4059c7c38 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved_hw.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved_ny.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved_ny.png index c9966edc03..e314a78ca2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved_ny.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_saved_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_screencast.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_screencast.png index a0734e675f..39c41ef344 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_screencast.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_screencast.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_screencast_off.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_screencast_off.png index 01c434f78f..88ace8ebbd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_screencast_off.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_screencast_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_search.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_search.png index 641f58115f..86ab333d56 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_search.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_secret.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_secret.png index fc340aed0d..2e00602e93 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_secret.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_secret.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_secret_14.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_secret_14.png deleted file mode 100644 index 83df3ace14..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_secret_14.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_secret_hw.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_secret_hw.png deleted file mode 100644 index 5820255488..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_secret_hw.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_secret_ny.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_secret_ny.png index f165ef0735..269ca4d660 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_secret_ny.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_secret_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_seen.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_seen.png index 27973ad7a2..8c5c754ef5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_seen.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_seen.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_select.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_select.png index 5b1b41a340..84a44475c7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_select.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_select.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_send.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_send.png index 5fb416a14d..7956eff625 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_send.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_send.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_sendfile.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_sendfile.png index 9ab1023873..d96bbdbc75 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_sendfile.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_sendfile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings.png index 59a620f0b1..fcb5e9ed0f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_14.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_14.png index 0a40ac17b4..038926b68a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_14.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_hw.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_hw.png index b2c7254803..88e6c41ca8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_hw.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_ny.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_ny.png index e5eb1f0391..f254b88977 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_ny.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_old.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_old.png index 6eebcb251d..07690b8ac0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_old.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_old.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_premium.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_premium.png index 3d70c72824..7771537d66 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_premium.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_settings_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_share.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_share.png index cdb2af3930..0a7a006fc9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_share.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_share_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_share_filled.png index bb73d53936..21b2d9d691 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_share_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_share_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_shareout.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_shareout.png index 5772567f59..d4953281c3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_shareout.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_shareout.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_signed.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_signed.png deleted file mode 100644 index 1ee0b634b6..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_signed.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_silent.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_silent.png index f8e91f1485..d8dfb9b4b0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_silent.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_silent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_smile_status.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_smile_status.png index 92e38f8655..630e5fd915 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_smile_status.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_smile_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed.png index 2bb05cd53f..6141a6e17a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_0_2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_0_2.png index aa97e2ad26..6ca7a16e9c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_0_2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_0_2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_fast.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_fast.png index 2f7a482f24..9b53a7cde4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_fast.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_fast.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_medium.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_medium.png index 6e2b024d76..b8604d5a3d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_medium.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_medium.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_normal.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_normal.png index 44ccdf09be..f76b5f3133 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_normal.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_normal.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_slow.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_slow.png index 3214c4f6ca..a6add730d0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_slow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_slow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_superfast.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_superfast.png index 02e143a084..edcb2b64ef 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_superfast.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_superfast.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_veryfast.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_veryfast.png index dc1109718a..65c6941142 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_veryfast.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_speed_veryfast.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_spoiler.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_spoiler.png index 0e5cd93b2d..876c0d62bc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_spoiler.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_spoiler.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_spoiler_off.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_spoiler_off.png index 3321dd28a2..285a05f523 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_spoiler_off.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_spoiler_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stats.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stats.png index be8a2f035f..329b4fb197 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stats.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stats.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_status_edit.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_status_edit.png index 522795edac..c2eff66277 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_status_edit.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_status_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_status_set.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_status_set.png index ce9a0a93b3..4e6c03f672 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_status_set.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_status_set.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stealth_25min.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stealth_25min.png index aa7f9f6669..013494cc72 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stealth_25min.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stealth_25min.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stealth_5min.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stealth_5min.png index 19148a8b00..d0622a96ec 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stealth_5min.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stealth_5min.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stealth_locked.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stealth_locked.png index 1e7e8e5010..13a1d1df92 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stealth_locked.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stealth_locked.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_sticker.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_sticker.png index 3db0817222..4868518c31 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_sticker.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_add.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_add.png index 589571076e..55e7ad6849 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_add.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_archive.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_archive.png index cd6357026c..cfba9a3691 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_archive.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_caption.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_caption.png index 7aaafdb82f..420368215b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_caption.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_caption.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_closefriends.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_closefriends.png index f75aa60f34..6edf9ddbbc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_closefriends.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_closefriends.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_link.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_link.png index ce9169c113..15c5e29e93 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_link.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_myhide.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_myhide.png index a1e0f05254..9e17284624 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_myhide.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_myhide.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_order.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_order.png index e63f28c580..1a7997b576 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_order.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_order.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_save.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_save.png index ab6b3c4407..511e614a52 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_save.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_save.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_saved.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_saved.png index 00cc32817a..6bc0904d3e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_saved.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_saved.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_stealth.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_stealth.png index 48a1b81380..14e94912db 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_stealth.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_stealth.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_stealth2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_stealth2.png index 2a939d3235..649ffc3048 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_stealth2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_stealth2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_timer.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_timer.png index 57272f7ebc..b99558d4d3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_timer.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_timer.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_views.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_views.png index 7293e7e804..158d9f24cf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_views.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_stories_views.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_story_12h.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_story_12h.png deleted file mode 100644 index 21eb23c616..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_story_12h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_story_24h.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_story_24h.png deleted file mode 100644 index 9b9cada2b9..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_story_24h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_story_48h.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_story_48h.png deleted file mode 100644 index b24b062f43..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_story_48h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_story_6h.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_story_6h.png deleted file mode 100644 index fb80422726..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_story_6h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_tabs_mic1.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_tabs_mic1.png index 80be9f5cea..e60adb0936 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_tabs_mic1.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_tabs_mic1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_tabs_mic2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_tabs_mic2.png index f38f66e090..a227f59854 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_tabs_mic2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_tabs_mic2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_check.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_check.png index dc29da4df3..6be36c12cc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_check.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_outlined.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_outlined.png index 9b4a0659ce..a593b432ad 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_outlined.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_text_outlined.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_theme.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_theme.png index 4f629591da..7ad4f9f83e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_theme.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_theme.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_ton.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_ton.png index 0bb2c8f4e8..4ed5c8d930 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_ton.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_ton.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_tone_add.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_tone_add.png index b046e2fa14..cda737648d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_tone_add.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_tone_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_tone_off.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_tone_off.png index c9df03bd1b..fd0830d264 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_tone_off.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_tone_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_tone_on.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_tone_on.png index 966d7a7ff8..88ca47d1d0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_tone_on.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_tone_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_topic_close.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_topic_close.png index 6a467f1578..72d7803b26 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_topic_close.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_topic_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_topic_create.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_topic_create.png index 355acb27b7..12fb34e5e8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_topic_create.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_topic_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_topic_restart.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_topic_restart.png index dfd71b6e52..162f06d207 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_topic_restart.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_topic_restart.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_topics.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_topics.png index 50ab3a7886..d9483b5476 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_topics.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_topics.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_translate.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_translate.png index dbf3786210..a4a7d55402 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_translate.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_translate.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_unarchive.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_unarchive.png index f8d89d7115..d24b2f75c2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_unarchive.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_unarchive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_unfave.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_unfave.png index e4af79bfff..a6bc3203eb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_unfave.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_unfave.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_ungroup.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_ungroup.png index 77c4de8870..3003c64af3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_ungroup.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_ungroup.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_unmute.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_unmute.png index 88b012a680..d0e88a9683 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_unmute.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_unpin.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_unpin.png index e19ec7d9d4..8512c1aa8b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_unpin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_unpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_unvote.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_unvote.png index 122cf53f01..2ad1d70e93 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_unvote.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_unvote.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_user_remove.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_user_remove.png index 1b46219c7b..6349a49a46 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_user_remove.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_user_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_user_search.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_user_search.png index 4969ea7199..405e395ac6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_user_search.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_user_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_usersearch.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_usersearch.png index 6c78313b50..00489eec19 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_usersearch.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_usersearch.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_video.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_video.png index e6a1e9cf2a..f0ee5f5127 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_video.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_videocall.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_videocall.png index 0bb7de73b5..cd3df19049 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_videocall.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_videocall.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_view_file.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_view_file.png index 8686e9ff07..ac5d06ca66 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_view_file.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_view_file.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_viewchats.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_viewchats.png index 8a160bd705..b6699af502 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_viewchats.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_viewchats.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_viewintopic.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_viewintopic.png index e903a2e821..606297cd73 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_viewintopic.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_viewintopic.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_viewreplies.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_viewreplies.png index 956306e814..1260a4ba63 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_viewreplies.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_viewreplies.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_views.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_views.png old mode 100755 new mode 100644 index 179c3122e6..eb357328ff Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_views.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_views.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_bluetooth.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_bluetooth.png index 008c73a8ea..51e6d425c4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_bluetooth.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_bluetooth.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_headphones.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_headphones.png index 74c05002f7..9916c990ed 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_headphones.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_headphones.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_muted.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_muted.png index 62f3ed0269..2612d1a68b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_muted.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_phone.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_phone.png index cb7bbe9a17..735ca62424 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_phone.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_phone.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_pip.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_pip.png index c68f0b0705..b38b0829f3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_pip.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_pip.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_speaker.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_speaker.png index 64da766a82..3558c58a77 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_speaker.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_speaker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_unmuted.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_unmuted.png index 65e6bd5cee..ef2eda9b1c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_unmuted.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voice_unmuted.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voicechat.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voicechat.png index ccbc396a1e..7d4617c276 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voicechat.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voicechat.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voicechat2.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voicechat2.png index e0454a54ac..38d7039a37 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voicechat2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voicechat2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voiceclose.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voiceclose.png index 3cbabc69ac..d2abee03f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voiceclose.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voiceclose.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voiceshare.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voiceshare.png index f0b6e673a7..2bcf55ebe5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_voiceshare.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_voiceshare.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_warning.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_warning.png old mode 100755 new mode 100644 index 4270937e94..63bc0cbc54 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_warning.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_warning.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_work.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_work.png index f0620f394d..babf8366ff 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_work.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_work.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_zoomin.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_zoomin.png index ae2a2b4427..f8b21bd779 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_zoomin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_zoomin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_zoomout.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_zoomout.png index 6f9a199a8e..e1a8d001c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_zoomout.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_zoomout.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_zoomout_stats.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_zoomout_stats.png index 18879ec08a..480fbcf0ae 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_zoomout_stats.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_zoomout_stats.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/music_empty.png b/TMessagesProj/src/main/res/drawable-xhdpi/music_empty.png index 9c73fd3df4..0c31ab5447 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/music_empty.png and b/TMessagesProj/src/main/res/drawable-xhdpi/music_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/navbar_search_tag.png b/TMessagesProj/src/main/res/drawable-xhdpi/navbar_search_tag.png index 07c09c6db0..4997d910ae 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/navbar_search_tag.png and b/TMessagesProj/src/main/res/drawable-xhdpi/navbar_search_tag.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/navigate.png b/TMessagesProj/src/main/res/drawable-xhdpi/navigate.png deleted file mode 100644 index 1675591642..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/navigate.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/nearby_l.png b/TMessagesProj/src/main/res/drawable-xhdpi/nearby_l.png deleted file mode 100644 index 382e3529d4..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/nearby_l.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/nearby_m.png b/TMessagesProj/src/main/res/drawable-xhdpi/nearby_m.png deleted file mode 100644 index c82e1cb654..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/nearby_m.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/newmsg_divider.png b/TMessagesProj/src/main/res/drawable-xhdpi/newmsg_divider.png old mode 100755 new mode 100644 index 1b8edb36c1..95b1104682 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/newmsg_divider.png and b/TMessagesProj/src/main/res/drawable-xhdpi/newmsg_divider.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/newyear.png b/TMessagesProj/src/main/res/drawable-xhdpi/newyear.png index a69ac9e1ba..20d5be0b89 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/newyear.png and b/TMessagesProj/src/main/res/drawable-xhdpi/newyear.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/no_passport.png b/TMessagesProj/src/main/res/drawable-xhdpi/no_passport.png index 22084565cf..bf554fee48 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/no_passport.png and b/TMessagesProj/src/main/res/drawable-xhdpi/no_passport.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/no_password.png b/TMessagesProj/src/main/res/drawable-xhdpi/no_password.png index 1e6a6ff637..7357a24075 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/no_password.png and b/TMessagesProj/src/main/res/drawable-xhdpi/no_password.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/notifications_mute1h.png b/TMessagesProj/src/main/res/drawable-xhdpi/notifications_mute1h.png index d6889edfd2..135d68077f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/notifications_mute1h.png and b/TMessagesProj/src/main/res/drawable-xhdpi/notifications_mute1h.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/notifications_mute2d.png b/TMessagesProj/src/main/res/drawable-xhdpi/notifications_mute2d.png index 547a5a3b3b..a3fde980f8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/notifications_mute2d.png and b/TMessagesProj/src/main/res/drawable-xhdpi/notifications_mute2d.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/notifications_off.png b/TMessagesProj/src/main/res/drawable-xhdpi/notifications_off.png index 3cc138ba57..e5db820fdc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/notifications_off.png and b/TMessagesProj/src/main/res/drawable-xhdpi/notifications_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/notifications_on.png b/TMessagesProj/src/main/res/drawable-xhdpi/notifications_on.png index 98fe11da93..348b504f37 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/notifications_on.png and b/TMessagesProj/src/main/res/drawable-xhdpi/notifications_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/notifications_settings.png b/TMessagesProj/src/main/res/drawable-xhdpi/notifications_settings.png index 68153c2fb4..07998ca26c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/notifications_settings.png and b/TMessagesProj/src/main/res/drawable-xhdpi/notifications_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/other_2x_large.png b/TMessagesProj/src/main/res/drawable-xhdpi/other_2x_large.png index c6b0366e3b..82087c629a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/other_2x_large.png and b/TMessagesProj/src/main/res/drawable-xhdpi/other_2x_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/other_lockedfolders.png b/TMessagesProj/src/main/res/drawable-xhdpi/other_lockedfolders.png index 21b31ceb06..4d890664c2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/other_lockedfolders.png and b/TMessagesProj/src/main/res/drawable-xhdpi/other_lockedfolders.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/other_lockedfolders2.png b/TMessagesProj/src/main/res/drawable-xhdpi/other_lockedfolders2.png index 61c59bd924..549f512ced 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/other_lockedfolders2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/other_lockedfolders2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/pagedown.png b/TMessagesProj/src/main/res/drawable-xhdpi/pagedown.png index 362519888b..4f12f4f67c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/pagedown.png and b/TMessagesProj/src/main/res/drawable-xhdpi/pagedown.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/pagedown_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/pagedown_shadow.png old mode 100755 new mode 100644 index a7d0649455..92527ff0d5 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/pagedown_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/pagedown_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/passcode_check.png b/TMessagesProj/src/main/res/drawable-xhdpi/passcode_check.png index 578c492317..edab46e819 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/passcode_check.png and b/TMessagesProj/src/main/res/drawable-xhdpi/passcode_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/passcode_delete.png b/TMessagesProj/src/main/res/drawable-xhdpi/passcode_delete.png deleted file mode 100644 index 021fd2a6dd..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/passcode_delete.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/permission_locked.png b/TMessagesProj/src/main/res/drawable-xhdpi/permission_locked.png index 7476aa2953..7439a5072a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/permission_locked.png and b/TMessagesProj/src/main/res/drawable-xhdpi/permission_locked.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/permissions_camera1.png b/TMessagesProj/src/main/res/drawable-xhdpi/permissions_camera1.png index 94bbc0ce45..15fa93b7c1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/permissions_camera1.png and b/TMessagesProj/src/main/res/drawable-xhdpi/permissions_camera1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/permissions_camera2.png b/TMessagesProj/src/main/res/drawable-xhdpi/permissions_camera2.png index 4eeb071274..0401059811 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/permissions_camera2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/permissions_camera2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/permissions_gallery1.png b/TMessagesProj/src/main/res/drawable-xhdpi/permissions_gallery1.png index 9ae790966e..728490d324 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/permissions_gallery1.png and b/TMessagesProj/src/main/res/drawable-xhdpi/permissions_gallery1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/permissions_gallery2.png b/TMessagesProj/src/main/res/drawable-xhdpi/permissions_gallery2.png index 76e53a1df1..9baa3816ac 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/permissions_gallery2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/permissions_gallery2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/phone_activate.png b/TMessagesProj/src/main/res/drawable-xhdpi/phone_activate.png old mode 100755 new mode 100644 index c52774e029..d6b991fb06 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/phone_activate.png and b/TMessagesProj/src/main/res/drawable-xhdpi/phone_activate.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/photo_paint_brush.png b/TMessagesProj/src/main/res/drawable-xhdpi/photo_paint_brush.png index dc1043a164..e38177869a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/photo_paint_brush.png and b/TMessagesProj/src/main/res/drawable-xhdpi/photo_paint_brush.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/photo_tooltip2.png b/TMessagesProj/src/main/res/drawable-xhdpi/photo_tooltip2.png index f6365236b4..0b0fdf68af 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/photo_tooltip2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/photo_tooltip2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/photo_undo.png b/TMessagesProj/src/main/res/drawable-xhdpi/photo_undo.png index 0ef97e89e8..ac5070aa23 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/photo_undo.png and b/TMessagesProj/src/main/res/drawable-xhdpi/photo_undo.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/photos_arrow.png b/TMessagesProj/src/main/res/drawable-xhdpi/photos_arrow.png index b31f6b5956..909c3f4ef3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/photos_arrow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/photos_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/photos_header_shadow.png b/TMessagesProj/src/main/res/drawable-xhdpi/photos_header_shadow.png index b31428e311..ddf344cdcf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/photos_header_shadow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/photos_header_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/pin.png b/TMessagesProj/src/main/res/drawable-xhdpi/pin.png index 3ee841ea4d..ebc4a23143 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/pin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/pip_close.png b/TMessagesProj/src/main/res/drawable-xhdpi/pip_close.png index 156e5d231b..4415ef7dec 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/pip_close.png and b/TMessagesProj/src/main/res/drawable-xhdpi/pip_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/pip_enlarge.png b/TMessagesProj/src/main/res/drawable-xhdpi/pip_enlarge.png index 9671210a53..edd162c9d9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/pip_enlarge.png and b/TMessagesProj/src/main/res/drawable-xhdpi/pip_enlarge.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/pip_pause_large.png b/TMessagesProj/src/main/res/drawable-xhdpi/pip_pause_large.png index 364b71a7c9..84fe56fd21 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/pip_pause_large.png and b/TMessagesProj/src/main/res/drawable-xhdpi/pip_pause_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/pip_play_large.png b/TMessagesProj/src/main/res/drawable-xhdpi/pip_play_large.png index 37b561d451..c92d74e65d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/pip_play_large.png and b/TMessagesProj/src/main/res/drawable-xhdpi/pip_play_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/pip_replay_large.png b/TMessagesProj/src/main/res/drawable-xhdpi/pip_replay_large.png index 65207aa6a9..53d319699f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/pip_replay_large.png and b/TMessagesProj/src/main/res/drawable-xhdpi/pip_replay_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/pip_video_close.png b/TMessagesProj/src/main/res/drawable-xhdpi/pip_video_close.png index 2ece561a11..b083b87b3e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/pip_video_close.png and b/TMessagesProj/src/main/res/drawable-xhdpi/pip_video_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/pip_video_expand.png b/TMessagesProj/src/main/res/drawable-xhdpi/pip_video_expand.png index 9d60d73ce1..6db17dbc64 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/pip_video_expand.png and b/TMessagesProj/src/main/res/drawable-xhdpi/pip_video_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/play_mini_video.png b/TMessagesProj/src/main/res/drawable-xhdpi/play_mini_video.png index 41d86adaf4..be2985116e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/play_mini_video.png and b/TMessagesProj/src/main/res/drawable-xhdpi/play_mini_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/player.png b/TMessagesProj/src/main/res/drawable-xhdpi/player.png index 11d7042b09..000d74ae9a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/player.png and b/TMessagesProj/src/main/res/drawable-xhdpi/player.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/player_new_order.png b/TMessagesProj/src/main/res/drawable-xhdpi/player_new_order.png index 00ebc60f13..d6d944dda5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/player_new_order.png and b/TMessagesProj/src/main/res/drawable-xhdpi/player_new_order.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeat_reverse.png b/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeat_reverse.png index 305e58ee08..c40e75aa7d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeat_reverse.png and b/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeat_reverse.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeat_shuffle.png b/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeat_shuffle.png index e4a62595b7..e10a4fae28 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeat_shuffle.png and b/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeat_shuffle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeatall.png b/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeatall.png index ec5ca02999..5ef8a21cb0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeatall.png and b/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeatall.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeatone.png b/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeatone.png index 40f2112558..438d3d2990 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeatone.png and b/TMessagesProj/src/main/res/drawable-xhdpi/player_new_repeatone.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/player_new_shuffle.png b/TMessagesProj/src/main/res/drawable-xhdpi/player_new_shuffle.png index d8659602af..4b870aae2e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/player_new_shuffle.png and b/TMessagesProj/src/main/res/drawable-xhdpi/player_new_shuffle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/poll_add_circle.png b/TMessagesProj/src/main/res/drawable-xhdpi/poll_add_circle.png index 7df8f75b4d..732fb04774 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/poll_add_circle.png and b/TMessagesProj/src/main/res/drawable-xhdpi/poll_add_circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/poll_add_plus.png b/TMessagesProj/src/main/res/drawable-xhdpi/poll_add_plus.png index 0b165694b8..aba5d3052b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/poll_add_plus.png and b/TMessagesProj/src/main/res/drawable-xhdpi/poll_add_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/poll_remove.png b/TMessagesProj/src/main/res/drawable-xhdpi/poll_remove.png index c1d65b7e9c..fcb9e8b4f9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/poll_remove.png and b/TMessagesProj/src/main/res/drawable-xhdpi/poll_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/poll_reorder.png b/TMessagesProj/src/main/res/drawable-xhdpi/poll_reorder.png index efa5965c24..7e0e475d98 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/poll_reorder.png and b/TMessagesProj/src/main/res/drawable-xhdpi/poll_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/poll_right.png b/TMessagesProj/src/main/res/drawable-xhdpi/poll_right.png index 0b07049469..4502f997d4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/poll_right.png and b/TMessagesProj/src/main/res/drawable-xhdpi/poll_right.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/poll_wrong.png b/TMessagesProj/src/main/res/drawable-xhdpi/poll_wrong.png index 82bb94d1c2..5776558593 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/poll_wrong.png and b/TMessagesProj/src/main/res/drawable-xhdpi/poll_wrong.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/premium_colors.png b/TMessagesProj/src/main/res/drawable-xhdpi/premium_colors.png index 4c3f94c910..63887c8001 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/premium_colors.png and b/TMessagesProj/src/main/res/drawable-xhdpi/premium_colors.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/premium_status.png b/TMessagesProj/src/main/res/drawable-xhdpi/premium_status.png index b4e6d2248b..580d19b102 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/premium_status.png and b/TMessagesProj/src/main/res/drawable-xhdpi/premium_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/premium_tags.png b/TMessagesProj/src/main/res/drawable-xhdpi/premium_tags.png index 2f17e87201..0e5768dd88 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/premium_tags.png and b/TMessagesProj/src/main/res/drawable-xhdpi/premium_tags.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/premium_wallpaper.png b/TMessagesProj/src/main/res/drawable-xhdpi/premium_wallpaper.png index ae3a4f79f0..85789255e1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/premium_wallpaper.png and b/TMessagesProj/src/main/res/drawable-xhdpi/premium_wallpaper.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/preview_arrow.png b/TMessagesProj/src/main/res/drawable-xhdpi/preview_arrow.png index ad6d059cc8..bf73f913e8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/preview_arrow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/preview_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/preview_custom.png b/TMessagesProj/src/main/res/drawable-xhdpi/preview_custom.png index 2617bceb2d..96192afb92 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/preview_custom.png and b/TMessagesProj/src/main/res/drawable-xhdpi/preview_custom.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/preview_dots.png b/TMessagesProj/src/main/res/drawable-xhdpi/preview_dots.png index a5aaf31273..18b1cab1c8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/preview_dots.png and b/TMessagesProj/src/main/res/drawable-xhdpi/preview_dots.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/profile_discuss.png b/TMessagesProj/src/main/res/drawable-xhdpi/profile_discuss.png index b19ab5df79..4dec8e0d46 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/profile_discuss.png and b/TMessagesProj/src/main/res/drawable-xhdpi/profile_discuss.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/profile_newmsg.png b/TMessagesProj/src/main/res/drawable-xhdpi/profile_newmsg.png index 53978ffb5d..21526c5166 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/profile_newmsg.png and b/TMessagesProj/src/main/res/drawable-xhdpi/profile_newmsg.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/profile_phone.png b/TMessagesProj/src/main/res/drawable-xhdpi/profile_phone.png index 373a1e1042..274a6d499b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/profile_phone.png and b/TMessagesProj/src/main/res/drawable-xhdpi/profile_phone.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/profile_video.png b/TMessagesProj/src/main/res/drawable-xhdpi/profile_video.png index d0ade29145..af74425b42 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/profile_video.png and b/TMessagesProj/src/main/res/drawable-xhdpi/profile_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/proxy_check.png b/TMessagesProj/src/main/res/drawable-xhdpi/proxy_check.png index 19c99de798..26f6fc55c8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/proxy_check.png and b/TMessagesProj/src/main/res/drawable-xhdpi/proxy_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/qr_at_large.png b/TMessagesProj/src/main/res/drawable-xhdpi/qr_at_large.png index 39d79e4143..06eccdf0a6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/qr_at_large.png and b/TMessagesProj/src/main/res/drawable-xhdpi/qr_at_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/qr_at_medium.png b/TMessagesProj/src/main/res/drawable-xhdpi/qr_at_medium.png index 34f0977faf..177696863c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/qr_at_medium.png and b/TMessagesProj/src/main/res/drawable-xhdpi/qr_at_medium.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/qr_at_small.png b/TMessagesProj/src/main/res/drawable-xhdpi/qr_at_small.png index 9436d20be4..f1435b74f2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/qr_at_small.png and b/TMessagesProj/src/main/res/drawable-xhdpi/qr_at_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/qr_flashlight.png b/TMessagesProj/src/main/res/drawable-xhdpi/qr_flashlight.png index 69505592dd..3f2a37c50b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/qr_flashlight.png and b/TMessagesProj/src/main/res/drawable-xhdpi/qr_flashlight.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/qr_gallery.png b/TMessagesProj/src/main/res/drawable-xhdpi/qr_gallery.png index 611c8d9add..96033876a2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/qr_gallery.png and b/TMessagesProj/src/main/res/drawable-xhdpi/qr_gallery.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/reactionbutton.png b/TMessagesProj/src/main/res/drawable-xhdpi/reactionbutton.png index 8103ff8e04..d4fa369064 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/reactionbutton.png and b/TMessagesProj/src/main/res/drawable-xhdpi/reactionbutton.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/reactionchatslist.png b/TMessagesProj/src/main/res/drawable-xhdpi/reactionchatslist.png index 423f6d44e1..ed33d706aa 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/reactionchatslist.png and b/TMessagesProj/src/main/res/drawable-xhdpi/reactionchatslist.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/redcircle.png b/TMessagesProj/src/main/res/drawable-xhdpi/redcircle.png old mode 100755 new mode 100644 index 85ae7cfd95..5dc5886d29 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/redcircle.png and b/TMessagesProj/src/main/res/drawable-xhdpi/redcircle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/round_check2.png b/TMessagesProj/src/main/res/drawable-xhdpi/round_check2.png old mode 100755 new mode 100644 index 087c3653f6..d2e83b651b Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/round_check2.png and b/TMessagesProj/src/main/res/drawable-xhdpi/round_check2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/screencast_big.png b/TMessagesProj/src/main/res/drawable-xhdpi/screencast_big.png index b9c3b78aaf..4a3c034520 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/screencast_big.png and b/TMessagesProj/src/main/res/drawable-xhdpi/screencast_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/search_arrow.png b/TMessagesProj/src/main/res/drawable-xhdpi/search_arrow.png index 622c28947f..0b274e4596 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/search_arrow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/search_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/search_date_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/search_date_filled.png index 55b354b987..5cf212acfe 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/search_date_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/search_date_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/search_files_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/search_files_filled.png index 79b677ebbb..7550ee3560 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/search_files_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/search_files_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/search_links_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/search_links_filled.png index baffef8c5c..bd256d978b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/search_links_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/search_links_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/search_media_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/search_media_filled.png index a3acd1835c..769fe26950 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/search_media_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/search_media_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/search_music_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/search_music_filled.png index f0875f53b4..65dc04ffe9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/search_music_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/search_music_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/search_users_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/search_users_filled.png index 39d4d38f63..1cf4f04319 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/search_users_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/search_users_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/search_voice_filled.png b/TMessagesProj/src/main/res/drawable-xhdpi/search_voice_filled.png index a352d045f6..1c059f90c1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/search_voice_filled.png and b/TMessagesProj/src/main/res/drawable-xhdpi/search_voice_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/selectphoto_large.png b/TMessagesProj/src/main/res/drawable-xhdpi/selectphoto_large.png index 827de2c9fc..b8237a542c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/selectphoto_large.png and b/TMessagesProj/src/main/res/drawable-xhdpi/selectphoto_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/settings_arrow.png b/TMessagesProj/src/main/res/drawable-xhdpi/settings_arrow.png index 1e31fabf66..d0f93abfce 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/settings_arrow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/settings_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/shadowdown.png b/TMessagesProj/src/main/res/drawable-xhdpi/shadowdown.png index d4e0b2110f..35c8510677 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/shadowdown.png and b/TMessagesProj/src/main/res/drawable-xhdpi/shadowdown.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/share.png b/TMessagesProj/src/main/res/drawable-xhdpi/share.png old mode 100755 new mode 100644 index f1fd911986..e8f70ecdd8 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/share.png and b/TMessagesProj/src/main/res/drawable-xhdpi/share.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/share_arrow.png b/TMessagesProj/src/main/res/drawable-xhdpi/share_arrow.png index 9b35e17b7d..421e37b7c1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/share_arrow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/share_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/shortcut_compose.png b/TMessagesProj/src/main/res/drawable-xhdpi/shortcut_compose.png old mode 100755 new mode 100644 index f8ea596a46..cb78f04937 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/shortcut_compose.png and b/TMessagesProj/src/main/res/drawable-xhdpi/shortcut_compose.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/shortcut_user.png b/TMessagesProj/src/main/res/drawable-xhdpi/shortcut_user.png old mode 100755 new mode 100644 index c5d07b2fce..56937a2478 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/shortcut_user.png and b/TMessagesProj/src/main/res/drawable-xhdpi/shortcut_user.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/slide_dot_big.png b/TMessagesProj/src/main/res/drawable-xhdpi/slide_dot_big.png old mode 100755 new mode 100644 index 6722e128b6..712fa55917 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/slide_dot_big.png and b/TMessagesProj/src/main/res/drawable-xhdpi/slide_dot_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/slide_dot_small.png b/TMessagesProj/src/main/res/drawable-xhdpi/slide_dot_small.png old mode 100755 new mode 100644 index 0e055d07ed..5fd4aad1ad Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/slide_dot_small.png and b/TMessagesProj/src/main/res/drawable-xhdpi/slide_dot_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/smallanimationpin.png b/TMessagesProj/src/main/res/drawable-xhdpi/smallanimationpin.png index f59f20fe20..89069b89cd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/smallanimationpin.png and b/TMessagesProj/src/main/res/drawable-xhdpi/smallanimationpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/smallanimationpinleft.png b/TMessagesProj/src/main/res/drawable-xhdpi/smallanimationpinleft.png index 84b09f43b2..684b16187b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/smallanimationpinleft.png and b/TMessagesProj/src/main/res/drawable-xhdpi/smallanimationpinleft.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/smallanimationpinright.png b/TMessagesProj/src/main/res/drawable-xhdpi/smallanimationpinright.png index 3cb7f387d1..93366fe6bd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/smallanimationpinright.png and b/TMessagesProj/src/main/res/drawable-xhdpi/smallanimationpinright.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_info.png b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_info.png index 0122cde8dd..94cdb3ebde 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_info.png and b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_inputsearch.png b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_inputsearch.png index 4542002de8..43d2a9934e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_inputsearch.png and b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_inputsearch.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_clear.png b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_clear.png index 2ce9720fce..883e1113d2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_clear.png and b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_gif.png b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_gif.png index 50f26249fe..e77f5879f5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_gif.png and b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_gif.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_search.png b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_search.png index 00c85ae61b..6254b309dd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_search.png and b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_settings.png b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_settings.png index 9d1e7f7acf..ca1c77d4f3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_settings.png and b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_smiles.png b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_smiles.png index 2f3860a2a7..dc94fd1a88 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_smiles.png and b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_smiles.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_stickers.png b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_stickers.png index 7b1ca5c0de..c07244ed48 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_stickers.png and b/TMessagesProj/src/main/res/drawable-xhdpi/smiles_tab_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/sms_bubble.png b/TMessagesProj/src/main/res/drawable-xhdpi/sms_bubble.png index 7caa30f087..af2c5b567f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/sms_bubble.png and b/TMessagesProj/src/main/res/drawable-xhdpi/sms_bubble.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/sms_code.png b/TMessagesProj/src/main/res/drawable-xhdpi/sms_code.png index bd05dfd4b8..8089ab2f95 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/sms_code.png and b/TMessagesProj/src/main/res/drawable-xhdpi/sms_code.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/sms_devices.png b/TMessagesProj/src/main/res/drawable-xhdpi/sms_devices.png index 32988b506c..6b18a8c786 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/sms_devices.png and b/TMessagesProj/src/main/res/drawable-xhdpi/sms_devices.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/sticker_added.png b/TMessagesProj/src/main/res/drawable-xhdpi/sticker_added.png old mode 100755 new mode 100644 index 31b788272b..e164585c9b Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/sticker_added.png and b/TMessagesProj/src/main/res/drawable-xhdpi/sticker_added.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/stickers_back_arrow.png b/TMessagesProj/src/main/res/drawable-xhdpi/stickers_back_arrow.png index c04972bf01..0eed319196 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/stickers_back_arrow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/stickers_back_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/stickers_empty.png b/TMessagesProj/src/main/res/drawable-xhdpi/stickers_empty.png index deb4544e08..4f86370491 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/stickers_empty.png and b/TMessagesProj/src/main/res/drawable-xhdpi/stickers_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/stickers_favorites.png b/TMessagesProj/src/main/res/drawable-xhdpi/stickers_favorites.png index ab450e8e8f..c9434ced3b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/stickers_favorites.png and b/TMessagesProj/src/main/res/drawable-xhdpi/stickers_favorites.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/stickers_gifs_trending.png b/TMessagesProj/src/main/res/drawable-xhdpi/stickers_gifs_trending.png index ede4403c86..d78af03df5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/stickers_gifs_trending.png and b/TMessagesProj/src/main/res/drawable-xhdpi/stickers_gifs_trending.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/stickers_recent.png b/TMessagesProj/src/main/res/drawable-xhdpi/stickers_recent.png index d7729309ed..df0ae8def5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/stickers_recent.png and b/TMessagesProj/src/main/res/drawable-xhdpi/stickers_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/tabs_reorder.png b/TMessagesProj/src/main/res/drawable-xhdpi/tabs_reorder.png index 39f09c96e4..fbeeff3e29 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/tabs_reorder.png and b/TMessagesProj/src/main/res/drawable-xhdpi/tabs_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/theme_picker.png b/TMessagesProj/src/main/res/drawable-xhdpi/theme_picker.png old mode 100755 new mode 100644 index 8691a848cb..304683d83a Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/theme_picker.png and b/TMessagesProj/src/main/res/drawable-xhdpi/theme_picker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/toast_pallete.png b/TMessagesProj/src/main/res/drawable-xhdpi/toast_pallete.png index 6c615a674c..3066c89192 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/toast_pallete.png and b/TMessagesProj/src/main/res/drawable-xhdpi/toast_pallete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/tooltip_arrow.png b/TMessagesProj/src/main/res/drawable-xhdpi/tooltip_arrow.png index 47589b4ccd..f591dd04e2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/tooltip_arrow.png and b/TMessagesProj/src/main/res/drawable-xhdpi/tooltip_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/tooltip_arrow_up.png b/TMessagesProj/src/main/res/drawable-xhdpi/tooltip_arrow_up.png index 7ebf25f783..9424603b3c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/tooltip_arrow_up.png and b/TMessagesProj/src/main/res/drawable-xhdpi/tooltip_arrow_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/tooltip_sound.png b/TMessagesProj/src/main/res/drawable-xhdpi/tooltip_sound.png index 635185cf42..a15308b19f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/tooltip_sound.png and b/TMessagesProj/src/main/res/drawable-xhdpi/tooltip_sound.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/verified_area.png b/TMessagesProj/src/main/res/drawable-xhdpi/verified_area.png index 6d66492dda..e5043469f3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/verified_area.png and b/TMessagesProj/src/main/res/drawable-xhdpi/verified_area.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/verified_check.png b/TMessagesProj/src/main/res/drawable-xhdpi/verified_check.png index bd3a931822..b2762dc3eb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/verified_check.png and b/TMessagesProj/src/main/res/drawable-xhdpi/verified_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/verified_profile.png b/TMessagesProj/src/main/res/drawable-xhdpi/verified_profile.png index ec270f37e2..ffe04d55db 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/verified_profile.png and b/TMessagesProj/src/main/res/drawable-xhdpi/verified_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/video_actions.png b/TMessagesProj/src/main/res/drawable-xhdpi/video_actions.png old mode 100755 new mode 100644 index 4477e83ce9..e7bc1e0b83 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/video_actions.png and b/TMessagesProj/src/main/res/drawable-xhdpi/video_actions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/video_mute.png b/TMessagesProj/src/main/res/drawable-xhdpi/video_mute.png index d6099f8d62..1f4a46517a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/video_mute.png and b/TMessagesProj/src/main/res/drawable-xhdpi/video_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/video_muted.png b/TMessagesProj/src/main/res/drawable-xhdpi/video_muted.png index 0a0c7173e3..19eb2dd6ef 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/video_muted.png and b/TMessagesProj/src/main/res/drawable-xhdpi/video_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/video_send_mute.png b/TMessagesProj/src/main/res/drawable-xhdpi/video_send_mute.png index 603425f3d5..7a3577ed4e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/video_send_mute.png and b/TMessagesProj/src/main/res/drawable-xhdpi/video_send_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/video_send_unmute.png b/TMessagesProj/src/main/res/drawable-xhdpi/video_send_unmute.png index 9c8722a0dd..a604fb6972 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/video_send_unmute.png and b/TMessagesProj/src/main/res/drawable-xhdpi/video_send_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/voice_expand.png b/TMessagesProj/src/main/res/drawable-xhdpi/voice_expand.png index aaa097cc6b..fd34e652d0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/voice_expand.png and b/TMessagesProj/src/main/res/drawable-xhdpi/voice_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/voice_minimize.png b/TMessagesProj/src/main/res/drawable-xhdpi/voice_minimize.png index 022de9e9a0..1d1180617c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/voice_minimize.png and b/TMessagesProj/src/main/res/drawable-xhdpi/voice_minimize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/voice_volume_mini.png b/TMessagesProj/src/main/res/drawable-xhdpi/voice_volume_mini.png index 930d7785c2..4e2ed7f547 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/voice_volume_mini.png and b/TMessagesProj/src/main/res/drawable-xhdpi/voice_volume_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/voicechat_active.png b/TMessagesProj/src/main/res/drawable-xhdpi/voicechat_active.png index a32ac2c436..90fc6bce68 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/voicechat_active.png and b/TMessagesProj/src/main/res/drawable-xhdpi/voicechat_active.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/voicechat_muted.png b/TMessagesProj/src/main/res/drawable-xhdpi/voicechat_muted.png index 5ff067acdd..ce6a8b9a32 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/voicechat_muted.png and b/TMessagesProj/src/main/res/drawable-xhdpi/voicechat_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/voicechat_screencast.png b/TMessagesProj/src/main/res/drawable-xhdpi/voicechat_screencast.png index dccd75644b..3f44cd6238 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/voicechat_screencast.png and b/TMessagesProj/src/main/res/drawable-xhdpi/voicechat_screencast.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/zoom_minus.png b/TMessagesProj/src/main/res/drawable-xhdpi/zoom_minus.png index d1a7d40f22..4de8cf75af 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/zoom_minus.png and b/TMessagesProj/src/main/res/drawable-xhdpi/zoom_minus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/zoom_plus.png b/TMessagesProj/src/main/res/drawable-xhdpi/zoom_plus.png index 8f3f8c5af1..6b5b5912df 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/zoom_plus.png and b/TMessagesProj/src/main/res/drawable-xhdpi/zoom_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/zoom_round.png b/TMessagesProj/src/main/res/drawable-xhdpi/zoom_round.png index cc99952091..a5341f0ef5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/zoom_round.png and b/TMessagesProj/src/main/res/drawable-xhdpi/zoom_round.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/zoom_round_b.png b/TMessagesProj/src/main/res/drawable-xhdpi/zoom_round_b.png index db384182b1..0276caddf8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/zoom_round_b.png and b/TMessagesProj/src/main/res/drawable-xhdpi/zoom_round_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ab_progress.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ab_progress.png index 7e5f8b3f3d..03191a62c4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ab_progress.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ab_progress.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/account_check.png b/TMessagesProj/src/main/res/drawable-xxhdpi/account_check.png index 5d57b4e13c..7d7d1749d1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/account_check.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/account_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/album_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/album_shadow.png index 515fa8ec4e..2205f33c37 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/album_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/album_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/animationpin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/animationpin.png index 0bb3df962e..6ab40342a7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/animationpin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/animationpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/animationpinleft.png b/TMessagesProj/src/main/res/drawable-xxhdpi/animationpinleft.png index 9d6b300ab1..a625f8db57 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/animationpinleft.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/animationpinleft.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/animationpinright.png b/TMessagesProj/src/main/res/drawable-xxhdpi/animationpinright.png index 166b7ae9d3..5be28860e4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/animationpinright.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/animationpinright.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/arrow_more.png b/TMessagesProj/src/main/res/drawable-xxhdpi/arrow_more.png index a7b350a460..990cf9dbcf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/arrow_more.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/arrow_more.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/arrow_newchat.png b/TMessagesProj/src/main/res/drawable-xxhdpi/arrow_newchat.png index 72943b4649..4c17c65ff5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/arrow_newchat.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/arrow_newchat.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/attach_arrow_left.png b/TMessagesProj/src/main/res/drawable-xxhdpi/attach_arrow_left.png index c2449ccb3c..c79c41723c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/attach_arrow_left.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/attach_arrow_left.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/attach_arrow_right.png b/TMessagesProj/src/main/res/drawable-xxhdpi/attach_arrow_right.png index 42c69fee69..2e58c88944 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/attach_arrow_right.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/attach_arrow_right.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/attach_send.png b/TMessagesProj/src/main/res/drawable-xxhdpi/attach_send.png index b18849f061..291644385a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/attach_send.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/attach_send.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/attach_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/attach_shadow.png index 37b8d87eae..f5240287c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/attach_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/attach_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/authorize.png b/TMessagesProj/src/main/res/drawable-xxhdpi/authorize.png index a772af792e..0a06182db9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/authorize.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/authorize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/background_selected.png b/TMessagesProj/src/main/res/drawable-xxhdpi/background_selected.png index 18ba8befc1..51a12cb64c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/background_selected.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/background_selected.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/bg_rotate_large.png b/TMessagesProj/src/main/res/drawable-xxhdpi/bg_rotate_large.png index c252100cec..1042fc66d9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/bg_rotate_large.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/bg_rotate_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/blockpanel.png b/TMessagesProj/src/main/res/drawable-xxhdpi/blockpanel.png index 6969029bc3..83c58f9ed1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/blockpanel.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/blockpanel.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/blockpanel_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/blockpanel_shadow.png index 9da559d197..d422be9adc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/blockpanel_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/blockpanel_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/book_bot.png b/TMessagesProj/src/main/res/drawable-xxhdpi/book_bot.png old mode 100755 new mode 100644 index d79a6e2c0c..5e3c09b4b4 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/book_bot.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/book_bot.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/book_channel.png b/TMessagesProj/src/main/res/drawable-xxhdpi/book_channel.png old mode 100755 new mode 100644 index e41b73e4f0..862f520b60 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/book_channel.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/book_channel.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/book_group.png b/TMessagesProj/src/main/res/drawable-xxhdpi/book_group.png old mode 100755 new mode 100644 index a8740e7f90..440e8d8579 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/book_group.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/book_group.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/book_user.png b/TMessagesProj/src/main/res/drawable-xxhdpi/book_user.png old mode 100755 new mode 100644 index 2a7f32edb2..f5b8d69c7b Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/book_user.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/book_user.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_card.png b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_card.png index b16909e05f..44355ce576 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_card.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_card.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_file.png b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_file.png old mode 100755 new mode 100644 index e0c8100fb8..e9d37c4a3a Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_file.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_file.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_invite.png b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_invite.png index 536943329c..5ed4624838 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_invite.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_invite.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_lines.png b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_lines.png old mode 100755 new mode 100644 index d86bb4d586..192ad80502 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_lines.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_lines.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_link.png b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_link.png old mode 100755 new mode 100644 index 5567f21fc2..73b1f4be96 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_link.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_location.png b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_location.png old mode 100755 new mode 100644 index 4caf33ffbf..8e8a8fd1a5 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_location.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_music.png b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_music.png old mode 100755 new mode 100644 index 55b83ab32e..d31bda579f Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_music.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_webview.png b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_webview.png index e771235b6d..e4d5b8c692 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/bot_webview.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/bot_webview.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/bottom_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/bottom_shadow.png old mode 100755 new mode 100644 index 88f60b6b4f..70bc8b7ae4 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/bottom_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/bottom_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/call_arrow_right.png b/TMessagesProj/src/main/res/drawable-xxhdpi/call_arrow_right.png deleted file mode 100644 index d936be51c9..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/call_arrow_right.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_bluetooth.png b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_bluetooth.png index e4cf98246e..91b441c33f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_bluetooth.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_bluetooth.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_camera_mini.png b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_camera_mini.png index e154389fa0..3789da2541 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_camera_mini.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_camera_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_decline.png b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_decline.png index 4a1675fd32..7fe1d2eb9e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_decline.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_decline.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_flip.png b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_flip.png deleted file mode 100644 index 14799261e7..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_flip.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_headphones.png b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_headphones.png index 5314dc5243..996da924e5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_headphones.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_headphones.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_menu_bluetooth.png b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_menu_bluetooth.png deleted file mode 100644 index e04ac309ca..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_menu_bluetooth.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_menu_headset.png b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_menu_headset.png index 1b1e61ab02..3a29d4569c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_menu_headset.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_menu_headset.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_menu_phone.png b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_menu_phone.png index e48a811803..fd5cdba141 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_menu_phone.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_menu_phone.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_menu_speaker.png b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_menu_speaker.png deleted file mode 100644 index bced4d22ca..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_menu_speaker.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_mute_mini.png b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_mute_mini.png index 7e020c8485..fe2829b362 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_mute_mini.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_mute_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_sharescreen.png b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_sharescreen.png deleted file mode 100644 index 06c5791e59..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_sharescreen.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_speaker.png b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_speaker.png index dda0c12c2b..e060262148 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_speaker.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_speaker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_unmute.png b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_unmute.png index f5fe54d465..f948739567 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_unmute.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_video.png b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_video.png index 7affa4ceff..70cd9f8d3c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/calls_video.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/calls_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/camera_btn.png b/TMessagesProj/src/main/res/drawable-xxhdpi/camera_btn.png old mode 100755 new mode 100644 index 6feb1980f8..5423b44d99 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/camera_btn.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/camera_btn.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/camera_revert1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/camera_revert1.png old mode 100755 new mode 100644 index 15bf82a881..e986733856 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/camera_revert1.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/camera_revert1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/camera_revert2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/camera_revert2.png old mode 100755 new mode 100644 index c2de287879..33dbaef7d2 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/camera_revert2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/camera_revert2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/cancel_big.png b/TMessagesProj/src/main/res/drawable-xxhdpi/cancel_big.png old mode 100755 new mode 100644 index 1a70ac3a51..6b040f8262 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/cancel_big.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/cancel_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_incoming.png b/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_incoming.png index 56fac430b3..d30c90d640 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_incoming.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_incoming.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_outgoing.png b/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_outgoing.png index 0143d47954..ed6278d18b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_outgoing.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_outgoing.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_video.png b/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_video.png index 7351dec2c5..4b368c340b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_video.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_voice.png b/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_voice.png index 6363a342e9..33fc7d7ab5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_voice.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/chat_calls_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive.png b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive.png index db61101fb4..eb9c1214ba 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_arrow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_arrow.png index eb10ec4c18..ceeb8de417 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_arrow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_box.png b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_box.png index c69bd87d71..5d53a7ce91 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_box.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_box.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_muted.png b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_muted.png index ca2eb68420..e9fd2847b0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_muted.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_pin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_pin.png index a923b75d91..52b44c674f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_pin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_archive_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_pin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_pin.png index 809da046fb..f3515eca48 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_pin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_replies.png b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_replies.png index 6c2ac4e096..f5816b3243 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_replies.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_replies.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_saved.png b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_saved.png index 3c63044e7c..4e4ae3e996 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_saved.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_saved.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_undo.png b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_undo.png index 7a6c33b2c9..2468897e34 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_undo.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_undo.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_unpin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_unpin.png index 5f9fa7f8ca..1331f0dcf4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/chats_unpin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/chats_unpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/checkbig.png b/TMessagesProj/src/main/res/drawable-xxhdpi/checkbig.png index d76a126bb4..7d7bbd543f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/checkbig.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/checkbig.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/circle.png b/TMessagesProj/src/main/res/drawable-xxhdpi/circle.png old mode 100755 new mode 100644 index 36f9bc0141..95f5018272 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/circle.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/circle_big.png b/TMessagesProj/src/main/res/drawable-xxhdpi/circle_big.png old mode 100755 new mode 100644 index 1758453d96..56af0c4275 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/circle_big.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/circle_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/compose_panel_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/compose_panel_shadow.png old mode 100755 new mode 100644 index b68077ec16..19662a77f0 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/compose_panel_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/compose_panel_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/delete.png b/TMessagesProj/src/main/res/drawable-xxhdpi/delete.png index c0fe41e843..dfd207cf75 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/delete.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/device_desktop_osx.png b/TMessagesProj/src/main/res/drawable-xxhdpi/device_desktop_osx.png index 8d6e9770cf..44aeea04f3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/device_desktop_osx.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/device_desktop_osx.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/device_desktop_other.png b/TMessagesProj/src/main/res/drawable-xxhdpi/device_desktop_other.png index 9b1fc9dedb..be9f2167e5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/device_desktop_other.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/device_desktop_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/device_desktop_win.png b/TMessagesProj/src/main/res/drawable-xxhdpi/device_desktop_win.png index 7ce5b5ec05..5a9b2e7384 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/device_desktop_win.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/device_desktop_win.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/device_phone_android.png b/TMessagesProj/src/main/res/drawable-xxhdpi/device_phone_android.png index 1cd5aacbb3..32fa49e786 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/device_phone_android.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/device_phone_android.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/device_phone_ios.png b/TMessagesProj/src/main/res/drawable-xxhdpi/device_phone_ios.png index 0f19aed0b4..72135a9d8a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/device_phone_ios.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/device_phone_ios.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/device_tablet_android.png b/TMessagesProj/src/main/res/drawable-xxhdpi/device_tablet_android.png index c2de55724d..fc870ce099 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/device_tablet_android.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/device_tablet_android.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/device_tablet_ios.png b/TMessagesProj/src/main/res/drawable-xxhdpi/device_tablet_ios.png index 5bde484002..6318624163 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/device_tablet_ios.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/device_tablet_ios.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_chrome.png b/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_chrome.png index 73a487ecf7..f785b33eaa 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_chrome.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_chrome.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_edge.png b/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_edge.png index 84d404c3bc..fd7c337e3c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_edge.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_edge.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_firefox.png b/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_firefox.png index 9f356bab3a..18e5438764 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_firefox.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_firefox.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_opera.png b/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_opera.png index fb8cbe5b91..0523b2e90d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_opera.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_opera.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_other.png b/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_other.png index e145e382a5..a8e193730e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_other.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_safari.png b/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_safari.png index fc59293833..73ec9d62d3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_safari.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/device_web_safari.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/dice.png b/TMessagesProj/src/main/res/drawable-xxhdpi/dice.png index 06afa51742..675531c7f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/dice.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/dice.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_love.png b/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_love.png index b19cf84b35..44b2e831a0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_love.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_love.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_faves.png b/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_faves.png index 4b56853dff..70252b5da0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_faves.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_faves.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_new1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_new1.png index 506f56bc1e..61f6751302 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_new1.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_new1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_new2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_new2.png index cc1c8249c1..c164009754 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_new2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_new2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_new3.png b/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_new3.png index d4361f1e92..b65b28a590 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_new3.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/emoji_tabs_new3.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/fab_compose_small.png b/TMessagesProj/src/main/res/drawable-xxhdpi/fab_compose_small.png index 64a3c85277..5c7f188b05 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/fab_compose_small.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/fab_compose_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/fast_scroll_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/fast_scroll_shadow.png index d43c5db56c..2224049d64 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/fast_scroll_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/fast_scroll_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/files_folder.png b/TMessagesProj/src/main/res/drawable-xxhdpi/files_folder.png index 1b497db57c..72884a90c2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/files_folder.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/files_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/files_gallery.png b/TMessagesProj/src/main/res/drawable-xxhdpi/files_gallery.png index 44d442aacc..34c77ecaf1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/files_gallery.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/files_gallery.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/files_internal.png b/TMessagesProj/src/main/res/drawable-xxhdpi/files_internal.png index 49604f7a4a..6307f4da98 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/files_internal.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/files_internal.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/files_music.png b/TMessagesProj/src/main/res/drawable-xxhdpi/files_music.png index 7b48188821..23254687a6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/files_music.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/files_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/files_storage.png b/TMessagesProj/src/main/res/drawable-xxhdpi/files_storage.png index 339436e9e4..fe0bd21df4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/files_storage.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/files_storage.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_add_photo.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_add_photo.png index 460b7929fa..80c9176bfc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_add_photo.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_add_photo.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_add_sticker.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_add_sticker.png index c80eed3b81..5c8db06a7c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_add_sticker.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_add_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_boost_plus.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_boost_plus.png index ee9ad819a2..b96e4aa220 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_boost_plus.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_boost_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_button_reply.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_button_reply.png index c50f1db19e..b3b300fc8f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_button_reply.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_button_reply.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_button_share.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_button_share.png index 6b08878b11..f72d68fdef 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_button_share.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_button_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_chatlink_large.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_chatlink_large.png index 9783dac50a..36447d077d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_chatlink_large.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_chatlink_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_clear.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_clear.png index ae425a902d..adfb9f5d85 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_clear.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_directions.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_directions.png index eaf9484e19..b59ab9ec47 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_directions.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_directions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_extend_location.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_extend_location.png index ed72b0b95b..b293e0455b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_extend_location.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_extend_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_fire.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_fire.png index f19456be55..dbe685f000 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_fire.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_fire.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_folder_existing.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_folder_existing.png index 61491a2996..f75f1eda6f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_folder_existing.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_folder_existing.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_folder_new.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_folder_new.png index 40cbc38014..c56667ac9a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_folder_new.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_folder_new.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_forward.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_forward.png index b24050fee2..a49547fdea 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_forward.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_gift_premium.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_gift_premium.png index f3cf4d97aa..f8ad908a25 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_gift_premium.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_gift_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_giveaway_premium.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_giveaway_premium.png new file mode 100644 index 0000000000..7337a0deac Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_giveaway_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_giveaway_stars.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_giveaway_stars.png new file mode 100644 index 0000000000..ec21fde665 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_giveaway_stars.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_info.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_info.png index e36fcd3708..c8af8aa155 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_info.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_limit_boost.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_limit_boost.png index 29f506bc5b..3936255a55 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_limit_boost.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_limit_boost.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_link.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_link.png index edb56d8d91..29f19af05f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_link.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_location.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_location.png index ee24c2be68..035e4722b3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_location.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_location_forever.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_location_forever.png index 15d8905cc0..5c1d7d60bd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_location_forever.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_location_forever.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_open_message.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_open_message.png index 88bc7b0778..1cb3c8b955 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_open_message.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_open_message.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_away.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_away.png index f1a67cc6e0..c6380cf6d9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_away.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_away.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_bots.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_bots.png index fc6e346e61..03a1a307b6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_bots.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_business.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_business.png index 43ed772261..3492ef7294 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_business.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_business.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_camera.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_camera.png index 8c86e3de47..8e949fb963 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_camera.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_camera.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_chatlink.png index b149a6f6ba..2e8149cf1a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_chatlink.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_hours.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_hours.png index 30111ce5ac..df1af59d22 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_hours.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_hours.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_intro.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_intro.png index e15fe4b278..1b75dcc6c6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_intro.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_status2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_status2.png index d2957e82ad..1064954104 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_status2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_premium_status2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_reply_quote.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_reply_quote.png index 74cca5e5d7..b853eae0a3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_reply_quote.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_reply_quote.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_reply_settings.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_reply_settings.png index ae79901ead..f2c2255ef2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_reply_settings.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_reply_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_sensitive.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_sensitive.png index 17fa2cb897..4cc9605178 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_sensitive.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_sensitive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_star_plus.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_star_plus.png index 1fa5814ec6..40e03c9e7c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_star_plus.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_star_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_stop_location.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_stop_location.png index 5c85816a7f..9d5864108e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_stop_location.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_stop_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_unclaimed.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_unclaimed.png index 1685050809..0c49d81552 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_unclaimed.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_unclaimed.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_unknown.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_unknown.png index af1edcda42..5435dbd154 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_unknown.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_unknown.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_username.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_username.png index 842a9e2dcc..d9c9a37cf5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_username.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_username.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_views.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_views.png index 391295db6e..e3029415b9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_views.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_views.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_widget_music.png b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_widget_music.png index 0811211ce9..170a85fc81 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/filled_widget_music.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/filled_widget_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/fingerprint.png b/TMessagesProj/src/main/res/drawable-xxhdpi/fingerprint.png index fd2fc7ec96..039e11591c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/fingerprint.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/fingerprint.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/flash_auto.png b/TMessagesProj/src/main/res/drawable-xxhdpi/flash_auto.png old mode 100755 new mode 100644 index 6d2fcf4d6f..77751b3672 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/flash_auto.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/flash_auto.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/flash_off.png b/TMessagesProj/src/main/res/drawable-xxhdpi/flash_off.png old mode 100755 new mode 100644 index 20b7665922..62f6a75bcf Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/flash_off.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/flash_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/flash_on.png b/TMessagesProj/src/main/res/drawable-xxhdpi/flash_on.png old mode 100755 new mode 100644 index 2ad4fab6a5..517864156f Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/flash_on.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/flash_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/floating_check.png b/TMessagesProj/src/main/res/drawable-xxhdpi/floating_check.png index 0bfdb44caa..cde78a51a2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/floating_check.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/floating_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/floating_pencil.png b/TMessagesProj/src/main/res/drawable-xxhdpi/floating_pencil.png old mode 100755 new mode 100644 index 9f4ff2913d..c50d35ae9c Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/floating_pencil.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/floating_pencil.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/floating_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/floating_shadow.png old mode 100755 new mode 100644 index 00aa8f0fe8..7e19338a20 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/floating_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/floating_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/floating_shadow_profile.png b/TMessagesProj/src/main/res/drawable-xxhdpi/floating_shadow_profile.png old mode 100755 new mode 100644 index 97bfe0792f..d4f574192a Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/floating_shadow_profile.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/floating_shadow_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/foursquare.png b/TMessagesProj/src/main/res/drawable-xxhdpi/foursquare.png old mode 100755 new mode 100644 index dd3ba4a4b1..cc672461fb Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/foursquare.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/foursquare.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ghost.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ghost.png index 9d7624fbf7..932ab53f21 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ghost.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ghost.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/gif_empty.png b/TMessagesProj/src/main/res/drawable-xxhdpi/gif_empty.png index 6c564b1599..6684d46832 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/gif_empty.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/gif_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/googlepay_button_background_image.9.png b/TMessagesProj/src/main/res/drawable-xxhdpi/googlepay_button_background_image.9.png deleted file mode 100644 index 91035e2a41..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/googlepay_button_background_image.9.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/gradient_bottom_rounded.9.png b/TMessagesProj/src/main/res/drawable-xxhdpi/gradient_bottom_rounded.9.png deleted file mode 100644 index badd2a94da..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/gradient_bottom_rounded.9.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/group_edit.png b/TMessagesProj/src/main/res/drawable-xxhdpi/group_edit.png old mode 100755 new mode 100644 index 6227d159f1..fd93931add Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/group_edit.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/group_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/group_edit_profile.png b/TMessagesProj/src/main/res/drawable-xxhdpi/group_edit_profile.png index d93916f7d4..dd4147a073 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/group_edit_profile.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/group_edit_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/groups_limit1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/groups_limit1.png index e7a81b3cab..948bdb2baf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/groups_limit1.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/groups_limit1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/groups_overview_check.png b/TMessagesProj/src/main/res/drawable-xxhdpi/groups_overview_check.png index f18a147360..aa5844b275 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/groups_overview_check.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/groups_overview_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/groupsintro.png b/TMessagesProj/src/main/res/drawable-xxhdpi/groupsintro.png index 66c6550c46..689d7932c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/groupsintro.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/groupsintro.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/groupsintro2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/groupsintro2.png index 468c1a6f84..a68d2b1f95 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/groupsintro2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/groupsintro2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/header_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/header_shadow.png old mode 100755 new mode 100644 index 3d050fb4c9..e92cc5a819 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/header_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/header_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/header_shadow_reverse.png b/TMessagesProj/src/main/res/drawable-xxhdpi/header_shadow_reverse.png index 7bec685404..4e17fcb5bd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/header_shadow_reverse.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/header_shadow_reverse.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/heart_confetti.png b/TMessagesProj/src/main/res/drawable-xxhdpi/heart_confetti.png index 15bfa22718..0fcf79f73e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/heart_confetti.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/heart_confetti.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_back.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_back.png old mode 100755 new mode 100644 index d1b8a443e3..98bb4a7964 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_back.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_back.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_done.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_done.png old mode 100755 new mode 100644 index 06a606c1ed..115e4ab8ea Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_done.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_done.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_new.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_new.png old mode 100755 new mode 100644 index 8c46f766f3..20b5575d18 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_new.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_new.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_other.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_other.png old mode 100755 new mode 100644 index b50b233b22..6fe7f687e3 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_other.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_reply.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_reply.png index c4b9429d4c..08d18af04b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_reply.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_reply.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_reply2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_reply2.png old mode 100755 new mode 100644 index 9fc10fd792..659bb71333 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_reply2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_reply2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_search.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_search.png old mode 100755 new mode 100644 index cf64be0fe4..644a120452 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_search.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_again.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_again.png index 90b1605ae2..78a4cb5dfd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_again.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_again.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_againinline.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_againinline.png index 23adf47412..199e3d78e1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_againinline.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_againinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_arrow_drop_down.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_arrow_drop_down.png old mode 100755 new mode 100644 index 3a3d9ddff0..d5fca2245f Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_arrow_drop_down.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_arrow_drop_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call.png index 00a8829d30..62980aef28 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call_end_white_24dp.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call_end_white_24dp.png index 0aaaec165c..11ab2d4123 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call_end_white_24dp.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call_end_white_24dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call_made_green_18dp.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call_made_green_18dp.png index d8d0b219dd..b4ddbb3bb4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call_made_green_18dp.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call_made_green_18dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call_received_green_18dp.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call_received_green_18dp.png old mode 100755 new mode 100644 index 853e81400c..596e1b9391 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call_received_green_18dp.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_call_received_green_18dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_chatlist_add_2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_chatlist_add_2.png index 52bca09ffe..13e591d17c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_chatlist_add_2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_chatlist_add_2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_chevron_right_black_18dp.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_chevron_right_black_18dp.png old mode 100755 new mode 100644 index 7a32280660..04b8edc76a Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_chevron_right_black_18dp.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_chevron_right_black_18dp.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_close_white.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_close_white.png old mode 100755 new mode 100644 index 31189dec34..65bfdb800a Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_close_white.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_close_white.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_fp_40px.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_fp_40px.png deleted file mode 100644 index 1f183bd326..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_fp_40px.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_gallery_background.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_gallery_background.png index e444bb9f35..46c4dac941 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_gallery_background.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_gallery_background.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_gofullscreen.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_gofullscreen.png index 9bd2d91bda..83268dcebf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_gofullscreen.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_gofullscreen.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_goinline.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_goinline.png index b6f983a046..4f7b0f1abe 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_goinline.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_goinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_layer_close.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_layer_close.png index c968963a09..66c72e086c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_layer_close.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_layer_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_lock_header.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_lock_header.png old mode 100755 new mode 100644 index 3473bfbe3b..ffb4f9e47e Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_lock_header.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_lock_header.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_lock_white.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_lock_white.png index 2b7039be85..3a21780fe0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_lock_white.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_lock_white.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_masks_msk1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_masks_msk1.png index 78bf8611cb..284d622ad0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_masks_msk1.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_masks_msk1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_outfullscreen.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_outfullscreen.png index 09f640ac17..ddb2bbcbea 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_outfullscreen.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_outfullscreen.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_outinline.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_outinline.png index 0d2467dd20..8029593cd4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_outinline.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_outinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_pause.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_pause.png index 0ea19f5521..754d78d723 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_pause.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_pause.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_pauseinline.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_pauseinline.png index 7192ad487e..ab82c9b6ce 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_pauseinline.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_pauseinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_play.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_play.png index d65cd27629..20b2973280 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_play.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_play.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_playinline.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_playinline.png index 9ee7c97596..8d10ea3c7e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_playinline.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_playinline.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_rating_star.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_rating_star.png index 806044e309..7f93fccf90 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_rating_star.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_rating_star.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_rating_star_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_rating_star_filled.png index 2fa1e84b54..4adc1c785d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_rating_star_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_rating_star_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_send.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_send.png old mode 100755 new mode 100644 index a7bbf2c17e..075550e3d4 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_send.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_send.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_share_video.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_share_video.png index b5a4d49a47..056372ff2d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_share_video.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_share_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_video.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_video.png index ed7aad862a..da6e0fb93d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_video.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_attach.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_attach.png index b942f3257a..97d2f25faa 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_attach.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_attach.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_bot1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_bot1.png index 5c16f4055d..049099a9f7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_bot1.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_bot1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_bot2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_bot2.png index c7dba6826d..b9e1213f59 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_bot2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_bot2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_calendar1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_calendar1.png index 4cd7f75b82..00b76d4b84 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_calendar1.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_calendar1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_calendar2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_calendar2.png index 0135720481..ae3c3c690c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_calendar2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_calendar2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_clear.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_clear.png index 1ac7f70ced..da72562239 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_clear.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_done.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_done.png index c0521ccf84..dff1eba08b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_done.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_done.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_forward.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_forward.png index 8a82b42b4f..35886a404b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_forward.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_keyboard.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_keyboard.png index 80b60a6cc1..8323676cb5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_keyboard.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_keyboard.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_mic.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_mic.png index f33e58f034..9290b32d9e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_mic.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_mic.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_mic_pressed.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_mic_pressed.png index 72d94ac4b0..a27c1d1788 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_mic_pressed.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_mic_pressed.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_notify_off.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_notify_off.png index 5382a1ea3a..706829e366 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_notify_off.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_notify_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_notify_on.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_notify_on.png index 7805424d41..d9b8ab1ad2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_notify_on.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_notify_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_reply.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_reply.png index 55142191ee..145d5a6d6a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_reply.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_reply.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_schedule.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_schedule.png index c116d43e02..885da3b737 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_schedule.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_schedule.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_smile.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_smile.png index 230f180fdb..5881a5e690 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_smile.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_smile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_video.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_video.png index d561fdca63..79f092724c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_video.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_video_pressed.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_video_pressed.png index 4d7acaa034..afd2c67a97 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_video_pressed.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_video_pressed.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_video_story.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_video_story.png index f8ddf1bd85..64384923f0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_video_story.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_video_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/input_video_story_remove.png b/TMessagesProj/src/main/res/drawable-xxhdpi/input_video_story_remove.png index d6367f3261..3093de23ae 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/input_video_story_remove.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/input_video_story_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/instant_camera.png b/TMessagesProj/src/main/res/drawable-xxhdpi/instant_camera.png old mode 100755 new mode 100644 index 001b74c5ad..238447c249 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/instant_camera.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/instant_camera.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_arrow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_arrow.png old mode 100755 new mode 100644 index 49868c5b3e..920a598b8c Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_arrow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_arrow_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_arrow_shadow.png old mode 100755 new mode 100644 index dbd117d3f9..6eaa8f7f66 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_arrow_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_arrow_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_body.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_body.png index 697fa25bdf..49201f0ab8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_body.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_body.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_spiral.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_spiral.png old mode 100755 new mode 100644 index d77b05dbd1..0e8dba9915 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_spiral.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_fast_spiral.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_bubble.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_bubble.png old mode 100755 new mode 100644 index fd9491359f..4e3dc4d20a Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_bubble.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_bubble.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_bubble_dot.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_bubble_dot.png old mode 100755 new mode 100644 index 098adb917f..8a1271a2d0 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_bubble_dot.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_bubble_dot.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_cam.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_cam.png old mode 100755 new mode 100644 index 1824a74731..99cbbade76 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_cam.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_cam.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_cam_lens.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_cam_lens.png old mode 100755 new mode 100644 index 17b6e35166..25837df4f3 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_cam_lens.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_cam_lens.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_pencil.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_pencil.png old mode 100755 new mode 100644 index 543bd98d42..9cd7e0fb98 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_pencil.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_pencil.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_pin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_pin.png old mode 100755 new mode 100644 index 6127dfcb1c..01e88deab9 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_pin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_smile.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_smile.png old mode 100755 new mode 100644 index 9c4133cba1..b66f73e5a4 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_smile.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_smile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_smile_eye.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_smile_eye.png old mode 100755 new mode 100644 index c47f3d536d..fffa644f89 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_smile_eye.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_smile_eye.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_videocam.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_videocam.png old mode 100755 new mode 100644 index a2ab4ddb43..b45537aa4a Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_videocam.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_ic_videocam.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_knot_down.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_knot_down.png old mode 100755 new mode 100644 index f54d09a410..bb4c152fde Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_knot_down.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_knot_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_knot_up.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_knot_up.png old mode 100755 new mode 100644 index 2af230db69..49c8679cc6 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_knot_up.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_knot_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_infinity.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_infinity.png old mode 100755 new mode 100644 index d9a6ae60bf..05060151ba Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_infinity.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_infinity.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_infinity_white.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_infinity_white.png old mode 100755 new mode 100644 index f74e18a37e..1d3cacdacc Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_infinity_white.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_infinity_white.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_mask.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_mask.png old mode 100755 new mode 100644 index 1a97baf85e..61bdbef44c Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_mask.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_mask.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_star.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_star.png old mode 100755 new mode 100644 index d8b1f2aeac..c65196430b Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_star.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_powerful_star.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_private_door.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_private_door.png old mode 100755 new mode 100644 index 1d8ecedce3..060ed48f7f Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_private_door.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_private_door.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_private_screw.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_private_screw.png old mode 100755 new mode 100644 index 8499735204..c71e6e3ab6 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_private_screw.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_private_screw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_tg_plane.png b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_tg_plane.png old mode 100755 new mode 100644 index 557da7ac97..6422ba9bdc Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/intro_tg_plane.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/intro_tg_plane.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/knob_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/knob_shadow.png index 43d6ebfbbd..f1f69cbe2a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/knob_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/knob_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_ads_info.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_ads_info.png index 09cead34d4..d7a84b914c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_ads_info.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_ads_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_archive.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_archive.png index 81fd21f926..99d59640dd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_archive.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_away.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_away.png index efc26f796b..b5f9506ce2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_away.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_away.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_boosts.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_boosts.png index ef41a4ec17..13f71ad6a6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_boosts.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_boosts.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_greeting.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_greeting.png index 632b4d1616..e8e42c96ef 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_greeting.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_greeting.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_hashtags.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_hashtags.png index c814331449..fdb3644598 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_hashtags.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_hashtags.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_hidden.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_hidden.png index b60d52b54c..17057f19b8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_hidden.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_hidden.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_income.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_income.png index 224c13cb0e..1a59074b3e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_income.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_income.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_locked_post.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_locked_post.png index 4696f93a0b..0e8f163dfc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_locked_post.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_locked_post.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_log_actions.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_log_actions.png index 609d815f0f..9297b02920 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_log_actions.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_log_actions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_message_lock.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_message_lock.png deleted file mode 100644 index 76a8fe5e7d..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_message_lock.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_monetize.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_monetize.png index 06e019d3b2..714b88eee4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_monetize.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_monetize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_notes.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_notes.png index b169750c54..a3c20b7925 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_notes.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_notes.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_quickreplies.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_quickreplies.png index 50aa4ca7ef..31b511cf61 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_quickreplies.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_quickreplies.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_repost_story.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_repost_story.png index 7072f83809..bc59f78c6f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_repost_story.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_repost_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_stealth.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_stealth.png index 8dec9a15f8..8110dc1361 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_stealth.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/large_stealth.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/large_username.png b/TMessagesProj/src/main/res/drawable-xxhdpi/large_username.png deleted file mode 100644 index 9dbe1af0f2..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/large_username.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/layer_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/layer_shadow.png index 7e62bc1cb2..d62bb2bb56 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/layer_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/layer_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/left_status_profile.png b/TMessagesProj/src/main/res/drawable-xxhdpi/left_status_profile.png index 869d4874b1..1569ec941b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/left_status_profile.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/left_status_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/list_check.png b/TMessagesProj/src/main/res/drawable-xxhdpi/list_check.png index 71710420d7..1516c8a136 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/list_check.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/list_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/list_circle.png b/TMessagesProj/src/main/res/drawable-xxhdpi/list_circle.png old mode 100755 new mode 100644 index 5bd239d896..802b058ec4 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/list_circle.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/list_circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/list_halfcheck.png b/TMessagesProj/src/main/res/drawable-xxhdpi/list_halfcheck.png index 6170ee2bed..61c623e077 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/list_halfcheck.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/list_halfcheck.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/list_mute.png b/TMessagesProj/src/main/res/drawable-xxhdpi/list_mute.png index 86c79499f6..5e5c2dfef0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/list_mute.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/list_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/list_pin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/list_pin.png index 8102c40d33..09fb825a99 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/list_pin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/list_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/list_reorder.png b/TMessagesProj/src/main/res/drawable-xxhdpi/list_reorder.png index 9b7b9a1437..791f7e481e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/list_reorder.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/list_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/list_secret.png b/TMessagesProj/src/main/res/drawable-xxhdpi/list_secret.png old mode 100755 new mode 100644 index 5d6efa0e78..e0589eabf5 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/list_secret.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/list_secret.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/list_unmute.png b/TMessagesProj/src/main/res/drawable-xxhdpi/list_unmute.png index 6bff722049..1f828962ce 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/list_unmute.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/list_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/list_warning_sign.png b/TMessagesProj/src/main/res/drawable-xxhdpi/list_warning_sign.png old mode 100755 new mode 100644 index 5360daea02..62511a4f5f Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/list_warning_sign.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/list_warning_sign.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/live_loc.png b/TMessagesProj/src/main/res/drawable-xxhdpi/live_loc.png index b45caa7623..069e6f79ad 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/live_loc.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/live_loc.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/livepin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/livepin.png index f527589a20..04035b9924 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/livepin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/livepin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/load_big.png b/TMessagesProj/src/main/res/drawable-xxhdpi/load_big.png old mode 100755 new mode 100644 index eb90aa331a..cb2598a143 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/load_big.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/load_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/location_empty.png b/TMessagesProj/src/main/res/drawable-xxhdpi/location_empty.png index ad8e9f737a..21f0415aab 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/location_empty.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/location_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/login_arrow1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/login_arrow1.png index d8fdda4031..4aaf054d0d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/login_arrow1.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/login_arrow1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/login_phone1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/login_phone1.png index a49f7e0b80..681a8b6667 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/login_phone1.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/login_phone1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/logo_middle.png b/TMessagesProj/src/main/res/drawable-xxhdpi/logo_middle.png index 53ede642ee..e1e98a54b6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/logo_middle.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/logo_middle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin.png index fcddc71a05..bacc08edd5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin2.png index c5b1c9cd87..4ea5a57053 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin_circle.png b/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin_circle.png index 810dbed011..fd3f7bcb52 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin_circle.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin_circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin_cone2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin_cone2.png index 21125f8df1..2ab5e8d3ae 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin_cone2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin_cone2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin_photo.png b/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin_photo.png index 3b2d2d6225..5a4433c2fd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin_photo.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/map_pin_photo.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_button_erase.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_button_erase.png index 40b40c9c6d..e5c818f360 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_button_erase.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_button_erase.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_button_restore.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_button_restore.png index 868f20231b..f6567bbe5e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_button_restore.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_button_restore.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_button_undo.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_button_undo.png deleted file mode 100644 index 603c0623da..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_button_undo.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_crop.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_crop.png index 1291a11302..748fe3ed0a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_crop.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_crop.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_blue.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_blue.png index 791f41f409..aceca30880 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_blue.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_blue.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_blue_b.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_blue_b.png index 552eb74149..4571b97fd0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_blue_b.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_blue_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_green.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_green.png index c08a178e95..1789540a77 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_green.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_green.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_green_b.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_green_b.png index 46aade7b2e..078bfce5ad 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_green_b.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_green_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_red.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_red.png index bc1b6b03f6..2faeb3b7b3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_red.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_red.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_red_b.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_red_b.png index 3230b599e3..9768d6b93b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_red_b.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_red_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_yellow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_yellow.png index dae7e6a83d..f029da98eb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_yellow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_yellow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_yellow_b.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_yellow_b.png index b1a149b4bb..5dcbb2c776 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_yellow_b.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_doc_yellow_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_download.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_download.png index 3d81c4bb88..c6a4f524ba 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_download.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_download.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_draw.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_draw.png index 2b3aa9ddf6..7229b5cd31 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_draw.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_draw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_dual_camera2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_dual_camera2.png index aca1bedc37..eae1fb4cd2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_dual_camera2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_dual_camera2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_dual_camera2_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_dual_camera2_shadow.png index 947a7f181d..e66cc28673 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_dual_camera2_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_dual_camera2_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_flip.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_flip.png index 2468172bef..2a7b3a25c2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_flip.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_flip.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_like.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_like.png index e7d7e4bf2e..de57169da0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_like.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_like.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_like_active.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_like_active.png index 6c3ee9bf86..4ac9adfa1d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_like_active.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_like_active.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_magic_cut.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_magic_cut.png index a123d28d70..3783507a91 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_magic_cut.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_magic_cut.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_more.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_more.png index 0a846ccf7c..3a49c675f9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_more.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_more.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_mute.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_mute.png index e238152bd7..2c19cc711e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_mute.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_photo_flash_auto2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_photo_flash_auto2.png index 3fa06945a9..35a7a227be 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_photo_flash_auto2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_photo_flash_auto2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_photo_flash_off2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_photo_flash_off2.png index 1f256fee58..c9960045f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_photo_flash_off2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_photo_flash_off2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_photo_flash_on2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_photo_flash_on2.png index 8f5c72687a..682dfae699 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_photo_flash_on2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_photo_flash_on2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_repost.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_repost.png index 6f541d8aa1..79cdc942e5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_repost.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_repost.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_settings.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_settings.png index db77cff2d8..3d411a281e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_settings.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_share.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_share.png index c219fc9e00..8f4dd8346e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_share.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_sticker_stroke.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_sticker_stroke.png index 159f44b9c9..57c0d420fe 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_sticker_stroke.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_sticker_stroke.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/media_unmute.png b/TMessagesProj/src/main/res/drawable-xxhdpi/media_unmute.png index c1c2a8b26b..216aba0196 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/media_unmute.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/media_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mentionbutton.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mentionbutton.png index 8fe89a76c5..65b777a1e9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mentionbutton.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mentionbutton.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mentionchatslist.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mentionchatslist.png index 89c16cd7d7..8a3b33aebd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mentionchatslist.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mentionchatslist.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_birthday.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_birthday.png index 25e06da49c..d62d05ea33 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_birthday.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_birthday.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_arrowup.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_arrowup.png index 9f53699ca9..0600cfe24c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_arrowup.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_arrowup.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_bookmark.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_bookmark.png index 741d7412dd..9cbf83fc41 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_bookmark.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_bookmark.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_bookmarks.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_bookmarks.png index 45fa1af125..17e2829a23 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_bookmarks.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_bookmarks.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_refresh.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_refresh.png index 838ae09742..ec3ebb5016 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_refresh.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_refresh.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_search.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_search.png index cc9a96c6e1..c840210fe7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_search.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_browser_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_cashtag.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_cashtag.png index 6bffe30362..aaaf25d510 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_cashtag.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_cashtag.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_cache.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_cache.png index 0d2fadc3e4..fe8b07eeaf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_cache.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_cache.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_cookies.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_cookies.png index 9e82debbe7..b9d3c41041 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_cookies.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_cookies.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_history.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_history.png index 9fd59feb6d..bc22caa100 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_history.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_history.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_recent.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_recent.png index 148c63ac65..ed9dad5ee6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_recent.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_clear_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_contact_existing.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_contact_existing.png index 352cb6eb30..be9e63980a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_contact_existing.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_contact_existing.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_copy_s.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_copy_s.png index 9a2a0eebf8..47b41777d3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_copy_s.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_copy_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_cover_stories.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_cover_stories.png index 02de4b41e9..fb2af50f70 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_cover_stories.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_cover_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_delete_old.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_delete_old.png index 521275fb00..2dd28fd82f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_delete_old.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_delete_old.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_devices.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_devices.png index bcdf446f85..72a9928918 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_devices.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_devices.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_edit_appearance.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_edit_appearance.png index e7167bae37..e259d5cbe8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_edit_appearance.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_edit_appearance.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_external_link.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_external_link.png index fb00b5482c..83c06eb2bd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_external_link.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_external_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_factcheck.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_factcheck.png index bdfc753169..c2764d7093 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_factcheck.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_factcheck.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_color_name.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_color_name.png index 42c1824873..5ab07a9558 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_color_name.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_color_name.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_color_profile.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_color_profile.png index e7bd4f1d09..bbe2a194b7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_color_profile.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_color_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_cover.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_cover.png index d330b2a1cf..6812156b75 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_cover.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_cover.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_cpm.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_cpm.png index 5bfd721c9e..ed2a572e04 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_cpm.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_cpm.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_custombg.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_custombg.png index 3ecd90676a..43d3527e39 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_custombg.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_custombg.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_intro.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_intro.png index 24d3f0aa03..9a46326c8c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_intro.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_links.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_links.png index f29163fb76..6821082905 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_links.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_links.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_links2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_links2.png index 5727755e4c..854032d00e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_links2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_links2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_noads.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_noads.png index 49862e4f83..e4558a705d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_noads.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_noads.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_pack.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_pack.png index 70ec3004cd..715b23ef6f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_pack.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_pack.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_paid.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_paid.png index 18f3b00bd3..43d5d7e276 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_paid.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_paid.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_reactions.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_reactions.png index 3950e404e3..b593a94bf5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_reactions.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_split.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_split.png index db36d1baaa..e2007801e9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_split.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_split.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_status.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_status.png index 07cdfec3d4..9d5ded1b0d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_status.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_stories.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_stories.png index 9a7105fa91..b124bf2ef6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_stories.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_translate.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_translate.png index eaa4e7fd7a..0c111a71da 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_translate.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_translate.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_voice.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_voice.png index a188cb6662..85ee49e8e4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_voice.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_wallpaper.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_wallpaper.png index 76661a8dca..e9a64bb7ad 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_wallpaper.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_wallpaper.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_withdrawals.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_withdrawals.png index 565f1f82be..c8f07091ad 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_withdrawals.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_feature_withdrawals.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_gift.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_gift.png index 5fd55a426f..6dba57765d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_gift.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_hashtag.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_hashtag.png index 0b6bc74191..58b2e77785 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_hashtag.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_hashtag.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_instant_view.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_instant_view.png index 36e839411c..d7dcb362d0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_instant_view.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_instant_view.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_intro.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_intro.png index 9a72445a27..4e7d0d3892 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_intro.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_intro.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_invit_telegram.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_invit_telegram.png index c4e4c66a78..e6072bf146 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_invit_telegram.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_invit_telegram.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_link_create.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_link_create.png index 96054886c1..a5d2047e20 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_link_create.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_link_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_away.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_away.png index d4452b745a..5e094e67da 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_away.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_away.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_chatbot.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_chatbot.png index 25c089d7c8..2f9998fe6e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_chatbot.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_chatbot.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_chatlink.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_chatlink.png index 96615b318d..f3a9dbe4e4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_chatlink.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_chatlink.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_clock.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_clock.png index 1ce6574406..d4a6c6d5f4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_clock.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_clock.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_clock_add.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_clock_add.png index 5a039d2c00..9bd7c88a2b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_clock_add.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_clock_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_effects.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_effects.png index a28b961d99..27dc810286 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_effects.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_effects.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_location.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_location.png index 3c437fb885..b304a77b44 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_location.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_main.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_main.png index f4a96b087a..0d3f538487 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_main.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_main.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_privacy.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_privacy.png index 285adf5895..e1d4478222 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_privacy.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_privacy.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_seen.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_seen.png index 39ffb9fee5..cf25966390 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_seen.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_seen.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_tools.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_tools.png index 74c88483af..cd0465f4fe 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_tools.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_premium_tools.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_privacy.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_privacy.png index 9f52728665..adaa74922d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_privacy.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_privacy.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_privacy_policy.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_privacy_policy.png index dcc084a7fb..8a3e47dcea 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_privacy_policy.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_privacy_policy.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_profile_colors.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_profile_colors.png index 355be5bb92..4b29129e34 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_profile_colors.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_profile_colors.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_profile_colors_locked.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_profile_colors_locked.png index 764c9904eb..a1f1a5e24a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_profile_colors_locked.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_profile_colors_locked.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quality_hd.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quality_hd.png index 4fc64ed179..79f8695e27 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quality_hd.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quality_hd.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quality_hd2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quality_hd2.png index f223482090..c30b47c55f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quality_hd2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quality_hd2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quality_sd.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quality_sd.png index f2d15bb135..514074aab6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quality_sd.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quality_sd.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quickreply.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quickreply.png index 731ff529a6..133924a6f8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quickreply.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quickreply.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quote_delete.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quote_delete.png index f7e9f67bbf..8b153c8353 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quote_delete.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quote_delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quote_specific.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quote_specific.png index 0fd2dc3f62..1b947ac63c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quote_specific.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_quote_specific.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_random.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_random.png new file mode 100644 index 0000000000..e4e9abc086 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_random.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_select_quote.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_select_quote.png index 5d115361dc..6eee2fb491 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_select_quote.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_select_quote.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_shadow.png old mode 100755 new mode 100644 index 64def28b75..2614efbd51 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_shop.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_shop.png index 29e341e209..686a210076 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_shop.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_shop.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_stars_gift.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_stars_gift.png index b4076029e3..219873223a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_stars_gift.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_stars_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_sticker_add.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_sticker_add.png index 2ff86bb8fb..4bb2dcf5d9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_sticker_add.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_sticker_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_sticker_select.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_sticker_select.png index 7dd129288e..cf8aab7c64 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_sticker_select.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_sticker_select.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_storage_path.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_storage_path.png index 954230f871..fd610cf3d1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_storage_path.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_storage_path.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_delete.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_delete.png index 50fdf3f70c..5b73281f31 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_delete.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_edit.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_edit.png index aac582f18f..e4fe7d7d48 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_edit.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_filter.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_filter.png index 867130dc8e..1be01dcb41 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_filter.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_filter.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_plus.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_plus.png index df8bb0f1d3..d9480babee 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_plus.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_rename.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_rename.png index c512e25c43..e58ee2a10e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_rename.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_tag_rename.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_unsave_story.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_unsave_story.png index 5a20459a01..b61115303e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_unsave_story.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_unsave_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_username_change.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_username_change.png index 5d35379ea8..a02ab9bde5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_username_change.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_username_change.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_username_set.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_username_set.png index f3fb0a53aa..b86e4ab68f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_username_set.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_username_set.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reactions.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reactions.png index 3b4041b3f5..6dd0d09ba7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reactions.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reactions2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reactions2.png index 16b585cb95..9231d21e00 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reactions2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reactions2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reactions3.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reactions3.png index 96357697b7..d97f880020 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reactions3.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reactions3.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_recent.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_recent.png index 7371ca483e..b6f28f90bf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_recent.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_recent2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_recent2.png index bfb2277d7b..bf6b236673 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_recent2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_recent2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_recent3.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_recent3.png index 762810d0e0..7861f3adc9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_recent3.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_recent3.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reposts.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reposts.png index c61144e183..6455de5cf8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reposts.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reposts.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reposts3.png b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reposts3.png index d939853aa6..b24a81ff6d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reposts3.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/menu_views_reposts3.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/message_arrow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/message_arrow.png old mode 100755 new mode 100644 index 878bca3ca9..5a6fd459ef Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/message_arrow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/message_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_badge.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_badge.png index 69164fbe06..b1ff682eb7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_badge.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_badge.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_button.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_button.png index 837742de41..8713e34e6e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_button.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_button.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_profile_badge.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_profile_badge.png index 9cf75a6ecb..7a1ac8f6d2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_profile_badge.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_profile_badge.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_profile_badge2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_profile_badge2.png index 58ebf6f493..8b8b9774ea 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_profile_badge2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_profile_badge2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_remove.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_remove.png index fad01ed0e3..5b34f86122 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_remove.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_boost_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_browser_iv.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_browser_iv.png new file mode 100644 index 0000000000..629d7ffb1f Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_browser_iv.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_external_link.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_external_link.png index 6ca36dbcee..99db5e7cff 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_external_link.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_external_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_forward_story.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_forward_story.png index 0e4a9ac8d9..6a24cb3789 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_forward_story.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_forward_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_forwarded.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_forwarded.png index 214fa735c1..8bf5701d2a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_forwarded.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_forwarded.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_gift.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_gift.png index fd71fa6d81..e9d7c95e6c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_gift.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_giveaway.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_giveaway.png index 80fa006348..e37dda8fdf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_giveaway.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_giveaway.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_like_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_like_filled.png index 2068a7768e..d5aee3e81c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_like_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_like_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_more_dots.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_more_dots.png index eeb470c99c..81950248ab 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_more_dots.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_more_dots.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_quote.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_quote.png index 7c9267787d..ead4f38d14 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_quote.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_quote.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_reply_user.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_reply_user.png index b276912288..db55ce3b46 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_reply_user.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_reply_user.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_repost_story.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_repost_story.png index 6eff47a6bc..663453a8b7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_repost_story.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_repost_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_repost_story2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_repost_story2.png index 657125f357..d6ddef8605 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_repost_story2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_repost_story2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_stats_likes.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_stats_likes.png index bdb88fd40e..cd86d5e58a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_stats_likes.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_stats_likes.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_stats_shares.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_stats_shares.png index 76d338c6f6..299f8f9189 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_stats_shares.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_stats_shares.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_switch_lock.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_switch_lock.png index ab5f7e90e7..ae849c1425 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_switch_lock.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_switch_lock.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_ton.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_ton.png index feff77a7dd..34009251fd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_ton.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_ton.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_viewonce.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_viewonce.png index f962825e93..e854a7cbe4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_viewonce.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_viewonce.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_views_likes.png b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_views_likes.png index d68af51a5d..580b4e832f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/mini_views_likes.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/mini_views_likes.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/minibubble_in.png b/TMessagesProj/src/main/res/drawable-xxhdpi/minibubble_in.png index ad06c53a8b..9b6b74d5b8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/minibubble_in.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/minibubble_in.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/miniplayer_close.png b/TMessagesProj/src/main/res/drawable-xxhdpi/miniplayer_close.png index b37f8a2d97..f54cac392f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/miniplayer_close.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/miniplayer_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/minithumb_play.png b/TMessagesProj/src/main/res/drawable-xxhdpi/minithumb_play.png index 6947e642a3..5025a86e58 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/minithumb_play.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/minithumb_play.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_animations.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_animations.png index 91438d9182..edefef91e9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_animations.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_animations.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_archived_stickers.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_archived_stickers.png index b360384102..46a9248298 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_archived_stickers.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_archived_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_ask_question.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_ask_question.png index fa9475148c..cf9c37bedb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_ask_question.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_ask_question.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_autodelete.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_autodelete.png index 66f0d00722..9b0515a536 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_autodelete.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_autodelete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_battery.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_battery.png index 13b7989529..2f0c366749 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_battery.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_battery.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_block2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_block2.png index 6362a28a80..1f90e34472 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_block2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_block2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_call_earpiece.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_call_earpiece.png index 320684b071..75c41d31b7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_call_earpiece.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_call_earpiece.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_chats_add.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_chats_add.png index de025e4181..49365ab949 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_chats_add.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_chats_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_data.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_data.png index 6c87f74d96..60c454aabd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_data.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_data.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_devices.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_devices.png index a572428894..8fb6e605e7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_devices.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_devices.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_discussion.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_discussion.png index 780456eb84..bdd14b3f48 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_discussion.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_discussion.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_email.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_email.png index a26b88ba50..e848b439b8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_email.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_email.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_folder.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_folder.png index 137c3d3271..38db99a8c7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_folder.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_gif.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_gif.png index 7c63cfba32..1c62f53d67 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_gif.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_gif.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_help.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_help.png index 9ab9bf092f..9baa2308f6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_help.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_help.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_language.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_language.png index d1dbf87af7..06458b7d54 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_language.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_language.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_link2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_link2.png index ee1e90c6f8..0fc569dd98 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_link2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_link2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_night_auto.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_night_auto.png index 4785d8293d..c8254f1097 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_night_auto.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_night_auto.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_notifications.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_notifications.png index e7f19a94cd..81b44f98ae 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_notifications.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_notifications.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_permissions.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_permissions.png index 2d4afa634a..7901adaded 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_permissions.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_permissions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_policy.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_policy.png index 0fe88ace2b..7388b4ea94 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_policy.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_policy.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_proxy_off.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_proxy_off.png index 317d95eb32..d6217d2728 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_proxy_off.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_proxy_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_proxy_on.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_proxy_on.png index dcc00ab34f..7127f31020 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_proxy_on.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_proxy_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_reactions2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_reactions2.png index 3f78de6284..1c52d37eeb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_reactions2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_reactions2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_secret.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_secret.png index e84e6f3b6d..06466d207e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_secret.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_secret.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_smile_status.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_smile_status.png index 524e513f9c..941f659e00 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_smile_status.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_smile_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_sticker.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_sticker.png index 170c2dafb0..4a6d4cd282 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_sticker.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_trending.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_trending.png index b3fc0da97d..a1d21508d2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_trending.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_trending.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_videocall.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_videocall.png index 11643a7caf..f44de6f3b4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_videocall.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg2_videocall.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_actions.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_actions.png old mode 100755 new mode 100644 index 164825b4fa..456afdb659 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_actions.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_actions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_add.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_add.png index ee38a0ff90..63eac80fd9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_add.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addbio.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addbio.png index 19028341b8..36b165216c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addbio.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addbio.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addbot.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addbot.png index 54efa87149..923732bd2d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addbot.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addbot.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addcontact.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addcontact.png index 1c6bc2e4f8..8780f56d2a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addcontact.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addcontact.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addfolder.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addfolder.png index 22dc7ee695..45515245f9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addfolder.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addfolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addphoto.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addphoto.png index 0f883b3616..86df6ae8f2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addphoto.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_addphoto.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_admin_add.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_admin_add.png index 10b63c4e52..43dccfaf39 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_admin_add.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_admin_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_admins.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_admins.png index c2dfe4d8cc..730c83bfaf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_admins.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_admins.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_allowspeak.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_allowspeak.png index 9e50c92a15..3f71fc1e51 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_allowspeak.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_allowspeak.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive.png index 5134127104..829dd185d6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_archive.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_archive.png index 2db50e7c2a..e9e7035553 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_archive.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_hide.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_hide.png index 5bd0e4c635..2ae54c7d1f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_hide.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_hide.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_show.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_show.png index 5713a00717..f202470ef8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_show.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_show.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_stories.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_stories.png index e497fa9ca9..af831feb21 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_stories.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_archive_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrow_avatar.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrow_avatar.png index 0e14fafe83..b2f1e8d960 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrow_avatar.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrow_avatar.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrow_back.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrow_back.png index d17711d9bc..7db8dac935 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrow_back.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrow_back.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrow_forward.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrow_forward.png index 7733119883..b21a75dfc4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrow_forward.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrow_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrowright.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrowright.png index 0bdb7bff15..34d281e707 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrowright.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_arrowright.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete.png index 58d9c4841c..97bdce6b58 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_1d.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_1d.png index 3ce1023fcf..90cb2aeb82 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_1d.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_1d.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_1m.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_1m.png index 04d53f0af8..3f7bffaee3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_1m.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_1m.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_1w.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_1w.png index 3249b9e95a..dec4d8c264 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_1w.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_1w.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_2d.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_2d.png index d8943a4f06..4264d29261 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_2d.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_2d.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_badge2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_badge2.png index e53fcf97b7..2591b20c88 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_badge2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_autodelete_badge2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_background.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_background.png index 51a7608024..4f75fac3c9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_background.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_background.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_block.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_block.png index 47363d84c7..69af526e23 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_block.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_block.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_block2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_block2.png index 051a5ab4c7..41697a6973 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_block2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_block2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_blur_linear.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_blur_linear.png index 036b5b48d7..7c7918bf4b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_blur_linear.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_blur_linear.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_blur_off.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_blur_off.png index 859c72e620..9d18c3788f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_blur_off.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_blur_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_blur_radial.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_blur_radial.png index 96cfe3caee..1d1df98787 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_blur_radial.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_blur_radial.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_bot.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_bot.png index 134ae6aaf5..8a66b34a32 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_bot.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_bot.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_bots.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_bots.png index 1fd1d91815..e5b2ea8729 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_bots.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_brightness_high.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_brightness_high.png index 2b88aa4684..a84ab6a907 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_brightness_high.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_brightness_high.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_brightness_low.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_brightness_low.png index 5b3b46b5d2..dddc23fab5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_brightness_low.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_brightness_low.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calendar.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calendar.png index 7fdc3bab1b..6170a4cdd9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calendar.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calendar.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calendar2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calendar2.png index 9877f8dee1..229b1e57fc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calendar2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calendar2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_bluetooth.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_bluetooth.png index dba97c207e..9ba92f1e31 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_bluetooth.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_bluetooth.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_earpiece.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_earpiece.png index fb44e4cd1d..92d7a07aa0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_earpiece.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_earpiece.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_minimize.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_minimize.png index 6ca69d6746..bfb99fc583 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_minimize.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_minimize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_minimize_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_minimize_shadow.png index 9ed27ff2b7..ff3cfde02c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_minimize_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_minimize_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_speaker.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_speaker.png index cb7dc121d6..fd4b8a35e6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_speaker.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_call_speaker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_callback.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_callback.png index 39585cc8b2..8bb67627d9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_callback.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_callback.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls.png index 9df76cd146..e15648240f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_14.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_14.png index 146f1da656..b6232dedcf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_14.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_hw.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_hw.png index c733cc3f82..03bcea3f1d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_hw.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_minimize.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_minimize.png index 684902965f..9186c76364 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_minimize.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_minimize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_ny.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_ny.png index 3bd5596339..00af329a9b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_ny.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_regular.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_regular.png index 3a760b54fd..0e83dd436f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_regular.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_calls_regular.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_camera.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_camera.png index 5c5b1374a1..ea3f1ae49c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_camera.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_camera.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_cancel.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_cancel.png index 018b5b30e3..6f601a0a93 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_cancel.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_cancel.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_channel.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_channel.png index 087c0f5562..046e58e70d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_channel.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_channel.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_channel_create.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_channel_create.png index fa7ce4bd0e..f80bff76b4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_channel_create.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_channel_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_chats_remove.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_chats_remove.png index 64af2496f4..537ac63758 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_chats_remove.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_chats_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_check_s.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_check_s.png index ea15b0696c..3515532eb7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_check_s.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_check_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clear.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clear.png index c1905483e1..dbf452ee54 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clear.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clear_input.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clear_input.png index 21f972df31..641fb8897f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clear_input.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clear_input.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clear_recent.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clear_recent.png index 60e43ee8ae..0dac652354 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clear_recent.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clear_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clearcache.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clearcache.png index 09e77fde7e..58bb1eb65a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clearcache.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_clearcache.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_close.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_close.png index fda2072959..ea22067fc9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_close.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_colors.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_colors.png index 0ba09cd206..0c0d843921 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_colors.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_colors.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contact.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contact.png old mode 100755 new mode 100644 index ccbd2c20fc..b8aa0dfe50 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contact.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contact.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contact_add.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contact_add.png index 544686261c..20562c0f1c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contact_add.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contact_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts.png index 17ac5bc572..d807c5908f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_14.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_14.png index 3d24d45e43..f2d9e14da8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_14.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_hw.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_hw.png index e3683ac9cd..ec25f74292 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_hw.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_name.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_name.png index 70c1925a69..a77b9ca441 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_name.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_name.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_ny.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_ny.png index 7628cebe84..4a6974ae6d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_ny.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_time.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_time.png index af5c690d2a..aef1bc3b49 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_time.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_contacts_time.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_copy.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_copy.png index 928e19042a..1c9453e119 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_copy.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_copy.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_copy_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_copy_filled.png index 981189127e..179d9aaf86 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_copy_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_copy_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_current_location.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_current_location.png index 9ec8b99366..c4f45a7b1a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_current_location.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_current_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_customize.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_customize.png index 73bb1b9c0f..0f4f2ccea2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_customize.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_customize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_customize_s.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_customize_s.png index ae8f46531d..3850b83f1e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_customize_s.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_customize_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_delete.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_delete.png index 932dbc4755..76b1f17dae 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_delete.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_delete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_delete_auto.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_delete_auto.png index 52bd6cd66b..f86f9f1505 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_delete_auto.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_delete_auto.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_delete_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_delete_filled.png index 899b452dcb..0191766dd9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_delete_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_delete_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_disable.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_disable.png index 6e86c08895..f060b32293 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_disable.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_disable.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_discuss.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_discuss.png index 590c3d9a61..b4148aeeca 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_discuss.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_discuss.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_discussion.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_discussion.png index e68c9da066..c45d0a8e84 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_discussion.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_discussion.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_download.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_download.png index 8a5ca1e1d0..42f74ec46d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_download.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_download.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_download_settings.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_download_settings.png index ef6e38bc2f..789b5c347c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_download_settings.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_download_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_edit.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_edit.png index d0059fd313..e392327f76 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_edit.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_activities.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_activities.png index 01e2fc92f6..c60a17eb72 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_activities.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_activities.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_cat.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_cat.png index 41b3a2f9af..0095ca5d74 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_cat.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_cat.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_flags.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_flags.png index 70d29652d0..451bfe71ae 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_flags.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_flags.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_food.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_food.png index 87e80205c9..263a2cf811 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_food.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_food.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_objects.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_objects.png index 8a6b5d3312..199df8aa99 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_objects.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_objects.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_other.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_other.png index f855cf296e..97f9bf6c12 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_other.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_question.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_question.png index a84dfb8447..b94dcec517 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_question.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_question.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_recent.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_recent.png index f814330176..ec1943dc4a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_recent.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_smiles.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_smiles.png index 3fa9cbafc0..ce30ebacca 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_smiles.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_smiles.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_stickers.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_stickers.png index 3448ec98f9..8c7236377d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_stickers.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_travel.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_travel.png index 3289e52309..510e2a70a2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_travel.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_emoji_travel.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_endcall.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_endcall.png index 9187a66ef1..88cb958b77 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_endcall.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_endcall.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_expand.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_expand.png index 73f4ae4fda..83bac37eb4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_expand.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_fave.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_fave.png index b565095778..cf3b261297 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_fave.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_fave.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filehq.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filehq.png index d4399bdd0b..ad0576a6c8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filehq.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filehq.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_blocked.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_blocked.png index 6fb2d134ed..fc29fcff53 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_blocked.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_blocked.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_calls.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_calls.png index b40ae41fc5..86f8a8f18d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_calls.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_calls.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_files.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_files.png index 080957bf7b..f2ad96824a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_files.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_files.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_messages.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_messages.png index 4d93c6d59e..38bfd9cf67 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_messages.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_messages.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_music.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_music.png index 3fc0deb165..99977fd323 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_music.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_music.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_photos.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_photos.png index 3f4d9047ab..bed2ad6cda 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_photos.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_photos.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_received.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_received.png index 4e63b498fd..4716b9c826 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_received.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_received.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_sent.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_sent.png index 82c4241872..c294180f78 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_sent.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_sent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_videos.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_videos.png index 267fcd8c7e..f5de32a3a1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_videos.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_videos.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_voice.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_voice.png index eddf2ee2d6..e57099322e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_voice.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_data_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_datausage.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_datausage.png index 535b001b11..5f37f6e1a7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_datausage.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_datausage.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_general.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_general.png index 7e74d364ec..d0a3d9c404 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_general.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_general.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_general_large.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_general_large.png index e9c813fe42..b84dfb3dcb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_general_large.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_general_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_lockedrecord.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_lockedrecord.png index 0049e1b69f..d06420f535 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_lockedrecord.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_lockedrecord.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_menu_channels.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_menu_channels.png index e297131bd3..8349061019 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_menu_channels.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_menu_channels.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_menu_groups.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_menu_groups.png index fde129331d..6a5f1044c6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_menu_groups.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_menu_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_menu_users.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_menu_users.png index ddc8b4897a..89ca30932c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_menu_users.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_menu_users.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_plus.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_plus.png index 4421cc02f4..3a808e534a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_plus.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_sdcard.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_sdcard.png index 58f8ad0d7c..e97cbaafb7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_sdcard.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_sdcard.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_shareout.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_shareout.png index a1866ba45f..2270b7b43c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_shareout.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_shareout.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_storageusage.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_storageusage.png index 02e13ac482..0cebfbc11d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_storageusage.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_storageusage.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_stories.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_stories.png index 82d9b83ff1..4d71b5c6c8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_stories.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_unlockedrecord.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_unlockedrecord.png index 68e0081a67..7b7cea7235 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_unlockedrecord.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_filled_unlockedrecord.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders.png index c7465ce011..4adea4b0c4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_archive.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_archive.png index 436d4f219c..13c1b3afa5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_archive.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_bots.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_bots.png index 92b5bd47c0..ed02fe1014 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_bots.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_bots.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_channels.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_channels.png index ef9ba933e2..5edfdaad3d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_channels.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_channels.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_groups.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_groups.png index e9afcb6fa7..60a65d479f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_groups.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_muted.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_muted.png index 822de94d8f..86d5346bc2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_muted.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_private.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_private.png index c5ac142e41..2728a77ca0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_private.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_private.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_read.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_read.png index 2cd5e1ad98..382dad28d6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_read.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_read.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_requests.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_requests.png index 180616c091..5164694b22 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_requests.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_folders_requests.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 d85710bf84..29b9ba8c69 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_forward_replace.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_forward_replace.png index 7d429c1d16..817969143d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_forward_replace.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_forward_replace.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gallery.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gallery.png index 9d104b20d6..bb9f4ced35 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gallery.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gallery.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gallery_locked1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gallery_locked1.png index bc06edc583..e99213f804 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gallery_locked1.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gallery_locked1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gallery_locked2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gallery_locked2.png index 4d93f157ee..75121b681d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gallery_locked2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gallery_locked2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gif.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gif.png index 40ee4c1886..7f7f5e6aca 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gif.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gif.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gif_add.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gif_add.png index d3457be273..499a2fd1ea 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gif_add.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gif_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gift_premium.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gift_premium.png index 0c9b0e4b2a..d766fcc222 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gift_premium.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_gift_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_go_down.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_go_down.png index be7d0769d1..a1e587eb49 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_go_down.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_go_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_go_up.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_go_up.png index 1c45300e64..246ef2a005 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_go_up.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_go_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups.png index 5c43438aa7..95988d0af3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_14.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_14.png index 3203d5dd74..c5c9e4a4fe 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_14.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_create.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_create.png index c257933d55..1671264918 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_create.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_hw.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_hw.png index e97468de44..b741a957b1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_hw.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_ny.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_ny.png index 635cd5e4cf..d22951334f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_ny.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_groups_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_halfcheck.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_halfcheck.png index 52f7c3bd18..a8a663edb5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_halfcheck.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_halfcheck.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_halfcheck_s.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_halfcheck_s.png index f0169fdff2..15b9b25de7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_halfcheck_s.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_halfcheck_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_handdown.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_handdown.png index f6b3a67ecc..08d35217dd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_handdown.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_handdown.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_header_draw.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_header_draw.png index 27d9b44c2b..06197b20f0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_header_draw.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_header_draw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_header_share.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_header_share.png index c1de1fe9f4..b498b29504 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_header_share.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_header_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_help.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_help.png index 7646b0534f..027d9832cb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_help.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_help.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_help_hw.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_help_hw.png index 0b3595fe4e..55bf812290 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_help_hw.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_help_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_help_ny.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_help_ny.png index 02f223d633..c91ae2c640 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_help_ny.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_help_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_home.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_home.png index c8bc10422b..0dbaa864f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_home.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_home.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_hybrid.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_hybrid.png index 84fe767aeb..ede5eb2086 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_hybrid.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_hybrid.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_info.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_info.png index 57cb52bf3e..ed8c8bb2d0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_info.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_attach2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_attach2.png index d07e0a006a..a5838d2ed5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_attach2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_attach2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_gift.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_gift.png index 9ec88fb4f0..3c783507ec 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_gift.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_gift.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_like.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_like.png index 2390f22e5b..ee4cd4cc8a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_like.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_like.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_send_mini.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_send_mini.png index 937d5ecea7..f31e070536 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_send_mini.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_input_send_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_inputarrow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_inputarrow.png index 7454e2efda..762197d0f5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_inputarrow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_inputarrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_instant.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_instant.png old mode 100755 new mode 100644 index 97e268ded8..71815e33d4 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_instant.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_instant.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_instant_link.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_instant_link.png index 906768464c..e342f4182c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_instant_link.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_instant_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invite.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invite.png index 985834b61e..f9dabd72ec 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invite.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invite.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invite_hw.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invite_hw.png index b6435a7c52..c093c00bf5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invite_hw.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invite_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invite_ny.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invite_ny.png index 25986343a8..e19ac48027 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invite_ny.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invite_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invited.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invited.png index e0438a556f..f432e6b14d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invited.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_invited.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_jobtitle.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_jobtitle.png index cac7bb01e5..3049bb8b0c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_jobtitle.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_jobtitle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_language.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_language.png index 183d3009c3..d655d14206 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_language.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_language.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_leave.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_leave.png index 8c6883ea13..9ccd1aee7a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_leave.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_leave.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_accounts.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_accounts.png index c5ac142e41..2728a77ca0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_accounts.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_accounts.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_chats.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_chats.png index c8af6d94c7..8342c5855c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_chats.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_chats.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_folder.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_folder.png index 0823b3c5b6..2b794f12ec 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_folder.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_groups.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_groups.png index f3f323a264..41bb5b7a5f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_groups.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_groups.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_links.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_links.png index f4b3eb5ee2..b6dd86577c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_links.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_links.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_pin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_pin.png index 40ed635bc0..bdddb4ea9b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_pin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_stories.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_stories.png index 577cf0bbbd..03ee59c567 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_stories.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_limit_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link.png index fef4b84a55..cbe308b67d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link2.png index dbfad952b2..d3d7ac05eb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link_1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link_1.png index 24d61f2752..944e091331 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link_1.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link_1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link_2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link_2.png index f5ede48dd1..cf25b8b7bf 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link_2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link_2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link_folder.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link_folder.png index 859cfc6ee6..7df0be348f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link_folder.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_link_folder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_list.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_list.png index 3d4a79fd5b..02a4dddaf0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_list.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_list.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_location.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_location.png index 67be05650a..ac672ddcb6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_location.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_location.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_location_alert.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_location_alert.png index 4b83b92027..5478baf309 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_location_alert.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_location_alert.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_location_alert2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_location_alert2.png index 836f50bd91..cf39ae3bb9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_location_alert2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_location_alert2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_log.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_log.png index 575b95da3b..e9a3ea326a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_log.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_log.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_map.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_map.png index 0bff5cbf75..1abba09fe8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_map.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_map.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_map_type.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_map_type.png index 27dc80485d..d56fa6f250 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_map_type.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_map_type.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_markread.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_markread.png index 1adab64d48..2bb9e90d91 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_markread.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_markread.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_markunread.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_markunread.png index f06defe765..d4aaf3b29f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_markunread.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_markunread.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mask.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mask.png index 7af0df7623..245a474dc0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mask.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mask.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_maxvideo.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_maxvideo.png index ae9ffc264b..304c6db7e4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_maxvideo.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_maxvideo.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_media.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_media.png index 86d339e265..5ec1a6fe43 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_media.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_media.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_members_list2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_members_list2.png index 3b3c1677e7..b33000205c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_members_list2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_members_list2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mention.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mention.png index 2e3b18c346..a83ba185ee 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mention.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mention.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_menu_stories.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_menu_stories.png index b263b3e3d1..499aaf0c18 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_menu_stories.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_menu_stories.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_message.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_message.png index 3763f05770..f5b953c3c3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_message.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_message.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_message_s.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_message_s.png index 75fef1f4e8..469d771bf2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_message_s.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_message_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_addemoji.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_addemoji.png index 5c7249770c..49f1b9b754 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_addemoji.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_addemoji.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_addstory.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_addstory.png index c783946170..a52666008b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_addstory.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_addstory.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_arrow_mediabold.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_arrow_mediabold.png index 88a08b298a..9e11052a7c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_arrow_mediabold.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_arrow_mediabold.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_arrow_mediathin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_arrow_mediathin.png index aa4ee11df5..7e921872ab 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_arrow_mediathin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_arrow_mediathin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_autodelete.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_autodelete.png index f5db66ad06..63faa63a84 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_autodelete.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_autodelete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_autodelete_empty.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_autodelete_empty.png index 72a662e75f..60430ef817 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_autodelete_empty.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_autodelete_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_autodelete_timer.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_autodelete_timer.png index b80d87b5c6..63c531fa14 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_autodelete_timer.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_autodelete_timer.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_bomb.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_bomb.png index 5df65db9fa..d3c0f0e82b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_bomb.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_bomb.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_checks.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_checks.png index 74120d5750..945ae5eb51 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_checks.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_checks.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_close_tooltip.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_close_tooltip.png index edb3f2dbeb..e9f3f9195f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_close_tooltip.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_close_tooltip.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_closefriends.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_closefriends.png index aa9a1da359..67b3b42e4c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_closefriends.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_closefriends.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_customize.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_customize.png index 0a6367cfc3..19b4e0827f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_customize.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_customize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_download.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_download.png index 2c059a820f..e3b9c8e499 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_download.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_download.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_fireoff.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_fireoff.png index e8cf585277..a997712b49 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_fireoff.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_fireoff.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_fireon.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_fireon.png index c6615ccdad..6d40cccf1f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_fireon.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_fireon.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_forumarrow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_forumarrow.png index c5b7d9fd55..381d60ff00 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_forumarrow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_forumarrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_lock2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_lock2.png index 4ba33bf246..37d3bcc41a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_lock2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_lock2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_lock3.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_lock3.png index 324436938a..d6e3d79d56 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_lock3.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_lock3.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_lockedemoji.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_lockedemoji.png index b2f100933a..69b641aeed 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_lockedemoji.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_lockedemoji.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_premiumlock.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_premiumlock.png index e5c6136b96..f8841fe47e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_premiumlock.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_premiumlock.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_qr.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_qr.png index 85c9218315..19bff34469 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_qr.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_qr.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_replystory.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_replystory.png index b269ed9748..e0b33c3f2c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_replystory.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_replystory.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_replystory2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_replystory2.png index 4c438750f6..39affeae38 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_replystory2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_replystory2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_stickerstar.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_stickerstar.png index 7ec074743d..eff484ec82 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_stickerstar.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_stickerstar.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_topicarrow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_topicarrow.png index 6c6f8d3184..68728bab37 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_topicarrow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_topicarrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_upload.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_upload.png index 34cad727e3..015e539828 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_upload.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mini_upload.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_minvideo.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_minvideo.png index 496f5d58c4..5b50f1c633 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_minvideo.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_minvideo.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_msgbubble.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_msgbubble.png index 455d1c0254..4ad9cffc1b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_msgbubble.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_msgbubble.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_msgbubble2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_msgbubble2.png index 4b8cd31a15..5502ce2259 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_msgbubble2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_msgbubble2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_msgbubble3.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_msgbubble3.png index 73e488d881..591ed85a15 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_msgbubble3.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_msgbubble3.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mute.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mute.png index d243f8b781..9538eaf3b2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mute.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mute_1h.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mute_1h.png index 8c41b8955a..7c0d083fed 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mute_1h.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mute_1h.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mute_period.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mute_period.png index 85202494e5..65a204429e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mute_period.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_mute_period.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_nearby.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_nearby.png deleted file mode 100644 index 5d5822e74c..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_nearby.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_nearby_ny.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_nearby_ny.png deleted file mode 100644 index d4445a8eca..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_nearby_ny.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_newphone.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_newphone.png index 2a734b1b59..ae953ae5b6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_newphone.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_newphone.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_noise_off.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_noise_off.png index 0c6b5367b8..8d86a1464d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_noise_off.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_noise_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_noise_on.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_noise_on.png index 5a6edb95b1..6b29bdeb47 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_noise_on.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_noise_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_notifications.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_notifications.png index 49b0dc54d0..b6f7b2628c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_notifications.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_notifications.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_notspam.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_notspam.png index a83693004e..0b8a2665e2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_notspam.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_notspam.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_online.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_online.png index c096f8131e..e755c2b231 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_online.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_online.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_openin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_openin.png index dd4487118d..9f1a848ba6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_openin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_openin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_openprofile.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_openprofile.png index d204c9c41c..24c44458e1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_openprofile.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_openprofile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_other_new_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_other_new_filled.png index 98b17d142b..17a1ce90cc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_other_new_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_other_new_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_other_new_filled_text.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_other_new_filled_text.png index 9a7b376052..ebb8818fee 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_other_new_filled_text.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_other_new_filled_text.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_other_new_outline.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_other_new_outline.png index de814959b4..0dc818cf02 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_other_new_outline.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_other_new_outline.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_palette.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_palette.png index a797213d71..fb96c369a4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_palette.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_palette.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_panel_clear.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_panel_clear.png old mode 100755 new mode 100644 index feea2c97f8..b73f16e40f Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_panel_clear.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_panel_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_address.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_address.png index 7d274b3872..6396846309 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_address.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_address.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_card.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_card.png index 36b8c70496..2783cceb88 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_card.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_card.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_delivery.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_delivery.png index 9e6610404e..0d671cfc5c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_delivery.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_delivery.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_provider.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_provider.png index a47c598e43..ce214d5cf2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_provider.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_payment_provider.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_permissions.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_permissions.png index 82d3fae6f7..df39604dda 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_permissions.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_permissions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_back.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_back.png index 0018227391..090c20aaa3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_back.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_back.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_blur.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_blur.png index 75cdfe01c8..61cd4443a1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_blur.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_blur.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_cropfix.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_cropfix.png index c76982e636..4e118ae0ae 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_cropfix.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_cropfix.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_curve.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_curve.png index e0ffe00e00..4a7f268167 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_curve.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_curve.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_flip.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_flip.png index 0e612006e5..dddb057d82 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_flip.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_flip.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_rotate.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_rotate.png index b18afdf902..8b4eb83350 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_rotate.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_rotate.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_settings.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_settings.png index f69066fe1d..b7c8189e1f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_settings.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_sticker.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_sticker.png index 706da61bde..143390b910 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_sticker.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_switch2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_switch2.png index 5745f2e398..196999e105 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_switch2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_switch2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text2.png index 2f81fb788f..6936d84e87 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_framed.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_framed.png index 9b2bc19087..183fe89c32 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_framed.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_framed.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_framed2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_framed2.png index 8f8554339a..c3ff105d3c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_framed2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_framed2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_framed3.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_framed3.png index 48a93949ef..ccc72c7e13 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_framed3.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_framed3.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_regular.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_regular.png index dc364a070e..202083eef9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_regular.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_text_regular.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photoeditor.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photoeditor.png index a3266e86b6..a8bd4a734c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photoeditor.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photoeditor.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photos.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photos.png index 620ef2e0d5..4ece2a19b9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photos.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_photos.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin.png index 32eb8065ba..455413b5db 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin_code.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin_code.png index 2a9de3f298..416d95630e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin_code.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin_code.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin_filled.png index c45b60b2d3..aa697a0930 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin_mini.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin_mini.png index c431376323..45fe8419dc 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin_mini.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pin_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pinnedlist.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pinnedlist.png index 615faee3fa..8d40d3e525 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pinnedlist.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pinnedlist.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_played.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_played.png index 0b68de3550..7bd62653fa 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_played.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_played.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_policy.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_policy.png index d0459094ea..41c169ed52 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_policy.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_policy.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pollstop.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pollstop.png index 5587960e2a..a224a42304 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pollstop.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_pollstop.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_ads.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_ads.png index ac8d7bec27..3f469af5ba 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_ads.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_ads.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_avatar.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_avatar.png index f843e00efd..eb2156eba0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_avatar.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_avatar.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_badge.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_badge.png index 5d3639f00e..ab32575c8d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_badge.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_badge.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_emoji.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_emoji.png index 46904ae189..3ea843ad71 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_emoji.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_emoji.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_icons.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_icons.png index b3565e8772..5b8ad4e21a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_icons.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_icons.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_limits.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_limits.png index 5393df3fec..1c1d85167d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_limits.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_limits.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_liststar.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_liststar.png index ae84e58ba0..34fbb06ca9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_liststar.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_liststar.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_lock2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_lock2.png index 645997c17f..d2de8d6c2c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_lock2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_lock2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_normal.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_normal.png index 2fb5549196..9c0f1f7ee0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_normal.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_normal.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_prolfilestar.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_prolfilestar.png index 88b3009d1a..3efd615d33 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_prolfilestar.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_prolfilestar.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_reactions.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_reactions.png index 544c14d315..ba06e10e05 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_reactions.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_speed.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_speed.png index e497a6983e..1c03f86ac8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_speed.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_speed.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_status.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_status.png index 8b8de74e37..fd825872c8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_status.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_stickers.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_stickers.png index 77c1746fad..6b39bd3761 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_stickers.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_tools.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_tools.png index 75966dad5f..7f2b14a133 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_tools.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_tools.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_translate.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_translate.png index 6618705e20..f4a0f3ae1e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_translate.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_translate.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_uploads.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_uploads.png index 8b1eaa3faa..fbd4c697a2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_uploads.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_uploads.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_voice.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_voice.png index 6a5718f383..b47d81a396 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_voice.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_premium_voice.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_psa.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_psa.png index f6eb7acd82..aa2d7101b3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_psa.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_psa.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_qr_mini.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_qr_mini.png index 46074860a3..a4704f223a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_qr_mini.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_qr_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_qrcode.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_qrcode.png index ea64e34f15..1e07699470 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_qrcode.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_qrcode.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_rate_down.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_rate_down.png index 094d580434..f80c41e4c6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_rate_down.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_rate_down.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_rate_up.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_rate_up.png index 334f4a8a72..47f0a53360 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_rate_up.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_rate_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions.png index f085b0f99b..adb79320f1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions2.png index 253d90dd10..fda0b87be6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions_expand.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions_expand.png index adca4523ee..d99d4f2187 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions_expand.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions_filled.png index 20308eaf33..1fbdb0a2b9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reactions_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_recent.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_recent.png index 8e4b4ac6e2..1020dab696 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_recent.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_remove.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_remove.png index 251c4056e0..a26a434f9a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_remove.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_removefolder.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_removefolder.png index eecf3ca3de..0282c36216 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_removefolder.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_removefolder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reorder.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reorder.png index 9ac9280c05..b9568721c4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reorder.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_replace.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_replace.png index c52611317c..537d0c166b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_replace.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_replace.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reply_small.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reply_small.png index 1178fd5f43..7c9850281d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reply_small.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reply_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report.png index 4b10420f04..3aef5b187c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_drugs.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_drugs.png index e5505506fd..ce98e04c77 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_drugs.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_drugs.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_fake.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_fake.png index 230c46b848..4788a6af80 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_fake.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_fake.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_other.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_other.png index 647d780633..a2825616a3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_other.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_other.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_personal.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_personal.png index 680356cb7f..8f3af4587b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_personal.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_personal.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_violence.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_violence.png index c03fb3f55c..05c0b955b5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_violence.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_violence.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_xxx.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_xxx.png index e2d868bf83..3f730e0a79 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_xxx.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_report_xxx.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_requests.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_requests.png index 38862aa5c5..8e70b699d9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_requests.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_requests.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reset.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reset.png index b1b04a4417..b779e7835c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reset.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_reset.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_retry.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_retry.png index f0a3f9299e..e9d6c37e45 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_retry.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_retry.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_cancel_m.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_cancel_m.png old mode 100755 new mode 100644 index 5d04544f66..3c65cd99d3 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_cancel_m.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_cancel_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_file_s.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_file_s.png old mode 100755 new mode 100644 index 735add6f5e..2c7aebbfff Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_file_s.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_file_s.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_gif_m.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_gif_m.png old mode 100755 new mode 100644 index bcd9f270cf..264e4527cd Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_gif_m.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_gif_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_load_m.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_load_m.png old mode 100755 new mode 100644 index ea74b1265d..f0180dd161 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_load_m.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_load_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_pause_m.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_pause_m.png old mode 100755 new mode 100644 index e596b2fc57..83bd2644da Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_pause_m.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_pause_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_play_m.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_play_m.png old mode 100755 new mode 100644 index 5bb378e773..3706e41611 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_play_m.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_round_play_m.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_satellite.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_satellite.png index e3b9586be0..738a422313 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_satellite.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_satellite.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_save_story.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_save_story.png index cd77461bd3..377f0fcf0c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_save_story.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_save_story.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved.png index a45df260fd..1130637fe0 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved_14.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved_14.png index f3ddeaeeeb..eaa76e3615 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved_14.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved_hw.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved_hw.png index 805b008b33..c41f85c3ad 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved_hw.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved_ny.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved_ny.png index 70b3bdf677..cf94aa6163 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved_ny.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_saved_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_screencast.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_screencast.png index df43fec72a..5bde8046b8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_screencast.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_screencast.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_screencast_off.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_screencast_off.png index 4be8b9745e..0d64e6c919 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_screencast_off.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_screencast_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_search.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_search.png index 681613f20e..c480d22163 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_search.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_secret.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_secret.png index eafb1728c9..6ed96e8b4d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_secret.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_secret.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_secret_14.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_secret_14.png deleted file mode 100644 index 2dc5967f34..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_secret_14.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_secret_hw.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_secret_hw.png deleted file mode 100644 index cd645e6112..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_secret_hw.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_secret_ny.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_secret_ny.png index 2c5690e0d7..0c73c65ded 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_secret_ny.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_secret_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_seen.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_seen.png index b7fcc535af..3a530f6e5e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_seen.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_seen.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_select.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_select.png index ee6af1fc1f..944e39faf2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_select.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_select.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_send.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_send.png index 9e460a9ed9..0bb8269072 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_send.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_send.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_sendfile.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_sendfile.png index dfc7c38c6b..27dee038d1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_sendfile.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_sendfile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings.png index 6b8563d883..09016f8940 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_14.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_14.png index 87e65292da..7a0ba105de 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_14.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_14.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_hw.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_hw.png index 74a11e5278..b65a38c371 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_hw.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_hw.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_ny.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_ny.png index cf18ee1e1c..a437599a14 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_ny.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_ny.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_old.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_old.png index 63098d5ffe..4cb6bfe0da 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_old.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_old.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_premium.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_premium.png index 50e3b653ac..c9a1922909 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_premium.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_settings_premium.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_share.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_share.png index 535a8a1015..c55f857e5f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_share.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_share.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_share_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_share_filled.png index 8a29131cad..5c9375f908 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_share_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_share_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_shareout.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_shareout.png index b7cec636bc..f8864032a5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_shareout.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_shareout.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_signed.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_signed.png deleted file mode 100644 index 77b0812f7f..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_signed.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_silent.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_silent.png index a48c93c7ae..2036e923bd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_silent.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_silent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_smile_status.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_smile_status.png index 132a443bb7..555ad74287 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_smile_status.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_smile_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed.png index e66256f224..73ae1a8c54 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_0_2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_0_2.png index 197002b50d..62bbb7c1e2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_0_2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_0_2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_fast.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_fast.png index dfecf295ba..0d02fdbdbb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_fast.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_fast.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_medium.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_medium.png index 08881888e4..141136bd22 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_medium.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_medium.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_normal.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_normal.png index 6f513e3c9a..2d06214bb1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_normal.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_normal.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_slow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_slow.png index 5d13be8bfa..37c4466b96 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_slow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_slow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_superfast.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_superfast.png index c528be9472..3b954d8eef 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_superfast.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_superfast.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_veryfast.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_veryfast.png index 6c840cf2d0..d12fb9a5ff 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_veryfast.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_speed_veryfast.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_spoiler.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_spoiler.png index 314f9b684b..f643ef920d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_spoiler.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_spoiler.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_spoiler_off.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_spoiler_off.png index ec514957be..974fae25a3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_spoiler_off.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_spoiler_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stats.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stats.png index 2223545f62..f2b0497718 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stats.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stats.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_status_edit.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_status_edit.png index 95fb5fc288..106c15651f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_status_edit.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_status_edit.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_status_set.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_status_set.png index fbd282152d..c73f39ef88 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_status_set.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_status_set.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stealth_25min.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stealth_25min.png index 9f02181da3..7774c88f2c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stealth_25min.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stealth_25min.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stealth_5min.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stealth_5min.png index 64fe452261..903eba1785 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stealth_5min.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stealth_5min.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stealth_locked.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stealth_locked.png index 07d3cbcea6..95df1584b1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stealth_locked.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stealth_locked.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_sticker.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_sticker.png index 7616147178..a6cb226c8d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_sticker.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_sticker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_add.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_add.png index 82bccf2d72..efc9ea9504 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_add.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_archive.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_archive.png index ac5cd68a32..96f4f88d8f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_archive.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_archive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_caption.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_caption.png index ed07821689..0486b61596 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_caption.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_caption.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_closefriends.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_closefriends.png index 5f2597fcf5..4e5b4ce53a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_closefriends.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_closefriends.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_link.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_link.png index ee1e90c6f8..0fc569dd98 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_link.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_link.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_myhide.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_myhide.png index a06e94a30b..2285938553 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_myhide.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_myhide.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_order.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_order.png index 13f7d31a12..01dd0ec6be 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_order.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_order.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_save.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_save.png index 2dd8634726..0034c3820d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_save.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_save.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_saved.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_saved.png index 312e8bf53c..513794e114 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_saved.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_saved.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_stealth.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_stealth.png index 5bd0e4c635..2ae54c7d1f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_stealth.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_stealth.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_stealth2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_stealth2.png index 5b3b4f6f7f..0440ce6f6e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_stealth2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_stealth2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_timer.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_timer.png index 67bdaad99b..0a19d249fe 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_timer.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_timer.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_views.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_views.png index 56d211b952..d7057a6181 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_views.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_stories_views.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_story_12h.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_story_12h.png deleted file mode 100644 index 2974959fca..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_story_12h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_story_24h.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_story_24h.png deleted file mode 100644 index b83ba17953..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_story_24h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_story_48h.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_story_48h.png deleted file mode 100644 index 6d90ce95c1..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_story_48h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_story_6h.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_story_6h.png deleted file mode 100644 index 16fb36620a..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_story_6h.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tabs_mic1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tabs_mic1.png index b683c90fcb..f81be3676c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tabs_mic1.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tabs_mic1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tabs_mic2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tabs_mic2.png index d77343bae1..225a566f54 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tabs_mic2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tabs_mic2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_check.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_check.png index a38540eff7..72c94833a8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_check.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_outlined.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_outlined.png index 15e89a5126..f4a8777f0e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_outlined.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_text_outlined.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_theme.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_theme.png index af0ae0035c..1128d54802 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_theme.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_theme.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_ton.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_ton.png index b1a86816ed..88c5d566dd 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_ton.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_ton.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tone_add.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tone_add.png index 76a49f2fd7..5f39f101ea 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tone_add.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tone_add.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tone_off.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tone_off.png index 4502bd8831..dbc7624eff 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tone_off.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tone_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tone_on.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tone_on.png index 78ad4a40ae..c6e6049e3e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tone_on.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_tone_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topic_close.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topic_close.png index 52f95b32b4..4c139ceed5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topic_close.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topic_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topic_create.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topic_create.png index 403bf99316..e6270c92b8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topic_create.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topic_create.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topic_restart.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topic_restart.png index bdc286e2c1..868697c557 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topic_restart.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topic_restart.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topics.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topics.png index f813a7b6a5..5dc46853d9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topics.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_topics.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_translate.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_translate.png index 05d0f18671..2400c11676 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_translate.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_translate.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unarchive.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unarchive.png index 5d2c6a1bf7..38d36952b5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unarchive.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unarchive.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unfave.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unfave.png index e5d1505470..4cd89f50df 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unfave.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unfave.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_ungroup.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_ungroup.png index 1c8f2cdf46..f5e3b3d93e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_ungroup.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_ungroup.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unmute.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unmute.png index cb7dc121d6..fd4b8a35e6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unmute.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unpin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unpin.png index 5e372f1a16..b702fd757f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unpin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unvote.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unvote.png index 9fe6d35bda..07a7a2e127 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unvote.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_unvote.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_user_remove.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_user_remove.png index 18391f36e0..aa92be82c3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_user_remove.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_user_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_user_search.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_user_search.png index 79d4bc88a7..5313ef56d8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_user_search.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_user_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_usersearch.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_usersearch.png index cc89fff0e1..c7ae33c917 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_usersearch.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_usersearch.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_video.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_video.png index a5f8e3d8c4..d0d8fb7e35 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_video.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_videocall.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_videocall.png index 97da5f1a6a..410db50984 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_videocall.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_videocall.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_view_file.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_view_file.png index 8fdf6df7b7..41661e25e7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_view_file.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_view_file.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_viewchats.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_viewchats.png index 8924ea30bd..5a4de15116 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_viewchats.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_viewchats.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_viewintopic.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_viewintopic.png index b628811209..d227fc8ba2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_viewintopic.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_viewintopic.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_viewreplies.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_viewreplies.png index e74523d1a9..d936758f62 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_viewreplies.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_viewreplies.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_views.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_views.png old mode 100755 new mode 100644 index 44a97820af..26fdc8ff92 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_views.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_views.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_bluetooth.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_bluetooth.png index 71534ec01d..2581610d8f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_bluetooth.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_bluetooth.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_headphones.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_headphones.png index 2a440103ff..c099ce3c32 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_headphones.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_headphones.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_muted.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_muted.png index 85970746ee..c136b7399c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_muted.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_phone.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_phone.png index 39c535e038..69caac0a04 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_phone.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_phone.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_pip.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_pip.png index 403aab0ba6..f88c64815d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_pip.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_pip.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_speaker.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_speaker.png index ec2ad3e8ad..afa3f0a66e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_speaker.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_speaker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_unmuted.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_unmuted.png index b8574698d7..d4af06fae2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_unmuted.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voice_unmuted.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voicechat.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voicechat.png index 2e5e9eeb1b..ae328779ef 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voicechat.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voicechat.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voicechat2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voicechat2.png index 57059581d7..3c35227029 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voicechat2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voicechat2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voiceclose.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voiceclose.png index c0ed4d1d8a..c53369012c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voiceclose.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voiceclose.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voiceshare.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voiceshare.png index 67f50d7708..8a4683ebc2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voiceshare.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_voiceshare.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_warning.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_warning.png old mode 100755 new mode 100644 index d07ea709cb..96f7beba03 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_warning.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_warning.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_work.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_work.png index d669cc1161..6c0e85fed6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_work.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_work.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_zoomin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_zoomin.png index f4a292e2cd..89c3aaeeaa 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_zoomin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_zoomin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_zoomout.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_zoomout.png index a8b5a9c095..d3365084df 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_zoomout.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_zoomout.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_zoomout_stats.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_zoomout_stats.png index 1324968b64..c3ef815f8f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_zoomout_stats.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_zoomout_stats.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/music_empty.png b/TMessagesProj/src/main/res/drawable-xxhdpi/music_empty.png index ef084b4b7e..4e206754f5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/music_empty.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/music_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/navbar_search_tag.png b/TMessagesProj/src/main/res/drawable-xxhdpi/navbar_search_tag.png index 3191ae34bc..38f5a52933 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/navbar_search_tag.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/navbar_search_tag.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/navigate.png b/TMessagesProj/src/main/res/drawable-xxhdpi/navigate.png deleted file mode 100644 index 1eb892a873..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/navigate.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/nearby_l.png b/TMessagesProj/src/main/res/drawable-xxhdpi/nearby_l.png deleted file mode 100644 index cf63ede6ec..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/nearby_l.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/nearby_m.png b/TMessagesProj/src/main/res/drawable-xxhdpi/nearby_m.png deleted file mode 100644 index df2cf2e392..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/nearby_m.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/newmsg_divider.png b/TMessagesProj/src/main/res/drawable-xxhdpi/newmsg_divider.png old mode 100755 new mode 100644 index 07d969e86f..93c80e2bb0 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/newmsg_divider.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/newmsg_divider.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/newyear.png b/TMessagesProj/src/main/res/drawable-xxhdpi/newyear.png index e220a02f6a..f3a9f01606 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/newyear.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/newyear.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/no_passport.png b/TMessagesProj/src/main/res/drawable-xxhdpi/no_passport.png index 077b22108d..660ebefc80 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/no_passport.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/no_passport.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/no_password.png b/TMessagesProj/src/main/res/drawable-xxhdpi/no_password.png index 47f555b362..fae8eab776 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/no_password.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/no_password.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_mute1h.png b/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_mute1h.png index c5892e14a7..b89d3634ca 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_mute1h.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_mute1h.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_mute2d.png b/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_mute2d.png index d3edb46fbc..abf7cfc210 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_mute2d.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_mute2d.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_off.png b/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_off.png index fb102e71b1..6b25953785 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_off.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_off.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_on.png b/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_on.png index 6437b9c334..98cb18c882 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_on.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_on.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_settings.png b/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_settings.png index 9a4a1f3012..babf8c04bb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_settings.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/notifications_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/other_2x_large.png b/TMessagesProj/src/main/res/drawable-xxhdpi/other_2x_large.png index 2aee493ac2..eee4d22ee9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/other_2x_large.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/other_2x_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/other_lockedfolders.png b/TMessagesProj/src/main/res/drawable-xxhdpi/other_lockedfolders.png index b6e6383980..0ab4069d1d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/other_lockedfolders.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/other_lockedfolders.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/other_lockedfolders2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/other_lockedfolders2.png index a7847ec097..75e4829ca2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/other_lockedfolders2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/other_lockedfolders2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/pagedown.png b/TMessagesProj/src/main/res/drawable-xxhdpi/pagedown.png index 48ebbf2bb0..5bcd02b5c4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/pagedown.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/pagedown.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/pagedown_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/pagedown_shadow.png old mode 100755 new mode 100644 index 268a0bcf8c..e675b662be Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/pagedown_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/pagedown_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/passcode_check.png b/TMessagesProj/src/main/res/drawable-xxhdpi/passcode_check.png index bbe1d993a4..73857119ca 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/passcode_check.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/passcode_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/passcode_delete.png b/TMessagesProj/src/main/res/drawable-xxhdpi/passcode_delete.png deleted file mode 100644 index a771e227e7..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/passcode_delete.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/permission_locked.png b/TMessagesProj/src/main/res/drawable-xxhdpi/permission_locked.png index 8337c551c4..a164f47718 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/permission_locked.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/permission_locked.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_camera1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_camera1.png index 7190c04239..99170c8716 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_camera1.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_camera1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_camera2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_camera2.png index f2961f41df..6f734e2372 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_camera2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_camera2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_gallery1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_gallery1.png index f81e394e59..1a25f8019f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_gallery1.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_gallery1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_gallery2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_gallery2.png index 79509abb54..f78ee9a9c2 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_gallery2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/permissions_gallery2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/phone_activate.png b/TMessagesProj/src/main/res/drawable-xxhdpi/phone_activate.png old mode 100755 new mode 100644 index 8f99f1c503..a39f2e2335 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/phone_activate.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/phone_activate.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/photo_paint_brush.png b/TMessagesProj/src/main/res/drawable-xxhdpi/photo_paint_brush.png index cefe9f4325..43fb6ee205 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/photo_paint_brush.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/photo_paint_brush.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/photo_tooltip2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/photo_tooltip2.png index e74a53ef1f..24bf436df9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/photo_tooltip2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/photo_tooltip2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/photo_undo.png b/TMessagesProj/src/main/res/drawable-xxhdpi/photo_undo.png index e5ad132629..f6f90a8de7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/photo_undo.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/photo_undo.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/photos_arrow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/photos_arrow.png index e93b28ae40..24bb9248ff 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/photos_arrow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/photos_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/photos_header_shadow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/photos_header_shadow.png index 2b1af53b98..4a19b2c52c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/photos_header_shadow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/photos_header_shadow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/pin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/pin.png index 471be70743..d14cf78619 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/pin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/pin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/pip_close.png b/TMessagesProj/src/main/res/drawable-xxhdpi/pip_close.png index 9b6ff7d2c9..b90872ef20 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/pip_close.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/pip_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/pip_enlarge.png b/TMessagesProj/src/main/res/drawable-xxhdpi/pip_enlarge.png index 2d2f365b42..0d92e7197c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/pip_enlarge.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/pip_enlarge.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/pip_pause_large.png b/TMessagesProj/src/main/res/drawable-xxhdpi/pip_pause_large.png index 7b0535cb4d..caad2724f9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/pip_pause_large.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/pip_pause_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/pip_play_large.png b/TMessagesProj/src/main/res/drawable-xxhdpi/pip_play_large.png index 9703a5326c..7cb5c70b6f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/pip_play_large.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/pip_play_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/pip_replay_large.png b/TMessagesProj/src/main/res/drawable-xxhdpi/pip_replay_large.png index c2e3fc35b8..cab0c51078 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/pip_replay_large.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/pip_replay_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/pip_video_close.png b/TMessagesProj/src/main/res/drawable-xxhdpi/pip_video_close.png index c1bf6343c3..d93a53a1c7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/pip_video_close.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/pip_video_close.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/pip_video_expand.png b/TMessagesProj/src/main/res/drawable-xxhdpi/pip_video_expand.png index 5e6b2aab71..7104b71068 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/pip_video_expand.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/pip_video_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/play_mini_video.png b/TMessagesProj/src/main/res/drawable-xxhdpi/play_mini_video.png index c7b55a7ac5..2b1c51863e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/play_mini_video.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/play_mini_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/player.png b/TMessagesProj/src/main/res/drawable-xxhdpi/player.png index d28a42469f..b580004081 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/player.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/player.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_order.png b/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_order.png index 491c22d337..a344bf9e90 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_order.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_order.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeat_reverse.png b/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeat_reverse.png index cd624774b5..ca7764fc2d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeat_reverse.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeat_reverse.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeat_shuffle.png b/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeat_shuffle.png index 2fca09277d..cf17a3c910 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeat_shuffle.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeat_shuffle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeatall.png b/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeatall.png index 1e3160ff5b..608bd68b48 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeatall.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeatall.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeatone.png b/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeatone.png index e551d22260..7e38c2835d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeatone.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_repeatone.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_shuffle.png b/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_shuffle.png index 10e45b1445..222cc907b9 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_shuffle.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/player_new_shuffle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/poll_add_circle.png b/TMessagesProj/src/main/res/drawable-xxhdpi/poll_add_circle.png index 55f8a2f550..d051371a19 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/poll_add_circle.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/poll_add_circle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/poll_add_plus.png b/TMessagesProj/src/main/res/drawable-xxhdpi/poll_add_plus.png index d7af507b63..18382a7565 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/poll_add_plus.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/poll_add_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/poll_remove.png b/TMessagesProj/src/main/res/drawable-xxhdpi/poll_remove.png index 0ad1a51607..b28e2ad1fe 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/poll_remove.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/poll_remove.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/poll_reorder.png b/TMessagesProj/src/main/res/drawable-xxhdpi/poll_reorder.png index b569063c75..ffadcbe566 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/poll_reorder.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/poll_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/poll_right.png b/TMessagesProj/src/main/res/drawable-xxhdpi/poll_right.png index 16fd006008..62f39d6fde 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/poll_right.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/poll_right.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/poll_wrong.png b/TMessagesProj/src/main/res/drawable-xxhdpi/poll_wrong.png index c4f64516d7..0e0933950e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/poll_wrong.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/poll_wrong.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/premium_colors.png b/TMessagesProj/src/main/res/drawable-xxhdpi/premium_colors.png index 7b120b70bb..f115deec43 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/premium_colors.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/premium_colors.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/premium_status.png b/TMessagesProj/src/main/res/drawable-xxhdpi/premium_status.png index f5a7aa28d4..dbcaef845e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/premium_status.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/premium_status.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/premium_tags.png b/TMessagesProj/src/main/res/drawable-xxhdpi/premium_tags.png index 90751e1696..952ec26ac4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/premium_tags.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/premium_tags.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/premium_wallpaper.png b/TMessagesProj/src/main/res/drawable-xxhdpi/premium_wallpaper.png index 4fa0ca759c..b033e4628f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/premium_wallpaper.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/premium_wallpaper.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/preview_arrow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/preview_arrow.png index 95193eeef4..e1f8b43e1a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/preview_arrow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/preview_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/preview_custom.png b/TMessagesProj/src/main/res/drawable-xxhdpi/preview_custom.png index e5654bdeb6..85a684a86a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/preview_custom.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/preview_custom.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/preview_dots.png b/TMessagesProj/src/main/res/drawable-xxhdpi/preview_dots.png index 9d902d1bba..8363b0a32c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/preview_dots.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/preview_dots.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/profile_discuss.png b/TMessagesProj/src/main/res/drawable-xxhdpi/profile_discuss.png index 27ea5fc313..eb82f403a5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/profile_discuss.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/profile_discuss.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/profile_newmsg.png b/TMessagesProj/src/main/res/drawable-xxhdpi/profile_newmsg.png index 0070bab1f2..1f39ccee3f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/profile_newmsg.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/profile_newmsg.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/profile_phone.png b/TMessagesProj/src/main/res/drawable-xxhdpi/profile_phone.png index 00a8829d30..62980aef28 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/profile_phone.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/profile_phone.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/profile_video.png b/TMessagesProj/src/main/res/drawable-xxhdpi/profile_video.png index 2bdc63e59c..c8c5fac8b4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/profile_video.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/profile_video.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/proxy_check.png b/TMessagesProj/src/main/res/drawable-xxhdpi/proxy_check.png index 860284be14..f38514aa28 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/proxy_check.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/proxy_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/qr_at_large.png b/TMessagesProj/src/main/res/drawable-xxhdpi/qr_at_large.png index e71c7601a6..85f73adc24 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/qr_at_large.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/qr_at_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/qr_at_medium.png b/TMessagesProj/src/main/res/drawable-xxhdpi/qr_at_medium.png index fa8518dcf0..0ec871d070 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/qr_at_medium.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/qr_at_medium.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/qr_at_small.png b/TMessagesProj/src/main/res/drawable-xxhdpi/qr_at_small.png index 3bb05e8cf6..8003cd7c2b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/qr_at_small.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/qr_at_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/qr_flashlight.png b/TMessagesProj/src/main/res/drawable-xxhdpi/qr_flashlight.png index b6ebb7a0e5..d868fd2039 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/qr_flashlight.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/qr_flashlight.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/qr_gallery.png b/TMessagesProj/src/main/res/drawable-xxhdpi/qr_gallery.png index 1a0450e6d1..29a18168ee 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/qr_gallery.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/qr_gallery.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/reactionbutton.png b/TMessagesProj/src/main/res/drawable-xxhdpi/reactionbutton.png index c3288ba54f..4844eaa75b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/reactionbutton.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/reactionbutton.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/reactionchatslist.png b/TMessagesProj/src/main/res/drawable-xxhdpi/reactionchatslist.png index 53355d3b30..871e06dba5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/reactionchatslist.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/reactionchatslist.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/redcircle.png b/TMessagesProj/src/main/res/drawable-xxhdpi/redcircle.png old mode 100755 new mode 100644 index 32118e9104..f6764ca16e Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/redcircle.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/redcircle.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/round_check2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/round_check2.png old mode 100755 new mode 100644 index e741574c4d..8221a0e9d8 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/round_check2.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/round_check2.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/screencast_big.png b/TMessagesProj/src/main/res/drawable-xxhdpi/screencast_big.png index 7510cc20af..7d269ec1c8 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/screencast_big.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/screencast_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/search_arrow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/search_arrow.png index 5cfc10e87a..2317065fd3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/search_arrow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/search_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/search_date_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/search_date_filled.png index 2d74f53ca9..95323d47e3 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/search_date_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/search_date_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/search_files_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/search_files_filled.png index 92610e1f22..1c7949d53a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/search_files_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/search_files_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/search_links_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/search_links_filled.png index 0b77f60550..81e39eb823 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/search_links_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/search_links_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/search_media_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/search_media_filled.png index ebdc071916..365912ff1d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/search_media_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/search_media_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/search_music_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/search_music_filled.png index 62e93290f5..cf9c1ec9de 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/search_music_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/search_music_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/search_users_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/search_users_filled.png index 6742ca818e..28bcc40e57 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/search_users_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/search_users_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/search_voice_filled.png b/TMessagesProj/src/main/res/drawable-xxhdpi/search_voice_filled.png index 62a894a68e..82df0f3f64 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/search_voice_filled.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/search_voice_filled.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/selectphoto_large.png b/TMessagesProj/src/main/res/drawable-xxhdpi/selectphoto_large.png index 0709ff4935..6ef31859be 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/selectphoto_large.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/selectphoto_large.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/settings_arrow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/settings_arrow.png index 23ef6cdf14..7ea643241d 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/settings_arrow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/settings_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/shadowdown.png b/TMessagesProj/src/main/res/drawable-xxhdpi/shadowdown.png index 93dd64e054..e49f30e5df 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/shadowdown.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/shadowdown.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/shadowed_bubble1.png b/TMessagesProj/src/main/res/drawable-xxhdpi/shadowed_bubble1.png index fa7f1a24d8..1e318bc129 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/shadowed_bubble1.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/shadowed_bubble1.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/shadowed_bubble2_half.png b/TMessagesProj/src/main/res/drawable-xxhdpi/shadowed_bubble2_half.png index f3c031126f..f17953573b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/shadowed_bubble2_half.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/shadowed_bubble2_half.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/share.png b/TMessagesProj/src/main/res/drawable-xxhdpi/share.png old mode 100755 new mode 100644 index ac2f19d33c..4927724d80 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/share.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/share.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/share_arrow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/share_arrow.png index dd13ae1492..10a3e7fc58 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/share_arrow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/share_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/shortcut_compose.png b/TMessagesProj/src/main/res/drawable-xxhdpi/shortcut_compose.png old mode 100755 new mode 100644 index d057d949da..9c109a38ee Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/shortcut_compose.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/shortcut_compose.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/shortcut_user.png b/TMessagesProj/src/main/res/drawable-xxhdpi/shortcut_user.png old mode 100755 new mode 100644 index 8543de711f..f978df59e4 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/shortcut_user.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/shortcut_user.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/slide_dot_big.png b/TMessagesProj/src/main/res/drawable-xxhdpi/slide_dot_big.png old mode 100755 new mode 100644 index d5ec8763be..fade3f6019 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/slide_dot_big.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/slide_dot_big.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/slide_dot_small.png b/TMessagesProj/src/main/res/drawable-xxhdpi/slide_dot_small.png old mode 100755 new mode 100644 index 5a53018881..cb757cc41e Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/slide_dot_small.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/slide_dot_small.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/smallanimationpin.png b/TMessagesProj/src/main/res/drawable-xxhdpi/smallanimationpin.png index a9a62189e9..b16bffaca4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/smallanimationpin.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/smallanimationpin.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/smallanimationpinleft.png b/TMessagesProj/src/main/res/drawable-xxhdpi/smallanimationpinleft.png index bcfe4aed54..3954f8d0c5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/smallanimationpinleft.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/smallanimationpinleft.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/smallanimationpinright.png b/TMessagesProj/src/main/res/drawable-xxhdpi/smallanimationpinright.png index f5622c3bee..accb9e0648 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/smallanimationpinright.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/smallanimationpinright.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_info.png b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_info.png index 6faf296104..67f2fe55ee 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_info.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_info.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_inputsearch.png b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_inputsearch.png index d2fdb23d50..283ae93cc5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_inputsearch.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_inputsearch.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_clear.png b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_clear.png index 9e9dfa4d71..1b7da00117 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_clear.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_clear.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_gif.png b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_gif.png index 9b123100e6..5971259eb7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_gif.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_gif.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_search.png b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_search.png index 49335ddb9d..8e31ae8643 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_search.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_search.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_settings.png b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_settings.png index c0e223a484..b1d6db2d4a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_settings.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_settings.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_smiles.png b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_smiles.png index de9fa3a85d..89edb4f1bb 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_smiles.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_smiles.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_stickers.png b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_stickers.png index 2688cf86f9..f8448d612f 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_stickers.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/smiles_tab_stickers.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/sms_bubble.png b/TMessagesProj/src/main/res/drawable-xxhdpi/sms_bubble.png index a5d8c1f5c9..1f8768b353 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/sms_bubble.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/sms_bubble.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/sms_code.png b/TMessagesProj/src/main/res/drawable-xxhdpi/sms_code.png index 5e223e35c9..f000da21b1 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/sms_code.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/sms_code.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/sms_devices.png b/TMessagesProj/src/main/res/drawable-xxhdpi/sms_devices.png index c85514cf97..c1d73311b4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/sms_devices.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/sms_devices.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/sticker_added.png b/TMessagesProj/src/main/res/drawable-xxhdpi/sticker_added.png old mode 100755 new mode 100644 index f31f2f8285..739e812a3f Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/sticker_added.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/sticker_added.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_back_arrow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_back_arrow.png index 6b16f2b7ea..19f97eff16 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_back_arrow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_back_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_empty.png b/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_empty.png index 85d8fc988b..85ce20428c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_empty.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_empty.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_favorites.png b/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_favorites.png index 875e8351b4..2fba8feff5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_favorites.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_favorites.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_gifs_trending.png b/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_gifs_trending.png index a0e3e946ef..019b03b490 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_gifs_trending.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_gifs_trending.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_recent.png b/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_recent.png index 65a80d937c..68cd31a0e4 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_recent.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/stickers_recent.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/tabs_reorder.png b/TMessagesProj/src/main/res/drawable-xxhdpi/tabs_reorder.png index 8838f6a1a2..fd7b187b5c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/tabs_reorder.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/tabs_reorder.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/theme_picker.png b/TMessagesProj/src/main/res/drawable-xxhdpi/theme_picker.png old mode 100755 new mode 100644 index 346de93dc5..8a5287d717 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/theme_picker.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/theme_picker.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/toast_pallete.png b/TMessagesProj/src/main/res/drawable-xxhdpi/toast_pallete.png index de17b0bf84..a08cebb429 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/toast_pallete.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/toast_pallete.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/tooltip_arrow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/tooltip_arrow.png index 1fdff8874d..195ce4624a 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/tooltip_arrow.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/tooltip_arrow.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/tooltip_arrow_up.png b/TMessagesProj/src/main/res/drawable-xxhdpi/tooltip_arrow_up.png index 238741331a..87b4854874 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/tooltip_arrow_up.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/tooltip_arrow_up.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/tooltip_sound.png b/TMessagesProj/src/main/res/drawable-xxhdpi/tooltip_sound.png index da9299f427..c2d520d487 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/tooltip_sound.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/tooltip_sound.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/verified_area.png b/TMessagesProj/src/main/res/drawable-xxhdpi/verified_area.png index 2c10f4fe6a..65bee56cca 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/verified_area.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/verified_area.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/verified_check.png b/TMessagesProj/src/main/res/drawable-xxhdpi/verified_check.png index 93d1eae49c..72f29fd877 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/verified_check.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/verified_check.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/verified_profile.png b/TMessagesProj/src/main/res/drawable-xxhdpi/verified_profile.png index dd81d52fa3..0cb1b4cc00 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/verified_profile.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/verified_profile.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/video_actions.png b/TMessagesProj/src/main/res/drawable-xxhdpi/video_actions.png old mode 100755 new mode 100644 index d966e827ba..fa698cf033 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/video_actions.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/video_actions.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/video_mute.png b/TMessagesProj/src/main/res/drawable-xxhdpi/video_mute.png index 6ba5790dcc..2b48e4ea01 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/video_mute.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/video_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/video_muted.png b/TMessagesProj/src/main/res/drawable-xxhdpi/video_muted.png index 6f741f9251..937784c83b 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/video_muted.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/video_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/video_send_mute.png b/TMessagesProj/src/main/res/drawable-xxhdpi/video_send_mute.png index 7b84a3cbf0..00d85bbf35 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/video_send_mute.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/video_send_mute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/video_send_unmute.png b/TMessagesProj/src/main/res/drawable-xxhdpi/video_send_unmute.png index 000c1f9303..ac19cffa09 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/video_send_unmute.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/video_send_unmute.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/voice_expand.png b/TMessagesProj/src/main/res/drawable-xxhdpi/voice_expand.png index 229b385345..55d27a7081 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/voice_expand.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/voice_expand.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/voice_minimize.png b/TMessagesProj/src/main/res/drawable-xxhdpi/voice_minimize.png index ecaad0fbc4..57721cd906 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/voice_minimize.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/voice_minimize.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/voice_volume_mini.png b/TMessagesProj/src/main/res/drawable-xxhdpi/voice_volume_mini.png index 41a6284f91..9a9823a1a6 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/voice_volume_mini.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/voice_volume_mini.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/voicechat_active.png b/TMessagesProj/src/main/res/drawable-xxhdpi/voicechat_active.png index 489f515dc2..6f50638f0e 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/voicechat_active.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/voicechat_active.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/voicechat_muted.png b/TMessagesProj/src/main/res/drawable-xxhdpi/voicechat_muted.png index 39f5a18bf0..2ba11d0d63 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/voicechat_muted.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/voicechat_muted.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/voicechat_screencast.png b/TMessagesProj/src/main/res/drawable-xxhdpi/voicechat_screencast.png index 16373ebf2a..0393876a34 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/voicechat_screencast.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/voicechat_screencast.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_minus.png b/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_minus.png index e4a4f7296a..2823c84317 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_minus.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_minus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_plus.png b/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_plus.png index 62a00370aa..4e50a8e5b5 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_plus.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_plus.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_round.png b/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_round.png index 3da5d80cb2..bd1485eb97 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_round.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_round.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_round_b.png b/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_round_b.png index a4b69e121b..8ebdbae7e7 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_round_b.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/zoom_round_b.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxxhdpi/ic_launcher_dr.png b/TMessagesProj/src/main/res/drawable-xxxhdpi/ic_launcher_dr.png index f1223f9051..b0ebf9c77c 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxxhdpi/ic_launcher_dr.png and b/TMessagesProj/src/main/res/drawable-xxxhdpi/ic_launcher_dr.png differ diff --git a/TMessagesProj/src/main/res/drawable/bg_voip_icon_btn.xml b/TMessagesProj/src/main/res/drawable/bg_voip_icon_btn.xml deleted file mode 100755 index 1d29f24356..0000000000 --- a/TMessagesProj/src/main/res/drawable/bg_voip_icon_btn.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/fab_highlight_dark.xml b/TMessagesProj/src/main/res/drawable/fab_highlight_dark.xml deleted file mode 100644 index d790fb543e..0000000000 --- a/TMessagesProj/src/main/res/drawable/fab_highlight_dark.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/fingerprint_dialog_error_to_fp.xml b/TMessagesProj/src/main/res/drawable/fingerprint_dialog_error_to_fp.xml deleted file mode 100644 index 4b5c43d213..0000000000 --- a/TMessagesProj/src/main/res/drawable/fingerprint_dialog_error_to_fp.xml +++ /dev/null @@ -1,429 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/fingerprint_dialog_fp_to_error.xml b/TMessagesProj/src/main/res/drawable/fingerprint_dialog_fp_to_error.xml deleted file mode 100644 index 6aaca2ea89..0000000000 --- a/TMessagesProj/src/main/res/drawable/fingerprint_dialog_fp_to_error.xml +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/googlepay_button_background.xml b/TMessagesProj/src/main/res/drawable/googlepay_button_background.xml deleted file mode 100644 index b81005b06f..0000000000 --- a/TMessagesProj/src/main/res/drawable/googlepay_button_background.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - diff --git a/TMessagesProj/src/main/res/drawable/ic_fingerprint_error.xml b/TMessagesProj/src/main/res/drawable/ic_fingerprint_error.xml deleted file mode 100644 index be46116daf..0000000000 --- a/TMessagesProj/src/main/res/drawable/ic_fingerprint_error.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - diff --git a/TMessagesProj/src/main/res/drawable/menu_nearby_off.xml b/TMessagesProj/src/main/res/drawable/menu_nearby_off.xml deleted file mode 100644 index dbb93c8cbc..0000000000 --- a/TMessagesProj/src/main/res/drawable/menu_nearby_off.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/photo_outlineshape.xml b/TMessagesProj/src/main/res/drawable/photo_outlineshape.xml deleted file mode 100644 index c9fc929a6c..0000000000 --- a/TMessagesProj/src/main/res/drawable/photo_outlineshape.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/TMessagesProj/src/main/res/raw/bot_webview_cross_to_sheet.json b/TMessagesProj/src/main/res/raw/bot_webview_cross_to_sheet.json deleted file mode 100644 index 194f3f756a..0000000000 --- a/TMessagesProj/src/main/res/raw/bot_webview_cross_to_sheet.json +++ /dev/null @@ -1 +0,0 @@ -{"v":"4.8.0","meta":{"g":"LottieFiles AE 1.1.0","a":"","k":"","d":"","tc":""},"fr":60,"ip":0,"op":22,"w":400,"h":400,"nm":"Icon Cross - Sheet","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectangle","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":16,"s":[0]},{"t":17,"s":[100]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[-90]},{"t":19,"s":[0]}],"ix":10},"p":{"a":0,"k":[199.889,94.444,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":1,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":8,"s":[85,85,100]},{"t":19,"s":[87.8,87.8,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":17,"s":[{"i":[[0,0],[0,0],[0,0],[5.563,0.602],[0,0],[0.17,-6.48],[0,0]],"o":[[0,0],[0,0],[-4.027,-4.787],[0,0],[-6.51,0],[0,0],[0,0]],"v":[[-137.063,-35.692],[101.551,-27.99],[108.363,7.164],[98.561,-2.186],[-115.918,-9.099],[-136.756,-0.822],[-143.844,25.663]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":18,"s":[{"i":[[0,0],[0,0],[0,0],[2.977,-0.397],[0,0],[7.855,-5.16],[0,0]],"o":[[0,0],[0,0],[-1.653,-9.205],[0,0],[-6.51,0],[0,0],[0,0]],"v":[[-131.237,-31.981],[120.492,-29.916],[120.483,30.641],[114.172,20.784],[-124.47,25.867],[-132.442,28.233],[-134.389,37.125]],"c":true}]},{"t":19,"s":[{"i":[[0,0],[0,0],[0,0],[6.73,0],[0,0],[0.17,-6.48],[0,0]],"o":[[0,0],[0,0],[-0.32,-6.72],[0,0],[-6.51,0],[0,0],[0,0]],"v":[[-128.5,-39],[128.5,-39],[128.5,39],[115.91,27],[-116.52,27],[-128.5,38.68],[-128.5,39]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.592156862745,0.592156862745,0.592156862745,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[111.111,111.111],"ix":3},"r":{"a":0,"k":-0.075,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":23,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Path 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[0]},{"t":19,"s":[180]}],"ix":10},"p":{"a":0,"k":[200,200,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":1,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":8,"s":[85,85,100]},{"t":19,"s":[90,90,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":1,"s":[{"i":[[94.07,-96.65],[-14.5,14.885],[0,0],[-13.93,14.3],[0,0],[-13.85,13.69]],"o":[[17.57,-17.9],[0,0],[15.65,-16.01],[0,0],[9.88,-8.65],[0,0]],"v":[[-95.87,97.1],[-58.85,59.365],[-16.1,16.01],[21.13,-21.95],[67.97,-67.85],[98.45,-97.84]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[94.254,-96.761],[-14.134,15.233],[0,0],[-14.292,13.939],[0,0],[-13.501,12.621]],"o":[[16.414,-17.448],[0,0],[15.255,-16.329],[0,0],[10.344,-8.432],[0,0]],"v":[[-95.768,98.258],[-60.973,60.165],[-19.301,13.308],[18.281,-25.004],[68.572,-69.746],[99.574,-97.67]],"c":false}]},{"t":19,"s":[{"i":[[101.36,-101.05],[0,28.67],[0,0],[-28.27,0],[0,0],[0,-28.67]],"o":[[-28.27,0],[0,0],[0,-28.67],[0,0],[28.27,0],[0,0]],"v":[[-91.82,143],[-143,91.09],[-143,-91.09],[-91.82,-143],[91.82,-143],[143,-91.09]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":36,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[111.111,111.111],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":14,"s":[22]},{"t":19,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":14,"s":[78]},{"t":19,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":23,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Path","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[-90]},{"t":19,"s":[0]}],"ix":10},"p":{"a":0,"k":[200,200,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":1,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":8,"s":[85,85,100]},{"t":19,"s":[90,90,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":1,"s":[{"i":[[94.07,-96.65],[-14.5,14.885],[0,0],[-13.93,14.3],[0,0],[-13.85,13.69]],"o":[[17.57,-17.9],[0,0],[15.65,-16.01],[0,0],[9.88,-8.65],[0,0]],"v":[[-95.87,97.1],[-58.85,59.365],[-16.1,16.01],[21.13,-21.95],[67.97,-67.85],[98.45,-97.84]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[94.254,-96.761],[-14.134,15.233],[0,0],[-14.292,13.939],[0,0],[-13.501,12.621]],"o":[[16.414,-17.448],[0,0],[15.255,-16.329],[0,0],[10.344,-8.432],[0,0]],"v":[[-95.768,98.258],[-60.973,60.165],[-19.301,13.308],[18.281,-25.004],[68.572,-69.746],[99.574,-97.67]],"c":false}]},{"t":19,"s":[{"i":[[101.36,-101.05],[0,28.67],[0,0],[-28.27,0],[0,0],[0,-28.67]],"o":[[-28.27,0],[0,0],[0,-28.67],[0,0],[28.27,0],[0,0]],"v":[[-91.82,143],[-143,91.09],[-143,-91.09],[-91.82,-143],[91.82,-143],[143,-91.09]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":36,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[111.111,111.111],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":14,"s":[22]},{"t":19,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":1,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":14,"s":[78]},{"t":19,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":23,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/cache_documents.svg b/TMessagesProj/src/main/res/raw/cache_documents.svg new file mode 100644 index 0000000000..ea36c6f504 --- /dev/null +++ b/TMessagesProj/src/main/res/raw/cache_documents.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/cache_documents.xml b/TMessagesProj/src/main/res/raw/cache_documents.xml deleted file mode 100644 index ae2921a07e..0000000000 --- a/TMessagesProj/src/main/res/raw/cache_documents.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - cache_documents - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/cache_music.svg b/TMessagesProj/src/main/res/raw/cache_music.svg new file mode 100644 index 0000000000..f5ededb9bd --- /dev/null +++ b/TMessagesProj/src/main/res/raw/cache_music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/cache_music.xml b/TMessagesProj/src/main/res/raw/cache_music.xml deleted file mode 100644 index c084eee27d..0000000000 --- a/TMessagesProj/src/main/res/raw/cache_music.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - cache_music - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/cache_other.svg b/TMessagesProj/src/main/res/raw/cache_other.svg new file mode 100644 index 0000000000..933ad3f6b7 --- /dev/null +++ b/TMessagesProj/src/main/res/raw/cache_other.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/cache_other.xml b/TMessagesProj/src/main/res/raw/cache_other.xml deleted file mode 100644 index da3ce336bf..0000000000 --- a/TMessagesProj/src/main/res/raw/cache_other.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - cache_other - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/cache_photos.svg b/TMessagesProj/src/main/res/raw/cache_photos.svg new file mode 100644 index 0000000000..d439922da5 --- /dev/null +++ b/TMessagesProj/src/main/res/raw/cache_photos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/cache_photos.xml b/TMessagesProj/src/main/res/raw/cache_photos.xml deleted file mode 100644 index 33ae2e4669..0000000000 --- a/TMessagesProj/src/main/res/raw/cache_photos.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - cache_photos - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/cache_profile_photos.svg b/TMessagesProj/src/main/res/raw/cache_profile_photos.svg new file mode 100644 index 0000000000..96de04d7a9 --- /dev/null +++ b/TMessagesProj/src/main/res/raw/cache_profile_photos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/cache_profile_photos.xml b/TMessagesProj/src/main/res/raw/cache_profile_photos.xml deleted file mode 100644 index 62ae437e44..0000000000 --- a/TMessagesProj/src/main/res/raw/cache_profile_photos.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - cache_profile_photos - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/cache_stickers.svg b/TMessagesProj/src/main/res/raw/cache_stickers.svg new file mode 100644 index 0000000000..1c73f411de --- /dev/null +++ b/TMessagesProj/src/main/res/raw/cache_stickers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/cache_stickers.xml b/TMessagesProj/src/main/res/raw/cache_stickers.xml deleted file mode 100644 index d03ff3687d..0000000000 --- a/TMessagesProj/src/main/res/raw/cache_stickers.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - cache_stickers - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/cache_videos.svg b/TMessagesProj/src/main/res/raw/cache_videos.svg new file mode 100644 index 0000000000..ff62a9f4dc --- /dev/null +++ b/TMessagesProj/src/main/res/raw/cache_videos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/cache_videos.xml b/TMessagesProj/src/main/res/raw/cache_videos.xml deleted file mode 100644 index f34b1dd065..0000000000 --- a/TMessagesProj/src/main/res/raw/cache_videos.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - cache_videos - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/call_unmute.json b/TMessagesProj/src/main/res/raw/call_unmute.json deleted file mode 100644 index fee66f9404..0000000000 --- a/TMessagesProj/src/main/res/raw/call_unmute.json +++ /dev/null @@ -1 +0,0 @@ -{"v":"5.10.1","fr":60,"ip":0,"op":60,"w":156,"h":156,"nm":"call_unmute","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Top 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.35]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.855]},"o":{"x":[0.167],"y":[0.096]},"t":1,"s":[0.042]},{"i":{"x":[0.833],"y":[0.721]},"o":{"x":[0.167],"y":[0.195]},"t":2,"s":[0.328]},{"i":{"x":[0.833],"y":[0.829]},"o":{"x":[0.167],"y":[0.119]},"t":3,"s":[0.54]},{"i":{"x":[0.833],"y":[0.839]},"o":{"x":[0.167],"y":[0.162]},"t":4,"s":[1.038]},{"i":{"x":[0.833],"y":[0.898]},"o":{"x":[0.167],"y":[0.172]},"t":5,"s":[1.564]},{"i":{"x":[0.833],"y":[1.207]},"o":{"x":[0.167],"y":[0.458]},"t":6,"s":[2.057]},{"i":{"x":[0.833],"y":[0.827]},"o":{"x":[0.167],"y":[0.059]},"t":7,"s":[2.167]},{"i":{"x":[0.833],"y":[0.697]},"o":{"x":[0.167],"y":[0.161]},"t":8,"s":[1.785]},{"i":{"x":[0.833],"y":[0.821]},"o":{"x":[0.167],"y":[0.115]},"t":9,"s":[1.374]},{"i":{"x":[0.833],"y":[0.875]},"o":{"x":[0.167],"y":[0.156]},"t":10,"s":[0.289]},{"i":{"x":[0.833],"y":[0.76]},"o":{"x":[0.167],"y":[0.249]},"t":11,"s":[-0.957]},{"i":{"x":[0.833],"y":[0.845]},"o":{"x":[0.167],"y":[0.128]},"t":12,"s":[-1.583]},{"i":{"x":[0.833],"y":[0.881]},"o":{"x":[0.167],"y":[0.181]},"t":13,"s":[-2.759]},{"i":{"x":[0.833],"y":[0.782]},"o":{"x":[0.167],"y":[0.281]},"t":14,"s":[-3.767]},{"i":{"x":[0.833],"y":[0.859]},"o":{"x":[0.167],"y":[0.135]},"t":15,"s":[-4.193]},{"i":{"x":[0.833],"y":[0.888]},"o":{"x":[0.167],"y":[0.205]},"t":16,"s":[-4.879]},{"i":{"x":[0.833],"y":[0.814]},"o":{"x":[0.167],"y":[0.325]},"t":17,"s":[-5.351]},{"i":{"x":[0.833],"y":[0.937]},"o":{"x":[0.167],"y":[0.151]},"t":18,"s":[-5.513]},{"i":{"x":[0.833],"y":[0.375]},"o":{"x":[0.167],"y":[-0.262]},"t":19,"s":[-5.713]},{"i":{"x":[0.833],"y":[0.626]},"o":{"x":[0.167],"y":[0.096]},"t":20,"s":[-5.665]},{"i":{"x":[0.833],"y":[0.806]},"o":{"x":[0.167],"y":[0.107]},"t":21,"s":[-5.352]},{"i":{"x":[0.833],"y":[0.872]},"o":{"x":[0.167],"y":[0.146]},"t":22,"s":[-4.261]},{"i":{"x":[0.833],"y":[0.753]},"o":{"x":[0.167],"y":[0.24]},"t":23,"s":[-2.819]},{"i":{"x":[0.833],"y":[0.842]},"o":{"x":[0.167],"y":[0.126]},"t":24,"s":[-2.05]},{"i":{"x":[0.833],"y":[0.88]},"o":{"x":[0.167],"y":[0.176]},"t":25,"s":[-0.539]},{"i":{"x":[0.833],"y":[0.778]},"o":{"x":[0.167],"y":[0.274]},"t":26,"s":[0.821]},{"i":{"x":[0.833],"y":[0.859]},"o":{"x":[0.167],"y":[0.133]},"t":27,"s":[1.416]},{"i":{"x":[0.833],"y":[0.898]},"o":{"x":[0.167],"y":[0.205]},"t":28,"s":[2.408]},{"i":{"x":[0.833],"y":[0.93]},"o":{"x":[0.167],"y":[0.46]},"t":29,"s":[3.089]},{"i":{"x":[0.833],"y":[-0.224]},"o":{"x":[0.167],"y":[-0.436]},"t":30,"s":[3.24]},{"i":{"x":[0.833],"y":[0.857]},"o":{"x":[0.167],"y":[0.089]},"t":31,"s":[3.216]},{"i":{"x":[0.833],"y":[0.724]},"o":{"x":[0.167],"y":[0.199]},"t":32,"s":[2.885]},{"i":{"x":[0.833],"y":[0.83]},"o":{"x":[0.167],"y":[0.119]},"t":33,"s":[2.647]},{"i":{"x":[0.833],"y":[0.877]},"o":{"x":[0.167],"y":[0.163]},"t":34,"s":[2.097]},{"i":{"x":[0.833],"y":[0.766]},"o":{"x":[0.167],"y":[0.257]},"t":35,"s":[1.524]},{"i":{"x":[0.833],"y":[0.848]},"o":{"x":[0.167],"y":[0.129]},"t":36,"s":[1.249]},{"i":{"x":[0.833],"y":[0.883]},"o":{"x":[0.167],"y":[0.185]},"t":37,"s":[0.751]},{"i":{"x":[0.833],"y":[0.788]},"o":{"x":[0.167],"y":[0.288]},"t":38,"s":[0.344]},{"i":{"x":[0.833],"y":[0.863]},"o":{"x":[0.167],"y":[0.137]},"t":39,"s":[0.178]},{"i":{"x":[0.833],"y":[0.89]},"o":{"x":[0.167],"y":[0.213]},"t":40,"s":[-0.079]},{"i":{"x":[0.833],"y":[0.83]},"o":{"x":[0.167],"y":[0.347]},"t":41,"s":[-0.243]},{"i":{"x":[0.833],"y":[0.914]},"o":{"x":[0.167],"y":[0.164]},"t":42,"s":[-0.295]},{"i":{"x":[0.833],"y":[1.491]},"o":{"x":[0.167],"y":[2.434]},"t":43,"s":[-0.349]},{"i":{"x":[0.833],"y":[0.632]},"o":{"x":[0.167],"y":[0.071]},"t":44,"s":[-0.351]},{"i":{"x":[0.833],"y":[0.808]},"o":{"x":[0.167],"y":[0.108]},"t":45,"s":[-0.338]},{"i":{"x":[0.833],"y":[0.872]},"o":{"x":[0.167],"y":[0.147]},"t":46,"s":[-0.293]},{"i":{"x":[0.833],"y":[0.753]},"o":{"x":[0.167],"y":[0.24]},"t":47,"s":[-0.234]},{"i":{"x":[0.833],"y":[0.842]},"o":{"x":[0.167],"y":[0.126]},"t":48,"s":[-0.203]},{"i":{"x":[0.833],"y":[0.88]},"o":{"x":[0.167],"y":[0.176]},"t":49,"s":[-0.142]},{"i":{"x":[0.833],"y":[0.778]},"o":{"x":[0.167],"y":[0.274]},"t":50,"s":[-0.087]},{"i":{"x":[0.833],"y":[0.856]},"o":{"x":[0.167],"y":[0.133]},"t":51,"s":[-0.063]},{"i":{"x":[0.833],"y":[0.886]},"o":{"x":[0.167],"y":[0.198]},"t":52,"s":[-0.023]},{"i":{"x":[0.833],"y":[0.804]},"o":{"x":[0.167],"y":[0.311]},"t":53,"s":[0.006]},{"i":{"x":[0.833],"y":[0.878]},"o":{"x":[0.167],"y":[0.145]},"t":54,"s":[0.017]},{"i":{"x":[0.833],"y":[0.904]},"o":{"x":[0.167],"y":[0.265]},"t":55,"s":[0.031]},{"i":{"x":[0.833],"y":[1.045]},"o":{"x":[0.167],"y":[0.647]},"t":56,"s":[0.038]},{"i":{"x":[0.833],"y":[0.658]},"o":{"x":[0.167],"y":[0.029]},"t":57,"s":[0.038]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.11]},"t":58,"s":[0.037]},{"t":59,"s":[0.032]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.713},"o":{"x":0.167,"y":0.167},"t":0,"s":[77.722,79.526,0],"to":[0,0.053,0],"ti":[0,-0.183,0]},{"i":{"x":0.833,"y":0.864},"o":{"x":0.167,"y":0.117},"t":1,"s":[77.722,79.844,0],"to":[0,0.183,0],"ti":[0,-0.211,0]},{"i":{"x":0.833,"y":0.736},"o":{"x":0.167,"y":0.216},"t":2,"s":[77.722,80.623,0],"to":[0,0.211,0],"ti":[0,-0.258,0]},{"i":{"x":0.833,"y":0.849},"o":{"x":0.167,"y":0.122},"t":3,"s":[77.722,81.112,0],"to":[0,0.258,0],"ti":[0,-0.32,0]},{"i":{"x":0.833,"y":0.881},"o":{"x":0.167,"y":0.186},"t":4,"s":[77.722,82.17,0],"to":[0,0.32,0],"ti":[0,-0.087,0]},{"i":{"x":0.833,"y":0.796},"o":{"x":0.167,"y":0.276},"t":5,"s":[77.722,83.03,0],"to":[0,0.087,0],"ti":[0,0.147,0]},{"i":{"x":0.833,"y":0.679},"o":{"x":0.167,"y":0.141},"t":6,"s":[77.722,82.69,0],"to":[0,-0.147,0],"ti":[0,0.348,0]},{"i":{"x":0.833,"y":0.868},"o":{"x":0.167,"y":0.112},"t":7,"s":[77.722,82.15,0],"to":[0,-0.348,0],"ti":[0,0.409,0]},{"i":{"x":0.833,"y":0.743},"o":{"x":0.167,"y":0.225},"t":8,"s":[77.722,80.604,0],"to":[0,-0.409,0],"ti":[0,0.468,0]},{"i":{"x":0.833,"y":0.837},"o":{"x":0.167,"y":0.123},"t":9,"s":[77.722,79.694,0],"to":[0,-0.468,0],"ti":[0,0.62,0]},{"i":{"x":0.833,"y":0.879},"o":{"x":0.167,"y":0.17},"t":10,"s":[77.722,77.793,0],"to":[0,-0.62,0],"ti":[0,0.442,0]},{"i":{"x":0.833,"y":0.772},"o":{"x":0.167,"y":0.266},"t":11,"s":[77.722,75.972,0],"to":[0,-0.442,0],"ti":[0,0.378,0]},{"i":{"x":0.833,"y":0.852},"o":{"x":0.167,"y":0.131},"t":12,"s":[77.722,75.142,0],"to":[0,-0.378,0],"ti":[0,0.425,0]},{"i":{"x":0.833,"y":0.884},"o":{"x":0.167,"y":0.191},"t":13,"s":[77.722,73.703,0],"to":[0,-0.425,0],"ti":[0,0.257,0]},{"i":{"x":0.833,"y":0.795},"o":{"x":0.167,"y":0.298},"t":14,"s":[77.722,72.593,0],"to":[0,-0.257,0],"ti":[0,0.176,0]},{"i":{"x":0.833,"y":0.87},"o":{"x":0.167,"y":0.14},"t":15,"s":[77.722,72.163,0],"to":[0,-0.176,0],"ti":[0,0.164,0]},{"i":{"x":0.833,"y":0.868},"o":{"x":0.167,"y":0.231},"t":16,"s":[77.722,71.535,0],"to":[0,-0.164,0],"ti":[0,0.042,0]},{"i":{"x":0.833,"y":0.396},"o":{"x":0.167,"y":0.227},"t":17,"s":[77.722,71.181,0],"to":[0,-0.042,0],"ti":[0,-0.232,0]},{"i":{"x":0.833,"y":0.774},"o":{"x":0.167,"y":0.097},"t":18,"s":[77.722,71.285,0],"to":[0,0.232,0],"ti":[0,-0.581,0]},{"i":{"x":0.833,"y":0.868},"o":{"x":0.167,"y":0.132},"t":19,"s":[77.722,72.57,0],"to":[0,0.581,0],"ti":[0,-0.579,0]},{"i":{"x":0.833,"y":0.744},"o":{"x":0.167,"y":0.227},"t":20,"s":[77.722,74.769,0],"to":[0,0.579,0],"ti":[0,-0.653,0]},{"i":{"x":0.833,"y":0.838},"o":{"x":0.167,"y":0.124},"t":21,"s":[77.722,76.045,0],"to":[0,0.653,0],"ti":[0,-0.859,0]},{"i":{"x":0.833,"y":0.879},"o":{"x":0.167,"y":0.171},"t":22,"s":[77.722,78.687,0],"to":[0,0.859,0],"ti":[0,-0.608,0]},{"i":{"x":0.833,"y":0.773},"o":{"x":0.167,"y":0.267},"t":23,"s":[77.722,81.197,0],"to":[0,0.608,0],"ti":[0,-0.517,0]},{"i":{"x":0.833,"y":0.853},"o":{"x":0.167,"y":0.132},"t":24,"s":[77.722,82.334,0],"to":[0,0.517,0],"ti":[0,-0.578,0]},{"i":{"x":0.833,"y":0.89},"o":{"x":0.167,"y":0.192},"t":25,"s":[77.722,84.298,0],"to":[0,0.578,0],"ti":[0,-0.332,0]},{"i":{"x":0.833,"y":0.878},"o":{"x":0.167,"y":0.341},"t":26,"s":[77.722,85.804,0],"to":[0,0.332,0],"ti":[0,-0.115,0]},{"i":{"x":0.833,"y":0.716},"o":{"x":0.167,"y":0.261},"t":27,"s":[77.722,86.29,0],"to":[0,0.115,0],"ti":[0,0.058,0]},{"i":{"x":0.833,"y":0.847},"o":{"x":0.167,"y":0.118},"t":28,"s":[77.722,86.491,0],"to":[0,-0.058,0],"ti":[0,0.168,0]},{"i":{"x":0.833,"y":0.712},"o":{"x":0.167,"y":0.183},"t":29,"s":[77.722,85.944,0],"to":[0,-0.168,0],"ti":[0,0.264,0]},{"i":{"x":0.833,"y":0.826},"o":{"x":0.167,"y":0.117},"t":30,"s":[77.722,85.485,0],"to":[0,-0.264,0],"ti":[0,0.392,0]},{"i":{"x":0.833,"y":0.876},"o":{"x":0.167,"y":0.16},"t":31,"s":[77.722,84.362,0],"to":[0,-0.392,0],"ti":[0,0.305,0]},{"i":{"x":0.833,"y":0.763},"o":{"x":0.167,"y":0.253},"t":32,"s":[77.722,83.135,0],"to":[0,-0.305,0],"ti":[0,0.285,0]},{"i":{"x":0.833,"y":0.847},"o":{"x":0.167,"y":0.128},"t":33,"s":[77.722,82.533,0],"to":[0,-0.285,0],"ti":[0,0.34,0]},{"i":{"x":0.833,"y":0.882},"o":{"x":0.167,"y":0.183},"t":34,"s":[77.722,81.423,0],"to":[0,-0.34,0],"ti":[0,0.219,0]},{"i":{"x":0.833,"y":0.785},"o":{"x":0.167,"y":0.284},"t":35,"s":[77.722,80.493,0],"to":[0,-0.219,0],"ti":[0,0.166,0]},{"i":{"x":0.833,"y":0.861},"o":{"x":0.167,"y":0.136},"t":36,"s":[77.722,80.107,0],"to":[0,-0.166,0],"ti":[0,0.169,0]},{"i":{"x":0.833,"y":0.889},"o":{"x":0.167,"y":0.209},"t":37,"s":[77.722,79.497,0],"to":[0,-0.169,0],"ti":[0,0.09,0]},{"i":{"x":0.833,"y":0.821},"o":{"x":0.167,"y":0.334},"t":38,"s":[77.722,79.09,0],"to":[0,-0.09,0],"ti":[0,0.048,0]},{"i":{"x":0.833,"y":0.899},"o":{"x":0.167,"y":0.156},"t":39,"s":[77.722,78.956,0],"to":[0,-0.048,0],"ti":[0,0.031,0]},{"i":{"x":0.833,"y":0.868},"o":{"x":0.167,"y":0.478},"t":40,"s":[77.722,78.801,0],"to":[0,-0.031,0],"ti":[0,0.002,0]},{"i":{"x":0.833,"y":0.553},"o":{"x":0.167,"y":0.229},"t":41,"s":[77.722,78.768,0],"to":[0,-0.002,0],"ti":[0,-0.017,0]},{"i":{"x":0.833,"y":0.795},"o":{"x":0.167,"y":0.103},"t":42,"s":[77.722,78.786,0],"to":[0,0.017,0],"ti":[0,-0.034,0]},{"i":{"x":0.833,"y":0.871},"o":{"x":0.167,"y":0.141},"t":43,"s":[77.722,78.868,0],"to":[0,0.034,0],"ti":[0,-0.031,0]},{"i":{"x":0.833,"y":0.749},"o":{"x":0.167,"y":0.234},"t":44,"s":[77.722,78.987,0],"to":[0,0.031,0],"ti":[0,-0.033,0]},{"i":{"x":0.833,"y":0.84},"o":{"x":0.167,"y":0.125},"t":45,"s":[77.722,79.053,0],"to":[0,0.033,0],"ti":[0,-0.042,0]},{"i":{"x":0.833,"y":0.88},"o":{"x":0.167,"y":0.174},"t":46,"s":[77.722,79.186,0],"to":[0,0.042,0],"ti":[0,-0.029,0]},{"i":{"x":0.833,"y":0.775},"o":{"x":0.167,"y":0.271},"t":47,"s":[77.722,79.308,0],"to":[0,0.029,0],"ti":[0,-0.024,0]},{"i":{"x":0.833,"y":0.854},"o":{"x":0.167,"y":0.133},"t":48,"s":[77.722,79.362,0],"to":[0,0.024,0],"ti":[0,-0.027,0]},{"i":{"x":0.833,"y":0.885},"o":{"x":0.167,"y":0.195},"t":49,"s":[77.722,79.454,0],"to":[0,0.027,0],"ti":[0,-0.016,0]},{"i":{"x":0.833,"y":0.8},"o":{"x":0.167,"y":0.305},"t":50,"s":[77.722,79.523,0],"to":[0,0.016,0],"ti":[0,-0.01,0]},{"i":{"x":0.833,"y":0.874},"o":{"x":0.167,"y":0.143},"t":51,"s":[77.722,79.549,0],"to":[0,0.01,0],"ti":[0,-0.009,0]},{"i":{"x":0.833,"y":0.899},"o":{"x":0.167,"y":0.247},"t":52,"s":[77.722,79.585,0],"to":[0,0.009,0],"ti":[0,-0.004,0]},{"i":{"x":0.833,"y":0.884},"o":{"x":0.167,"y":0.484},"t":53,"s":[77.722,79.603,0],"to":[0,0.004,0],"ti":[0,-0.001,0]},{"i":{"x":0.833,"y":0.492},"o":{"x":0.167,"y":0.278},"t":54,"s":[77.722,79.607,0],"to":[0,0.001,0],"ti":[0,0.001,0]},{"i":{"x":0.833,"y":0.857},"o":{"x":0.167,"y":0.099},"t":55,"s":[77.722,79.607,0],"to":[0,-0.001,0],"ti":[0,0.002,0]},{"i":{"x":0.833,"y":0.724},"o":{"x":0.167,"y":0.199},"t":56,"s":[77.722,79.598,0],"to":[0,-0.002,0],"ti":[0,0.003,0]},{"i":{"x":0.833,"y":0.83},"o":{"x":0.167,"y":0.119},"t":57,"s":[77.722,79.592,0],"to":[0,-0.003,0],"ti":[0,0.005,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.163},"t":58,"s":[77.722,79.579,0],"to":[0,-0.005,0],"ti":[0,0.002,0]},{"t":59,"s":[77.722,79.564,0]}],"ix":2,"l":2},"a":{"a":0,"k":[-0.918,5,0],"ix":1,"l":2},"s":{"a":0,"k":[30.469,30.469,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Call Unmute Outlines","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.006,-0.008,0],"ix":2,"l":2},"a":{"a":0,"k":[78,78,0],"ix":1,"l":2},"s":{"a":0,"k":[328.205,328.205,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-28.5,-28.5],[28.5,28.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.6],"y":[0]},"t":3,"s":[100]},{"t":17,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[78.5,79.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Call Mute Outlines","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.006,-0.008,0],"ix":2,"l":2},"a":{"a":0,"k":[78,78,0],"ix":1,"l":2},"s":{"a":0,"k":[328.205,328.205,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.6,"y":0},"t":3,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.745,2.55],[0,0],[2.734,2.734],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[2.671,2.672],[0,0],[2.734,-2.734],[0,0],[0,0],[0,0]],"v":[[156.5,0.5],[156.5,156.5],[0.5,156.5],[0.5,21.5],[10.5,21.398],[102.55,113.45],[112.261,113.632],[112.45,113.45],[112.45,103.55],[10.5,1.601],[10.5,0.5]],"c":true}]},{"t":17,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.745,2.55],[0,0],[2.734,2.734],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[2.671,2.672],[0,0],[2.734,-2.734],[0,0],[0,0],[0,0]],"v":[[156.5,0.5],[156.5,156.5],[0.5,156.5],[0.5,21.5],[10.5,21.398],[47.55,58.45],[57.261,58.632],[57.45,58.45],[57.45,48.55],[10.5,1.601],[10.5,0.5]],"c":true}]}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-6.817,0],[0,-6.831],[0,0],[6.817,0],[0,6.831],[0,0]],"o":[[6.817,0],[0,0],[0,6.831],[-6.817,0],[0,0],[0,-6.831]],"v":[[0.007,-33],[12.349,-20.632],[12.349,1.047],[0.007,13.416],[-12.336,1.047],[-12.336,-20.632]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.275,-1.973],[-9.95,0],[-1.477,10.291],[-1.968,-0.284],[0.283,-1.972],[11.947,-1.642],[0,0],[1.988,0],[0,1.992],[0,0],[1.757,12.587],[-1.969,0.276]],"o":[[1.442,10.33],[9.92,0],[0.283,-1.972],[1.968,0.284],[-1.799,12.54],[0,0],[0,1.992],[-1.988,0],[0,0],[-11.981,-1.651],[-0.275,-1.973],[1.969,-0.276]],"v":[[-19.835,3.117],[0.007,21.154],[19.836,3.2],[23.912,0.143],[26.963,4.227],[3.603,28.124],[3.603,35.393],[0.003,39],[-3.597,35.393],[-3.597,28.123],[-26.965,4.116],[-23.898,0.044]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[78,78],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"ct":1,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/channel_create.tgs b/TMessagesProj/src/main/res/raw/channel_create.json similarity index 100% rename from TMessagesProj/src/main/res/raw/channel_create.tgs rename to TMessagesProj/src/main/res/raw/channel_create.json diff --git a/TMessagesProj/src/main/res/raw/custom_emoji_reaction.tgs b/TMessagesProj/src/main/res/raw/custom_emoji_reaction.json similarity index 100% rename from TMessagesProj/src/main/res/raw/custom_emoji_reaction.tgs rename to TMessagesProj/src/main/res/raw/custom_emoji_reaction.json diff --git a/TMessagesProj/src/main/res/raw/dartloop.tgs b/TMessagesProj/src/main/res/raw/dartloop.json similarity index 100% rename from TMessagesProj/src/main/res/raw/dartloop.tgs rename to TMessagesProj/src/main/res/raw/dartloop.json diff --git a/TMessagesProj/src/main/res/raw/db_migration_placeholder.tgs b/TMessagesProj/src/main/res/raw/db_migration_placeholder.json similarity index 100% rename from TMessagesProj/src/main/res/raw/db_migration_placeholder.tgs rename to TMessagesProj/src/main/res/raw/db_migration_placeholder.json diff --git a/TMessagesProj/src/main/res/raw/default_pattern.tgv b/TMessagesProj/src/main/res/raw/default_pattern.svg similarity index 99% rename from TMessagesProj/src/main/res/raw/default_pattern.tgv rename to TMessagesProj/src/main/res/raw/default_pattern.svg index 05984b97a5..3786f07f00 100644 --- a/TMessagesProj/src/main/res/raw/default_pattern.tgv +++ b/TMessagesProj/src/main/res/raw/default_pattern.svg @@ -1,7 +1,4 @@ - - - + - - Filled / Premium / filled_premium_dollar - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/filter_new.tgs b/TMessagesProj/src/main/res/raw/filter_new.json similarity index 100% rename from TMessagesProj/src/main/res/raw/filter_new.tgs rename to TMessagesProj/src/main/res/raw/filter_new.json diff --git a/TMessagesProj/src/main/res/raw/filter_no_chats.tgs b/TMessagesProj/src/main/res/raw/filter_no_chats.json similarity index 100% rename from TMessagesProj/src/main/res/raw/filter_no_chats.tgs rename to TMessagesProj/src/main/res/raw/filter_no_chats.json diff --git a/TMessagesProj/src/main/res/raw/filters.tgs b/TMessagesProj/src/main/res/raw/filters.json similarity index 100% rename from TMessagesProj/src/main/res/raw/filters.tgs rename to TMessagesProj/src/main/res/raw/filters.json diff --git a/TMessagesProj/src/main/res/raw/import_finish.tgs b/TMessagesProj/src/main/res/raw/import_finish.json similarity index 100% rename from TMessagesProj/src/main/res/raw/import_finish.tgs rename to TMessagesProj/src/main/res/raw/import_finish.json diff --git a/TMessagesProj/src/main/res/raw/import_loop.tgs b/TMessagesProj/src/main/res/raw/import_loop.json similarity index 100% rename from TMessagesProj/src/main/res/raw/import_loop.tgs rename to TMessagesProj/src/main/res/raw/import_loop.json diff --git a/TMessagesProj/src/main/res/raw/instant.js b/TMessagesProj/src/main/res/raw/instant.js new file mode 100644 index 0000000000..2d0470664a --- /dev/null +++ b/TMessagesProj/src/main/res/raw/instant.js @@ -0,0 +1,88 @@ +// DOMPurifier (https://github.com/cure53/DOMPurify) +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).DOMPurify=t()}(this,(function(){"use strict";const{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:o,getOwnPropertyDescriptor:r}=Object;let{freeze:i,seal:a,create:l}=Object,{apply:c,construct:s}="undefined"!=typeof Reflect&&Reflect;i||(i=function(e){return e}),a||(a=function(e){return e}),c||(c=function(e,t,n){return e.apply(t,n)}),s||(s=function(e,t){return new e(...t)});const u=b(Array.prototype.forEach),m=b(Array.prototype.pop),p=b(Array.prototype.push),f=b(String.prototype.toLowerCase),d=b(String.prototype.toString),h=b(String.prototype.match),g=b(String.prototype.replace),T=b(String.prototype.indexOf),y=b(String.prototype.trim),E=b(Object.prototype.hasOwnProperty),_=b(RegExp.prototype.test),A=(N=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:f;t&&t(e,null);let i=o.length;for(;i--;){let t=o[i];if("string"==typeof t){const e=r(t);e!==t&&(n(o)||(o[i]=e),t=e)}e[t]=!0}return e}function R(e){for(let t=0;t/gm),B=a(/\${[\w\W]*}/gm),W=a(/^data-[\-\w.\u00B7-\uFFFF]/),G=a(/^aria-[\-\w]+$/),Y=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),j=a(/^(?:\w+script|data):/i),X=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),q=a(/^html$/i),$=a(/^[a-z][.\w]*(-[.\w]+)+$/i);var K=Object.freeze({__proto__:null,MUSTACHE_EXPR:H,ERB_EXPR:z,TMPLIT_EXPR:B,DATA_ATTR:W,ARIA_ATTR:G,IS_ALLOWED_URI:Y,IS_SCRIPT_OR_DATA:j,ATTR_WHITESPACE:X,DOCTYPE_NAME:q,CUSTOM_ELEMENT:$});const V=1,Z=3,J=7,Q=8,ee=9,te=function(){return"undefined"==typeof window?null:window};var ne=function t(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:te();const o=e=>t(e);if(o.version="3.1.6",o.removed=[],!n||!n.document||n.document.nodeType!==ee)return o.isSupported=!1,o;let{document:r}=n;const a=r,c=a.currentScript,{DocumentFragment:s,HTMLTemplateElement:N,Node:b,Element:R,NodeFilter:H,NamedNodeMap:z=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:B,DOMParser:W,trustedTypes:G}=n,j=R.prototype,X=C(j,"cloneNode"),$=C(j,"remove"),ne=C(j,"nextSibling"),oe=C(j,"childNodes"),re=C(j,"parentNode");if("function"==typeof N){const e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let ie,ae="";const{implementation:le,createNodeIterator:ce,createDocumentFragment:se,getElementsByTagName:ue}=r,{importNode:me}=a;let pe={};o.isSupported="function"==typeof e&&"function"==typeof re&&le&&void 0!==le.createHTMLDocument;const{MUSTACHE_EXPR:fe,ERB_EXPR:de,TMPLIT_EXPR:he,DATA_ATTR:ge,ARIA_ATTR:Te,IS_SCRIPT_OR_DATA:ye,ATTR_WHITESPACE:Ee,CUSTOM_ELEMENT:_e}=K;let{IS_ALLOWED_URI:Ae}=K,Ne=null;const be=S({},[...L,...D,...v,...x,...M]);let Se=null;const Re=S({},[...I,...U,...P,...F]);let we=Object.seal(l(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ce=null,Le=null,De=!0,ve=!0,Oe=!1,xe=!0,ke=!1,Me=!0,Ie=!1,Ue=!1,Pe=!1,Fe=!1,He=!1,ze=!1,Be=!0,We=!1,Ge=!0,Ye=!1,je={},Xe=null;const qe=S({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let $e=null;const Ke=S({},["audio","video","img","source","image","track"]);let Ve=null;const Ze=S({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Je="http://www.w3.org/1998/Math/MathML",Qe="http://www.w3.org/2000/svg",et="http://www.w3.org/1999/xhtml";let tt=et,nt=!1,ot=null;const rt=S({},[Je,Qe,et],d);let it=null;const at=["application/xhtml+xml","text/html"];let lt=null,ct=null;const st=r.createElement("form"),ut=function(e){return e instanceof RegExp||e instanceof Function},mt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ct||ct!==e){if(e&&"object"==typeof e||(e={}),e=w(e),it=-1===at.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,lt="application/xhtml+xml"===it?d:f,Ne=E(e,"ALLOWED_TAGS")?S({},e.ALLOWED_TAGS,lt):be,Se=E(e,"ALLOWED_ATTR")?S({},e.ALLOWED_ATTR,lt):Re,ot=E(e,"ALLOWED_NAMESPACES")?S({},e.ALLOWED_NAMESPACES,d):rt,Ve=E(e,"ADD_URI_SAFE_ATTR")?S(w(Ze),e.ADD_URI_SAFE_ATTR,lt):Ze,$e=E(e,"ADD_DATA_URI_TAGS")?S(w(Ke),e.ADD_DATA_URI_TAGS,lt):Ke,Xe=E(e,"FORBID_CONTENTS")?S({},e.FORBID_CONTENTS,lt):qe,Ce=E(e,"FORBID_TAGS")?S({},e.FORBID_TAGS,lt):{},Le=E(e,"FORBID_ATTR")?S({},e.FORBID_ATTR,lt):{},je=!!E(e,"USE_PROFILES")&&e.USE_PROFILES,De=!1!==e.ALLOW_ARIA_ATTR,ve=!1!==e.ALLOW_DATA_ATTR,Oe=e.ALLOW_UNKNOWN_PROTOCOLS||!1,xe=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,ke=e.SAFE_FOR_TEMPLATES||!1,Me=!1!==e.SAFE_FOR_XML,Ie=e.WHOLE_DOCUMENT||!1,Fe=e.RETURN_DOM||!1,He=e.RETURN_DOM_FRAGMENT||!1,ze=e.RETURN_TRUSTED_TYPE||!1,Pe=e.FORCE_BODY||!1,Be=!1!==e.SANITIZE_DOM,We=e.SANITIZE_NAMED_PROPS||!1,Ge=!1!==e.KEEP_CONTENT,Ye=e.IN_PLACE||!1,Ae=e.ALLOWED_URI_REGEXP||Y,tt=e.NAMESPACE||et,we=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&ut(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(we.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ut(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(we.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(we.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ke&&(ve=!1),He&&(Fe=!0),je&&(Ne=S({},M),Se=[],!0===je.html&&(S(Ne,L),S(Se,I)),!0===je.svg&&(S(Ne,D),S(Se,U),S(Se,F)),!0===je.svgFilters&&(S(Ne,v),S(Se,U),S(Se,F)),!0===je.mathMl&&(S(Ne,x),S(Se,P),S(Se,F))),e.ADD_TAGS&&(Ne===be&&(Ne=w(Ne)),S(Ne,e.ADD_TAGS,lt)),e.ADD_ATTR&&(Se===Re&&(Se=w(Se)),S(Se,e.ADD_ATTR,lt)),e.ADD_URI_SAFE_ATTR&&S(Ve,e.ADD_URI_SAFE_ATTR,lt),e.FORBID_CONTENTS&&(Xe===qe&&(Xe=w(Xe)),S(Xe,e.FORBID_CONTENTS,lt)),Ge&&(Ne["#text"]=!0),Ie&&S(Ne,["html","head","body"]),Ne.table&&(S(Ne,["tbody"]),delete Ce.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');ie=e.TRUSTED_TYPES_POLICY,ae=ie.createHTML("")}else void 0===ie&&(ie=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(G,c)),null!==ie&&"string"==typeof ae&&(ae=ie.createHTML(""));i&&i(e),ct=e}},pt=S({},["mi","mo","mn","ms","mtext"]),ft=S({},["foreignobject","annotation-xml"]),dt=S({},["title","style","font","a","script"]),ht=S({},[...D,...v,...O]),gt=S({},[...x,...k]),Tt=function(e){p(o.removed,{element:e});try{re(e).removeChild(e)}catch(t){$(e)}},yt=function(e,t){try{p(o.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){p(o.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!Se[e])if(Fe||He)try{Tt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},Et=function(e){let t=null,n=null;if(Pe)e=""+e;else{const t=h(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===it&&tt===et&&(e=''+e+"");const o=ie?ie.createHTML(e):e;if(tt===et)try{t=(new W).parseFromString(o,it)}catch(e){}if(!t||!t.documentElement){t=le.createDocument(tt,"template",null);try{t.documentElement.innerHTML=nt?ae:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),tt===et?ue.call(t,Ie?"html":"body")[0]:Ie?t.documentElement:i},_t=function(e){return ce.call(e.ownerDocument||e,e,H.SHOW_ELEMENT|H.SHOW_COMMENT|H.SHOW_TEXT|H.SHOW_PROCESSING_INSTRUCTION|H.SHOW_CDATA_SECTION,null)},At=function(e){return e instanceof B&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof z)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},Nt=function(e){return"function"==typeof b&&e instanceof b},bt=function(e,t,n){pe[e]&&u(pe[e],(e=>{e.call(o,t,n,ct)}))},St=function(e){let t=null;if(bt("beforeSanitizeElements",e,null),At(e))return Tt(e),!0;const n=lt(e.nodeName);if(bt("uponSanitizeElement",e,{tagName:n,allowedTags:Ne}),e.hasChildNodes()&&!Nt(e.firstElementChild)&&_(/<[/\w]/g,e.innerHTML)&&_(/<[/\w]/g,e.textContent))return Tt(e),!0;if(e.nodeType===J)return Tt(e),!0;if(Me&&e.nodeType===Q&&_(/<[/\w]/g,e.data))return Tt(e),!0;if(!Ne[n]||Ce[n]){if(!Ce[n]&&wt(n)){if(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,n))return!1;if(we.tagNameCheck instanceof Function&&we.tagNameCheck(n))return!1}if(Ge&&!Xe[n]){const t=re(e)||e.parentNode,n=oe(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const r=X(n[o],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,ne(e))}}}return Tt(e),!0}return e instanceof R&&!function(e){let t=re(e);t&&t.tagName||(t={namespaceURI:tt,tagName:"template"});const n=f(e.tagName),o=f(t.tagName);return!!ot[e.namespaceURI]&&(e.namespaceURI===Qe?t.namespaceURI===et?"svg"===n:t.namespaceURI===Je?"svg"===n&&("annotation-xml"===o||pt[o]):Boolean(ht[n]):e.namespaceURI===Je?t.namespaceURI===et?"math"===n:t.namespaceURI===Qe?"math"===n&&ft[o]:Boolean(gt[n]):e.namespaceURI===et?!(t.namespaceURI===Qe&&!ft[o])&&!(t.namespaceURI===Je&&!pt[o])&&!gt[n]&&(dt[n]||!ht[n]):!("application/xhtml+xml"!==it||!ot[e.namespaceURI]))}(e)?(Tt(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!_(/<\/no(script|embed|frames)/i,e.innerHTML)?(ke&&e.nodeType===Z&&(t=e.textContent,u([fe,de,he],(e=>{t=g(t,e," ")})),e.textContent!==t&&(p(o.removed,{element:e.cloneNode()}),e.textContent=t)),bt("afterSanitizeElements",e,null),!1):(Tt(e),!0)},Rt=function(e,t,n){if(Be&&("id"===t||"name"===t)&&(n in r||n in st))return!1;if(ve&&!Le[t]&&_(ge,t));else if(De&&_(Te,t));else if(!Se[t]||Le[t]){if(!(wt(e)&&(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,e)||we.tagNameCheck instanceof Function&&we.tagNameCheck(e))&&(we.attributeNameCheck instanceof RegExp&&_(we.attributeNameCheck,t)||we.attributeNameCheck instanceof Function&&we.attributeNameCheck(t))||"is"===t&&we.allowCustomizedBuiltInElements&&(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,n)||we.tagNameCheck instanceof Function&&we.tagNameCheck(n))))return!1}else if(Ve[t]);else if(_(Ae,g(n,Ee,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==T(n,"data:")||!$e[e]){if(Oe&&!_(ye,g(n,Ee,"")));else if(n)return!1}else;return!0},wt=function(e){return"annotation-xml"!==e&&h(e,_e)},Ct=function(e){bt("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Se};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=lt(a);let p="value"===a?c:y(c);if(n.attrName=s,n.attrValue=p,n.keepAttr=!0,n.forceKeepAttr=void 0,bt("uponSanitizeAttribute",e,n),p=n.attrValue,Me&&_(/((--!?|])>)|<\/(style|title)/i,p)){yt(a,e);continue}if(n.forceKeepAttr)continue;if(yt(a,e),!n.keepAttr)continue;if(!xe&&_(/\/>/i,p)){yt(a,e);continue}ke&&u([fe,de,he],(e=>{p=g(p,e," ")}));const f=lt(e.nodeName);if(Rt(f,s,p)){if(!We||"id"!==s&&"name"!==s||(yt(a,e),p="user-content-"+p),ie&&"object"==typeof G&&"function"==typeof G.getAttributeType)if(l);else switch(G.getAttributeType(f,s)){case"TrustedHTML":p=ie.createHTML(p);break;case"TrustedScriptURL":p=ie.createScriptURL(p)}try{l?e.setAttributeNS(l,a,p):e.setAttribute(a,p),At(e)?Tt(e):m(o.removed)}catch(e){}}}bt("afterSanitizeAttributes",e,null)},Lt=function e(t){let n=null;const o=_t(t);for(bt("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)bt("uponSanitizeShadowNode",n,null),St(n)||(n.content instanceof s&&e(n.content),Ct(n));bt("afterSanitizeShadowDOM",t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(nt=!e,nt&&(e="\x3c!--\x3e"),"string"!=typeof e&&!Nt(e)){if("function"!=typeof e.toString)throw A("toString is not a function");if("string"!=typeof(e=e.toString()))throw A("dirty is not a string, aborting")}if(!o.isSupported)return e;if(Ue||mt(t),o.removed=[],"string"==typeof e&&(Ye=!1),Ye){if(e.nodeName){const t=lt(e.nodeName);if(!Ne[t]||Ce[t])throw A("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof b)n=Et("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),r.nodeType===V&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!Fe&&!ke&&!Ie&&-1===e.indexOf("<"))return ie&&ze?ie.createHTML(e):e;if(n=Et(e),!n)return Fe?null:ze?ae:""}n&&Pe&&Tt(n.firstChild);const c=_t(Ye?e:n);for(;i=c.nextNode();)St(i)||(i.content instanceof s&&Lt(i.content),Ct(i));if(Ye)return e;if(Fe){if(He)for(l=se.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(Se.shadowroot||Se.shadowrootmode)&&(l=me.call(a,l,!0)),l}let m=Ie?n.outerHTML:n.innerHTML;return Ie&&Ne["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&_(q,n.ownerDocument.doctype.name)&&(m="\n"+m),ke&&u([fe,de,he],(e=>{m=g(m,e," ")})),ie&&ze?ie.createHTML(m):m},o.setConfig=function(){mt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Ue=!0},o.clearConfig=function(){ct=null,Ue=!1},o.isValidAttribute=function(e,t,n){ct||mt({});const o=lt(e),r=lt(t);return Rt(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&(pe[e]=pe[e]||[],p(pe[e],t))},o.removeHook=function(e){if(pe[e])return m(pe[e])},o.removeHooks=function(e){pe[e]&&(pe[e]=[])},o.removeAllHooks=function(){pe={}},o}();return ne})); +// Mozilla Readability.js (https://github.com/mozilla/readability) +var REGEXPS={unlikelyCandidates:/-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|foot|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i,okMaybeItsACandidate:/and|article|body|column|main|shadow/i};function isNodeVisible(e){return(!e.style||"none"!=e.style.display)&&!e.hasAttribute("hidden")}function isProbablyReaderable(e,a){a||(a=isNodeVisible);var r=e.querySelectorAll("p, pre"),t=e.querySelectorAll("div > br");if(t.length){var i=new Set(r);[].forEach.call(t,function(e){i.add(e.parentNode)}),r=Array.from(i)}var n=0;return[].some.call(r,function(e){if(!a(e))return!1;var r=e.className+" "+e.id;if(REGEXPS.unlikelyCandidates.test(r)&&!REGEXPS.okMaybeItsACandidate.test(r)||e.matches("li p"))return!1;var t=e.textContent.trim().length;return!(t<140)&&(n+=Math.sqrt(t-140))>20})}"object"==typeof exports&&(exports.isProbablyReaderable=isProbablyReaderable); +function Readability(e,t){if(t&&t.documentElement)e=t,t=arguments[2];else if(!e||!e.documentElement)throw Error("First argument to Readability constructor should be a document object.");if(t=t||{},this._doc=e,this._docJSDOMParser=this._doc.firstChild.__JSDOMParser__,this._articleTitle=null,this._articleByline=null,this._articleDir=null,this._articleSiteName=null,this._attempts=[],this._metadata={},this._debug=!!t.debug,this._maxElemsToParse=t.maxElemsToParse||this.DEFAULT_MAX_ELEMS_TO_PARSE,this._nbTopCandidates=t.nbTopCandidates||this.DEFAULT_N_TOP_CANDIDATES,this._charThreshold=t.charThreshold||this.DEFAULT_CHAR_THRESHOLD,this._classesToPreserve=this.CLASSES_TO_PRESERVE.concat(t.classesToPreserve||[]),this._keepClasses=!!t.keepClasses,this._serializer=t.serializer||function(e){return e.innerHTML},this._disableJSONLD=!!t.disableJSONLD,this._allowedVideoRegex=t.allowedVideoRegex||this.REGEXPS.videos,this._linkDensityModifier=t.linkDensityModifier||0,this._flags=this.FLAG_STRIP_UNLIKELYS|this.FLAG_WEIGHT_CLASSES|this.FLAG_CLEAN_CONDITIONALLY,this._debug){let i=function(e){return e.nodeType==e.TEXT_NODE?`${e.nodeName} ("${e.textContent}")`:`<${e.localName} ${Array.from(e.attributes||[],function(e){return`${e.name}="${e.value}"`}).join(" ")}>`};this.log=function(){if("undefined"!=typeof console){let e=Array.from(arguments,e=>e&&e.nodeType==this.ELEMENT_NODE?i(e):e);e.unshift("Reader: (Readability)"),console.log(...e)}else if("undefined"!=typeof dump){var t=Array.prototype.map.call(arguments,function(e){return e&&e.nodeName?i(e):e}).join(" ");dump("Reader: (Readability) "+t+"\n")}}}else this.log=function(){}}Readability.prototype={FLAG_STRIP_UNLIKELYS:1,FLAG_WEIGHT_CLASSES:2,FLAG_CLEAN_CONDITIONALLY:4,ELEMENT_NODE:1,TEXT_NODE:3,DEFAULT_MAX_ELEMS_TO_PARSE:0,DEFAULT_N_TOP_CANDIDATES:5,DEFAULT_TAGS_TO_SCORE:"SECTION,H2,H3,H4,H5,H6,P,TD,PRE".split(","),DEFAULT_CHAR_THRESHOLD:500,REGEXPS:{unlikelyCandidates:/-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i,okMaybeItsACandidate:/and|article|body|column|content|main|shadow/i,positive:/article|body|content|entry|hentry|h-entry|main|page|pagination|post|text|blog|story/i,negative:/-ad-|hidden|^hid$| hid$| hid |^hid |banner|combx|comment|com-|contact|foot|footer|footnote|gdpr|masthead|media|meta|outbrain|promo|related|scroll|share|shoutbox|sidebar|skyscraper|sponsor|shopping|tags|widget/i,extraneous:/print|archive|comment|discuss|e[\-]?mail|share|reply|all|login|sign|single|utility/i,byline:/byline|author|dateline|writtenby|p-author/i,replaceFonts:/<(\/?)font[^>]*>/gi,normalize:/\s{2,}/g,videos:/\/\/(www\.)?((dailymotion|youtube|youtube-nocookie|player\.vimeo|v\.qq)\.com|(archive|upload\.wikimedia)\.org|player\.twitch\.tv)/i,shareElements:/(\b|_)(share|sharedaddy)(\b|_)/i,nextLink:/(next|weiter|continue|>([^\|]|$)|»([^\|]|$))/i,prevLink:/(prev|earl|old|new|<|«)/i,tokenize:/\W+/g,whitespace:/^\s*$/,hasContent:/\S$/,hashUrl:/^#.+/,srcsetUrl:/(\S+)(\s+[\d.]+[xw])?(\s*(?:,|$))/g,b64DataUrl:/^data:\s*([^\s;,]+)\s*;\s*base64\s*,/i,commas:/\u002C|\u060C|\uFE50|\uFE10|\uFE11|\u2E41|\u2E34|\u2E32|\uFF0C/g,jsonLdArticleTypes:/^Article|AdvertiserContentArticle|NewsArticle|AnalysisNewsArticle|AskPublicNewsArticle|BackgroundNewsArticle|OpinionNewsArticle|ReportageNewsArticle|ReviewNewsArticle|Report|SatiricalArticle|ScholarlyArticle|MedicalScholarlyArticle|SocialMediaPosting|BlogPosting|LiveBlogPosting|DiscussionForumPosting|TechArticle|APIReference$/,adWords:/^(ad(vertising|vertisement)?|pub(licité)?|werb(ung)?|广告|Реклама|Anuncio)$/iu,loadingWords:/^((loading|正在加载|Загрузка|chargement|cargando)(…|\.\.\.)?)$/iu},UNLIKELY_ROLES:["menu","menubar","complementary","navigation","alert","alertdialog","dialog",],DIV_TO_P_ELEMS:new Set(["BLOCKQUOTE","DL","DIV","IMG","OL","P","PRE","TABLE","UL",]),ALTER_TO_DIV_EXCEPTIONS:["DIV","ARTICLE","SECTION","P"],PRESENTATIONAL_ATTRIBUTES:["align","background","bgcolor","border","cellpadding","cellspacing","frame","hspace","rules","style","valign","vspace",],DEPRECATED_SIZE_ATTRIBUTE_ELEMS:["TABLE","TH","TD","HR","PRE"],PHRASING_ELEMS:["ABBR","AUDIO","B","BDO","BR","BUTTON","CITE","CODE","DATA","DATALIST","DFN","EM","EMBED","I","IMG","INPUT","KBD","LABEL","MARK","MATH","METER","NOSCRIPT","OBJECT","OUTPUT","PROGRESS","Q","RUBY","SAMP","SCRIPT","SELECT","SMALL","SPAN","STRONG","SUB","SUP","TEXTAREA","TIME","VAR","WBR",],CLASSES_TO_PRESERVE:["page"],HTML_ESCAPE_MAP:{lt:"<",gt:">",amp:"&",quot:'"',apos:"'"},_postProcessContent(e){this._fixRelativeUris(e),this._simplifyNestedElements(e),this._keepClasses||this._cleanClasses(e)},_removeNodes(e,t){if(this._docJSDOMParser&&e._isLiveNodeList)throw Error("Do not pass live node lists to _removeNodes");for(var i=e.length-1;i>=0;i--){var a=e[i],s=a.parentNode;s&&(!t||t.call(this,a,i,e))&&s.removeChild(a)}},_replaceNodeTags(e,t){if(this._docJSDOMParser&&e._isLiveNodeList)throw Error("Do not pass live node lists to _replaceNodeTags");for(let i of e)this._setNodeTag(i,t)},_forEachNode(e,t){Array.prototype.forEach.call(e,t,this)},_findNode(e,t){return Array.prototype.find.call(e,t,this)},_someNode(e,t){return Array.prototype.some.call(e,t,this)},_everyNode(e,t){return Array.prototype.every.call(e,t,this)},_getAllNodesWithTag:(e,t)=>e.querySelectorAll?e.querySelectorAll(t.join(",")):[].concat.apply([],t.map(function(t){var i=e.getElementsByTagName(t);return Array.isArray(i)?i:Array.from(i)})),_cleanClasses(e){var t=this._classesToPreserve,i=(e.getAttribute("class")||"").split(/\s+/).filter(e=>t.includes(e)).join(" ");for(i?e.setAttribute("class",i):e.removeAttribute("class"),e=e.firstElementChild;e;e=e.nextElementSibling)this._cleanClasses(e)},_fixRelativeUris(e){var t=this._doc.baseURI,i=this._doc.documentURI;function a(e){if(t==i&&"#"==e.charAt(0))return e;try{return new URL(e,t).href}catch(a){}return e}var s=this._getAllNodesWithTag(e,["a"]);this._forEachNode(s,function(e){var t=e.getAttribute("href");if(t){if(0===t.indexOf("javascript:")){if(1===e.childNodes.length&&e.childNodes[0].nodeType===this.TEXT_NODE){var i=this._doc.createTextNode(e.textContent);e.parentNode.replaceChild(i,e)}else{for(var s=this._doc.createElement("span");e.firstChild;)s.appendChild(e.firstChild);e.parentNode.replaceChild(s,e)}}else e.setAttribute("href",a(t))}});var r=this._getAllNodesWithTag(e,["img","picture","figure","video","audio","source",]);this._forEachNode(r,function(e){var t=e.getAttribute("src"),i=e.getAttribute("poster"),s=e.getAttribute("srcset");if(t&&e.setAttribute("src",a(t)),i&&e.setAttribute("poster",a(i)),s){var r=s.replace(this.REGEXPS.srcsetUrl,function(e,t,i,s){return a(t)+(i||"")+s});e.setAttribute("srcset",r)}})},_simplifyNestedElements(e){for(var t=e;t;){if(t.parentNode&&["DIV","SECTION"].includes(t.tagName)&&!(t.id&&t.id.startsWith("readability"))){if(this._isElementWithoutContent(t)){t=this._removeAndGetNext(t);continue}if(this._hasSingleTagInsideElement(t,"DIV")||this._hasSingleTagInsideElement(t,"SECTION")){for(var i=t.children[0],a=0;a»] /.test(t))s=/ [\\\/>»] /.test(t),3>r(t=i.replace(/(.*)[\|\-\\\/>»] .*/gi,"$1"))&&(t=i.replace(/[^\|\-\\\/>»]*[\|\-\\\/>»](.*)/gi,"$1"));else if(t.includes(": ")){var n=this._getAllNodesWithTag(e,["h1","h2"]),l=t.trim();!this._someNode(n,function(e){return e.textContent.trim()===l})&&(3>r(t=i.substring(i.lastIndexOf(":")+1))?t=i.substring(i.indexOf(":")+1):r(i.substr(0,i.indexOf(":")))>5&&(t=i))}else if(t.length>150||t.length<15){var o=e.getElementsByTagName("h1");1===o.length&&(t=this._getInnerText(o[0]))}var h=r(t=t.trim().replace(this.REGEXPS.normalize," "));return h<=4&&(!s||h!=r(i.replace(/[\|\-\\\/>»]+/g,""))-1)&&(t=i),t},_prepDocument(){var e=this._doc;this._removeNodes(this._getAllNodesWithTag(e,["style"])),e.body&&this._replaceBrs(e.body),this._replaceNodeTags(this._getAllNodesWithTag(e,["font"]),"SPAN")},_nextNode(e){for(var t=e;t&&t.nodeType!=this.ELEMENT_NODE&&this.REGEXPS.whitespace.test(t.textContent);)t=t.nextSibling;return t},_replaceBrs(e){this._forEachNode(this._getAllNodesWithTag(e,["br"]),function(e){for(var t=e.nextSibling,i=!1;(t=this._nextNode(t))&&"BR"==t.tagName;){i=!0;var a=t.nextSibling;t.remove(),t=a}if(i){var s=this._doc.createElement("p");for(e.parentNode.replaceChild(s,e),t=s.nextSibling;t;){if("BR"==t.tagName){var r=this._nextNode(t.nextSibling);if(r&&"BR"==r.tagName)break}if(!this._isPhrasingContent(t))break;var n=t.nextSibling;s.appendChild(t),t=n}for(;s.lastChild&&this._isWhitespace(s.lastChild);)s.lastChild.remove();"P"===s.parentNode.tagName&&this._setNodeTag(s.parentNode,"DIV")}})},_setNodeTag(e,t){if(this.log("_setNodeTag",e,t),this._docJSDOMParser)return e.localName=t.toLowerCase(),e.tagName=t.toUpperCase(),e;for(var i=e.ownerDocument.createElement(t);e.firstChild;)i.appendChild(e.firstChild);e.parentNode.replaceChild(i,e),e.readability&&(i.readability=e.readability);for(var a=0;a!i.includes(e)).join(" ").length/a.join(" ").length:0},_checkByline(e,t){if(this._articleByline||this._metadata.byline)return!1;if(void 0!==e.getAttribute)var i=e.getAttribute("rel"),a=e.getAttribute("itemprop");return!!(("author"===i||a&&a.includes("author")||this.REGEXPS.byline.test(t))&&this._isValidByline(e.textContent))&&(this._articleByline=e.textContent.trim(),!0)},_getNodeAncestors(e,t){t=t||0;for(var i=0,a=[];e.parentNode&&(a.push(e.parentNode),!t||++i!==t);)e=e.parentNode;return a},_grabArticle(e){this.log("**** grabArticle ****");var t=this._doc,i=null!==e;if(!(e=e||this._doc.body))return this.log("No body found in document. Abort."),null;for(var a=e.innerHTML;;){this.log("Starting grabArticle loop");var s,r=this._flagIsActive(this.FLAG_STRIP_UNLIKELYS),n=[],l=this._doc.documentElement;let o=!0;for(;l;){"HTML"===l.tagName&&(this._articleLang=l.getAttribute("lang"));var h=l.className+" "+l.id;if(!this._isProbablyVisible(l)){this.log("Removing hidden node - "+h),l=this._removeAndGetNext(l);continue}if("true"==l.getAttribute("aria-modal")&&"dialog"==l.getAttribute("role")||this._checkByline(l,h)){l=this._removeAndGetNext(l);continue}if(o&&this._headerDuplicatesTitle(l)){this.log("Removing header: ",l.textContent.trim(),this._articleTitle.trim()),o=!1,l=this._removeAndGetNext(l);continue}if(r){if(this.REGEXPS.unlikelyCandidates.test(h)&&!this.REGEXPS.okMaybeItsACandidate.test(h)&&!this._hasAncestorTag(l,"table")&&!this._hasAncestorTag(l,"code")&&"BODY"!==l.tagName&&"A"!==l.tagName){this.log("Removing unlikely candidate - "+h),l=this._removeAndGetNext(l);continue}if(this.UNLIKELY_ROLES.includes(l.getAttribute("role"))){this.log("Removing content with role "+l.getAttribute("role")+" - "+h),l=this._removeAndGetNext(l);continue}}if(("DIV"===l.tagName||"SECTION"===l.tagName||"HEADER"===l.tagName||"H1"===l.tagName||"H2"===l.tagName||"H3"===l.tagName||"H4"===l.tagName||"H5"===l.tagName||"H6"===l.tagName)&&this._isElementWithoutContent(l)){l=this._removeAndGetNext(l);continue}if(this.DEFAULT_TAGS_TO_SCORE.includes(l.tagName)&&n.push(l),"DIV"===l.tagName){for(var d=null,c=l.firstChild;c;){var g=c.nextSibling;if(this._isPhrasingContent(c))null!==d?d.appendChild(c):this._isWhitespace(c)||(d=t.createElement("p"),l.replaceChild(d,c),d.appendChild(c));else if(null!==d){for(;d.lastChild&&this._isWhitespace(d.lastChild);)d.lastChild.remove();d=null}c=g}if(this._hasSingleTagInsideElement(l,"P")&&.25>this._getLinkDensity(l)){var m=l.children[0];l.parentNode.replaceChild(m,l),l=m,n.push(l)}else this._hasChildBlockElement(l)||(l=this._setNodeTag(l,"P"),n.push(l))}l=this._getNextNode(l)}var u=[];this._forEachNode(n,function(e){if(e.parentNode&&void 0!==e.parentNode.tagName){var t=this._getInnerText(e);if(!(t.length<25)){var i=this._getNodeAncestors(e,5);if(0!==i.length){var a=0;a+=1,a+=t.split(this.REGEXPS.commas).length,a+=Math.min(Math.floor(t.length/100),3),this._forEachNode(i,function(e,t){if(e.tagName&&e.parentNode&&void 0!==e.parentNode.tagName){if(void 0===e.readability&&(this._initializeNode(e),u.push(e)),0===t)var i=1;else i=1===t?2:3*t;e.readability.contentScore+=a/i}})}}}});for(var p=[],f=0,N=u.length;fv.readability.contentScore){p.splice(T,0,E),p.length>this._nbTopCandidates&&p.pop();break}}}var y=p[0]||null,A=!1;if(null===y||"BODY"===y.tagName){for(y=t.createElement("DIV"),A=!0;e.firstChild;)this.log("Moving child out:",e.firstChild),y.appendChild(e.firstChild);e.appendChild(y),this._initializeNode(y)}else if(y){for(var S=[],C=1;C=.75&&S.push(this._getNodeAncestors(p[C]));if(S.length>=3)for(s=y.parentNode;"BODY"!==s.tagName;){for(var $=0,L=0;L=3){y=s;break}s=s.parentNode}y.readability||this._initializeNode(y),s=y.parentNode;for(var D=y.readability.contentScore,x=D/3;"BODY"!==s.tagName;){if(!s.readability){s=s.parentNode;continue}var I=s.readability.contentScore;if(ID){y=s;break}D=s.readability.contentScore,s=s.parentNode}for(s=y.parentNode;"BODY"!=s.tagName&&1==s.children.length;)s=(y=s).parentNode;y.readability||this._initializeNode(y)}var R=t.createElement("DIV");i&&(R.id="readability-content");for(var P=Math.max(10,.2*y.readability.contentScore),_=(s=y.parentNode).children,O=0,w=_.length;O=P)G=!0;else if("P"===B.nodeName){var k=this._getLinkDensity(B),H=this._getInnerText(B),U=H.length;U>80&&k<.25?G=!0:U<80&&U>0&&0===k&&-1!==H.search(/\.( |$)/)&&(G=!0)}}G&&(this.log("Appending node:",B),this.ALTER_TO_DIV_EXCEPTIONS.includes(B.nodeName)||(this.log("Altering sibling:",B,"to div."),B=this._setNodeTag(B,"DIV")),R.appendChild(B),_=s.children,O-=1,w-=1)}if(this._debug&&this.log("Article content pre-prep: "+R.innerHTML),this._prepArticle(R),this._debug&&this.log("Article content post-prep: "+R.innerHTML),A)y.id="readability-page-1",y.className="page";else{var W=t.createElement("DIV");for(W.id="readability-page-1",W.className="page";R.firstChild;)W.appendChild(R.firstChild);R.appendChild(W)}this._debug&&this.log("Article content after paging: "+R.innerHTML);var F=!0,X=this._getInnerText(R,!0).length;if(X("string"==typeof e||e instanceof String)&&!!(e=e.trim()).length&&e.length<100,_unescapeHtmlEntities(e){if(!e)return e;var t=this.HTML_ESCAPE_MAP;return e.replace(/&(quot|amp|apos|lt|gt);/g,function(e,i){return t[i]}).replace(/&#(?:x([0-9a-f]+)|([0-9]+));/gi,function(e,t,i){var a=parseInt(t||i,t?16:10);return(0==a||a>1114111||a>=55296&&a<=57343)&&(a=65533),String.fromCodePoint(a)})},_getJSONLD(e){var t,i=this._getAllNodesWithTag(e,["script"]);return this._forEachNode(i,function(e){if(!t&&"application/ld+json"===e.getAttribute("type"))try{var i=e.textContent.replace(/^\s*\s*$/g,""),a=JSON.parse(i);if(!a["@context"]||!a["@context"].match(/^https?\:\/\/schema\.org\/?$/)||(!a["@type"]&&Array.isArray(a["@graph"])&&(a=a["@graph"].find(function(e){return(e["@type"]||"").match(this.REGEXPS.jsonLdArticleTypes)})),!a||!a["@type"]||!a["@type"].match(this.REGEXPS.jsonLdArticleTypes)))return;if(t={},"string"==typeof a.name&&"string"==typeof a.headline&&a.name!==a.headline){var s=this._getArticleTitle(),r=this._textSimilarity(a.name,s)>.75;this._textSimilarity(a.headline,s)>.75&&!r?t.title=a.headline:t.title=a.name}else"string"==typeof a.name?t.title=a.name.trim():"string"==typeof a.headline&&(t.title=a.headline.trim());a.author&&("string"==typeof a.author.name?t.byline=a.author.name.trim():Array.isArray(a.author)&&a.author[0]&&"string"==typeof a.author[0].name&&(t.byline=a.author.filter(function(e){return e&&"string"==typeof e.name}).map(function(e){return e.name.trim()}).join(", "))),"string"==typeof a.description&&(t.excerpt=a.description.trim()),a.publisher&&"string"==typeof a.publisher.name&&(t.siteName=a.publisher.name.trim()),"string"==typeof a.datePublished&&(t.datePublished=a.datePublished.trim())}catch(n){this.log(n.message)}}),t||{}},_getArticleMetadata(e){var t={},i={},a=this._doc.getElementsByTagName("meta"),s=/\s*(article|dc|dcterm|og|twitter)\s*:\s*(author|creator|description|published_time|title|site_name)\s*/gi,r=/^\s*(?:(dc|dcterm|og|twitter|parsely|weibo:(article|webpage))\s*[-\.:]\s*)?(author|creator|pub-date|description|title|site_name)\s*$/i;return this._forEachNode(a,function(e){var t=e.getAttribute("name"),a=e.getAttribute("property"),n=e.getAttribute("content");if(n){var l=null,o=null;a&&(l=a.match(s))&&(i[o=l[0].toLowerCase().replace(/\s/g,"")]=n.trim()),!l&&t&&r.test(t)&&(o=t,n&&(i[o=o.toLowerCase().replace(/\s/g,"").replace(/\./g,":")]=n.trim()))}}),t.title=e.title||i["dc:title"]||i["dcterm:title"]||i["og:title"]||i["weibo:article:title"]||i["weibo:webpage:title"]||i.title||i["twitter:title"]||i["parsely-title"],t.title||(t.title=this._getArticleTitle()),t.byline=e.byline||i["dc:creator"]||i["dcterm:creator"]||i.author||i["parsely-author"],t.excerpt=e.excerpt||i["dc:description"]||i["dcterm:description"]||i["og:description"]||i["weibo:article:description"]||i["weibo:webpage:description"]||i.description||i["twitter:description"],t.siteName=e.siteName||i["og:site_name"],t.publishedTime=e.datePublished||i["article:published_time"]||i["parsely-pub-date"]||null,t.title=this._unescapeHtmlEntities(t.title),t.byline=this._unescapeHtmlEntities(t.byline),t.excerpt=this._unescapeHtmlEntities(t.excerpt),t.siteName=this._unescapeHtmlEntities(t.siteName),t.publishedTime=this._unescapeHtmlEntities(t.publishedTime),t},_isSingleImage(e){for(;e;){if("IMG"===e.tagName)return!0;if(1!==e.children.length||""!==e.textContent.trim())break;e=e.children[0]}return!1},_unwrapNoscriptImages(e){var t=Array.from(e.getElementsByTagName("img"));this._forEachNode(t,function(e){for(var t=0;t0)||!(s>i));){if(e.parentNode.tagName===t&&(!a||a(e.parentNode)))return!0;e=e.parentNode,s++}return!1},_getRowAndColumnCount(e){for(var t=0,i=0,a=e.getElementsByTagName("tr"),s=0;s=10||r.columns>4){a._readabilityDataTable=!0;continue}a._readabilityDataTable=r.rows*r.columns>10}},_fixLazyImages(e){this._forEachNode(this._getAllNodesWithTag(e,["img","picture","figure"]),function(e){if(e.src&&this.REGEXPS.b64DataUrl.test(e.src)){if("image/svg+xml"===this.REGEXPS.b64DataUrl.exec(e.src)[1])return;for(var t=!1,i=0;ia+=this._getInnerText(e,!0).length),a/i},_cleanConditionally(e,t){this._flagIsActive(this.FLAG_CLEAN_CONDITIONALLY)&&this._removeNodes(this._getAllNodesWithTag(e,[t]),function(e){if("a"===t)return"button"===e.getAttribute("role");var i=function(e){return e._readabilityDataTable},a="ul"===t||"ol"===t;if(!a){var s=0,r=this._getAllNodesWithTag(e,["ul","ol"]);this._forEachNode(r,e=>s+=this._getInnerText(e).length),a=s/this._getInnerText(e).length>.9}if("table"===t&&i(e)||this._hasAncestorTag(e,"table",-1,i)||this._hasAncestorTag(e,"code")||[...e.getElementsByTagName("table")].some(e=>e._readabilityDataTable))return!1;var n=this._getClassWeight(e);if(this.log("Cleaning Conditionally",e),n+0<0)return this.log("weight is negative",n,0,e),!0;if(10>this._getCharCount(e,",")){for(var l=e.getElementsByTagName("p").length,o=e.getElementsByTagName("img").length,h=e.getElementsByTagName("li").length-100,d=e.getElementsByTagName("input").length,c=this._getTextDensity(e,["h1","h2","h3","h4","h5","h6",]),g=0,m=this._getAllNodesWithTag(e,["object","embed","iframe",]),u=0;u{let e=[];return!v&&o>1&&l/o<.5&&e.push(`Bad p to img ratio (img=${o}, p=${l})`),!a&&h>l&&e.push(`Too many li's outside of a list. (li=${h} > p=${l})`),d>Math.floor(l/3)&&e.push(`Too many inputs per p. (input=${d}, p=${l})`),!a&&!v&&c<.9&&N<25&&(0===o||o>2)&&E>0&&e.push(`Suspiciously short. (headingDensity=${c}, img=${o}, linkDensity=${E})`),!a&&n<25&&E>.2+this._linkDensityModifier&&e.push(`Low weight and a little linky. (linkDensity=${E})`),n>=25&&E>.5+this._linkDensityModifier&&e.push(`High weight and mostly links. (linkDensity=${E})`),(1===g&&N<75||g>1)&&e.push(`Suspicious embed. (embedCount=${g}, contentLength=${N})`),0===o&&0===T&&e.push(`No useful content. (img=${o}, textDensity=${T})`),!!e.length&&(this.log("Checks failed",e),!0)})();if(a&&y){for(var A=0;A1)return y;if(o==e.getElementsByTagName("li").length)return!1}return y}return!1})},_cleanMatchedNodes(e,t){for(var i=this._getNextNode(e,!0),a=this._getNextNode(e);a&&a!=i;)a=t.call(this,a,a.className+" "+a.id)?this._removeAndGetNext(a):this._getNextNode(a)},_cleanHeaders(e){let t=this._getAllNodesWithTag(e,["h1","h2"]);this._removeNodes(t,function(e){let t=0>this._getClassWeight(e);return t&&this.log("Removing header with low class weight:",e),t})},_headerDuplicatesTitle(e){if("H1"!=e.tagName&&"H2"!=e.tagName)return!1;var t=this._getInnerText(e,!1);return this.log("Evaluating similarity of header:",t,this._articleTitle),this._textSimilarity(this._articleTitle,t)>.75},_flagIsActive(e){return(this._flags&e)>0},_removeFlag(e){this._flags=this._flags&~e},_isProbablyVisible:e=>(!e.style||"none"!=e.style.display)&&(!e.style||"hidden"!=e.style.visibility)&&!e.hasAttribute("hidden")&&(!e.hasAttribute("aria-hidden")||"true"!=e.getAttribute("aria-hidden")||e.className&&e.className.includes&&e.className.includes("fallback-image")),parse(){if(this._maxElemsToParse>0){var e=this._doc.getElementsByTagName("*").length;if(e>this._maxElemsToParse)throw Error("Aborting parsing document; "+e+" elements found")}this._unwrapNoscriptImages(this._doc);var t=this._disableJSONLD?{}:this._getJSONLD(this._doc);this._removeScripts(this._doc),this._prepDocument();var i=this._getArticleMetadata(t);this._metadata=i,this._articleTitle=i.title;var a=this._grabArticle();if(!a)return null;if(this.log("Grabbed: "+a.innerHTML),this._postProcessContent(a),!i.excerpt){var s=a.getElementsByTagName("p");s.length&&(i.excerpt=s[0].textContent.trim())}var r=a.textContent;return{title:this._articleTitle,byline:i.byline||this._articleByline,dir:this._articleDir,lang:this._articleLang,content:this._serializer(a),textContent:r,length:r.length,excerpt:i.excerpt,siteName:i.siteName||this._articleSiteName,publishedTime:i.publishedTime}}},"object"==typeof module&&(module.exports=Readability); + +(async function () { + try { + const getCharset = document => { + let meta = document.querySelector('meta[charset]') + if (meta) return meta.getAttribute('charset') || 'utf-8' + meta = document.querySelector('meta[http-equiv="Content-Type"]') + if (!meta) return 'utf-8' + const props = Object.fromEntries((meta.getAttribute('content') || '').split(/; */g).map(s => { + const index = s.indexOf('=') + if (index < 0) return [s, true] + return [s.substring(0, index), s.substring(index + 1)] + })) + return props.charset || 'utf-8' + } + let dirty_html = await (await fetch('/index.html')).text() + let html = DOMPurify.sanitize(dirty_html, { + WHOLE_DOCUMENT: true, + ADD_TAGS: ['iframe', 'meta'], + ADD_ATTR: ['http-equiv', 'content'] + }) + let document = new DOMParser().parseFromString(html, 'text/html') + const charset = getCharset(document) + if (['utf-8', 'utf8'].indexOf((charset || '').toLowerCase()) < 0) { + dirty_html = new TextDecoder(charset).decode(await (await fetch('/index.html')).arrayBuffer()) + html = DOMPurify.sanitize(dirty_html, { + WHOLE_DOCUMENT: true, + ADD_TAGS: ['iframe', 'meta'], + ADD_ATTR: ['http-equiv', 'content'] + }) + document = new DOMParser().parseFromString(html, 'text/html') + } + + if (!isProbablyReaderable(document)) { + console.error('isProbablyReaderable = false') + window.Instant.done('null') + return + } + + const readability = new Readability(document) + const result = readability.parse() + const doc = new DOMParser().parseFromString(result.content, 'text/html').body + + const parse = e => [...(e.childNodes || [])].map(node => { + if (node.nodeType === Node.COMMENT_NODE) return [] + if (!node.tagName || node.nodeType === Node.TEXT_NODE) { + return node.textContent.trim() ? [ node.textContent ] : [] + } + const tag = node.tagName.toLowerCase() + const content = parse(node) + const attr = [...(node.attributes || [])] + .map(a => [a.name, a.textContent]) + .filter(([k, v]) => !!k && !!v) + const style = getComputedStyle(node) + if (+style['font-weight'] >= 600) attr.push(['bold', 1]) + if (+style['font-style'] === 'italic') attr.push(['italic', 1]) + if (style['text-align'] === 'center') attr.push(['xcenter', 1]) + if (style['vertical-align'] === 'middle') attr.push(['ycenter', 1]) + const attrobj = Object.fromEntries(attr) + if (tag === 'img') { + if (!attrobj['width']) attrobj['width'] = ''+node.clientWidth + if (!attrobj['height']) attrobj['height'] = ''+node.clientHeight + } + return [ { tag, content, ...attrobj } ] + }).flat(); + + if ($DEBUG$) { + console.log({ + ...result, + html, + content: parse(doc) + }) + } + + window.Instant.done(JSON.stringify({ + ...result, + content: parse(doc) + })) + } catch (e) { + console.error(e) + window.Instant.done('null') + } +})(); \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/instant_lanczos_frag.glsl b/TMessagesProj/src/main/res/raw/instant_lanczos_frag.glsl deleted file mode 100644 index a16f788fca..0000000000 --- a/TMessagesProj/src/main/res/raw/instant_lanczos_frag.glsl +++ /dev/null @@ -1,31 +0,0 @@ -precision lowp float; - -uniform sampler2D sTexture; - -varying vec2 centerTextureCoordinate; -varying vec2 oneStepLeftTextureCoordinate; -varying vec2 twoStepsLeftTextureCoordinate; -varying vec2 threeStepsLeftTextureCoordinate; -varying vec2 fourStepsLeftTextureCoordinate; -varying vec2 oneStepRightTextureCoordinate; -varying vec2 twoStepsRightTextureCoordinate; -varying vec2 threeStepsRightTextureCoordinate; -varying vec2 fourStepsRightTextureCoordinate; - -void main() { - lowp vec4 fragmentColor = texture2D(sTexture, centerTextureCoordinate) * 0.38026; - - fragmentColor += texture2D(sTexture, oneStepLeftTextureCoordinate) * 0.27667; - fragmentColor += texture2D(sTexture, oneStepRightTextureCoordinate) * 0.27667; - - fragmentColor += texture2D(sTexture, twoStepsLeftTextureCoordinate) * 0.08074; - fragmentColor += texture2D(sTexture, twoStepsRightTextureCoordinate) * 0.08074; - - fragmentColor += texture2D(sTexture, threeStepsLeftTextureCoordinate) * -0.02612; - fragmentColor += texture2D(sTexture, threeStepsRightTextureCoordinate) * -0.02612; - - fragmentColor += texture2D(sTexture, fourStepsLeftTextureCoordinate) * -0.02143; - fragmentColor += texture2D(sTexture, fourStepsRightTextureCoordinate) * -0.02143; - - gl_FragColor = fragmentColor; -} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/mapstyle_dark.json b/TMessagesProj/src/main/res/raw/mapstyle_dark.json deleted file mode 100644 index 084a0fb5d6..0000000000 --- a/TMessagesProj/src/main/res/raw/mapstyle_dark.json +++ /dev/null @@ -1,186 +0,0 @@ -[ - { - "elementType": "geometry", - "stylers": [ - { - "color": "#212121" - } - ] - }, - { - "elementType": "labels.icon", - "stylers": [ - { - "visibility": "off" - } - ] - }, - { - "elementType": "labels.text.fill", - "stylers": [ - { - "color": "#757575" - } - ] - }, - { - "elementType": "labels.text.stroke", - "stylers": [ - { - "color": "#212121" - } - ] - }, - { - "featureType": "administrative", - "elementType": "geometry", - "stylers": [ - { - "color": "#757575" - } - ] - }, - { - "featureType": "administrative.country", - "elementType": "labels.text.fill", - "stylers": [ - { - "color": "#9e9e9e" - } - ] - }, - { - "featureType": "administrative.land_parcel", - "stylers": [ - { - "visibility": "off" - } - ] - }, - { - "featureType": "administrative.locality", - "elementType": "labels.text.fill", - "stylers": [ - { - "color": "#bdbdbd" - } - ] - }, - { - "featureType": "poi", - "elementType": "labels.text.fill", - "stylers": [ - { - "color": "#757575" - } - ] - }, - { - "featureType": "poi.park", - "elementType": "geometry", - "stylers": [ - { - "color": "#181818" - } - ] - }, - { - "featureType": "poi.park", - "elementType": "labels.text.fill", - "stylers": [ - { - "color": "#616161" - } - ] - }, - { - "featureType": "poi.park", - "elementType": "labels.text.stroke", - "stylers": [ - { - "color": "#1b1b1b" - } - ] - }, - { - "featureType": "road", - "elementType": "geometry.fill", - "stylers": [ - { - "color": "#2c2c2c" - } - ] - }, - { - "featureType": "road", - "elementType": "labels.text.fill", - "stylers": [ - { - "color": "#8a8a8a" - } - ] - }, - { - "featureType": "road.arterial", - "elementType": "geometry", - "stylers": [ - { - "color": "#373737" - } - ] - }, - { - "featureType": "road.highway", - "elementType": "geometry", - "stylers": [ - { - "color": "#3c3c3c" - } - ] - }, - { - "featureType": "road.highway.controlled_access", - "elementType": "geometry", - "stylers": [ - { - "color": "#4e4e4e" - } - ] - }, - { - "featureType": "road.local", - "elementType": "labels.text.fill", - "stylers": [ - { - "color": "#616161" - } - ] - }, - { - "featureType": "transit", - "elementType": "labels.text.fill", - "stylers": [ - { - "color": "#757575" - } - ] - }, - { - "featureType": "water", - "elementType": "geometry", - "stylers": [ - { - "color": "#000000" - } - ] - }, - { - "featureType": "water", - "elementType": "labels.text.fill", - "stylers": [ - { - "color": "#3d3d3d" - } - ] - } -] \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/metadatascript.js b/TMessagesProj/src/main/res/raw/metadatascript.js deleted file mode 100644 index 43ec9207d4..0000000000 --- a/TMessagesProj/src/main/res/raw/metadatascript.js +++ /dev/null @@ -1,11 +0,0 @@ -Object.fromEntries( - [...document.querySelectorAll('meta')] - .map(a => [ - a.getAttribute('property') || a.getAttribute('name') || a.getAttribute('http-equiv'), - a.content - ]) - .concat([ - ['image', (document.querySelector('article[data-testid=tweet]:first-child div[data-testid=tweetPhoto] img') || {src:null}).src] - ]) - .filter(([k, v]) => k && v) -) \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/msg_emoji_activities b/TMessagesProj/src/main/res/raw/msg_emoji_activities.json similarity index 100% rename from TMessagesProj/src/main/res/raw/msg_emoji_activities rename to TMessagesProj/src/main/res/raw/msg_emoji_activities.json diff --git a/TMessagesProj/src/main/res/raw/msg_emoji_cat b/TMessagesProj/src/main/res/raw/msg_emoji_cat.json similarity index 100% rename from TMessagesProj/src/main/res/raw/msg_emoji_cat rename to TMessagesProj/src/main/res/raw/msg_emoji_cat.json diff --git a/TMessagesProj/src/main/res/raw/msg_emoji_flags b/TMessagesProj/src/main/res/raw/msg_emoji_flags.json similarity index 100% rename from TMessagesProj/src/main/res/raw/msg_emoji_flags rename to TMessagesProj/src/main/res/raw/msg_emoji_flags.json diff --git a/TMessagesProj/src/main/res/raw/msg_emoji_food b/TMessagesProj/src/main/res/raw/msg_emoji_food.json similarity index 100% rename from TMessagesProj/src/main/res/raw/msg_emoji_food rename to TMessagesProj/src/main/res/raw/msg_emoji_food.json diff --git a/TMessagesProj/src/main/res/raw/msg_emoji_objects b/TMessagesProj/src/main/res/raw/msg_emoji_objects.json similarity index 100% rename from TMessagesProj/src/main/res/raw/msg_emoji_objects rename to TMessagesProj/src/main/res/raw/msg_emoji_objects.json diff --git a/TMessagesProj/src/main/res/raw/msg_emoji_other b/TMessagesProj/src/main/res/raw/msg_emoji_other.json similarity index 100% rename from TMessagesProj/src/main/res/raw/msg_emoji_other rename to TMessagesProj/src/main/res/raw/msg_emoji_other.json diff --git a/TMessagesProj/src/main/res/raw/msg_emoji_smiles b/TMessagesProj/src/main/res/raw/msg_emoji_smiles.json similarity index 100% rename from TMessagesProj/src/main/res/raw/msg_emoji_smiles rename to TMessagesProj/src/main/res/raw/msg_emoji_smiles.json diff --git a/TMessagesProj/src/main/res/raw/msg_emoji_travel b/TMessagesProj/src/main/res/raw/msg_emoji_travel.json similarity index 100% rename from TMessagesProj/src/main/res/raw/msg_emoji_travel rename to TMessagesProj/src/main/res/raw/msg_emoji_travel.json diff --git a/TMessagesProj/src/main/res/raw/open_collapsed.js b/TMessagesProj/src/main/res/raw/open_collapsed.js new file mode 100644 index 0000000000..00e776d3da --- /dev/null +++ b/TMessagesProj/src/main/res/raw/open_collapsed.js @@ -0,0 +1,9 @@ +(function (open) { + if (open) { + window.__tg__openedSections = [...document.querySelectorAll('section[hidden=until-found]')]; + window.__tg__openedSections.map(section => section.hidden = ""); + } else if (window.__tg__openedSections) { + window.__tg__openedSections.map(section => section.hidden = "until-found"); + delete window.__tg__openedSections; + } +})($OPEN$); \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/photo_suggest_icon.tgs b/TMessagesProj/src/main/res/raw/photo_suggest_icon.json similarity index 100% rename from TMessagesProj/src/main/res/raw/photo_suggest_icon.tgs rename to TMessagesProj/src/main/res/raw/photo_suggest_icon.json diff --git a/TMessagesProj/src/main/res/raw/pip_video_request.svg b/TMessagesProj/src/main/res/raw/pip_video_request.svg index 6085309329..ba8f85fbf0 100644 --- a/TMessagesProj/src/main/res/raw/pip_video_request.svg +++ b/TMessagesProj/src/main/res/raw/pip_video_request.svg @@ -1,3 +1 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/pip_voice_request.svg b/TMessagesProj/src/main/res/raw/pip_voice_request.svg index 59b1063fbb..0bbcb41880 100644 --- a/TMessagesProj/src/main/res/raw/pip_voice_request.svg +++ b/TMessagesProj/src/main/res/raw/pip_voice_request.svg @@ -1,3 +1 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_adsbubble.svg b/TMessagesProj/src/main/res/raw/premium_object_adsbubble.svg index 6f485a51c6..757e6e24c9 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_adsbubble.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_adsbubble.svg @@ -1,7 +1 @@ - - - premium_object_adsbubble - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_bubble.svg b/TMessagesProj/src/main/res/raw/premium_object_bubble.svg index 54e9706c3b..c16b6f9ad5 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_bubble.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_bubble.svg @@ -1,7 +1 @@ - - - premium_object_bubble - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_check.svg b/TMessagesProj/src/main/res/raw/premium_object_check.svg index 3b5b9c95cb..ca3605faa2 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_check.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_check.svg @@ -1,7 +1 @@ - - - Filled / premium_object_check - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_fire.svg b/TMessagesProj/src/main/res/raw/premium_object_fire.svg index bd96bcc8fb..e9dfc0949d 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_fire.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_fire.svg @@ -1,7 +1 @@ - - - premium_object_fire - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_folder.svg b/TMessagesProj/src/main/res/raw/premium_object_folder.svg index 7510a7b1ac..c8f6cff694 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_folder.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_folder.svg @@ -1,7 +1 @@ - - - premium_object_folder - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_like.svg b/TMessagesProj/src/main/res/raw/premium_object_like.svg index 3360558dc4..89a4957937 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_like.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_like.svg @@ -1,7 +1 @@ - - - premium_object_like - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_noads.svg b/TMessagesProj/src/main/res/raw/premium_object_noads.svg index 4b150334d5..3800563d27 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_noads.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_noads.svg @@ -1,7 +1 @@ - - - premium_object_noads - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_settings.svg b/TMessagesProj/src/main/res/raw/premium_object_settings.svg index 80d1f36114..38d7940870 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_settings.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_settings.svg @@ -1,7 +1 @@ - - - premium_object_settings - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_smile1.svg b/TMessagesProj/src/main/res/raw/premium_object_smile1.svg index e5bddaf50b..759600fcca 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_smile1.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_smile1.svg @@ -1,7 +1 @@ - - - premium_object_smile1 - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_smile2.svg b/TMessagesProj/src/main/res/raw/premium_object_smile2.svg index e34abcc20c..467d5e5c50 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_smile2.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_smile2.svg @@ -1,7 +1 @@ - - - premium_object_smile2 - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_star.svg b/TMessagesProj/src/main/res/raw/premium_object_star.svg index 66af2c02d3..d643ed7ee9 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_star.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_star.svg @@ -1,7 +1 @@ - - - Filled / filled_stories_closefriends - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_star2.svg b/TMessagesProj/src/main/res/raw/premium_object_star2.svg index 2899327b8e..41525ae20e 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_star2.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_star2.svg @@ -1,7 +1 @@ - - - premium_object_star2 - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_tag.svg b/TMessagesProj/src/main/res/raw/premium_object_tag.svg index fbf6bbf324..4791085cc3 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_tag.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_tag.svg @@ -1,7 +1 @@ - - - Filled / premium_object_tag - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_user.svg b/TMessagesProj/src/main/res/raw/premium_object_user.svg index 9ef1bc349c..35815b81f9 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_user.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_user.svg @@ -1,7 +1 @@ - - - premium_object_user - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_video.svg b/TMessagesProj/src/main/res/raw/premium_object_video.svg index a542c25392..02788670f8 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_video.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_video.svg @@ -1,7 +1 @@ - - - premium_object_video - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/premium_object_video2.svg b/TMessagesProj/src/main/res/raw/premium_object_video2.svg index 7f314d28e0..16366077c7 100644 --- a/TMessagesProj/src/main/res/raw/premium_object_video2.svg +++ b/TMessagesProj/src/main/res/raw/premium_object_video2.svg @@ -1,7 +1 @@ - - - premium_object_video2 - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/qr_code_logo.tgs b/TMessagesProj/src/main/res/raw/qr_code_logo.json similarity index 100% rename from TMessagesProj/src/main/res/raw/qr_code_logo.tgs rename to TMessagesProj/src/main/res/raw/qr_code_logo.json diff --git a/TMessagesProj/src/main/res/raw/qr_code_logo_2.tgs b/TMessagesProj/src/main/res/raw/qr_code_logo_2.json similarity index 100% rename from TMessagesProj/src/main/res/raw/qr_code_logo_2.tgs rename to TMessagesProj/src/main/res/raw/qr_code_logo_2.json diff --git a/TMessagesProj/src/main/res/raw/qr_dog.svg b/TMessagesProj/src/main/res/raw/qr_dog.svg index 13069c57ed..1c57bfc362 100644 --- a/TMessagesProj/src/main/res/raw/qr_dog.svg +++ b/TMessagesProj/src/main/res/raw/qr_dog.svg @@ -1,6 +1 @@ - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/qr_logo.svg b/TMessagesProj/src/main/res/raw/qr_logo.svg index 621cb811f1..838dc03d11 100644 --- a/TMessagesProj/src/main/res/raw/qr_logo.svg +++ b/TMessagesProj/src/main/res/raw/qr_logo.svg @@ -1,8 +1 @@ - - - Artboard - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/record_video_l.svg b/TMessagesProj/src/main/res/raw/record_video_l.svg index 72892bf574..b587d9ca25 100644 --- a/TMessagesProj/src/main/res/raw/record_video_l.svg +++ b/TMessagesProj/src/main/res/raw/record_video_l.svg @@ -1,42 +1,38 @@ - - - record_video_l - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/record_video_p.svg b/TMessagesProj/src/main/res/raw/record_video_p.svg index 85ea859388..26c7569186 100644 --- a/TMessagesProj/src/main/res/raw/record_video_p.svg +++ b/TMessagesProj/src/main/res/raw/record_video_p.svg @@ -1,42 +1,38 @@ - - - record_video_p - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/report_police.tgs b/TMessagesProj/src/main/res/raw/report_police.json similarity index 100% rename from TMessagesProj/src/main/res/raw/report_police.tgs rename to TMessagesProj/src/main/res/raw/report_police.json diff --git a/TMessagesProj/src/main/res/raw/star_loader.svg b/TMessagesProj/src/main/res/raw/star_loader.svg index 398f8ede78..59f3cada81 100644 --- a/TMessagesProj/src/main/res/raw/star_loader.svg +++ b/TMessagesProj/src/main/res/raw/star_loader.svg @@ -1,6 +1 @@ - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/start_texture.svg b/TMessagesProj/src/main/res/raw/start_texture.svg index 321c640839..6d09446fb5 100644 --- a/TMessagesProj/src/main/res/raw/start_texture.svg +++ b/TMessagesProj/src/main/res/raw/start_texture.svg @@ -1,9 +1 @@ - - - - Artboard - Created with Sketch. - - - - \ No newline at end of file + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/statistic_preload.tgs b/TMessagesProj/src/main/res/raw/statistic_preload.json similarity index 100% rename from TMessagesProj/src/main/res/raw/statistic_preload.tgs rename to TMessagesProj/src/main/res/raw/statistic_preload.json diff --git a/TMessagesProj/src/main/res/raw/sun.tgs b/TMessagesProj/src/main/res/raw/sun.json similarity index 100% rename from TMessagesProj/src/main/res/raw/sun.tgs rename to TMessagesProj/src/main/res/raw/sun.json diff --git a/TMessagesProj/src/main/res/raw/sun_outline.tgs b/TMessagesProj/src/main/res/raw/sun_outline.json similarity index 100% rename from TMessagesProj/src/main/res/raw/sun_outline.tgs rename to TMessagesProj/src/main/res/raw/sun_outline.json diff --git a/TMessagesProj/src/main/res/raw/topic_bubble.svg b/TMessagesProj/src/main/res/raw/topic_bubble.svg index 613a0412bc..d7cdd35a75 100644 --- a/TMessagesProj/src/main/res/raw/topic_bubble.svg +++ b/TMessagesProj/src/main/res/raw/topic_bubble.svg @@ -1,7 +1,4 @@ - - - - - - + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/tsv_monkey_close.tgs b/TMessagesProj/src/main/res/raw/tsv_monkey_close.json similarity index 100% rename from TMessagesProj/src/main/res/raw/tsv_monkey_close.tgs rename to TMessagesProj/src/main/res/raw/tsv_monkey_close.json diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_email_sent.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_email_sent.json similarity index 100% rename from TMessagesProj/src/main/res/raw/tsv_setup_email_sent.tgs rename to TMessagesProj/src/main/res/raw/tsv_setup_email_sent.json diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_hint.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_hint.json similarity index 100% rename from TMessagesProj/src/main/res/raw/tsv_setup_hint.tgs rename to TMessagesProj/src/main/res/raw/tsv_setup_hint.json diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_intro.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_intro.json similarity index 100% rename from TMessagesProj/src/main/res/raw/tsv_setup_intro.tgs rename to TMessagesProj/src/main/res/raw/tsv_setup_intro.json diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_mail.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_mail.json similarity index 100% rename from TMessagesProj/src/main/res/raw/tsv_setup_mail.tgs rename to TMessagesProj/src/main/res/raw/tsv_setup_mail.json diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_monkey_close_and_peek.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_close_and_peek.json similarity index 100% rename from TMessagesProj/src/main/res/raw/tsv_setup_monkey_close_and_peek.tgs rename to TMessagesProj/src/main/res/raw/tsv_setup_monkey_close_and_peek.json diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_monkey_close_and_peek_to_idle.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_close_and_peek_to_idle.json similarity index 100% rename from TMessagesProj/src/main/res/raw/tsv_setup_monkey_close_and_peek_to_idle.tgs rename to TMessagesProj/src/main/res/raw/tsv_setup_monkey_close_and_peek_to_idle.json diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_monkey_idle1.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_idle1.json similarity index 100% rename from TMessagesProj/src/main/res/raw/tsv_setup_monkey_idle1.tgs rename to TMessagesProj/src/main/res/raw/tsv_setup_monkey_idle1.json diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_monkey_idle2.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_idle2.json similarity index 100% rename from TMessagesProj/src/main/res/raw/tsv_setup_monkey_idle2.tgs rename to TMessagesProj/src/main/res/raw/tsv_setup_monkey_idle2.json diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_monkey_peek.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_peek.json similarity index 100% rename from TMessagesProj/src/main/res/raw/tsv_setup_monkey_peek.tgs rename to TMessagesProj/src/main/res/raw/tsv_setup_monkey_peek.json diff --git a/TMessagesProj/src/main/res/raw/tsv_setup_monkey_tracking.tgs b/TMessagesProj/src/main/res/raw/tsv_setup_monkey_tracking.json similarity index 100% rename from TMessagesProj/src/main/res/raw/tsv_setup_monkey_tracking.tgs rename to TMessagesProj/src/main/res/raw/tsv_setup_monkey_tracking.json diff --git a/TMessagesProj/src/main/res/raw/utyan_call.tgs b/TMessagesProj/src/main/res/raw/utyan_call.json similarity index 100% rename from TMessagesProj/src/main/res/raw/utyan_call.tgs rename to TMessagesProj/src/main/res/raw/utyan_call.json diff --git a/TMessagesProj/src/main/res/raw/utyan_change_number.tgs b/TMessagesProj/src/main/res/raw/utyan_change_number.json similarity index 100% rename from TMessagesProj/src/main/res/raw/utyan_change_number.tgs rename to TMessagesProj/src/main/res/raw/utyan_change_number.json diff --git a/TMessagesProj/src/main/res/raw/utyan_gigagroup.tgs b/TMessagesProj/src/main/res/raw/utyan_gigagroup.json similarity index 100% rename from TMessagesProj/src/main/res/raw/utyan_gigagroup.tgs rename to TMessagesProj/src/main/res/raw/utyan_gigagroup.json diff --git a/TMessagesProj/src/main/res/raw/utyan_newborn.tgs b/TMessagesProj/src/main/res/raw/utyan_newborn.json similarity index 100% rename from TMessagesProj/src/main/res/raw/utyan_newborn.tgs rename to TMessagesProj/src/main/res/raw/utyan_newborn.json diff --git a/TMessagesProj/src/main/res/raw/utyan_passcode.tgs b/TMessagesProj/src/main/res/raw/utyan_passcode.json similarity index 100% rename from TMessagesProj/src/main/res/raw/utyan_passcode.tgs rename to TMessagesProj/src/main/res/raw/utyan_passcode.json diff --git a/TMessagesProj/src/main/res/raw/utyan_private.tgs b/TMessagesProj/src/main/res/raw/utyan_private.json similarity index 100% rename from TMessagesProj/src/main/res/raw/utyan_private.tgs rename to TMessagesProj/src/main/res/raw/utyan_private.json diff --git a/TMessagesProj/src/main/res/raw/utyan_saved_messages.tgs b/TMessagesProj/src/main/res/raw/utyan_saved_messages.json similarity index 100% rename from TMessagesProj/src/main/res/raw/utyan_saved_messages.tgs rename to TMessagesProj/src/main/res/raw/utyan_saved_messages.json diff --git a/TMessagesProj/src/main/res/raw/utyan_schedule.tgs b/TMessagesProj/src/main/res/raw/utyan_schedule.json similarity index 100% rename from TMessagesProj/src/main/res/raw/utyan_schedule.tgs rename to TMessagesProj/src/main/res/raw/utyan_schedule.json diff --git a/TMessagesProj/src/main/res/raw/video_start.json b/TMessagesProj/src/main/res/raw/video_start.json deleted file mode 100644 index f59fd293a6..0000000000 --- a/TMessagesProj/src/main/res/raw/video_start.json +++ /dev/null @@ -1 +0,0 @@ -{"v":"5.10.1","fr":60,"ip":0,"op":60,"w":156,"h":156,"nm":"video_start","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Top 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.35]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.855]},"o":{"x":[0.167],"y":[0.096]},"t":1,"s":[0.042]},{"i":{"x":[0.833],"y":[0.721]},"o":{"x":[0.167],"y":[0.195]},"t":2,"s":[0.328]},{"i":{"x":[0.833],"y":[0.829]},"o":{"x":[0.167],"y":[0.119]},"t":3,"s":[0.54]},{"i":{"x":[0.833],"y":[0.839]},"o":{"x":[0.167],"y":[0.162]},"t":4,"s":[1.038]},{"i":{"x":[0.833],"y":[0.898]},"o":{"x":[0.167],"y":[0.172]},"t":5,"s":[1.564]},{"i":{"x":[0.833],"y":[1.207]},"o":{"x":[0.167],"y":[0.458]},"t":6,"s":[2.057]},{"i":{"x":[0.833],"y":[0.827]},"o":{"x":[0.167],"y":[0.059]},"t":7,"s":[2.167]},{"i":{"x":[0.833],"y":[0.697]},"o":{"x":[0.167],"y":[0.161]},"t":8,"s":[1.785]},{"i":{"x":[0.833],"y":[0.821]},"o":{"x":[0.167],"y":[0.115]},"t":9,"s":[1.374]},{"i":{"x":[0.833],"y":[0.875]},"o":{"x":[0.167],"y":[0.156]},"t":10,"s":[0.289]},{"i":{"x":[0.833],"y":[0.76]},"o":{"x":[0.167],"y":[0.249]},"t":11,"s":[-0.957]},{"i":{"x":[0.833],"y":[0.845]},"o":{"x":[0.167],"y":[0.128]},"t":12,"s":[-1.583]},{"i":{"x":[0.833],"y":[0.881]},"o":{"x":[0.167],"y":[0.181]},"t":13,"s":[-2.759]},{"i":{"x":[0.833],"y":[0.782]},"o":{"x":[0.167],"y":[0.281]},"t":14,"s":[-3.767]},{"i":{"x":[0.833],"y":[0.859]},"o":{"x":[0.167],"y":[0.135]},"t":15,"s":[-4.193]},{"i":{"x":[0.833],"y":[0.888]},"o":{"x":[0.167],"y":[0.205]},"t":16,"s":[-4.879]},{"i":{"x":[0.833],"y":[0.814]},"o":{"x":[0.167],"y":[0.325]},"t":17,"s":[-5.351]},{"i":{"x":[0.833],"y":[0.937]},"o":{"x":[0.167],"y":[0.151]},"t":18,"s":[-5.513]},{"i":{"x":[0.833],"y":[0.375]},"o":{"x":[0.167],"y":[-0.262]},"t":19,"s":[-5.713]},{"i":{"x":[0.833],"y":[0.626]},"o":{"x":[0.167],"y":[0.096]},"t":20,"s":[-5.665]},{"i":{"x":[0.833],"y":[0.806]},"o":{"x":[0.167],"y":[0.107]},"t":21,"s":[-5.352]},{"i":{"x":[0.833],"y":[0.872]},"o":{"x":[0.167],"y":[0.146]},"t":22,"s":[-4.261]},{"i":{"x":[0.833],"y":[0.753]},"o":{"x":[0.167],"y":[0.24]},"t":23,"s":[-2.819]},{"i":{"x":[0.833],"y":[0.842]},"o":{"x":[0.167],"y":[0.126]},"t":24,"s":[-2.05]},{"i":{"x":[0.833],"y":[0.88]},"o":{"x":[0.167],"y":[0.176]},"t":25,"s":[-0.539]},{"i":{"x":[0.833],"y":[0.778]},"o":{"x":[0.167],"y":[0.274]},"t":26,"s":[0.821]},{"i":{"x":[0.833],"y":[0.859]},"o":{"x":[0.167],"y":[0.133]},"t":27,"s":[1.416]},{"i":{"x":[0.833],"y":[0.898]},"o":{"x":[0.167],"y":[0.205]},"t":28,"s":[2.408]},{"i":{"x":[0.833],"y":[0.93]},"o":{"x":[0.167],"y":[0.46]},"t":29,"s":[3.089]},{"i":{"x":[0.833],"y":[-0.224]},"o":{"x":[0.167],"y":[-0.436]},"t":30,"s":[3.24]},{"i":{"x":[0.833],"y":[0.857]},"o":{"x":[0.167],"y":[0.089]},"t":31,"s":[3.216]},{"i":{"x":[0.833],"y":[0.724]},"o":{"x":[0.167],"y":[0.199]},"t":32,"s":[2.885]},{"i":{"x":[0.833],"y":[0.83]},"o":{"x":[0.167],"y":[0.119]},"t":33,"s":[2.647]},{"i":{"x":[0.833],"y":[0.877]},"o":{"x":[0.167],"y":[0.163]},"t":34,"s":[2.097]},{"i":{"x":[0.833],"y":[0.766]},"o":{"x":[0.167],"y":[0.257]},"t":35,"s":[1.524]},{"i":{"x":[0.833],"y":[0.848]},"o":{"x":[0.167],"y":[0.129]},"t":36,"s":[1.249]},{"i":{"x":[0.833],"y":[0.883]},"o":{"x":[0.167],"y":[0.185]},"t":37,"s":[0.751]},{"i":{"x":[0.833],"y":[0.788]},"o":{"x":[0.167],"y":[0.288]},"t":38,"s":[0.344]},{"i":{"x":[0.833],"y":[0.863]},"o":{"x":[0.167],"y":[0.137]},"t":39,"s":[0.178]},{"i":{"x":[0.833],"y":[0.89]},"o":{"x":[0.167],"y":[0.213]},"t":40,"s":[-0.079]},{"i":{"x":[0.833],"y":[0.83]},"o":{"x":[0.167],"y":[0.347]},"t":41,"s":[-0.243]},{"i":{"x":[0.833],"y":[0.914]},"o":{"x":[0.167],"y":[0.164]},"t":42,"s":[-0.295]},{"i":{"x":[0.833],"y":[1.491]},"o":{"x":[0.167],"y":[2.434]},"t":43,"s":[-0.349]},{"i":{"x":[0.833],"y":[0.632]},"o":{"x":[0.167],"y":[0.071]},"t":44,"s":[-0.351]},{"i":{"x":[0.833],"y":[0.808]},"o":{"x":[0.167],"y":[0.108]},"t":45,"s":[-0.338]},{"i":{"x":[0.833],"y":[0.872]},"o":{"x":[0.167],"y":[0.147]},"t":46,"s":[-0.293]},{"i":{"x":[0.833],"y":[0.753]},"o":{"x":[0.167],"y":[0.24]},"t":47,"s":[-0.234]},{"i":{"x":[0.833],"y":[0.842]},"o":{"x":[0.167],"y":[0.126]},"t":48,"s":[-0.203]},{"i":{"x":[0.833],"y":[0.88]},"o":{"x":[0.167],"y":[0.176]},"t":49,"s":[-0.142]},{"i":{"x":[0.833],"y":[0.778]},"o":{"x":[0.167],"y":[0.274]},"t":50,"s":[-0.087]},{"i":{"x":[0.833],"y":[0.856]},"o":{"x":[0.167],"y":[0.133]},"t":51,"s":[-0.063]},{"i":{"x":[0.833],"y":[0.886]},"o":{"x":[0.167],"y":[0.198]},"t":52,"s":[-0.023]},{"i":{"x":[0.833],"y":[0.804]},"o":{"x":[0.167],"y":[0.311]},"t":53,"s":[0.006]},{"i":{"x":[0.833],"y":[0.878]},"o":{"x":[0.167],"y":[0.145]},"t":54,"s":[0.017]},{"i":{"x":[0.833],"y":[0.904]},"o":{"x":[0.167],"y":[0.265]},"t":55,"s":[0.031]},{"i":{"x":[0.833],"y":[1.045]},"o":{"x":[0.167],"y":[0.647]},"t":56,"s":[0.038]},{"i":{"x":[0.833],"y":[0.658]},"o":{"x":[0.167],"y":[0.029]},"t":57,"s":[0.038]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.11]},"t":58,"s":[0.037]},{"t":59,"s":[0.032]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.713},"o":{"x":0.167,"y":0.167},"t":0,"s":[77.722,79.526,0],"to":[0,0.053,0],"ti":[0,-0.183,0]},{"i":{"x":0.833,"y":0.864},"o":{"x":0.167,"y":0.117},"t":1,"s":[77.722,79.844,0],"to":[0,0.183,0],"ti":[0,-0.211,0]},{"i":{"x":0.833,"y":0.736},"o":{"x":0.167,"y":0.216},"t":2,"s":[77.722,80.623,0],"to":[0,0.211,0],"ti":[0,-0.258,0]},{"i":{"x":0.833,"y":0.849},"o":{"x":0.167,"y":0.122},"t":3,"s":[77.722,81.112,0],"to":[0,0.258,0],"ti":[0,-0.32,0]},{"i":{"x":0.833,"y":0.881},"o":{"x":0.167,"y":0.186},"t":4,"s":[77.722,82.17,0],"to":[0,0.32,0],"ti":[0,-0.087,0]},{"i":{"x":0.833,"y":0.796},"o":{"x":0.167,"y":0.276},"t":5,"s":[77.722,83.03,0],"to":[0,0.087,0],"ti":[0,0.147,0]},{"i":{"x":0.833,"y":0.679},"o":{"x":0.167,"y":0.141},"t":6,"s":[77.722,82.69,0],"to":[0,-0.147,0],"ti":[0,0.348,0]},{"i":{"x":0.833,"y":0.868},"o":{"x":0.167,"y":0.112},"t":7,"s":[77.722,82.15,0],"to":[0,-0.348,0],"ti":[0,0.409,0]},{"i":{"x":0.833,"y":0.743},"o":{"x":0.167,"y":0.225},"t":8,"s":[77.722,80.604,0],"to":[0,-0.409,0],"ti":[0,0.468,0]},{"i":{"x":0.833,"y":0.837},"o":{"x":0.167,"y":0.123},"t":9,"s":[77.722,79.694,0],"to":[0,-0.468,0],"ti":[0,0.62,0]},{"i":{"x":0.833,"y":0.879},"o":{"x":0.167,"y":0.17},"t":10,"s":[77.722,77.793,0],"to":[0,-0.62,0],"ti":[0,0.442,0]},{"i":{"x":0.833,"y":0.772},"o":{"x":0.167,"y":0.266},"t":11,"s":[77.722,75.972,0],"to":[0,-0.442,0],"ti":[0,0.378,0]},{"i":{"x":0.833,"y":0.852},"o":{"x":0.167,"y":0.131},"t":12,"s":[77.722,75.142,0],"to":[0,-0.378,0],"ti":[0,0.425,0]},{"i":{"x":0.833,"y":0.884},"o":{"x":0.167,"y":0.191},"t":13,"s":[77.722,73.703,0],"to":[0,-0.425,0],"ti":[0,0.257,0]},{"i":{"x":0.833,"y":0.795},"o":{"x":0.167,"y":0.298},"t":14,"s":[77.722,72.593,0],"to":[0,-0.257,0],"ti":[0,0.176,0]},{"i":{"x":0.833,"y":0.87},"o":{"x":0.167,"y":0.14},"t":15,"s":[77.722,72.163,0],"to":[0,-0.176,0],"ti":[0,0.164,0]},{"i":{"x":0.833,"y":0.868},"o":{"x":0.167,"y":0.231},"t":16,"s":[77.722,71.535,0],"to":[0,-0.164,0],"ti":[0,0.042,0]},{"i":{"x":0.833,"y":0.396},"o":{"x":0.167,"y":0.227},"t":17,"s":[77.722,71.181,0],"to":[0,-0.042,0],"ti":[0,-0.232,0]},{"i":{"x":0.833,"y":0.774},"o":{"x":0.167,"y":0.097},"t":18,"s":[77.722,71.285,0],"to":[0,0.232,0],"ti":[0,-0.581,0]},{"i":{"x":0.833,"y":0.868},"o":{"x":0.167,"y":0.132},"t":19,"s":[77.722,72.57,0],"to":[0,0.581,0],"ti":[0,-0.579,0]},{"i":{"x":0.833,"y":0.744},"o":{"x":0.167,"y":0.227},"t":20,"s":[77.722,74.769,0],"to":[0,0.579,0],"ti":[0,-0.653,0]},{"i":{"x":0.833,"y":0.838},"o":{"x":0.167,"y":0.124},"t":21,"s":[77.722,76.045,0],"to":[0,0.653,0],"ti":[0,-0.859,0]},{"i":{"x":0.833,"y":0.879},"o":{"x":0.167,"y":0.171},"t":22,"s":[77.722,78.687,0],"to":[0,0.859,0],"ti":[0,-0.608,0]},{"i":{"x":0.833,"y":0.773},"o":{"x":0.167,"y":0.267},"t":23,"s":[77.722,81.197,0],"to":[0,0.608,0],"ti":[0,-0.517,0]},{"i":{"x":0.833,"y":0.853},"o":{"x":0.167,"y":0.132},"t":24,"s":[77.722,82.334,0],"to":[0,0.517,0],"ti":[0,-0.578,0]},{"i":{"x":0.833,"y":0.89},"o":{"x":0.167,"y":0.192},"t":25,"s":[77.722,84.298,0],"to":[0,0.578,0],"ti":[0,-0.332,0]},{"i":{"x":0.833,"y":0.878},"o":{"x":0.167,"y":0.341},"t":26,"s":[77.722,85.804,0],"to":[0,0.332,0],"ti":[0,-0.115,0]},{"i":{"x":0.833,"y":0.716},"o":{"x":0.167,"y":0.261},"t":27,"s":[77.722,86.29,0],"to":[0,0.115,0],"ti":[0,0.058,0]},{"i":{"x":0.833,"y":0.847},"o":{"x":0.167,"y":0.118},"t":28,"s":[77.722,86.491,0],"to":[0,-0.058,0],"ti":[0,0.168,0]},{"i":{"x":0.833,"y":0.712},"o":{"x":0.167,"y":0.183},"t":29,"s":[77.722,85.944,0],"to":[0,-0.168,0],"ti":[0,0.264,0]},{"i":{"x":0.833,"y":0.826},"o":{"x":0.167,"y":0.117},"t":30,"s":[77.722,85.485,0],"to":[0,-0.264,0],"ti":[0,0.392,0]},{"i":{"x":0.833,"y":0.876},"o":{"x":0.167,"y":0.16},"t":31,"s":[77.722,84.362,0],"to":[0,-0.392,0],"ti":[0,0.305,0]},{"i":{"x":0.833,"y":0.763},"o":{"x":0.167,"y":0.253},"t":32,"s":[77.722,83.135,0],"to":[0,-0.305,0],"ti":[0,0.285,0]},{"i":{"x":0.833,"y":0.847},"o":{"x":0.167,"y":0.128},"t":33,"s":[77.722,82.533,0],"to":[0,-0.285,0],"ti":[0,0.34,0]},{"i":{"x":0.833,"y":0.882},"o":{"x":0.167,"y":0.183},"t":34,"s":[77.722,81.423,0],"to":[0,-0.34,0],"ti":[0,0.219,0]},{"i":{"x":0.833,"y":0.785},"o":{"x":0.167,"y":0.284},"t":35,"s":[77.722,80.493,0],"to":[0,-0.219,0],"ti":[0,0.166,0]},{"i":{"x":0.833,"y":0.861},"o":{"x":0.167,"y":0.136},"t":36,"s":[77.722,80.107,0],"to":[0,-0.166,0],"ti":[0,0.169,0]},{"i":{"x":0.833,"y":0.889},"o":{"x":0.167,"y":0.209},"t":37,"s":[77.722,79.497,0],"to":[0,-0.169,0],"ti":[0,0.09,0]},{"i":{"x":0.833,"y":0.821},"o":{"x":0.167,"y":0.334},"t":38,"s":[77.722,79.09,0],"to":[0,-0.09,0],"ti":[0,0.048,0]},{"i":{"x":0.833,"y":0.899},"o":{"x":0.167,"y":0.156},"t":39,"s":[77.722,78.956,0],"to":[0,-0.048,0],"ti":[0,0.031,0]},{"i":{"x":0.833,"y":0.868},"o":{"x":0.167,"y":0.478},"t":40,"s":[77.722,78.801,0],"to":[0,-0.031,0],"ti":[0,0.002,0]},{"i":{"x":0.833,"y":0.553},"o":{"x":0.167,"y":0.229},"t":41,"s":[77.722,78.768,0],"to":[0,-0.002,0],"ti":[0,-0.017,0]},{"i":{"x":0.833,"y":0.795},"o":{"x":0.167,"y":0.103},"t":42,"s":[77.722,78.786,0],"to":[0,0.017,0],"ti":[0,-0.034,0]},{"i":{"x":0.833,"y":0.871},"o":{"x":0.167,"y":0.141},"t":43,"s":[77.722,78.868,0],"to":[0,0.034,0],"ti":[0,-0.031,0]},{"i":{"x":0.833,"y":0.749},"o":{"x":0.167,"y":0.234},"t":44,"s":[77.722,78.987,0],"to":[0,0.031,0],"ti":[0,-0.033,0]},{"i":{"x":0.833,"y":0.84},"o":{"x":0.167,"y":0.125},"t":45,"s":[77.722,79.053,0],"to":[0,0.033,0],"ti":[0,-0.042,0]},{"i":{"x":0.833,"y":0.88},"o":{"x":0.167,"y":0.174},"t":46,"s":[77.722,79.186,0],"to":[0,0.042,0],"ti":[0,-0.029,0]},{"i":{"x":0.833,"y":0.775},"o":{"x":0.167,"y":0.271},"t":47,"s":[77.722,79.308,0],"to":[0,0.029,0],"ti":[0,-0.024,0]},{"i":{"x":0.833,"y":0.854},"o":{"x":0.167,"y":0.133},"t":48,"s":[77.722,79.362,0],"to":[0,0.024,0],"ti":[0,-0.027,0]},{"i":{"x":0.833,"y":0.885},"o":{"x":0.167,"y":0.195},"t":49,"s":[77.722,79.454,0],"to":[0,0.027,0],"ti":[0,-0.016,0]},{"i":{"x":0.833,"y":0.8},"o":{"x":0.167,"y":0.305},"t":50,"s":[77.722,79.523,0],"to":[0,0.016,0],"ti":[0,-0.01,0]},{"i":{"x":0.833,"y":0.874},"o":{"x":0.167,"y":0.143},"t":51,"s":[77.722,79.549,0],"to":[0,0.01,0],"ti":[0,-0.009,0]},{"i":{"x":0.833,"y":0.899},"o":{"x":0.167,"y":0.247},"t":52,"s":[77.722,79.585,0],"to":[0,0.009,0],"ti":[0,-0.004,0]},{"i":{"x":0.833,"y":0.884},"o":{"x":0.167,"y":0.484},"t":53,"s":[77.722,79.603,0],"to":[0,0.004,0],"ti":[0,-0.001,0]},{"i":{"x":0.833,"y":0.492},"o":{"x":0.167,"y":0.278},"t":54,"s":[77.722,79.607,0],"to":[0,0.001,0],"ti":[0,0.001,0]},{"i":{"x":0.833,"y":0.857},"o":{"x":0.167,"y":0.099},"t":55,"s":[77.722,79.607,0],"to":[0,-0.001,0],"ti":[0,0.002,0]},{"i":{"x":0.833,"y":0.724},"o":{"x":0.167,"y":0.199},"t":56,"s":[77.722,79.598,0],"to":[0,-0.002,0],"ti":[0,0.003,0]},{"i":{"x":0.833,"y":0.83},"o":{"x":0.167,"y":0.119},"t":57,"s":[77.722,79.592,0],"to":[0,-0.003,0],"ti":[0,0.005,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.163},"t":58,"s":[77.722,79.579,0],"to":[0,-0.005,0],"ti":[0,0.002,0]},{"t":59,"s":[77.722,79.564,0]}],"ix":2,"l":2},"a":{"a":0,"k":[-0.918,5,0],"ix":1,"l":2},"s":{"a":0,"k":[30.469,30.469,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"slash","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.006,-0.008,0],"ix":2,"l":2},"a":{"a":0,"k":[78,78,0],"ix":1,"l":2},"s":{"a":0,"k":[328.205,328.205,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-29,-29],[29,29]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":3,"s":[100]},{"t":17,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[69,80],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"base","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.006,-0.008,0],"ix":2,"l":2},"a":{"a":0,"k":[78,78,0],"ix":1,"l":2},"s":{"a":0,"k":[328.205,328.205,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":4,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-2.745,2.55],[0,0],[2.734,2.734],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[2.672,2.672],[0,0],[2.734,-2.734],[0,0],[0,0],[0,0]],"v":[[156.5,0.5],[156.5,156.5],[0.5,156.5],[0.5,21.398],[93.55,114.45],[103.261,114.632],[103.45,114.45],[103.45,104.55],[0.5,1.601],[0.5,0.5]],"c":true}]},{"t":17,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-2.745,2.55],[0,0],[2.734,2.734],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[2.672,2.672],[0,0],[2.734,-2.734],[0,0],[0,0],[0,0]],"v":[[156.5,0.5],[156.5,156.5],[0.5,156.5],[0.5,21.398],[33.55,54.45],[43.261,54.632],[43.45,54.45],[43.45,44.55],[0.5,1.601],[0.5,0.5]],"c":true}]}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-6.075,0],[0,0],[0,-6.075],[0,0],[6.075,0],[0,0],[0,6.075],[0,0]],"o":[[0,0],[6.075,0],[0,0],[0,6.075],[0,0],[-6.075,0],[0,0],[0,-6.075]],"v":[[-24,-23],[7,-23],[18,-12],[18,12],[7,23],[-24,23],[-35,12],[-35,-12]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,1.5],[0,0],[-1.205,0.992],[0,0],[-1.149,-1.173],[0,-0.704],[0,0],[1.719,0],[0.569,0.461],[0,0]],"o":[[0,0],[0,-1.485],[0,0],[1.279,-1.054],[0.513,0.524],[0,0],[0,1.577],[-0.759,0],[0,0],[-1.225,-0.993]],"v":[[23.747,6.301],[23.747,-5.25],[25.64,-9.143],[36.808,-18.343],[41.203,-18.126],[42,-16.219],[42,17.124],[38.887,19.979],[36.826,19.263],[25.674,10.222]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[78,78],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"ct":1,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/TMessagesProj/src/main/res/raw/wallet_allset.tgs b/TMessagesProj/src/main/res/raw/wallet_allset.json similarity index 100% rename from TMessagesProj/src/main/res/raw/wallet_allset.tgs rename to TMessagesProj/src/main/res/raw/wallet_allset.json diff --git a/TMessagesProj/src/main/res/raw/wallet_congrats.tgs b/TMessagesProj/src/main/res/raw/wallet_congrats.json similarity index 100% rename from TMessagesProj/src/main/res/raw/wallet_congrats.tgs rename to TMessagesProj/src/main/res/raw/wallet_congrats.json diff --git a/TMessagesProj/src/main/res/raw/wallet_perfect.tgs b/TMessagesProj/src/main/res/raw/wallet_perfect.json similarity index 100% rename from TMessagesProj/src/main/res/raw/wallet_perfect.tgs rename to TMessagesProj/src/main/res/raw/wallet_perfect.json diff --git a/TMessagesProj/src/main/res/raw/wallet_science.tgs b/TMessagesProj/src/main/res/raw/wallet_science.json similarity index 100% rename from TMessagesProj/src/main/res/raw/wallet_science.tgs rename to TMessagesProj/src/main/res/raw/wallet_science.json diff --git a/TMessagesProj/src/main/res/values-ar/strings.xml b/TMessagesProj/src/main/res/values-ar/strings.xml index 3f4089e51f..609a66fa61 100644 --- a/TMessagesProj/src/main/res/values-ar/strings.xml +++ b/TMessagesProj/src/main/res/values-ar/strings.xml @@ -1,7 +1,7 @@ - Telegram - Telegram Beta + تيليجرام + (Beta) تيليجرام العربية الإنجليزية Arabic @@ -9,8 +9,11 @@ الاستمرار باللغة العربية رقمك - يرجى تأكيد رمز بلدك وإدخال رقم هاتفك. - اختر دولة + يرجى تأكيد مفتاح بلدك\nوإدخال رقم هاتفك. + الدولة + رقم هاتفك + رقم الهاتف + اختيار الدولة رمز الدولة غير صالح تم تسجيل الدخول إلى هذا الحساب من هذا التطبيق. تبديل @@ -20,298 +23,66 @@ ستتم إضافة جهات اتصال جهازك هذا إلى حسابك. قم بالتفعيل لمزامنة جهات اتصال هذا الجهاز مع حسابك باستمرار. تمت إضافة جهات اتصال جهازك إلى حسابك. + هل هذا هو الرقم الصحيح؟ + صيغة غير صحيحة + الرقم الذي أدخلته قصير جدًا لـ **%1$s**:\n\n**%2$s**\n\nيرجى إدخال الرقم الصحيح مسبوقًا بمفتاح الدولة. + تعديل الرقم + إذا لم يصلك الرمز برسالة نصية SMS أو اتصال فيرجى التحقق من **إعدادات البيانات الخلوية** ورقم الهاتف:\n\n**%1$s**\n\nخياراتك المتبقية هي إما تجربة رقم آخر أو التواصل مع دعم تيليجرام. يمكنك الضغط على **مساعدة** لإرسال التفاصيل الفنية إلينا لنتمكن من التعرف على المشكلة. + مساعدة + تعديل الرقم التحقق من الرقم - قمنا بإرسال رسالة SMS قصيرة تحتوي على رمز التفعيل لرقمك **%1$s**. + قمنا بإرسال رسالة SMS نصية تحتوي على رمز التفعيل لرقمك **%1$s**. أرسلنا الرمز إلى تطبيق **تيليجرام** على جهازك الآخر. - قم بتفقُّد رسائل تيليجرام + لقد أرسلنا الرمز إلى **تطبيق تيليجرام** للرقم %1$s على جهازك الآخر. + يرجى تفقُّد رسائل تيليجرام + يمكنك الحصول على الرمز لـ %1$s في قسم Anonymous Numbers على Fragment. أدخل الرمز - يتم الاتصال على رقمك **%1$s**.\n\nلا حاجة للرد، سيقوم تيليجرام بعملية التفعيل تلقائيًا. - نقوم بالاتصال برقمك **%1$s** لإملاء الرمز عليك. + فتح Fragment + يتم الاتصال على رقمك **%1$s**.\n\nلا حاجة للرد، سيقوم تليجرام بعملية التفعيل تلقائيًا. + يتم الاتصال برقمك **%1$s** لإملاء رمز التفعيل. سيتصل بك تيليجرام بعد %2$02d:%1$d سنرسل لك رسالة نصيّة SMS بعد %1$d:%2$02d يتم الاتصال بك... يتم إرسال رسالة SMS قصيرة... الرمز الرقم غير صحيح؟ - لم يصلك الرمز؟ - إرسال الرمز برسالة SMS قصيرة - إلغاء إعادة تعيين الحساب + الرمز غير صحيح، ترجى إعادة المحاولة. + ألم يصلك الرمز؟ + إرسال الرمز برسالة نصية SMS + الحصول على الرمز عبر Fragment + إلغاء حذف الحساب شخص ما لديه حق الوصول إلى **%1$s** طلب حذف حسابك في تيليجرام وإعادة تعيين كلمة مرور التحقق بخطوتين.\n\n إن لم يكن أنت؛ فيرجى إدخال الرمز الذي أرسلناه إليك للتو عبر الرسائل النصية SMS.\nيمكنك أيضًا إلغاء حذف الحساب عن طريق *تغيير رقم هاتفك*. - إعادة تعيين الحساب + حذف الحساب بما أن الحساب %1$s نشط ومحمي بكلمة مرور، سيتم حذفه بعد أسبوع واحد. هذا التأخير ضروري لأغراض أمنية.\n\nيمكنك إلغاء هذه العملية في أي وقت. - ستتمكن من إعادة تعيين حسابك بعد: - محاولاتك الأخيرة لإعادة تعيين هذا الحساب قد أُلغيت من قبل مُستخدمه النشط. رجاءً، أعد المحاولة خلال سبعة أيام. - إعادة تعيين + ستتمكن من حذف حسابك بعد: + محاولاتك الأخيرة لحذف هذا الحساب قد أُلغيت من قبل مُستخدمه النشط. ترجى إعادة المحاولة بعد 7 أيام. رابط غير صحيح أو منتهي الصلاحية. - تم إلغاء عملية حذف حسابك %1$s. يمكنك الآن إغلاق هذه النافذة. + تم! + تم إلغاء عملية حذف حسابك %1$s.\nيمكنك الآن إغلاق هذه النافذة. رمز الدخول هو **%1$s**. قم بإدخاله في تطبيق تيليجرام الذي تحاول تسجيل الدخول منه.\n\nلا تعطِ هذا الرمز لأي شخص كان. + يمكنك طلب رسالة نصية SMS بعد %1$d:%2$02d + يمكنك طلب رسالة نصية جديدة بعد %1$d:%2$02d + الحصول على الرمز برسالة نصية SMS + يمكنك طلب مكالمة صوتية بعد %2$02d:%1$d + اتصل بي لإملاء الرمز + الحصول على الرمز بمكالمة هاتفية + مفتاح الدولة + التسجيل بحساب Google اسمك - أدخل اسمك وأضف صورةً شخصية. + يُرجى إدخال اسمك وإضافة صورة لملفك الشخصي. الاسم الأول (مطلوب) + الاسم الأول اسم العائلة (اختياري) + اسم العائلة إلغاء التسجيل - - لقد نجحت في تحويل %1$s إلى %2$s مقابل %3$s - لقد نجحت في تحويل %1$s إلى %2$s - الدفع - طرق الشحن - المعذرة، لا يمكن التوصيل لعنوانك. - معلومات الشحن - عنوان الشحن - العنوان 1 (الشارع) - العنوان 2 (الشارع) - المدينة - المنطقة - الدولة - الرمز البريدي - المستلِم - الاسم الكامل - إكراميّة - إكراميّة (اختياري) - رقم الهاتف - البريد الإلكتروني - حفظ معلومات الشحن - يمكنك حفظ معلومات الشحن لاستخدامها لاحقًا. - معلومات الدفع - بطاقة الدفع - رقم البطاقة - رمز الأمان (CVV) - سنة/شهر - عنوان الدفع - الاسم الأول واسم العائلة - حفظ معلومات الدفع - يمكنك حفظ معلومات الدفع لاستخدامها مستقبلًا. سيتم حفظها مباشرة مع مزود الدفع. لاتملك تيليجرام صلاحية الوصول إلى بيانات بطاقتك الائتمانية. - فضلًا قم *بتفعيل التحقق بخطوتين* لتفعيل هذا الخيار. - مراجعة العملية - تحويل **%1$s** إلى بوت %2$s مقابل **%3$s**؟ - الإجمالي - فاتورة - فاتورة تجريبية - دفع %1$s - وسيلة الدفع - بطاقة جديدة - موفِّر عملية الدفع - الاسم - رقم الهاتف - عنوان التواصل - طريقة الشحن - إيصال الدفع - اختر بطاقة مختلفة - بطاقتك %1$s مسجلة مسبقًا. يرجى إدخال كلمة مرور التحقق بخطوتين لتتمكن من استخدامها. - المعذرة، تم إلغاء عملية الدفع من البوت. - المعذرة، تم رفض عملية الدفع. - تعذر الوصور إلى خادم الدفع. تحقق رجاءً من اتصالك بالإنترنت وحاول مرة أخرى. - تحذير - لن تتمكن تيليجرام ولا %1$s من الوصول إلى معلومات بطاقتك الائتمانية. سيتم التعامل مع تفاصيل بطاقة الائتمان فقط عن طريق نظام الدفع %2$s.\n\nالمدفوعات ستصل مباشرة إلى مطور %1$s. لا يمكن لتيليجرام تقديم أي ضمانات، لذا تابع على مسؤوليتك الخاصة. في حال حدوث مشاكل؛ يرجى التواصل مع مطور %1$s أو البنك الذي تتعامل معه. - كلمة المرور والبريد الإلكتروني - كلمة المرور - أدخل كلمة مرور - قم بإعادة إدخال كلمة مرورك - يرجى إنشاء كلمة مرور لحماية معلومات الدفع الخاصة بك، سيتم طلبها منك في كل مرة تقوم بتسجيل دخولك. - بريد الاسترداد - بريدك الإلكتروني - فضلًا قم بإضافة بريد إلكتروني صالح، هذه هي الطريقة الوحيدة لاستعادة كلمة المرور المنسية. - سيتم إرسال الرقم إلى %1$s كمعلومات الدفع. - سيتم إرسال البريد الإلكتروني إلى %1$s كمعلومات الدفع. - سيتم إرسال رقم الهاتف والبريد الإلكتروني إلى %1$s كمعلومات دفع. - لقد دفعت **%1$s** مقابل **%2$s**. - - محادثة جديدة - الوضع الليلي الآلي معطَّل - الإعدادات - جهات الاتصال - مجموعة جديدة - يوم أمس - ما من نتائج - أهلًا في تيليجرام - المستعرضة مؤخرًا - إخفاء - ابدأ المراسلة عبر الضغط على زر القلم في الزاوية السفلية للشاشة. - ابدأ المراسلة بالضغط على جهة من جهات اتصالك في الأسفل. - في انتظار الشبكة... - يتم الاتصال... - متصل - التماس: %1$d ج.ث - يتم التحقق... - متاح - غير متاح - يتم الاتصال بالبروكسي - الاتصال بالبروكسي - يتم التحديث... - محادثة سرية جديدة - في انتظار اتصال %s بالإنترنت... - تم إلغاء المحادثة السرية - تتم مبادلة مفاتيح التشفير... - انضم %s لمحادثتك السرية. - لقد انضممت للمحادثة السرية - مسح محتوى المحادثة - مسح السجل - مسح السجل - تفعيل الحذف التلقائي - ستُحذف تلقائيًا بعد %1$s - حذف تلقائي للرسائل في هذه المحادثة - الحذف التلقائي للرسائل - حذف تلقائي للرسائل الجديدة من عندك وعند %1$s بعد فترة زمنية محددة. - حذف تلقائي للرسائل الجديدة في هذه المجموعة بعد فترة زمنية محددة. - حذف تلقائي للرسائل الجديدة في هذه القناة بعد فترة زمنية محددة. - تأكيد - 24 ساعة - 7 أيام - حذف تلقائي للرسائل الجديدة المرسلة في هذه المحادثة بعد فترة زمنية محددة. - معطّل - ضبط لهذه المحادثة - سيتم حذف الرسائل تلقائيًا \nفي هذه المحادثة %1$s بعد إرسالها. - سيتم حذف الرسائل الجديدة تلقائيًا في هذه المحادثة بعد %1$s - الحذف التلقائي معطّل. - ضبط مؤقت الحذف التلقائي - مؤقت الحذف التلقائي - تم مسح المحتوى. - كتم - إلغاء الكتم - تم حذف المحادثة - تم حذف المجموعة. - تم حذف القناة. - تم تثبيت الأرشيف. - اسحب الأرشيف لليسار لإخفاءه. - تم إخفاء الأرشيف. - اسحب للأسفل لرؤية الأرشيف. - تمت أرشفة المحادثة. - تمت أرشفة المحادثات. - اسحب الأرشيف لليسار لإخفاءه. - تراجع - مسح من الذاكرة المؤقتة - حذف وخروج - إخفاء - تثبيت - تثبيت - إلغاء التثبيت - أرشفة - الأرشيف - إلغاء الأرشفة - المحادثات المؤرشفة - حذف المحادثة - حساب محذوف - اختر محادثة - تحديد المحادثات - تحويل إلى... - صورة سرية - "مقطع مرئي يختفي " - صورة متحركة سرية - يستخدم %1$s إصدارًا قديمًا من تيليجرام، لذلك ستظهر الصور السرية في الوضع التوافقي.\n\nعندما يقوم %2$s بتحديث تيليجرام فإن الصور التي بها عداد تدمير خلال دقيقة أو أقل ستعمل بطريقة «الاستمرار بالضغط للمشاهدة»، وسيتم إخبارك عندما يلتقط المستقبل صورة للشاشة. - الرسائل - بحث - كتم الإشعارات - كتم لمدة %1$s - إلغاء الكتم - بعد %1$s - تعطيل - الوُسُوم - الأخيرة - الأشخاص - إزالة الاقتراح - هل ترغب حقًا في إزالة **%1$s** من الاقتراحات؟ - حذف %1$s من الاقتراحات؟ - معاينة الرابط - مسودة - تم مسح السجل - بواسطة %1$s - %1$s بواسطة %2$s - هل هناك خلل؟ - إرسال الملصق - إرسال الصورة المتحركة - عرض الحزمة - تثبيت في الأعلى - عذرًا، يمكنك فقط تثبيت %1$s أعلى القائمة الرئيسية. يمكن تثبيت المزيد من المحادثات في مجلدات المحادثات ومجلد الأرشيف. - عذرًا، لا يمكنك تثبيت أي محادثات أخرى في الأعلى. - إلغاء التثبيت - اعتبارها غير مقروءة - تعليم كمقروءة - تعليم الكل كمقروءة - إخفاء فوق القائمة - تثبيت أعلى القائمة - غامق - مائل - رمز - يتوسطه خط - تسطير - عادي - يحتاج **تيليجرام** إلى الوصول لجهات اتصالك لكي تتمكن من التواصل مع أصدقائك عبر جميع أجهزتك، ستتم مزامنة جهات اتصالك باستمرار مع خوادم تيليجرام السحابية شديدة التشفير. - ليس الآن - استمرار - جهات اتصالك في تيليجرام - هذا هو أرشيفك - سيتم إلغاء أرشفة المحادثات غير المكتومة عند وصول رسائل جديدة إليها. - المحادثات المكتومة - ستبقى المحادثات المكتومة داخل الأرشيف عند وصول رسائل جديدة إليها. - تثبيت المحادثات - يمكنك تثبيت عدد غير محدود من المحادثات المؤرشفة في الأعلى. - اضغط هذا الزر باستمرار لجدولة رسالتك أو إرسالها دون صوت. - إخفاء المحادثات الجديدة؟ - أنت تتلقى الكثير من المحادثات الجديدة من مستخدمين ليسوا في قائمة جهات اتصالك، هل تريد أن تكون مثل هذه المحادثات **مكتومة تلقائيًا** و **مؤرشفة**؟ - اذهب إلى الإعدادات - عرض الملف الشخصي - فتح القناة - فتح المجموعة - رسالة خاصّة - إشارة - تم كتم الإشعارات - الإشعارات مكتومة لـ %1$s - تم إلغاء كتم الإشعارات - تم حذف %1$d رسالة - تم حذف %1$d رسالة - تم حذف رسالتين - تم حذف %1$d رسائل - تم حذف %1$d رسالة - تم حذف %1$d رسالة - ما من نتائج - ما من نتائج - جرّب بحثًا جديدًا. - سيتم عرض الصوتيات من جميع محادثاتك هنا. - سيتم عرض الملفات من جميع محادثاتك هنا. - سيتم عرض الروابط من جميع محادثاتك هنا. - سيتم عرض الرسائل الصوتية من جميع محادثاتك هنا. - سيتم عرض الوسائط من جميع محادثاتك هنا. - محادثات - تم تثبيت الرسالة - أُلغي تثبيت الرسالة - اضغط على القلم لبدء محادثة جديدة - إنشاء مجموعة جديدة للاستيراد - استيراد الرسائل - فشل الاستيراد - "صيغة الملف غير صالحة. " - غير قادر على استيراد السجل إلى المحادثة المحددة. - لغة الملف غير معروفة. - "يجب أن تكون مشرفًا في المجموعة لاستيراد الرسائل. " - صيغة الملف لمجموعة ولكن أنت حدّدت شخص. - صيغة الملف لشخص ولكن أنت حدّدت مجموعة. - غير قادر على استيراد الرسائل بسبب إعدادات الخصوصية. - استيراد - هل تريد استيراد الرسائل من **%1$s** إلى المحادثة مع **%2$s**؟ \n\nيتم استيراد الرسائل بتاريخ اليوم ولكنها ستتضمن أيضًا تاريخ إرسالها الأصلي. ستظهر الرسائل لكلا الطرفين. - هل تريد استيراد الرسائل إلى المحادثة مع **%1$s**؟ \n\nيتم استيراد الرسائل بتاريخ اليوم ولكنها ستتضمن أيضًا تاريخ إرسالها الأصلي. ستظهر الرسائل لكلا الطرفين. - هل تريد استيراد الرسائل من **%1$s** إلى المجموعة «%2$s»؟ \n\nسيتم استيراد الرسائل بتاريخ اليوم ولكنها ستتضمن أيضًا تاريخ إرسالها الأصلي. ستظهر الرسائل لكل الأعضاء. - هل تريد استيراد الرسائل إلى المجموعة «%1$s»؟\n\nسيتم استيراد الرسائل بتاريخ اليوم ولكنها ستتضمن أيضًا تاريخ إرسالها الأصلي. ستظهر الرسائل لكل الأعضاء. - "يمكنك فقط استيراد الرسائل إلى المحادثات الخاصة مع المستخدمين الذين يحتفظ كلاكما برقم الآخر. " - يجب أن تكون مشرفًا في المجموعة لاستيراد الرسائل. - هذه الرسالة مستوردة من تطبيق آخر. لا يمكننا ضمان أنها حقيقية. - يتم استيراد الرسائل والوسائط... **%d%%** - يتم استيراد المحادثة - يرجى إبقاء تيليجرام مفتوحًا\nحتى اكتمال الاستيراد. - %1$s من %2$s - تم - تم استيراد المحادثة بنجاح! - "وفر مساحة على جهازك باستيراد المزيد من المحادثات إلى تيليجرام. " - يتم استيراد الرسائل والوسائط... - استيراد الملصقات... - استيراد الرسائل والوسائط إلى... - أو اختر إحدى جهات اتصالك + معلومات ملفك الشخصي تحرير الأداة عرض اختصارات للمحادثات من أجل الوصول السريع لها.\n\n إذا لم يتم تحديد أشخاص فسيتم عرض جهات الاتصال المتكررة في هذه الأداة. عرض أحدث رسالة من المحادثات المحددة.\n\n إذا لم يتم تحديد محادثات معينة فسيتم عرض أحدث محادثاتك في هذه الأداة. - "تحذير: سيتم **تجاهل** رمز القفل للتطبيقات المصغّرة. " - **لن يعمل** رمز القفل في الأدوات المضافة على الشاشة الرئيسية. + "تحذير: ستعرض التطبيقات المصغرة كل الرسائل الحديثة، لكن ستطلب منك رمز المرور الخاص بك لفتح التطبيق والرد. " البحث عن محادثات... معاينة الأداة اضغط لتحرير الأداة @@ -319,904 +90,28 @@ المحادثات الاختصارات تم الخروج من الحساب. - - ترقية إلى مشرف - تعديل صلاحيات المشرف - ما من مستخدمين تمت إزالتهم - حذف المجموعة - مغادرة المجموعة - حذف المجموعة - ستخسر كل الرسائل في هذه المجموعة. - يمكنك إضافة مشرفين لمساعدتك في إدارة المجموعة. اضغط عليهم مطولًا لحذفهم. - انتظر! حذف هذه المجموعة سيزيل ويحذفُ كافة الأعضاء والرسائل، هل ترغب حقًا في حذف المجموعة؟ - حذف المجموعة لكل الأعضاء - الحذف لجميع المشتركين - تم إنشاء مجموعة - un1 أضافك لهذه المجموعة - هل ترغب حقًا في مغادرة المجموعة؟ - هل ترغب حقًا في مغادرة **%1$s**؟ - المعذرة، لا يمكنك إضافة هذا المستخدم للمجموعات. - عذرًا، المجموعة ممتلئة. - عذرًا، إذا لم يعد شخص جزءًا من مجموعة؛ يجب أن تكون في جهات اتصاله في تيليجرام لإضافته مرة أخرى.\n\nلاحظ أنه لا يزال بإمكان هذا الشخص الانضمام عبر رابط دعوة المجموعة طالما أنه ليس في قائمة «مستخدمون تمت إزالتهم». - المعذرة، يوجد الكثير من المشرفين في هذه المجموعة. - المعذرة، يملك هذا المستخدم الكثير من المجموعات أو القنوات العامة. دعه يجعل بعض مجموعاته أو قنواته الحالية خاصة أولًا. - المعذرة، يملك هذا المستخدم الكثير من المجموعات المحلية. دعه يحذف أو ينقل ملكية بعض منها أولًا. - المعذرة، أنت تملك الكثير من المجموعات المحلية. الرجاء حذف بعض منها أولًا. - المعذرة، يوجد الكثير من حسابات البوت في هذه المجموعة. - ثبت un1 «%1$s» - ثبت un1 رسالة - ثبت un1 استفتاءً - ثبت un1 اختبارًا - un1 ثبت صورة - ثبت un1 مقطعًا مرئيًا - ثبت un1 ملفًا - un1 ثبت ملصقًا - ثبت un1 رسالةً صوتية - ثبت un1 رسالةً مرئية - un1 ثبت جهة اتصال - un1 ثبت %1$s - ثبت un1 خريطة - ثبت un1 موقعًا حيًا - un1 ثبت صورةً متحركة - ثبت un1 ملفًا صوتيًا - تمّت ترقية هذه المجموعة إلى مجموعة خارقة - تمت ترقية %1$s إلى مجموعة خارقة - لن يتمكن المستخدمون الذين أزالهم المشرفون من المجموعة إعادة الإنضمام عبر روابط الدعوة. - لن يتمكن المستخدمون الذين أزالهم المشرفون من القناة من الانضمام إليها حتى عبر روابط الدعوة الخاصة. - قناة جديدة - اسم القناة - إضافة مشتركين لقناتك - إذا قمت بتعيين رابط عام دائم للقناة فسيتمكن الآخرون من العثور عليها والانضمامِ إليها عبره.\n\nيمكنك استخدام الأحرف الإنجليزية والشَّرطاتِ السفلية.\n\nالحد الأدنى هو خمسُ خانات. - إذا عيّنت رابطًا عامًا فسيتمكن الآخرون من العثور والانضمامِ إلى مجموعتك.\n\nيمكنك استخدام الأحرف والأرقام الإنجليزية والشَّرطات السفليّة.\n\nالطول الأدنى هو خمسُ خانات. - تحذير - الرابط - يمكن للناس الانضمام لقناتك عبر هذا الرابط، بإمكانك استبداله في أي وقت. - يمكن للناس الانضمام لمجموعتك عبر هذا الرابط، يمكنك استبداله في أي وقت. - الوصف (اختياري) - الوصف - يمكنك إضافة وصف اختياري لقناتك. - لقد قمت بتغيير بعض الإعدادات في هذه المجموعة؛ تطبيق التغييرات؟ - لقد قمت بتغيير بعض الإعدادات في هذه القناة؛ تطبيق التغييرات؟ - قناة عامة - مجموعة عامة - مجموعة محلية - يمكن العثور على القنوات العامة عبر البحث ويمكن لأي شخص الانضمام لها. - يمكن العثور على المجموعات العامة عبر البحث، سيكون محتوى المجموعة متاحًا للجميع، ويمكن لأي شخص الانضمام إليها. - قناة خاصة - مجموعة خاصة - يمكن الانضمام للقنوات الخاصة عن طريق رابط الدعوة فقط. - يمكن الانضمام للمجموعات الخاصة فقط في حال تمت دعوتك أو بواسطة رابط دعوة. - الرابط العام - رابط الدعوة - إضافة أعضاء - إضافة مشتركين - مغادرة القناة - مغادرة القناة - الإعدادات - انضمام - المنشور - منشور صامت - ما هي القنوات؟ - القنوات هي إحدى الأدوات لإيصال رسائلك\nإلى جمهور غير محدود. - إنشاء قناة - عذرًا، هذا الاسم محجوز. - المعذرة، الاسم غير مقبول. - يجب أن تتكون روابط القنوات من 5 خانات على الأقل. - لا يمكن أن يتخطى الاسم 32 حرفًا كحد أقصى. - أسماء القنوات لا يمكن أن تبدأ برقم. - أسماء المجموعات يجب أن تتكوّن من 5 حروف على الأقل. - أسماء المجموعات لا يمكن أن تبدأ برقم. - يتم التحقق من الاسم... - %1$s متاح. - الأعضاء - إضافة للمجموعة - إضافة للقناة - حذف من هذه القائمة - "المشتركون " - مستخدمون تمت إزالتهم - الصلاحيات - ما هي صلاحيات أعضاء هذه المجموعة؟ - إضافة استثناء - بحث في الاستثناءات - مستخدمون تمت إزالتهم - جهات الاتصال في هذه القناة - جهات الاتصال في هذه المجموعة - جهات اتصالك - البوتات - الأعضاء الآخرون - المشتركون الآخرون - انضم %1$s - المستخدمون المقيدون - المشرفون - حذف القناة - حذف القناة - مهلا! حذف هذه القناة سيزيل كافة المشتركين وسيحذف كل الرسائل. هل مازلت ترغب في حذف القناة؟ - هل ترغب حقًا في مغادرة القناة؟ - هل ترغب حقًا في مغادرة **%1$s**؟ - ستخسر كل الرسائل في هذه القناة. - تعديل - اختر رابطًا - فضلًا قم باختيار رابط لقناتك العامة ليتمكن الناس من إيجادها عبر البحث ومشاركتِها مع غيرهم.\n\nإذا لم ترغب بذلك، ننصحك بإنشاء قناة خاصة بدلا منها. - تم إنشاء القناة - تم تغيير صورة القناة - تم تغيير المقطع المرئي للقناة - تمت إزالة صورة القناة - تم تغيير اسم القناة إلى un2 - لقد قمت بحجز روابط عامة كثيرة. يمكنك استبدال رابط مجموعة أو قناة قديمة، أو قم بإنشاء واحدة خاصة عوضًا عن ذلك. - المالك - مشرف - مشرف - كتم - إلغاء الكتم - إضافة مشرف - حظر مستخدم - إلغاء الحظر - اضغط باستمرار على المستخدم لإلغاء حظره - الدعوة عبر رابط خاص - عزل المشرف - تعديل الصلاحيات - يمكن لمشرفي القناة فقط مشاهدة هذه القائمة. - يمكن لمستخدمي تيليجرام الانضمام إلى قناتك عبر هذا الرابط. - يمكنك إضافة مشرفين لمساعدتك في إدارة القناة، اضغط مطوَّلا على أيٍّ منهم لحذفه. - هل ترغب في الانضمام لقناة \'%1$s\'؟ - المعذرة، لا يمكن الوصول إلى هذه المحادثة. - عذرًا، لا يمكنك الوصول إلى هذه المحادثة بسبب قيام أحد المشرفين بحظرك. - للأسف، تم حظرك من المشاركة في المجموعات العامة. - المعذرة، لا يمكن الوصول إلى هذه المحادثة. - هل ترغب بإضافة %1$s للقناة؟ - عذرًا، إذا لم يعد شخص جزءًا من قناة؛ يجب أن تكون في جهات اتصاله في تيليجرام لإضافته مرة أخرى إليها.\n\nلاحظ أنه لا يزال بإمكان هذا الشخص الانضمام عبر رابط دعوة القناة طالما أنه ليس في قائمة المستخدمين الذين تمت إزالتهم. - المعذرة، لا يمكنك إضافة هذا المستخدم للقنوات. - المعذرة، يوجد الكثير من المشرفين في هذه القناة. - عذرًا، يوجد الكثير من البوتات في هذه القناة. - المعذرة، يمكنك إضافة أول 200 مشترك فقط إلى القناة. يمكن لعدد غير محدود من الناس الانضمام عبر رابط القناة. - الكثير من المُجتمعات - المعذرة، أنت عضو في الكثير من المجموعات والقنوات. الرجاء مغادرة بعض منها قبل إنشاء واحدة جديدة. - المعذرة، أنت عضو في الكثير من المجموعات والقنوات. الرجاء مغادرة بعض منها قبل الانضمام لواحدة جديدة. - un1 أضافك لهذه القناة - انضممتَ للقناة - قمتَ بالانضمام لهذه المجموعة - الإزالة من القناة - المعذرة، لا يمكنك إرسال رسائل لهذه القناة. - "%1$s أضافك لقناة %2$s " - تم تحديث صورة قناة %1$s - حدثت قناة %1$s مقطعها المرئي - نشرت %1$s رسالة - نشرت %1$s صورة - نشرت %1$s مقطعًا مرئيًا - نشرت %1$s جهة اتصال %2$s - نشرت %1$s الاستفتاء %2$s - نشرت %1$s الاختبار «%2$s» - نشرت %1$s موقعًا - نشرت %1$s موقعًا حيًا - نشرت %1$s ملفًا - نشرت %1$s صورةً متحركة - نشرت %1$s %2$s - نشرت %1$s حُزمة وسائط - نشرت %1$s رسالةً صوتية - نشرت %1$s رسالةً مرئية - نشرت %1$s ملفًا صوتيًا - نشرت %1$s ملصقًا - نشرت %1$s ملصقًا %2$s - من يمْكنه إضافة أعضاء؟ - جميع الأعضاء - المشرفون فقط - سيتم إشعار المشتركين بالمنشورات الجديدة - سيتلقى المشتركون إشعاراتٍ صامتة - توقيع الرسائل - إضافة أسماء المشرفين للمنشورات التي ينشرونها. - صلاحيات المشرف - لقب مخصص - لقب مخصص سيكون مرئيًّا لجميع الأعضاء بدل من «%1$s». - ما هي صلاحيات هذا المشرف؟ - تغيير معلومات القناة - تغيير معلومات المجموعة - نشر الرسائل - تعديل رسائل الآخرين - حذف رسائل الآخرين - حذف الرسائل - إضافة مشرفين جدد - البقاء متخفيًا - عزل المشرف - نقل ملكية المجموعة - نقل ملكية القناة - تأكيد أمني - تستطيع نقل هذه المجموعة إلى **%1$s** فقط إذا: - تستطيع نقل هذه القناة إلى **%1$s** فقط إذا: - فعّلتَ **التحقق بخطوتين** منذ أكثر من **سبعة أيام**. - سجّلتَ دخولك على هذا الجهاز منذ أكثر من **24 ساعة**. - يرجى المحاولة لاحقًا. - تعيين كلمة مرور - سيؤدي هذا لنقل **جميع حقوق الملكية** الخاصة بـ **%1$s** إلى **%2$s**. - تغيير المالك - أصبح الآن **%1$s** مالك المجموعة. - أصبح الآن **%1$s** مالك القناة. - حظر المستخدمين - إضافة مستخدمين - دعوة المستخدمين عبر الرابط - تثبيت الرسائل - تمت ترقيته من قبل %1$s - لا يمكنك تعديل صلاحيات هذا المشرف. - لا يمكنك تعديل هذه الصلاحية. - هذه الصلاحية ليست متاحةً في المجموعات العامة. - تمت إزالته من قبل %1$s - صلاحيات المستخدم - تم تعطيل هذا الخيار لجميع الأعضاء في صلاحيات المجموعة. - ما هي صلاحيات هذا المستخدم؟ - قراءة الرسائل - إرسال الرسائل - إرسال الوسائط - إرسال الاستفتاءات - إرسال الملصقات والصور المتحركة - معاينة للروابط - تغيير معلومات المحادثة - تثبيت الرسائل - إضافة مستخدمين - لا يمكنه القراءة - لا يمكنه إرسال الرسائل - لا وسائط - لا استفتاءات - لا ملصقات وصور متحركة - بلا معاينة للروابط - لا يمكنه تغيير المعلومات - لا تثبيت رسائل - لا يمكنه إضافة مستخدمين - المدة - للأبد - حظر وإزالة من المجموعة - تطبيق التغييرات؟ - لقد قمت بتغيير صلاحيات هذا المستخدم في **%1$s**؛ تطبيق التغييرات؟ - مخصصة - إدارة المجموعة - إدارة القناة - إدارة المجموعة - إدارة القناة - سجل المحادثة للأعضاء الجدد - "تعيين صورة جديدة " - تعيين صورة أو مقطع مرئي - ظاهر - سيتمكن الأعضاء الجدد من مشاهدة الرسائل التي أُرسلت قبل انضمامهم. - مخفي - لن يتمكن الأعضاء الجدد من مشاهدة الرسائل القديمة. - لن يرى الأعضاء الجدد أكثر من 100 رسالة سابقة. - الانضمام للقناة - الانضمام للمجموعة - نوع المجموعة - نوع القناة - نوع المجموعة - نوع القناة - إعدادات المجموعة - إعدادات القناة - خاصة - عامة - خاصة - عامة - رابط - انقر لإضافة رابط دائم - اختر صورة - اختر صورة أو مقطعًا مرئيًّا - تعيين صورة جديدة - التقاط صورة - "تسجيل مقطع مرئي " - الاختيار من المعرض - اختيار من المعرض - البحث في الويب - الإحصائيات - يمكن إضافة البوتات كمشرفين فقط. - يمكن إضافة البوتات للقنوات كمشرفين فقط. - تعيينُه كمشرف - سيتم إزالة %1$s من المشرفين إذا قمت بتقييده. - المناقشات - عرض المناقشة - أضف مجموعة للتعليقات - القناة المرتبطة - حدد المجموعة التي ستستضيف التعليقات من قناتك. - كل ما تنشره في القناة سيتم تحويله إلى هذه المجموعة. - تم تحديد **%1$s** على أنها المجموعة التي سيتم استخدامها لاستضافة التعليقات لقناتك. - تم ربط هذه المجموعة كمنصة نقاشات لـ %1$s. - سيتم تحويل جميع المنشورات الجديدة في هذه القناة للمجموعة. - إنشاء مجموعة جديدة - إلغاء ربط المجموعة - إلغاء ربط القناة - إلغاء الربط - ربط المجموعة - هل ترغب بجعل **%1$s** منصة نقاشات **%2$s**؟ - هل ترغب بجعل **%1$s** منصة نقاشات **%2$s**؟\n\nسيتمكن جميع أعضاء المجموعة من رؤية منشورات القناة. - هل ترغب بجعل **%1$s** منصة نقاشات **%2$s**؟\n\nسيتمكن جميع مشتركي القناة من رؤية الرسائل في هذه المجموعة. - سيتم تغيير \"سجل المحادثة للأعضاء الجدد\" ليصبح ظاهرًا. - هل ترغب حقًا في إلغاء ربط **%1$s** من هذه المجموعة؟ - هل ترغب حقًا بإلغاء ربط **%1$s** من هذه القناة؟ - مناقشة - قناة - الوضع البطيء - معطَّل - %1$dث - %1$dد - %1$dس - اختر الفترة الزمنية التي يجب على كل عضو انتظارها قبل إرسال رسالته التالية. - سيتمكن الأعضاء من إرسال رسالة واحدة فقط كل %1$s. - الوضع البطيء نشط. لا يمكنك إرسال أكثر من رسالة مرةً واحدة. - الوضع البطيء نشط. لا يمكنك تحديد المزيد من العناصر. - المعذرة، هذا النص طويل للغاية ولا يمكن إرساله برسالة واحدة.\n\nالوضع البطيء نشط. لا يمكنك إرسال عدة رسائل مرةً واحدة. - تمت ترقية **%1$s** للإشراف - تمت إزالة **%1$s** من **%2$s** - - استفتاء جديد - اختبار جديد - استفتاء - سؤال الاستفتاء - اطرح سؤالًا - خيارات الإجابة - إجابات الاختبار - نتائج الاستفتاء - استفتاء سري - وضع الاختبار - حدد خيارًا أولًا - طيّ - توسيع - المعذرة، لا يمكن تحويل استفتاءات الإجابات العلنية للقنوات. - عذرًا، لا يمكن تحويل الفواتير إلى المحادثات السرّية. - المعذرة، لا يمكن تحويل الاستفتاءات للمحادثات السرية. - عذرًا، لا يمكن إرسال الألعاب إلى المحادثات السرّية. - عذرًا، لا يمكن إرسال الفواتير إلى المحادثات السرّية. - إجابات متعددة - اضغط لاختيار الإجابة الصحيحة - تملك الاختبارات إجابة واحدة صحيحة. لا يمكن للمستخدمين تغيير إجاباتهم. - إضافة خيار... - يمكنك إضافة %1$s. - لقد قمت بإضافة العدد الأقصى من الخيارات. - استفتاء سري - إجابة خاطئة! - لم تختر الإجابة الصحيحة. - أحسنت! - لقد اخترت الإجابة الصحيحة. - استفتاء - اختبار - تصويت - عرض النتائج - اختبار سري - إيقاف الاستفتاء - إيقاف الاستفتاء؟ - إذا قمت بإيقاف الاستفتاء الآنَ فلن يتمكن أي أحد من التصويت عليه، لا يمكنك التراجع عن هذا القرار. - إيقاف الاختبار - إيقاف الاختبار؟ - إذا أوقفت هذا الاختبار الآن فلن يتمكن أحد من تقديم الإجابات. لا يمكنك التراجع عن هذا الإجراء. - تجاهل الاستفتاء؟ - هل ترغب حقًا في تجاهل هذا الاستفتاء؟ - سحب الصوت - النتائج النهائية - ما من أصوات - لم يُجب أحد - %1$d صوت - صوت واحد - صوتان - %1$d أصوات - %1$d صوتًا - %1$d صوت - %1$d إجابة - إجابة واحدة - إجابتين - %1$d إجابات - %1$d إجابةً - %1$d إجابة - عرض المزيد (%1$d) - عرض المزيد (%1$d) - عرض المزيد (%1$d) - عرض المزيد (%1$d) - عرض المزيد (%1$d) - عرض المزيد (%1$d) - %1$d خيار إضافي - خيارٍ واحد إضافي - خيارين إضافيين - %1$d خيارات إضافية - %1$d خيارًا إضافيًا - %1$d خيار إضافي - خيار - - آخر الأحداث - كل الأحداث - الأحداث المحددة - كل المشرفين - **لا توجد أحداث هنا بعد**\n\nلم يَقم أعضاءُ المجموعة أو\nمشرفوها باتخاذ أيِّ إجراءات\nخلال الـ 48 ساعة الماضية. - **ما من أحداث هنا بعد**\n\nلم يقم مشرفو القناة\nباتخاذ أي إجراءات خلال\nالـ 48 ساعة الماضية. - **لم يتم العثور على أحداث**\n\nلا توجد نتائج تطابق ما بحثت عنه\nضمن الأحداث الأخيرة. - لم يتم العثور على أحداث أخيرة تحوي «**%1$s**». - ما هي آخر الأحداث؟ - هذا سجل يحوي الأحداث المهمة التي قام بها أعضاء المجموعة ومشرفوها خلال آخِر ٤٨ ساعة. - هو سجل يحوي جميع الإجراءات التي قام بها مشرفو القناة خلال آخر ٤٨ ساعة. - غيَّر un1 اسم المجموعة إلى «%1$s» - غيَّر un1 اسمَ القناة إلى «%1$s» - غادر un1 المجموعة - غادر un1 القناة - un1 أضاف un2 - انضم un1 للمجموعة - حظر %1$s - ألغى حظر %1$s - انضم un1 للقناة - عيّن un1 صورة جديدة للمجموعة - عيّن un1 صورة جديدة للقناة - عيّن un1 مقطعًا مرئيًّا للمجموعة - عيّن un1 مقطعًا مرئيًّا للقناة - أزال un1 صورة المجموعة - أزال un1 صورة القناة - عدّل un1 هذه الرسالة: - عدّل un1 الوصف: - عدّل un1 ملف الوسائط: - عدّل un1 ملف الوسائط والوصف: - الرسالة الأصلية - الوصف الأصلي - فارغ - un1 ثبت هذه رسالة: - ألغى un1 تثبيت رسالة - أوقف un1 الاستفتاء: - أوقف un1 الاختبار: - حذف un1 هذه الرسالة: - غيّرَ un1 موقع المجموعة إلى «%1$s» - أزال un1 موقع المجموعة - نقلَ الملكية لـ %1$s - un1 غير حزمة ملصقات المجموعة - \nun1 أزال حزمة ملصقات المجموعة - جعل un1 un2 مجموعة نقاشات هذه القناة - أزال un1 مجموعة النقاشات un2 - ربط un1 هذه المجموعة بـ un2 - ألغى un1 ربط هذه المجموعة بـ un2 - غيّرَ un1 رابط المجموعة: - غيّر un1 رابط القناة: - un1 أزال رابط المجموعة - un1 أزال رابط القناة - الرابط السابق - عدّل un1 وصف المجموعة: - عدّل un1 وصف القناة: - الوصف السابق - جعل un1 سجل المحادثة في المجموعة ظاهرًا للأعضاء الجدد - جعل un1 سجل محادثة المجموعة مخفيًا للأعضاء الجدد - un1 فعّل دعوات المجموعة - عطّل un1 دعوات المجموعة - فعّل un1 التواقيع - عطّل un1 التواقيع - غيَّر صلاحيات %1$s\n\nالمدة: %2$s - غيَّر الصلاحيات الافتراضية - إرسال الملصقات والصور المتحركة - إرسال الوسائط - تغيير المعلومات - إضافة مستخدمين - تثبيت الرسائل - إرسال الاستفتاءات - إرسال الرسائل - معاينة الروابط - قراءة الرسائل - غيّرَ صلاحيات %1$s - تمت ترقية %1$s - تغيير معلومات القناة - تغيير معلومات المجموعة - نشر الرسائل - تعديل الرسائل - حذف الرسائل - إضافة مشرفين - البقاء متخفيًا - حظر المستخدمين - إدارة المحادثات الصوتية - إضافة مستخدمين - اللقب: %1$s - اللقب - تثبيت الرسائل - كل الأحداث - استثناءات جديدة - ترقية الإشراف - أعضاء جدد - معلومات المجموعة - معلومات القناة - رسائل محذوفة - رسائل معدلة - رسائل مثبتة - الأعضاء المغادرون - المحادثات الصوتية - روابط الدعوة - عيّن un1 عداد الوضع البطيء لـ %1$s - عطّل un1 الوضع البطيء - بدأ un1 محادثة صوتية - أنهى un1 المحادثة الصوتية - un1 كتم un2 في محادثة صوتية - ألغى un1 كتم un2 في محادثة صوتية - سمح un1 للمشاركين الجدد في المحادثة الصوتية بالتحدث - كتم un1 المشاركين الجدد في المحادثة الصوتية - - رسالة جماعية جديدة - أدخل اسم القائمة - أنشأتَ قائمة للرسالة الجماعية - إضافة مستلم - إزالة من قائمة الرسالة الجماعية - - ما من ملفات صوتية - مكتبتك الصوتية فارغة. - لم يتم العثور على نتائج - ما من مقاطع صوتية باسم **%1$s** في مكتبتك. - ما من شيء يطابق **%1$s**. - مقطع صوتي - المؤدي غير معروف - عنوان غير معروف - تكرار الملف - تكرار القائمة - تشغيل عشوائي - ترتيب عكسي - - اختر ملفًا - بحث في الملفات الأخيرة - متاح %1$s من %2$s - حدث خطأ غير معروف - خطأ في الوصول - لا يمكن أن يتجاوز حجم الملف %1$s - الذاكرة غير موجودة - نقل USB مفعَّل - التخزين الداخلي - الذاكرة الخارجية - جذر النظام - بطاقة التخزين الخارجية - مجلّد - الملفات الأخيرة - الملفات أ-ي - لم يتم العثور على نتائج - ما من ملفات باسم **%1$s** في هذا المجلد. - هذا المجلد فارغ. - لإرسال الصور دون ضغطها - لإرسال الملفات الصوتية - استعراض مجلد التطبيق - استعراض جميع المجلدات - استعراض ذاكرة التخزين الخارجية - بحث الصوتيات - - ملصقات المجموعة - اختر من ملصقاتك - يمكنك اختيار حزمة لتَكون متاحةً لكل أعضاء هذه المجموعة أثناء المراسلة فيها. - اختيار حزمة ملصقات - رابط الحزمة - يمكنك إنشاء حزم الملصقات الخاصة بك عن طريق البوت stickers@. - لم يتم العثور على حزمة الملصقات - حاول مرة أخرى أو اختر من القائمة أدناه - - مخفي - الدعم - يكتب... - "يكتب… " - "يكتبون… " - %1$s يكتب... - %1$s يكتبون... - يسجل %1$s رسالةً صوتية... - يسجل %1$s رسالةً مرئية... - %1$s يقوم بإرسال مقطع صوتي... - يرسل %1$s صورة - استعراض فوري - فتح المجموعة - عرض الخلفية - عرض النمط - فتح القناة - عرض الرسالة - سيتم تفعيل النمط المظلم في الليل تلقائيًا - المراجع - %1$s يلعب لعبة... - يرسل %1$s مقطعًا مرئيًا... - يرسل %1$s ملفًا... - يسجل رسالة صوتية... - يسجل رسالة مرئية... - يرسل ملفًا صوتيًا... - يرسل صورة... - يلعب لعبة... - يرسل مقطعًا مرئيًا... - يرسل ملفًا... - هل لديك سؤالٌ ما\nحول تيليجرام؟ - المعرض - " موقع" - مقطع مرئي - ملف - الكاميرا - ما من رسائل هنا بعد... - ما من رسائل مجدولة هنا بعد... - تم التحويل من - من - %1$s - من: - لا توجد رسائل أحدث - الرسالة - الرسالة - جدولة الرسالة - مشاركة رقم هاتفي - مشاركة جهة اتصالي - إضافة لجهات الاتصال - %s دعاك للانضمام لمحادثة سرية. - لقد قمت بدعوة %s لمحادثة سرية. - المحادثات السرية: - تستخدم التشفير من البداية للنهاية - لا تترك أثرًا في خوادمنا - تملك عدادًا للتدمير الذاتي - تمنع تحويل الرسائل منها - تمت إزالتك من هذه المجموعة - لقد قمت بمغادرة المجموعة - حذف هذه المحادثة - حذف هذه المحادثة - حذف هذه المحادثة - حذف المحادثات - اسحب للإلغاء - حفظ في الجهاز - حفظ في الصور المتحركة - إزالة الصورة المتحركة من هنا؟ - حفظ في الجهاز - مشاركة - تطبيق ملف التعريب - تطبيق النمط من الملف - المرفق غير مدعوم - تعيين عداد التدمير - إشعارات الخدمة - يتم جلب معلومات الرابط... - فتح بواسطة... - فتح باستخدام... - إرسال %1$s - رفع %1$s - إرسال كملف - إرسال كملفات - فتح الرابط - هل ترغب في فتح %1$s؟ - تسجيل الدخول إلى %1$s من حساب **%2$s** - السماح لـ **%1$s** بمراسلتي - إلغاء الإرسال - هل ترغب في السماح لـ %1$s بإرسال اسمك وهويتك على تيليجرام للصفحات التي تفتحها عبر هذا البوت؟\n\nهويتك ليست رقمَ هاتفك. - المجموعة غير متعلقة بالموقع؟ - مجموعة غير متعلقة بالموقع - يرجى إخبارنا إذا كانت هذه المجموعة غير متعلقة بهذا الموقع:\n\n**%1$s** - يرجى إخبارنا إذا كانت هذه المجموعة غير متعلقة بهذا الموقع. - إبلاغ عن إزعاج - إبلاغ عن إزعاج - حظر %1$s - حظر المستخدم - إبلاغ عن إزعاج ومغادرة - إضافة كجهة اتصال - إضافة %1$s لجهات الاتصال - عرض جهة الاتصال - هل ترغب بحظر **%1$s** من مراسلتك والاتصال بك على تيليجرام؟ - هل ترغب بحظر الرسائل من **%1$s**؟ - هل ترغب حقًا في التبليغ عن إزعاج من هذا المستخدم؟ - هل ترغب حقًا في التبليغ عن إزعاج من هذه المجموعة؟ - هل ترغب حقًا في التبليغ عن إزعاج من هذه القناة؟ - المعذرة، يمكنك فقط مراسلة جهات الاتصال المشتركة في الوقت الحالي. - المعذرة، يمكنك فقط إضافة جهات الاتصال المشتركة للمجموعات في الوقت الحالي. - المعذرة، لقد تم حظرك من المشاركة في المجموعات العامة. - معلومات أكثر - إرسال إلى... - اكتب تعليقًا... - اضغط هنا للوصول للصور المتحركة المحفوظة - تثبيت - إشعار جميع الأعضاء - تثبيتها عندي وعند %1$s - إلغاء التثبيت - تثبيت الرسالة - إلغاء تثبيت الرسالة - "هل تريد تثبيت رسالة أقدم مع ترك أحدث رسالة مثبتة؟ " - تثبيت هذه الرسالة في المجموعة؟ - هل ترغب في تثبيت هذه الرسالة في هذه القناة؟ - هل ترغب في تثبيت هذه الرسالة أعلى هذه المحادثة؟ - إلغاء تثبيت هذه الرسالة؟ - حظر المستخدم - إبلاغ عن إزعاج - حذف جميع مشاركات %1$s - مسح الرموز التعبيرية الأخيرة - الابتسامات والناس - حيوانات وطبيعة - أطعمة وأشربة - أنشطة - التنقل والأماكن - أدوات - رموز - أعلام - تحديد الرسائل - الإبلاغ عن الرسائل - إبلاغ عن %1$s - تبليغ - تم إرسال البلاغ - إبلاغ عن إزعاج - إبلاغ عن انتحال - إبلاغ عن إباحية - إبلاغ عن إساءة للأطفال - إبلاغ عن عنف - يرجى إدخال أي تفاصيل إضافية تتعلق ببلاغك. - تفاصيل إضافيّة... - إرسال البلاغ - سيراجع المشرفون في تيليجرام بلاغك.\nشكرًا لك على تعاونك! - إزعاج - حساب مزوَّر - عنف - إباحية - إساءة للأطفال - أخرى - الوصف - رسالة مثبتة - الرسالة السابقة - استفتاء مثبت - معدلة - تعديل الرسالة - تعديل الوصف - انقر لتعديل الوسائط - تعديل هذه الصورة - تعديل المقطع - استبدال الصورة - استبدال المقطع - استبدال الوسائط - استبدال الملف - استبدال الملف الصوتي - مرِّر إلى الأسفل للبوتات - %1$s - المعذرة، انتهت مهلة تعديل الرسالة. - إضافة للشاشة الرئيسية - البحث عن أعضاء - قم بتحويل الرسائل إلى هنا لحفظها - الرسائل المحفوظة - قم بتحويل الرسائل إلى هنا لحفظها. - أنت - قمت بإنشاء **مجموعة**. - يمكن للمجموعات أن: - تضمَّ حتى 200,000 عضو - تمتلكَ سجل محادثة موحدًا - تمتلك روابط عامة مثل t.me/title - يديرَها مشرفون بصلاحيات مختلفة - قم بتحويل الرسائل إلى هنا لحفظها - أرسل الوسائط والملفات لحفظها - افتح هذه المحادثة عبر أي جهاز من أجهزتك - استخدم البحث لتجد الأشياء بسرعة - مساحتك السحابية - اذهب لهذا التاريخ - حذف من عند %1$s - حذف من عند كل الأعضاء - تم نسخ النص للحافظة - اضغط مطولًا للتسجيل الصوتي. - اضغط مطولًا لتسجيل الصوت، انقر للتحويل للمرئي. - اضغط مطولًا لتسجيل مرئي، انقر للتحويل للصوتي. - تجاهل الرسالة الصوتية - هل ترغب حقًا في إيقاف التسجيل وتجاهل الرسالة الصوتية؟ - تجاهل الرسالة المرئية - هل ترغب حقًا في إيقاف التسجيل وتجاهل الرسالة المرئية؟ - تجاهل - مشرفو هذه المجموعة قيدوك من إرسال الوسائط إليها حتى %1$s - قام مشرفو هذه المجموعة بتقييدك من إرسال أي محتوى استعلامي إليها حتى %1$s - مشرفو هذه المجموعة قيدوك من إرسال الملصقات إليها حتى %1$s - قام مشرفو هذه المجموعة بتقييدك من إرسال الصور المتحركة إليها حتى %1$s - مشرفو هذه المجموعة قيدوك من الكتابة فيها حتى %1$s - قام مشرفو هذه المجموعة بتقييدك من إرسال الوسائط إليها. - قام مشرفو هذه المجموعة بتقييدك من إرسال أي محتوى استعلامي إليها - قام مشرفو هذه المجموعة بتقييدك من إرسال الملصقات. - قام مشرفو هذه المجموعة بتقييدك من إرسال الصور المتحركة إليها. - قام مشرفو هذه المجموعة بتقييدك من الكتابة هنا. - لا يُسمح بإرسال الوسائط في هذه المجموعة. - لا يُسمح بإرسال محتوى استعلامي في هذه المجموعة. - لا يُسمح بإرسال الملصقات في هذه المجموعة. - لا يُسمح بإرسال الصور المتحركة في هذه المجموعة. - لا يُسمح بكتابة الرسائل في هذه المجموعة. - مشرف - "تثبيت ملفات APK محظور لهذا التطبيق، يمكنك السماح بهذا من إعدادات النظام. " - الرسائل غير المقروءة - بحث عن حزم الملصقات - البحث عن الملصقات الشائعة - بحث الرموز التعبيرية - الرابط - مزود معاينة الخرائط - مزود معاينة الخرائط - تيليجرام - جوجل - ياندكس - بلا معاينات - تثبيت خرائط جوجل؟ - احتيالي - مزوَّر - عبر - الرسالة غير موجودة - الوضع البطيء نشط. يمكنك إرسال\nرسالتك التالية بعد %1$s - انقر لأخذ صورة، اضغط باستمرار لتصوير مقطع مرئي - انقر للعرض في قائمة. - إرسال بدون صوت - إرسال كصورة جديدة - استبدال الصورة - إرسالها الآن - إعادة جدولة - اليوم - جدولة - جدولة الرسالة - الرسائل المجدولة - إرسال عندما يصبح %1$s متصلًا - التذكيرات - إنشاء تذكير - الرسائل المجدولة لـ %1$s - مجدولة إلى حين الاتصال - المعذرة، لا يمكنك جدولة أكثر من 100 رسالة. - سيكون من الممكن القيام بهذا الإجراء بعد نشر الرسالة. - سيكون من الممكن التصويت بعد نشر الرسالة. - ستصبح نتائج الاستفتاء متاحة بعد نشر الرسالة. - 📅 تذكير - نتيجة واحدة - جودة المقطع المرئي أقل مما ينبغي لتغيير إعدادات الضغط. - تم نسخ رقم البطاقة للحافظة - نسخ - أرسل الرمز التعبيري **🎲** لرمي حجر النرد. - أرسل الرمز التعبيري **🎯** لتجربة حظك. - أرسل الرمز %1$s لتجربة حظك. - إرسال - كوفيد-19 - PSA - تزودك هذه الرسالة بإعلان عام لمبادرة تتعلق بالجائحة الحالية كوفيد-19. تعرف على المزيد حول هذه المبادرة على https://telegram.org/blog/coronavirus - PSA info test - إشعار كوفيد-19 - تزودك هذه الرسالة بإعلان عام لمبادرة تتعلق بالجائحة الحالية كوفيد-19. تعرف على المزيد حول هذه المبادرة على https://telegram.org/blog/coronavirus - إشعار مهم - هذا إشعار مهم. - إخفاء المحادثة - هل ترغب حقًا في إخفاء هذه المحادثة؟ - إخفاء - أرسل رسالة أو اضغط على ملصق التحية أدناه لإرساله وإظهار أنك مستعد للتواصل. - "أرسل رسالة أو اضغط على التحية أدناه. " - %1$s على بعد %2$s - %1$s على بعد %2$s - تم نقل المحادثة إلى القائمة الرئيسية. - ي - ث - د - س - أس - إلى الرسائل الخاصة والمجموعات - نقل ملكية البوت - سيتم نقل **جميع حقوق الملكية** للبوت إلى المستخدم المحدّد. - تغيير المالك - يمكنك نقل هذا البوت في حال كان لديك: - كتابة تعليق - التعليقات - تعليق - الردود - ما من تعليقات هنا بعد... - ما من ردود هنا بعد... - عرضه في المحادثة - الإرسال متخفيًا - بداية المناقشة - عرض الموضوع - اختيار تاريخ - تساعدك هذه المحادثة في تتبع الردود على تعليقاتك في القنوات. - المعذرة، تمت إزالة هذا المنشور من مجموعة المناقشة. - إلغاء تثبيت كل الرسائل - إخفاء الرسائل المثبّتة - تم إخفاء الرسائل المثبّتة - ستظهر الرسائل المثبّتة مرة أخرى في حال تم تثبيت رسالة جديدة. - مستوردة - الملف الذي يتم استيراده كبير جدا. - فشل في رفع الملف. - "سيتم تشغيل الصوت بالسرعة العاديّة. " - "سيتم تشغيل الصوت أسرع بمرّتين. " - تم نسخ الرسالة إلى الحافظة. - تم إرسالها - تمت قرائتها - تم إرسال الرابط إلى **الرسائل المحفوظة**. - تم إرسال الرابط إلى **%1$s**. - تم إرسال الرابط إلى **%1$s**. - تم إرسال رابط الدعوة إلى **%1$s**. - تم تحويل الرسالة إلى **الرسائل المحفوظة**. - "تم تحويل الرسائل إلى ** الرسائل المحفوظة **. " - تم تحويل الرسالة إلى **%1$s**. - "تم تحويل الرسائل إلى **%1$s**. " - تم تحويل الرسالة إلى **%1$s**. - تم تحويل الرسائل إلى **%1$s**. - تم تحويل الرسالة إلى «%1$s». - تم تحويل الرسائل إلى «%1$s». - تم إرسال الخلفية إلى **الرسائل المحفوظة**. - تم إرسال الخلفية إلى **%1$s**. - تمت مشاركة الخلفية مع **%1$s**. - تم إرسال الخلفية إلى **%1$s** + أرسل لك %1$s رمز هدية للاشتراك لمدة %2$s في تيليجرام المميز + أرسل لك %1$s رسالة بخصوص السحب على %2$s x المميز لمدة %3$s أشهر. + نشرت قناة %1$s سحب %2$s من الاشتراك المُميّز بمدة %3$s أشهر. + أرسل %1$s رسالة حول سحب %3$sx المميز لمدة %4$s أشهر. للمجموعة %2$s + سحب مثبت من %1$s + تفاعل %1$s بالرمز %2$s على السحب الخاص بك + تفاعل %1$s مع %3$s في المجموعة %2$s على السحب الخاص بك عيّن %1$s عداد التدمير الذاتي ليصبح %2$s - قمت بتعيين عداد التدمير الذاتي ليصبح %1$s + لقد قمت بتعيين عداد التدمير الذاتي لـ %1$s %1$s عطّل عداد التدمير الذاتي لقد عطلتَ عداد التدمير الذاتي لديك رسالة جديدة 📅 أنت: %1$s 📅 أنت %1$s: %2$s - أرسل لك %1$s %2$s + %2$s من %1$s أرسل لك %1$s حُزمة وسائط حوَّل %1$s %2$s إليك أرسل لك %1$s رسالةً - أرسل لك %1$s صورةً - أرسل لك %1$s مقطعًا مرئيًا + %1$s صورة + مقطع مرئي من %1$s أرسل لك %1$s فاتورة %2$s أرسل لك %1$s صورةً ذاتية التدمير أرسل لك %1$s مقطعًا مرئيًا ذاتي التدمير @@ -1225,7 +120,7 @@ أرسل لك %1$s الاستفتاء «%2$s» أرسل لك %1$s موقعًا أرسل لك %1$s موقعًا حيًا - %1$s دعاك للعب %2$s + دعاك %1$s للعب %2$s أحرز %1$s %3$s في لعبة %2$s " أرسل لك %1$s ملفًا" أرسل لك %1$s صورةً متحركة @@ -1253,15 +148,26 @@ أرسل %1$s ملفًا صوتيًا لمجموعة %2$s أرسل %1$s ملصقًا لمجموعة %2$s أرسل %1$s ملصق %3$s لمجموعة %2$s + %1$s|تم سحب المبلغ: %2$s + %1$d ⭐ للوسائط + %1$d ⭐ للوسائط + تم إرسال منشور من قبل %2$s بقيمة نجمة + تم إرسال منشور من قبل %2$s بقيمة %1$d نجمة + نشر %2$s منشوراً مدفوع الأجر مقابل نجمة واحدة + نشر %2$s منشوراً مدفوع الأجر مقابل %1$d نجمة + %2$s تم ثبيت منشور مدفوع مقابل نجمة + %2$s تم ثبيت منشور مدفوع مقابل %1$d نجمة + نشر %2$s منشورًا مدفوع الأجر في مجموعة %3$s مقابل نجمة واحدة + نشر %2$s منشورًل مدفوع الأجر في مجموعة %3$s مقابل %1$d نجمة أضافك %1$s لمجموعة %2$s انضم %1$s للمجموعة %2$s غيّرَ %1$s صورة مجموعة %2$s - غيّر %1$s المقطع المرئي للمجموعة %2$s + غيّر %1$s صورة المجموعة %2$s %1$s أضاف %3$s للمجموعة %2$s - %1$s دعا %3$s إلى محادثة صوتية في %2$s - دعاك %1$s إلى محادثة صوتية في %2$s - بدأ %1$s محادثة صوتية في %2$s - أنهى %1$s المحادثة الصوتية في المجموعة %2$s + %1$s دعا %3$s إلى محادثة مرئية في %2$s + دعاك %1$s إلى محادثة مرئية في %2$s + بدأ %1$s محادثة مرئية في %2$s + أنهى %1$s المحادثة المرئية في %2$s عاد %1$s لمجموعة %2$s انضم %1$s لمجموعة %2$s %1$s أزال %3$s من المجموعة %2$s @@ -1279,9 +185,8 @@ مستخدم رسالة جديدة رد - الرد على %1$s - الرد على %1$s - تم تقييد البيانات الخلفية + رد + رد %1$s %2$s ثبّتَ %1$s «%2$s» في مجموعة %3$s ثبّتَ %1$s رسالةً في مجموعة %2$s @@ -1341,416 +246,31 @@ ثبّت %1$s صورة متحركة ثبّت %1$s ملفًا صوتيًا تيليجرام - - اختر جهة اتصال - تحديد جهات اتصال - مشاركة جهة الاتصال - مشاركة جهة الاتصال - إضافة جهة اتصال - لا توجد جهات اتصال بعد - مرحبا، أنا أستخدم تيليجرام للمحادثة، انضم إلي! قم بتنزيله من هنا: %1$s - في - يوم أمس عند - الساعة %1$s - اليوم عند %1$s - يوم أمس عند %1$s - متصل - آخر ظهور - آخر ظهور - آخر ظهور %1$s - آخر ظهور %1$s - دعوة أصدقاء - بحث جهات الاتصال - البحث العام - آخر ظهور كان قريبًا - آخر ظهور خلال أسبوع - آخر ظهور خلال شهر - آخر ظهور كان منذ زمن طويل - رسالة جديدة - اختر جهات اتصال لدعوتها إلى تيليجرام - دعوة إلى تيليجرام - شارك تيليجرام... - هل ترغب في تحديث جهات الاتصال؟ - اكتشف تيليجرام العديد من جهات الاتصال غير المزامَنة، هل ترغب في مزامنتها الآن؟ اختر «نعم» إذا كنت تستخدم جهازك الخاص وشريحتك وحساب جوجل الخاص بك. - مرتبة حسب الاسم - مرتبة حسب تاريخ آخر ظهور - إضافة %1$s - رقم الهاتف - ليس لديك جهات اتصال على تيليجرام بعد - دعوة الأصدقاء لتجربة تيليجرام - اعثر على الأشخاص القريبين للتحدث معهم - البحث عن أشخاص عبر اسم المستخدم - جهة اتصال جديدة - رقم الهاتف **%1$s** ليس في جهات اتصالك. هل تريد إضافته؟ - إضافة جهة اتصال - - إضافة أشخاص... - ستتمكن من إضافة المزيد من الأعضاء بعد انتهاءك من إنشاء المجموعة. - وصلت مجموعتك إلى الحد المسموح لعدد الأعضاء **200,000**.\n\nيمكنك زيادة هذا الحد بتحويل المجموعة إلى **مجموعة نشر** حيث يمكن للمشرفين فقط النشر.\nمتابعة؟ - بلغت الحد - معرفة المزيد - مجموعة نشر - تحويل إلى مجموعة نشر - يمكن لمجموعات النشر أن تضم أكثر من 200,000 عضو، لكن يُسمح للمشرفين فقط بنشر الرسائل فيها. - يمكن للمشرفين فقط إرسال الرسائل في هذه المجموعة. - يمكن لمجموعتك الآن أن تضم أكثر من 200,000 عضو. - أدخل اسم للمجموعة - اسم المجموعة - حتى %1$s - المعذرة، هذه المجموعة ممتلئة. - المعذرة، هذه المحادثة غير موجودة. - هذه القناة خاصة. يرجى الانضمام إليها لتتمكن من عرض محتواها. - هذه المجموعة خاصة. يرجى الانضمام إليها للاستمرار في عرض محتواها. - انضمام إلى القناة - انضمام إلى المجموعة - انضمام - تم نسخ الرابط للحافظة - تم نسخ الرابط للحافظة.\nلن يعمل هذا الرابط إلا لأعضاء هذه المحادثة. - سيعمل هذا الرابط لأعضاء هذه المحادثة فقط. - للأسف لا يمكنك الوصول إلى هذه الرسالة؛ أنت لست عضوًا في المحادثة التي تم نشرها فيها. - تم نسخ رقم الهاتف للحافظة - تم نسخ البريد للحافظة - استخدام رابط للدعوة إلى المجموعة - رابط الدعوة - روابط الدعوة - هل ترغب حقًا في تعطيل الرابط؟ إن قمت بذلك فلن يتمكن أحد من الانضمام بواسطته. - رابط الدعوة السابق لم يعد مفعَّلا، تم إنشاء رابط جديد بدلًا منه. - تعطيل - تعطيل الرابط - هل ترغب حقًا في تعطيل الرابط **%1$s**؟\n\nستصبح المجموعة «**%2$s**» خاصة. - هل ترغب حقًا في تعطيل الرابط **%1$s**؟\n\nستصبح القناة «**%2$s**» خاصة. - نسخ الرابط - مشاركة الرابط - يمكن لأي شخص لديه تيليجرام الانضمام إلى مجموعتك عبر هذا الرابط. - البحث عن أشخاص... - البحث عن مستخدمين ومجموعات... - مجموعات النشر - لا حد لعدد الأعضاء. - يمكن للمشرفين فقط إرسال الرسائل. - "لا يمكن إعادتها إلى مجموعة عادية. " - تحويل إلى مجموعة نشر - تركها كمجموعة عادية - هل أنت متأكد؟ - سيفقد الأعضاء (غير المشرفين) صلاحية نشر الرسائل في المجموعة **إلى الأبد**.\n\n **لا يمكن** التراجع عن هذا الإجراء. - تحويل - إذا غيرت رأيك؛ اذهب إلى إعدادات مجموعتك > الصلاحيات. - - الأعضاء - الوسائط المتبادلة - الإعدادات - "إضافة مشترك " - إضافة عضو - إضافة مشرفين - حظر من المجموعة - مغادرة المجموعة وحذفها - حذف ومغادرة المجموعة - الإشعارات - تغيير صلاحيات العضو - إزالة من المجموعة - قم بالتحديث لمجموعة خارقة - تحويل إلى مجموعة خارقة - تحويل إلى مجموعة خارقة - تحذير - تحذير: هذا القرار لا يمكن التراجع عنه، لن تتمكن من إعادة المجموعة الخارقة إلى مجموع عادية مرة أخرى. - **تم بلوغ الحد الأقصى للأعضاء**\n\nلمزيد من المساحة والميزات الإضافية؛ قم بالترقية إلى مجموعة خارقة:\n\n • يمكن للمجموعات الخارقة استيعاب %1$s عضو\n • يمكن للأعضاء الجدد رؤية سجل المحادثات بالكامل\n • تختفي الرسائل المحذوفة لكل الأعضاء\n • يمكن للمشرفين إضافة وصف للمجموعة\n • يمكن للمالك إنشاء رابط عام للمجموعة - ** في المجموعات الخارقة:**\n\n• يمكن للأعضاء الجدد مشاهدة محتوى المحادثة كاملًا\n• تختفي الرسائل المحذوفة من أجهزة جميع الأعضاء\n• يمكن للمشرفين إضافة وصفٍ للمجموعة\n• يمكن لمالك المجموعة إنشاء رابط عام لها - **ملحوظة:** لا يمكنك التراجع عن هذا القرار. - - مشاركة جهة الاتصال - إضافة لجهات الاتصال - إضافة جهة اتصال - دعوة إلى تيليجرام - لم يقم %1$s بالتسجيل في تيليجرام بعد. هل ترغب في دعوتهم؟ - دعوة - حظر - حظر وحذف الردود - حظر المستخدم - حظر المستخدم - حظر المستخدمين - هل ترغب بحظر **%1$s** من مراسلتك والاتصال بك على تيليجرام؟ - هل ترغب بحظر **%1$s** من مراسلتك والاتصال بك على تيليجرام؟ - تم حظر المستخدم - تم إلغاء حظر المستخدم - تعديل جهة الاتصال - حذف الجهة - منزل - جوال - العمل - آخر - الرئيسية - المهنة - الميلاد - اللقب - إنشاء جهة اتصال جديدة - جهة اتصال جديدة - إضافة إلى جهة اتصال موجودة - النبذة التعريفية - أضف بضعَ كلمات عن نفسِك - لا شيء - بإمكانك إضافة بعض المعلومات عن نفسك. يمكن لمن يستعرض حسابك رؤية هذه المعلومات. - إنشاء محادثة سرية - المجموعات المشتركة - المجموعات المشتركة - ما من مجموعات مشتركة - حدث خطأ ما. - مفتاح التشفير - عداد التدمير الذاتي - إن قمت بتعيين العداد فسيتم تدمير الصورة تلقائيًا بعد مشاهدتها. - إن قمت بتعيين العداد فسيتم تدمير المقطع المرئي تلقائيًا بعد مشاهدته. - إيقاف - تم اشتقاق الصورة والنص من مفتاح تشفير هذه المحادثة السرية مع **%1$s**.\n\nإن كانت مطابقة لما يظهر على جهاز **%2$s**، فالتشفير من البداية للنهاية مضمون.\n\nللاستزادة، اطلع على telegram.org - https://telegram.org/faq/ar#g - غير معروف - غير معروف - رقم الهاتف مخفي - سيصبح رقمك ظاهرًا حالما يقوم %1$s بإضافتك كجهة اتصال. - بمجرد ضغطك على **تم** سيصبح رقم هاتفك ظاهرًا لـ %1$s. - مشاركة رقم هاتفي مع %1$s - تمت إضافة %1$s إلى قائمة جهات اتصالك. - معلومات - هاتف - الوسائط المتبادلة - الصور والمقاطع المرئية - الروابط - الصوتيات - إرسال رسالة - تبليغ - %1$d رابط دعوة - رابط دعوة واحد - رابطا دعوة - %1$d روابط دعوة - %1$d رابط دعوة - %1$d رابط دعوة - تم نسخ اسم المستخدم إلى الحافظة. - تم نسخ الوسم في الحافظة. - تم نسخ النبذة في الحافظة. - تم حذف %s من جهات اتصالك اسم المستخدم - اسم المستخدم الخاص بك - عذرًا، هذا الاسم محجوز. - المعذرة، اسم المستخدم غير مقبول. - يجب ألا يقل اسم المستخدم عن 5 حروف. - لا يمكن أن يتخطى الاسم 32 حرفًا كحد أقصى. + أيضًا %1$s + اسم المستخدم + اسم المستخدم هذا مأخوذ مسبقًا. + هذا الرابط مأخوذ مسبقًا.\nبالرغم من ذلك، هو متاح حاليًا للشراء. **معرفة المزيد…** + عذرًا، اسم المستخدم غير صالح. + يجب ألا يقل اسم المستخدم عن 5 أحرف. + يجب أن يحتوي اسم المستخدم الأساسي على 5 أحرف على الأقل.\nمع ذلك، فإن أسماء المستخدم القصيرة القابلة للتحصيل بما في ذلك هذا الاسم متاحة للشراء. **معرفة المزيد…** + يجب ألا يزيد اسم المستخدم عن 32 خانة. لا يمكن لاسم المستخدم أن يبدأ برقم. يمكنك اختيار اسم مستخدم في **تيليجرام**.\nإذا قمت بذلك سيتمكن الآخرون من العثور عليك باسم المستخدم والتواصل معك دون الحاجة لرقم هاتفك.\n\nيمكنك استخدام **الحروف والأرقام الإنجليزية** وكذلك الشَّرطة السفلية. الطول الأدنى هو **5 خانات**. - يقوم هذا الرابط بفتح محادثة معك:\n%1$s + يفتح هذا الرابط محادثة معك:\n%1$s يتم التحقق من اسم المستخدم... %1$s متاح. لا شيء حدث خطأ ما. - - الملصقات والأقنعة - تكرار الملصقات المتحركة - ستستمر الملصقات المتحركة بالتكرار داخل المحادثات. - الملصقات المتحركة - إضافة الملصقات - إضافة %1$s - إزالة %1$s - إضافة أقنعة - إضافة إلى الملصقات - إضافة للمفضلة - تمت إضافة الملصق للمفضلة - تم إزالة الملصق من المفضلة - تمت إزالة الملصق من الأخيرة - مستخدمة حديثًا - المفضلة - ملصقات المجموعة - المزيد من الملصقات - احذف من المفضلة - إزالة من الأخيرة - إضافة إلى الأقنعة - لم يُعثر على الملصقات - تمت إزالة الملصقات - لم تعد %1$s في ملصقاتك. - تم حذف الأقنعة - لم يعد %1$s في أقنعتك. - تمت أرشفة الملصقات. - تم نقل %1$s إلى أرشيفك. - تمت أرشفة الأقنعة. - تم نقل %1$s إلى أرشيفك. - تمت إضافة ملصقات جديدة - تمت إضافة %1$s إلى ملصقاتك. - تمت إضافة أقنعة جديدة - تمت إضافة %1$s إلى أقنعتك. - أرشفة - مشاركة - نسخ الرابط - إعادة ترتيب - إزالة - حرّك الملصقات لإعادة الترتيب. - لا يوجد ملصقات بعد - لم يتم العثور على ملصقات - لم يتم العثور على صور متحركة - لم يتم العثور على رموز - لا توجد أقنعة بعد - اقتراحات الرموز التعبيرية - يسمح لك **تيليجرام** بالعثور على الرموز التعبيرية عبر آلاف الكلمات، لكن من المؤكد أنه لايزال هناك نقصٌ ما، في حال كنت ترغب في اقتراح كلمة مفتاحية جديدة لرمز تعبيري ما، يمكنك مساعدتنا عبر زيارة: - https://translations.telegram.org/%1$s/emoji - الأقنعة - يمكنك إضافة أقنعة للصور التي ترسلها، لعمل ذلك قم بفتح محرر الصور قبل إرسال الصورة. - الملصقات الشائعة - الصور المتحركة الشائعة - اقتراح ملصقات عبر الرموز - جميع الحزم - حزمي - إيقاف - هذه الملصقات شائعة حاليًا على تيليجرام، يمكنك إضافة ملصقات مخصصة عبر البوت @stickers. - الرسامون مرحب بهم لإضافة حزم ملصقاتهم عبر مراسلة بوت @stickers - الملصقات المؤرشفة - الأقنعة المؤرشفة - ما من ملصقات مؤرشفة - ما من أقنعة مؤرشفة - يمكنك الاحتفاظ بـ ٢٠٠ حزمة ملصقات نشطة.\nستتم أرشفة الحزم غير المستخدمة عند إضافتك للمزيد. - يمكنك الاحتفاظ بـ 200 حزمة أقنعة كحدٍ أقصى.\nستتم أرشفة الحزم غير المستخدمة عند إضافتك للمزيد. - إرسال الملصق - الملصقات المؤرشفة - تمت أرشفة بعض من حزم الملصقات الخاصة بك. يمكنك تفعيل هذه الحزم ان طريق إعدادات الملصقات. - الأقنعة المؤرشفة - تمت أرشفة بعض من حزم الأقنعة الخاصة بك. يمكنك إعادة تفعيل هذه الحزم عن طريق إعدادات الأقنعة. - حذف %1$s - هل ترغب حقًا في حذف حزم الملصقات المحددة؟ - أرشفة %1$s - هل ترغب حقًا في أرشفة حزم الملصقات المحددة؟ - استيراد %1$s - Processing stickers... - إزالة من الاستيراد - Remove from import - أدخل اسمًا - يرجى اختيار اسم لحزمة ملصقاتك. - يمكنك استخدام الأرقام والأحرف اللاتينية والشرطة السفلية. - عذرًا، هذا الرابط غير صالح. - يجب أن لا يقل الرابط عن 5 أحرف. - يجب أن لا يزيد الرابط عن 32 حرفًا. - يتم التحقق من الرابط... - هذا الرابط متاح. - عذرًا، هذا الرابط مأخوذ مسبقًا. - استيراد الملصقات - تم استيراد الملصقات بنجاح! - استيراد المزيد من الملصقات إلى تيليجرام ومشاركتها مع أصدقاءك. - - النمط - الوضع الليلي الآلي - معطَّل - معطَّل - مجدول - تلقائي - الجدولة - إعدادات النظام - استخدام التوقيت المحلي للشروق والغروب - تحديث الموقع - يتطلب حساب مواعيد الشروق والغروب التحقق لمرة واحدة من موقعك التقريبي. يرجى العلم أن موقعك يتم حفظه في جهازك فقط.\n\nالغروب: %1$s\nالشروق: %2$s - من - حتى - النمط الليلي المفضل - مؤشر السطوع - قم بالتبديل للنمط الليلي عند انخفاض الإضاءة المحيطة إلى %1$d%% أو أقل. - مظلم - أزرق غامق - نهاري - ليلي - ثلجي - تقليدي - حذف النمط - هل ترغب حقًا في حذف هذا النمط؟ - ملف النمط غير صحيح - اضغط على **إنشاء** إذا كنت ترغب في مشاركة نمطك مع الآخرين أو تخصيص كل لون يدويًّا.\n\nيرجى إدخال اسم النمط: - أدخل اسم النمط - أغلق المحرر - حفظ النمط - نمط جديد - لون النمط - تم تغيير النمط. - يمكنك إعادة تغييره في *إعدادات المحادثات*. - الأنماط الافتراضية - الأنماط المخصصة - تعيين رابط - رابط النمط - زوايا الرسالة - عرض قائمة المحادثات - خطين اثنين - ثلاثة خطوط - إنشاء نمط - تطبيق - معاينة النمط - اختر لونًا - الأنماط - عرض جميع الأنماط - لم يتم العثور على النمط - المعذرة، هذا النمط لا يدعم جهازك بعد. - إنشاء نمط جديد - نمط جديد - تعديل النمط - اضغط على أيقونة الألوان لاستعراض قائمة الخيارات في كل شاشة - ثم قم بتعديلها. - يمكنك إنشاء النمط الخاص بك عبر تغيير الألوان داخل التطبيق.\n\nيمكنك العودة إلى نمط تيليجرام الافتراضي في أي وقت من هنا. - يمْكنك استخدام الأحرف والأرقام الإنجليزية، والشرطاتِ السفلية.\nالحد الأدنى هو 5 خانات. - سيتم تحديث نمطك لجميع مستخدميه في كل مرةٍ تقوم بتغيير شيء ما فيه. يستطيع أي شخص تطبيقه عبر هذا الرابط:\n%1$s - سيكون بإمكان أي شخص تطبيق نمطك عبر هذا الرابط. سيتم تحديثه لجميع مستخدميه في كل مرةٍ تقوم بتغيير شيء ما فيه.\n\nسيعتمد النمط على ألوانك وخلفيتك المختارة حاليًا. - يمكنك تغيير رابط نمطك.\n\nيجب ألا تقل روابط الأنماط عن 5 حروف ويمكن أن تحتوي على الأحرف والأرقام الإنجليزية، والشرطاتِ السفلية. - المعذرة، اسم النمط غير صالح. - المعذرة، هذا الرابط غير مقبول. - يجب ألا يقل الرابط عن 5 حروف. - لا يمكن أن يتخطى الرابط 64 حرفًا كحد أقصى. - عذرًا، لا يمكن للرابط بأن يبدأ برقم. - يتم التحقق من الرابط... - عذرًا، هذا الرابط محجوز. - %1$s متاح. - الرابط - الاسم - سلمى منصور - كل سنة وأنتِ سالمة. 😊 ❤️ ✨ - وليد - سلّم على سلمى 👋 - جاد غالي - موعدنا الساعة 2. لا تتأخر. - أخي الصغير - لا تخبر الأهل، أنا قادم لأزوركم في الأيام القليلة المقبلة! - صور مضحكة - صوتوا الآن! هل ينبغي أن ننشر المزيد من صور القطط؟ - مريم خياط - ما رأيك بهذه الصور؟ - علياء - ملصق 😍 - نيكولاس محمود - كنافة؟! أنا قادم فورًا! 🏃 - أحمد - هل أنت جاهز أم أنك تحتاج لبعض الوقت؟ - سنخبرهم بالطبع! هل تتذكر كيف انتهت آخر مفاجأة؟ - بلى، أنا جاهز للانطلاق في أي وقت! هل سنخبرهم بقدومنا أم نجعلها مفاجأة؟ - أيمن - "أنا متحمس للغاية! " - هلا بالخميس - معن برغوث - أيمن - صباح الخير!👋 - صباح الخير - ماهو الوقت الآن؟ - الوقت صباح هنا في *دبي* 😎 - استخدام نمط آخر - يمكنك أيضًا اختيار أحد الأنماط الحالية كأساس لنمطك الجديد. - اختر نمطًا - تصدير - إنشاء - اللون التمييزي - الخلفية - رسائلي - إعادة تعيين الكل - إعادة تعيين - هل ترغب حقًا في تغيير خلفية المحادثة إلى لون؟ - "هل تريد استخدام الخلفية المختارة حاليا أم إعادة تعيين الأساسية لهذا النمط؟ " - مشاركة المظهر - تعديل الألوان - إعادة تعيين - إعادة تعيين الإعدادات - هل ترغب حقًا في إعادة تعيين إعدادات حجم الخط والألوان؟ - حذف المظهر - فتح في المحرر - حفظ التغييرات؟ - هل ترغب في تطبيق الألوان الجديدة التي اخترتها؟ + لا يوجد تم تعيين كل الإشعارات إلى الوضع الافتراضي إعادة تعيين كل الإشعارات هل ترغب حقًا في إعادة تعيين جميع إعدادات الإشعارات إلى الوضع الافتراضي؟ + استعادة الإعدادات الافتراضية + إعادة تعيين الإشعارات + هل تريدون فعلًا إعادة تعيين إعدادات الإشعارات إلى الافتراضية؟ حجم خط الرسائل اسأل سؤالًا إضافة شرح @@ -1761,13 +281,13 @@ مساعدة المعالجة الحساب - إلغاء الحظر - اضغط باستمرار على المستخدم لرفع الحظر عنه + إلغاء حظر المستخدم لا يوجد مستخدمون محظورون بعد - إشعارات الرسائل عرض الإشعارات - معاينة الرسائل - إشعارات المجموعات + إظهار معاينة للرسالة + إظهار اسم المرسل + الاستثناءات التلقائية + التمكين التلقائي لإشعارات القصة لأكثر ٥ مستخدمين تواصلت معهم. الصوت إشعارات داخل التطبيق أصوات داخل التطبيق @@ -1776,12 +296,12 @@ معاينة داخل التطبيق إعادة تعيين إعادة تعيين كل الإشعارات - إعادة تعيين كافة إعدادات الإشعارات المخصصة لجميع جهات الاتصال، المجموعات والقنوات. + التراجع عن كل إعدادات الإشعارات المخصَّصة لجهات اتصالك وللمجموعات والقنوات الإشعارات والأصوات الإشعارات المخصصة الإشعارات المنبثقة ستظهر الرسائل الجديدة من هذا المستخدم على الشاشة حتى لو كنت خارج تطبيق تيليجرام. - LED + الضوء اللون أزرق أحمر @@ -1789,14 +309,12 @@ أخضر سماوي أبيض - بني - مظلم زهري - مقاس الخط + حجم الخط نوع الخط بنفسجي برتقالي - الـ LED هو إضاءة صغيرة تومض في بعض الأجهزة كإشعار مرئي بالرسائل الجديدة. + إضاءة صغيرة على بعض الأجهزة تومض للتنبيه بالرسائل الجديدة. ستعمل الإشعارات الأكثر أهمية حتى في حال تفعيل وضعية عدم الإزعاج. عام مكتومة @@ -1804,47 +322,45 @@ مفعَّلة معطَّلة معطَّلة حتى %1$s - الافتراضي (مفعَّلة) - الافتراضي (معطَّلة) تشغيل إيقاف المستخدمون المحظورون - لن يتمكن المستخدمون المحظورون من مراسلتك أو مشاهدة آخر ظهور لك. + لن يتمكن المستخدمون المحظورون من مراسلتك أو إضافتك إلى مجموعات. لن يروا صور ملفك الشخصي وقصصك وحالة اتصالك وآخر ظهور لك. حظر المستخدم المحادثات جهات الاتصال تسجيل الخروج - بدون صوت - افتراضي + بلا صوت + الافتراضي الدعم فقط في وضع الصامت - تأثير ضبابي - تأثير حرَكي + ضبابية + متحركة تغيير خلفية المحادثة + تغيير لون الاسم + المظهر + المظهر خلفية المحادثة إعادة تعيين الخلفيات - لإزالة جميع الخلفيات المرفوعة واستعادةِ الخلفيات الافتراضية لكل الأنماط. + إزالة كل الخلفيات المرفوعة واستعادة الخلفيات الافتراضية. إعادة تعيين الخلفيات - هل ترغب حقًا في إعادة تعيين كافة خلفيات المحادثة؟ - هل ترغب حقًا في حذف الخلفيات المحددة؟ + هل أردت فعلًا إعادة تعيين كل خلفيات المحادثة؟ + هل أردت فعلًا حذف الخلفيات المحددة؟ معاينة الخلفية - ملحوظة: بعض الخلفيات تصبح أجمل عند إضافة التأثير الضبابي. + ملحوظة: بعض صور الخلفيات تبدو أفضل مع التأثير الضبابي. وااو! شكرًا لك - اسحب لليمين أو لليسار لرؤية المزيد من الألوان. - استخدم النقش لإضفاء لمسة جمالية. أيمن صباح الخير! 👋 ماهو الوقت الآن؟ الوقت صباح هنا في دبي 😎 - اضغط على «تعيين» لتطبيق الخلفية. - استمتع بالخلفية. - تعيين كخلفية + يمكنك الضغط على «تعيين» لتطبيق الخلفية. + تبدو رائعة. بحث بواسطة اللون - البحث عن خلفيات + البحث عن صور اللون: - السطوع - رمز اللون Hex ألوان + ستتحرك الألوان عند إرسال الرسائل + تحريك نقش اختيار النقش الشدة @@ -1860,9 +376,7 @@ الأسود الرمادي الأبيض - اختيار لون - رفع صورة - تحديد صورة + تحديد لون يتم تحميل الصورة... تعيين لون الرسائل @@ -1870,16 +384,29 @@ الأحداث انضمام جهة اتصال لتيليجرام الرسائل المثبتة + ترجمة الرسائل + إظهار زر الترجمة + ترجمة المحادثات بأكملها + عدم ترجمة + + لغة واحدة + لغتين + %1$d لغات + %1$d لغةً + %1$d لغةٍ + اختيار اللغات + سيظهر زر «الترجمة» عند الضغط مرة واحدة على رسالة نصيّة. + قد تتمكن Google من الوصول إلى نص الرسائل التي ترجمتها. اللغة مخصص تغييرُ اللغة؟ أنت على وشك تطبيق حزمة اللغة (**%1$s**) والمكتملة بنسبة %2$d%%.\n\nسيؤدي هذا إلى ترجمة الواجهة بالكامل، يمكنك اقتراح التصحيحات في [منصة الترجمة].\n\nيمكنك تغيير لغتك مرة أخرى في أي وقت من خلال الإعدادات. أنت على وشك تطبيق حزمة اللغة المخصصة (**%1$s**) والمكتملة بنسبة %2$d%%.\n\nسيؤدي هذا إلى ترجمة الواجهة بالكامل، يمكنك اقتراح التصحيحات في [منصة الترجمة].\n\nيمكنك تغيير لغتك مرة أخرى في أي وقت من خلال الإعدادات. البيانات غير كافية - لغات غير رسمية - تعذر العثور على هذه اللغة. + تعذر العثور على اللغة. أنت تستخدم حزمة اللغة (**%1$s**) بالفعل، يمكنك تغيير لغتك في أي وقت عبر الإعدادات. للأسف، لا تحتوي حزمة اللغة المخصصةُ هذه (**%1$s **) على بيانات لتيليجرام للأندرويد. + الدعم الفني في تيليجرام يقوم به متطوعون يحاولون الرد سريعًا قدر الإمكان، لكن ذلك قد يستغرق بعض الوقت.\n\nيرجى الاطلاع على<a href=\"https://telegram.org/faq/ar#a\"> الأسئلة الشائعة عن تيليجرام</a> فهي تحوي إجابات لمعظم الأسئلة <a href=\"https://telegram.org/faq/ar#j\">وحلولًا للعديد من المشاكل.</a> اسأل متطوعًا الأسئلة الشائعة الأسئلة الشائعة @@ -1890,11 +417,13 @@ https://telegram.org/faq/ar سياسة الخصوصية شروط الخدمة - عبر تسجيلك\nأنت توافق على *شروط الخدمة*. + تسجيلك يعني موافقتك\nعلى *شروط الخدمة*. https://telegram.org/faq/ar#a10 + https://telegram.org/tos + https://telegram.org/tos/mini-apps حذف حزمة اللغة هل ترغب حقًا في حذف حزمة اللغة **%1$s**؟ - ملف التعريب غير صحيح + ملف الترجمة غير صالح التشغيل المستمر في الخلفية إعادة تشغيل التطبيق عند إيقافه. قم بالتفعيل لضمان ظهور الإشعارات. الاتصال في الخلفية @@ -1903,14 +432,14 @@ استيراد جهات الاتصال الاسم الأول اسم العائلة - لون إضاءة الـ LED + لون الضوء الإشعارات المنبثقة بدون إشعارات منبثقة في حال تشغيل الشاشة فقط في حال إغلاق الشاشة فقط - أظهرها دائمًا + إظهارها دائمًا شارةُ عدّاد الرسائل - مفعَّلة + إظهار أيقونة الشارة تضمين المحادثات المكتومة عدد الرسائل غير المقروءة قصير @@ -1939,41 +468,49 @@ تنزيل الملفات والمقاطع الصوتية تلقائيًا تنزيل الصور تلقائيًا تنزيل المقاطع المرئية والصور المتحركة تلقائيًا - الحجم الأقصى للمقطع المرئي + الحجم الأقصى للفيديو الحجم الأقصى للملف تجهيز المقطع التالي البدءُ بتحميل المقطع التالي أثناء استماعك لمقطعٍ صوتي. تجهيز المرئيات الكبيرة - تحميل الثواني الأولى (1-2 م.ب) من المقاطع المرئية الأكبر من %1$s لمشاهدتها فورَ الضغط عليها. - قم بالتفعيل إذا كنت ترغب في تحميل الوسائط تلقائيًا عبر البيانات الخلوية. + تحميل الثواني الأولى (1-2 م.ب) من المقاطع المرئية الأكبر من %1$s لمشاهدتها فور الضغط عليها. + تفعيل هذا الخيار في حال رغبتك بتحميل الوسائط تلقائيًا عبر بيانات الجوال. قم بالتفعيل إذا كنت ترغب في تحميل الوسائط تلقائيًا عند التجوال. - قم بالتفعيل إذا كنت ترغب في تحميل الوسائط تلقائيًا عبر شبكات الـ Wi-Fi. + يرجى تشغيل هذا الخيار في حال رغبتك بتحميل الوسائط تلقائيًا عبر الواي فاي. على البيانات الخلوية عند التجوال - على الـ Wi-Fi + على الواي فاي استهلاك البيانات أنواع الوسائط الرسائل الصوتية صغيرة للغاية، لذا يتم تنزيلها دائمًا. - لا وسائط + معطّل ما من صور متحركة + " إعدادات التنزيل التلقائي" + يمكنك تغيير إعدادات التنزيل التلقائي لتقليل استخدام بيانات الجوال. + يمكنك تغيير إعدادات التنزيل التلقائي لتقليل استخدام البيانات عند الاتصال بشبكة واي فاي. + يمكنك تغيير إعدادات التنزيل التلقائي لتقليل استخدام البيانات أثناء التجوال. "إعادة تعيين إعدادات التنزيل التلقائي " إعادة تعيين الإعدادات "هل ترغب حقًا في إعادة تعيين إعدادات التنزيل التلقائي؟ " - عند استخدام البيانات الخلوية - عند الاتصال بالـ Wi-Fi + عند استخدام بيانات الجوال + عند الاتصال بالواي فاي عند التجوال الصور المتحركة المقاطع المرئية اضغط على أزرار الصوت لتشغيله. تم إخفاء الحساب من قِبل المستخدم. + تم إخفاء هذا الحساب من قبل المستخدم تشغيل الوسائط تلقائيًا الرفع للتحدث + تسجيل الرسائل الصوتية برفع الهاتف إلى أذنك + الرفع للاستماع + نقل الصوت إلى سماعة الأذن عن طريق رفع الهاتف إلى أذنك حفظ في المعرض تم كتم الصوت تعديل الاسم + تغيير لون الملف الشخصي تخصيص مخصص - تفعيل الإشعارات المخصصة الأهمية كما في الإعدادات منخفضة @@ -1982,13 +519,14 @@ مهمة جدًا مطلقًا إعادة الإشعارات - يمكنك تغيير رقم تيليجرام الخاص بك هنا، سيتم نقل حسابك وجميع بياناتك التي في سحابة تيليجرام بما فيها رسائلك، الوسائط، جهات الاتصال وغيرها للرقم الجديد. + يمكنك تغيير رقم تيليجرام الخاص بك هنا. سيتم نقل حسابك وجميع بياناتك التي في سحابة تيليجرام -بما فيها الرسائل، الوسائط، جهات الاتصال وغيرها- إلى الرقم الجديد. سيحصل المستخدمون على رقمك الجديد في حال وجوده في جهات اتصالهم أو في حال كانت إعدادات خصوصيتك تسمح لهم برؤيته. يمكنك تغيير ذلك في الإعدادات > الخصوصية والأمان > رقم الهاتف. تغيير الرقم تغيير الرقم + إبقاء %1$s الرقم الجديد - سيتم إرسال رسالة SMS قصيرة تحوي رمز التأكيد إلى رقمك الجديد. - الرقم %1$s مرتبط بالفعل بحساب آخَر على تيليجرام. يرجى حذف ذلك الحساب قبل محاولة تغيير رقمك. + سوف يستلم رقمك الجديد رمز التفعيل عبر مكالمة أو رسالة SMS نصيّة. + الرقم %1$s مرتبط بالفعل بحساب آخَر على تيليجرام. يرجى حذف ذلك الحساب قبل استخدام هذا الرقم. غير ذلك تعطيل مفعَّلة @@ -2010,51 +548,41 @@ هل ترغب حقًا بحذف جميع الاستثناءات؟ استثناء جديد "يحوي هذا القسم على جميع المحادثات التي تملك إعدادات إشعارات مخصصة.\n\nيمكنك تخصيص إشعارات المحادثات عبر فتح صفحاتها واختيار \'الإشعارات\'. " - لا شيء %1$d / %2$s تعطيل - تكرار صوت التنبيه - %1$s خلال %2$s معاينة الروابط - يتم توليد معاينات الروابط على خوادم تيليجرام. لا نقوم بتخزين المعلومات حول الروابط التي ترسلها. + يتم توليد معاينات الروابط على خوادم تيليجرام. لا نقوم بتخزين أي بيانات عن الروابط التي ترسلونها. المحادثات السرية - المتصفح الداخلي - فتح الروابط الخارجية داخل التطبيق مشاركة مباشرة إظهار آخر المحادثات في قائمة المشاركة الرموز التعبيرية رموز تعبيرية كبيرة - استخدم الرموز التعبيرية الافتراضية تيليجرام للأندرويد %1$s - قائمة المعالجة - إرسال السجلات - إرسال أحدث السجلات - مسح السجلات - تفعيل السجلات - تعطيل السجلات - استيراد جهات الاتصال - إعادة تنزيل جهات الاتصال - إعادة تعيين المحادثات - "قراءة كل المحادثات " - تفعيل إيقاف الصوتيات عند التسجيل - تعطيل إيقاف الصوتيات عند التسجيل - تفعيل لوحة المفاتيح السلسة - تعطيل لوحة المفاتيح السلسة - تفعيل الكاميرا الداخلية للتطبيق - تعطيل الكاميرا الداخلية للتطبيق - إعادة ضبط جهات الاتصال المستوردة - حذف الوسائط المرسَلة من الذاكرة المؤقتة - إعدادات المكالمات يمكنك تغيير لغة التطبيق لاحقًا من الإعدادات. - اختر لغتك + اختيار اللغة أخرى + لصق + قلب + النقر على عنصر لاقتصاصه + قص الخلفية + قص عنصر + التراجع عن القص + تراجع + إضافة حدود + مسح + استعادة + تحرير لصق من الحافظة إعدادات البروكسي تفاصيل البروكسي بروكسي الاتصالات + تمت إضافة البروكسي. إضافة بروكسي حذف البروكسي؟ + حذف البروكسي + هل أردت فعلًا حذف هذا البروكسي؟ + هل أردت فعلًا حذف هذه البروكسيات؟ استخدام بروكسي الخادم كلمة المرور @@ -2065,30 +593,27 @@ بروكسي MTProto لم يتم إعداد البروكسي الذي تستخدمه بشكل صحيح وسيتم تعطيله. يرجى العثور على واحد آخر. راعي البروكسي - تُعرض هذه القناة من قبل البروكسي. لإزالة هذه القناة من قائمة محادثاتك؛ عطّل اتصال البروكسي من إعدادات تيليجرام. + تُعرض هذه القناة من قبل البروكسي. يمكنك إزالة هذه القناة من قائمة محادثاتك بتعطيل اتصال البروكسي من إعدادات تيليجرام> البيانات والتخزين. إعدادات بروكسي SOCKS5 إعدادات بروكسي MTProto. - قد يعرض هذا البروكسي قناة إعلانية في قائمة محادثاتك.\nلن يكشف هذا عن أي من بيانات تيليجرام الخاصة بك. + قد يعرض هذا البروكسي قناة إعلانية في قائمة محادثاتك.\nلن يكشف هذا عن نشاطك في تيليجرام. استخدام البروكسي للمكالمات قد تقلل خوادم البروكسي من جودة مكالماتك. تفعيل ملحوظة مساحة جهازك ممتلئة تقريبًا، لتحرير مساحة إضافية يمكنك جعل تيليجرام يقوم بالتخزين المؤقت للوسائط الحديثة فقط. - احذف الوسائط بعد - عدم الإزالة + مساحة القرص على جهازك على وشك النفاد. يمكنك استخدام إعدادات ذاكرة التخزين المؤقت لإزالة الوسائط غير الضرورية. يمكنك إعادة تنزيل الملفات إذا احتجت إليها مرة أخرى. + إدارة ذاكرة التخزين المؤقت جهات الاتصال المحادثات الخاصة - محادثات المجموعات + المجموعات القنوات تقييد بالحجم حتى %1$s البث - بَثُّ الصوتيات والمقاطع المرئية - بعض المقاطع المرئية لا يمكن بثها – على سبيل المثال: كل المقاطع المرئية التي تم إرسالها من نسخة التطبيق 4.7 أو ما قبلها. + تشغيل الوسائط قبل تنزيلها + عندما يكون ذلك ممكنًا؛ سيبدأ تيليجرام بتشغيل المقاطع المرئية والصوتية على الفور، دون انتظار اكتمال تنزيل الملفات. انقر لتغيير رقم الهاتف - المظهر - الملصقات والأقنعة - اختيار لون مخصص للتطبيق إظهار الإشعارات من كل الحسابات عطّل هذا الخيار إذا كنت تريد استلام الإشعارات فقط من الحساب الذي تستخدمه حاليًا. @@ -2096,22 +621,25 @@ المحادثات الخاصة المجموعات القنوات + القصص + التفاعلات يرجى ملاحظة أن **%1$s** مدرجة كاستثناءات ولن تتأثر بهذا التغيير. يرجى ملاحظة أن **%1$s** مدرجة كاستثناءات ولن تتأثر بهذا التغيير. عرض الاستثناءات - إشعارات المجموعات - إشعارات المحادثات الخاصة - إشعارات القنوات انقر للتغيير خيارات بديلة إضافة حساب آخر إضافة حساباتك الأخرى على تيليجرام والتبديل بينها بسهولة. - تعيين رمز مرور + تعيين رمز القفل تأمين التطبيق برمز مرور لحمايته من المتطفلين. مسح الذاكرة المؤقتة + مسح المُحددة "تفريغ بعض المساحة من جهازك؛ ستبقى وسائطك في السحابة. " + يتم مسح التخزين المؤقت + يرجى إبقاء النافذة مفتوحة أثناء قيام تيليجرام بتنظيف تخزينك المؤقت. تغيير رقم الهاتف نقلُ حسابك مع ما يحويه من محادثات ووسائطَ لرقمٍ آخر. + تم تغيير رقم هاتفك بنجاح إلى %1$s. التواصل مع الدعم أخبرنا عن أي مشاكلَ تواجهك؛ تسجيل الخروج ليس حلا ناجحا في العادة. تسجيل الخروج @@ -2129,29 +657,33 @@ ميل مسح رمز QR مسح رمز QR - رمز غير صالح أو منتهي الصلاحية. لم يتم العثور على رمز مصادقة تمّت المصادقة بنجاح https://desktop.telegram.org + https://web.telegram.org/ قم بتنزيل تيليجرام على حاسوبك من *desktop.telegram.org*. - افتح تيليجرام على سطح المكتب للحصول على رمز QR. + يرجى فتح تيليجرام على سطح المكتب للحصول على رمز QR. امسح رمز الـ QR لربط حسابك. يمكن استخدام هذا الرمز للسماح لشخص ما بتسجيل الدخول إلى حسابك في تيليجرام.\n\nلتأكيد عملية تسجيل الدخول؛ يرجى الذهاب إلى الإعدادات > الأجهزة > مسح QR وامسح الرمز. - يحتاج تيليجرام الوصول إلى الكاميرا لتتمكن من مسح رمز QR. + يحتاج **تيليجرام** الوصول للكاميرا ليتمكن من مسح رموز QR. يرجى الذهاب إلى الإعدادات > الأذونات > تشغيل **الكاميرا**. "تعيين صورة للملف الشخصي " تحديث تيليجرام الإصدار %1$s • %2$s - "يتم تنزيل %1$d%%... " + يتم التنزيل… %1$d%% تحديثه الآن تنزيله الآن تذكيري لاحقًا **ما الجديد؟**\n\n• إصلاح للمشاكل وتحسينات أخرى. الرابط الأساسي لم يعد الرابط نشطًا - إلغاء التحويل - اختيار محادثة أخرى - هل تريد إلغاء التحويل أم تحويل الرسائل إلى محادثة أخرى؟ + ما الذي تود فعله بـ %1$s من محادثتك مع %2$s؟ + ما الذي تود فعله بـ %1$s من %2$s؟ + إظهار أسماء المرسِلين + إخفاء أسماء المرسِلين + إظهار اسم المرسِل + إخفاء اسم المرسِل إجراءات السحْب لقائمة المحادثات + اختيار الإجراء المُراد تنفيذه عند تمريرك إلى اليسار في قائمة المحادثات. تثبيت مقروءة أرشفة @@ -2170,353 +702,31 @@ تم تحديث الاسم. تم تحديث اسم القناة. تم تحديث وصف القناة. - - قاعدة البيانات على الجهاز - مسح قاعدة البيانات المحلية - هل ترغب حقًا في مسح الرسائل النصية من الذاكرة المؤقتة؟ - مسح قاعدة البيانات المحلية سيؤدي لحذف الرسائل التي تم تنزيلها وضغط قاعدة البيانات لتوفير مساحة على جهازك. يحتاج تيليجرام لبعض البيانات ليعمل، لذا لن يصل حجم قاعدة البيانات إلى الصفر.\n\nقد تستغرق هذه العملية بضع دقائق لإكمالها. - مسح الذاكرة المؤقتة - مسح - يتم الحساب... - المستندات - الصور - الرسائل الصوتية والمرئية - المقاطع المرئية - الصوتيات - الصور المتحركة - الملفات الأخرى - فارغة - الاحتفاظ بالوسائط - سيتم حذف جميع الصور، المقاطع المرئية، وجميع الملفات المحفوظة في خوادمنا والتي **لم تقم باستخدامها** خلال هذه المدة لتوفير المساحة على هذا الجهاز.\n\nمع ذلك ستبقى جميع الملفات في خوادم تيليجرام، ويمكنك إعادة تنزيلها مرة أخرى متى ما احتجتها. - للأبد - الرسائل الصوتية - الرسائل المرئية - - جواز تيليجرام - المعلومات المطلوبة - المعلومات المضافة - ماهو جواز تيليجرام؟ - مع جواز تيليجرام يمْكنك التسجيل في المواقع والخدمات التي تتطلب توثيق الهوية الشخصية بسهولة.\n\nمعلوماتك، بياناتك الشخصية ووثائقك محمية ومشفرة من البداية للنهاية، لا أحد بما فيهم تيليجرام ذاتُه يمكنه الوصول إليها دون إذنك. \n\nلمزيد من التفاصيل يمكنك زيارة *الأسئلة الشائعة*. - https://telegram.org/faq/ar#i7 - "يرجى إنشاء كلمة مرور لحماية بياناتك الشخصية باستخدام التشفير من البداية للنهاية.\n\nستُطلب كلمة المرور هذه في كل مرة تقوم فيها بتسجيل الدخول لجهازٍ جديد. " - إنشاء كلمة مرور - حذف جواز تيليجرام - حذف جواز تيليجرام - هل ترغب حقًا في حذف جواز تيليجرام الخاص بك؟ - يرجى استخدام الأحرف اللاتينية فقط - قم برفع نسخ ترجمة موثّقة عن جواز سفرك. - قم برفع نسخ ترجمة إنجليزية موثّقة عن جوازك الداخلي. - قم برفع نسخ ترجمة إنجليزية موثّقة عن رخصتك للقيادة. - قم برفع نسخ ترجمة إنجليزية موثّقة عن بطاقة هويتك الشخصية. - قم برفع نسخة من فاتورتك الخدمية. - قم برفع نسخة من كشف حسابك المصرفي. - قم برفع نسخة من عقد الإيجار الخاص بك. - قم برفع نسخة من صفحة تسجيل جوازك - قم برفع نسخة من تسجيلك المؤقت. - لتأكيد عنوانك, يرجى رفع نسخة من الوثائق التالية (جميع الصفحات). - قم برفع نسخ ترجمة إنجليزية موثّقة عن فاتورتك الخدمية. - قم برفع نسخ ترجمة إنجليزية موثّقة عن كشف حسابك المصرفي. - قم برفع نسخ ترجمة إنجليزية موثّقة عن عقد الإيجار الخاص بك. - قم برفع نسخ ترجمة إنجليزية موثّقة عن صفحة تسجيل جوازك. - "قم برفع نسخ ترجمة إنجليزية موثّقة عن تسجيلك المؤقت. " - قم برفع نسخ ترجمة إنجليزية موثّقة عن الوثيقة المحددة. - إضافة فاتورة خدمية - إضافة كشفِ حساب مصرفي - إضافة عقد إيجار - العنوان - عنوان السكن - أضف عنوانك - رفع دليل لإثبات عنوان السكن - العنوان - الشارع - الشارع - الرمز البريدي - المدينة - الولاية/المنطقة - الدولة - رقم الهاتف - حذف رقم الهاتف؟ - قم بإدخال رقم هاتفك - استخدام %1$s - استخدام نفس الرقم المُستخدم في تيليجرام. - استخدام البريد المُستخدم في تيليجرام. - أو أدخل رقم هاتف جديد - تنويه: سيصلك رمز التأكيد عبر رقم الهاتف المختارِ أعلاه. - البريد - حذف البريد الإلكتروني؟ - قم بإدخال بريدك الإلكتروني - "تنويه: سيصلك رمز التأكيد عبر البريد الإلكتروني الذي أضفتَه. " - الرمز - قم بإدخال رمز التأكيد الذي أرسلناه إلى %1$s. - يرجى إدخال كلمة مرورك للوصول إلى بياناتك الشخصية. - يطلب **%1$s** الوصول لبياناتك الشخصية لتسجيلك في خدماتهم. - أدخل كلمة مرورك في تيليجرام لفك تشفير بياناتك - أنت توافق على سياسة خصوصية %1$s وتسمح لـ@%2$s بمراسلتك. - أنت ترسل وثائقك إلى %1$s مباشرةً وتسمح لـ@%2$s بمراسلتك. - السماح - إضافة جواز - إضافة جواز داخلي - تسجيل الجواز - تسجيل مؤقت - إضافة بطاقة الهويّة - إضافة رخصة قيادة - المعلومات الشخصية - قم بتعبئة معلوماتك الشخصية - وثيقة الهوية - قم برفع نسخة من جوازك أو أي هوية شخصية - قم برفع نسخة من جوازك - قم برفع نسخة من جوازك الداخلي - قم برفع نسخة من بطاقة هويتك الشخصية - قم برفع نسخة من رخصتك للقيادة - المعلومات الشخصية - تفاصيل الوثيقة - الاسم - الاسم الأوسط - اسم العائلة - الاسم (بالأحرف اللاتينية) - الاسم الأوسط (بالأحرف اللاتينية) - اسم العائلة (بالأحرف اللاتينية) - الاسم (%1$s) - الاسم الأوسط (%1$s) - اسم العائلة (%1$s) - تحديد الجنس - ذكر - أنثى - تاريخ الميلاد - الجنس - رقم جواز السفر - تاريخ الانتهاء - الجنسية - الإقامة - صورة شخصية - الوثائق المطلوبة - قم برفع صورة ذاتية لك بينما تقوم بحمل الوثيقة - الترجمة - الوجه الأمامي - رفع صورة عن الوجه الأمامي لهذه الوثيقة - الوجه الخلفي - رفع صورة عن الوجه الخلفي لهذه الوثيقة - الصفحة الرئيسية - رفع صورة عن الصفحة الرئيسية لجواز السفر - تحديد تاريخ انتهاء الصلاحية - لا تنتهي صلاحيتها - بلا - تحديد تاريخ الولادة - حذف الصورة الذاتية؟ - يجب أن تحتوي الوثيقة على الصورة الشخصية، الاسم الأول والعائلي، تاريخ الميلاد، رقم المستند، بلد الإصدار، وتاريخ انتهاء الصلاحية. - هل ترغب حقًا في تجاهل جميع المعلومات التي أدخلتها؟ - تجاهل - النسخ - حذف الوثيقة - حذف - هل ترغب بحذف هذه النسخة؟ - هل ترغب بحذف هذه الصورة الذاتية؟ - هل ترغب بحذف هذه الوثيقة؟ - هل ترغب حقًا في حذف معلوماتك الشخصية؟ - هل ترغب بحذف معلومات العنوان؟ - حذف المعلومات الشخصية - حذف معلومات العنوان - حذف النسخة؟ - رفع النسخ - رفع نسخ إضافية - لا يمكنك رفع أكثر من %1$s. - يمكنك رفع ملفات الصور فقط. - تصوير جوازك - قم بتصوير منطقة القراءة الآلية من جوازك أو بطاقة هويتك الشخصية لتعبئة بياناتك تلقائيًا. - إضافة وثيقة - لا تملك أيَّ وثائقَ حتى الآن - يمكنك إضافة رقم هاتفك، بريدك الإلكتروني، وثيقة الهوية الشخصية، أو عنوان السكن. - انقر لتصحيح الأخطاء. - %1$s أو %2$s - اسمك - اسمك ب%1$s - اسمك في لغة دولة إقامتك (%1$s). - يرجى التأكد إن كان هذا الاسم صحيحًا:\n\n%1$s %2$s %3$s - العربية - الأذرية - البلغارية - البنغالية - التشيكية - الدانماركية - الألمانية - المالديفية - الدزونكية - الإغريقية - الإسبانية - الأستونية - الفارسية - الفرنسية - العبرية - الكرواتية - الهنغارية - الأرمنية - الأندونيسية - الأيسلندية - الإيطالية - اليابانية - الجورجية - الخميرية - الكورية - اللاوية - اللتوانية - اللاتفية - المقدونية - المنغولية - الملاوية - البورمية - النبالية - الهولندية - البولندية - البرتغالية - الرومانية - الروسية - السلوفاكية - السلوفينية - التايلندية - التركمانية - التركية - الأوكرانية - الأوزبكية - الفيتنامية - - الجلسات النشطة - هذا الجهاز - ما من جلسات أخرى نشطة حاليًا - يمكنك تسجيل الدخول لحسابك في تيليجرام عبر جوال، جهاز لوحي، أو جهاز حاسوب آخر باستخدام رقم الهاتف ذاته. سيقوم تيليجرام بمزامنة كافة بياناتك بشكل فوري. - الجلسات النشطة - تحكم بجلساتك على الأجهزة الأخرى. - اضغط على أي جلسة لإنهائها. - إنهاء هذه الجلسة؟ - هل ترغب حقًا في إنهاء هذه الجلسة؟ - لتسجيل الخروج من جميع الأجهزة عدا هذا الجهاز - إنهاء الجلسات - إنهاء الجلسة - إنهاء - هل ترغب حقًا في إنهاء جميع الجلسات الأخرى؟ - إنهاء جميع الجلسات الأخرى - تطبيق غير رسمي - ما من دخولٍ مسجَّل نشط حاليًا - يمكنك تسجيل الدخول عبر تيليجرام إلى المواقع التي تدعم ذلك. - المواقع المتصلة - تم تسجيل الدخول إليها عبر تيليجرام - اضغط لفك الارتباط من حسابك في تيليجرام. - هل ترغب حقًا في فك الارتباط مع %1$s؟ - فك الارتباط مع الموقع - فك الارتباط مع المواقع - فك الارتباط - حظر %1$s - فك الارتباط مع كل المواقع - هل ترغب حقًا في فك الارتباط مع كل المواقع التي سجلت دخولك إليها عبر تيليجرام؟ - يمكنك تسجيل الدخول عبر تيليجرام إلى المواقع التي تدعم ذلك. - محاولات تسجيل الدخول غير المكتملة - لا تملك هذه الأجهزة إمكانية الوصول إلى حسابك، تم إدخال رمز الدخول المطلوب، لكن لم يتم تقديم كلمة مرور صحيحة. - - المجلّدات - إعداد - قم بإعداد المجلدات - إنشاء مجلّد جديد - أنشئ مجلدات لمختلف المجموعات والمحادثات وتنقّل بينها بسرعة. - المجلدات المقترحة - كل المحادثات - الكل - ترتيب التبويبات - تعديل المجلّد - تعديل المجلدات - جهات الاتصال - آخرون - المجموعات - القنوات - استثناء المكتومة - استثناء المقروءة - تعديل - حذف - استثناء المؤرشفة - غير مقروءة - إزالة المجلد - المكتومة - المقروءة - المؤرشفة - تضمين محادثات - استثناء محادثات - إضافة محادثات - استثناء محادثات - أنواع المحادثات - المحادثات - المحادثات المضمنة - المحادثات المستثناة - اختر المحادثات وأنواع المحادثات التي ستظهر في هذا المجلد. - اختر المحادثات وأنواع المحادثات التي لن تظهر في هذا المجلد. - المحادثات السرية - البوتات - يتم إضافة المحادثات - يرجى الانتظار بضع لحظات ريثما نقوم بملء هذا المجلد لك... - المجلّد فارغ - ما من محادثات تنتمي لهذا المجلد حاليًّا. - مجلّد جديد - ما من محادثات - جهة اتصال - آخرون - إضافة استثناء - اسم المجلد - هل ترغب حقًا في إزالة هذا المجلد؟ لن تُحذف محادثاتك. - تطبيق التغييرات؟ - لقد قمت بتعديل هذا المجلد. هل تريد تطبيق التغييرات؟ - إنشاء مجلد؟ - لم تنته من إنشاء المجلد بعد. إنشاء الآن؟ - إنشاء - إظهار %1$d محادثة أخرى - إظهار محادثة أخرى - إظهار محادثتين أخرى - إظهار %1$d محادثات أخرى - إظهار %1$d محادثة أخرى - " إظهار %1$d محادثة أخرى" - إزالة الاستثناء - إزالة الاستثناء - هل ترغب حقًا في إزالة «%1$s» من قائمة المستثناة دائمًا؟ - هل ترغب حقًا في إزالة «%1$s» من قائمة المستثناة دائمًا؟ - هل ترغب حقًا في إزالة «%1$s» من قائمة المستثناة دائمًا؟ - هل ترغب حقًا في إزالة «%1$s» من قائمة المضمّنة دائمًا؟ - هل ترغب حقًا في إزالة «%1$s» من قائمة المضمّنة دائمًا؟ - هل ترغب حقًا في إزالة «%1$s» من قائمة المُضمّنة دائمًا؟ - مجلدات المحادثات - افتح *الإعدادات > المجلدات* لتنظيم محادثاتك في مجلدات. - غير المكتومة - غير مقروءة - إضافة إلى مجلد - إزالة من المجلد - اختر مجلّدا - تمت إضافة **%1$s** إلى **%2$s** - تمت إضافة **%1$s** إلى **%2$s** - تمت إضافة **%1$s** إلى **%2$s** - تمت إزالة **%1$s** من **%2$s** - تمت إزالة **%1$s** من **%2$s** - تمت إزالة **%1$s** من **%2$s** - وصلت الحد الأقصى - عذرًا، لايمكنك استثناء أكثر من 100 محادثة من مجلد. - - رمز القفل - تغيير رمز القفل - عندما تقوم بتعيين رمز قفل إضافي، ستظهر أيقونة قفل أعلى صفحة المحادثات، اضغط عليها لإقفال تيليجرام أو فتحِه.\n\nملحوظة: إذا نسيت رمز القفل ستحتاج لحذف التطبيق وإعادةِ تثبيته، ستَفقد كافة محادثاتك السرية. - رقم - كلمة مرور - قم بإدخال رمز قفلك الحالي - أدخل رمز القفل - قم بإدخال رمز قفلك الجديد - أدخل رمز قفلك - أعد إدخالَ رمز قفلك الجديد - رموز القفل غير متطابقة - القفل التلقائي - طلب رمز القفل إن غِبتُ لفترةٍ ما. - بعد %1$s - معطَّل - فتح القفل عبر البصمة - قم بتأكيد البصمة للاستمرار - مستشعر اللمس - لم يتم التعرف على البصمة. حاول مرة أخرى. - عرض المحتوى عند التبديل بين التطبيقات - إذا تم التعطيل فلن تتمكن من تصوير الشاشة داخل التطبيق، لكن سيتم إخفاء محتوى المحادثات في شاشة تعدد المهام. - سيؤدي هذا لإخفاء محتوى محادثاتك من شاشة تعدد المهام، لكن بالمقابل لن تتمكن من أخذ لقطات الشاشة في تيليجرام.\n\nقد تحتاج لإعادة تشغيل التطبيق ليتم تفعيل هذا الخيار. - محاولات عديدة.\nأعد المحاولة بعد %1$s. + هل لا يزال %1$s رقمك؟ + يرجى إبقاء رقم هاتفك محدّثًا؛ لضمان قدرتك على تسجيل الدخول إلى تيليجرام. **معرفة المزيد** + https://telegram.org/faq/ar#g2 + نعم + لا + + يحتاج تيليجرام الوصول إلى التخزين للتمكّن من إرسال وحفظ: الصور، الفيديو، الوسائط والمستندات. يرجى تمكين **الملفات والوسائط** في إعدادات الهاتف > الأذونات. + يحتاج تيليجرام الوصول إلى المايكروفون لتتمكنوا من إرسال الرسائل الصوتية. يرجى تمكين **المايكروفون** في إعدادات الهاتف > الأذونات. + يحتاج تيليجرام الوصول إلى المايكروفون لتتمكنوا من إرسال الرسائل الصوتية. يرجى تمكين **المايكروفون** في إعدادات الهاتف > الأذونات. + يحتاج تيليجرام الوصول إلى الكاميرا لتتمكنوا من التقاط الصور والمقاطع المرئية. يرجى تمكين **الكاميرا** في إعدادات الهاتف > الأذونات. + يحتاج تيليجرام الوصول إلى المايكروفون لتتمكنوا من إرسال الرسائل المرئية. يرجى تمكين **المايكروفون** في إعدادات الهاتف > الأذونات. + يحتاج تيليجرام إلى السماح له بتحديد موقعك لتتمكن من مشاركته مع أصدقائك. + يحتاج تيليجرام الوصول إلى موقعك الجغرافي للتمكن من إضافة أداة الطقس إلى قصصك. + يحتاج **تيليجرام** الوصول إلى الموقع لتتمكنوا من مشاركته مع أصدقائكم. يرجى تمكين **الموقع** في إعدادات الهاتف > الأذونات. + يحتاج **تيليجرام** الوصول إلى الموقع لتتمكنوا من معرفة الاتجاهات. يرجى تمكين **الموقع** في إعدادات الهاتف > الأذونات. + يحتاج **تيليجرام** الوصول إلى جهات الاتصال كي تتمكنوا من مشاركتها مع أصدقائكم. يرجى تمكين **جهات الاتصال** في إعدادات الهاتف > الأذونات. + يحتاج تيليجرام الوصول إلى التخزين لتمكينك من رفع صور للملف الشخصي. يرجى تمكين **الملفات والوسائط** في إعدادات الهاتف > الأذونات. + يحتاج **تيليجرام** الوصول إلى الملفات الصوتية لإضافتها إلى قصتك. يرجى الذهاب إلى الإعدادات > الأذونات وتشغيل **الموسيقى والصوت**. + يحتاج تيليجرام إلى صلاحية الظهور فوق التطبيقات لتشغيل المقاطع المرئية في وضع (صورة في الصورة). + "يتيح لك الوضع العائم استخدام المايكروفون ومعرفة من الذي يتحدث عندما تكون خارج تيليجرام. " + الإعدادات + يرجى السماح لتيليجرام بالظهور على شاشة القفل للتمكن من إجراء المكالمات دون مشاكل. + "لمشاركة موقعك المباشر في هذه المحادثة؛ يحتاج تيليجرام الوصول إلى موقعك باستمرار، بما في ذلك أثناء عمل التطبيق في الخلفية.\n\n سنستخدم موقعك للمدة التي تختارها أنت فقط ويمكنك التوقف عن مشاركته في أي وقت. لن نستخدم موقعك لأي غرض بخلاف مشاركته في هذه المحادثة. " + صورة داخل صورة + المحادثة المرئية العائمة يناير فبراير @@ -2531,336 +741,130 @@ نوفمبر ديسمبر الملفات - الوسائط + وسائط الوسائط المتبادلة المجموعات - الروابط - الصوتيات + روابط + صوتيات الرسائل الصوتية - الصور المتحركة - الملفات المتبادلة + صور متحركة الوسائط المتبادلة - الروابط المتبادلة - الصوتيات المتبادلة + قنوات مشابهة شارك الصور والمقاطع المرئية في هذه المحادثة للوصول إليها عبر أي جهاز من أجهزتك. يمكنك إرسال مقاطع صوتية إلى هذه المحادثة والوصول إليها عبر أجهزتك الأخرى. شارك الملفات والمستندات في هذه المحادثة لتتمكن من الوصول إليها عبر أي جهاز من أجهزتك. شارك الروابط في هذه المحادثة لتتمكن من الوصول إليها عبر أي جهاز من أجهزتك. - شارك الرسائل الصوتية في هذه المحادثة للوصول إليها عبر أي جهاز من أجهزتك. + مشاركة الرسائل الصوتية في هذه المحادثة للوصول إليها عبر أي جهاز من أجهزتك. الصور والمقاطع المرئية من هذه المحادثة ستظهر هنا. - المقاطع الصوتية من هذه المحادثة سيتم عرضها هنا. + الصوتيات من هذه المحادثة سيتم عرضها هنا. الملفات والمستندات من هذه المحادثة سيتم عرضها هنا. سيتم عرض الروابط المتبادلة في هذه المحادثة هنا. - ستجد الرسائل الصوتية من هذه المحادثة هنا. + الرسائل الصوتية من هذه المحادثة ستظهر هنا. سيتم عرض الصور المتحركة من هذه المحادثة هنا. - - الخريطة - قمر صناعي - مختلطة - على بُعد %1$s م - على بُعد %1$s ك.م - على بُعد %1$s قدم - على بُعد %1$s ميل - %1$s قدم - %1$s ميل - ميل - كم - %1$s م - %1$s كم - يبعد %1$s م عنك - يبعد %1$s كم عنك - يبعد %1$s ق عنك - يبعد %1$s ميل عنك - الاتجاهات - لم يتم العثور على أي مكان - ما من أماكن باسم **%1$s** بجانبك. - إرسال موقعي الحالي - مشاركة موقعي الحي لمدة... - مشاركة موقعي الحي - إيقاف مشاركة الموقع - إيقاف مشاركة الموقع - هل ترغب في التوقف عن مشاركة موقعك الحي مع **%1$s**؟ - هل ترغب في التوقف عن مشاركة موقعك الحي مع **%1$s**؟ - هل ترغب في التوقف عن مشاركة موقعك الحي؟ - يتم تحديثه مباشرةً أثناء تنقلك - إرسال الموقع المختار - الموقع - مكان - دقيق لدرجة %1$s - على بُعد %1$s - أو اختر مكانًا - انقر لإرسال هذا الموقع - المواقع الحية - الموقع المباشر - لمدة 15 دقيقة - لمدة ساعة - لمدة 8 ساعات - تم تحديثه - تم تحديث الموقع %1$s - تم تحديثه الآن - أنت و%1$s - %1$s تتم مشاركته مع %2$s - تتم مشاركة %1$s مع %2$s - أنت تشارك %1$s مع %2$s - إيقاف الكل - تقوم بمشاركة موقعك الحي مع %1$s - اختر المدة التي سيتمكن خلالها %1$s من مشاهدة موقعك الفعلي. - اختر المدة التي سيتمكن خلالها أعضاء هذه المحادثة من مشاهدة موقعك الحي. - تفعيل خدمات الموقع - يرجى تفعيل خدمات الموقع لاستخدام ميزات تيليجرام التي تحتاجها. - إظهار نفسي - إظهار ملفك الشخصي؟ - سيتمكن المستخدمون القريبون من مشاهدة ملفك الشخصي وإرسال الرسائل إليك. قد يساعدك هذا في العثور على أصدقاء جدد، لكنه قد يجلب لك أيضًا الإزعاج. يمكنك التوقف عن مشاركة ملفك الشخصي في أي وقت.\n\n سيبقى رقم هاتفك مخفيًّا. - إيقاف إظهاري - الأشخاص القريبون - البحث عن الأشخاص القريبين - أضف الأشخاص القريبين الذين يستعرضون هذا القسم أيضًا واكتشف المجموعات المحلية بكل سهولة.\n\nاسمح بالوصول إلى موقعك لتفعيل هذه الميزة. - الأشخاص القريبون - السماح بالوصول - أضف الأشخاص القريبين الذين يستعرضون هذا القسم أيضًا واكتشف المجموعات المحلية بكل سهولة.\n\nقم بتشغيل خدمات الموقع لتفعيل هذه الميزة. - تشغيل - المجموعات القريبة منك - تبادل معلومات التواصل مع الأشخاص القريبين وتعرّف على أصدقاء جدد. - يتم البحث عن مستخدمين قريبين منك... - إنشاء مجموعة محلية - إنشاء مجموعة - أي شخص قريب من هذا الموقع (الجيران، زملاء العمل، الطلاب، الزوار، السُيّاح) سيرى مجموعتك في قسم الأشخاص القريبون. - في حال قمت بإنشاء مجموعة غير متعلقة بهذا الموقع، قد يتم منعك من إنشاء مجموعات محلية جديدة. - تعيين موقع - تعيين هذا الموقع - سيكون بإمكان الناس العثور على مجموعتك في قسم «الأشخاص القريبون». - الأماكن في هذه المنطقة - تنبيه الاقتراب - نبّهني عندما يكون %1$s على بعد %2$s - نبهني عندما يكون أي عضو على بعد %1$s - أنت أقرب من %1$s - مشاركة الموقع - مشاركة - لكي يعمل التنبيه؛ شارك موقعك المباشر في هذه المحادثة. - التنبيه عندما يكون %1$s قريبًا - التنبيه عندما يكون أعضاء المجموعة قريبين - تنبيه الاقتراب يعمل - "سيتم تنبيهك بمجرد أن يكون %1$s على بعد %2$s منك. " - "سيتم تنبيهك بمجرد أن يكون أي عضو على بعد %1$s منك. " - تم إلغاء التنبيه بالاقتراب - - عرض في لائحة - عرض كمصفوفة - عرض كل الوسائط - إظهار الملصقات - عرض جميع الملفات - عرض كل الصور المتحركة - انقر للتحميل - فتح الملف - إظهار في المحادثة - إيقاف التنزيل - حفظ في المعرض - %1$d من %2$d - **%1$d** من %2$d - المعرض - كل الصور - كل الوسائط - جميع المقاطع المرئية - لا توجد صور بعد - فضلًا، قم بتنزيل الوسائط أولًا - يرجى الانتظار إلى حين اكتمال تنزيل المقطع المرئي. - هذا المقطع غير مخصص للبث، قد تحتاج إلى تنزيله كاملًا قبل مشاهدته. - لم يتمكن التطبيق من تشغيل هذا المقطع المرئي، هل ترغب في تشغيله بمشغل خارجي؟ - ما من عمليات بحث تمت مؤخرًا - الصور - الصور المتحركة - لا يوجد صور متحركة حديثة - بحث الصور - البحث في الويب - بحث الصور المتحركة - البحث في الويب - بحث عن صور متحركة - انقر للسماح بالوصول إلى الكاميرا - انقر للسماح بالوصول إلى المعرض - قص الصورة - تحسين - التفتيح - التباين - تفتيح - الدفء - التشبع - نقش - الظلال - حبوب - زيادة الحدة - التلاشي - مظهر أنعم - الظلال - الإضاءات - الكل - أحمر - أخضر - أزرق - إيقاف - طولي - قُطري - حذف الصورة - هل ترغب حقًا في حذف هذه الصورة؟ - حذف المفطع المرئي - هل ترغب حقًا في حذف هذا المقطع المرئي؟ - حذف الصورة المتحركة - هل ترغب حقًا في حذف هذه الصورة المتحركة؟ - هل تريد بالتأكيد حذف هذه الصورة من عند الجميع؟ - هل تريد بالتأكيد حذف هذا المقطع المرئي من عند الجميع؟ - هل تريد بالتأكيد حذف هذه الصورة المتحركة من عند الجميع؟ - تجاهل التغييرات؟ - هل ترغب حقًا في تجاهل جميع التغييرات؟ - مسح سجل البحث؟ - هل ترغب حقًا في مسح سجل البحث؟ - مسح سجل البحث - سجل البحث - هل ترغب حقًا في إزالة «%1$s» من سجل بحثك؟ - هل ترغب حقًا في إزالة «%1$s» من سجل بحثك؟ - إزالة - مسح - إضافة وصف... - وصف الصورة - وصف المقطع المرئي - وصف الصورة المتحركة - الوصف - حذف - تعديل - قلم - قلم التحديد - مضيئ - سهم - تكرار - حدود - عادي - بإطار - إعادة تعيين - الأصلي - مربع - إرسال الوسائط في رسائل متفرقة - تجميع الوسائط في رسالة واحدة - إرسال دون تجميع - إرسال دون ضغط - اختر غلافا للمقطع المرئي في ملفك الشخصي - تعيين كأساسي - فتح في المحرر - صورة العرض الأساسية لملفك الشخصي. - المقطع المرئي الأساسي لملفك الشخصي. - صورة العرض الأساسية للقناة. - المقطع المرئي الأساسي للقناة. - صورة العرض الأساسية للمجموعة. - المقطع المرئي الأساسي للمجموعة. - تم حفظ الصورة في المعرض - تم حفظ المقطع المرئي في المعرض - تم حفظ الصورة في التنزيلات - تم حفظ المقطع في التنزيلات - تم حفظ الصورة المتحركة في التنزيلات - تم حفظ الملف في الموسيقى - تم حفظ الملف في التنزيلات - تم حفظ %1$d ملفات في التنزيلات - تم حفظ ملف في التنزيلات - تم حفظ ملفين في التنزيلات - تم حفظ %1$d ملفات في التنزيلات - تم حفظ ١١ ملفًا في التنزيلات - تم حفظ %1$d ملف في التنزيلات - تم حفظ %1$d صورة في المعرض - تم حفظ الصورة في المعرض - تم حفظ صورتين في المعرض - تم حفظ %1$d صور في المعرض - تم حفظ %1$d صورة في المعرض - تم حفظ %1$d صورة في المعرض - تم حفظ %1$d مقاطع في المعرض - تم حفظ المقطع المرئي في المعرض - تم حفظ مقطعين في المعرض - تم حفظ %1$dمقاطع مرئية في المعرض - تم حفظ %1$d مقطعًا مرئيًا في المعرض - تم حفظ %1$d مقطع مرئي في المعرض - تم حفظ %1$d ملفات صوتيّة - تم حفظ الملف الصوتيّ - تم حفظ ملفّين صوتيين - تم حفظ %1$d ملفات صوتيّة - تم حفظ %1$d ملفًا صوتيًا - تم حفظ %1$d ملف صوتي - تم حفظ %1$d عنصر في المعرض - تم حفظ عنصر واحد في المعرض - تم حفظ عنصرين في المعرض - تم حفظ %1$d عناصر في المعرض - تم حفظ %1$d عنصرًا في المعرض - تم حفظ %1$d عنصر في المعرض التحقق بخطوتين التحقق بخطوتين تم تعيين كلمة المرور! - سيتم طلب كلمة المرور هذه عندما تسجل الدخول في جهاز جديد بالإضافة إلى الرمز الذي نرسله برسالة نصية SMS. + سيتم طلب كلمة المرور هذه عند تسجيلك الدخول في جهاز جديد بالإضافة إلى الرمز الذي نرسله برسالة نصية SMS. العودة للإعدادات العودة إلى جواز السفر تعيين كلمة المرور إظهار كلمة المرور تعيين كلمة مرور إضافية - يمكنك تعيين كلمة مرور إضافية يتم طلبها عند تسجيل الدخول من جهاز غير معروف، إضافةً إلى الرمز الذي يصلك في رسالة SMS قصيرة. + يمكنك تعيين كلمة مرور يتم طلبها عند تسجيل الدخول في جهاز جديد، بالإضافة إلى الرمز الذي نرسله برسالة نصية SMS. كلمة مرورك + كلمة مرورك + حسابك محمي بالتحقق بخطوتين.\nهل لازلت تتذكر كلمة مرورك؟ + نعم، بالتأكيد + أشك في ذلك مفعّل معطّلة - قم بإدخال كلمة مرورك - يرجى إدخال كلمة مرورك لإتمام عملية النقل. - قم بإدخال كلمة مرور - أدخل كلمة مرور جديدة - قم بإدخال كلمة مرورك الجديدة - قم بإعادة إدخال كلمة مرورك + يرجى إدخال كلمة المرور + يرجى إدخال كلمة مرورك + التحقق من كلمة المرور + هل لازلت تتذكر كلمة المرور؟ + ممتاز! + لازلت تتذكر كلمة مرورك. + أدخلت كلمة مرور غير صحيحة. + الرجوع للإعدادات + يرجى إدخال كلمة مرور التحقق بخطوتين لإتمام النقل. + يرجى إدخال كلمة مرورك لسحب المال. + يرجى إدخال كلمة مرور جديدة + الرجاء إعادة إدخال كلمة مرورك + كلمة مرور جديدة + "يمكنك الآن تعيين كلمة مرور جديدة لاستخدامها عند تسجيل الدخول إلى حسابك. " + إدخال كلمة مرور جديدة + إعادة إدخال كلمة المرور الجديدة بريد الاسترداد بريد الاسترداد + يمكنك تعيين بريد استرداد للتمكن من إعادة تعيين كلمة مرورك واستعادة الوصول إلى حسابك في تيليجرام. بريدك الإلكتروني - رمز بريدك الإلكتروني - يرجى تأكيد بريدك الإلكتروني عبر إدخال الرمز الذي تلقيته للتوِّ على %1$s. + بريدك الجديد + تم تغيير بريدك الإلكتروني. فضلًا قم بإضافة بريد إلكتروني صالح، هذه هي الطريقة الوحيدة لاستعادة كلمة المرور المنسية. - تجاوز + تخطي تحذير - المخاطرة حقيقية!\n\nإن نسيتَ كلمة مرورك، ستفقد الوصول لحسابك في تيليجرام، لن يكون هناك أي طريقة لاستعادته. + المخاطرة حقيقية!\n\nإن نسيت كلمة مرورك؛ ستفقد الوصول إلى حسابك في تيليجرام. لن تكون هناك أي طريقة لاستعادته. انتهينا تقريبًا! يرجى تفقُّد بريدك الإلكتروني والضغطُ على رابط التأكيد لإتمام تفعيل التحقق بخطوتين. قم بتفقُّد مجلدِ الرسائل غير المرغوب بها أيضًا. نجح الأمر! - تم تفعيل كلمة المرور الخاصة بالتحقق بخطوتين. تم تغيير كلمة مرور التحقق بخطوتين. تم تفعيل بريد الاسترداد الإلكتروني لعملية التحقق بخطوتين. - تم تغيير بريدك الإلكتروني لاستراد رمز التحقق بخطوتين. + تم تغيير بريدك الإلكتروني لاستراد كلمة مرور التحقق بخطوتين. تغيير كلمة المرور - إيقاف كلمة المرور + تعطيل كلمة المرور تعيين بريد استرداد تغيير بريد الاسترداد تعطيل كلمة المرور هل ترغب حقًا في تعطيل كلمة مرورك؟ - هل ترغب حقًا في إلغاء عملية إعداد التحقق بخطوتين؟ - هل ترغب حقًا في إلغاء عملية إعداد بريد الاسترداد؟ - إلغاء عملية الإعداد - تحذير! سيتم فقدان جميع البيانات المحفوظة في جواز تيليجرام! + هل تريدون فعلًا إلغاء إعداد التحقق بخطوتين؟ + هل أردت فعلًا إلغاء إعداد بريد الاسترداد؟ + إلغاء عملية إعادة تعيين كلمة المرور؟ إذا طلبت لاحقًا إعادة تعيين جديد؛ فسوف يستغرق ٧ أيام أخرى. + نعم + لا + إلغاء إعادة التعيين + إلغاء الإعداد + سيتم فقدان كل البيانات المحفوظة في جواز تيليجرام. تلميح كلمة المرور + يمكنك إنشاء تلميح اختياري لكلمة مرورك. التلميح - قم بإنشاء تلميحٍ لكلمة مرورك + يُرجى إنشاء تلميحٍ لكلمة مرورك + إنشاء تلميح لكلمة المرور. كلمتا المرور غير متطابقتين + أعد كتابة كلمة المرور إلغاء عملية إعداد التحقق بخطوتين - "مقاطعة الإعدادات " - إلغاء عملية إعداد بريد الاسترداد + إلغاء الإعداد + إلغاء إعداد بريد الاسترداد إلغاء تعطيل - يرجى تفقُّد بريدك الإلكتروني وكتابة رمز التأكيد الذي أرسلناه للتو لإتمام تفعيل التحقق بخطوتين. قم بتفقُّد مجلدِ الرسائل غير المرغوب بها أيضًا. - يرجى تفقُّد بريدك الإلكتروني %1$s وكتابة رمز التأكيد الذي أرسلناه للتو لإتمام عملية إعداد بريد الاسترداد. قم بتفقُّد مجلدِ الرسائل غير المرغوب بها أيضًا. + لإتمام إعداد بريد الاسترداد؛ يرجى تفقد بريدك الإلكتروني (ويرجى كذلك تفقد مجلد البريد المزعج) وكتابة الرمز الذي أرسلناه للتو. يجب أن يكون التلميح مختلفًا عن كلمة مرورك - بريد إلكتروني غير صالح، يرجى التأكد من إدخاله بشكل صحيح والمحاولة مرة أخرى. - المعذرة - بما أنك لم تقم بإضافة بريد إلكتروني لاسترداد حسابك عند تعيين كلمة مرورك؛ فإن خياراتك المتبقية هي إما تذكّر كلمة مرورك أو إعادة تعيين حسابك. - إعادة تعيين الحساب + بريد إلكتروني غير صالح. تُرجى إعادة المحاولة. + عذرًا + بما أنك لم تقم بإضافة بريد إلكتروني لاسترداد حسابك عند تعيين كلمة مرورك؛ فإن خياراتك المتبقية هي إما تذكّر كلمة مرورك أو حذف حسابك. + بما أنك لم تقدم بريد استرداد عند تعيينك لكلمة مرورك؛ فإن خياراتك المتبقية هي إما تذكر كلمة مرورك، أو انتظار ٧ أيام حتى تتمكن من إعادة تعيين كلمة المرور. + "هل تريد حقًا إعادة تعيين كلمة مرور التحقق بخطوتين؟ " + تمت إعادة تعيين كلمة مرور التحقق بخطوتين. + حذف الحساب + إعادة تعيين كلمة المرور + يمكنك إعادة تعيين كلمة مرورك بعد %1$s + إعادة تعيين كلمة المرور رمز الاسترداد - لقد قمنا بإرسال رمز الاسترداد إلى بريدك الإلكتروني الذي اخترته مسبقًا:\n\n%1$s - يرجى تفقُّدُ بريدك وإدخال الرمز المرسَل إليك والمكون من 6 أرقام. + لقد أرسلنا رمز الاسترداد إلى بريدك الإلكتروني المُضاف:\n\n%1$s + لتعطيل كلمة مرورك السحابية؛ يرجى تفقّد بريدك وإدخال الرمز الذي أرسلناه والمكوّن من 6 أرقام. غير قادر على فتح %1$s؟ - هل تواجه مشكلة في الدخول إلى بريدك الإلكتروني؟ - إذا لم تتمكن من الوصول إلى بريدك الإلكتروني فإن خياراتك المتبقية هي إما أن تتذكر كلمةَ مرورك، أو أن تعيد تعيين حسابك وتفقدَ جميعَ محتوياته. - إعادة تعيين حسابي - إذا قمت بإعادة تعيين حسابك، ستفقد كافّة محادثاتك ورسائلك، بالإضافة إلى الوسائط والملفات التي تمت مشاركتها. + هل واجهت مشكلة في الوصول للبريد الإلكتروني؟ + إذا لم تتمكن من الوصول إلى بريدك الإلكتروني فإن خياراتك المتبقية هي إما تذكر كلمة مرورك، أو حذف حسابك. + إذا لم تعد لديك صلاحية الوصول إلى بريدك للاسترداد؛ فستكون خياراتك المتبقية إما تذكر كلمة مرورك أو انتظار 7 أيام حتى تتم إعادة تعيين كلمة المرور. + هل فقدت الوصول إلى %1$s؟ + لقد طلبت مؤخرًا إعادة تعيين كلمة المرور ولكن تم إلغاء الطلب. يرجى الانتظار %1$s قبل تقديم طلب جديد. + حذف حسابي تحذير - لا يمكنك التراجع عن هذا القرار.\n\nإذا قمت بإعادة تعيين حسابك، سيتم حذف كافة رسائلك ومحادثاتك. - إعادة تعيين + لا يمكن التراجع عن هذا الإجراء. ستفقد جميع محادثات تيليجرام والرسائل والوسائط والملفات إذا تابعت حذف حسابك. + حذف الحساب كلمة المرور لقد قمت بتفعيل التحقق بخطوتين مسبقًا، لذلك حسابك محميّ بكلمة مرور إضافية. + تم تفعيل التحقق بخطوتين. حسابك محمي بكلمة مرور إضافية. هل نسيت كلمة المرور؟ استرداد كلمة المرور الرمز @@ -2870,162 +874,40 @@ أدخل الرمز تم إرسال رمز التحقق إلى بريدك الإلكتروني. لقد قمت بتفعيل التحقق بخطوتين.\nلتسجيل الدخول إلى حسابك هذا من أجهزة جديدةٍ ستحتاج إلى كلمة المرور التي قمت بتعيينها. - - البيانات والتخزين - استخدام التخزين والشبكة - استخدام التخزين - استهلاك البيانات - مسار التخزين - الخلوية - Wi-Fi - التجوال - الرسائل والبيانات الأخرى - المرسلة - الواردة - البيانات المرسلة - البيانات المستلمة - الملفات - المكالمات - المكالمات صادرة - المكالمات الواردة - الوقت الإجمالي - الإجمالي - إعادة تعيين الإحصائيات - إحصاءات الاستهلاك منذ %1$s - إعادة تعيين الإحصائيات - هل ترغب في إعادة تعيين إحصائيات استهلاكك؟ - - الخصوصية والأمان - الخصوصية - آخر ظهور ومتصل - الصور الشخصية - من يمْكنه رؤية صور ومقاطع ملفّي التعريفي؟ - بإمكانك تخصيص من يمْكنه رؤية صورتك الشخصية بدقة انتقائية. - يمكنك إضافة مستخدمين أو مجموعات بأكملها كاستثناءات تتجاوز القيم في الأعلى. - رقم الهاتف - من يمْكنه رؤية رقم هاتفي؟ - من يمْكنه إيجادي عبر رقم هاتفي؟ - المستخدمون الذين يملكون رقمك محفوظًا في دليل عناوينهم سيتمكنون من رؤيته في تيليجرام أيضًا. - سيتمكن المستخدمون الذين يضيفون رقمك لقائمة جهات اتصالهم من رؤيته في تيليجرام فقط اذا كانوا من جهات اتصالك. - يمكنك إضافة مستخدمين أو مجموعات بأكملها كاستثناءات تتجاوز القيم في الأعلى. - الرسائل المحوَّلة - رابط إلى حسابك - السماح بالرابط حسب الإعدادات أدناه - بدون رابط إلى حسابك - من يضيف رابطًا إلى حسابي عند تحويل رسائلي؟ - لن تملك رسائلك التي يحوّلها المستخدمون الآخرون رابطًا إلى حسابك. - يمكنك إضافة مستخدمين أو مجموعات بأكملها كاستثناءات تتجاوز القيم في الأعلى. - نعم، جاهز للإنطلاق في أي وقت! هل سنخبرهم بقدومنا أم نجعلها مفاجأة؟ - النِّد للنِّد - النِّدُّ للنِّدِّ في المكالمات - استخدام النِّدِّ للنِّد مع - البوتات والمواقع - مسح معلومات الدفع والشحن - مسح معلومات الدفع - هل ترغب حقًا في مسح معلومات الدفع والشحن الخاصة بك؟ - حذف معلومات الشحن الخاصة بك، ومطالبة موفِّري خدمات الدفع بحذف بطاقاتك الائتمانية المحفوظة؟ اعلم أن تيليجرام لا تخزّن أبدًا بيانات بطاقتك الائتمانية. - تم مسح معلومات الدفع. - تم مسح معلومات الشحن. - تم مسح معلومات الدفع والشحن. - المواقع التي سجلتَ دخولك إليها عبر تيليجرام. - معلومات الشحن - معلومات الدفع - حذف جميع المسودات السحابية - الجميع - جهات اتصالي - لا أحد - الجميع (-%1$d) - جهات اتصالي (+%1$d) - جهات اتصالي (-%1$d) - جهات اتصالي (-%1$d, +%2$d) - لا أحد (+%1$d) - الجميع - جهات اتصالي - لا أحد - الجميع (-%1$d) - جهات اتصالي (+%1$d) - جهات اتصالي (-%1$d) - جهات اتصالي (-%1$d، +%2$d) - لا أحد (+%1$d) - الأمان - التدمير الذاتي للحساب - "المحادثات الجديدة من مستخدمين مجهولين " - أرشفة وكتم - أرشفة وكتم تلقائي للمحادثات والمجموعات والقنوات الجديدة من غير جهات الاتصال. - حذف حسابي - حذف حسابي إن غِبتُ لمدة - إن تغيبت لمدة - إذا لم تستخدم حسابَ تيليجرام هذا لمرة واحدة على الأقل خلالَ هذه المدة فسيتم حذفه نهائيًا مع جميع محادثاتك وجهات اتصالك. - من يمْكنه رؤية آخر ظهور لك؟ - إضافة استثناءات - إضافة للاستثناءات - لن ترى آخر ظهور أو حالة الاتصال للأشخاص الذين اخترت ألا يروا آخر ظهور لك. سيتم بدل من ذلك عرض آخر ظهور تقريبي (قريبا، خلال أسبوع، خلال شهر). - لقد قمت بتغيير بعض إعدادات الخصوصية؛ تطبيق التغييرات؟ - المشاركة دائمًا مع - عدم المشاركة مع - يمكنك إضافة مستخدمين أو مجموعات بأكملها كاستثناءات تتجاوز القيم في الأعلى. - المشاركة دائمًا مع - عدم المشاركة مع - إضافة مستخدمين - عذرًا، لقد قمت بطلبات كثيرة جدًا. لا يمكنك تغيير إعدادات الخصوصية الآن، يرجى الانتظار. - اضغط باستمرار على المستخدم لإزالته - المجموعات - من يمْكنه إضافتي للمجموعات؟ - بإمكانك تحديد الأشخاص المسموح لهم بإضافتك إلى المجموعات والقنوات بشكل تفصيلي. - السماح دائمًا - عدم السماح أبدًا - هؤلاء المستخدمون سيتم السماح لهم بإضافتك للمجموعات والقنوات أو منعُهم من ذلك بغض النظر عن الإعدادات أعلاه. - غيّر الذين بإمكانهم إضافتك للمجموعات والقنوات. - المعذرة، لا يمكنك إضافة هذا المستخدم للمجموعات نظرًا لإعدادات خصوصيته. - المعذرة، لا يمكنك إضافة هذا المستخدم للقنوات نظرًا لإعدادات خصوصيته. - المعذرة، لا يمكنك إنشاء مجموعة مع هؤلاء المستخدمين نظرًا لإعدادات خصوصيتهم. - سيجعل تعطيل الند للند جميع المكالمات معتمدة على خوادم تيليجرام وذلك لتجنب الكشف عن عنوان الـ IP الخاص بجهازك، لكنَّ قد تنخفض جودة الصوت والصورة. - حذف الجهات المزامَنة - اقتراح الجهات المتكررة - عرضُ الأشخاص الذين تراسلهم باستمرار في أعلى خانة البحث للوصول إليهم بشكل أسرع. - تعطيل الاقتراحات - سيؤدي هذا إلى حذف جميع البيانات المتعلقة بالأشخاص الذين تراسلهم بشكل متكرر بالإضافة إلى البوتات الاستعلامية التي قد تستخدمها. - إضافة مستخدمين أو مجموعات - الاستثناءات - لا أحد - حذف جهات الاتصال - سيؤدي هذا إلى حذف جهات اتصالك من خوادم تيليجرام.\n\nإذا كان خيار **«مزامنة جهات الاتصال»** مفعَّلا فستتم إعادة مزامنتها تلقائيًا. + اختيار البريد الإلكتروني لتسجيل الدخول + سيكون استلامك لرموز تسجيل الدخول عبر البريد الإلكتروني وليس عبر الرسائل النصية SMS. يُرجى إدخال بريد إلكتروني يمكنك الوصول إليه. + يرجى إدخال بريد جديد + يرجى تفحص بريدك الإلكتروني %1$s (حتى مجلد الرسائل المزعجة) وإدخال الرمز الذي أرسلناه إليك للتو. + يُرجى تفحص البريد + يرجى إدخال الرمز الذي أرسلناه إلى بريدك الإلكتروني %1$s. + يرجى تفحص بريدك الإلكتروني الجديد + يرجى إدخال الرمز الذي أرسلناه إلى بريدك الإلكتروني الجديد %1$s. + أو يتم إرسال المقطع المرئي... يتم إرسال الصورة المتحركة... - - بوت - مشاركة - إضافته إلى مجموعة - الإعدادات - مساعدة - يمكنه الوصول للرسائل - لا يمكنه الوصول للرسائل - ما الذي يقدمه هذا البوت؟ - بدء - إعادة تشغيل - إيقاف البوت - إعادة تشغيل البوت تم فتح حفظ إلغاء + تقليل إغلاق تغيير إضافة + مُضافة تعديل إرسال اتصال مكالمة مرئية نسخ + تقييد + حظر + إعادة تسمية حذف - إنشاء - حذف وإيقاف + بدء تحويل إعادة المحاولة - من الكاميرا - من المعرض إزالة الصورة تعيين حسنًا @@ -3033,11 +915,9 @@ الانتظار أكثر استمرار إنشاء رابط - قطع + قص تحديث التطبيق - التحديث الآن تحديث - لاحقًا قبول موافق رفض @@ -3047,10 +927,10 @@ رفض وحذف الحساب التالي تفعيل + الإبلاغ عن تصفية خاطئة - انضممت للمجموعة عبر رابط دعوة + انضممت إلى المجموعة عبر رابط دعوة حذف un1 رابط الدعوة un2 - أنشئ un1 رابط الدعوة un2 عدّل un1 رابط الدعوة un2 إلى un3 غيّر un1 مستوى صوت un2إلى %1$d%%. عطّل un1 رابط الدعوة un2 @@ -3060,27 +940,31 @@ سيتم حذف الرسائل تلقائيًا في هذه القناة بعد %1$s لن يتم حذف الرسائل تلقائيًا في هذه القناة عطّل un1 مؤقت الحذف التلقائي - عطّلت أنت مؤقت الحذف التلقائي - انضم un1 للمجموعة عبر رابط دعوة - أزالun1 un2 + أنت عطّلت مؤقت الحذف التلقائي + تم انضمام un1 للمجموعة عبر رابط دعوة + انضم un1 إلى المجموعة عبر رابط الدعوة للمجلد + تم انضمام un1 إلى القناة عبر رابط دعوة + تم انضمام un1 إلى القناة عبر رابط الدعوة للمجلد + تمت إزالة un2 من قِبل un1 + استرد un1 مبلغ %1$s غادر un1 المجموعة - un1 أضاف un2 + تمت إضافة un2 من قِبل un1 أزال un1 صورة المجموعة غيّرَ un1 صورة المجموعة - غيّر un1 المقطع المرئي للمجموعة + غيّر un1 صورة المجموعة غيّرَ un1 اسم المجموعة ليصبح un2 انشأ un1 المجموعة لقد أزلت un2 - أنت غادرت المجموعة + لقد غادرت المجموعة لقد قمت بإضافة un2 - قمت بإحراز %1$s + لقد أحرزت %1$s أحرز un1 %1$s أحرزت %1$s في un2 un1 أحرز %1$s في un2 - لقد أزلتَ صورة المجموعة - لقد غيّرتَ صورة المجموعة - غيّرت المقطع المرئي للمجموعة - لقد غيّرتَ اسم المجموعة ليصبح un2 + أنت أزلت صورة المجموعة + لقد غيّرت صورة المجموعة + أنت غيّرت صورة المجموعة + أنت غيّرت اسم المجموعة إلى un2 لقد أنشأت المجموعة un1 أزالك un1 قام بإضافتك @@ -3089,18 +973,23 @@ لقد عُدتَ للمجموعة un1 الآن على بعد %1$s منك أنت الآن على بعد %1$s من un1 - un1 الآن على بعد %1$s منك un2 + الآن un1 على بعد %1$s منك un2 دعاك un1 إلى هذه المجموعة دعاك un1 إلى هذه القناة - بدأ un1 محادثة صوتية - "أنت بدأت محادثة صوتية " - المحادثة الصوتية بدأت - تمت جدولة المحادثة الصوتية إلى %1$s - انتهت المحادثة الصوتية (%s) - "قام un1 بدعوة un2 إلى المحادثة الصوتية " - قمت بدعوة un2 إلى المحادثة الصوتية - دعاك un1 إلى المحادثة الصوتية + بدأ un1 محادثة مرئية + أنت بدأت محادثة مرئية + تمت جدولة المحادثة المرئية إلى %1$s + البث المباشر بدأ + تمت جدولة البث المباشر إلى %1$s + انتهى البث المباشر (%s) + أنهى un1 المحادثة المرئية (%s) + أنت أنهيت المحادثة المرئية (%s) + قام un1 بدعوة un2 للمحادثة المرئية + قمت بدعوة un2 إلى المحادثة المرئية + دعاك un1 إلى المحادثة المرئية لقد سمحت لهذا البوت بمراسلتك عندما سجّلت دخولك إلى %1$s + لقد سمحت أنت لهذا البوت بمراسلتك عند تسجيلك الدخول على تطبيق «%1$s». + لقد سمحت لهذا البوت بمراسلتك في تطبيق الويب الخاص به. استلم %1$s الوثائق التالية: %2$s التفاصيل الشخصية العنوان @@ -3114,57 +1003,65 @@ كشفُ حسابٍ مصرفي عقد الإيجار رقم الهاتف - بريد إلكتروني - نسخة تيليجرام التي لديك لاتدعم هذه الرسالة. حدّث التطبيق لعرضها: https://telegram.org/update + عنوان البريد الإلكتروني + نسختك الحالية من تيليجرام لا تدعم هذه الرسالة. يرجى تحديث التطبيق إلى أحدث نسخة. + نسختك محدثة. صورة مقطع مرئي صورة ذاتية التدمير مقطع مرئي ذاتي التدمير - انتهت صلاحية الصورة - انتهت صلاحية المقطع المرئي + صورة منتهية الصلاحية + فيديو منتهي الصلاحية + رسالة مرئية منتهية + انتهت صلاحية الصوتية صورة متحركة موقع موقع حي جهة اتصال + الردود ملف ملصق رسالة صوتية رسالة مرئية + رسالة صوتية لمرة واحدة + رسالة مرئية لمرة واحدة لعبة أنت لقد قمت بتصوير الشاشة! صوّر un1 الشاشة! - - تم بلوغ الحد - المحادثات غير النشطة - قناة، غير نشطة منذ %1$s - %1$s، غير نشطة منذ %2$s - مغادرة %1$s - الكثير من المُجتمعات - المعذرة، أنت عضو في الكثير من المجموعات والقنوات. الرجاء مغادرة بعض منها قبل الانضمام لواحدة جديدة. - المعذرة، أنت عضو في الكثير من المجموعات والقنوات. الرجاء مغادرة بعض منها قبل إنشاء واحدة جديدة. - المعذرة، أنت عضو في الكثير من المجموعات والقنوات. لأسباب تقنية، يتوجب عليك مغادرة بعض منها قبل تغيير هذا الخيار في مجموعاتك. - المعذرة، هذا المستخدم عضو في الكثير من المجموعات والقنوات. دعه يغادر بعض منها أولًا. + مُجلد + عذرًا، لا يمكنك تثبيت أكثر من %d من الموضوعات في الأعلى. تحذير! سيؤدي هذا لحذف **جميع رسائل** هذه المحادثة من **كلا** الطرفين. + تحذير! سيؤدي هذا إلى **حذف كل الرسائل** في هذه القناة. تحذير! سيؤدي هذا **لحذف جميع الرسائل** في هذه المحادثة. حذف الكل - إيقاف التحميل؟ + إيقاف التحميل؟ + هل تريدون إلغاء التحميل؟ تحديث تيليجرام عذرًا، تطبيق تيليجرام الذي تملكه قديم ولا يمكنه التعامل مع هذا الطلب، يرجى القيام بتحديثه. رقم هاتف غير صالح، يرجى التحقق من الرقم والمحاولة مرة أخرى. يرجى تسجيل الدخول إلى حسابك في تيليجرام لتتمكن من استخدام جواز تيليجرام. - تم حظر هذا الرقم. - انتهت صلاحية الرمز، يرجى إعادة محاولة تسجيل الدخول. + "هذا الرقم محظور " + انتهت صلاحية الرمز، يرجى البدء من جديد. + رمز خاطئ + تعذر الإنهاء + لأسباب أمنية؛ لا يمكنك تغيير رقم هاتفك من جهاز قمت بتوصيله للتو. يرجى استخدام اتصال سابق أو الانتظار لبضع ساعات. + نطاق البريد هذا غير مسموح به. + بريد إلكتروني غير صالح. + عنوان بريد غير صالح. + بريد تسجيل الدخول + سيتم استخدام عنوان البريد الإلكتروني هذا في كل مرة يتم فيها تسجيل الدخول إلى حسابك من جهاز جديد. + تغيير البريد محاولات كثيرة خاطئة، نرجو المحاولة لاحقًا. محاولات كثيرة. ترجى إعادة المحاولة بعد %1$s - الرمز غير صحيح، حاول لاحقًا. - المعذرة، لقد قمت بحذف حسابك وإعادة إنشائه عدة مرات مؤخرًا، انتظر لعدة أيام رجاءً قبل محاولة إنشاء الحساب من جديد. - الاسم الأول غير صحيح + الرمز غير صالح، ترجى إعادة المحاولة. + عذرًا، لقد قمت بحذف حسابك وإعادة إنشائه عدة مرات مؤخرًا، يرجى الانتظار لعدة أيام قبل محاولة إنشاء حساب من جديد. + الاسم الأول غير مسموح به، يرجى إدخال اسم آخر. المعذرة، لا يمكن استخدام اسم العائلة هذا. يتم التحميل... لا تملك أي مشغل للمقاطع المرئية على جهازك، يرجى تنزيل واحد للمتابعة - يرجى مراسلتنا عبر البريد الإلكتروني sms@telegram.org لإخبارنا بمشكلتك. + يرجى إرسال بريد إلكتروني على reports@stel.com لإخبارنا بمشكلتك. لا تملك تطبيقًا يمكنه فتح صيغة الملفات \'%1$s\'، يرجى تنزيل تطبيق مناسب للاستمرار هذا المستخدم ليس لديه تيليجرام بعد، هل تريد دعوته؟ هل أنت متأكد؟ @@ -3172,1271 +1069,147 @@ هل ترغب في إضافة **%1$s** لمجموعة **%2$s**؟ عدد الرسائل اﻷخيرة المراد تحويلها: إضافة %1$s للمجموعة؟ - إضافة %1$s - إضافة عضو + إضافة عضو + إضافة عضوين + إضافة %1$d أعضاء + إضافة %1$d عضوًا + إضافة %1$d عضوٍ هل ترغب حقًا بإضافة %1$s إلى **%2$s**؟ - هل ترغب حقًا بإضافة %1$s إلى **%2$s**؟ + هل تريدون فعلًا إضافة عضو واحد إلى **%2$s**؟ + هل تريدون فعلًا إضافة عضوين إلى **%2$s**؟ + هل تريدون فعلًا %1$d أعضاء إلى **%2$s**؟ + هل تريدون فعلًا إضافة %1$d عضوٍ إلى **%2$s**؟ عرض آخر 100 رسالة للأعضاء الجدد عرض آخر 100 رسالة لـ **%1$s** هل ترغب في إرسال هذه الرسالة إلى **%1$s**؟ هل ترغب في إرسال هذه اللعبة إلى **%1$s**؟ هل ترغب في إرسال جهة الاتصال هذه إلى **%1$s**؟ - هل ترغب حقًا في تسجيل الخروج؟\n\nاعلم أنه يمكنك استخدام تيليجرام على أجهزتك المتعددة بسلاسة وفي نفس الوقت.\n\nتذكر أن تسجيل الخروج يحذف كل محادثاتك السرية. + هل تريدون فعلًا تسجيل الخروج؟\n\nسيؤدي هذا إلى حذف كل محادثاتك السرية.\n\nيمكنك استخدام تيليجرام على كل أجهزتك في الوقت نفسه واستخدام عدة حسابات على نفس التطبيق. حذف %1$s مسح %1$s - مسح %1$s من الذاكرة المؤقتة - هل ترغب حقًا في حذف المحادثات المحددة؟ - هل ترغب حقًا في مسح محتوى المحادثات المحددة؟ + مسح الذاكرة المؤقتة لـ %1$s + هل أردت فعلًا حذف هذه المحادثات؟ + هل أردت فعلًا مسح السجل في هذه المحادثات؟ حذف كافة الرسائل والوسائط المتعلقة بالمحادثات المحددة من الذاكرة المؤقتة؟ هل ترغب حقًا في حذف هذه المجموعة والخروج منها؟ "هل ترغب حقًا في حذف ومغادرة القناة؟ " هل ترغب حقًا في حذف ومغادرة مجموعة **%1$s**؟ - هل ترغب حقًا في حذف هذه المحادثة؟ - هل ترغب حقًا في حذف المحادثة مع **%1$s**؟ + هل تريدون حذف هذه المحادثة نهائيًا؟ + حذف المحادثة نهائيًا مع **%1$s**؟ هل ترغب حقًا في حذف المحادثة مع **%1$s** وحظره؟ هل ترغب حقًا في حذف **الرسائل المحفوظة**؟ هل ترغب حقًا في حذف المحادثة السرية مع **%1$s**؟ - هل ترغب حقًا في حذف المحادثة **%1$s**؟ حذف المسودات السحابية هل ترغب حقًا في حذف جميع المسودات السحابية؟ مشاركة موقعك؟ بهذه العملية سترسل موقعك الحالي للبوت. التطبيق غير قادر على تحديد موقعك الحالي - اختر بشكل يدوي + الاختيار يدويًا يرغب هذا البوت بمعرفة موقعك عند كل مرة ترسل له طلبًا، يمكن استخدام هذا لتوفير نتائجَ مخصصةٍ لموقعك. - هل ترغب في مشاركة رقم هاتفك؟ - سيطلع البوت على رقم هاتفك. ربما يكون هذا مفيدًا للتكامل مع خدمات أخرى. + مشاركة رقم هاتفك؟ + سيطلع البوت على رقم هاتفك. قد يكون هذا مفيدًا عند التعامل مع خدماتٍ أخرى. + سيعلم %s برقم هاتفك. قد يكون ذلك مفيدًا للتكامل مع الخدمات الأخرى. + سيؤدي هذا أيضًا إلى إلغاء حظر البوت. هل ترغب حقًا في مشاركة رقم هاتفك %1$s مع **%2$s**؟ - هل ترغب حقًا في مشاركة رقم هاتفك؟ - هل ترغب حقًا بحظر **%1$s**؟ + هل أردت فعلًا مشاركة رقم هاتفك؟ + هل أردت فعلا حظر **%1$s**؟ هل ترغب حقًا في إزالة الحظر عن هذا المستخدم؟ هل ترغب حقًا في حذف جهة الاتصال هذه؟ محادثة سرية هل ترغب حقًا في إنشاء محادثة سرية؟ هل ترغب حقًا في إلغاء التسجيل؟ - هل ترغب في إيقاف عملية التحقق؟ - هل ترغب حقًا في مسح محتوى المحادثة مع **%1$s**؟ - هل ترغب حقًا في مسح محتوى المحادثة السرية مع **%1$s**؟ - هل ترغب حقًا في مسح محتوى محادثة **%1$s**؟ + هل تريدون إيقاف عملية التحقق؟ + هل تريدون فعلًا مسح سجل المحادثة مع **%1$s**؟ + سيؤدي هذا إلى حذف كل الرسائل عندك وعند *%1$s**. هل تريدون فعلًا حذفها؟ + هل تريدون فعلًا مسح سجل المحادثة في **%1$s**؟ + هل تريدون مسح سجل القناة في **%1$s**؟ هل ترغب حقًا في حذف جميع الرسائل في هذه المحادثة؟ - هل ترغب حقًا في مسح محتوى **الرسائل المحفوظة**؟ + هل تريدون فعلًا مسح **الرسائل المحفوظة**؟ هذا الإجراء لا يمكن التراجع عنه. حذف كافة الرسائل والوسائط المتعلقة بهذه القناة من الذاكرة المؤقتة؟ حذف جميع الرسائل والوسائط المخزنة مؤقتًا من هذه المجموعة؟ حذف %1$s + إلغاء حفظ %1$s حذف الرسالة + إلغاء حفظ الرسالة يمكنك أيضًا حذف %1$s التي أرسلتها من حسابات أعضاء المجموعة الآخرين عبر تحديد \"حذف من عند كافة الأعضاء\". يمكنك أيضًا حذف %1$s التي أرسلتها من حسابات أعضاء المجموعة الآخرين عبر تحديد \"التراجع عن إرسال رسائلي\". يمكنك أيضًا حذف %1$s التي أرسلتها من حساب **%2$s** عبر تحديد \"التراجع عن إرسال رسائلي\". + هل أردت فعلًا إزالة هذه الرسالة من \"الرسائل المحفوظة\"؟ هل ترغب حقًا في حذف هذه الرسالة؟ هل ترغب حقًا في حذف هذه الرسائل؟ + هل أدرت فعلًا حذف هذه الرسائل؟ هل ترغب حقًا في حذف هذه الرسالة من عند الكل؟ هل ترغب حقًا في حذف هذه الرسائل من عند الكل؟ التراجع عن إرسال رسائلي حذف من عند %1$s أيضًا - مسح المحتوى من عند %1$s أيضًا + مسح السجل عند %1$s أيضًا إرسال الرسالة هل ترغب في إرسال هذه الرسالة إلى **%1$s**؟ هل ترغب في مشاركة هذه اللعبة مع **%1$s**؟ هل ترغب في إرسال جهة الاتصال هذه إلى **%1$s**؟ - لا يوجد حساب تيليجرام بهذا الاسم. + لم يعثر على اسم المستخدم. + لا يوجد حساب تيليجرام برقم الهاتف هذا. + لم يعثر على مجلد محادثات. لا يمكن أن يضافَ هذا البوت إلى المجموعات. - هل ترغب في تفعيل معاينة الروابط المطولة في المحادثات السرية؟ علمًا أنه يتم توليدها في خوادم تيليجرام. + هل ترغبون في تفعيل معاينة الروابط المطولة في المحادثات السرية؟ مع العلم أن معاينة الروابط يتم توليدها على خوادم تيليجرام. يرجى ملاحظة أن بوتات المحتوى الاستعلامي يتم تطويرها من مطورين مستقلين. لكي تعمل هذه البوتات، ما تكتبه بعد اسم مستخدم البوت يذهب لمطور البوت. المعذرة، لا يمكنك تعديل هذه الرسالة. - رجاءً قم بالسماح لتيليجرام بتلقي المكالمات للتمكن من إدخال الرمز تلقائيًا. - رجاءً قم بالسماح لتيليجرام بتلقي المكالمات وقراءة سجل المكالمات للتمكن من إدخال الرمز تلقائيًا. - رجاءً قم بالسماح لتيليجرام بقراءة سجل المكالمات للتمكن من إدخال الرمز تلقائيًا. - رجاءً قم بالسماح لتيليجرام بتلقي المكالمات للتمكن من تفعيل رقم هاتفك تلقائيًا. - المعذرة، ليس من المسموح لك القيام بهذا. + يرجى السماح لتيليجرام باستلام المكالمات ليتمكن من إدخال الرمز لك تلقائيًا. + يرجى السماح لتيليجرام بتلقي وقراءة سجل المكالمات لنتمكن من إدخال الرمز لك تلقائيًا. + يرجى السماح لتيليجرام بقراءة سجل المكالمات لنتمكن من إدخال الرمز لك تلقائيًا. + يرجى السماح لتيليجرام بتلقي المكالمات لنتمكن من تفعيل رقم هاتفك تلقائيًا. + المعذرة، ليس مسموحًا لك القيام بهذا. المعذرة، لا يمكنك إضافة هذا المستخدم أو البوت للمجموعات بسبب أنك قمت بحظره. فضلًا قم بإزالة الحظر للاستمرار. - انضمام للمجموعة - المعذرة، لا يمكنك إضافة هذا المستخدم كمشرف لأنه ليس عضوًا في هذه المجموعة وغير مسموح لك إضافته. - المعذرة، لا يمكنك إضافة هذا المستخدم كمشرف لأنه في قائمة المستخدمين الذين تمت إزالتهم ولا يمكنك رفع الحظر عنه. + لا يمكنك إضافة هذا المستخدم كمشرف لأنه ليس عضوًا في هذه المجموعة وغير مسموح لك بإضافته. + عذرًا، لا يمكنك إضافة هذا المستخدم كمشرف لأنه في قائمة «مستخدمون تمت إزالتهم» وغير مسموح لك رفع الحظر عنهم. عذرًا، لا يمكنك إضافة هذا المستخدم لأنه موجود في قائمة «مستخدمون تمت إزالتهم» ولا يمكنك إلغاء حظره. - المعذرة، لا يمكنك حظر هذا المستخدم لأنه مشرف في هذه المجموعة ولا يمكنك تغيير ذلك. - المعذرة، مشرفو هذه المجموعة قيدوك من إرسال الملصقات. - المعذرة، قام مشرفو هذه المجموعة بتقييدك من إرسال الوسائط. - المعذرة، قام مشرفو هذه المجموعة بتقييدك من إرسال الاستفتاءات. + لا يمكنك حظر هذا المستخدم لأنه مشرف في هذه المجموعة وغير مسموح لك عزله من الإشراف. + قام مشرفو هذه المجموعة بتقييدك من إرسال الملصقات. + قام مشرفو هذه المجموعة بتقييدك من إرسال الوسائط. + قام مشرفو هذه المجموعة بتقييدك من إرسال الصور. + قام مشرفو هذه المجموعة بتقييدك من إرسال مقاطع الفيديو. + قام مشرفو هذه المجموعة بتقييدك من إرسال الاستفتاءات. + قام مشرفو هذه المجموعة بتقييدك من إرسال رسائل صوتية. + قام مشرفو هذه المجموعة بتقييدك من إرسال الرسائل المرئية. + قام مشرفو هذه المجموعة بتقييدك من إرسال المستندات. + قام مشرفو هذه المجموعة بتقييدك من إرسال الملفات الصوتية. المعذرة، لا يُسمح بإرسال الملصقات في هذه المجموعة. - المعذرة، لا يُسمح بإرسال الوسائط في هذه المجموعة. + عذرًا، إرسال الصور غير مسموح به في هذه المجموعة. + عذرًا، إرسال الفيديو غير مسموح به في هذه المجموعة. + عذرًا، إرسال الوسائط غير مسموح به في هذه المجموعة. المعذرة، لا يُسمح بإرسال الاستفتاءات في هذه المجموعة. - نحن متأسفون للغاية، ولكن هذا يعني أنه لا يمكنك الاشتراك بتيليجرام.\n\nعلى عكس الآخرين، نحن لا نستخدم بياناتك لاستهدافك بالإعلانات أو لأغراض تجارية أخرى. لا يخزن تيليجرام سوى المعلومات التي يحتاجها ليعمل كخدمة سحابية غنية بالميزات. يمكنك ضبط كيفية استخدامنا لبياناتك (مثل إعدادات حذف الجهات المزامَنة) في إعدادات الخصوصية والأمان.\n\nلكن إن كنت غير موافق على احتياجات تيليجرام المتواضعة بشكل عام، فلن يكون من الممكن لنا تقديم هذه الخدمة. + عذرًا، إرسال الرسائل الصوتية غير مسموح به في هذه المجموعة. + عذرًا، إرسال الرسائل المرئية غير مسموح به في هذه المجموعة. + عذرا، إرسال المستندات غير مسموح به في هذه المجموعة. + عذرًا، إرسال الملفات الصوتية غير مسموح به في هذه المجموعة. + عذرًا، لا يمكنك إرسال رسائل صوتية إلى هذا المستخدم بسبب إعدادات الخصوصية لديهم. + عذرًا، لا يمكنك إرسال رسائل مرئية إلى هذا المستخدم بسبب إعدادات الخصوصية لديهم. + غير قادر على التحويل + للأسف، هذا يعني أنه لا يمكنك التسجيل في تيليجرام.\n\nعلى عكس التطبيقات الأخرى؛ لا يستخدم تيليجرام بياناتك لاستهدافك بالإعلانات أو لأغراض تجارية أخرى. يخزن تيليجرام فقط المعلومات التي يحتاجها ليعمل كخدمة سحابية غنية بالميزات. يمكنك ضبط كيفية استخدام بياناتك (مثل حذف جهات الاتصال المزامَنة) في إعدادات الخصوصية والأمان.\n\nإن كنتم غير مرتاحين مع احتياجات تيليجرام المتواضعة؛ لن يكون بإمكاننا تقديم هذه الخدمة. التحقق من العمر سياسة الخصوصية وشروط الخدمة - اضغط موافق للتأكيد بأن عمرك %1$s أو أكثر. - نحن متأسفون للغاية، ولكن هذا يعني أنه يجب علينا الافتراق. على عكس الآخرين فنحن لا نستخدم بياناتك لاستهدافك بالإعلانات أو لأغراض تجارية أخرى. لا يخزن تيليجرام سوى المعلومات التي يحتاجها ليعمل كخدمة سحابية غنية بالميزات. يمكنك التحكم بكيفية استخدامنا لبياناتك (مثل إعدادات حذف الجهات المزامَنة) في إعدادات الخصوصية والأمان.\n\nلكن إن كنت غيرَ موافق على احتياجات تيليجرام المتواضعة بشكل عام، فلن يكون بإمكاننا تقديم هذه الخدمة. يمكنك حذف حسابك الآن — أو القيام بالإطلاع أكثر ومن ثَم حذفِه لاحقًا إن كنت تشعر بعدم الرضى عن الطريقة التي نستخدم بها بياناتك. - تحذير، سيؤدي هذا إلى حذف حسابك في تيليجرام بشكل نهائي بالإضافة لجميع البيانات التي تخزنها في سحابة تيليجرام.\n\nهام: يمكنك الإلغاء الآن وتصدير بياناتك قبل حذف حسابك عوضًا عن خسارتها كلها. (للقيام بذلك، افتح النسخة الأخيرة من تيليجرام لسطح المكتب وتوجه إلى الإعدادات > إعدادات متقدمة > تصدير بيانات تيليجرام.) - - لكي تتمكن من التواصل مع أصدقائك عبر جميع أجهزتك، ستتم مزامنة جهات اتصالك باستمرار مع خوادم تيليجرام السحابية شديدة التشفير. - يحتاج تيليجرام للوصول لذاكرة التخزين لتتمكن من إرسال وحفظ الصور، المقاطع المرئية، الصوتيات وغيرها من الوسائط. - يحتاج تيليجرام الوصول للمايكروفون لتتمكن من إرسال الرسائل الصوتية. - يحتاج تيليجرام إلى استخدام الميكروفون من أجل تسجيل المقاطع المرئية. - يحتاج تيليجرام للوصول للكاميرا لتتمكن من أخذ الصور والمقاطع المرئية. يرجى تفعيلها في الإعدادات. - يحتاج تيليجرام إلى السماح له بتحديد موقعك لتتمكن من مشاركته مع أصدقائك. - يحتاج تيليجرام إلى صلاحية تحديد موقعك. - يحتاج تيليجرام إلى صلاحية الظهور فوق التطبيقات لتشغيل المقاطع المرئية في وضع (صورة في الصورة). - "يتيح لك الوضع العائم استخدام المايكروفون ومعرفة من الذي يتحدث عندما تكون خارج تيليجرام. " - الإعدادات - يرجى السماح لتيليجرام بالظهور على شاشة القفل للتمكن من إجراء المكالمات دون مشاكل. - "لمشاركة موقعك المباشر في هذه المحادثة؛ يحتاج تيليجرام الوصول إلى موقعك باستمرار، بما في ذلك أثناء عمل التطبيق في الخلفية.\n\n سنستخدم موقعك للمدة التي تختارها أنت فقط ويمكنك التوقف عن مشاركته في أي وقت. لن نستخدم موقعك لأي غرض بخلاف مشاركته في هذه المحادثة. " - صورة داخل صورة - المحادثة الصوتية العائمة - - النّمو - المتابِعون - التفاعلات - المشاهدات حسب المصدر - المتابِعون الجدد حسب المصدر - اللغات - أحدث المنشورات - تصغير - تفاعلات الاستعراض الفوري - يتم تحميل الإحصاءات... - يرجى الانتظار قليلًا ريثما ننشئ الرسوم البيانية. - المشاهدات حسب التوقيت العالمي - اسحب للأعلى لتثبيت التسجيل - الإشعارات - ذاكرة الجهاز - %s مساحة حرة - مسح ذاكرة تيليجرام المؤقتة - نظرة عامة - المشاهدات لكل منشور - المشاركات لكل منشور - مكّنوا الإشعارات - مسح قاعدة البيانات المحلية - %s ذاكرة تيليجرام المؤقتة - %s قاعدة بيانات تيليجرام المحلية - تم تحرير %s من جهازك! - %s تطبيقات أخرى - "أعضاء المجموعة " - الأعضاء الجدد حسب المصدر - لغات الأعضاء - الرسائل - الأحداث - الأعضاء - الرسائل - يشاهدون الرسائل - " ينشرون الرسائل" - %1$d حرف - حرف واحد - حرفان - %1$d أحرف - %1$d حرفًا - %1$d حرف - حذف %1$d - حذف %1$d - حذف %1$d - حذف %1$d - حذف %1$d - حذف %1$d - حظر %1$d - حظر %1$d - حظر %1$d - حظر %1$d - حظر %1$d - حظر %1$d - %1$d تقييدات - تقييد واحد - تقييدان - %1$d تقييدات - %1$d تقييدًا - %1$d تقييد - %1$d إضافات - إضافة واحدة - إضافتان - %1$d إضافات - %1$d إضافة - %1$d إضافة - المشرفون النشطون - الأعضاء النشطون - أنشط المضيفين - %s للرسالة - الأيام النشطة - عرض الرسائل - عرض الملف الشخصي - اليوم - يوم أمس - المشاهدات - التحويل في العام - التحويلات في الخاص - عرض الإحصائيات - عرض إحصائيات القناة - إحصائيات المنشور - فتح الرسالة + يرجى الضغط على (موافق) لتأكيد أن عمرك %1$s أو أكبر. + للأسف، لا توجد خيارات أخرى. على عكس التطبيقات الأخرى؛ لا تستخدم تيليجرام بيانات المستخدمين لاستهدافهم بالإعلانات أو لأغراض تجارية أخرى. يخزن تيليجرام فقط المعلومات التي يحتاجها للعمل كخدمة سحابية غنية بالميزات. يمكنك ضبط كيفية استخدام بياناتك في إعدادات الخصوصية والأمان.\n\nإذا لم تكن مرتاحًا لاحتياجات تيليجرام المتواضعة؛ لن نتمكن من تزويدك بهذه الخدمة. + تحذير، سيؤدي هذا إلى حذف حسابك في تيليجرام بشكل نهائي بالإضافة لجميع البيانات التي تخزنها في سحابة تيليجرام.\n\nهام: يمكنك الإلغاء الآن وتصدير بياناتك قبل حذف حسابك عوضًا عن خسارتها كلها. (للقيام بذلك، افتح النسخة الأخيرة من تيليجرام لسطح المكتب وتوجه إلى الإعدادات > إعدادات متقدمة > تصدير بيانات تيليجرام). تيليجرام سريع مجاني آمن قوي - مرتبط بالسحاب + تخزين سحابي تطبيق المراسلة **الأسرعُ** عالميًّا.\nإنه **مجانيٌّ** و**آمنٌ** كذلك. - **تيليجرام** يوصل الرّسائل أسرع من\nأي تطبيق آخر. - **تيليجرام** مجّاني للأبد. لا إعلانات.\nدون رسوم اشتراك. + **تيليجرام** يوصل الرسائل\nأسرع من أي تطبيق آخر. + **تيليجرام** يقدم تخزينًا سحابيًا مجانيًا\nغير محدود للمحادثات والوسائط. يحمي **تيليجرام** رسائلك\nمن هجمات المخترقين. لا يفرض **تيليجرام** قيودًا على\nحجم وسائطك ومحادثاتك. - يتيح لك **تيليجرام** الوصول لرسائلك\nمن أجهزة متعددة. - ابدأ المراسلة - - إعدادات الحساب - توفير بيانات المكالمات - مكالمة واردة - يتم الوصل - تتم مبادلة مفاتيح التشفير - انتظار - يتم الطلب - يتم إنهاء المكالمة - تم إنهاء المكالمة - فشل الاتصال - يرن - الخط مشغول - مكالمة تيليجرام - مكالمة تيليجرام مرئية - مكالمة تيليجرام الحالية - محادثة صوتية نشطة - إنهاء المكالمة - مكالمة أخرى نشطة - إنهاء المكالمة مع **%1$s** وبدء واحدة جديدة مع **%2$s**؟ - "إنهاء المكالمة مع **%1$s** وبدء محادثة صوتية في **%2$s**؟ " - محادثة صوتية أخرى نشطة - مغادرة المحادثة الصوتية في **%1$s** وبدء أخرى في **%2$s**؟ - مغادرة المحادثة الصوتية في **%1$s** والاتصال بـ **%2$s**؟ - المكالمات الصوتية - "نغمة الرنين " - يمكنك تخصيص نغمة الرنين عندما يتصل بك هذا المستخدم في تيليجرام. - المكالمات - حذف كل المكالمات - حذف المكالمات - الحذف عند الجميع - "هل تريد حذف كل المكالمات الحديثة؟ " - "هل تريد حذف المكالمات المحددة من «الحديثة»؟ " - لن يتم استخدام النِّدِّ للنِّدِّ في المكالمات مع هؤلاء المستخدمين بغض النظر عن الإعدادات أعلاه. - استخدام النِّدِّ للنِّد مع - من يمْكنه الاتصال بي؟ - بإمكانك تخصيص من يمكنه الاتصال بك. - هؤلاء المستخدمون سيتم السماح لهم بالاتصال بك أو منعُهم من ذلك بغض النظر عن الإعدادات أعلاه. - مطلقًا - فقط على البيانات الخلوية - دائمًا - فقط عند التجوال - إجابة - رفض - أنت غير متصل حاليًا، قم بالاتصال بالإنترنت لتتمكن من إجراء المكالمات. - "أنت غير متصل حاليًا.يرجى الاتصال بالإنترنت للانضمام إلى المحادثات الصوتية. " - لقد قمت بتفعيل وضع الطيران. يرجى تعطيله أو الاتصال بشبكة Wi-Fi لتتمكن من إجراء المكالمات. - "وضع الطيران يعمل لديك حاليًا. يرجى إيقاف تشغيله أو تشغيل الـ Wi-Fi للانضمام إلى المحادثات الصوتية. " - غير متصل - وضع الطيران - الإعدادات - مكالمة صادرة - مكالمة واردة - مكالمة مرئية صادرة - مكالمة مرئية واردة - مكالمة فائتة - مكالمة مُلغاة - مكالمة مرفوضة - مكالمة مرئية فائتة - مكالمة مرئية ملغاة - مكالمة مرئية مرفوضة - %1$s (%2$s) - ما من مكالمات حديثة - مكالماتك الصوتية والمرئية الحديثة ستظهر هنا. - يستخدم تطبيق تيليجرام الخاص بـ**%1$s** بروتوكولًا غيرَ متوافقٍ، ينبغي عليهم تحديث تطبيقهم لتتمكن من الاتصال بهم. - نسخة **%1$s** لا تدعم المكالمات؛ يَلزمُه تحديث تطبيقه قبل أن تتمكن من الاتصال به. - عذرًا، يستخدم **%1$s** إصدارًا قديمًا من تيليجرام لا يدعم المكالمات المرئية. - إجراء مكالمة صوتية - يرجى تقييم جودة مكالمتك في تيليجرام - يحتاج تيليجرام إلى استخدام الميكروفون من أجل إجراء المكالمات. - "يحتاج تيليجرام الوصول إلى المايكروفون والكاميرا لتتمكن من إجراء المكالمات المرئية. " - يحتاج تيليجرام الوصول إلى الكاميرا لتتمكن من إجراء مكالمات مرئية. - إضافة تعليق (اختياري) - معاودة الاتصال - معاودة الاتصال - افتراضي - هل ترغب بحذف هذه المكالمة من السجل؟ - مكالمة تيليجرام - مكالمة تيليجرام مرئية - سماعة الأذن - سماعة الرأس - مكبّر الصوت - الهاتف - بلوتوث - أجهزة الإخراج - الرجوع للمكالمة - عذرًا، لا يمكنك الاتصال بـ %1$s بسبب إعدادات الخصوصية لديه. - إذا كانت هذه الرموز مطابقة للتي تظهر على شاشة %1$s فالمكالمة آمنة 100%%. - قيّم المكالمة - ماذا حدث؟ - تضمين المعلومات التقنية - لن تفصح عن محتوى محادثتك وستساعدنا على حل المشكلة بشكل أسرع. - شكرًا لمساهمتك في تحسين مكالمات تيليجرام. - سيتم الرد باسم %s - الرد برسالة - ستكون هذه الردود السريعة متاحة لك للرد على مكالمات تيليجرام برسائل داخل التطبيق، يمكنك تغييرها لما يناسبك. - لا يمكنني التحدثُ الآن، ما الأمر؟ - سأعاود الاتصال بك لاحقًا. - سأتصل بك لاحقًا. - لا يمكنني التحدث الآن، نتحدث لاحقًا؟ - رسالة مخصصة... - السماح برسائل مخصصة - مكالمة تيليجرام مع %s - مكالمة تيليجرام مرئية مع %s - لا يمكن إجراء مكالمة تيليجرام حاليًا. - سمعتُ صدى صوتي - سمعت ضوضاء في الخلفية - كان صوت الطرف الآخر يتقطع - لم يكن الكلام واضحًا - لم أتمكن من سماع الطرف الآخر - لم يسمعني الطرف الآخر - انقطع الاتصال فجأة - الصورة مشوّهة - جودة الصورة رديئة - اضغط هنا لتشغيل الكاميرا - إلغاء الكتم - أو اضغط باستمرار للتحدث - أنت على الهواء - التحدّث ممنوع - تم كتمه - أنت في وضع الاستماع فقط - اضغط إذا كنت تريد التحدّث - لقد طلبت التحدّث - سيتم إعلام المتحدّثين - كتم - تشغيل الكاميرا - الكاميرا - مكبّر الصوت - تبديل - الانتقال إلى مكالمة مرئية؟ - انتقال - مايكروفون %s مغلق - كاميرا %s مغلقة - قبول - رفض - معاودة الاتصال - الكاميرا - هل ترغب حقًا في الاتصال بـ**%1$s**؟ - مكالمة صوتية - هل ترغب حقًا بإجراء مكالمة مرئية مع **%1$s**؟ - مكالمة مرئية - تتم معاودة الاتصال - بدء محادثة صوتية - محادثة صوتية - "بدء محادثة صوتية في هذه المجموعة؟ " - هل تريد بدء محادثة صوتية في هذه القناة؟ - إدارة المحادثات الصوتيّة - انضمام - %1$s أعضاء يتحدثون - عضو واحد يتحدث - عضوان يتحدثان - %1$s أعضاء يتحدثون - %1$s عضوًا يتحدث - %1$s عضو يتحدث - يتحدث - %1$d%% يتحدّث - يستمع - يطلب التحدّث - تمت دعوته - مغادرة - إنهاء - كتم المايكروفون - هل ترغب حقًا في منع **%1$s** من التحدث في المحادثة الصوتية؟ - إزالة مشارك - هل تريد إزالة %1$s من المحادثة الصوتية وحظرهم في %2$s؟ - تمت إزالة **%1$s** من المجموعة. - الآن يمكن لـ «**%1$s**» التحدّث. - تم إلغاء كتم **%1$s** عندك. - تم كتم «**%1$s**» في هذه المحادثة. - "تم كتم **%1$s** عندك في هذه المحادثة. " - كتم - السماح للمشاركين الجدد بالتحدث - كتم المشاركين الجدد - مشاركة رابط الدعوة - إنهاء المحادثة الصوتية - إنهاء المحادثة الصوتية - يتم الاتصال... - "مغادرة المحادثة الصوتية " - هل ترغب حقًا في مغادرة المحادثة الصوتية هذه؟ - إنهاء المحادثة الصوتية - "هل ترغب حقًا في إنهاء هذه المحادثة الصوتية؟ " - إنهاء المحادثة الصوتيّة - عرض المحادثة الصوتية - "محادثة صوتية " - محادثة صوتية مُجدوَلة - فتح المحادثة الصوتية - "المستخدم المحدد موجود في هذه المحادثة الصوتية. " - عذرًا، لايمكنك الانضمام إلى المحادثات الصوتية كمشرف مجهول. - عذرًا، المحادثة الصوتية ممتلئة. - قام un1 بدعوة un2 إلى المحادثة الصوتية - الانضمام للمحادثة الصوتية - مرحبا! انضم إلى محادثتنا الصوتية: %1$s - دعوة أعضاء - مشاركة رابط الدعوة - إزالة - عرض الملف الشخصي - فتح القناة - فتح المجموعة - السماح بالتحدّث - البحث عن أشخاص لدعوتهم... - نسخ رابط الدعوة - تم نسخ رابط الدعوة إلى الحافظة - إلغاء الكتم - "انتهت المحادثة الصوتية. بدء واحدة جديدة؟ " - إضافة عضو - "هل تريد إضافة **%1$s** إلى **%2$s**؟ " - أنت دعوت **%1$s** إلى المحادثة الصوتية. - إضافة - الصوت - كتمه عندي - مكتوم عندي - إلغاء كتمه عندي - اضغط للانضمام - بدء التسجيل - إيقاف التسجيل - بدء المحادثة الصوتية بـ... - الانضمام إلى المحادثة الصوتية بـ... - إظهاري بـ... - يمكنك اختيار ما إذا كنت تريد الظهور بحسابك الشخصي أم بقناتك. - يمكنك اختيار ما إذا كنت تريد الظهور بحسابك الشخصي أو بهذه المجموعة أو الظهور بإحدى قنواتك. - المتابعة بـ %1$s - تعديل العنوان - تعديل الصلاحيات - ستظهر للمشاركين في هذه المحادثة الصوتية بـ «**%1$s**». - عنوان المحادثة الصوتية - يمكنه التحدّث - استماع فقط - نسخ رابط المتحدّث - نسخ رابط المستمع - يمكنك التحدّث الآن. - يمكنك التحدّث الآن في «**%1$s**». - إيقاف التسجيل - هل تريد إيقاف تسجيل هذه المحادثة الصوتية؟ - بدء التسجيل - هل تريد تسجيل هذه المحادثة الصوتية وحفظ التسجيل كملف صوتيّ؟\n\nسيرى المشاركون أن هذه المحادثة يتم تسجيلها. - عنوان التسجيل - تم حفظ التسجيل في **الرسائل المحفوظة**. - بدأ تسجيل المحادثة. - يتم تسجيل المحادثة الصوتيّة - الحساب الشخصيّ - إلغاء طلب التحدّث - الانضمام كمتحدّث - الانضمام كمستمع - الانضمام للمحادثة الصوتية - هل تريد حقًا الظهور في هذه المحادثة الصوتية بحسابك الشخصيّ؟ - تم كتم صوت المحادثة الصوتية. - تم إلغاء كتم صوت المحادثة الصوتية. - سيتم إعلام أعضاء المجموعة عندما تقوم بتشغيل المحادثة الصوتية. - سيتم إعلام أعضاء المجموعة عندما تقوم بتشغيل المحادثة الصوتية. - سيتم إظهارك بـ: - بدء محادثة صوتية - جدولة محادثة صوتية - البدء الآن - إنشاء تذكير - إلغاء التذكير - سيتم إعلام أعضاء المجموعة بأن المحادثة الصوتية ستبدأ بعد %1$s. - سيتم إعلام مشتركي القناة بأن المحادثة الصوتية ستبدأ بعد %1$s. - تبدأ بعد - متأخرة بـ - مشاركة - سيتم إعلامك عندما تبدأ. - انضم **%1$s** للمحادثة الصوتية. - انضم **%1$s** للمحادثة الصوتية. - المحادثات الصوتية النشطة - المكالمات الحديثة - مشاركة الشاشة - إيقاف مشاركة الشاشة - هذا أنت - فتح المحادثة - تغيير الصورة - إضافة نبذة - تعديل الاسم - النبذة - يمكنك إضافة بضعة أسطر عن نفسك. سيرى أي شخص هذا النص. - إضافة نبذة - تعديل النبذة - إضافة وصف - تعديل الوصف - إضافة صورة أو نبذة - إضافة نبذة - إضافة صورة - اضغط لإضافة وصف - اضغط لإضافة صورة أو وصف. - تعديل العنوان - العنوان - تعيين صورة جديدة - الكاميرا - معاينة الفيديو - ستتم مشاركة فيديو الكاميرا الخاصة بك مع بقية المشاركين في هذه المحادثة الصوتية. - مشاركة فيديو الكاميرا - معاينة - تثبيت - إلغاء التثبيت - الصوت - تحديد مخرج الصوت - الفيديو متوقف متؤقتًا - أنت تشارك شاشتك - أنت الآن تشارك شاشتك - إيقاف المشاركة - تقليل الضوضاء - مفعّل - معطّل - بث فيديو الكاميرا متاح فقط لأول %1$s مشاركًا - - إدارة روابط الدعوة - يمكنك إنشاء روابط دعوة إضافية بوقت أو عدد محدود من الاستخدامات. - سيتمكن أي شخص لديه تيليجرام من الانضمام إلى مجموعتك عبر هذا الرابط. - سيتمكن أي شخص لديه تيليجرام من الانضمام إلى قناتك عبر هذا الرابط. - تعديل الرابط - حفظ الرابط - بلا حد - محدود بفترة زمنية - مرات استخدام محدودة - رابط جديد - تخصيص الفترة - تخصيص الحد - يمكنك جعل صلاحية الرابط تنتهي بعد وقت محدد. - يمكنك جعل صلاحية الرابط تنتهي بعد استخدامه لمرات محدودة. - لم ينضم أحد بعد - انتهى - رمز QR - أُنشئ الرابط بواسطة - دعوة عبر رمز QR - مشاركة رمز QR - معطّل - ينتهي الرابط في %s - ينتهي بعد - تحديد الوقت - الروابط المعطّلة - حذف الرابط - رابط معطّل - هذا الرابط لم يعد نشطًا - انتهى الوقت المحدد لهذا الرابط. - بلغ هذا الرابط حده من الاستخدام. - إنشاء رابط جديد - حذف كل الروابط المعطّلة - لم ينضم أحد - بلغ الحد - يمكن لأي شخص لديه تيليجرام مسح هذا الرمز للانضمام إلى مجموعتك. - سيتم حذف الرابط. - سيتم حذف كل الروابط المعطّلة. - تستطيع إنشاء روابط دعوة تنتهي صلاحيتها بعد أن يتم استخدامها. - روابط الدعوة التي أنشأها هذا المشرف - الروابط التي أنشأها المشرفون - رابط الدعوة لهذا المشرف - "يمكن لأي شخص لديه تيليجرام مسح هذا الرمز للانضمام إلى قناتك. " - سيتمكن أي شخص لديه تيليجرام من الانضمام إلى قناتك عبر هذا الرابط. - ينتهي الرابط بعد %s - الرابط العام - انتهت صلاحية رابط الدعوة هذا. - نسخ - مشاركة - تم تعطيل رابط الدعوة. - رابط منتهي الصلاحيّة - - مراسلة %1$s - مكالمة صوتية %1$s - مكالمة مرئية %1$s - - un1 يتحدث - un1 يتحدث - un1 يتحدثان - un1 يتحدثون - un1 يتحدث - un1 يتحدث - حذف %1$d خلفية - حذف الخلفية - حذف الخلفيتين - حذف %1$d خلفيات - حذف %1$d خلفيةً - حذف %1$d خلفية - لا يوجد مستقبلون - مستقبل واحد - مستقبلان - %1$d مستقبلين - %1$d مستقبلًا - %1$d مستقبل - %1$d متصل - متصل واحد - متصلان اثنان - %1$d متصلين - %1$d متصلا - %1$d متصل - لا يوجد جهات اتصال على تيليجرام - جهة اتصال واحدة على تيليجرام - جهتا اتصال على تيليجرام - %1$d جهات اتصال على تيليجرام - %1$d جهة اتصال على تيليجرام - %1$d جهة اتصال على تيليجرام - "مرحبا، أنا أستخدم تيليجرام للمحادثة - يمكنك تنزيله من هنا: %2$s " - "مرحبا، أنا وإحدى جهات اتصالي نستخدم تيليجرام للمحادثة - يمكنك تنزيله من هنا: %2$s " - "مرحبا، أنا و%1$d من جهات اتصالي نستخدم تيليجرام للمحادثة - يمكنك تنزيله من هنا: %2$s " - "مرحبا، أنا و%1$d من جهات اتصالي نستخدم تيليجرام للمحادثة - يمكنك تنزيله من هنا: %2$s " - "مرحبا، أنا و%1$d من جهات اتصالي نستخدم تيليجرام للمحادثة - يمكنك تنزيله من هنا: %2$s " - مرحبا، أنا و%1$d من جهات اتصالي نستخدم تيليجرام للمحادثة - يمكنك تنزيله من هنا: %2$s - %1$d أشخاص انضموا - انضم شخص واحد - انضم شخصان - انضم %1$d أشخاص - انضم %1$d شخصًا - انضم %1$d شخص - بقي %1$d - بقي %1$d - بقي %1$d - بقي %1$d - بقي %1$d - بقي %1$d - %1$d يمكنهم الانضمام - %1$d يمكنه الانضمام - %1$d يمكنه الانضمام - %1$d يمكنهما الانضمام - %1$d يمكنهم الانضمام - %1$d يمكنهم الانضمام - بقي %1$d يوم - بقي %1$d أيام - بقي يوم واحد - بقي يومان - بقي %1$d أيام - بقي %1$d يومًا - %1$d محادثة - محادثة واحدة - محادثتان - %1$d محادثات - %1$d محادثة - %1$d محادثة - %1$d محادثة - محادثة واحدة - المحادثتين - %1$d محادثات - %1$d محادثة - %1$d محادثة - %1$d محادثة - محادثة واحدة - المحادثتين - %1$d محادثات - %1$d محادثة - %1$d محادثة - %1$d محادثة - محادثة واحدة - محادثتان - %1$d محادثات - %1$d محادثة - %1$d محادثة - محادثة واحدة - محادثتين - %1$d محادثات - %1$d محادثة - %1$d محادثة - قناة واحدة - قناتان - %1$d قنوات - %1$d قناة - %1$d قناة - مجموعة واحدة - مجموعتان - %1$d مجموعات - %1$d مجموعة - %1$d مجموعة - %1$d أعضاء - عضو واحد - عضوان - %1$d أعضاء - %1$d عضوًا - %1$d عضو - %1$d مشاركين - %1$d مشارك - مشاركان - %1$d مشاركين - %1$d مشاركا - %1$d مشارك - و%1$d عضو يكتب الآن - وعضوٌ آخرُ يكتبان الآن - وعضوان آخَران يكتبون الآن - و%1$d أعضاء آخَرين يكتبون الآن - و%1$d عضوًا آخَرين يكتبون الآن - و%1$d آخَرون يكتبون الآن - %1$s و شخص اخر يكتبان - %1$s و شخصان آخران يكتبون - %1$s و %2$d أشخاص آخرين يكتبون - %1$s و %2$d شخصا آخر يكتبون - %1$s و %2$d شخص آخر يكتبون - لا توجد رسائل جديدة - رسالة واحدة جديدة - رسالتان جديدتان - %1$d رسائل جديدة - %1$d رسالة جديدة - %1$d رسالة جديدة - تم إلغاء تثبيت %1$d رسائل - تم إلغاء تثبيت الرسالة - تم إلغاء تثبيت رسالتين - تم إلغاء تثبيت %1$d رسائل - تم إلغاء تثبيت %1$d رسالة - تم إلغاء تثبيت %1$d رسالة - %1$d رسالة - رسالة واحدة - رسالتين - %1$d رسائل - %1$d رسالة - %1$d رسالة - %1$d عنصار - عنصر واحد - عنصران - %1$d عناصر - %1$d عنصرًا - %1$d عنصر - من %1$d محادثة - من محادثة واحدة - من محادثتين - من %1$d محادثات - من %1$d محادثة - من %1$d محادثة - %1$d ثانية - ثانية واحدة - ثانيتين - %1$d ثوانٍ - %1$d ثانية - %1$d ثانية - %1$d دقائق - دقيقة واحدة - دقيقتين - %1$d دقائق - %1$d دقيقة - %1$d دقيقة - %1$d ساعة - ساعة واحدة - ساعتين - %1$d ساعات - %1$d ساعة - %1$d ساعة - %1$d أيام - يوم واحد - يومين - %1$d أيام - %1$d يومًا - %1$d يوم - %1$d ثانية - " ثانية واحدة" - ثانيتان - %1$d ثوانٍ - %1$d ثانية - %1$d ثانية - %1$d دقيقة - دقيقة واحدة - دقيقتان - %1$d دقائق - %1$d دقيقة - %1$d دقيقة - %1$d ساعة - ساعة واحدة - ساعتان - %1$d ساعات - %1$d ساعة - %1$d ساعة - %1$d أيام - يوم واحد - يومين - %1$d أيام - %1$d يومًا - %1$d يوم - %1$d أسبوع - أسبوع واحد - أسبوعان - %1$d أسابيع - %1$d أسبوعًا - %1$d أسبوع - %1$d شهر - شهر واحد - شهران - %1$d أشهر - %1$d شهرًا - %1$d شهر - %1$d سنة - سنة واحدة - سنتان - %1$d سنوات - %1$d سنة - %1$d سنة - %1$d مستخدم - مستخدم واحد - مستخدمان - %1$d مستخدمين - %1$d مستخدمًا - %1$d مستخدم - %1$d مرات - مرة واحدة - مرتان - %1$d مرات - %1$d مرة - %1$d مرة - %1$d متر - متر واحد - متران - %1$d أمتار - %1$d مترًا - %1$d متر - %1$d ملصقات - ملصق واحد - ملصقان اثنان - %1$d ملصقات - %1$d ملصقًا - %1$d ملصق - %1$d قناع - قناع واحد - قناعين - %1$d أقنعة - %1$d قناعًا - %1$d قناع - لا يوجد مشتركين - مشترك واحد - مشتركان - %1$d مشتركين - %1$d مشتركًا - %1$d مشترك - استثناء واحد - استثناءان - %1$d استثناءات - %1$d استثناء - %1$d استثناء - %1$d مستخدم تمت إزالته - مستخدمٌ واحد تمت إزالته - مستخدمان اثنان تمت إزالتهما - %1$d مستخدمين تمت إزالتهم - %1$d مستخدمًا تمت إزالتهم - %1$d مستخدم تمت إزالته - %1$d - %1$d - %1$d - %1$d - %1$d - %1$d - تم تحديثه قبل %1$d دقيقة - تم تحديثه قبل دقيقة واحدة - تم تحديثه قبل دقيقتين - تم تحديثه قبل %1$d دقائق - تم تحديثه قبل %1$d دقيقة - تم تحديثه قبل %1$d دقيقة - **%1$d** ثواني - **%1$d** ثانية - **%1$d** ثانية - **%1$d** ثانية - **%1$d** ثانية - **%1$d** ثانية - **%1$d** دقائق - **%1$d** دقيقة - **%1$d** دقيقة - **%1$d** دقيقة - **%1$d** دقيقة - **%1$d** دقيقة - **%1$d** ساعات - **%1$d** ساعة - **%1$d** ساعة - **%1$d** ساعة - **%1$d** ساعة - **%1$d** ساعة - **%1$d** أيام - يوم واحد - يومين - **%1$d** أيام - **%1$d** يومًا - **%1$d** يوم - %1$s مشاهدة - مشاهدة واحدة - مشاهدتان - %1$s مشاهدات - %1$s مشاهدة - %1$s مشاهدة - %1$s مشاركة - مشاركة واحدة - مشاركتان - %1$s مشاركات - %1$s مشاركة - %1$s مشاركة - التحويلات في العام %1$s - التحويلات في العام %1$s - التحويلات في العام %1$s - التحويلات في العام %1$s - التحويلات في العام %1$s - التحويلات في العام %1$s - %1$s مشاركة - مشاركة واحدة - مشاركتان - %1$s مشاركات - %1$s مشاركة - %1$s مشاركة - %1$s حزمة ملصقات - حزمة ملصقات واحدة - حزمتا ملصقات - %1$s حزم ملصقات - %1$s حزمة ملصقات - %1$s حزمة ملصقات - - %1$d رسالة محوَّلة - رسالة واحدة محوَّلة - رسالتان محوَّلتان - %1$d رسائل محوَّلة - %1$d رسالة محوَّلة - %1$d رسالة محوَّلة - %1$d صورة - صورة واحدة - صورتان - %1$d صور - %1$d صورة - %1$d صورة - %1$d مقطع مرئي - مقطع مرئي - مقطعين مرئيين - %1$d مقاطع مرئية - %1$d مقطعًا مرئيًا - %1$d مقطع مرئي - %1$d ملف - ملف واحد - ملفان اثنان - %1$d ملفات - %1$d ملفًا - %1$d ملف - %1$d ملف صوتي - ملف صوتي واحد - ملفان صوتيان - %1$d ملفات صوتية - %1$d ملفًا صوتيًا - %1$d ملف صوتي - %1$d مجموعة مشتركة - مجموعة واحدة مشتركة - مجموعتان مشتركتان - %1$d مجموعات مشتركة - %1$d مجموعة مشتركة - %1$d مجموعة مشتركة - %1$d ملف - ملف واحد - ملفان - %1$d ملفات - %1$d ملفًا - %1$d ملف - %1$d رسالة صوتية - رسالة صوتية واحدة - رسالتان صوتيتان - %1$d رسائل صوتية - %1$d رسالة صوتية - %1$d رسالة صوتية - %1$d رابط - رابط واحد - رابطان - %1$d روابط - %1$d رابط - %1$d رابط - %1$d صور متحركة - صورة متحركة واحدة - صورتان متحركتان - %1$d صور متحركة - %1$d صورة متحركة - %1$d صورة متحركة - %1$d مستخدم محظور - مستخدم واحد محظور - مستخدمان محظوران - %1$d مستخدمين محظورين - %1$d مستخدمًا محظورًا - %1$d مستخدم محظور - %1$d ملف محوَّل - ملف واحد محوَّل - ملفان محوَّلان - %1$d ملفات محوَّلة - %1$d ملفًا محوَّلا - %1$d ملف محوَّل - %1$d صورة محوَّلة - صورة واحدة محوَّلة - صورتان محوَّلتان - %1$d صور محوَّلة - %1$d صورة محوَّلة - %1$d صورة محوَّلة - %1$d مقطع مرئي محوَّل - مقطع مرئي واحد محوَّل - مقطعان مرئيان محوَّلان - %1$d مقاطع مرئية محوَّلة - %1$d مقطعًا مرئيًا محوَّلا - %1$d مقطع مرئي محوَّل - %1$d ملف صوتي محوَّل - ملف صوتي واحد محوَّل - ملفان صوتيان محوَّلان - %1$d ملفات صوتية محوَّلة - %1$d ملفًا صوتيًا محوَّلا - %1$d ملف صوتي محوَّل - %1$d رسالة صوتية محوَّلة - رسالة صوتية واحدة محوَّلة - رسالتان صوتيتان محوَّلتان - %1$d رسائل صوتية محوَّلة - %1$d رسالة صوتية محوَّلة - %1$d رسالة صوتية محوَّلة - %1$d رسالة مرئية محوَّلة - رسالة مرئية واحدة محوَّلة - رسالتان مرئيتان محوَّلتان - %1$d رسائل مرئية محوَّلة - %1$d رسالة مرئية محوَّلة - %1$d رسالة مرئية محوَّلة - %1$d موقع محوَّل - موقع واحد محوَّل - موقعان محوَّلان - %1$d مواقع محوَّلة - %1$d موقعًا محوَّلا - %1$d موقع محوَّل - %1$d جهة اتصال محوَّلة - جهة اتصال واحدة محوَّلة - جهتا اتصال محوَّلتان - %1$d جهات اتصال محوَّلة - %1$d جهة اتصال محوَّلة - %1$d جهة اتصال محوَّلة - %1$d ملصق محوَّل - ملصق واحد محوَّل - ملصقان محوَّلان - %1$d ملصقات محوَّلة - %1$d ملصقًا محوَّلا - %1$d ملصق محوَّل - %1$d استفتاء محوَّل - استفتاء واحد محوَّل - استفتاءان محوَّلان - %1$d استفتاءات محوَّلة - %1$d استفتاءً محوَّلا - %1$d استفتاء محوَّل - و%1$d آخرون - وواحد آخر - واثنان آخران - و%1$d آخرون - و%1$d آخرون - و%1$d آخرون - %1$d صورة محددة - صورة واحدة محددة - صورتان محددتان - %1$d صور محددة - %1$d صورةً محددة - %1$d صورة محددة - %1$d مقطع مرئي محدد - مقطع مرئي واحد محدد - مقطعان مرئيان محددان - %1$d مقاطع مرئية محددة - %1$d مقطعًا مرئيًا محددًا - %1$d مقطع مرئي محدد - %1$d عنصر محدد - عنصر واحد محدد - عنصران محددان - %1$d عناصر محددة - %1$d عنصرًا محددًا - %1$d عنصر محدد - %1$d شخص يستخدم هذا النمط - شخص واحد يستخدم هذا النمط - شخصان يستخدمان هذا النمط - %1$d أشخاص يستخدمون هذا النمط - %1$d شخصًا يستخدم هذا النمط - %1$d شخص يستخدم هذا النمط - %1$d من %2$d - "%1$d من %2$d " - %1$d من %2$d - %1$d من %2$d - %1$d من %2$d - "%1$d من %2$d " - %1$d مستخدم - مستخدم واحد - مستخدمان - %1$d مستخدمين - %1$d مستخدمًا - %1$d مستخدم - %1$d مستخدم - مستخدم واحد - مستخدمان - %1$d مستخدمين - %1$d مستخدمًا - %1$d مستخدم - تم تحديد %1$d من %2$d - تم تحديد %1$d من %2$d - تم تحديد %1$d من %2$d - تم تحديد %1$d من %2$d - تم تحديد %1$d من %2$d - تم تحديد %1$d من %2$d - عرض %1$d رد - عرض الرد - عرض الرّدين - عرض %1$d ردود - عرض %1$d ردًا - عرض %1$d رد - %1$d ردود - رد - ردان - %1$d ردود - %1$d ردًا - %1$d رد - %1$d تعليق - تعليق - تعليقان - %1$d تعليقات - %1$d تعليقا - %1$d تعليق - %1$d تعليقات - تعليق واحد - تعليقان - %1$d تعليقات - %1$d تعليقًا - %1$d تعليق - تعليقات - تعليق واحد - تعليقان - تعليقات - تعليقًا - تعليق - %1$d رسالة مثبّتة - رسالة واحدة مثبّتة - رسالتان مثبّتة - %1$d رسائل مثبّتة - %1$d رسالة مثبّتة - %1$d رسالة مثبّتة - %s أشخاص يمكنهم الانضمام بهذا الرابط - شخص واحد يمكنه الانضمام بهذا الرابط - شخصان يمكنهما الانضمام بهذا الرابط - %s أشخاص يمكنهم الانضمام بهذا الرابط - %s شخصًا يمكنهم الانضمام بهذا الرابط - %s شخص يمكنه الانضمام بهذا الرابط - محادثة واحدة مثبتة - محادثتان مثبتتان - %1$d محادثات مثبتة - %1$d محادثة مثبتة - %1$d محادثة مثبتة - تم إلغاء تثبيت المحادثة - تم إلغاء تثبيت محادثتين - تم إلغاء تثبيت %1$d محادثات - تم إلغاء تثبيت %1$d محادثة - تم إلغاء تثبيت %1$d محادثة - - مجموعة - قناة - محادثة سرية - تم الإرسال %s - تم التسليم %s - مجدولة لـ %s - العودة للخلف - فتح قائمة التنقل - فتح القائمة - إغلاق القائمة - فتح في عارض الصور - %2$s من قِبل %1$s - مزيد من الخيارات - التبديل إلى النمط الليلي - التبديل إلى النمط النهاري - تشغيل - إيقاف مؤقت - تنزيل - إيقاف التنزيل - فتح الملف - خيارات الرسالة - الدخول إلى وضع التحديد - الرموز التعبيرية، الملصقات والصور المتحركة - إرفاق وسائط - إرسال بشكلٍ صامت - إرسال الإشعارات - أوامر البوت - لوحة مفاتيح البوت - إظهار لوحة المفاتيح - تسجيل رسالة صوتية - تسجيل رسالة مرئية - فتح المحادثة - الصورة الشخصية - تغيير الصورة الشخصية - تغيير الترتيب - إظهار الحسابات - إخفاء الحسابات - الذهاب إلى الرسالة - إلغاء الرد - إلغاء التحويل - إلغاء التعديل - رد على - تحويل من - يتم التعديل - قفل التطبيق - فتح قفل التطبيق - رجوع - السابق - التكرار، إيقاف - التكرار، قائمة التشغيل - التكرار، هذا المقطع - إغلاق مشغل الصوتيات - سرعة مضاعفة - إيقاف مشاركة الموقع الحي - الكاميرا الفورية - لقط صورة - تبديل الكاميرا - الكشاف، إيقاف - الكشاف، تلقائي - الكشاف، تشغيل - حزمة ملصقات - صور متحركة - الملصقات - تكبير اللوحة - تصغير اللوحة - خيارات المستخدم - تدوير - عكس - محرر الصور - تعديلات - عارض الصور - الذهاب للأسفل - الذهاب إلى الإشارة التالية - كتم الميكروفون - العنوان - الرأسية - موقعي - التنبيه عندما يكون في النطاق - دقة المقطع المرئي - الأبعاد - أخذ صورة أخرى - تم قرائتها - غير مقروءة - يتم الإرسال - مشكلة في الإرسال - لم تُسمع بعد - نتيجة البحث التالية - نتيجة البحث السابقة - تصفية حسب المستخدم - التقاط صورة - تسجيل مقطع مرئي - اسحب للأسفل لرؤية الأرشيف - افلت لرؤية الأرشيف - حجم أصغر - دقة أعلى - %1$s من %2$s - تم تنزيل %1$s من %2$s - تم رفع %1$s من %2$s - شوهدت %1$d مرّة - شوهدت %1$d مرّة - شوهدت %1$d مرات - شوهدت %1$d مرّة - شوهدت %1$d مرّة - إرسال %1$d صورة - إرسال صورتين - إرسال %1$d صور - إرسال %1$d صورة - إرسال %1$d صورة - إرسال %1$d ملف - إرسال ملفين - إرسال %1$d ملفات - إرسال %1$d ملفًّا - إرسال %1$d ملف - إرسال ملف صوتي - إرسال ملفين صوتيين - إرسال %1$d ملفات صوتية - إرسال %1$d ملفًّا صوتيًّا - إرسال %1$d ملف صوتي - مشاركة في %1$d محادثة - مشاركة في محادثتين - مشاركة في %1$d محادثات - مشاركة في %1$d محادثة - مشاركة في %1$d محادثة - الإجابة الصحيحة - الشرح - نمط صورة داخل صورة - المايكروفون مفتوح - المايكروفون مغلق - تم التبديل إلى الكاميرا الأمامية - تم التبديل إلى الكاميرا الخلفية - الكاميرا مفتوحة - الكاميرا مغلقة - قائمة الرسائل المثبّتة - "التبديل إلى ملء الشاشة " - إيقاف ملء الشاشة + **تيليجرام** يتيح لك الوصول\nلرسائلك من أجهزة متعددة. + بدء المراسلة + MMM dd, yyyy + dd MMM yyyy + dd MMMM + dd MMMM, yyyy yyyy MMMM MMM dd yyyy, h:mm a MMM dd yyyy, HH:mm @@ -4444,14 +1217,12 @@ MMM dd yyyy, HH:mm dd MMM, h:mm a dd MMM, HH:mm - LLLL yyyy - LLLL dd MMM yy.MM.dd yyyy.MM.dd d MMMM d MMMM yyyy - EEE + EE EEEE HH:mm h:mm a @@ -4459,8 +1230,8 @@ d MMM yyyy MMM d \'إرسالها اليوم عند\' HH:mm - \'إرسال بتاريخ\' d MMM \'عند\' HH:mm - \'إرسال بتاريخ\' d MMM yyyy \'عند\' HH:mm + \'إرسالها في\' d MMM \'عند\' HH:mm + \'إرسالها في\' d MMM yyyy \'عند\' HH:mm \'اليوم عند\' HH:mm \'البدء في\' d MMM \'عند\' HH:mm \'البدء في\' yyyy MMM d \'عند\' HH:mm @@ -4473,6 +1244,4 @@ \'ذكّرني اليوم عند\' HH:mm \'ذكّرني بتاريخ\' d MMM \'عند\' HH:mm \'ذكّرني بتاريخ\' d MMM yyyy \'عند\' HH:mm - Menu - ارسلت من diff --git a/TMessagesProj/src/main/res/values-de/strings.xml b/TMessagesProj/src/main/res/values-de/strings.xml index 6083f2ead7..2aaab1fb03 100644 --- a/TMessagesProj/src/main/res/values-de/strings.xml +++ b/TMessagesProj/src/main/res/values-de/strings.xml @@ -10,6 +10,9 @@ Dein Telefon Bitte bestätige deine Landeskennzahl und deine Telefonnummer. + Land + Deine Telefonnummer + Telefonnummer Wähle ein Land Ungültige Landeskennzahl Dieses Konto ist bereits in der App angemeldet. @@ -20,12 +23,22 @@ Kontakte dieses Gerätes werden deinem Konto hinzugefügt. Aktiviere diese Option, um Kontakte von diesem Gerät durchgehend mit deinem Konto zu synchronisieren. Kontakte von diesem Gerät wurden deinem Konto hinzugefügt. + Ist das die richtige Nummer? + Falsches Format + Die angegebene Nummer ist zu kurz für **%1$s**:\n\n**%2$s**\n\nTippe die richtige Nummer ein, inkl. deiner Landeskennzahl. + Nummer ändern + Falls du den Code nicht per SMS oder Anruf erhalten hast, prüfe deine **Mobilfunk-Einstellungen** und Handynummer: **%1$s**\n\nHilft das nicht, probiere bitte eine andere Handynummer oder melde dich bei uns, indem du auf **HILFE** tippst. + Hilfe + Nummer ändern Nummer verifizieren - Wir haben dir eine SMS mit Aktivierungscode an **%1$s** gesendet. + Wir haben eine SMS mit Aktivierungscode an **%1$s** gesendet. Code wurde dir per **Telegram** an deine aktive App geschickt. + Wir haben den Code für %1$s per Chatnachricht an die **Telegram App** auf deinem anderen Gerät gesendet. Prüfe deine Telegram-Nachrichten + Erhalte den Code für %1$s im Bereich \'Anonymous Numbers\' bei Fragment. Code eingeben + Fragment öffnen Wir rufen dich jetzt unter **%1$s** an.\n\nBitte den Anruf nicht annehmen, Telegram kümmert sich um alles. **%1$s** wird angerufen, \num dir einen Code anzusagen. Telegram ruft dich in %1$d:%2$02d an @@ -34,284 +47,42 @@ SMS wird gesendet... Code Falsche Nummer? + Code falsch, bitte erneut versuchen. Code nicht erhalten? Code per SMS senden + Code bei Fragment erhalten Zurücksetzung abbrechen Jemand mit Zugang zu deiner Telefonnummer **%1$s** hat die Kontolöschung und Zurücksetzung der zweistufige Bestätigung beantragt.\n\nWenn du das nicht selbst gewesen bist, tippe den Code der SMS ein, den wir dir gerade gesendet haben oder **ändere deine Telefonnummer**. Konto zurücksetzen Da dein Konto **%1$s** aktiv und durch ein Passwort geschützt ist, löschen wir es aus Sicherheitsgründen in einer Woche.\n\nDu kannst den Vorgang jederzeit abbrechen. Du kannst dein Konto zurücksetzen in: Deine vorherigen Versuche das Konto zurückzusetzen wurden durch den aktiven Nutzer abgebrochen. Bitte in 7 Tagen erneut probieren. - KONTO ZURÜCKSETZEN Link ist ungültig oder abgelaufen. + Erfolgreich! Löschvorgang für dein Konto %1$s wurde abgebrochen. Du kannst das Fenster nun schließen. Dein Anmeldecode lautet **%1$s**. Gebe ihn in der Telegram-App ein, bei der du dich anmelden möchtest.\n\nDen Code niemals weitergeben. + Du kannst eine SMS anfordern in: %1$d:%2$02d + In %1$d:%2$02d kannst du eine neue SMS anfordern. + Code per SMS anfordern + Du kannst einen Sprachanruf anfordern in %1$d:%2$02d + Ruft an, um mir den Code anzusagen + Code per Anruf erhalten + Landeskennzahl + Mit Google anmelden Dein Name Namen eingeben und ein Profilbild hochladen. Vorname (erforderlich) + Vorname Nachname (optional) + Nachname Registrierung abbrechen - - Du hast erfolgreich %1$s an %2$s für %3$s übermittelt. - Du hast erfolgreich %1$s an %2$s übermittelt. - Kasse - Versandarten - Tut uns sehr leid, leider kann an deine Adresse nichts geliefert werden. - Versandinfo - Versandadresse - Adresse 1 (Straße) - Adresse 2 (Straße) - Stadt - Bundesland - Land - PLZ - Empfänger - Vor- und Nachname - Trinkgeld - Trinkgeld (optional) - Telefonnummer - E-Mail - Versandinformationen speichern - Du kannst deine Versandinformationen für zukünftige Bestellungen speichern. - Zahlungsinformationen - Zahlungskarte - Kartennummer - Kartenprüfnummer (CVV) - MM/JJ - Rechnungsadresse - Vor- und Nachname - Zahlungsinformationen speichern - Du kannst deine Zahlungsdaten für die zukünftige Verwendung speichern. Sie werden direkt beim Zahlungsanbieter gespeichert. Telegram hat keinen Zugriff auf deine Kreditkartendaten. - Bitte *schalte die zweistufige Bestätigung ein*, um es zu aktivieren. - Überprüfung der Transaktion - **%1$s** an den %2$s Bot für **%3$s** übermitteln? - Gesamtsumme - RECHNUNG - TEST-RECHNUNG - %1$s BEZAHLEN - Zahlungsart - Neue Karte - Zahlungsbetreiber - Name - Telefonnummer - Kontaktadresse - Versandart - Beleg - Wähle eine andere Karte - Deine Karte %1$s ist bereits gespeichert. Um mit dieser Karte zu bezahlen, tippe dein Passwort der zweistufigen Bestätigung ein. - Tut uns sehr leid. Die Zahlung wurde durch den Bot abgebrochen. - Tut uns sehr leid. Die Zahlung wurde abgelehnt. - Kann den Zahlungsserver nicht erreichen. Bitte prüfe deine Internetverbindung und versuche es erneut. - Warnung - Weder Telegram noch %1$s haben Zugriff auf deine Kreditkartendaten. Kreditkartendetails werden nur vom Zahlungssystem %2$s abgewickelt.\n\nZahlungen gehen direkt an den Entwickler von %1$s. Telegram kann keine Haftung übernehmen, du handelst auf eigene Gefahr. Wende dich bei Problemen bitte direkt an den Entwickler von %1$s oder an deine Bank. - Passwort & E-Mail - Passwort - Passwort eingeben - Passwort erneut eingeben - Um deine Zahlungsinformationen zu schützen, erstelle bitte ein Passwort. Du brauchst dieses bei der Anmeldung. - Wiederherstellung - Deine E-Mail-Adresse - Benutze bitte eine gültige E-Mail-Adresse. Das ist die einzige Möglichkeit, ein vergessenes Passwort wiederherzustellen. - Nummer wird an %1$s als Rechnungsinformation weitergeleitet. - E-Mail wird an %1$s als Rechnungsinformation weitergeleitet. - Nummer und E-Mail werden an %1$s als Rechnungsinformation weitergeleitet. - Du hast **%1$s** für **%2$s** bezahlt. - - Neue Nachricht - Auto-Nachtmodus ist aus - Einstellungen - Kontakte - Neue Gruppe - gestern - Keine Ergebnisse - Willkommen bei Telegram - Kürzlich angeschaut - AUSBLENDEN - Tippe unten auf den Stift für deine erste Chatnachricht. - Beginne eine Nachricht, \nindem du unten auf einen \ndeiner Kontakte tippst. - Warte auf Netzwerk... - Verbinden... - Verbunden - Ping: %1$d ms - Prüfe... - Verfügbar - Nicht verfügbar - Verbinde mit Proxy - Mit Proxy verbinden - Aktualisiere... - Neuer Geheimer Chat - Warte, bis %s online geht... - Geheimer Chat beendet - Tausche Schlüssel aus... - %s ist deinem geheimen Chat beigetreten. - Du bist dem geheimen Chat beigetreten. - Verlauf leeren - Verlauf leeren - Verlauf leeren - Auto-Löschung aktivieren - Auto-Löschung: %1$s - Nachrichten in diesem Chat automatisch löschen - Auto-Löschung von Nachrichten - Löscht neue Nachrichten nach Ablauf der Zeit bei dir und %1$s. - Löscht neue Nachrichten nach Ablauf der Zeit in dieser Gruppe bei allen Mitgliedern. - Löscht neue Nachrichten nach Ablauf der Zeit in diesem Kanal bei allen Abonnenten. - Bestätigen - 24 Stunden - 7 Tage - Löscht neue Nachrichten nach Ablauf der Zeit in diesem Chat. - Aus - Für diesen Chat festlegen - Nachrichten in diesem Chat werden\nautomatisch %1$s nach dem\nVersand gelöscht. - Neue Nachrichten in diesem Chat werden automatisch in %1$s gelöscht. - Auto-Löschung ist jetzt aus. - Auto-Lösch-Timer stellen - Timer für automatische Löschung - Verlauf geleert. - Stumm - Stumm aus - Chat gelöscht - Gruppe gelöscht. - Kanal gelöscht. - Archiv angeheftet. - Archiv nach links wischen,\num es zu verstecken. - Archiv versteckt. - Nach unten wischen,\num Archiv anzuzeigen. - Chat archiviert. - Chats archiviert - Archiv nach links wischen,\num es zu verstecken. - RÜCKGÄNGIG - Cache leeren - Löschen und verlassen - Verstecken - Anheften - Anheften - Loslösen - Archivieren - Archiv - Einblenden - Archivierte Chats - Chat löschen - Gelöschtes Konto - Chat auswählen - Chats auswählen - Weiterleiten an... - Geheimes Bild - Geheimes Video - Geheimes GIF - %1$s benutzt eine ältere Version von Telegram, sodass Bilder in Geheimen Chats im Kompatibilitätsmodus angezeigt werden.\n\nSobald %2$s Telegram aktualisiert, werden Bilder mit Timern von 1 Minute und kürzer per \"Tippen und Halten\" angezeigt. Du wirst benachrichtigt, sobald dein Chatpartner ein Bildschirmfoto macht. - Nachrichten - Suche - Stummschalten - Stumm für %1$s - Stumm aus - In %1$s - Deaktivieren - HASHTAGS - Letzte - Leute - Vorschlag entfernen - Möchtest du wirklich **%1$s** aus den Vorschlägen entfernen? - %1$s aus Vorschlägen entfernen? - Linkvorschau - Entwurf - Verlauf wurde gelöscht - von %1$s - %1$s von %2$s - Falsches Layout? - Sticker senden - GIF senden - Paket anzeigen - Oben anheften - Du kannst leider nur %1$s oben deiner Chatliste anheften. Mehr Chats können in Chat-Ordnern oder in deinem Archiv angeheftet werden. - Mehr Chats kannst du oben leider nicht anheften. - Oben loslösen - Als ungelesen markieren - Als gelesen markieren - Alle als gelesen markieren - Über der Liste verstecken - In der Liste anheften - Fett - Kursiv - Mono - Durchstreichen - Unterstreichen - Normal - **Telegram** benötigt Zugriff auf deine Kontakte, damit du dich mit Freunden auf all deinen Geräten verbinden kannst. Deine Kontakte werden durchgehend mit den stark verschlüsselten Cloud-Servern von Telegram synchronisiert. - JETZT NICHT - WEITER - Deine Kontakte bei Telegram - Das ist dein Archiv - Chats mit aktivierten Benachrichtigungen landen wieder in der Chatliste, wenn neue Benachrichtigungen eintreffen. - Stummgeschaltete Chats - Stummgeschaltete Chats\nbleiben im Archiv, wenn\nneue Nachrichten eintreffen. - Angeheftete Chats - Unbegrenzt viele archivierte Chats\nkannst du oben anheften. - Halte diese Knopf, um deine Nachricht zu planen oder ohne Ton zu senden. - Neue Chats verstecken? - Du erhältst viele Chats von Leuten, die du nicht in deinen Kontakten hast. Möchtest du solche Chats zukünftig **automatisch stummschalten** und **archivieren**? - ZU EINSTELLUNGEN - Profil öffnen - Kanal öffnen - Gruppe öffnen - Nachricht senden - Erwähnen - Benachrichtigungen stumm - Benachrichtigungen stumm für %1$s - Benachrichtigungen nicht mehr stumm - %1$d Nachrichten gelöscht - Nachricht gelöscht - %1$d Nachrichten gelöscht - %1$d Nachrichten gelöscht - %1$d Nachrichten gelöscht - %1$d Nachrichten gelöscht - Keine Ergebnisse - Keine Ergebnisse - Probiere eine neue Suche. - Musik aus all deinen Chats wird hier angezeigt. - Dateien aus all deinen Chats werden hier angezeigt. - Links aus all deinen Chats werden hier angezeigt. - Sprache aus all deinen Chats wird hier angezeigt. - Medien aus all deinen Chats werden hier angezeigt. - Chats - Nachricht angeheftet - Nachricht losgelöst - Auf den Stift tippen, um neuen Chat zu starten - Eine neue Gruppe zum Importieren erstellen - Nachrichten importieren - Importierungsfehler - Unbekanntes Dateiformat. - Verlauf kann bei ausgewähltem Chat nicht importiert werden. - Unbekannte Dateisprache. - Du musst ein Admin in der Gruppe sein, um Nachrichten importieren zu können. - Die Datei stammt von einer Gruppe, du hast jedoch einen Nutzer ausgewählt. - Die Datei stammt von einem Nutzer, du hast jedoch eine Gruppe ausgewählt. - Die Privatsphäreneinstellungen verbieten die Importierung. - IMPORTIEREN - Nachrichten von **%1$s** in den Chat mit **%2$s** importieren?\n\nNachrichten werden in den aktuellen Tag importiert, enthalten aber auch ihre ursprüngliche Zeitangabe. Beide Seiten werden die Nachrichten sehen. - Nachrichten in den Chat mit **%1$s** importieren?\n\nNachrichten werden in den aktuellen Tag importiert, enthalten aber auch ihre ursprüngliche Zeitangabe. Beide Seiten werden die Nachrichten sehen. - Nachrichten von **%1$s** in die Gruppe **%2$s** importieren?\n\nNachrichten werden in den aktuellen Tag importiert, enthalten aber auch ihre ursprüngliche Zeitangabe. Alle Mitglieder werden die Nachrichten sehen. - Nachrichten in die Gruppe **%1$s** importieren?\n\nNachrichten werden in den aktuellen Tag importiert, enthalten aber auch ihre ursprüngliche Zeitangabe. Alle Mitglieder werden die Nachrichten sehen. - Du kannst nur Nachrichten in private Chats mit Nutzern importieren, die gemeinsame Kontakte sind. - Du musst ein Admin in der Gruppe sein, um Nachrichten importieren zu können. - Diese Nachricht wurde von einer anderen App importiert. Wir können nicht garantieren, dass sie echt ist. - Importiere Nachrichten und Medien... **%d%%** - Importiere Chats - Bitte lass Telegram offen, bis \ndie Importierung abgeschlossen ist. - %1$s von %2$s - Fertig - Importierung erfolgreich! - Spare Platz auf deinem Gerät, indem du mehr Chats bei Telegram importierst. - Nachrichten und Medien werden importiert... - Importiere Sticker... - Importiere die Nachrichten oder Medien in... - Oder wähle einen Kontakt + Profil Widget bearbeiten Verknüpfung zu deinen Lieblingschats.\n\nEntscheidest du dich keinen auszuwählen, erscheinen häufige Kontakte im Widget. Zeigt die letzten Nachrichten deiner Wunschchats an.\n\nEntscheidest du dich keine auszuwählen, erscheinen deine letzten Chats im Widget. - Warnung: Dein Pincode wird für Widgets **ignoriert**. - Dein Pincode wird sich **nicht** auf Widgets auswirken. + Warnung: Dein Pincode wird für Widgets **ignoriert**, du brauchst ihn aber um die App zu öffnen oder um zu antworten. Nach Chats suchen... Widget-Vorschau antippen, um Widget zu bearbeiten @@ -319,890 +90,14 @@ Chats Verknüpfungen Konto wurde abgemeldet. - - Zum Admin machen - Adminrechte bearbeiten - Keine entfernten Nutzer - Gruppe löschen - Gruppe verlassen - Gruppe löschen - Du verlierst alle Nachrichten der Gruppe. - Administratoren helfen dir, deine Gruppe zu verwalten. Tippen und halten, um sie zu löschen. - Wenn du diese Gruppe löschst, werden alle Mitglieder und alle Nachrichten entfernt. Wirklich löschen? - Gruppe bei allen Mitgliedern löschen - Bei allen Abonnenten löschen - Gruppe erstellt - un1 hat dich hinzugefügt - Möchtest du wirklich diese Gruppe verlassen? - Wirklich **%1$s** verlassen? - Du kannst diesen Nutzer nicht hinzufügen. - Leider ist diese Gruppe schon voll. - Wenn jemand eine Gruppe verlassen hat, musst du in der Kontaktliste der Person sein, um sie wieder hinzufügen zu können.\n\nMan kann die Gruppe auch über einen Einladungslink betreten, so lange die Person nicht in der Liste \"Entfernte Nutzer\" der Gruppe steht. - Es gibt bereits zu viele Administratoren. - Der ausgewählte Nutzer hat zu viele öffentliche Gruppen oder Kanäle. Bitte die Person, einfach einen Kanal oder eine Gruppe privat zu stellen. - Der ausgewählte Nutzer hat zu viele lokale Gruppen. Bitte die Person, Gruppen bei sich zu löschen oder Inhaber-Rechte an andere zu vergeben. - Du hast bereits zu viele lokale Gruppen. Bitte lösche zuerst einen deiner bestehenden. - Es gibt bereits zu viele Bots. - un1 hat \"%1$s\" angeheftet - un1 hat eine Nachricht angeheftet - un1 hat eine Umfrage angeheftet - un1 hat ein Quiz angeheftet - un1 hat ein Bild angeheftet - un1 hat ein Video angeheftet - un1 hat eine Datei angeheftet - un1 hat einen Sticker angeheftet - un1 hat eine Sprachnachricht angeheftet - un1 hat eine Videonachricht angeheftet - un1 hat einen Kontakt angeheftet - un1 hat %1$s angeheftet - un1 hat einen Standort angeheftet - un1 hat einen Live-Standort angeheftet - un1 hat ein GIF angeheftet - un1 hat Audiodatei angeheftet - Gruppe wurde in eine Supergruppe geändert - %1$s wurde in eine Supergruppe geändert - Nutzer, die von Admins aus der Gruppe entfernt wurden, können sie nicht mehr über Einladungslinks betreten. - Nutzer, die von Admins aus dem Kanal entfernt wurden, können ihn nicht mehr über Einladungslinks betreten. - Neuer Kanal - Kanalname - Leute zum Kanal hinzufügen - Mit einem dauerhaften Link können andere deinen Kanal finden und abonnieren. \n\nErlaubt sind a-z, 0-9 und Unterstriche.\nDie Mindestlänge beträgt 5 Zeichen. - Mit einem öffentlichen Link können andere deine Gruppe finden und beitreten.\n\nErlaubt sind a-z, 0-9 und Unterstriche.\nDie Mindestlänge beträgt 5 Zeichen. - Warnung - Link - Alle Telegramnutzer können mit diesem Link deinem Kanal beitreten, du kannst ihn aber jederzeit widerrufen. - Alle können mit diesem Link deiner Gruppe beitreten, du kannst ihn aber jederzeit widerrufen. - Beschreibung (optional) - Beschreibung - Beschreibe deinen Kanal (optional). - Du hast einige Gruppeneinstellungen verändert. Änderungen anwenden? - Du hast einige Kanaleinstellungen verändert. Änderungen anwenden? - öffentlich - Öffentliche Gruppe - Lokale Gruppe - Kann jeder über die Suche finden - Öffentliche Gruppen kann jeder über die Suche finden, gesamter Chatverlauf ist für alle einsehbar und jeder kann der Gruppe beitreten. - privat - Private Gruppe - Kann man nur per Einladungslink finden - Private Gruppen können nur durch direkte Einladungen oder über einen Einladungslink betreten werden. - Öffentlicher Link - Einladungslink - Mitglieder hinzufügen - Abonnenten hinzufügen - Kanal verlassen - Kanal verlassen - Einstellungen - BEITRETEN - Broadcast - Lautloser Broadcast - Was ist ein Kanal? - In einem Kanal kannst du deine Nachrichten an ein großes Publikum schicken. - Kanal erstellen - Leider ist der Name schon belegt. - Der Name ist ungültig. - Kanalnamen benötigen mindestens 5 Zeichen. - Der Name darf maximal 32 Zeichen haben. - Kanalnamen dürfen nicht mit einer Zahl anfangen. - Gruppennamen benötigen mindestens 5 Zeichen. - Gruppennamen dürfen nicht mit einer Zahl anfangen. - Überprüfe Namen... - %1$s ist verfügbar. - Mitglieder - Der Gruppe hinzufügen - Dem Kanal hinzufügen - Von dieser Liste löschen - Abonnenten - Entfernte Nutzer - Berechtigungen - Was dürfen Mitglieder machen? - Ausnahme hinzufügen - Ausnahmen durchsuchen - Entfernte Nutzer - Kontakte in diesem Kanal - Kontakte in dieser Gruppe - Deine Kontakte - Bots - Weitere Mitglieder - Weitere Abonnenten - beigetreten: %1$s - Eingeschränke Nutzer - Administratoren - Kanal löschen - Kanal löschen - Vorsicht! Wenn du diesen Kanal löschst, werden alle Abonnenten und alle Nachrichten entfernt. Möchtest du wirklich den Kanal löschen? - Möchtest du wirklich diesen Kanal verlassen? - Wirklich **%1$s** verlassen? - Du verlierst dadurch alle Nachrichten des Kanals. - Bearbeiten - Wähle einen Link - Bitte wähle einen Link für deinen öffentlichen Kanal, damit andere ihn finden und weiter verbreiten können.\n\nWenn du das nicht möchtest, empfehlen wir dir einen privaten Kanal. - Kanal erstellt - Bild geändert - Kanalvideo geändert - Bild gelöscht - Kanalname zu un2 geändert - Du hast leider zu viele öffentliche Benutzernamen erstellt. Du kannst jederzeit den Link einer älteren Gruppe oder eines Kanals entfernen oder private erstellen. - Inhaber - Admin - Admin - STUMM - STUMM AUS - Admin hinzufügen - Nutzer entfernen - Entsperren - Gedrückt halten um zu entsperren - Per Link einladen - Admin entlassen - Berechtigungen bearbeiten - Nur Kanal-Admins sehen diese Liste. - Jeder, der Telegram installiert hat, kann anhand dieses Links in deinen Kanal. - Administratoren helfen dir, deinen Kanal zu verwalten. Tippen und halten, um sie zu löschen. - Möchtest du dem Kanal \'%1$s\' beitreten? - Dieser Chat ist nicht mehr zugänglich. - Du kannst auf diesen Chat leider nicht zugreifen, da du von einem Admin gesperrt wurdest. - Du wurdest gesperrt und kannst öffentliche Gruppen nicht betreten. - Dieser Chat ist nicht mehr verfügbar. - %1$s zum Kanal hinzufügen? - Hat jemand den Kanal verlassen, muss man in den Telegram-Kontakten der Person sein, um sie wieder hinzufügen zu können. \n\nBeachte, dass die Person den Kanal weiterhin über den Einladungslink betreten kann, solange sie sich nicht in der Liste der \"entfernten Nutzer\" befindet. - Du kannst diesen Nutzer nicht einladen. - Es gibt bereits zu viele Administratoren in diesem Kanal. - Es gibt bereits zu viele Bots. - "Du kannst nur die ersten 200 Leute einladen, aber unbegrenzt viele können dem Kanal über den Einladungslink beitreten. " - Zu viele Gruppen/Kanäle - Du bist Mitglied in zu vielen Gruppen und Kanälen. Bitte verlasse einige, damit du eine neue erstellen kannst. - Du bist bereits in zu vielen Gruppen und Kanälen. Bitte erst einige verlassen. - un1 hat dich hinzugefügt - Du bist dem Kanal beigetreten - Du bist der Gruppe beigetreten - Aus Kanal entfernen - Du darfst in diesem Kanal nichts schreiben. - %1$s hat dich dem Kanal %2$s hinzugefügt - Kanal %1$s hat das Bild geändert - Kanal %1$s hat das Video aktualisiert - %1$s hat eine Nachricht gesendet - %1$s hat ein Bild gesendet - %1$s hat ein Video gesendet - %1$s hat einen Kontakt gesendet %2$s - %1$s hat eine Umfrage gesendet %2$s - %1$s hat das Quiz \"%2$s\" veröffentlicht - %1$s hat einen Standort gesendet - %1$@ hat einen Live-Standort geteilt - %1$s hat eine Datei gesendet - %1$s hat ein GIF gesendet - %1$s hat %2$s gesendet - %1$s hat ein Album gesendet - %1$s hat eine Sprachnachricht gesendet - %1$s hat eine Videonachricht gesendet - %1$s hat eine Audiodatei gesendet - %1$s hat einen Sticker gesendet - %1$s hat einen %2$s Sticker gesendet - Wer kann Mitglieder einladen? - Alle Mitglieder - Nur Admins - Abonnenten werden benachrichtigt - Stille Benachrichtigung wird gesendet - Nachrichten unterschreiben - Zeigt Namen der Admins in ausgehenden Nachrichten - Adminrechte - Eigene Bezeichnung - Diese Bezeichnung wird anstatt \'%1$s\' angezeigt. - Was kann dieser Admin machen? - Kanal-Info ändern - Gruppen-Info ändern - Nachrichten senden - Andere Nachrichten bearbeiten - Nachrichten von anderen löschen - Nachrichten löschen - Neue Admins hinzufügen - Anonym bleiben - Admin entlassen - Neuen Inhaber ernennen - Neuen Inhaber ernennen - Sicherheitsprüfung - Du kannst die Gruppe **%1$s** nur übertragen, wenn: - Du kannst den Kanal **%1$s** nur übertragen, wenn: - **Zweistufige Bestätigung** aktiv ist und vor über **7 Tagen** eingeschaltet wurde. - Du dich auf auf diesem Gerät vor über **24 Stunden** angemeldet hast. - Bitte komm später wieder. - Passwort festlegen - Das wird die vollständigen **Inhaber-Rechte** von **%1$s** an **%2$s** übertragen. - Inhaber ändern - **%1$s** ist jetzt der Gruppeninhaber. - **%1$s** ist jetzt der Kanalinhaber. - Nutzer sperren - Nutzer hinzufügen - Nutzer per Link einladen - Nachrichten anheften - Befördert von %1$s - Du kannst die Rechte dieses Admins nicht bearbeiten. - Diese Berechtigung kannst du nicht bearbeiten. - Diese Berechtigung ist in öffentlichen Gruppen nicht verfügbar. - Entfernt von %1$s - Nutzerberechtigungen - In den Gruppenberechtigungen ist diese Option für alle deaktiviert worden - Was kann dieser Nutzer machen? - Nachrichten lesen - Nachrichten senden - Medien senden - Umfragen senden - Sticker & GIFs senden - Linkvorschau senden - Chat-Info ändern - Nachrichten anheften - Nutzer hinzufügen - kann nicht lesen - kann keine Nachrichten senden - keine Medien - keine Umfragen - keine Sticker & GIFs - keine Linkvorschau - keine Info ändern - kein anheften - keine Nutzer hinzufügen - Dauer - Dauerhaft - Sperren und aus der Gruppe entfernen - Änderungen anwenden - Du hast die Rechte des Nutzers bei ** %1$s** geändert. Änderungen anwenden? - Eigener - Gruppe verwalten - Kanal verwalten - Gruppe verwalten - Kanal verwalten - Chatverlauf für neue Mitglieder - Neues Bild festlegen - Bild oder Video festlegen - Sichtbar - Neue Mitglieder sehen Nachrichten, die vor ihrem Beitritt gesendet wurden. - Versteckt - Neue Mitglieder sehen keine vorherigen Nachrichten. - Neue Mitglieder sehen max. 100 vorherige Nachrichten. - Kanal beitreten - Gruppe beitreten - Gruppenart - Kanaltyp - Gruppenart - Kanalart - Gruppeneinstellungen - Kanaleinstellungen - Privat - Öffentlich - Privat - Öffentlich - Link - Für dauerhaften Link antippen - Bild auswählen - Bild oder Video festlegen - Neues Bild festlegen - Foto aufnehmen - Video aufnehmen - Aus der Galerie - Aus der Galerie wählen - Aus dem Web - Statistiken - Bots können nur als Admins hinzugefügt werden. - Bots können Kanälen nur als Admins hinzugefügt werden. - ALS ADMIN FESTLEGEN - %1$s wird bei Einschränkung als Admin entfernt. - Diskussion - Diskussion anzeigen - Gruppenchat für Kommentare hinzufügen - Verknüpfter Kanal - Wähle eine Gruppe aus, die Kommentare aus deinem Kanal anzeigen soll. - Alles, was du in diesem Kanal veröffentlichst, wird an die Gruppe weitergeleitet. - **%1$s** wurde als Gruppe für die Kanal-Kommentare ausgewählt. - Diese Gruppe dient %1$s\nals Diskussionsgruppe. - Alle neuen Nachrichten, die in diesem Kanal veröffentlicht werden, werden an die Gruppe weitergeleitet. - Neue Gruppe erstellen - Gruppe nicht mehr verknüpfen - Kanal nicht mehr verknüpfen - Verknüpfung entfernen - Gruppe verknüpfen - Wirklich **%1$s** als Diskussionsgruppe für **%2$s** festlegen? - Wirklich **%1$s** als Diskussionsgruppe für **%2$s** festlegen?\n\nAlle Mitglieder der Gruppe werden Nachrichten im Kanal sehen. - Möchtest du **%1$s** als Diskussionsgruppe für **%2$s** festlegen?\n\nJeder aus dem Kanal wird Nachrichten in dieser Gruppe sehen. - \"Chatverlauf für neue Mitglieder\" wird auf sichtbar umgestellt. - Wirklich Verknüpfung von **%1$s** mit dieser Gruppe entfernen? - Wirklich Verknüpfung von **%1$s** mit diesem Kanal entfernen? - DISKUTIEREN - Kanal - Langsamer Modus - Aus - %1$ds - %1$dm - %1$dh - Wie lange jedes Mitglied warten muss, bevor es seine nächste Nachricht senden darf. - Intervall zwischen einzelnen Nachrichten: %1$s - Langsamer Modus ist aktiv, du kannst nicht mehr als eine Nachricht gleichzeitig senden. - Langsamer Modus ist aktiv, du kannst nicht mehr Elemente auswählen. - Dieser Text ist für eine einzelne Nachricht leider zu lang.\n\nLangsamer Modus ist aktiv, du kannst nicht mehr als eine gleichzeitig senden. - **%1$s** als Admin ernannt - **%1$s** aus **%2$s** entfernt - - Neue Umfrage - Neues Quiz - Umfrage - Frage der Abstimmung - Stelle eine Frage - Antwortoptionen - Quiz-Antworten - Umfrageergebnis - Anonyme Stimmabgabe - Quiz-Modus - Erst eine Option wählen - Zuklappen - Aufklappen - Leider können Umfragen mit sichtbaren Stimmen nicht an Kanäle weitergeleitet werden. - Rechnungen können leider nicht an Geheime Chats weitergeleitet werden. - Leider können Umfragen nicht an Geheime Chats weitergeleitet werden. - Spiele können leider nicht an Geheime Chats gesendet werden. - Rechnungen können leider nicht an Geheime Chats gesendet werden. - Mehrfachauswahl - Wähle hier die richtige Antwort - Umfragen im Quiz-Modus haben eine richtige Antwort. Nutzer können ihre Antworten nicht widerrufen. - Option hinzufügen... - Noch %1$s - Mehr Optionen gibt es derzeit leider nicht. - Anonyme Umfrage - Falsche Antwort! - Du hast nicht die richtige Antwort gewählt. - Gut gemacht! - Du hast die richtige Antwort gewählt. - Umfrage - Quiz - ABSTIMMEN - ERGEBNIS ANZEIGEN - Anonymes Quiz - Umfrage beenden - Umfrage beenden? - Beendest du diese Umfrage, so kann niemand mehr abstimmen. Das lässt sich nicht rückgängig machen. - Quiz beenden - Quiz beenden? - Wenn du dieses Quiz jetzt beendest, kann niemand mehr abstimmen. Das kann nicht rückgängig gemacht werden. - Umfrage verwerfen? - Wirklich diese Umfrage verwerfen? - Stimme entfernen - Endergebnis - Keine Stimmen - Noch keine Antworten - %1$d Stimmen - %1$d Stimme - %1$d Stimmen - %1$d Stimmen - %1$d Stimmen - %1$d Stimmen - %1$d Antworten - %1$d Antwort - %1$d Antworten - %1$d Antworten - %1$d Antworten - %1$d Antworten - Mehr anzeigen (%1$d) - Mehr anzeigen (%1$d) - Mehr anzeigen (%1$d) - Mehr anzeigen (%1$d) - Mehr anzeigen (%1$d) - Mehr anzeigen (%1$d) - %1$d weitere Optionen möglich. - %1$d weitere Option möglich. - %1$d weitere Optionen möglich. - %1$d weitere Optionen möglich. - %1$d weitere Optionen möglich. - %1$d weitere Optionen möglich. - Option - - Letzte Aktionen - Alle Aktionen - ausgewählte Aktionen - Alle Admins - **Noch keine Aktionen!**\n\nMitglieder und Admins\nhaben noch keine Aktionen in den\nletzten 48 Stunden durchgeführt. - **Noch keine Aktionen!**\n\nMitglieder und Admins\nhaben noch keine Aktionen\nin den letzten 48 Stunden durchgeführt. - **Keine Aktionen gefunden**\n\nKeine kürzlichen Ereignisse gefunden,\ndie deinen Suchbegriff beinhalten. - Keine kürzlichen Aktionen gefunden, die \'**%1$s**\' beinhalten. - Was sind letzte Aktionen? - Das ist eine Liste wichtiger Aktionen, die von Gruppenmitgliedern und Admins in den letzten 48 Stunden durchgeführt wurden. - Das ist eine Liste aller Aktionen, die von Kanalmitgliedern und Admins in den letzten 48 Stunden durchgeführt wurden. - un1 hat die Gruppe \"%1$s\" umbenannt - un1 hat den Kanal in \"%1$s\" umbenannt - un1 hat die Gruppe verlassen - un1 hat den Kanal verlassen - un1 hat un2 hinzugefügt - un1 ist der Gruppe beigetreten - hat %1$s gesperrt - hat %1$s entsperrt - un1 ist dem Kanal beigetreten - un1 hat das Gruppenbild geändert - un1 hat das Kanalbild geändert - un1 hat ein neues Gruppenvideo festgelegt - un1 hat ein neues Kanalvideo festgelegt - un1 hat das Gruppenbild entfernt - un1 hat das Kanalbild entfernt - un1 hat diese Nachricht bearbeitet: - un1 hat Beschriftung bearbeitet: - un1 hat Medium bearbeitet: - un1 hat Medium und Beschriftung bearbeitet: - Original-Nachricht - Original-Beschriftung - Leer - un1 hat diese Nachricht angeheftet: - un1 hat angeheftete Nachricht entfernt - un1 hat Umfrage beendet: - un1 hat das Quiz beendet: - un1 hat diese Nachricht gelöscht: - un1 hat den Gruppenstandort zu \"%1$s\" geändert - un1 hat den Gruppenstandort entfernt - hat Inhaberschaft an %1$s übertragen - un1 hat das Sticker-Paket der Gruppe geändert - un1 hat das Sticker-Paket der Gruppe entfernt - un1 hat un2 als Diskussionsgruppe für diesen Kanal festgelegt - un1 hat die Diskussionsgruppe un2 entfernt - un1 hat diese Gruppe mit un2 verknüpft - un1 hat die Verknüpfung dieser Gruppe von un2 entfernt - un1 hat den Gruppen-Link geändert: - un1 hat den Kanal-Link geändert: - un1 hat Gruppen-Link entfernt - un1 hat Kanal-Link entfernt - Vorheriger Link - un1 hat die Gruppenbeschreibung geändert: - un1 hat die Kanalbeschreibung geändert: - Vorherige Beschreibung - un1 hat den Chatverlauf für neue Mitglieder sichtbar gemacht - un1 hat den Chatverlauf für neue Mitglieder versteckt - un1 hat Gruppeneinladungen aktiviert - un1 hat Gruppeneinladungen deaktiviert - un1 hat Unterschriften aktiviert - un1 hat Unterschriften deaktiviert - hat Berechtigungen für %1$s geändert\n\nDauer: %2$s - hat Standardberechtigungen geändert - Sticker & GIFs senden - Medien senden - Info ändern - Nutzer hinzufügen - Nachrichten anheften - Umfragen senden - Nachrichten senden - Linkvorschau senden - Nachrichten lesen - hat Berechtigungen von %1$s geändert - hat %1$s befördert - Kanal-Info ändern - Gruppen-Info ändern - Nachrichten senden - Nachrichten bearbeiten - Nachrichten löschen - Admins hinzufügen - Anonym bleiben - Nutzer sperren - Sprachchats verwalten - Nutzer hinzufügen - Bezeichnung: %1$s - Bezeichnung - Nachrichten anheften - Alle Aktionen - Neue Ausnahmen - Adminrechte - Neue Mitglieder - Gruppen-Info - Kanal-Info - Gelöschte Nachrichten - Bearbeitete Nachrichten - Angeheftete Nachrichten - Ehemalige Mitglieder - Sprachchats - Einladungslinks - un1 hat den Timer des langsamen Modus auf %1$s gestellt - un1 hat den langsamen Modus deaktiviert - un1 hat einen Sprachchat gestartet - un1 hat den Sprachchat beendet - un1 hat un2 in einem Sprachchat stummgeschaltet - un1 hat Stummschaltung von un2 in einem Sprachchat aufgehoben - un1 hat neuen Teilnehmern im Sprachchat erlaubt zu sprechen - un1 hat neue Teilnehmer des Sprachchats stummgeschaltet - - Neue Broadcast Liste - Listenname - Du hast eine Broadcast Liste erstellt - Empfänger hinzufügen - Aus Broadcast Liste entfernen - - Keine Audiodateien - Deine Musikbibliothek ist leer - Keine Ergebnisse gefunden - **%1$s** wurde nicht in deiner Musikbibliothek gefunden. - Keine Treffer für **%1$s**. - Musik - Unbekannter Künstler - Unbekannter Titel - Titel wiederholen - Liste wiederholen - Liste mischen - Reihenfolge umkehren - - Datei auswählen - Letzte Dateien suchen - Freier Speicher: %1$s von %2$s - Unbekannter Fehler - Zugriffsfehler - Die Datei darf nicht größer als %1$s sein - Speicher nicht eingebunden - USB-Transfer aktiv - Interner Speicher - Externer Speicher - Systemverzeichnis - SD-Karte - Ordner - Letzte Dateien - Dateien von A-Z - Nichts gefunden - **%1$s** konnte in diesem Verzeichnis leider nicht gefunden werden. - Dieser Ordner ist leer. - Bilder ohne Komprimierung senden - Musikdateien senden - App-Ordner durchsuchen - Dateisystem durchsuchen - SD-Karte durchsuchen - Musik suchen - - Gruppen-Sticker - Sticker-Paket auswählen - Paket wählen, welches alle in der Gruppe sehen können. - STICKER-PAKET WÄHLEN - sticker-paket - Erstelle dein eigenes Sticker-Paket mit dem @stickers Bot. - Sticker-Paket nicht gefunden - Erneut probieren oder unten auswählen - - unsichtbar - Support - tippt... - tippt... - tippen… - %1$s tippt... - %1$s tippen... - %1$s nimmt eine Sprachnachricht auf... - %1$s nimmt eine Videonachricht auf... - %1$s sendet Audio... - %1$s sendet Bild... - SCHNELLANSICHT - GRUPPE ANZEIGEN - HINTERGRUND ANZEIGEN - THEMA ANSEHEN - KANAL ÖFFNEN - NACHRICHT ANZEIGEN - Das dunkle Farbthema wird Nachts automatisch aktiviert - Einzelnachweis - %1$s spielt ein Spiel... - %1$s sendet Video... - %1$s sendet Datei... - nimmt Sprachnachricht auf... - nimmt Videonachricht auf... - schickt Audio... - schickt Bild... - spielt ein Spiel... - sendet ein Video... - schickt Datei... - Hast du eine Frage\nzu Telegram? - Galerie - Standort - Video - Datei - Kamera - Noch keine Nachrichten... - Noch keine geplanten Nachrichten... - Weitergeleitete Nachricht - Von - Von %1$s - von: - Keine aktuellen - Nachricht - Nachricht - Nachricht planen - MEINE NUMMER TEILEN - Meine Nummer teilen - Zu Kontakten hinzufügen - %s hat dich zu einem\nEnde-zu-Ende verschlüsselten\nGeheimen Chat eingeladen. - Du hast %s zu einem\nEnde-zu-Ende verschlüsselten\nGeheimen Chat eingeladen. - Geheime Chats in Kürze: - Keine Serverspeicherung - Selbstzerstörungs-Timer - Verbieten Weiterleitung - Löschen sich bei Abmeldung - du wurdest entfernt - Du hast die Gruppe verlassen - Diese Gruppe löschen - Diesen Chat löschen - Diesen Chat löschen - Chats löschen - WISCHEN UM ABZUBRECHEN - In Downloads speichern - GIF hinzufügen - GIF aus diesem Bereich löschen? - Musik speichern - Teilen - Sprachdatei benutzen - Thema anwenden - Nicht unterstützte Datei - Selbstzerstörungs-Timer - Servicemeldungen - Lade Linkvorschau... - ÖFFNEN MIT... - Öffnen in... - %1$s senden - %1$s hochladen - Als Datei - Als Dateien - Link öffnen - %1$s wirklich öffnen? - Bei %1$s als **%2$s** anmelden - Erlaube **%1$s**, mir Nachrichten zu senden - Versand abbrechen - Darf %1$s deinen Anzeigenamen und deine id (nicht deine Telefonnummer) mit Internetseiten teilen, die du mit diesem Bot öffnest? - GRUPPE PASST NICHT ZUM STANDORT? - Unpassende Gruppe melden - Bitte teile uns mit, wenn die Gruppe nicht mit diesem Standort in Verbindung steht:\n\n**%1$s** - Bitte teile uns mit, wenn diese Gruppe nicht diesem Standort in Verbindung steht. - SPAM MELDEN - Spam melden - %1$s blockieren - NUTZER BLOCKIEREN - SPAM MELDEN UND VERLASSEN - KONTAKT HINZUFÜGEN - %1$s ALS KONTAKT HINZUFÜGEN - KONTAKT ANZEIGEN - Wirklich **%1$s** blockieren und davon abhalten, dir Nachrichten bei Telegram zu senden oder dich anzurufen? - Wirklich Nachrichten von **%1$s** blockieren? - Sicher, dass du Spam von diesem Nutzer melden willst? - Möchtest du wirklich Spam aus dieser Gruppe melden? - Möchtest du wirklich Spam aus diesem Kanal melden? - Du kannst im Moment nur Kontakten schreiben, die auch deine Nummer haben. - Derzeit kannst du nur gemeinsame Kontakte Gruppen hinzufügen. - Leider kannst du derzeit nichts in öffentlichen Gruppen veröffentlichen. - Mehr Infos - Sende an... - Kommentar hinzufügen... - Hier tippen um gespeicherte GIFs zu sehen - Anheften - Mitglieder benachrichtigen - Auch bei %1$s anheften - Loslösen - Nachricht anheften - Nachricht loslösen - Möchtest du eine ältere Nachricht anheften, während du eine neuere Nachricht angeheftet lässt? - Diese Nachricht in der Gruppe anheften? - Nachricht im Kanal wirklich anheften? - Möchtest du diese Nachricht ganz oben im Chat anheften? - Angeheftete Nachricht entfernen? - Nutzer sperren - Spam melden - Lösche alles von %1$s - Zuletzt benutzte Emoji leeren? - Smileys und Leute - Tiere und Natur - Essen und Trinken - Aktivität - Reisen und Orte - Objekte - Symbole - Flaggen - Nachrichten auswählen - NACHRICHTEN MELDEN - %1$s MELDEN - Melden - Meldung gesendet - Spam melden - Fälschung melden - Pornografie melden - Kindesmissbrauch melden - Gewalt melden - Zusätzliche Details, die für deine Meldung relevant sind. - Zusätzliche Details... - Meldung absenden - Moderatoren von Telegram werden \ndeine Meldung untersuchen. \nVielen Dank! - Spam - Gefälschtes Konto - Gewalt - Pornografie - Kindesmissbrauch - Sonstiges - Beschreibung - Angeheftete Nachricht - Vorherige Nachricht - Angeheftete Umfrage - bearbeitet - Nachricht bearbeiten - Beschriftung bearbeiten - Antippen, um Medium zu bearbeiten - Bild bearbeiten - Dieses Video bearbeiten - Bild ersetzen - Video ersetzen - Medium ersetzen - Datei ersetzen - Audiodatei ersetzen - Runterscrollen für Bots - %1$s - Bearbeitungszeit leider abgelaufen. - Verknüpfung hinzufügen - Mitglieder suchen - gespeicherte Nachrichten - Gespeichertes - Weiterleiten zum Speichern - Du - Du hast eine **Gruppe** erstellt - Gruppen bieten: - Platz für bis zu 200.000 Mitglieder - Dauerhaften Chat-Verlauf - Öffentliche Links, wie t.me/title - Admins mit unterschiedlichen Rechten - Speichere deine Lieblings-Chats - Sende Dateien jeglicher Art - Synchronisiert auf allen Geräten - Cloud-basierte Suchfunktion - Dein Cloud-Speicher - Gehe zu Datum - Bei %1$s löschen - Bei allen Mitgliedern löschen - Text in die Zwischenablage kopiert - Halten, um Audio aufzunehmen. - Halten für Audioaufnahme. Tippen für Video. - Halten für Videoaufnahme. Tippen für Audio. - Sprachnachricht verwerfen - Möchtest du die Aufnahme beenden und wirklich die Sprachnachricht dadurch verwerfen? - Videonachricht verwerfen - Möchtest du die Aufnahme beenden und wirklich die Videonachricht dadurch verwerfen? - Verwerfen - Die Admins dieser Gruppe haben dir die Berechtigung entzogen, Medien bis %1$s zu senden - Die Admins dieser Gruppe haben dir die Berechtigung entzogen, Sticker bis %1$s zu senden - Die Admins dieser Gruppe haben dir die Berechtigung entzogen, Sticker bis %1$s zu senden - Die Admins dieser Gruppe haben dir die Berechtigung entzogen, GIFs bis %1$s zu senden - Die Admins dieser Gruppe haben dir die Berechtigung entzogen, Nachrichten bis %1$s zu senden - Die Admins dieser Gruppe haben dir die Berechtigung entzogen, Medien zu senden. - Die Admins dieser Gruppe haben dir die Berechtigung entzogen, Inline-Bot Inhalte zu senden - Die Admins dieser Gruppe haben dir die Berechtigung entzogen, Sticker zu senden. - Die Admins dieser Gruppe haben dir die Berechtigung entzogen, GIFs zu senden. - Die Admins dieser Gruppe haben dir die Berechtigung entzogen, Nachrichten zu senden. - Versand von Medien ist hier nicht erlaubt. - Inline-Bots sind in dieser Gruppe nicht erlaubt. - Sticker sind in dieser Gruppe nicht erlaubt. - GIFs sind in dieser Gruppe nicht erlaubt. - Schreiben ist in dieser Gruppe nicht erlaubt. - Admin - APK Installation ist in dieser App eingeschränkt. Du kannst es in den System-Einstellungen aktivieren. - Ungelesene Nachrichten - Sticker suchen - Angesagte Sticker durchsuchen - Emoji suchen - URL - Kartenvorschau - Kartenvorschau (Anbieter) - Telegram - Google - Yandex - Keine Vorschau - Google Maps installieren? - BETRUG - FÄLSCHUNG - via - Nachricht existiert nicht - Langsamer Modus aktiv.\nBitte warte %1$s. - Tippen für Foto, halten für Video - Antippen für Listenansicht - Ohne Ton senden - Als neues Bild senden - Bild ersetzen - Jetzt senden - Umplanen - Heute - Planen - Nachricht planen - Später senden - Senden, wenn %1$s online kommt - Erinnerungen - Eine Erinnerung festlegen - Geplant am %1$s - Geplant bis online - Mehr als 100 Nachrichten kann man nicht planen. - Diese Aktion wird erst nach Veröffentlichung der Nachricht verfügbar sein. - Das Abstimmen wird erst nach Veröffentlichung der Nachricht verfügbar sein. - Ergebnisse werden sichtbar, sobald die Nachricht veröffentlicht wird. - 📅 Erinnerung - 1 Ergebnis - Die Videoqualität ist zu niedrig, um die Komprimierung zu ändern. - Kartennummer in Zwischenablage kopiert - Kopieren - **:würfel:**-Emoji senden, um zu würfeln - Sende einen **:dart:** Emoji, um dein Glück zu versuchen. - Sende ein %1$s Emoji, um dein Glück zu versuchen. - SENDEN - COVID-19 - PSA - Diese Nachricht enthält eine öffentliche Bekanntmachung hinsichtlich der aktuellen COVID-19 Pandemie. Erfahre mehr über diese Initiative unter https://telegram.org/blog/coronavirus - PSA info test - COVID-19 Benachrichtigung - Diese Nachricht enthält eine öffentliche Bekanntmachung hinsichtlich der aktuellen COVID-19 Pandemie. Erfahre mehr über diese Initiative unter https://telegram.org/blog/coronavirus - Wichtige Benachrichtigung - Das ist eine wichtige Benachrichtigung. - Chat verstecken - Wirklich diesen Chat verstecken? - Verstecken - Sende eine Nachricht oder tippe auf die Begrüssung unten. - Sende eine Nachricht oder tippe auf die Begrüßung unten. - %1$s ist %2$s - %1$s ist %2$s - Chat wurde in die Chatliste verschoben. - t - s - m - h - w - an private Nachrichten und Gruppen - Bot-Inhaberschaft übertragen - Das wird die **vollständigen Eigentümerrechte** des Bots an den ausgewählten Nutzer übertragen. - Inhaber ändern - So kannst du nur diesen Bot übertragen: - Kommentar hinterlassen - Kommentare - Kommentar - Antworten - Noch keine Kommentare... - Noch keine Antworten... - In Chat anzeigen - Anonym senden - Diskussion hat begonnen - Thread anzeigen - Datum wählen - Dieser Chat hilft dir, die Antworten auf deine Kommentare in den Kanälen zu verfolgen. - Dieser Beitrag wurde leider aus der Diskussionsgruppe entfernt. - ALLE NACHRICHTEN LOSLÖSEN - ANGEHEFTETE NACHRICHTEN VERSTECKEN - Angeheftete Nachrichten versteckt - Neu angeheftete Nachrichten lässt sie erneut erscheinen. - importiert - Die Importdatei ist zu groß. - Datei konnte nicht hochgeladen werden. - Audio wird in normaler Geschwindigkeit abgespielt. - Audio wird doppelt so schnell abgespielt. - Nachricht in Zwischenablage kopiert. - Zugestellt - Gelesen - Einladungslink an **Gespeichertes** gesendet. - Einladungslink gesendet an **%1$s**. - Einladungslink gesendet an **%1$s**. - Einladungslink an **%1$s** gesendet. - Nachricht weitergeleitet an **Gespeichertes**. - Nachrichten weitergeleitet an **Gespeichertes**. - Nachrichten weitergeleitet an **%1$s**. - Nachrichten weitergeleitet an **%1$s**. - Nachricht weitergeleitet an **%1$s**. - Nachrichten weitergeleitet an **%1$s**. - Nachricht weitergeleitet an **%1$s**. - Nachrichten weitergeleitet an **%1$s**. - Hintergrund bei **Gespeichertes** abgelegt. - Hintergrund mit **%1$s** geteilt. - Hintergrund mit **%1$s** geteilt. - Hintergrund mit **%1$s** geteilt. + %1$s hat dir einen Geschenkcode für %2$s von Telegram Premium geschickt + %1$s hat dir eine Verlosung von %2$sx %3$sm Premium-Abonnements geschickt + %1$s hat eine Verlosung von %2$sx %3$sm Premium-Abonnements veröffentlicht + %1$s hat eine Verlosung von %3$sx %4$sm Premium-Abonnements an die Gruppe %2$s geschickt + %1$s hat eine Verlosung angeheftet + %1$s hat mit %2$s auf deine Verlosung reagiert + %1$s hat mit %3$s in Gruppe %2$s auf deine Verlosung reagiert %1$s hat den Timer auf %2$s gesetzt Du hast den Timer auf %1$s gesetzt %1$s hat den Selbstzerstörungs-Timer deaktiviert @@ -1253,15 +148,26 @@ %1$s hat Audiodatei an die Gruppe %2$s gesendet %1$s hat einen Sticker an die Gruppe %2$s gesendet %1$s hat einen %3$s Sticker an die Gruppe %2$s gesendet + %1$s wurde %2$s berechnet + %1$d ⭐️ Medium + %1$d ⭐️ Medien + %2$s hat dir einen bezahlten Beitrag für %1$d Stern gesendet + %2$s hat dir einen bezahlten Beitrag für %1$d Sterne gesendet + %2$s hat einen bezahlten Beitrag für %1$d Stern veröffentlicht + %2$s hat einen bezahlten Beitrag für %1$d Sterne veröffentlicht + %2$s hat einen kostenpflichtigen Beitrag für %1$d Stern angeheftet + %2$s hat einen kostenpflichtigen Beitrag für %1$d Stern angeheftet + %2$s hat einen bezahlten Beitrag in %3$s Gruppe für %1$d Stern veröffentlicht + %2$s hat einen bezahlten Beitrag in %3$s Gruppe für %1$d Sterne veröffentlicht %1$s hat dich in die Gruppe %2$s eingeladen %1$s hat die Gruppe %2$s umbenannt %1$s hat das Gruppenbild von %2$s geändert - %1$s hat das Gruppenvideo bei %2$s geändert + %1$s hat das Gruppenbild bei %2$s geändert %1$s hat %3$s in die Gruppe %2$s eingeladen - %1$s hat %3$s in den Sprachchat in %2$s eingeladen - %1$s hat dich in den Sprachchat in %2$s eingeladen - %1$s hat einen Sprachchat in %2$s gestartet - %1$s hat Sprachchat in der Gruppe %2$s beendet + %1$s hat %3$s in den Videochat in %2$s eingeladen + %1$s hat dich in den Videochat bei %2$s eingeladen + %1$s hat einen Videochat in %2$s gestartet + %1$s hat Videochat in der Gruppe %2$s beendet %1$s ist in die Gruppe %2$s zurückgekehrt %1$s ist der Gruppe %2$s beigetreten %1$s hat %3$s aus der Gruppe %2$s entfernt @@ -1279,12 +185,11 @@ Nutzer Neue Nachricht Antworten - %1$s antworten - %1$s antworten - Hintergrunddaten eingeschränkt. + Antworten + Antworten %1$s %2$s %1$s hat \"%2$s\" in der Gruppe %3$s angeheftet - %1$s hat eine Nachricht in der der Gruppe %2$s angeheftet + %1$s hat eine Nachricht in der Gruppe %2$s angeheftet %1$s hat eine Umfrage %3$s in der Gruppe %2$s angeheftet %1$s hat das Quiz \"%3$s\" in der Gruppe \"%2$s\" angeheftet %1$s hat ein Bild in der Gruppe %2$s angeheftet @@ -1341,416 +246,13 @@ %1$s hat ein GIF angeheftet %1$s hat eine Audiodatei angeheftet Telegram - - Kontakt auswählen - Kontakte auswählen - KONTAKT TEILEN - Kontakt teilen - Kontakt hinzufügen - Noch keine Kontakte - Hi, ich benutze Telegram zum Chatten. Hier kannst du es herunterladen: %1$s - um - gestern um - um %1$s - heute um %1$s - gestern um %1$s - online - zul. online - zul. online - zul. online %1$s - zul. online %1$s - Freunde einladen - Nach Kontakten suchen - Globale Suche - zuletzt kürzlich gesehen - innerhalb einer Woche - innerhalb eines Monats - vor langer Zeit gesehen - Neue Nachricht - Kontakte wählen, die du einladen möchtest - ZU TELEGRAM EINLADEN - Telegram teilen... - Kontakte aktualisieren? - Telegram hat viele nicht synchronisierte Kontakte erkannt. Möchtest du diese jetzt synchronisieren? \'OK\' wählen, wenn du dein eigenes Gerät, SIM-Karte und Google-Konto benutzt. - Nach Name sortiert - Nach zuletzt gesehen sortiert - %1$s hinzufügen - Telefonnummer - Du hast bei Telegram noch keine Kontakte - Freunde zu Telegram einladen - Leute in der Nähe zum Chatten finden - Leute über Benutzername finden - Neuer Kontakt - Die Nummer **%1$s** ist nicht in deinen Kontakten. Möchtest du sie hinzufügen? - Kontakt hinzufügen - - Leute hinzufügen... - Mehr Mitglieder kannst du hinzufügen, sobald die Gruppe erstellt wurde. - Limit von 200.000 Mitgliedern in der Gruppe erreicht.\n\nDu kannst das Limit erhöhen, indem du die Gruppe in eine **Broadcast-Gruppe** umwandelst, in der nur Admins schreiben können. Interessiert? - Limit erreicht - MEHR DAZU - Broadcast-Gruppe - In Broadcast-Gruppe umwandeln - Broadcast-Gruppen dürfen über 200.000 Mitglieder haben, allerdings können nur Admins Nachrichten senden. - Nur Admins können in dieser Gruppe senden. - Deine Gruppe kann nun mehr als 200.000 Mitglieder haben. - Gruppenname - Gruppenname - bis zu %1$s - Leider ist diese Gruppe schon voll. - Leider gibt es diesen Chat nicht. - Dieser Kanal ist privat. Jetzt beitreten, um den Inhalt weiterhin anzusehen. - Diese Gruppe ist privat. Beitreten, um den Inhalt zu sehen. - Kanal beitreten - Gruppe beitreten - BEITRETEN - Link in die Zwischenablage kopiert - Link in Zwischenablage kopiert.\nDer Link funktioniert nur für Mitglieder dieses Chats. - Der Link funktioniert nur für Mitglieder dieses Chats. - Leider kannst du auf diese Nachricht nicht zugreifen. Du bist kein Mitglied des Chats, in dem sie veröffentlicht wurde. - Telefon in die Zwischenablage kopiert - E-Mail in die Zwischenablage kopiert - Per Link zur Gruppe einladen - Einladungslink - Einladungslinks - Bist du sicher, dass du diesen Link widerrufen willst? Dadurch kann ihn niemand mehr nutzen. - Der vorige Link ist nun inaktiv. Ein neuer Einladungslink wurde gerade erstellt. - Widerrufen - Link widerrufen - Bist du sicher, dass du den Link **%1$s** widerrufen willst?\n\nDie Gruppe \"**%2$s**\" wird dann privat. - Bist du sicher, dass du den Link **%1$s** widerrufen willst?\n\nDer Kanal \"**%2$s**\" wird dann privat. - Link kopieren - Link teilen - Jeder, der Telegram installiert hat, kann anhand dieses Links in deine Gruppe. - Suche nach Leuten... - Suche nach Nutzern oder Gruppen - Broadcast-Gruppen - Unbegrenzt viele Mitglieder. - Nur Admins können Nachrichten senden. - Kann nicht zurückgewandelt werden. - In Broadcast-Gruppe umwandeln - Als normale Gruppe beibehalten - Bist du sicher? - Reguläre Mitglieder der Gruppe (Nicht-Admins) verlieren **unwiderruflich** ihr Recht, Nachrichten in der Gruppe zu senden.\n\nDas kann **nicht** rückgängig gemacht werden. - UMWANDELN - Wenn du deine Meinung änderst, gehe in die Einstellungen deiner Gruppe. - - Mitglieder - Geteilte Medien - Einstellungen - Abonnent hinzufügen - Mitglied hinzufügen - Admins festlegen - NUTZER EINSCHRÄNKEN - Löschen und Gruppe verlassen - Löschen und Gruppe verlassen - Mitteilungen - Berechtigungen ändern - Aus der Gruppe entfernen - In Supergruppe ändern - In Supergruppe ändern - In Supergruppe ändern - Warnung - Du kannst die Supergruppe nicht mehr in eine normale Gruppe ändern. - **Gruppenlimit erreicht.**\n\nFür weitere Funktionen und um das Limit aufzuheben in Supergruppe ändern:\n\n• Bis zu %1$s sind nun möglich\n• Neue Mitglieder sehen gesamten Verlauf\n• Gelöschte Nachrichten werden bei allen Mitgliedern entfernt\n• Admins können Beschreibung festlegen\n• Gruppenersteller kann die Gruppe öffentlich machen - **In Supergruppen:**\n\n• Neue Mitglieder sehen gesamten Verlauf\n• Nachrichten sind bei allen löschbar\n• Admins können Beschreibung festlegen\n• Ersteller kann Gruppe öffentlich machen - **Wichtig:** Die Änderung kann nicht rückgängig gemacht werden. - - Kontakt teilen - Hinzufügen - Kontakt hinzufügen - Zu Telegram einladen - %1$s ist noch nicht bei Telegram. Willst du diesen Nutzer einladen? - Einladen - BLOCKIEREN - BLOCKIEREN UND LÖSCHEN - Nutzer blockieren - Nutzer blockieren - Nutzer blockieren - Möchtest du **%1$s** blockieren, so dass die Person dich bei Telegram weder anschreiben noch anrufen darf? - Möchtest du **%1$s** blockieren, so dass sie dich bei Telegram weder anschreiben noch anrufen dürfen? - Nutzer blockiert - Nutzer freigegeben - Kontakt bearbeiten - Kontakt löschen - Zuhause - Mobil - Arbeit - Sonstiges - Hauptnummer - Arbeit - Geburtstag - Position - Neuen Kontakt erstellen - Neuer Kontakt - Bestehendem Kontakt hinzufügen - Bio - Ein paar Worte, die dich beschreiben - Keine - Hier kannst du etwas über dich schreiben. Jeder, der dein Profil öffnet, kann diesen Text lesen. - Geheimen Chat starten - Gemeinsame Gruppen - Gemeinsame Gruppen - Keine gemeinsamen Gruppen - Es ist ein Fehler aufgetreten. - Geheimer Schlüssel - Selbstzerstörungs-Timer - Bild wird nach Ablauf der Zeit selbst zerstört. - Video wird nach Ablauf der Zeit selbst zerstört. - Aus - Bild und Text zeigen den Schlüssel dieses geheimen Chats mit **%1$s**.\n\nSehen sie auf dem Gerät von **%2$s** genau so aus, ist Ende-zu-Ende Verschlüsselung garantiert.\n\nErfahre mehr unter telegram.org - https://telegram.org/faq/de#geheime-chats - Unbekannt - Unbekannt - Nummer versteckt - Telefonnummer wird sichtbar sein, sobald %1$s dich als Kontakt hinzufügt. - Tippst du auf **FERTIG**, so wird deine Nummer bei %1$s sichtbar sein. - Meine Telefonnummer mit %1$s teilen - %1$s ist jetzt in deiner Kontaktliste. - Info - Telefon - Geteilte Inhalte - Bilder und Videos - Links - Audiodateien - Nachricht senden - Melden - %1$d Einladungslinks - %1$d Einladungslink - %1$d Einladungslinks - %1$d Einladungslinks - %1$d Einladungslinks - %1$d Einladungslinks - Benutzername in Zwischenablage kopiert. - Hashtag in Zwischenablage kopiert. - Bio in Zwischenablage kopiert. - %s von deinen Kontakten gelöscht - - Benutzername - Dein Benutzername - Leider ist dieser Benutzername vergeben. - Benutzername leider nicht erlaubt. - Ein Benutzername benötigt mindestens 5 Zeichen. - Ein Benutzername darf maximal 32 Zeichen haben. - Darf nicht mit einer Zahl beginnen. - Wähle einen öffentlichen Benutzernamen, wenn du von anderen bei **Telegram** gefunden werden willst — ohne, dass sie deine Nummer kennen müssen.\n\nErlaubt sind **a–z**, **0–9** und Unterstriche. Die Mindestlänge beträgt **5** Zeichen. - Dieser Link öffnet einen Chat mit dir:\n%1$s - Prüfe Benutzername... - %1$s ist verfügbar. - Keiner - Es ist ein Fehler aufgetreten. - - Sticker - Animationen wiederholen - Aktiviere die Wiederholung, wenn du animierte Sticker im Chat fortlaufend abspielen möchtest. - Animierte Sticker - Sticker hinzufügen - %1$s HINZUFÜGEN - %1$s ENTFERNEN - Masken hinzufügen - Sticker hinzufügen - Zu Favoriten hinzufügen - Sticker wurde Favoriten hinzugefügt - Sticker wurde aus Favoriten entfernt - Sticker wurde aus kürzlich entfernt - Kürzlich benutzt - Favoriten - Gruppen-Sticker - Mehr Sticker - Aus Favoriten entfernen - Aus kürzlich entfernen - Masken hinzufügen - Sticker nicht gefunden - Sticker entfernt - %1$s ist nicht mehr in deinen Stickern. - Masken entfernt - %1$s ist nicht mehr in deinen Masken. - Sticker archiviert. - %1$s wurde ins Archiv verschoben. - Masken archiviert. - %1$s wurde ins Archiv verschoben. - Neue Sticker hinzugefügt - %1$s wurde deinen Stickern hinzugefügt. - Neue Masken hinzugefügt - %1$s wurde deinen Masken hinzugefügt. - Archivieren - Teilen - Link kopieren - Neu anordnen - Entfernen - Bewege Sticker, um sie neu zu ordnen. - Noch keine Sticker - Keine Sticker gefunden - Kein GIF gefunden - Kein Emoji gefunden - Noch keine Masken - Emoji-Vorschläge - "**Telegram** ermöglicht dir die Suche nach tausenden Emoji anhand von Wörtern. Hier und da fehlen jedoch einige. Wenn du Emoji-Ersetzungen vorschlagen möchtest, besuche bitte diese Seite: " - https://translations.telegram.org/%1$s/emoji - Masken - Masken lassen sich Bildern hinzufügen. Öffne dazu vor dem Versand einfach den Editor. - Angesagte Sticker - Angesagte GIFs - Sticker für Emoji vorschlagen - Alle Pakete - Meine Pakete - Keine - Diese Sticker sind gerade auf Telegram angesagt. Du kannst eigene Sticker über den @stickers Bot hinzufügen. - Künstler können eigene Sticker-Pakete über unseren @stickers Bot einstellen. - Archivierte Sticker - Archivierte Masken - Keine archivierten Sticker - Keine archivierten Masken - Bis zu 200 Sticker-Pakete kannst du installieren.\nVorherige werden danach archiviert. - Bis zu 200 Masken-Pakete kannst du installieren. Unbenutzte werden archiviert, sobald du neue installierst. - STICKER SENDEN - Archivierte Sticker - Einige deiner Sticker wurden archiviert. Du kannst sie in den Sticker-Einstellungen erneut hinzufügen. - Archivierte Masken - Einige deiner Masken wurden archiviert. Du kannst sie in den Masken-Einstellungen erneut hinzufügen. - %1$s löschen - Wirklich ausgewählte Sticker-Pakete löschen? - %1$s archivieren - Wirklich ausgewähltes Sticker-Paket archivieren? - %1$s IMPORTIEREN - Processing stickers... - AUS IMPORT ENTFERNEN - Remove from import - Name festlegen - Wähle einen Namen für dein Paket. - Du darfst a-z, 0-9 und Unterstriche benutzen. - Der Link ist leider ungültig. - Link erfordert mindestens 5 Zeichen. - Link darf maximal 32 Zeichen betragen. - Link wird geprüft... - Der Link ist verfügbar. - Der Link ist bereits vergeben. - Importiere Sticker - Sticker erfolgreich importiert! - Importiere mehr Sticker und teile sie mit deinen Freunden. - - Thema - Auto-Nachtmodus - Aus - Aus - Geplant - Anpassbar - Zeitplan - Systemvorgabe - Automatisch bei Sonnenuntergang - Standort aktualisieren - Um die Sonnenunter- und -aufgangszeiten zu berechnen, muss einmalig der ungefähre Standort geprüft werden. Der Standort wird lokal auf dem Gerät gespeichert.\n\nSonnenuntergang: %1$s\nSonnenaufgang: %2$s - Von - Bis - Bevorzugtes Farbthema - Helligkeitsgrenze - Zum Nachtthema wechseln, wenn die Umgebungshelligkeit weniger als %1$d%% beträgt. - Dunkel - Dunkel (Blau) - Tag - Nacht - Arktis - Klassisch - Thema löschen - Möchtest du wirklich dieses Thema löschen? - Themen-Datei ist fehlerhaft. - Wenn du dein Thema mit anderen teilen oder Farben einzeln anpassen möchtest, tippe auf **Erstellen**.\n\nWähle den Namen für dein Thema: - Einen Namen festlegen - EDITOR SCHLIESSEN - THEMA SPEICHERN - Neues Farbthema - Farbthema - Farbthema geändert. - Du kannst es wieder in den *Chat-Einstellungen* ändern. - Eingebaute Themen - Eigene Themen - Link festlegen - Link zum Thema - Nachrichtenecken - Ansicht der Chatliste - Zwei Zeilen - Drei Zeilen - THEMA ERSTELLEN - ANWENDEN - Vorschau - Farbe wählen - Farbthemen - Alle Themen zeigen - Thema nicht gefunden - Dieses Farbschema unterstützt dein Gerät leider noch nicht. - Neues Thema erstellen - Neues Thema - Thema bearbeiten - Tippe auf das kleine Palettensymbol um eine Auswahl des jeweiligen Bildschirms anzuzeigen und wähle deine Wunschfarben. - Du kannst dein eigenes Farbthema erstellen, indem du die Farben innerhalb der App änderst.\n\nJederzeit kannst du hier zum Standard-Farbthema von Telegram zurückkehren. - Erlaubt sind a-z, 0-9 und Unterstriche.\nDie Mindestlänge beträgt 5 Zeichen. - Sobald du dein Thema anpasst, aktualisiert es sich bei allen Nutzern, die es ebenfalls benutzen.\n\nJeder kann es über diesen Link installieren:\n%1$s - Jeder kann dein Thema über diesen Link installieren. Wenn du das Thema änderst, wird es für alle Nutzer aktualisiert, die es installiert haben.\n\nDas Farbthema wird auf dem aktuell ausgewählten Thema und dem Hintergrundbild basieren. - Du kannst den Link deines Themas ändern.\n\nLinks müssen länger als 5 Zeichen sein und dürfen a-z, 0-9 und Unterstriche enthalten. - Der Name ist leider ungültig. - Dieser Link ist leider ungültig. - Ein Link muss mindestens Zeichen haben. - Link darf 64 Zeichen nicht überschreiten. - Links dürfen nicht mit einer Zahl beginnen. - Prüfe Link... - Dieser Link ist bereits vergeben. - %1$s ist verfügbar. - Link - Name - Eva Summer - Erinnert mich an einen chinesi... - Dein innerer Wettbewerb - Hab den Quelltext aktualisiert! - Mike Apple - 🐞 Sticker - Paul Newman - Irgendeine Idee? - Alte Piraten - Ahoi! - Kate Bright - Hola! - Nick K - Das sind nicht die Droiden, nach denen du suchst. - Adler Toberg - Erdnussbutter? Wo? - Reinhardt - Reinhardt, du brauchst unbedingt neue Musik 🎶. - Ich kann dich jetzt nicht ernst nehmen. - Oh je, ihr mit eurer Techno-Musik! Genießt lieber Klassiker, wie Hasselhoff! - Lucio - Auf geht\'s! - True Survivor - David Hasselhoff - Bob Harris - Guten Morgen! 👋 - Guten Morgen - Wie spät ist es gerade? - Es ist Morgen in *Tokio* 😎 - Ein anderes Thema wählen - Du kannst auch ein bestehendes eigenes Thema als Grundlage für dein Thema verwenden. - Thema wählen - Exportieren - Erstellen - Akzentfarbe - Hintergrund - Meine Nachrichten - ALLES ZURÜCKSETZEN - ZURÜCKSETZEN - Möchtest du wirklich dein Hintergrundbild durch eine Farbe ersetzen? - Möchtest du deinen aktuell ausgewählten Hintergrund verwenden oder ihn auf den Standard für dieses Farbthema zurücksetzen? - Thema teilen - Farben ändern - Auf Standard zurücksetzen - Einstellungen zurücksetzen - Möchtest du wirklich Textgröße und Farbeinstellungen zurücksetzen? - Thema löschen - Im Editor öffnen - Änderungen speichern? - Wirklich die neuen Farben anwenden? Einstellungen wurden zurückgesetzt Benachrichtigungen zurücksetzen Möchtest du wirklich alle Benachrichtigungseinstellungen auf die Standardeinstellungen zurücksetzen? + Auf Standardwerte zurücksetzen + Benachrichtigungen zurücksetzen + Wirklich die Benachrichtigungseinstellungen auf die Standardwerte zurücksetzen? Textgröße für Nachrichten Eine Frage stellen Eine Erklärung hinzufügen @@ -1761,13 +263,13 @@ Hilfe Debug Konto - Freigeben - Gedrückt halten um freizugeben. + Nutzer freigeben Keine blockierten Nutzer - Nachrichten Benachrichtigungen anzeigen - Vorschau - Gruppen + Nachrichtenvorschau + Absendername zeigen + Automatische Ausnahmen + Aktiviere automatisch Story-Benachrichtigungen von 5 Nutzern, die du am häufigsten kontaktierst. Ton "In-App " In-App-Töne @@ -1789,8 +291,6 @@ Grün Cyan Weiß - Sepia - Dunkel Pink Textgröße Schriftart @@ -1804,12 +304,10 @@ An Aus Aus bis %1$s - Standard (Ein) - Standard (Aus) Einschalten Ausschalten Blockierte Nutzer - Blockierte Nutzer können dich nicht kontaktieren und sehen deine \"zuletzt gesehen\"-Zeit nicht. + "Blockierte Nutzer sehen weder dein Profilbild, noch deinen Zeitstempel oder deine Stories. Sie können dir keine Nachricht im Einzelchat senden oder dich Gruppen hinzufügen. " Nutzer blockieren CHATS KONTAKTE @@ -1817,12 +315,15 @@ Kein Ton Standard Support - Wenn lautlos + Nur wenn lautlos Unscharf Bewegung - Chathintergrund ändern + Hintergrund im Chat ändern + Farbe deines Namens + Darstellung + Darstellung Chat-Hintergrund - Chat-Hintergrundbilder zurücksetzen + Hintergrundbilder zurücksetzen Das löscht alle hochgeladenen Chat-Hintergründe und stellt die vorinstallierten Hintergründe für alle Themen wieder her. Chat-Hintergründe zurücksetzen Möchtest du wirklich alle Chat-Hintergründe zurücksetzen? @@ -1830,21 +331,18 @@ Hintergrundvorschau Tipp: Einige Bilder sehen unscharf besser aus. Juhu, danke. Das wird mein Leben verändern. - Für mehr Farben, nach links oder rechts wischen. - Lachs ist ein Fisch, keine Farbe. Bob Harris Guten Morgen! 👋 Wie spät ist es gerade? Es ist Morgen in Tokio 😎 \'Festlegen\' antippen, um den Hintergrund anzuwenden. - Genieße die Ansicht - HINTERGRUND FESTLEGEN + Das sieht gut aus Nach Farbe suchen - Hintergrund suchen + Nach Bildern suchen Farbe: - Helligkeit - Hex-Farbcode Farben + Beim Versand bewegen sich die Farben + Animieren Muster Muster wählen Sichtbarkeit @@ -1861,8 +359,6 @@ Grau Weiß Wähle eine Farbe - Bild hochladen - Bild auswählen vollständiges Bild wird geladen... Farbe festlegen Nachrichten @@ -1870,22 +366,30 @@ Ereignisse Kontakt ist Telegram beigetreten Angeheftete Nachrichten + Nachrichten übersetzen + Übersetzen-Knopf zeigen + Vollständige Chats + Nicht übersetzen + %1$d Sprache + %1$d Sprachen + Sprachen wählen + Der Übersetzen-Knopf erscheint in der App, sobald du eine einzelne Nachricht 1x kurz antippst. + Google hat unter Umständen Zugriff auf die Texte der Nachrichten, die du im Chat übersetzt. Sprache Eigene Sprache ändern? Du versuchst ein Sprachpaket (**%1$s**) anzuwenden, was zu %2$d%% fertiggestellt wurde.\n\nDas wird die gesamte Oberfläche übersetzen. Korrekturen kannst du auf der [Übersetzungsplattform] vorschlagen.\n\nDie Sprache lässt sich jederzeit wieder in den Einstellungen ändern. Du versuchst ein benutzerdefiniertes Sprachpaket (**%1$s**) anzuwenden, was zu %2$d%% fertiggestellt wurde.\n\nDas wird die gesamte Oberfläche übersetzen. Korrekturen kannst du auf der [Übersetzungsplattform] vorschlagen.\n\nDie Sprache lässt sich jederzeit wieder in den Einstellungen ändern. Unzureichende Daten - Inoffizielle Sprachen - Diese Sprache gibt es nicht. + Sprache nicht gefunden. Du benutzt bereits das Sprachpaket (**%1$s**). In den Einstellungen kannst du die Sprache jederzeit wieder ändern. Leider enthält das benutzerdefinierte Sprachpaket (**%1$s**) keine Daten für Telegram Android. - Bedenke bitte, dass der Telegram Support von Freiwilligen betreut wird. Alle versuchen so schnell wie möglich zu antworten, dies kann jedoch manchmal ein bisschen dauern.\n\nBitte schau auch in den <a href=\"https://telegram.org/faq/de#allgemeine-fragen\">Telegram FAQ</a> nach. Dort findest du Antworten auf die meisten Fragen und wichtige Tipps zur <a href=\"https://telegram.org/faq/de#problembehandlung\">Problembehandlung</a>. + Bedenke bitte, dass der Telegram Support von Freiwilligen betreut wird. Alle versuchen so schnell wie möglich zu antworten, dies kann jedoch manchmal ein bisschen dauern.\n\nBitte schau auch in den <a href=\"https://telegram.org/faq/de#allgemeine-fragen\">Telegram FAQ</a> nach. Dort findest du Antworten auf die meisten Fragen und wichtige Tipps zur <a href=\"https://telegram.org/faq/de#problembehandlung\">Problembehandlung</a>. Eine Frage stellen Telegram FAQ Telegram FAQ - Telegram Merkmale - https://t.me/TelegramTips + Telegram Funktionen + https://t.me/TelegramTipsDE Konto hinzufügen Konto auswählen https://telegram.org/faq/de @@ -1893,6 +397,8 @@ Nutzungsbedingungen Mit der Registrierung\nstimmst du den *Nutzungsbedingungen* zu. https://telegram.org/privacy + https://telegram.org/tos + https://telegram.org/tos/mini-apps Sprachpaket löschen Möchtest du wirklich das Sprachpaket **%1$s** löschen? Falsche Sprachdatei @@ -1911,7 +417,7 @@ Nur wenn Bildschirm „aus“ Popups immer anzeigen Kennzeichensymbol - Aktiviert + Symbol anzeigen Stummgeschaltete Chats Ungelesene Nachrichten Kurz @@ -1955,8 +461,12 @@ Datennutzung Medienarten Sprachnachrichten sind winzig, sie werden immer automatisch heruntergeladen. - kein automatischer Download + Deaktiviert Keine GIFs + Auto-Download Einstellungen + Du kannst die Einstellungen für das automatische Herunterladen von Medien ändern, um die Datennutzung zu reduzieren, wenn du per Mobilfunk verbunden bist. + Du kannst die Einstellungen für den automatischen Download ändern, um die Datennutzung zu reduzieren, wenn du per W-LAN verbunden bist. + Du kannst die Einstellungen für das automatische Herunterladen von Medien ändern, um den Datenverbrauch beim Roaming zu reduzieren. Einstellungen zurücksetzen Einstellungen zurücksetzen Möchtest du die Einstellungen für automatische Downloads wirklich zurücksetzen? @@ -1967,15 +477,19 @@ Videos Lautstärketasten drücken,\num Ton einzuschalten. Das Konto wurde vom Nutzer ausgeblendet + Das Konto wurde vom Nutzer versteckt Automatische Medienwiedergabe Zum Sprechen ans Ohr + Nimmt Sprachnachrichten auf, wenn du das Telefon an dein Ohr hältst + Zum Hören ans Ohr + Schaltet den Ton auf den Ohrlautsprecher um, wenn du das Telefon an dein Ohr hältst In der Galerie speichern Ton stumm Name bearbeiten + Profilfarbe ändern Anpassen Eigene - Eigene Benachrichtigungen - Wichtigkeit + Priorität Wie in Einstellungen Niedrig Mittel @@ -1987,8 +501,9 @@ Nutzer werden deine neue Nummer sehen, wenn sie diese in ihrem Adressbuch gespeichert haben oder deine Einstellungen es erlauben. Unter Einstellungen > Privatsphäre und Sicherheit > Telefonnummer kannst du es jederzeit anpassen. Nummer ändern Nummer ändern + %1$s behalten Neue Nummer - Der Bestätigungscode kommt per SMS an deine neue Nummer. + Der Bestätigungscode kommt per Anruf oder SMS an deine neue Nummer. Die Telefonnummer %1$s ist bereits ein Telegram Konto. Bitte lösche es, bevor du mit der Übertragung auf das neue Konto startest. Sonstiges Deaktiviert @@ -2005,57 +520,47 @@ Lautlos Schlaue Benachrichtigungen Ausnahmen - Eine Ausnahme hinzufügen + Ausnahme hinzufügen Alle Ausnahmen löschen Alle Ausnahmen löschen Wirklich alle Ausnahmen löschen? Neue Ausnahme Deine angepassten Benachrichtigungen werden in diesem Bereich angezeigt.\n\nUm Benachrichtigungen anzupassen, Chat mit dem Gesprächspartner öffnen, Profilbild antippen, dann \'Mitteilungen\' und \'Anpassen\'. - Keine %1$d / %2$s Deaktiviert - Anzahl Benachrichtigungen - %1$s innerhalb %2$s Linkvorschau Die Linkvorschau wird auf den Servern von Telegram generiert. Wir speichern keine Daten über die von dir gesendeten Links. Geheime Chats - In-App Browser - Externe Links innerhalb der App öffnen Direktes Teilen Letzte Chats im Teilen-Menü anzeigen Emoji Große Emoji - Benutze System-Emoji Telegram für Android %1$s - Debug-Menü - Protokolldateien senden - Letzte Protokolldateien senden - Protokolldateien leeren - Protokollierung aktivieren - Protokollierung deaktivieren - Kontakte importieren - Kontakte neu laden - Chats zurücksetzen - Alle Chats lesen - Musik bei Aufnahme pausieren EIN - Musik bei Aufnahme pausieren AUS - Tastatur-Animation aktivieren - Tastatur-Animation deaktivieren - In-App Kamera aktivieren - In-App Kamera deaktivieren - Importierte Kontakte zurücksetzen - Medien-Cache leeren (gesendet) - Anruf-Einstellungen Du kannst deine Sprache später in den Einstellungen ändern. Wähle deine Sprache Weitere + Einfügen + Umdrehen + Tippe auf ein Objekt, um es auszuschneiden + Ausschneiden + Objekt ausschneiden + Schnitt rückgängig machen + Rückgängig + Kontur hinzufügen + Löschen + Wiederherstellen + Bearbeiten Aus Zwischenablage einfügen Proxy-Einstellungen Proxy-Details Proxy Verbindungen + Proxy hinzugefügt. Proxy hinzufügen Proxy löschen? + Proxy löschen + Wirklich diesen Proxy löschen? + Wirklich diese Proxyserver löschen? Proxy-Einstellungen benutzen Server Passwort @@ -2066,43 +571,39 @@ MTProto Proxy Dein aktueller Proxy ist nicht korrekt konfiguriert und wird daher deaktiviert. Bitte suche dir einen anderen. Proxy-Sponsor - Dieser Kanal wird von deinem Proxyserver angezeigt. Deaktiviere den Proxy in den Einstellungen, um den Kanal zu entfernen. + Dieser Kanal wird von deinem Proxyserver angezeigt. Deaktiviere den Proxy unter Einstellungen > Daten und Speicher, um den Kanal zu entfernen. SOCKS5 Proxy-Einstellungen MTProto Proxy-Einstellungen. Dieser Proxy könnte einen gesponserten Kanal in deiner Chatliste anzeigen. Das wird jedoch nicht deinen Telegram-Datenverkehr enthüllen. Proxy für Anrufe benutzen Proxyserver können die Qualität von Anrufen beinflussen. Aktivieren - Achtung + Warnung Du hast kaum noch freien Speicher. Lege fest, ob du nur kürzlich erhaltene Medien im Cache behalten willst. - Entferne Medien nach - Niemals entfernen + Auf deinem Gerät ist fast kein Speicherplatz mehr frei. Du kannst die Cache-Einstellungen verwenden, um unnötige Medien zu entfernen und Dateien erneut herunterzuladen, wenn du sie wieder brauchen solltest. + Cache verwalten Kontakte - Private Chats + Einzelchats Gruppenchats Kanäle Maximale Größe bis zu %1$s Streaming Videos und Audios streamen - Einige Videos können nicht gestreamt werden - z.B. alle Videos, die von Telegram für Android 4.7 und früher gesendet wurden. + Telegram wird versuchen, Musik und Videos sofort zu streamen, ohne dass du erst auf den vollständigen Download warten musst. Antippen, um Nummer zu ändern - Darstellung - Sticker und Masken - Wähle eigene Farbthemen Zeige Benachrichtigungen von Allen Konten Ausschalten, wenn du nur vom aktiven Konto Benachrichtigungen empfangen möchtest. Benachrichtigungen für Chats - Private Chats + Einzelchats Gruppen Kanäle + Stories + Reaktionen Beachte bitte, dass **%1$s** als Ausnahmen festgelegt wurden und von den folgenden Änderungen nicht betroffen sind. Beachte bitte, dass **%1$s** als Ausnahme festgelegt wurde und von dieser Änderung nicht betroffen ist. Ausnahmen anzeigen - Gruppenbenachrichtigungen - Benachrichtigungen für private Chats - Kanalbenachrichtigungen Antippen zum Ändern Alternative Optionen Weiteres Konto hinzufügen @@ -2110,9 +611,13 @@ Pincode einrichten Sperre die App mit einem lokalen Pincode, so dass andere sie nicht öffnen können. Cache leeren + Ausgewählte leeren Gebe jederzeit Speicherplatz von deinem Gerät frei. Deine Medien bleiben in der Cloud. + Cache wird geleert + Bitte lass dieses Fenster geöffnet, bis dein Cache geleert ist. Nummer ändern Verschiebe deine Kontakte, Gruppen, Nachrichten und Medien auf eine neue Nummer. + Deine Nummer wurde erfolgreich in %1$s geändert. Support kontaktieren Melde uns jederzeit Probleme. Die Abmeldung löst sie normalerweise nicht. Abmelden @@ -2130,15 +635,15 @@ Meilen QR-Code scannen QR-Code scannen - Token ist ungültig oder bereits abgelaufen. Kein Authentifizierungstoken gefunden Authentifizierung erfolgreich https://desktop.telegram.org/ + https://web.telegram.org/ Installiere Telegram Desktop auf deinem Computer von *desktop.telegram.org*. Starte das Programm auf dem Computer, um deinen QR-Code zu erhalten. Scanne den QR-Code mit deinem Handy, um dich mit deinem Konto zu verbinden. Mit diesem Code kann man sich bei deinem Telegram Konto anmelden.\n\nUm die Anmeldung zu bestätigen, in die Einstellungen von Telegram wechseln > Geräte > QR-Code scannen und den Code mit der Kamera scannen. - Telegram benötigt zum Scannen von QR-Codes Zugriff auf deine Kamera. + **Telegram** benötigt Zugriff auf deine **Kamera**, damit du QR-Codes scannen kannst. Tippe unten auf Einstellungen > Berechtigungen und aktiviere den Zugriff. Profilbild festlegen Telegram aktualisieren Version %1$s • %2$s @@ -2149,10 +654,14 @@ **Was ist neu?**\n\n• Fehlerbehebungen und Verbesserungen Primärer Link Link ist nicht mehr aktiv - Weiterleitung abbrechen - Anderen Chat wählen - Weiterleitung abbrechen oder möchtest du Nachrichten an einen anderen Chat senden? + Was möchtest du mit %1$s aus deinem Chat mit **%2$s** machen? + Was möchtest du mit %1$s von **%2$s** machen? + Absendernamen anzeigen + Absendername verbergen + Absendername anzeigen + Absendername verbergen Wischgeste für Chatliste + Das passiert beim Wischen nach links in der Chatliste. Anheften Gelesen Archivieren @@ -2169,252 +678,15 @@ Weiterleitung abbrechen Bio aktualisiert. Name aktualisiert. - Titel des Kanals geändert. + Kanalname geändert. Kanalbeschreibung aktualisiert. - - Lokale Datenbank - Lokale Datenbank leeren - Möchtest du wirklich den Textnachrichten-Cache leeren? - Zwischengespeicherte Textnachrichten werden entfernt und die Datenbank optimiert, um Speicherplatz zurückzuerhalten. Auf Null lässt sich die Größe jedoch nicht reduzieren, da die App einige Daten für den laufenden Betrieb benötigt.\n\nHinweis: Der Vorgang kann mehrere Minuten dauern. - Cache leeren - Leeren - Berechne... - Dateien - Bilder - Sprach- & Videonachrichten - Videos - Musik - GIFs - Sonstige Dateien - Leer - Medien behalten - Bilder, Videos und andere Dateien, auf die du während dieser Zeit **nicht zugegriffen** hast, werden von diesem Gerät gelöscht, um Speicherplatz zu sparen.\n\nAlle Medien bleiben in der Telegram Cloud gespeichert und können jederzeit wieder heruntergeladen werden. - Dauerhaft - Sprachnachrichten - Videonachrichten - - Telegram Passport - Angeforderte Informationen - Hinterlegte Informationen - Was ist Telegram Passport? - Mit Telegram Passport kannst du dich ganz einfach bei Webseiten und Diensten anmelden, die eine Identitätsprüfung erfordern.\n\nDeine Informationen, persönlichen Daten und Dokumente sind durch Ende-zu-Ende-Verschlüsselung geschützt. Niemand, einschließlich Telegram, kann ohne deine Erlaubnis darauf zugreifen.\n\nMehr dazu in unseren *FAQs*. - https://telegram.org/faq/de#passport - Bitte Passwort einrichten, um deine persönlichen Daten mit Ende-zu-Ende-Verschlüsselung zu schützen.\n\nDas Passwort wird außerdem benötigt, wenn du dich mit Telegram von einem neuen Gerät verbindest. - EIN PASSWORT ERSTELLEN - Telegram Passport löschen - Telegram Passport löschen - Möchtest du wirklich deinen Telegram Passport löschen? - Bitte nur lateinische Schriftzeichen benutzen. - In diesem Bereich kannst du Scans einer beglaubigten englischen Übersetzung deines Reisepasses hochladen. - In diesem Bereich kannst du Scans einer beglaubigten englischen Übersetzung deines nationalen Reisepasses hochladen. - In diesem Bereich kannst du Scans einer beglaubigten englischen Übersetzung deines Führerscheins hochladen. - In diesem Bereich kannst du Scans einer beglaubigten englischen Übersetzung deines Personalausweises hochladen. - Scan deiner Versorgerrechnung hochladen. - Scan deines Kontoauszugs hochladen. - Scan deines Mietvertrages hochladen - Scan deiner Reisepass-Registrierung hochladen. - Scan deiner temporären Registrierung hochladen. - Um deine Adresse zu bestätigen, Scan oder ein Bild der ausgewählten Dokumente (alle Seiten) hochladen. - Hier kannst du Scans einer beglaubigten englischen Übersetzung deiner Versorgerrechnung hochladen. - In diesem Bereich kannst du Scans einer beglaubigten englischen Übersetzung deines Kontoauszuges hochladen. - In diesem Bereich kannst du Scans einer beglaubigter englischen Übersetzung deines Mietvertrags hochladen. - Hier kannst du Scans einer beglaubigten englischen Übersetzung deiner Reisepass-Registrierung hochladen. - In diesem Bereich kannst du Scans einer beglaubigten Übersetzung deiner vorläufigen Registrierung hochladen. - In diesem Bereich kannst du Scans einer beglaubigten englischen Übersetzung des ausgewählten Dokumentes hochladen. - Versorgerrechnung hinzufügen - Kontoauszug hinzufügen - Mietvertrag hinzufügen - Adresse - Wohnsitzadresse - Bitte Adresse eingeben - Adressnachweis hochladen - Adresse - Straße - Straße - Postleitzahl - Stadt - Bundesland - Land - Telefonnummer - Telefonnummer löschen? - Deine Telefonnummer eingeben - %1$s verwenden - Gleiche Telefonnummer wie bei Telegram verwenden. - Gleiche E-Mail wie bei Telegram verwenden. - Oder neue Telefonnummer eingeben - Dir wird ein Bestätigungscode an die Nummer gesendet. - E-Mail - E-Mail löschen? - Deine E-Mail Adresse eingeben - Du bekommst einen Bestätigungscode per E-Mail gesendet. - Code - Bitte den Code eintippen, der dir gerade an %1$s gesendet wurde. - Bitte dein Telegram-Passwort eingeben, damit du auf deine persönlichen Daten zugreifen kannst. - **%1$s** verlangt Zugriff auf deine persönlichen Daten, damit du dich dort registrieren kannst. - Dein Passwort wird benötigt, um die Daten zu entschlüsseln. - Du akzeptierst die *%1$s Datenschutzerklärung* und erlaubst %2$s dir Nachrichten zu senden. - Du sendest deine Dokumente direkt %1$s und erlaubst dem %2$s Bot, dir Nachrichten zu senden. - AUTORISIEREN - Reisepass hinzufügen - Nationalen Reisepass hinzufügen - Reisepass-Registrierung - Vorläufige Registrierung - Personalausweis hinzufügen - Führerschein hinzufügen - Persönliche Daten - Deine persönlichen Daten eingeben - Identitätsdokument - Scan deines Ausweises hochladen - Scan deines Reisepasses hochladen - Scan deines nationalen Reisepasses hochladen - Scan deines Personalausweises hochladen - Scan deines Führerscheins hochladen - Persönliche Daten - Angaben zum Dokument - Vorname - Zwischenname - Nachname - Name (Latein) - Zwischenname (Latein) - Nachname (Latein) - Name (%1$s) - Zwischenname (%1$s) - Nachname (%1$s) - Geschlecht auswählen - Männlich - Weiblich - Geburtsdatum - Geschlecht - Ausweisnummer - Ablaufdatum - Staatsangehörigkeit - Wohnsitz - Selfie - Notwendige Dokumente - Selfie von dir mit dem Dokument hochladen - Übersetzung - Vorderseite - Foto der Vorderseite des Dokuments hochladen - Rückseite - Foto der Rückseite des Dokuments hochladen - Hauptseite - Foto der Hauptseite des Dokuments hochladen - Ablaufdatum auswählen - Läuft nicht ab - Keines - Geburtsdatum auswählen - Selfie löschen? - Das Dokument muss dein Foto, Vor- und Nachname, Geburtsdatum, Ausweisnummer, Ausstellungsort und Ablaufdatum beinhalten. - Möchtest du wirklich alle eingegeben Informationen verwerfen? - Verwerfen - Scans - Dokument löschen - Löschen - Möchtest du diesen Scan löschen? - Möchtest du dieses Selfie löschen? - Möchtest du dieses Dokument löschen? - Möchtest du wirklich deine persönlichen Daten löschen? - Möchtest du deine Adressdaten löschen? - Persönliche Daten löschen - Adressinformationen löschen - Scan löschen? - Scans hochladen - Weitere Scans hochladen - Du kannst nicht mehr als %1$s hochladen. - Nur Bilder können hochladen werden. - Deinen Reisepass einscannen - Scanne deinen Reisepass oder Ausweis mit maschinenlesbaren Bereich ein, um persönliche Daten automatisch einzutragen. - Dokument hinzufügen - Du hast noch keine Dokumente - Du kannst deine Telefonnummer, E-Mail-Adresse, Identitätsdokument oder Wohnadresse hinzufügen. - Antippen zum Korrigieren. - %1$s oder %2$s - Dein Name - Dein Name auf %1$s - Dein Name in der Sprache deines Wohnsitzlandes (%1$s). - Bitte überprüfe, ob dieser Name stimmt:\n\n%1$s %2$s %3$s - Arabisch - Aserbaidschanisch - Bulgarisch - Bengalisch - Tschechisch - Dänisch - Deutsch - Dhivehi - Dzongkha - Griechisch - Spanisch - Estnisch - Persisch - Französisch - Hebräisch - Kroatisch - Ungarisch - Armenisch - Indonesisch - Isländisch - Italienisch - Japanisch - Georgisch - Khmer - Koreanisch - Laotisch - Litauisch - Lettisch - Mazedonisch - Mongolisch - Malaiisch - Birmanisch - Nepalesisch - Niederländisch - Polnisch - Portugiesisch - Rumänisch - Russisch - Slowakisch - Slowenisch - Thailändisch - Turkmenisch - Türkisch - Ukrainisch - Usbekisch - Vietnamesisch - - Aktive Sitzungen - Dieses Gerät - Keine anderen Sitzungen - Du kannst dich von jedem Handy, Tablet und Computer bei Telegram mit derselben Telefonnummer anmelden. Alles wird immer sofort synchronisiert. - Aktive Sitzungen - Überprüfe alle deine angemeldeten Sitzungen. - Tippe auf eine Sitzung, um sie zu beenden. - Diese Sitzung abmelden? - Bist du sicher, dass du diese Sitzung beenden möchtest? - Alle Sitzungen außer dieser werden beendet. - Sitzungen beenden - Sitzung beenden - Beenden - Bist du sicher, das du alle anderen Sitzungen beenden möchtest? - Alle anderen Sitzungen beenden - inoffizielle Version - Keine aktiven Anmeldungen. - Du kannst dich auf unterstützten Webseiten mit deinem Telegram-Konto anmelden. - Verbundene Webseiten - Mit Telegram angemeldet - Antippen, um dich mit deinem Telegram-Konto abzumelden. - Möchtest du wirklich %1$s trennen? - Webseite trennen - Webseiten trennen - Trennen - %1$s blockieren - Alle Webseiten trennen - Verbindung zu allen Webseiten trennen, auf denen du mit Telegram angemeldet bist? - Melde dich auf Webseiten an, die eine Anmeldung mit Telegram unterstützen. - Unvollständige Anmeldeversuche - Die Geräte oben haben keinen Zugriff auf deine Nachrichten. Der Code wurde korrekt eingegeben, das Passwort jedoch nicht. + Ist %1$s noch deine Nummer? + Halte deine Nummer stets auf dem aktuellsten Stand, damit du dich immer bei Telegram anmelden kannst. **Mehr dazu hier** + https://telegram.org/faq/de#f-ich-habe-eine-neue-nummer-was-soll-ich-tun + Ja + Nein Ordner - Bearbeiten - Ordner einrichten Neuen Ordner erstellen Erstelle Ordner für verschiedene Gruppen von Chats, um schnell zwischen ihnen zu wechseln. Empfohlene Ordner @@ -2423,16 +695,14 @@ Neu anordnen Ordner bearbeiten Ordner bearbeiten + Alle stumm + Nicht mehr stumm Kontakte Keine Kontakte Gruppen Kanäle - Stummgeschaltete ausschliessen - Gelesene ausschliessen - Bearbeiten - Löschen - Archivierte ausschliessen - Ungelesen + Ordner bearbeiten + Ordner löschen Ordner entfernen Stumm Gelesen @@ -2445,31 +715,28 @@ Chats Enthaltene Chats Ausgeschlossene Chats - Wähle einzelne Chats und Chatarten, die in diesem Ordner erscheinen sollen. - Wähle einzelne Chats und Chatarten, die in diesem Ordner nicht erscheinen sollen. - Geheime Chats + Einzelne Chats oder Chatarten, die in diesem Ordner erscheinen sollen. + Einzelne Chats oder Chatarten, die in diesem Ordner nicht erscheinen sollen. Bots Chats werden hinzugefügt Bitte warte, bis wir den Ordner mit Chats füllen... Ordner ist leer Derzeit keine passenden\nChats in diesem Ordner. + Keine Chats gefunden + Keine Chats in diesem Ordner, an die du weiterleiten kannst. Neuer Ordner Keine Chats Kontakt Nicht-Kontakt - Ausnahme hinzufügen Ordnername Wirklich diesen Ordner entfernen? Deine Chats werden nicht gelöscht. + Bist du sicher, dass du diesen Ordner löschen willst? Dadurch werden auch alle Einladungslinks deaktiviert, die zur Freigabe des Ordners erstellt wurden. Änderungen anwenden? Der Ordner wurde bearbeitet. Änderungen speichern? - Ordner erstellen? + Ordner erstellen Der Ordner wurde noch nicht erstellt. Jetzt erstellen? Erstellen - %1$d weitere Chats zeigen %1$d weiteren Chat zeigen - %1$d weitere Chats zeigen - %1$d weitere Chats zeigen - %1$d weitere Chats zeigen %1$d weitere Chats zeigen Ausnahme entfernen Ausnahme entfernen @@ -2486,38 +753,14 @@ Zu Ordner hinzufügen Aus Ordner entfernen Wähle einen Ordner - **%1$s** wurde **%2$s** hinzugefügt - **%1$s** wurde **%2$s** hinzugefügt - **%1$s** wurde **%2$s** hinzugefügt - **%1$s** wurde aus **%2$s** entfernt - **%1$s** wurde aus **%2$s** entfernt - **%1$s** wurde aus **%2$s** entfernt + **%1$s** wurde **%2$s** hinzugefügt. + **%1$s** wurde **%2$s** hinzugefügt. + **%1$s** wurde **%2$s** hinzugefügt. + **%1$s** wurde aus **%2$s** entfernt. + **%1$s** wurde aus **%2$s** entfernt. + **%1$s** wurde aus **%2$s** entfernt. Limt erreicht Mehr als 100 Chats kann man leider nicht aus einem Ordner ausschließen. - - Pincode-Sperre - Pincode ändern - Wenn du die Code-Sperre aktivierst, erscheint ein Schloss ganz oben über der Chatliste. Tippe auf das Schloss, um deine Chats zu sperren und zu entsperren.\n\nÜbrigens: Wenn du den Pincode vergisst, musst du Telegram löschen und neu installieren. Dadurch verlierst du alle Geheimen Chats. - Pincode - Passwort - Aktuellen Pincode eingeben - Pincode eingeben - Neuen Pincode eingeben - Deinen Pincode eingeben - Neuen Pincode erneut eingben - Pincode falsch - Auto-Sperre - Sperrt App bei Inaktivität automatisch. - in %1$s - Deaktiviert - Per Fingerabdruck entsperren - "Fingerabdruck bestätigen " - Berührungssensor - Fingerabdruck wurde nicht erkannt. Bitte erneut versuchen. - App-Inhalte nach Sperrung anzeigen - Wenn du diese Funktion deaktivierst, wirst du keine Bildschirmfotos mehr in der App aufnehmen können und Chatinhalte werden in der Liste der geöffneten App ausgeblendet. - Das wird die Inhalte der Chatliste oder Chats in der Liste der geöffneten Apps verstecken, du wirst jedoch keine Bildschirmfotos aufnehmen können. \n\nDu wirst die App nach der Änderung neu starten müssen. - Zu viele Versuche.\nBitte erneut in %1$s versuchen. Januar Februar @@ -2539,10 +782,8 @@ Musik Sprache GIFs - Geteilte Dateien Geteilte Inhalte - Geteilte Links - Geteilte Musik + Ähnliche Kanäle Die hier geteilten Bilder und Videos kannst du von jedem deiner Geräte aufrufen. Die hier geteilten Lieder kannst du von jedem deiner Geräte aufrufen. Die hier geteilten Dateien kannst du von jedem deiner Geräte aufrufen. @@ -2554,97 +795,22 @@ Alle geteilten Links werden hier angezeigt. Sprachnachrichten aus diesem Chat werden hier angezeigt. GIFs aus diesem Chat werden hier angezeigt. - - Karte - Satellit - Hybrid - %1$s m entfernt - %1$s km entfernt - %1$s ft entfernt - %1$s mi entfernt - %1$s ft - %1$s mi - mi - km - %1$s m - %1$s km - %1$sm entfernt - %1$skm entfernt - %1$sft entfernt - %1$smi entfernt - Wegbeschreibung - Keine Orte gefunden - Leider gibt es keine Plätze mit dem\nNamen **%1$s** in deiner Nähe. - Meinen Standort senden - Meinen Live-Standort teilen - Teile meinen Live-Standort - Standortfreigabe beenden - Standortfreigabe beenden - Möchtest du aufhören, deinen Live-Standort mit %1$s zu teilen? - Möchtest du aufhören, deinen Live-Standort mit %1$s zu teilen? - Möchtest du aufhören, deinen Live-Standort zu teilen? - Aktualisiert sich bei Bewegung - Diesen Standort senden - Standort - Ort - Auf %1$s genau - %1$s entfernt - Oder wähle einen Ort - Antippen, um diesen Standort zu senden - Live-Standorte - Live-Standort - 15 Minuten teilen - 1 Stunde teilen - 8 Stunden teilen - aktualisiert - aktualisiert %1$s - gerade aktualisiert - Du und %1$s - %1$s mit %2$s geteilt - %1$s geteilt mit %2$s - %1$s geteilt mit %2$s - ALLE BEENDEN - Du teilst deinen Live-Standort mit %1$s - Wähle, wie lange %1$s deinen Live-Standort sehen darf. - Wähle, wie lange Leute in diesem Chat deinen Live-Standort sehen dürfen. - GPS aktivieren - Bitte aktiviere GPS, um auf ortsbezogene Funktionen zuzugreifen. - Mich sichtbar machen - Mein Profil anzeigen? - Nutzer in der Nähe können dein Profil sehen und dir Nachrichten senden. Das kann dir helfen, neue Freunde zu finden, könnte aber auch etwas zu viel Aufmerksamkeit erregen. Du kannst die Freigabe deines Profils jederzeit beenden.\n\nDeine Nummer bleibt verborgen. - Mich nicht mehr anzeigen - Leute in der Nähe - Leute in der Nähe finden - Füge schnell Leute aus der Nähe hinzu, \ndie diesen Bereich ebenfalls ansehen,\nund entdecke lokale Gruppen-Chats.\n\nBitte aktiviere den Standortzugriff,\num diese Funktion nutzen zu können. - Leute in der Nähe - Zugriff erlauben - Füge schnell Leute aus der Nähe hinzu, \ndie diesen Bereich ebenfalls ansehen,\nund entdecke lokale Gruppen-Chats.\n\nBitte aktiviere die Standortdienste,\num diese Funktion nutzen zu können. - Einschalten - Gruppen in der Nähe - Tausche Kontaktinformationen mit Leuten in der Nähe aus und finde neue Freunde. - Prüfe, wer bei dir in der Nähe ist... - Erstelle eine lokale Gruppe - Gruppe erstellen - Jeder, der sich in der Nähe dieses Ortes aufhält (Nachbarn, Arbeitskollegen, Kommilitonen, Besucher einer Veranstaltung), wird deine Gruppe im Bereich \"Leute in der Nähe\" sehen. - Wenn du eine unpassende Gruppe an diesem Standort eröffnest, könnte es sein, dass du beim Anlegen neuer lokaler Gruppen eingeschränkt wirst. - Standort festlegen - Als Standort festlegen - Leute werden deine Gruppe im Bereich \'Leute in der Nähe\" finden können. - Orte in der Umgebung - Annäherungsalarm - Hinweis, wenn %1$s innerhalb %2$s ist - Hinweis, wenn jemand innerhalb %1$s ist - Du bist bereits näher als %1$s - Standort teilen - Teilen - Damit der Alarm funktioniert, teile bitte deinen Standort in diesem Chat. - Hinweis, wenn %1$s in der Nähe ist - Alarmieren, wenn andere Mitglieder der Gruppe in der Nähe sind. - Annäherungsalarm gesetzt - Wir benachrichtigen dich, sobald %1$s %2$s von Ihnen dir entfernt ist. - Wir benachrichtigen dich, sobald sich jemand %1$s von dir befindet. - Annäherungsalarm aufgehoben + Geschwindigkeit + Langsam + Sehr langsam + Schnell + Sehr schnell + Normal + Mittel + Rasend schnell + Noch schneller + Schnell + Angepasst %s + Normal + Langsam + Sehr langsam + Halten, für mehr Geschwindigkeiten. Als Liste Als Gitter Zeige alle Medien @@ -2657,7 +823,12 @@ Download stoppen In der Galerie speichern %1$d von %2$d - **%1$d** von %2$d + %1$d Nachricht + %1$d Nachrichten + %2$s Ergebnis + %2$s Ergebnisse + Als Liste + Als Chat zeigen Galerie Alle Bilder Alle Medien @@ -2670,9 +841,7 @@ Keine kürzliche Suche Bilder GIFs - Suchverlauf BILDERSUCHE - SUCHE IM WEB GIF-SUCHE Suche Bilder Suche GIFs @@ -2709,84 +878,58 @@ Möchtest du wirklich dieses Bild bei allen löschen? Möchtest du das Video wirklich bei allen löschen? "Möchtest du das GIF wirklich bei allen löschen? " - Änderungen verwerfen? + Änderungen verwerfen Möchtest du wirklich alle Änderungen verwerfen? Suchverlauf löschen? Wirklich den Suchverlauf leeren? + "Diesen Chat aus deinem Suchverlauf entfernen? " + "Diese %1$d Chats aus deinem Suchverlauf entfernen? " Suchverlauf leeren + Aus Suchverlauf entfernen Suchverlauf Wirklich \"%1$s\" aus dem Suchverlauf entfernen? Wirklich \"%1$s\" aus dem Suchverlauf entfernen? + %1$s aus deinem Suchverlauf entfernen? Entfernen - Löschen + Alles leeren Beschriftung... - Bildbeschriftung - Videobeschriftung - GIF Beschriftung Beschriftung Löschen Bearbeiten - Stift - Marker - Neon Pfeil Klonen - Kontur - Normal - Gerahmt Zurücksetzen Original Quadrat - Zeigt Medien als einzelne Nachrichten - Zeigt alle Medien in einer Nachricht Ohne Gruppierung senden Ohne Komprimierung senden - Wähle ein Titelbild für das Profilvideo + Wähle ein Titelbild für das Profilbild Als Standard festlegen Im Editor öffnen Das ist jetzt dein Hauptprofilbild. - Das ist jetzt dein Hauptprofilvideo. + Das ist jetzt dein Hauptprofilbild. Das ist jetzt das Hauptbild des Kanals. - Das ist jetzt das Hauptvideo des Kanals. + Das ist jetzt das Hauptbild des Kanals. Das ist jetzt das Hauptbild der Gruppe. - Das ist jetzt das Hauptvideo der Gruppe. - Bild in Galerie gespeichert - Video in Galerie gespeichert - Bild in Downloads gespeichert - Video in Downloads gespeichert - GIF in Downloads gespeichert - Datei in Musik gespeichert - Datei in Downloads gespeichert - %1$d Dateien in Downloads gespeichert - Datei in Downloads gespeichert - %1$d Dateien in Downloads gespeichert - %1$d Dateien in Downloads gespeichert - %1$d Dateien in Downloads gespeichert - %1$d Dateien in Downloads gespeichert - %1$d Bilder in Galerie gespeichert - Bild in Galerie gespeichert - %1$d Bilder in Galerie gespeichert - %1$d Bilder in Galerie gespeichert - %1$d Bilder in Galerie gespeichert - %1$d Bilder in Galerie gespeichert - %1$d Videos in Galerie gespeichert - Video in Galerie gespeichert - %1$d Videos in Galerie gespeichert - %1$d Videos in Galerie gespeichert - %1$d Videos in Galerie gespeichert - %1$d Videos in Galerie gespeichert - %1$d Dateien in Musik gespeichert - Datei in Musik gespeichert - %1$d Dateien in Musik gespeichert - %1$d Dateien in Musik gespeichert - %1$d Dateien in Musik gespeichert - %1$d Dateien in Musik gespeichert - %1$d Objekte in Galerie gespeichert - Ein Objekt in Galerie gespeichert - %1$d Objekte in Galerie gespeichert - %1$d Objekte in Galerie gespeichert - %1$d Objekte in Galerie gespeichert - %1$d Objekte in Galerie gespeichert + Das ist jetzt das Hauptbild der Gruppe. + Bild in Galerie gespeichert. + Video in Galerie gespeichert. + Bild in **Downloads** gespeichert. + Video in **Downloads** gespeichert. + Den Lieblings-GIFs hinzugefügt. + GIF in **Downloads** gespeichert. + Datei in Musik gespeichert. + Datei in **Downloads** gespeichert. + Datei in **Downloads* gespeichert. + %1$d Dateien in **Downloads** gespeichert. + Bild in Galerie gespeichert. + %1$d Bilder in Galerie gespeichert. + Video in Galerie gespeichert. + %1$d Videos in Galerie gespeichert. + Datei in Musik gespeichert. + %1$d Dateien in Musik gespeichert. + Ein Objekt in Galerie gespeichert. + %1$d Objekte in Galerie gespeichert. Zweistufige Bestätigung Zweistufige Bestätigung @@ -2799,19 +942,34 @@ Zusätzliches Passwort festlegen Hier kannst du ein eigenes Passwort festlegen, um dich an einem neuen Gerät anzumelden, zusätzlich zum Code, der per SMS kommt. Dein Passwort + Dein Passwort + Dein Konto ist mit der zweistufigen Bestätigung (Cloud Passwort) geschützt. Erinnerst du dich noch an dein Passwort? + Ja, kenne es noch + Nicht sicher Ein Aus + Passwort eingeben Dein Passwort eingeben + Passwort prüfen + Kennst du dein Passwort noch? + Perfekt! + Du kennst dein Passwort noch. + Dieses Passwort ist falsch. + Zurück in die Einstellungen Um die Übertragung abzuschliessen, bitte dein Passwort eingeben. - Passwort eingeben + Dein Passwort eingeben, um etwas abzuheben. Neues Passwort festlegen - Neues Passwort eingeben Passwort erneut eingeben + Neues Passwort + Nun kannst du ein neues Passwort festlegen, mit dem du dich bei deinem Konto anmelden kannst. + Neues Passwort eingeben + Neues Passwort erneut eingeben Wiederherstellung E-Mail-Adresse\nfür Wiederherstellung + Du kannst eine E-Mail-Adresse hinterlegen, damit du dein Passwort zurücksetzen und den Zugriff auf dein Konto wiederherstellen kannst. Deine E-Mail - Dein E-Mail Code - Bestätige bitte deine E-Mail-Adresse, indem du den Code eingibst, den du gerade bei %1$s erhalten hast. + Deine neue E-Mail + Deine E-Mail wurde geändert. Falls du dein Passwort vergisst, benötigen wir deine richtige E-Mail Adresse. Überspringen Warnung @@ -2819,7 +977,6 @@ Fast geschafft! Bitte überprüfe deine Mails (auch den Spam-Ordner) um die zweistufige Bestätigung abzuschließen. Geschafft! - Dein Passwort für die zweistufige Bestätigung ist jetzt aktiv. Dein Passwort für die zweistufige Bestätigung wurde geändert. Deine Wiederherstellungs-E-Mail für die zweistufige Bestätigung ist jetzt aktiv. Deine Wiederherstellungs-E-Mail für die zweistufige Bestätigung wurde geändert. @@ -2831,37 +988,52 @@ Ganz sicher dein Passwort deaktivieren? Wirklich Einrichtung der zweistufigen Bestätigung abbrechen? Wirklich die E-Mail-Einrichtung abbrechen? + Den Vorgang der Passwort-Zurücksetzung abbrechen? Wenn du später eine erneute Zurücksetzung anforderst, dauert es wieder 7 Tage. + JA + NEIN + Zurücksetzung abbrechen Einrichtung abbrechen - Warnung! Alle Daten in deinem Telegram Passport gehen verloren! + Alle Daten in deinem Telegram Passport gehen verloren! Passwort-Erinnerung + Du kannst einen Passworthinweis hinterlegen. Hinweis Hinweis auf dein Passwort eingeben + Lege eine Passworterinnerung fest. Kennwörter stimmen nicht überein + Passwort wiederholen Einrichtung abbrechen Einrichtung abbrechen E-Mail-Einrichtung abbrechen Abbrechen Deaktivieren Um die zweistufige Bestätigung abzuschließen, tippe den Code ein, der dir gerade per E-Mail (Spam-Ordner nicht vergessen) gesendet wurde. - Um die Einrichtung deiner Wiederherstellungsadresse abzuschließen, prüfe %1$s (Spam-Ordner nicht vergessen) und gebe den Code ein, den du eben erhalten hast. Der Hinweis darf nicht das Passwort sein. Ungültige E-Mail-Adresse. Bitte prüfe, ob du sie richtig eingetippt hast und versuche es erneut. Tut uns leid Da du für diesen Fall keine E-Mail-Adresse hinterlegt hast, kannst du nur noch hoffen, dass dir dein Passwort wieder einfällt oder du musst dein Telegram-Konto zurückzusetzen. + Da du bei der Einrichtung deines Passwortes keine E-Mail-Adresse für die Wiederherstellung angegeben hattest, kannst du nur hoffen, dass dir dein Passwort wieder einfällt oder du wartest 7 Tage, bis dein Passwort zurückgesetzt wird. + Wirklich das Passwort der zweistufigen Bestätigung zurücksetzen? + Dein Passwort für die zweistufige Bestätigung wurde zurückgesetzt. KONTO ZURÜCKSETZEN + PASSWORT ZURÜCKSETZEN + Du kannst dein Passwort in %1$s zurücksetzen. + Passwort zurücksetzen Wiederherstellungscode Wir haben den Wiederherstellungscode an diese Adresse geschickt:\n\n%1$s - Überprüfe deine Mails und gib den 6-stelligen Code aus unserer E-Mail ein. + Überprüfe deine Mails und gib den 6-stelligen Code aus unserer E-Mail ein, um dein Cloud-Passwort zu deaktivieren. Keinen Zugang zu %1$s? Kein Zugang zu deiner E-Mail-Adresse? Wenn du nicht in deine E-Mails kommst, kannst du nur hoffen, dass dir dein Passwort wieder einfällt oder du musst dein Telegram-Konto zurücksetzen. + Falls du keinen Zugriff auf deine E-Mail-Adresse hast, kannst du nur hoffen, dass dir dein Passwort wieder einfällt oder du wartest 7 Tage, bis dein Passwort zurückgesetzt wird. + Keinen Zugang zu %1$s? + Du hast kürzlich eine Zurücksetzung deines Passwortes angefordert, die abgebrochen wurde. Bitte warte %1$s, bevor du eine neue Anfrage stellst. KONTO ZURÜCKSETZEN - Wenn du dein Konto zurücksetzt, verlierst du alle Chats und Nachrichten, ebenso deine geteilten Bilder und Videos. Warnung - Dies kann nicht rückgängig gemacht werden.\n\nWenn du dein Konto zurücksetzt, sind alle Chats gelöscht. + Das kann nicht rückgängig gemacht werden.\n\nWenn du dein Konto zurücksetzt, verlierst du alle Chats und Nachrichten, ebenso deine geteilten Medien und Dateien. Konto zurücksetzen Passwort Du hast die zweistufige Bestätigung aktiviert. Dein Konto ist mit einem zusätzlichen Passwort geschützt. + Zweistufige Bestätigung wurde aktiviert. Dein Konto ist jetzt mit einem zusätzlichen Passwort geschützt. Passwort vergessen? Passwort zurücksetzen Code @@ -2871,187 +1043,21 @@ Code eingeben Der Bestätigungscode wurde an deine E-Mail gesendet. Du hast die zweistufige Bestätigung aktiviert.\nWenn du dich bei Telegram anmeldest, brauchst du dein Passwort. - - Daten und Speicher - Daten- und Speichernutzung - Speicherverbrauch - Netzwerk-Nutzung - Speicherpfad - Mobil - WLAN - Roaming - Nachrichten und sonstige Daten - Gesendet - Empfangen - Bytes gesendet - Bytes empfangen - Dateien - Anrufe - Ausgehende Anrufe - Eingehende Anrufe - Zeit insgesamt - Insgesamt - Statistik zurücksetzen - Netzwerk-Nutzung seit %1$s - Statistiken zurücksetzen - Möchtest du die Nutzungsstatistiken zurücksetzen? - - Privatsphäre und Sicherheit - Privatsphäre - Zuletzt gesehen - Profilbilder - Wer darf mein Profilbild sehen? - Hier kannst du per Feineinstellung bestimmen, wer dein Profilbild sehen darf. - Du kannst Kontakte oder ganze Gruppen hinzufügen, für die eine Ausnahme gemacht werden soll. - Telefonnummer - Wer darf meine Nummer sehen? - Wer darf mich unter meiner Nummer finden? - Nutzer, die deine Nummer in ihren Kontakten gespeichert haben, sehen sie auch bei Telegram. - Nutzer, die deine Nummer zu ihren Kontakten hinzufügen, sehen sie bei Telegram nur, wenn sie in deinen Kontakten gespeichert sind. - Fügst du einzelne Nutzer oder eine komplette Gruppe als Ausnahme hinzu, werden die festgelegten Einstellungen oben überschrieben. - Weiterleitungen - Verknüpfung mit deinem Konto - Verknüpfung, laut Einstellungen unten - Keine Verknüpfung mit deinem Konto - Wer darf beim Weiterleiten meiner Nachrichten eine Verknüpfung zu meinem Konto hinzufügen? - Leitet man deine Nachrichten an andere Chats weiter, werden sie nicht mit deinem Konto verknüpft. - Du kannst Kontakte oder ganze Gruppen hinzufügen, für die eine Ausnahme gemacht werden soll. - Reinhardt, wir brauchen neue Musik für dich 🎶. - Peer-to-Peer - Peer-to-Peer bei Anrufen - Peer-to-Peer benutzen mit - Bots und Webseiten - Zahlungsinfo entfernen - Zahlungsinfo entfernen - Möchtest du wirklich deine Versand- und Zahlungsinfos leeren? - Du kannst deine Versandinfos löschen und alle Zahlungsbetreiber anweisen, deine gespeicherten Kreditkartendaten zu entfernen. Beachte bitte, dass Telegram niemals deine Kreditkartendaten speichert. - Zahlungsinfos geleert. - Versandinfos geleert. - Zahlungs- und Versandinfos geleert. - Webseiten, bei denen du mit Telegram angemeldet bist. - Versandinformationen - Zahlungsinformationen - Alle Cloud-Entwürfe löschen - Jeder - Meine Kontakte - Niemand - Jeder (-%1$d) - Meine Kontakte (+%1$d) - Meine Kontakte (-%1$d) - Meine Kontakte (-%1$d, +%2$d) - Niemand (+%1$d) - Jeder - Meine Kontakte - Niemand - Jeder (-%1$d) - Meine Kontakte (+%1$d) - Meine Kontakte (-%1$d) - Meine Kontakte (-%1$d, +%2$d) - Niemand (+%1$d) - Sicherheit - Automatische Kontolöschung - Neue Chats von Unbekannten - Archivieren und Stumm - Diese Option archiviert und schaltet neue Chats, Gruppen und Kanäle von Nicht-Kontakten stumm bei dir. - Mein Konto löschen - Konto löschen bei Inaktivität - Wenn inaktiv für - Wenn du innerhalb dieser Zeit nicht online bist, wird dein Konto mit allen Nachrichten und Kontakten gelöscht. - Wer darf deinen Online-Status sehen? - Ausnahmen hinzufügen - Zu Ausnahmen hinzufügen - Du kannst den \"zuletzt gesehen\" Status nur von Personen sehen, mit denen du auch deinen teilst. Ansonsten wird die ungefähre Zeit angezeigt (kürzlich, innerhalb einer Woche, innerhalb eines Monats). - Du hast einige Änderungen im Bereich Privatsphäre durchgeführt. Möchtest du die Änderungen anwenden? - Immer teilen mit - Niemals teilen mit - Hier kannst du Kontakte oder ganze Gruppen hinzufügen, für die eine Ausnahme gemacht werden soll. - Immer teilen - Niemals teilen - Hinzufügen - Du hast zu oft probiert, deine Einstellungen zu ändern; bitte warte kurz. - Auf Nutzer tippen und halten um zu löschen. - Gruppen - Wer kann mich in Gruppen einladen? - Du kannst bestimmen, wer dich in Gruppen oder Kanäle einladen darf. - Immer erlauben - Niemals erlauben - Hier kannst du Nutzer hinzufügen, für die eine Ausnahme gemacht werden soll. - Ändere, wer dich in Gruppen und Kanäle einladen kann. - Du kannst diesen Nutzer nicht hinzufügen, weil er das nicht erlaubt. - Der Nutzer hat das Hinzufügen zu Kanälen in den Privatsphäre-Einstellungen leider nicht erlaubt. - Du kannst mit diesen Nutzern keine Gruppe erstellen, weil sie es nicht erlauben. - Deaktivierst du Peer-to-Peer, werden alle Anrufe über die Telegram Server geleitet. Dadurch ist deine IP-Adresse nicht mehr beim Gesprächspartner sichtbar, die Gesprächsqualität wird jedoch leicht abnehmen. - Synchronisierte Kontakte löschen - Häufige Kontakte vorschlagen - Zeigt Leute im oberen Bereich der Suche an, die du häufig kontaktiert hast. - Vorschläge deaktivieren - Das löscht alle Daten über Personen mit denen du häufig chattest, sowie Vorschläge für Inline-Bots. - Nutzer oder Gruppen hinzufügen - Ausnahmen - Niemand - Kontakte löschen - Das wird deine Kontakte von den Telegram Servern entfernen.\n\nFalls \'**Kontakte synchronisieren**\' aktiviert ist, werden Kontakte neu synchronisiert. + E-Mail für Anmeldung + Du erhältst jetzt Telegram Anmeldecodes per E-Mail und nicht mehr per SMS. Bitte gib deine E-Mail-Adresse ein. + Deine neue E-Mail + Bitte prüfe deine E-Mails bei %1$s (Spam-Ordner nicht vergessen) und den Code eingeben. + Prüfe deine E-Mails + Bitte Code eingeben, der dir an %1$s gesendet wurde. + Prüfe jetzt deine E-Mails + Bitte Code eingeben, der dir an die neue Adresse %1$s geschickt wurde. + oder Sende Video... Sende GIF... - - Bot - Teilen - Zu einer Gruppe hinzufügen - Einstellungen - Hilfe - Zugriff auf Nachrichten - kein Zugriff auf Nachrichten - Was kann dieser Bot? - STARTEN - NEU STARTEN - Bot anhalten - Bot neu starten - - Fertig - Öffnen - Speichern - Abbrechen - Schließen - Ändern - Hinzufügen - Bearbeiten - Senden - Anrufen - Videoanruf - Kopieren - Löschen - Starten - Löschen und anhalten - Weiterleiten - Erneut versuchen - Von der Kamera - Aus der Galerie - Bild entfernen - Wählen - OK - Stoppen - Länger warten - Fortsetzen - Link erstellen - SCHNEIDEN - App aktualisieren - JETZT AKTUALISIEREN - AKTUALISIEREN - SPÄTER - Akzeptieren - Zustimmen - Ablehnen - JETZT LÖSCHEN - Zurück - Registrieren - Ablehnen & Löschen - Weiter - Aktivieren Du bist der Gruppe per Link beigetreten un1 hat Einladungslink un2 gelöscht - un1 hat Einladungslink un2 erstellt un1 hat Einladungslink un2 zu un3 geändert un1 hat Lautstärke von un2 verändert: %1$d%% un1 hat Einladungslink un2 widerrufen @@ -3063,12 +1069,16 @@ un1 hat den Timer für die Auto-Löschung ausgeschaltet. Du hast den Timer für die Auto-Löschung ausgeschaltet. un1 ist der Gruppe per Link beigetreten + un1 ist der Gruppe über einen Ordner-Einladungslink beigetreten + un1 ist dem Kanal über einen Einladungslink beigetreten + un1 ist dem Kanal über einen Ordnereinladungslink beigetreten un1 hat un2 aus der Gruppe entfernt + un1 hat %1$s rückerstattet un1 hat die Gruppe verlassen un1 hat un2 hinzugefügt un1 hat das Gruppenbild entfernt un1 hat das Gruppenbild geändert - un1 hat das Gruppenvideo geändert + un1 hat das Gruppenbild geändert un1 hat den Namen der Gruppe in un2 geändert un1 hat die Gruppe erstellt Du hast un2 aus der Gruppe entfernt @@ -3080,7 +1090,7 @@ un1 hat %1$s bei un2 erzielt Du hast das Gruppenbild entfernt Du hast das Gruppenbild geändert - Du hast das Gruppenvideo geändert + Du hast das Gruppenbild geändert Du hast den Gruppennamen in un2 geändert Du hast die Gruppe erstellt un1 hat dich aus der Gruppe entfernt @@ -3093,15 +1103,20 @@ un1 ist jetzt %1$s von un2 entfernt un1 hat dich in diese Gruppe eingeladen un1 hat dich in diesen Kanal eingeladen - un1 hat einen Sprachchat gestartet - Du hast einen Sprachchat gestartet - Sprachchat gestartet - Sprachchat geplant für %1$s - Sprachchat beendet (%s) - un1 hat un2 in den Sprachchat eingeladen - Du hast un2 in den Sprachchat eingeladen - un1 hat dich in den Sprachchat eingeladen + un1 hat einen Videochat gestartet + Du hast einen Videochat gestartet + Videochat geplant für %1$s + Livestream gestartet + Livestream geplant für %1$s + Livestream beendet (%s) + un1 hat den Videochat beendet (%s) + Du hast den Videochat beendet (%s) + un1 hat un2 in den Videochat eingeladen + Du hast un2 in den Videochat eingeladen + un1 hat dich in den Videochat eingeladen Du hast diesem Bot erlaubt, dich anzuschreiben, als du dich auf %1$s angemeldet hast. + Du hast diesem Bot erlaubt, dich anzuschreiben, als du dich in der App \"%1$s\" angemeldet hast. + Du hast diesem Bot erlaubt, dir in seiner Web-App Nachrichten zu senden. %1$s hat die folgenden Dokumente erhalten: %2$s Persönliche Daten Adresse @@ -3116,47 +1131,55 @@ Mietvertrag Telefonnummer E-Mail-Adresse - Diese Nachricht wird von deiner Telegram-Version nicht unterstützt. Bitte aktualisiere die App: https://telegram.org/update + Diese Nachricht wird von deiner Telegram-Version nicht unterstützt. Bitte aktualisiere die App. + Deine Version ist aktuell. Bild Video Selbstzerstörendes Bild Selbstzerstörendes Video - Bild ist abgelaufen - Video ist abgelaufen + Abgelaufenes Bild + Abgelaufenes Video + Abgelaufene Videonachricht + Abgelaufene Sprachnachricht GIF Standort Live-Standort Kontakt + Antworten Datei Sticker Sprachnachricht Videonachricht + Einmalige Sprachnachricht + Einmalige Videonachricht Spiel Du Du hast ein Bildschirmfoto gemacht! un1 hat ein Bildschirmfoto gemacht! - - Limit erreicht - Inaktive Chats - Kanal, inaktiv seit %1$s - %1$s, inaktiv seit %2$s - %1$s verlassen - Zu viele Gruppen/Kanäle - Du bist aktuell Mitglied zu vieler Gruppen oder Kanäle. Bitte einige verlassen, bevor du neuen beitreten kannst. - Du bist Mitglied in zu vielen Gruppen und Kanälen. Bitte verlasse einige, damit du neue erstellen kannst. - Du bist aktuell Mitglied zu vieler Gruppen oder Kanäle. Aus technischen Gründen musst du erst einige verlassen, bevor du diese Einstellung in deinen Gruppen ändern kannst. - Der Nutzer ist leider Mitglied in zu vielen Gruppen und Kanälen. Bitte die Person, erst einige zu verlassen. + Album + Mehr als %d Themen kannst du derzeit nicht oben anheften. Warnung! Das wird **alle Nachrichten** in diesem Chat **für beide Teilnehmer löschen**. + Wichtig! Das wird **alle Nachrichten** in diesem Kanal **löschen**. Warnung! Das wird in diesem Chat **alle Nachrichten löschen**. Alles löschen - Ladevorgang stoppen? + Laden stoppen? + Ladevorgang wirklich abbrechen? Aktualisiere Telegram Deine Telegram-App ist leider veraltet und kann diese Anfrage nicht verarbeiten. Bitte aktualisiere Telegram. Ungültige Telefonnummer. Bitte prüfe, ob du sie richtig eingetippt hast und versuche es erneut. Bitte melde dich mit deinem Telegram-Konto an, um Telegram Passport nutzen zu können. Diese Nummer wurde gesperrt. Code ist abgelaufen, bitte melde dich erneut an + Falscher Code + Beenden nicht möglich + Aus Sicherheitsgründen kannst du die Nummer nicht von einem Gerät aus ändern, das du gerade erst verbunden hast. Verwende eine frühere Sitzung oder warte einige Stunden. + Diese E-Mail-Domain ist nicht erlauhbt, + Ungültiges E-Mail-Token. + Ungültige E-Mail-Adresse. + E-Mail-Anmeldung + Diese E-Mail-Adresse wird bei jeder Anmeldung mit deinem Konto von einem neuen Gerät benutzt. + E-Mail ändern Zu viele Versuche in zu kurzer Zeit, versuche es bitte später erneut. Zu viele Versuche, bitte erneut in %1$s versuchen Ungültiger Code. Bitte versuche es später erneut. @@ -3165,7 +1188,7 @@ Dieser Name kann leider nicht benutzt werden Lädt… Du hast keinen Videoplayer. Bitte installiere einen um fortzufahren. - Bitte sende eine E-Mail an sms@telegram.org mit einer Beschreibung des Problems. + Bitte sende eine E-Mail an reports@stel.com mit einer Beschreibung des Problems. Du hast keine Applikationen, die den Dateityp \'%1$s\' öffnen könnten. Bitte installiere eine entsprechende Anwendung um fortzufahren. Dieser Nutzer hat noch kein Telegram. Möchtest du ihn einladen? Bist du sicher? @@ -3173,31 +1196,31 @@ Möchtest du **%1$s** der Gruppe **%2$s** hinzufügen? Wieviele der letzten Nachrichten willst du weiterleiten? %1$s zur Gruppe hinzufügen? - %1$s hinzufügen - Mitglied hinzufügen + Mitglied hinzufügen + %1$d Mitglieder hinzufügen Wirklich %1$s bei **%2$s** hinzufügen? - Wirklich %1$s bei **%2$s** hinzufügen? + Wirklich Mitglied bei **%2$s** hinzufügen? + Wirklich %1$d Mitglieder bei **%2$s** hinzufügen? Neuen Mitgliedern die letzten 100 Nachrichten zeigen **%1$s** die letzten 100 Nachrichten zeigen Möchtest du diese Nachricht **%1$s** senden? Möchtest du dieses Spiel mit **%1$s** teilen? Möchtest du diesen Kontakt **%1$s** senden? - Wirklich abmelden?\n\nDu kannst Telegram von all deinen Geräten gleichzeitig nutzen.\n\nWichtig: Abmelden löscht deine Geheimen Chats. + Wirklich abmelden?\n\nAbmelden löscht deine Geheimen Chats.\n\nDu kannst Telegram von all deinen Geräten gleichzeitig nutzen. %1$s löschen %1$s leeren Cache für %1$s leeren - Wirklich die ausgewählten Chats löschen? + Wirklich diese Chats löschen? Wirklich den Chatverlauf der ausgewählten Chats leeren? Gesamten Text- und Medien-Cache für ausgewählte Chats löschen? Gruppe löschen und verlassen? Möchtest du den Kanal löschen und verlassen? Wirklich Gruppe **%1$s** verlassen und löschen? - Möchtest du wirklich diesen Chat löschen? - Wirklich den Chat mit **%1$s** löschen? + Wirklich diesen Chat löschen? + Den Chat mit %1$s dauerhaft löschen? Wirklich **%1$s** blockieren und den Chat löschen? Wirklich den Chat **Gespeichertes** löschen? Wirklich deinen Geheimen Chat mit **%1$s** löschen? - Wirklich den Chat **%1$s** löschen? Cloud-Entwürfe löschen Wirklich all deine Cloud-Entwürfe löschen? Deinen Standort teilen? @@ -3207,6 +1230,8 @@ Dieser Bot möchte bei jeder Anfrage deinen Standort wissen. Das kann für standortabhängig aufbereitete Informationen benutzt werden. Deine Telefonnummer teilen? Der Bot wird deine Nummer sehen. Das kann für verschiedene Dienste nützlich sein. + **%s** wird deine Telefonnummer kennen. Das kann für die Integration mit anderen Diensten nützlich sein. + Dadurch wird auch der Bot entsperrt. Möchtest du wirklich deine Nummer %1$s mit **%2$s** teilen? Möchtest du wirklich deine Telefonnummer teilen? Wirklich **%1$s** blockieren? @@ -3214,22 +1239,27 @@ Diesen Kontakt wirklich löschen? Geheimer Chat Geheimen Chat starten? - Bist du dir sicher, dass du die Registrierung abbrechen willst? + Registrierung wirklich stoppen? "Möchtest du wirklich den Verifikationsvorgang stoppen? " Wirklich deinen Verlauf mit **%1$s** leeren? - Wirklich den geheimen Verlauf bei dir und **%1$s** leeren? + "Das wird alle Nachrichten bei dir und bei **%1$s** löschen? Wirklich fortsetzen? " Wirklich den Verlauf in **%1$s** leeren? + Kanalverlauf in **%1$s** leeren? Wirklich alle Nachrichten in diesem Chat löschen? - Wirklich den Chat **Gespeichertes** leeren? + Wirklich den Chat **Gespeichertes** leeren? Das kann nicht mehr rückgängig gemacht werden. Cache (Texte und Medien) des Kanals wirklich löschen? Cache der Gruppe wirklich löschen? %1$s löschen + %1$s nicht mehr speichern Nachricht löschen + Nicht mehr speichern Du kannst auch %1$s in den Chats der anderen Gruppenmitglieder löschen, wenn du \"Bei allen Mitgliedern löschen\" aktivierst. Aktivierst du \"Widerrufe meine Nachrichten\", kannst du auch %1$s in den Chats der anderen Mitglieder der Gruppe löschen. Du kannst auch %1$s bei **%2$s** im Chat löschen, wenn du \"Widerrufe meine Nachrichten\" aktivierst. + Wirklich diese Nachricht aus Gespeichertes löschen? Wirklich diese Nachricht löschen? Wirklich diese Nachrichten löschen? + Wirklich diese Nachrichten löschen? Wirklich diese Nachricht bei allen löschen? Wirklich diese Nachrichten bei allen löschen? Widerrufe meine Nachrichten @@ -3239,7 +1269,9 @@ Möchtest du diese Nachricht **%1$s** senden? Möchtest du dieses Spiel mit **%1$s** teilen? "Möchtest du diesen Kontakt **%1$s** senden? " - Kein Konto mit diesem Benutzernamen + Benutzername nicht gefunden. + Es gibt kein Konto bei Telegram unter dieser Nummer. + Kein Chat-Ordner gefunden. Keine Gruppen mit diesem Bot möglich Möchtest du die erweiterte Linkvorschau in Geheimen Chats aktivieren? Die Vorschau wird auf den Telegram Servern generiert. Inline Bots werden von Drittentwicklern erstellt. Symbole, die du nach dem Botnamen eingibst, werden an den jeweiligen Entwickler geschickt, damit der Bot funktioniert. @@ -3250,1215 +1282,78 @@ Bitte erlaube Telegram, Anrufe zu empfangen, damit wir deine Telefonnummer automatisch bestätigen können. Du kannst diese Aktion nicht durchführen. Du kannst diesen Nutzer oder Bot Gruppen leider nicht hinzufügen, da du ihn blockiert hast. Gebe ihn wieder frei, um fortzufahren. - GRUPPE BEITRETEN Du kannst diesen Nutzer nicht als Admin festlegen, da er kein Mitglied dieser Gruppe ist oder du keine Erlaubnis hast, ihn einzuladen. Du kannst diesen Nutzer nicht als Admin festlegen, da er sich in der Liste \"Entfernte Nutzer\" befindet und du ihn nicht entfernen darfst. Du kannst diesen Nutzer nicht hinzufügen, da er sich in der Liste der entfernten Benutzer befindet und du ihn nicht freigeben kannst. Du kannst diesen Nutzer nicht sperren, da er ein Admin dieser Gruppe ist und du keine Berechtigung hast, ihn zurückzustufen. Die Admins dieser Gruppe haben dir die Berechtigung entzogen, Sticker zu senden. Die Admins dieser Gruppe haben dir die Berechtigung entzogen, Medien zu senden. + Die Admins dieser Gruppe haben dir den Versand von Bildern untersagt. + Die Admins dieser Gruppe haben dir den Versand von Videos untersagt. Die Admins dieser Gruppe haben dir die Berechtigung entzogen, Umfragen zu senden. + Die Admins dieser Gruppe haben dir den Versand von Sprachnachrichten untersagt. + Die Admins dieser Gruppe haben dir den Versand von Videonachrichten untersagt. + Die Admins dieser Gruppe haben dir den Versand von Dateien untersagt. + Die Admins dieser Gruppe haben dir den Versand von Musik untersagt. Sticker sind in dieser Gruppe nicht erlaubt. + Versand von Bildern ist in dieser Gruppe nicht erlaubt. + Versand von Videos ist in dieser Gruppe nicht erlaubt. Versand von Medien ist hier leider nicht erlaubt. Umfragen sind in dieser Gruppe nicht erlaubt. + Der Versand von Sprachnachrichten ist in dieser Gruppe nicht erlaubt. + Der Versand von Videonachrichten ist in dieser Gruppe nicht erlaubt. + Der Versand von Dateien ist in dieser Gruppe nicht erlaubt. + Der Versand von Musik ist in dieser Gruppe nicht erlaubt. + Der Nutzer hat den Empfang von Sprachnachrichten bei sich in den Einstellungen ausgeschaltet. + "Leider kannst du aufgrund seiner Einstellungen diesem Nutzer keine Videonachrichten schicken. " + Weiterleitung nicht möglich Tut uns sehr leid, aber in diesem Fall kannst du dich nicht bei Telegram registrieren.\n\nIm Gegensatz zu anderen, nutzen wir deine Daten nicht für die Ausrichtung von Werbung und verkaufen sie nicht an andere. Telegram speichert nur die Informationen, die es benötigt, um als funktionsreicher Cloud-Dienst aufzutreten. Im Bereich \'Privatsphäre & Sicherheit\' kannst du festlegen, wie wir deine Daten verwenden.\n\nWenn du allgemein nicht mit unseren bescheidenen Anforderungen einverstanden bist, wird es uns nicht möglich sein, dir diesen Dienst anzubieten. Altersverifikation Datenschutzerklärung und Nutzungsbedingungen Tippe auf Zustimmen, um zu bestätigen, dass du mindestens %1$s oder älter bist. - Es tut uns sehr leid aber in diesem Fall müssen sich unsere Wege trennen. Im Gegensatz zu anderen, werden bei Telegram deine Daten nicht für Werbezielerfassungen oder sonstige kommerzielle Zwecke verwendet. Telegram speichert nur die Informationen, die es braucht, um dir einen funktionsreichen Cloud-Dienst anbieten zu können. Unter \'Privatsphäre & Sicherheit\' kannst du festlegen, wie wir deine Daten verwenden (z.B. synchronisierte Kontakte löschen).\n\nWenn du dennoch mit unseren bescheidenen Anforderungen nicht einverstanden bist, wird es uns nicht möglich sein, dir diesen Dienst anzubieten. Du kannst dein Konto jetzt löschen oder dich noch etwas umschauen und jederzeit später löschen, sofern du mit Telegram nicht zufrieden sein solltest. - Warnung! Das wird dein Telegram-Konto mit all deinen Daten aus der Telegram-Cloud unwiderruflich löschen.\n\nWichtig: Du kannst jetzt abbrechen und deine Daten vor der Löschung noch exportieren. (Öffne dazu die aktuellste Version von Telegram Desktop > Einstellungen > Erweitert > Telegram-Daten exportieren.) + Leider gibt es keine anderen Alternativen. Im Gegensatz zu anderen Apps verwendet Telegram die Nutzerdaten nicht für Werbezwecke oder andere kommerzielle Zwecke. Telegram speichert nur die Informationen, die es braucht, um als funktionsreicher Clouddienst zu funktionieren. Du kannst in den Privatsphäre- und Sicherheitseinstellungen einstellen, wie deine Daten verwendet werden.\n\nWenn du mit diesen bescheidenen Anforderungen von Telegram nicht einverstanden bist, ist es uns nicht möglich, dir den Dienst zur Verfügung zu stellen. + Warnung! Das wird dein Konto mit all deinen Daten aus der Telegram-Cloud unwiderruflich löschen.\n\nWichtig: Du kannst jetzt abbrechen und deine Daten vor der Löschung noch exportieren. (Öffne dazu die aktuellste Version von Telegram Desktop > Einstellungen > Erweitert > Daten exportieren.) - Damit du dich mit Freunden auf all deinen Geräten verbinden kannst, werden deine Kontakte durchgehend mit den stark verschlüsselten Cloud Servern von Telegram synchronisiert. - Telegram benötigt Zugriff auf deinen Speicher, damit du Bilder, Videos und Musik senden und speichern kannst. - "Telegram benötigt Zugriff auf dein Mikrofon, damit du Sprachnachrichten senden kannst. " - Telegram benötigt Zugriff auf dein Mikrofon, damit du Videos aufnehmen kannst. - Telegram benötigt Zugriff auf deine Kamera, damit du Bilder und Videos aufnehmen kannst. Bitte aktiviere es in den Einstellungen. + **Telegram** benötigt Zugriff auf deinen **Speicher**, damit du Bilder, Videos, Musik und weitere Medien senden und speichern kannst. Tippe unten auf Einstellungen -> Berechtigungen und schalte den Zugriff ein. + **Telegram** benötigt Zugriff auf dein **Mikrofon**, damit du Sprachnachrichten senden kannst. Tippe unten auf Einstellungen > Berechtigungen und aktiviere den Zugriff. + **Telegram** benötigt Zugriff auf dein **Mikrofon**, damit du Sprachnachrichten senden kannst. Tippe unten auf Einstellungen > Berechtigungen und aktiviere den Zugriff. + **Telegram** benötigt Zugriff auf deine **Kamera**, damit du Bilder und Videos aufnehmen kannst. Tippe unten auf Einstellungen > Berechtigungen und aktiviere den Zugriff. + **Telegram** benötigt Zugriff auf deine **Kamera** und dein **Mikrofon**, damit du Videonachrichten aufnehmen kannst. Tippe unten auf Einstellungen > Berechtigungen und aktiviere den Zugriff für beides. "Telegram benötigt Zugriff auf deinen Standort, damit du ihn mit Freunden teilen kannst. " - Telegram benötigt Zugriff auf deinen Standort. + Telegram braucht Zugriff auf deinen Standort, damit du das Wetter-Widget deiner Story hinzufügen kannst. + **Telegram** benötigt Zugriff auf deinen **Standort**, damit du ihn mit Freunden teilen kannst. Tippe unten auf Einstellungen > Berechtigungen und aktiviere den Zugriff. + **Telegram** benötigt Zugriff auf deinen **Standort**, damit du Anweisungen erhalten kannst. Tippe unten auf Einstellungen > Berechtigungen und aktiviere den Zugriff. + **Telegram** benötigt Zugriff auf deine **Kontakte**, damit du sie mit deinen Freunden teilen kannst. Tippe unten auf Einstellungen > Berechtigungen und aktiviere den Zugriff. + **Telegram** benötigt Zugriff auf deinen **Speicher**, damit du ein Profilbild hochladen kannst. Tippe auf Einstellungen > Berechtigungen und aktiviere den Zugriff. + **Telegram** benötigt Zugriff auf Musikdateien, damit du diese mit deiner Story hochladen kannst. Tippe auf Einstellungen > Berechtigungen und aktiviere **Musik und Audio**. Telegram braucht Zugriff auf die Funktion \'Über andere Apps einblenden\'. Nur so können Videos im Bild in Bild Modus wiedergegeben werden. Der Überlagerungsmodus erlaubt dir die Verwendung von Push-To-Talk und die Anzeige, wer gerade spricht, selbst wenn du dich ausserhalb von Telegram befindest. - EINSTELLUNGEN + Einstellungen Bitte erlaube Telegram auf dem Sperrbildschirm, damit Anrufe signalisiert werden können. Um deinen Live-Standort in diesem Chat zu teilen, muss Telegram die ganze Zeit Zugang zu deinem Standort haben, auch während die App im Hintergrund läuft.\n\nWir greifen nur für die von dir gewählte Dauer auf deinen Standort zu und du kannst jederzeit aufhören, ihn zu teilen. Wir werden deinen Standort für keinen anderen Zweck nutzen, als ihn in diesem Chat zu teilen. Bild-in-Bild - Sprachchat-Überlagerung - - Wachstum - Abonnenten - Interaktionen - Aufrufe nach Herkunft - Neue Abonnenten nach Herkunft - Sprachen - Kürzliche Beiträge - Verkleinern - IV-Interaktionen - Lade Statistiken... - Bitte warte einen Augenblick, Diagramme werden erstellt. - Aufrufe nach Stunden (GMT) - Hochwischen, um Aufnahme zu sperren - Benachrichtigungen - Gerätespeicher - %s frei - Telegram Cache leeren - Übersicht - Aufrufe nach Beitrag - Weiterleitungen nach Beitrag - Aktivierte Benachrichtigungen - Lokale Datenbank leeren - %s Telegram Cache - %s Telegrams lokale Datenbank - %s auf deinem Gerät freigegeben! - %s Andere Apps - Gruppenmitglieder - Neue Mitglieder nach Herkunft - Hauptsprache der Mitglieder - Nachrichten - Aktionen - Mitglieder - Nachrichten - Leser - Versender - %1$d Zeichen - %1$d Zeichen - %1$d Zeichen - %1$d Zeichen - %1$d Zeichen - %1$d Zeichen - %1$d Löschungen - %1$d Löschung - %1$d Löschungen - %1$d Löschungen - %1$d Löschungen - %1$d Löschungen - %1$d Sperren - %1$d Sperre - %1$d Sperren - %1$d Sperren - %1$d Sperren - %1$d Sperren - %1$d Einschränkungen - %1$d Einschränkung - %1$d Einschränkungen - %1$d Einschränkungen - %1$d Einschränkungen - %1$d Einschränkungen - %1$d Einladungen - %1$d Einladung - %1$d Einladungen - %1$d Einladungen - %1$d Einladungen - %1$d Einladungen - Aktivste Admins - Aktivste Mitglieder - Aktivste Einladende - %s pro Nachricht - Aktivste Wochentage - Nachrichten anzeigen - Profil öffnen - Heute - Gestern - Aufrufe - Öffentlich geteilt - Privat geteilt - Statistiken anzeigen - Kanal-Statistiken anzeigen - Nachrichtenstatistik - Nachricht öffnen - - Telegram - Schnell - Kostenlos - Sicher - Leistungsstark - Cloud-basiert - Die **schnellste** Messaging App der Welt.\n**Kostenlos** und **sicher**. - **Telegram** übermittelt Nachrichten\nschneller als jede andere Anwendung. - **Telegram** bleibt immer gratis.\nKeine Werbung. Keine Abo-Gebühren. - **Telegram** schützt deine Nachrichten\nvor Hacker-Angriffen. - **Telegram** begrenzt die Größe\ndeiner Medien und Chats nicht. - **Telegram** kannst du vom Handy,\nTablet oder auch Computer\nsynchronisiert benutzen. - JETZT BEGINNEN - - Kontoeinstellungen - Weniger Daten benutzen - Eingehender Anruf - Verbinden - Tausche Schlüssel aus - Warte - Wird angefordert - Anruf wird beendet - Anruf beendet - Keine Verbindung möglich - Es klingelt - Besetzt - Telegram-Anruf - Telegram Videoanruf - Laufender Telegram-Anruf - Laufender Sprachchat - Auflegen - Ein anderer Anruf ist bereits aktiv - Gespräch mit **%1$s** beenden und neues mit **%2$s** beginnen? - Gespräch mit **%1$s** beenden und neuen Sprachchat bei **%2$s** starten? - Es ist bereits ein anderer Sprachchat aktiv - Sprachchat bei **%1$s** verlassen und einen neuen bei **%2$s** starten? - Sprachchat in **%1$s** verlassen und **%2$s** anrufen? - Anrufe - Klingelton - Hier kannst du den Klingelton für Sprachanrufe festlegen. - Anrufe - Alle Anrufe löschen - Anrufe löschen - Bei allen löschen - Wirklich die letzten Anrufe löschen? - Ausgewählte Anrufe aus den letzten Anrufen löschen? - Unabhängig von den Einstellungen oben, wird Peer-to-Peer bei Anrufen mit diesen Benutzern verwendet oder nicht.\n - Peer-to-Peer benutzen mit - Wer kann mich anrufen? - Du kannst bestimmen, wer dich anrufen darf. - Hier kannst du Nutzer hinzufügen, für die eine Ausnahme gemacht werden soll. - Niemals - Nur über Mobilfunk - Immer - Nur bei Roaming - Annehmen - Ablehnen - Du bist derzeit offline. Bitte verbinde dich mit dem Internet und versuche es erneut. - Du bist offline. Bitte verbinde dich mit dem Internet, um an Sprachchat teilzunehmen. - Du hast derzeit den Flugmodus aktiviert. Deaktiviere den Flugmodus oder verbinde dich per W-LAN um jemanden anzurufen. - Derzeit nutzt du den Flugmodus, deaktiviere diesen oder verbinde dich mit einem W-LAN, um Sprachchats teilzunehmen. - Offline - Flugmodus - Einstellungen - Ausgehender Anruf - Eingehender Anruf - Ausgehender Videoanruf - Eingehender Videoanruf - Verpasster Anruf - Abgebrochener Anruf - Abgelehnter Anruf - Verpasster Videoanruf - Abgebrochener Anruf - Abgelehnter Videoanruf - %1$s (%2$s) - Keine Anrufe in letzter Zeit - Deine letzten Sprach- und Videoanrufe\nwerden hier angezeigt. - **%1$s**s App ist nicht mit unserem Protokoll kompatibel. Dein Chatpartner muss seine App aktualisieren, bevor du anrufen kannst. - **%1$s** unterstützt keine Anrufe. Dein Chatpartner muss seine App aktualisieren, bevor du ihn anrufen kannst. - **%1$s** benutzt leider eine veraltete Version, die keine Videoanrufe unterstützt. - Sprachanruf tätigen - Bewerte bitte die Qualität deines Telegram-Anrufs - Telegram benötigt für Sprachanrufe Zugriff auf dein Mikrofon. - Telegram benötigt Zugriff auf dein Mikrofon und deine Kamera, damit du Videoanrufe tätigen kannst. - Telegram benötigt für Videoanrufe Zugriff auf deine Kamera. - Optionalen Kommentar hinzufügen - Zurückrufen - Erneut anrufen - Standard - Möchtest du wirklich diesen Eintrag aus der Anrufliste löschen? - Telegram-Anruf - Telegram Videoanruf - Ohrhörer - Headset - Lautsprecher - Telefon - Bluetooth - Ausgabegeräte - ZURÜCK ZUM ANRUF - %1$s hat bei sich in den Einstellungen festgelegt, dass Anrufe nicht akzeptiert werden sollen. - Wenn diese Emoji genau so bei %1$s aussehen, ist euer Anruf 100%% sicher. - Anruf bewerten - Was klappte nicht? - Technische Infos mitsenden - Wird die Inhalte deiner Chats nicht anzeigen und hilft uns das Problem schneller zu beseitigen. - Danke, dass du uns hilfst, Telegram-Anrufe zu verbessern. - Mit %s beantworten - Mit Nachricht antworten - Beantworte einen eingehenden Telegram-Anruf mit diesen Nachrichten. Du kannst die Texte jederzeit ändern. - Kann nicht sprechen. Was gibt\'s? - Ich rufe dich gleich zurück. - Ich rufe dich später an. - Ich kann gerade nicht sprechen. - Eigene Nachricht... - Eigene erlauben - Telegram-Anruf mit %s - Telegram Videoanruf mit %s - Telegram-Anruf kann im Moment nicht geführt werden. - Ich hörte ein Echo - Ich hörte Rauschen - Partner war nicht immer zu hören - Sprache klang verzerrt - Ich konnte nichts hören - Ich konnte nicht gehört werden - Anruf unerwartet beendet - Video war verzerrt - Video war verpixelt - Hier tippen, um Kamera einzuschalten - Stumm aus - oder halten und sprechen - Du bist live - Durch Admin stummgeschaltet - Stumm - Du befindest dich im Nur-Zuhören-Modus - antippen zum Sprechen - Du wolltest sprechen - Sprecher wurden informiert - Stumm - Video ein - Video aus - Audio - Wechseln - Zu Videoanruf wechseln? - WECHSELN - Mikrofon von %s ist aus - Kamera von %s ist aus - Annehmen - Ablehnen - Wiederholen - Video - Möchtest du wirklich **%1$s** anrufen? - Sprachanruf - Wirklich einen Videoanruf mit **%1$s** starten? - Videoanruf - Erneut verbinden - Sprachchat erstellen - Sprachchat - Sprachchat in dieser Gruppe starten? - Möchtest du einen Sprachchat in diesem Kanal starten? - Sprachchats verwalten - Beitreten - %1$s Mitglieder sprechen - %1$s Mitglied spricht - %1$s Mitglieder sprechen - %1$s Mitglieder sprechen - %1$s Mitglieder sprechen - %1$s Mitglieder sprechen - spricht - %1$d%% spricht - hört zu - möchte sprechen - eingeladen - Verlassen - Beenden - Mikrofon stummschalten - Wirklich **%1$s** in diesem Sprachchat stummschalten? - Teilnehmer entfernen - Möchtest du %1$s aus dem Sprachchat entfernen und bei %2$s sperren? - **%1$s** aus der Gruppe entfernt. - **%1$s** kann jetzt sprechen. - **%1$s** ist für dich nicht mehr stumm in diesem Chat. - **%1$s** ist jetzt stummgeschaltet. - **%1$s** ist nun in diesem Chat für dich stumm. - Stummschalten - Neue dürfen sprechen - Neue sind stumm - Einladungslink teilen - Sprachchat beenden - Sprachchat verwerfen - Verbinden... - Sprachchat verlassen - Wirklich diesen Sprachchat verlassen? - Sprachchat beenden - Wirklich diesen Sprachchat beenden? - Sprachchat beenden - SPRACHCHAT - Sprachchat - Geplanter Sprachchat - Sprachchat öffnen - Ausgewählter Nutzer ist bereits in diesem Sprachchat. - Leider kannst du an Sprachchats als anonymer Admin nicht teilnehmen. - Dieser Sprachchat ist voll. - un1 hat un2 in den Sprachchat eingeladen - Am Sprachchat teilnehmen - Hallo! Tritt unserem Sprachchat bei: %1$s - Mitglieder einladen - Einladungslink teilen - Entfernen - Profil öffnen - Kanal öffnen - Gruppe öffnen - Darf sprechen - Mitglieder zum Anruf hinzufügen - Einladungslink kopieren - Einladungslink in Zwischenablage kopiert. - Stumm aus - Sprachchat beendet. Neuen starten? - Mitglied hinzufügen - **%1$s** zu **%2$s** hinzufügen? - Du hast **%1$s** in den Sprachchat eingeladen. - Hinzufügen - Lautstärke - Stumm für mich - Für mich stumm - Nicht stumm für mich - Zum Beitreten antippen - Aufnahme starten - Aufnahme beenden - Sprachchat starten als... - Sprachchat beitreten als... - Zeige mich als... - Möchtest du mit deinem privaten Konto oder lieber als Kanal angezeigt werden? - Möchtest du mit deinem privaten Konto, dieser Gruppe oder lieber mit einem deiner Kanäle angezeigt werden? - Weiter als %1$s - Titel ändern - Berechtigungen bearbeiten - Teilnehmer dieses Sprachchats werden dich als **%1$s** sehen - Titel des Sprachchats - Kann sprechen - Nur Zuhören - SPRECHER-LINK KOPIEREN - ZUHÖRER-LINK KOPIEREN - Du darfst jetzt sprechen. - Du kannst jetzt bei **%1$s** sprechen. - Aufnahme stoppen - Diesen Sprachchat nicht mehr aufnehmen? - Aufnahme starten - Diesen Chat aufnehmen und die Aufnahme als Audiodatei speichern?\n\nTeilnehmer sehen, dass der Chat aufgenommen wird. - Titel der Aufnahme - Audio bei **Gespeichertes** abgelegt. - Sprachchat-Mitschnitt gestartet. - Sprachchat wird aufgenommen - privates Konto - Sprachanfrage abbrechen - ALS SPRECHER BEITRETEN - ALS ZUHÖRER BEITRETEN - Sprachchat beitreten - Wirklich in diesem Sprachchat mit deinem privaten Konto erscheinen? - Sprachchat ist stumm - Sprachchat nicht mehr stumm - Mitglieder dieser Gruppe werden benachrichtigt, sobald du den Sprachchat startest. - Abonnenten werden benachrichtigt, sobald du den Sprachchat startest. - Du wirst angezeigt als: - Sprachchat starten - Sprachchat planen - Jetzt starten - Erinnerung setzen - Erinnerung verwerfen - Gruppenmitglieder werden benachrichtigt, dass der Sprachchat in %1$s beginnt. - Abonnenten des Kanals erhalten eine Mitteilung, dass der Sprachchat in %1$s startet. - Startet in - Verspätet um - Teilen - Beim Start bekommst du eine Info. - **%1$s** ist Sprachchat beigetreten. - **%1$s** ist Sprachchat beigetreten. - Aktive Sprachchats - Letzte Anrufe - Bildschirm teilen - Bildschirmfreigabe beenden - das bist du - Chat öffnen - Bild ändern - Bio hinzufügen - Name ändern - Bio - Ein paar Zeilen über dich. Der Text kann von allen gesehen werden. - Antippen für Bio - Bio bearbeiten - Beschreibung hinzufügen - Beschreibung bearbeiten - antippen für Bild/Bio - Antippen für Bio - antippen für Bild - antippen für neue Beschreibung - Antippen, um Bild oder Beschreibung hinzuzufügen - Titel bearbeiten - Titel - Neues Bild festlegen - Kamera - Videovorschau - Das Video deiner Kamera wird mit anderen Teilnehmern des Sprachchats geteilt. - Video von der Kamera teilen - Vorschau - Anheften - Loslösen - Audio - Ausgabegerät wählen - Video pausiert - Du teilst gerade\ndeinen Bildschirm - Du teilst deinen Bildschirm - NICHT MEHR TEILEN - Rauschunterdrückung - Eingeschaltet - Ausgeschaltet - Video ist nur für die\nersten %1$s verfügbar - - Einladungslinks verwalten - Hier kannst du zusätzliche Einladungslinks erstellen, die eine begrenzte Zeit haben oder eine bestimmte Anzahl von Nutzungen erlauben. - Jeder, der Telegram installiert hat, kann deiner Gruppe beitreten, indem er diesem Link folgt. - Jeder, der Telegram installiert hat, kann deinem Kanal beitreten, indem er diesem Link folgt. - Link bearbeiten - Link speichern - Kein Limit - Begrenzung nach Ablauf der Zeit - Anzahl der Nutzungen - Neuer Link - Eigener Wert - Eigenen Wert eingeben - Du kannst den Link nach einiger Zeit ablaufen lassen. - Du kannst den Link nach einiger Nutzung ablaufen lassen. - Noch keiner beigetreten - Abgelaufen - QR-Code erstellen - Link erstellt von - Per QR-Code einladen - QR-Code teilen - Widerrufen - Der Link läuft ab %s - Ablauf nach - Zeitlimit festlegen - Widerrufene Links - Link löschen - Widerrufener Link - Der Link ist nicht mehr aktiv - Das Zeitlimit ist für den Link abgelaufen. - Nutzungslimit des Links erreicht. - Neuen Link erstellen - Alle widerrufenen Links löschen - Noch keiner beigetreten - Limit erreicht - Mit diesem QR-Code kann man der Gruppe beitreten. - Das wird Link löschen. - Das wird alle widerrufenen Links löschen. - Erstelle Einladungslinks, die ablaufen, nachdem sie benutzt worden sind. - Einladungslinks von diesem Admin - Links von anderen Admins - Einladungslink für diesen Admin - Mit diesem QR-Code kann man dem Kanal beitreten. - Jeder, der Telegram installiert hat, kann deinem Kanal beitreten, indem er diesem Link folgt. - Der Link läuft in %s ab - Öffentlicher Link - Dieser Einladungslink ist abgelaufen. - Kopieren - Teilen - Der Einladungslink wurde widerrufen. - Abgelaufener Link + Videochat-Überlagerung Nachricht in Telegram %1$s Sprachanruf in Telegram %1$s Videoanruf in Telegram %1$s - - un1 sprechen - un1 spricht - un1 sprechen - un1 sprechen - un1 sprechen - un1 sprechen - %1$d Hintergründe löschen - Hintergrund löschen - %1$d Hintergründe löschen - %1$d Hintergründe löschen - %1$d Hintergründe löschen - %1$d Hintergründe löschen - %1$d Empfänger - %1$d Empfänger - %1$d Empfänger - %1$d Empfänger - %1$d Empfänger - %1$d Empfänger - %1$d online - %1$d online - %1$d online - %1$d online - %1$d online - %1$d online - %1$d Kontakte bei Telegram - %1$d Kontakt bei Telegram - %1$d Kontakte bei Telegram - %1$d Kontakte bei Telegram - %1$d Kontakte bei Telegram - %1$d Kontakte bei Telegram - Hi, ich benutze Telegram zum Chatten – genau wie %1$d unserer Kontakte. Hier kannst du es herunterladen: %2$s - Hi, ich benutze Telegram zum Chatten – genau wie %1$d unserer Kontakte. Hier kannst du es herunterladen: %2$s - Hi, ich benutze Telegram zum Chatten – genau wie %1$d unserer Kontakte. Hier kannst du es herunterladen: %2$s - Hi, ich benutze Telegram zum Chatten – genau wie %1$d unserer Kontakte. Hier kannst du es herunterladen: %2$s - Hi, ich benutze Telegram zum Chatten – genau wie %1$d unserer Kontakte. Hier kannst du es herunterladen: %2$s - Hi, ich benutze Telegram zum Chatten – genau wie %1$d unserer Kontakte. Hier kannst du es herunterladen: %2$s - %1$d Leute sind beigetreten - %1$d Person ist beigetreten - %1$d Leute sind beigetreten - %1$d Leute sind beigetreten - %1$d Leute sind beigetreten - %1$d Leute sind beigetreten - %1$d übrig - %1$d übrig - %1$d übrig - %1$d übrig - %1$d übrig - %1$d übrig - %1$d können beitreten - %1$d können beitreten - %1$d kann beitreten - %1$d können beitreten - %1$d können beitreten - %1$d können beitreten - %1$d Tage übrig - %1$d Tage übrig - %1$d Tag übrig - %1$d Tage übrig - %1$d Tage übrig - %1$d Tage übrig - %1$d Chats - %1$d Chat - %1$d Chats - %1$d Chats - %1$d Chats - %1$d Chats - %1$d Chats - %1$d Chat - %1$d Chats - %1$d Chats - %1$d Chats - %1$d Chats - %1$d Chats - %1$d Chat - %1$d Chats - %1$d Chats - %1$d Chats - %1$d Chats - %1$d Chats - %1$d Chat - %1$d Chats - %1$d Chats - %1$d Chats - %1$d Chats - %1$d Chats - %1$d Chat - %1$d Chats - %1$d Chats - %1$d Chats - %1$d Chats - %1$d Kanäle - %1$d Kanal - %1$d Kanäle - %1$d Kanäle - %1$d Kanäle - %1$d Kanäle - %1$d Gruppen - %1$d Gruppe - %1$d Gruppen - %1$d Gruppen - %1$d Gruppen - %1$d Gruppen - %1$d Mitglieder - %1$d Mitglied - %1$d Mitglieder - %1$d Mitglieder - %1$d Mitglieder - %1$d Mitglieder - %1$d Teilnehmer - %1$d Teilnehmer - %1$d Teilnehmer - %1$d Teilnehmer - %1$d Teilnehmer - %1$d Teilnehmer - und %1$d weitere tippen - und %1$d weitere tippen - und %1$d weitere tippen - und %1$d weitere tippen - und %1$d weitere tippen - und %1$d weitere tippen - %1$s und %2$d weitere tippen - %1$s und %2$d weitere tippen - %1$s und %2$d weitere tippen - %1$s und %2$d weitere tippen - %1$s und %2$d weitere tippen - %1$s und %2$d weitere tippen - %1$d neue Nachrichten - %1$d neue Nachricht - %1$d neue Nachrichten - %1$d neue Nachrichten - %1$d neue Nachrichten - %1$d neue Nachrichten - %1$d Nachrichten losgelöst - Nachricht losgelöst - %1$d Nachrichten losgelöst - %1$d Nachrichten losgelöst - %1$d Nachrichten losgelöst - %1$d Nachrichten losgelöst - %1$d Nachrichten - %1$d Nachricht - %1$d Nachrichten - %1$d Nachrichten - %1$d Nachrichten - %1$d Nachrichten - %1$d Objekte - %1$d Objekt - %1$d Objekte - %1$d Objekte - %1$d Objekte - %1$d Objekte - von %1$d Chats - von %1$d Chat - von %1$d Chats - von %1$d Chats - von %1$d Chats - von %1$d Chats - %1$d Sekunden - %1$d Sekunde - %1$d Sekunden - %1$d Sekunden - %1$d Sekunden - %1$d Sekunden - %1$d Minuten - %1$d Minute - %1$d Minuten - %1$d Minuten - %1$d Minuten - %1$d Minuten - %1$d Stunden - %1$d Stunde - %1$d Stunden - %1$d Stunden - %1$d Stunden - %1$d Stunden - %1$d Tagen - %1$d Tag - %1$d Tagen - %1$d Tagen - %1$d Tagen - %1$d Tagen - %1$d Sekunden - %1$d Sekunde - %1$d Sekunden - %1$d Sekunden - %1$d Sekunden - %1$d Sekunden - %1$d Minuten - %1$d Minute - %1$d Minuten - %1$d Minuten - %1$d Minuten - %1$d Minuten - %1$d Stunden - %1$d Stunde - %1$d Stunden - %1$d Stunden - %1$d Stunden - %1$d Stunden - %1$d Tage - %1$d Tag - %1$d Tage - %1$d Tage - %1$d Tage - %1$d Tage - %1$d Wochen - %1$d Woche - %1$d Wochen - %1$d Wochen - %1$d Wochen - %1$d Wochen - %1$d Monate - %1$d Monat - %1$d Monate - %1$d Monate - %1$d Monate - %1$d Monate - %1$d Jahre - %1$d Jahr - %1$d Jahre - %1$d Jahre - %1$d Jahre - %1$d Jahre - %1$d Nutzer - %1$d Nutzer - %1$d Nutzer - %1$d Nutzer - %1$d Nutzer - %1$d Nutzer - %1$d Mal - %1$d Mal - %1$d Mal - %1$d Mal - %1$d Mal - %1$d Mal - %1$d Meter - %1$d Meter - %1$d Meter - %1$d Meter - %1$d Meter - %1$d Meter - %1$d Sticker - %1$d Sticker - %1$d Sticker - %1$d Sticker - %1$d Sticker - %1$d Sticker - %1$d Masken - %1$d Maske - %1$d Masken - %1$d Masken - %1$d Masken - %1$d Masken - %1$d Abonnenten - %1$d Abonnent - %1$d Abonnenten - %1$d Abonnenten - %1$d Abonnenten - %1$d Abonnenten - %1$d Ausnahmen - %1$d Ausnahme - %1$d Ausnahmen - %1$d Ausnahmen - %1$d Ausnahmen - %1$d Ausnahmen - %1$d entfernte Nutzer - %1$d entfernter Nutzer - %1$d entfernte Nutzer - %1$d entfernte Nutzer - %1$d entfernte Nutzer - %1$d entfernte Nutzer - %1$d Punkte - %1$d Punkt - %1$d Punkte - %1$d Punkte - %1$d Punkte - %1$d Punkte - vor %1$d Min. - vor %1$d Min. - vor %1$d Min. - vor %1$d Min. - vor %1$d Min. - vor %1$d Min. - **%1$d** Sekunden - **%1$d** Sekunde - **%1$d** Sekunden - **%1$d** Sekunden - **%1$d** Sekunden - **%1$d** Sekunden - **%1$d** Minuten - **%1$d** Minute - **%1$d** Minuten - **%1$d** Minuten - **%1$d** Minuten - **%1$d** Minuten - **%1$d** Stunden - **%1$d** Stunde - **%1$d** Stunden - **%1$d** Stunden - **%1$d** Stunden - **%1$d** Stunden - **%1$d** Tage - **%1$d** Tag - **%1$d** Tage - **%1$d** Tage - **%1$d** Tage - **%1$d** Tage - %1$s Aufrufe - %1$s Aufruf - %1$s Aufrufe - %1$s Aufrufe - %1$s Aufrufe - %1$s Aufrufe - %1$sx geteilt - %1$sx geteilt - %1$sx geteilt - %1$sx geteilt - %1$sx geteilt - %1$sx geteilt - %1$sx öffentlich geteilt - %1$sx öffentlich geteilt - %1$sx öffentlich geteilt - %1$sx öffentlich geteilt - %1$sx öffentlich geteilt - %1$sx öffentlich geteilt - %1$s geteilt - %1$s geteilt - %1$s geteilt - %1$s geteilt - %1$s geteilt - %1$s geteilt - %1$s Sticker-Pakete - %1$s Sticket-Paket - %1$s Sticker-Pakete - %1$s Sticker-Pakete - %1$s Sticker-Pakete - %1$s Sticker-Pakete - - %1$d angehängte Nachrichten - Angehängte Nachricht - %1$d angehängte Nachrichten - %1$d angehängte Nachrichten - %1$d angehängte Nachrichten - %1$d angehängte Nachrichten - %1$d Bilder - %1$d Bild - %1$d Bilder - %1$d Bilder - %1$d Bilder - %1$d Bilder - %1$d Videos - %1$d Video - %1$d Videos - %1$d Videos - %1$d Videos - %1$d Videos - %1$d Dateien - %1$d Datei - %1$d Dateien - %1$d Dateien - %1$d Dateien - %1$d Dateien - %1$d Musikdateien - %1$d Musikdatei - %1$d Musikdateien - %1$d Musikdateien - %1$d Musikdateien - %1$d Musikdateien - %1$d gemeinsame Gruppen - %1$d gemeinsame Gruppe - %1$d gemeinsame Gruppen - %1$d gemeinsame Gruppen - %1$d gemeinsame Gruppen - %1$d gemeinsame Gruppen - %1$d Medien - %1$d Medium - %1$d Medien - %1$d Medien - %1$d Medien - %1$d Medien - %1$d Sprachnachrichten - %1$d Sprachnachricht - %1$d Sprachnachrichten - %1$d Sprachnachrichten - %1$d Sprachnachrichten - %1$d Sprachnachrichten - %1$d Links - %1$d Link - %1$d Links - %1$d Links - %1$d Links - %1$d Links - %1$d GIFs - %1$d GIF - %1$d GIFs - %1$d GIFs - %1$d GIFs - %1$d GIFs - %1$d blockierte Nutzer - %1$d blockierter Nutzer - %1$d blockierte Nutzer - %1$d blockierte Nutzer - %1$d blockierte Nutzer - %1$d blockierte Nutzer - %1$d angehängte Dateien - Angehängte Datei - %1$d angehängte Dateien - %1$d angehängte Dateien - %1$d angehängte Dateien - %1$d angehängte Dateien - %1$d angehängte Bilder - Angehängtes Bild - %1$d angehängte Bilder - %1$d angehängte Bilder - %1$d angehängte Bilder - %1$d angehängte Bilder - %1$d angehängte Videos - Angehängtes Video - %1$d angehängte Videos - %1$d angehängte Videos - %1$d angehängte Videos - %1$d angehängte Videos - %1$d angehängte Audiodateien - Angehängte Audiodatei - %1$d angehängte Audiodateien - %1$d angehängte Audiodateien - %1$d angehängte Audiodateien - %1$d angehängte Audiodateien - %1$d weitergeleitete Sprachnachrichten - Weitergeleitete Sprachnachricht - %1$d weitergeleitete Sprachnachrichten - %1$d weitergeleitete Sprachnachrichten - %1$d weitergeleitete Sprachnachrichten - %1$d weitergeleitete Sprachnachrichten - %1$d angehängte Videonachrichten - Videonachrichtenanhang - %1$d angehängte Videonachrichten - %1$d angehängte Videonachrichten - %1$d angehängte Videonachrichten - %1$d angehängte Videonachrichten - %1$d angehängte Standorte - Angehängter Standort - %1$d angehängte Standorte - %1$d angehängte Standorte - %1$d angehängte Standorte - %1$d angehängte Standorte - %1$d angehängte Kontakte - Angehängter Kontakt - %1$d angehängte Kontakte - %1$d angehängte Kontakte - %1$d angehängte Kontakte - %1$d angehängte Kontakte - %1$d angehängte Sticker - Angehängter Sticker - %1$d angehängte Sticker - %1$d angehängte Sticker - %1$d angehängte Sticker - %1$d angehängte Sticker - %1$d angehängte Umfragen - Angehängte Umfrage - %1$d angehängte Umfragen - %1$d angehängte Umfragen - %1$d angehängte Umfragen - %1$d angehängte Umfragen - und %1$d andere - und %1$d anderer - und %1$d andere - und %1$d andere - und %1$d andere - und %1$d andere - %1$d Bilder ausgewählt - %1$d Bild ausgewählt - %1$d Bilder ausgewählt - %1$d Bilder ausgewählt - %1$d Bilder ausgewählt - %1$d Bilder ausgewählt - %1$d Videos ausgewählt - %1$d Video ausgewählt - %1$d Videos ausgewählt - %1$d Videos ausgewählt - %1$d Videos ausgewählt - %1$d Videos ausgewählt - %1$d Medien ausgewählt - %1$d Medium ausgewählt - %1$d Medien ausgewählt - %1$d Medien ausgewählt - %1$d Medien ausgewählt - %1$d Medien ausgewählt - %1$d Leute benutzen dieses Thema - %1$d Person benutzt dieses Thema - %1$d Leute benutzen dieses Thema - %1$d Leute benutzen dieses Thema - %1$d Leute benutzen dieses Thema - %1$d Leute benutzen dieses Thema - %1$d von %2$d Ergebnissen - %1$d von %2$d Ergebnissen - %1$d von %2$d Ergebnissen - %1$d von %2$d Ergebnissen - %1$d von %2$d Ergebnissen - %1$d von %2$d Ergebnissen - %1$d Nutzer - %1$d Nutzer - %1$d Nutzer - %1$d Nutzer - %1$d Nutzer - %1$d Nutzer - %1$d Nutzer - %1$d Nutzer - %1$d Nutzer - %1$d Nutzer - %1$d Nutzer - %1$d Nutzer - %1$d von %2$d ausgewählt - %1$d von %2$d ausgewählt - %1$d von %2$d ausgewählt - %1$d von %2$d ausgewählt - %1$d von %2$d ausgewählt - %1$d von %2$d ausgewählt - %1$d Antworten anzeigen - %1$d Antwort anzeigen - %1$d Antworten anzeigen - %1$d Antworten anzeigen - %1$d Antworten anzeigen - %1$d Antworten anzeigen - %1$d Antworten - %1$d Antwort - %1$d Antworten - %1$d Antworten - %1$d Antworten - %1$d Antworten - %1$d Kommentare - %1$d Kommentar - %1$d Kommentare - %1$d Kommentare - %1$d Kommentare - %1$d Kommentare - %1$d Kommentare - %1$d Kommentar - %1$d Kommentare - %1$d Kommentare - %1$d Kommentare - %1$d Kommentare - Kommentare - Kommentar - Kommentare - Kommentare - Kommentare - Kommentare - %1$d angeheftete Nachrichten - Angeheftete Nachricht - %1$d angeheftete Nachrichten - %1$d angeheftete Nachrichten - %1$d angeheftete Nachrichten - %1$d angeheftete Nachrichten - %s Leute können über den Link beitreten - %s Person kann über den Link beitreten - %s Leute können über den Link beitreten - %s Leute können über den Link beitreten - %s Leute können über den Link beitreten - %s Leute können über den Link beitreten - %1$d Chats angeheftet - Chat angeheftet - %1$d Chats angeheftet - %1$d Chats angeheftet - %1$d Chats angeheftet - %1$d Chats angeheftet - %1$d Chats losgelöst - Chat losgelöst - %1$d Chats losgelöst - %1$d Chats losgelöst - %1$d Chats losgelöst - %1$d Chats losgelöst - - Gruppe - Kanal - Geheimer Chat - Gesendet %s - Empfangen %s - Geplant am %s - Zurückgehen - Navigationsmenü öffnen - Menü öffnen - Menü schliessen - Im Bildbetrachter öffnen - %2$s von %1$s - Weitere Optionen - Zum Nachtfarbthema wechseln - Zum Tagfarbthema wechseln - Abspielen - Pause - Download - Download abbrechen - Datei öffnen - Nachrichtenoptionen - Auswahlmodus aufrufen - Emoji, Sticker und GIFs - Medien anhängen - Ohne Benachrichtigung senden - Benachrichtigungen senden - Bot-Befehle - Bot-Tastatur - Tastatur anzeigen - Sprachnachricht aufnehmen - Videonachricht aufnehmen - Chat öffnen - Profilbild - Profilbild ändern - Sortierung ändern - Konten zeigen - Konten verstecken - Zur Nachricht wechseln - Antwort abbrechen - Weiterleitung abbrechen - Bearbeitung abbrechen - Antworten auf - Weitergeleitet von - Bearbeitung - App sperren - App freigeben - Rücktaste - Vorherige - Nicht mehr wiederholen - Playlist wiederholen - 1x wiederholen - Audioplayer schliessen - Doppelte Wiedergabegeschwindigkeit - Live Standort nicht mehr teilen - Sofortkamera - Verschluss - Kamera wechseln - Blitz, ausgeschaltet - Blitz, automatisch - Blitz, eingeschaltet - Sticker-Paket - GIFs - Sticker - Panel erweitern - Panel einklappen - Benutzeroptionen - Drehen - Spiegeln - Bildbearbeitung - Anpassungen - Bildbetrachter - Zum Ende wechseln - Gehe zur nächsten Erwähnung - Mikrofon stumm schalten - Titel - Überschrift - Mein Standort - Benachrichtigen, wenn Leute, die ihren Standort teilen, in der Nähe sind - Videoqualität - Seitenverhältnis - Nimm ein weiteres Bild auf - Gesehen - Noch nicht gesehen - Senden - Sendefehler - Noch nicht abgespielt - Nächstes Suchergebnis - Vorheriges Suchergebnis - Nach Nutzern filtern - Bild aufnehmen - Video aufnehmen - Runterwischen für Archiv - Loslassen für Archiv - Kleinere Größe - Höhere Qualität - %1$s von %2$s - %1$s von %2$s heruntergeladen - %1$s von %2$s hochgeladen - %1$dx angezeigt - %1$dx angezeigt - %1$dx angezeigt - %1$dx angezeigt - %1$dx angezeigt - %1$d Bild senden - %1$d Bilder senden - %1$d Bilder senden - %1$d Bilder senden - %1$d Bilder senden - %1$d Datei senden - %1$d Dateien senden - %1$d Dateien senden - %1$d Dateien senden - %1$d Dateien senden - %1$d Audio senden - %1$d Audios senden - %1$d Audios senden - %1$d Audios senden - %1$d Audios senden - In %1$d Chat teilen - In %1$d Chats teilen - In %1$d Chats teilen - In %1$d Chats teilen - In %1$d Chats teilen - Richtige Antwort - Erklärung - Bild-in-Bild-Modus - Mikrofon ist an - Mikrofon ist aus - Zur vorderen Kamera gewechselt - Zur hinteren Kamera gewechselt - Kamera ist an - Kamera ist aus - Liste angehefteter Nachrichten - Zum Vollbildmodus wechseln - Vollbildmodus verlassen + dd. MMMM yyyy + dd. MMM yyyy + dd MMMM + dd. MMMM yyyy MMMM yyyy dd. MMM yyyy, h:mm a dd. MMM yyyy, HH:mm dd MMM yyyy, h:mm a - dd MMM yyyy, HH:mm + dd. MMM yyyy, HH:mm dd. MMM yyyy, h:mm a dd MMM, HH:mm - LLLL yyyy - LLLL dd MMM dd.MM.yy dd.MM.yyyy d\'.\' MMMM - d MMMM, yyyy + d\'.\' MMMM yyyy EEE EEEE HH:mm @@ -4468,7 +1363,7 @@ d MMM yyyy \'Heute um\' HH:mm \'senden\' \'Am\' d MMM \'um\' HH:mm \'senden\' - \'Am\' d MMM yyyy \'um\' HH:mm \'senden\' + \'Am\' d\'.\' MMM yyyy \'um\' HH:mm \'senden\' \'Startet heute um\' HH:mm \'Uhr\' \'Am\' d\'.\' MMM \'um\' HH:mm \'Uhr starten\' \'Startet am\' d\'.\' MMM yyyy \'um\' HH:mm \'Uhr\' @@ -4480,6 +1375,5 @@ d\'.\' MMM yyyy\',\' HH:mm \'Uhr\' \'Heute um\' HH:mm \'erinnern\' \'Am\' d MMM \'um\' HH:mm \'erinnern\' - \'Am\' d MMM yyyy \'um\' HH:mm \'erinnern\' - Menu - + \'Am\' d\'.\' MMM yyyy \'um\' HH:mm \'erinnern\' + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/values-es-rES/strings_na.xml b/TMessagesProj/src/main/res/values-es-rES/strings_na.xml index c6de4f0322..1494c303fa 100644 --- a/TMessagesProj/src/main/res/values-es-rES/strings_na.xml +++ b/TMessagesProj/src/main/res/values-es-rES/strings_na.xml @@ -90,7 +90,7 @@ Ninguna Decoración del chat Necesitas cambiar las preferencias de na - No desarchivar con deslizado + No desarchivar al deslizar No compartir mi número de teléfono Menú de eliminación predeterminado Deshabilitar sugerencias sobre preferencias del perfil @@ -156,7 +156,7 @@ You can also use plain text, but don\'t forget to escape brackets. Error de sintaxis Regex Haga clic en la hora del mensaje para mostrar los detalles - Canal haga clic en Hashtag por defecto página de búsqueda - Chatear Hashtag página de búsqueda predeterminada + Búsqueda de Hashtags en Canal + Búsqueda de Hashtags en Chats Url regex para saltar de la vista web del bot diff --git a/TMessagesProj/src/main/res/values-es/strings.xml b/TMessagesProj/src/main/res/values-es/strings.xml index b846baa265..5368e842c0 100644 --- a/TMessagesProj/src/main/res/values-es/strings.xml +++ b/TMessagesProj/src/main/res/values-es/strings.xml @@ -9,7 +9,10 @@ Continuar en español Tu teléfono - Por favor, confirma el código de tu país y pon tu número de teléfono. + Por favor, confirma el código de tu\npaís y pon tu número de teléfono. + País + Tu número de teléfono + Número de teléfono Elige un país Código de país inválido La cuenta ya está iniciada en esta app. @@ -18,14 +21,24 @@ Los contactos de este dispositivo serán añadidos a esta cuenta. Los contactos de este dispositivo no serán añadidos a esta cuenta. Los contactos de este dispositivo serán añadidos a tu cuenta. - Activa esta opción para sincronizar continuamente los contactos de este dispositivo con tu cuenta. + Activa esta opción para mantener sincronizados los contactos de este dispositivo con tu cuenta. Los contactos de este dispositivo fueron añadidos a tu cuenta. + ¿El número está correcto? + Formato incorrecto + El número que nos diste es demasiado corto para **%1$s**:\n\n**%2$s**\n\nPon el número correcto incluyendo tu código de país. + Editar número + Si no recibiste el código por SMS o llamada, comprueba tus **ajustes de datos móviles** y número de teléfono:\n\n**%1$s**\n\nLas opciones restantes son probar con otro número o contactar al soporte de Telegram. Toca **Ayuda** para enviarnos los detalles técnicos y así poder identificar el problema. + Ayuda + Editar número Verificación Enviamos un SMS con un código de activación a tu teléfono **%1$s**. Enviamos el código a la app de **Telegram** en tu otro dispositivo. + Enviamos el código a la **app de Telegram** para %1$s en tu otro dispositivo. Revisa tus mensajes en Telegram + Obtén el código de %1$s en la sección Anonymous Numbers en Fragment. Pon el código + Abrir Fragment Estamos llamando al número **%1$s**.\n\nNo contestes. Telegram hará todo el proceso automáticamente. Llamando a tu número **%1$s** para dictar el código. Telegram te llamará en %1$d:%2$02d @@ -34,1175 +47,57 @@ Enviando SMS... Código ¿Número incorrecto? + Código incorrecto. Por favor, reinténtalo. ¿No recibiste el código? - Enviar el código como un SMS + Toca para recibir el código por SMS + Obtener un código por Fragment No restablecer la cuenta Alguien con acceso a **%1$s** solicitó eliminar tu cuenta de Telegram y restablecer tu contraseña de la verificación en dos pasos.\n\nSi no fuiste tú, por favor, escribe el código que enviamos por SMS. También puedes cancelar la solicitud *cambiando tu número de teléfono*. Restablecer la cuenta Como la cuenta **%1$s** está activa y protegida con una contraseña, la eliminaremos en 1 semana. Esta espera es necesaria por razones de seguridad.\n\nPuedes cancelar este proceso en cualquier momento. Podrás restablecer tu cuenta en: Tus intentos recientes de restablecer esta cuenta fueron cancelados por su usuario activo. Por favor, reinténtalo en 7 días. - RESTABLECER CUENTA El enlace no es válido o expiró. - El proceso de eliminación de la cuenta %1$s fue cancelado. Puedes cerrar esta ventana. + ¡Listo! + El proceso de eliminación de tu cuenta %1$s fue cancelado. Puedes cerrar esta ventana. Tu código de inicio de sesión es **%1$s**. Ponlo en la app de Telegram en la que estás intentando iniciar sesión.\n\nNo le des este código a nadie. + Puedes solicitar un SMS en %1$d:%2$02d + Puedes solicitar un nuevo SMS en %1$d:%2$02d + Recibir código por SMS + Puedes solicitar una llamada en %1$d:%2$02d + Llámame para dictar el código + Recibir el código por llamada + Código de país + Iniciar con Google Tu nombre Pon tu nombre y añade una foto de perfil. Nombre (requerido) + Nombre Apellidos (opcional) + Apellidos Cancelar registro - - Transferiste satisfactoriamente %1$s a %2$s por %3$s - Transferiste satisfactoriamente %1$s a %2$s - Caja - Formas de envío - Lo sentimos, pero no es posible hacer envíos a tu dirección. - Información de envío - Dirección de envío - Dirección 1 (calle) - Dirección 2 (calle) - Ciudad - Región/Provincia - País - Código postal - Destinatario - Nombre completo - Propina - Propina (opcional) - Número de teléfono - Correo electrónico - Guardar información de envío - Puedes guardar tus datos de envío para futuros usos. - Información de pago - Tarjeta de pago - Número de tarjeta - Código de seguridad (CVV) - MM/AA - Dirección de facturación - Nombre completo - Guardar información de pago - Puedes guardar tus datos de pago para futuros usos. Se almacenarán directamente en el proveedor de pagos. Telegram no tiene acceso a los datos de tu tarjeta de crédito. - Por favor, *activa la verificación en dos pasos* para activar esto. - Repaso de la transacción - ¿Transferir **%1$s** al bot %2$s por **%3$s**? - Total - FACTURA - FACTURA DE PRUEBA - PAGAR %1$s - Método de pago - Nueva tarjeta - Proveedor de pago - Nombre - Número de teléfono - Dirección de contacto - Forma de envío - Recibo - Elegir otra tarjeta - Tu tarjeta %1$s está archivada. Para pagar con esta tarjeta, pon tu contraseña de la verificación en dos pasos. - Lo sentimos, el pago fue cancelado por el bot. - Lo sentimos, el pago fue rechazado. - No es posible acceder al servidor de pago. Por favor, revisa tu conexión a internet y reinténtalo. - Advertencia - Ni Telegram, ni %1$s tendrán acceso a la información de tu tarjeta de crédito. Los datos de la tarjeta de crédito serán utilizados sólo por el sistema de pago, %2$s.\n\nLos pagos irán directamente al desarrollador de %1$s. Telegram no puede dar ninguna garantía, así que continúa bajo tu propio riesgo. Si tienes problemas, por favor, contacta al desarrollador de %1$s o a tu banco. - Contraseña y correo - Contraseña - Pon una contraseña - Repite tu contraseña - Por favor, crea una contraseña para proteger tu información de pago. Será requerida al iniciar sesión. - Correo de recuperación - Tu correo - Por favor, pon un correo válido. Es la única forma de recuperar una contraseña olvidada. - El teléfono será entregado a %1$s como información de facturación. - El correo será entregado a %1$s como información de facturación. - El teléfono y correo serán entregados a %1$s como información de facturación. - Pagaste **%1$s** por **%2$s**. - - Nuevo chat - Modo nocturno automático desactivado - Ajustes - Contactos - Nuevo grupo - ayer - Sin resultados - Bienvenido a Telegram - Vistos recientemente - OCULTAR - Envía mensajes tocando el botón del lápiz en la esquina inferior derecha. - Toca uno de tus contactos e inicia una conversación. - Esperando red... - Conectando... - Conectado - Ping: %1$d ms - Comprobando... - Disponible - No disponible - Conectando al proxy - Conectar proxy - Actualizando... - Nuevo chat secreto - Esperando a que %s se conecte... - Chat secreto cancelado - Intercambiando claves de cifrado... - %s se unió a tu chat secreto. - Te uniste al chat secreto. - Vaciar chat - Borrar historial - Vaciar chat - Activar autoeliminación - Se autoeliminará en %1$s - Autoeliminar mensajes en este chat - Autoeliminar mensajes - Elimina automáticamente después de un tiempo los mensajes nuevos enviados para ti y %1$s. - Elimina automáticamente después de un tiempo los mensajes nuevos enviados para los miembros de este grupo. - Elimina automáticamente después de un tiempo los mensajes nuevos enviados para los suscriptores de este canal. - Confirmar - 24 horas - 7 días - Elimina automáticamente después de un tiempo los mensajes nuevos enviados en este chat. - No - Establecer para este chat - Los mensajes en este chat se eliminan\nautomáticamente después de %1$s. - Los mensajes nuevos de este chat se eliminarán automáticamente en %1$s. - La autoeliminación ahora está desactivada. - Configurar autoeliminación - Temporizador de autoeliminación - Historial eliminado. - Silenciar - Activar - Chat eliminado - Grupo eliminado. - Canal eliminado. - Archivo fijado. - Deslízalo a la izquierda para ocultarlo. - Archivo oculto. - Desliza hacia abajo para ver el archivo. - Chat archivado. - Chats archivados. - Oculta el archivo deslizándolo a la izquierda. - DESHACER - Borrar de la caché - Eliminar y salir - Ocultar - Fijar - Fijar - Desfijar - Archivar - Archivo - Desarchivar - Chats archivados - Eliminar chat - Cuenta eliminada - Elige un chat - Elige los chats - Reenviar a... - Foto secreta - Video temporal - GIF secreto - %1$s usa una versión antigua de Telegram, así que las fotos secretas serán mostradas en un modo de compatibilidad.\n\nCuando %2$s actualice Telegram, las fotos con autodestrucción de 1 minuto o menos funcionarán con el modo “Mantén pulsado para ver”, y te notificaremos siempre que la otra parte haga una captura de pantalla. - Mensajes - Buscar - Silenciar - Silenciar %1$s - Activar notificaciones - En %1$s - Desactivar - HASHTAGS - Recientes - Personas - Eliminar sugerencia - ¿Quieres borrar a **%1$s** de las sugerencias? - ¿Eliminar a %1$s de las sugerencias? - Vista previa del enlace - Borrador - El historial fue eliminado - por %1$s - %1$s por %2$s - ¿Diseño incorrecto? - Enviar sticker - Enviar GIF - Ver pack - Fijar arriba - Sólo puedes fijar %1$s en la lista principal de chats. Puedes fijar más chats en las carpetas o en tu archivo. - No puedes fijar más chats en la parte superior. - Desfijar de arriba - Marcar como no leído - Marcar como leído - Marcar todo como leído - Ocultar encima de la lista - Fijar en la lista - Negrita - Cursiva - Monoespaciado - Tachado - Subrayar - Borrar formato - **Telegram** necesita acceso a tus contactos para que puedas comunicarte con tus amigos en todos tus dispositivos. Tus contactos se sincronizarán continuamente con los servidores en la nube fuertemente cifrados de Telegram. - AHORA NO - CONTINUAR - Tus contactos en Telegram - Este es tu Archivo - Los chats con notificaciones activas se\ndesarchivan al recibir mensajes nuevos. - Chats silenciados - Los chats silenciados se mantienen\narchivados al recibir mensajes nuevos. - Chats fijados - Puedes fijar un número ilimitado de\nchats archivados en la parte superior. - Mantén pulsado este botón para programar tu mensaje o enviarlo sin sonido. - ¿Ocultar nuevos chats? - Estás recibiendo muchos chats nuevos de usuarios que no están en tu lista de contactos. ¿Quieres **silenciar** y **archivar automáticamente** este tipo de chats? - IR A AJUSTES - Abrir perfil - Abrir canal - Abrir grupo - Enviar mensaje - Mencionar - Notificaciones silenciadas - Notificaciones silenciadas %1$s - Notificaciones activadas - %1$d mensajes eliminados - Mensaje eliminado - %1$d mensajes eliminados - %1$d mensajes eliminados - %1$d mensajes eliminados - %1$d mensajes eliminados - Sin resultados - Sin resultados - Intenta una nueva búsqueda. - La música de todos tus chats aparecerá aquí. - Los archivos de todos tus chats aparecerán aquí. - Los enlaces de todos tus chats aparecerán aquí. - Los mensajes de voz de todos tus chats aparecerán aquí. - La multimedia de todos tus chats aparecerá aquí. - Chats - Mensaje fijado - Mensaje desfijado - Toca el lápiz para iniciar un nuevo chat - Crear un nuevo grupo para importar - Importar mensajes - Error de importación - Formato del archivo inválido. - No se pudo importar el historial al chat seleccionado. - Idioma del archivo desconocido. - Debes ser un administrador del grupo para importar mensajes. - El formato del archivo es para un grupo, pero seleccionaste un usuario. - El formato del archivo es para un usuario, pero seleccionaste un grupo. - No se pueden importar los mensajes debido a los ajustes de privacidad. - IMPORTAR - ¿Quieres importar los mensajes desde **%1$s** al chat con **%2$s**?\n\nLos mensajes serán importados en el día actual pero también incluirán su fecha original. Ambos verán los mensajes. - ¿Quieres importar los mensajes al chat con **%1$s**?\n\nLos mensajes serán importados en el día actual pero también incluirán su fecha original. Ambos verán los mensajes. - ¿Quieres importar los mensajes desde **%1$s** al grupo **%2$s**?\n\nLos mensajes serán importados en el día actual pero también incluirán su fecha original. Todos los miembros verán los mensajes. - ¿Quieres importar los mensajes al grupo **%1$s**?\n\nLos mensajes serán importados en el día actual pero también incluirán su fecha original. Todos los miembros verán los mensajes. - Sólo puedes importar mensajes en chats privados con usuarios con los que son contactos mutuos. - Debes ser un administrador del grupo para importar mensajes. - Este mensaje fue importado desde otra app. No podemos garantizar que sea real. - Importando mensajes y multimedia… **%d%%** - Importando chat - Mantén Telegram abierto\nhasta completar la importación. - %1$s de %2$s - Listo - ¡Chat importado satisfactoriamente! - Libera espacio en tu dispositivo importando más chats a Telegram. - Importando mensajes y multimedia… - Importando stickers... - Importar mensajes y multimedia a… - O elige uno de tus contactos + Información de perfil Editar widget Muestra atajos a tus chats más importantes para un acceso rápido.\n\nSi no se selecciona a nadie, en este widget se mostrarán tus contactos más frecuentes. Muestra el último mensaje de los chats que elijas.\n\nSi no hay chats específicos seleccionados, en este widget se mostrarán tus chats más recientes. - Advertencia: Tu código de bloqueo será **ignorado** por los widgets. - Tu código de bloqueo **no afectará** a los widgets añadidos a la pantalla de inicio. - Buscar chats... + Advertencia: Tus widgets mostrarán todos tus mensajes recientes, pero se requerirá tu código para abrir la app y responder. + Busca chats... Vista previa del widget toca para editar el widget toca para editar Chats Atajos La cuenta ha sido desconectada. - - Promover a administrador - Editar privilegios del admin. - Sin usuarios expulsados - Eliminar grupo - Salir del grupo - Eliminar grupo - Perderás todos los mensajes en este grupo. - Puedes añadir administradores para que te ayuden en el grupo. Mantén pulsado para eliminarlos. - ¡Espera! Al eliminar este grupo, todos los miembros y mensajes se perderán. ¿Quieres eliminarlo de todos modos? - Eliminar el grupo para todos - Eliminar para todos los suscriptores - Grupo creado - un1 te añadió a este grupo - ¿Quieres salir del grupo? - ¿Quieres salir de **%1$s**? - Lo sentimos, no puedes añadir a este usuario a grupos. - Lo sentimos, el grupo está lleno. - Si una persona ya no forma parte de un grupo, necesitas estar dentro de sus contactos de Telegram para añadirla nuevamente.\n\nTen en cuenta que puede unirse usando el enlace de invitación del grupo si no está en la lista de usuarios expulsados. - Hay demasiados administradores en el grupo. - El usuario objetivo tiene demasiados grupos o canales públicos. Por favor, pídele que haga privado uno de sus grupos o canales existentes primero. - El usuario objetivo tiene demasiados grupos por ubicación. Por favor, pídele eliminar o transferir uno de los existentes primero. - Lo sentimos, tienes demasiados grupos por ubicación. Por favor, elimina uno de los existentes primero. - Hay demasiados bots en este grupo. - un1 fijó “%1$s” - un1 fijó un mensaje - un1 fijó una encuesta - un1 fijó un cuestionario - un1 fijó una foto - un1 fijó un video - un1 fijó un archivo - un1 fijó un sticker - un1 fijó un mensaje de voz - un1 fijó un videomensaje - un1 fijó un contacto - un1 fijó %1$s - un1 fijó un mapa - un1 fijó una ubicación en tiempo real - un1 fijó un GIF - un1 fijó un audio - Este grupo fue convertido en un supergrupo - %1$s fue convertido en un supergrupo - Los usuarios que fueron expulsados del grupo por los administradores no pueden volver a unirse con enlaces de invitación. - Los usuarios que fueron eliminados del canal por los administradores no pueden volver a unirse con enlaces de invitación. - Nuevo canal - Nombre del canal - Añadir personas a tu canal - Si estableces un enlace permanente, otras personas podrán encontrar tu canal y unirse a él.\n\nPuedes usar a-z, 0-9 y guiones bajos.\nLa longitud mínima es de 5 caracteres. - Si estableces un enlace público, otras personas podrán encontrar tu grupo y unirse a él.\n\nPuedes usar a-z, 0-9 y guiones bajos.\nLa longitud mínima es de 5 caracteres. - Advertencia - Enlace - Las personas pueden unirse a tu canal siguiendo este enlace. Puedes anular el enlace en cualquier momento. - Las personas pueden unirse a tu grupo siguiendo este enlace. Puedes anular el enlace en cualquier momento. - Descripción (opcional) - Descripción - Puedes poner una descripción para tu canal. - Cambiaste algunos ajustes en este grupo. ¿Aplicar cambios? - Cambiaste algunos ajustes en este canal. ¿Aplicar cambios? - Canal público - Grupo público - Grupo por ubicación - Cualquiera puede unirse a canales públicos tras encontrarlos en la búsqueda. - Cualquiera puede unirse a grupos públicos tras encontrarlos en la búsqueda. Su historial está disponible para todos. - Canal privado - Grupo privado - Sólo se puede entrar a canales privados a través de un enlace de invitación. - Sólo se puede entrar a grupos privados si te añaden o si tienes un enlace de invitación. - Enlace público - Enlace de invitación - Añadir miembros - Añadir suscriptores - Salir del canal - Salir del canal - Ajustes - UNIRME - Difusión - Difusión silenciada - ¿Qué es un canal? - Los canales son una herramienta de uno a muchos para difundir tus mensajes a grandes audiencias. - Crear canal - Lo sentimos, este nombre ya está ocupado. - Lo sentimos, este nombre no es válido. - El nombre del canal debe tener al menos 5 caracteres. - El nombre no debe exceder los 32 caracteres. - El nombre del canal no puede comenzar con un número. - El nombre del grupo debe tener al menos 5 caracteres. - El nombre del grupo no puede comenzar con un número. - Verificando nombre... - %1$s está disponible. - Miembros - Añadir al grupo - Añadir al canal - Eliminar de esta lista - Suscriptores - Usuarios expulsados - Permisos - ¿Qué pueden hacer los miembros? - Añadir excepción - Buscar excepciones - Usuarios expulsados - Contactos en este canal - Contactos en este grupo - Tus contactos - Bots - Otros miembros - Otros suscriptores - se unió el %1$s - Usuarios restringidos - Administradores - Eliminar canal - Eliminar canal - ¡Espera! Al eliminar este canal, todos los suscriptores y mensajes se perderán. ¿Quieres eliminarlo de todos modos? - ¿Quieres salir de este canal? - ¿Quieres salir de **%1$s**? - Perderás todos los mensajes en este canal. - Editar - Elige un enlace - Por favor, elige un enlace para tu canal público para que las personas puedan encontrarlo en la búsqueda y compartirlo con otros.\n\nSi no te interesa, te sugerimos crear un canal privado. - Canal creado - Foto del canal cambiada - Video del canal cambiado - Foto del canal eliminada - Nombre del canal cambiado a un2 - Tienes demasiados enlaces públicos. Puedes anular el enlace de uno de tus grupos o canales anteriores, o crear uno privado. - Propietario - Administrador - Administrador - SILENCIAR - ACTIVAR NOTIFICACIONES - Añadir administrador - Expulsar usuario - Quitar expulsión - Mantén pulsado sobre un usuario para quitar su expulsión. - Invitar con un enlace - Eliminar administrador - Editar permisos - Sólo los administradores del canal pueden ver esta lista. - Cualquiera que tenga instalado Telegram podrá unirse a tu canal siguiendo este enlace. - Puedes añadir administradores para que te ayuden en el canal. Mantén pulsado para eliminarlos. - ¿Quieres unirte al canal “%1$s”? - Lo sentimos, este chat ya no es accesible. - No puedes acceder a este chat porque fuiste expulsado por un administrador. - Lamentablemente, tienes prohibido participar en grupos públicos. - Lo sentimos, este chat ya no es accesible. - ¿Añadir a %1$s al canal? - Si una persona ya no forma parte de un canal, necesitas estar dentro de sus contactos de Telegram para añadirla nuevamente.\n\nTen en cuenta que puede unirse usando el enlace de invitación del canal si no está en la lista de usuarios expulsados. - Lo sentimos, no puedes añadir a este usuario a canales. - Hay demasiados administradores en el canal. - Hay demasiados bots en este canal. - Lo sentimos, sólo puedes añadir a los primeros 200 suscriptores a un canal. Sin embargo, una cantidad ilimitada de personas pueden unirse usando el enlace de invitación del canal. - Demasiadas comunidades - Eres miembro de demasiados grupos y canales. Por favor, sal de algunos antes de crear uno nuevo. - Eres miembro de demasiados grupos y canales. Por favor, sal de algunos antes de unirte. - un1 te añadió a este canal - Te uniste a este canal - Te uniste a este grupo - Eliminar del canal - Lo sentimos, no puedes enviar mensajes en este canal. - %1$s te añadió al canal %2$s - El canal %1$s cambió su foto - El canal %1$s cambió su video - %1$s publicó un mensaje - %1$s publicó una foto - %1$s publicó un video - %1$s publicó un contacto %2$s - %1$s publicó la encuesta %2$s - %1$s publicó el cuestionario “%2$s” - %1$s publicó una ubicación - %1$s publicó una ubicación en tiempo real - %1$s publicó un archivo - %1$s publicó un GIF - %1$s publicó %2$s - %1$s publicó un álbum - %1$s publicó un mensaje de voz - %1$s publicó un videomensaje - %1$s publicó un audio - %1$s publicó un sticker - %1$s publicó un %2$s sticker - ¿Quién puede añadir miembros? - Todos - Administradores - Tu post será notificado - Tu post no será notificado - Firmar los mensajes - Añade los nombres de los administradores a sus posts. - Privilegios del admin. - Título personalizado - Un título personalizado se mostrará a todos los miembros en lugar de “%1$s”. - ¿Qué puede hacer este administrador? - Editar info. del canal - Editar info. del grupo - Publicar mensajes - Editar mensajes de otros - Eliminar mensajes de otros - Eliminar mensajes - Añadir administradores - Ser anónimo - Eliminar administrador - Transferir propiedad del grupo - Transferir propiedad del canal - Comprobación de seguridad - Puedes transferir este grupo a **%1$s** sólo si: - Puedes transferir este canal a **%1$s** sólo si: - Activaste la **verificación en dos pasos** hace más de **7 días**. - Iniciaste sesión en este dispositivo hace más de **24 horas**. - Por favor, regresa más tarde. - Crear contraseña - Esto transferirá todos los **derechos de propietario** de **%1$s** a **%2$s**. - Cambiar propietario - **%1$s** ahora es el propietario del grupo. - **%1$s** ahora es el propietario del canal. - Expulsar usuarios - Añadir usuarios - Invitar con un enlace - Fijar mensajes - Promovido por %1$s - No puedes editar los privilegios de este administrador. - No puedes editar este permiso. - Este permiso no está disponible en grupos públicos. - Eliminado por %1$s - Permisos del usuario - Esta opción está desactivada para todos los miembros en Permisos de grupo - ¿Qué puede hacer este usuario? - Leer mensajes - Enviar mensajes - Enviar multimedia - Enviar encuestas - Enviar stickers y GIF - Incrustar enlaces - Editar info. del chat - Fijar mensajes - Añadir usuarios - no puede leer - no puede enviar mensajes - sin multimedia - sin encuestas - sin stickers y GIF - sin links incrustados - no puede cambiar la info. - sin fijar - no puede añadir usuarios - Duración - Para siempre - Expulsar y eliminar del grupo - ¿Aplicar cambios? - Cambiaste los permisos de este usuario en **%1$s**. ¿Aplicar cambios? - Personalizada - Gestionar grupo - Gestionar canal - Gestionar grupo - Gestionar canal - Historial para nuevos miembros - Poner nueva foto - Poner foto o video - Visible - Los nuevos miembros verán mensajes que fueron enviados antes de unirse. - Oculto - Los nuevos miembros no verán mensajes anteriores. - Los nuevos miembros no verán más de 100 mensajes anteriores. - Unirme al canal - Unirme al grupo - Tipo de grupo - Tipo de canal - Tipo de grupo - Tipo de canal - Ajustes del grupo - Ajustes del canal - Privado - Público - Privado - Público - Enlace - Toca para añadir un enlace permanente - Elegir foto - Elige una foto o video - Poner nueva foto - Tomar foto - Grabar video - Subir desde Galería - Elegir desde Galería - Buscar en la web - Estadísticas - Los bots sólo pueden ser añadidos como administradores. - Los bots sólo pueden ser añadidos a canales como administradores. - PROMOVER A ADMINISTRADOR - %1$s se eliminará de los administradores si le aplicas restricciones. - Conversación - Ver conversación - Añade un grupo para comentar - Canal vinculado - Elige el grupo que alojará los comentarios de tu canal. - Todo lo que publiques en el canal será reenviado a este grupo. - **%1$s** está seleccionado como el grupo que aloja los comentarios de tu canal. - Este chat está vinculado como grupo de conversación de **%1$s**. - Todo lo que publiques en este canal será reenviado a este grupo. - Crear un nuevo grupo - Desvincular grupo - Desvincular canal - Desvincular - VINCULAR GRUPO - ¿Quieres convertir a **%1$s** en el grupo de conversación de **%2$s**? - ¿Quieres convertir a **%1$s** en el grupo de conversación de **%2$s**?\n\nCualquier miembro de este grupo podrá ver los mensajes del canal. - ¿Quieres convertir a **%1$s** en el grupo de conversación de **%2$s**?\n\nCualquier suscriptor de este canal podrá ver los mensajes del grupo. - El “historial para nuevos miembros” cambiará a “visible”. - ¿Quieres desvincular a **%1$s** de este grupo? - ¿Quieres desvincular a **%1$s** de este canal? - CONVERSAR - canal - Modo lento - No - %1$ds - %1$dm - %1$dh - Elige el tiempo que cada miembro debe esperar antes de enviar su siguiente mensaje. - Los miembros podrán enviar sólo un mensaje cada %1$s. - El modo lento está activo. No puedes enviar más de un mensaje a la vez. - El modo lento está activo. No puedes seleccionar más ítems. - Lo sentimos, este texto es muy largo para ser enviado en un mensaje.\n\nEl modo lento está activo. No puedes enviar más de un mensaje a la vez. - **%1$s** promovido a administrador - **%1$s** fue eliminado de **%2$s** - - Nueva encuesta - Nuevo cuestionario - Encuesta - Pregunta de la encuesta - Haz una pregunta - Opciones de respuesta - Respuestas del cuestionario - Resultados de la encuesta - Voto anónimo - Cuestionario - Elige una opción primero - Contraer - Expandir - Lo sentimos, las encuestas con voto visible no se pueden reenviar a canales. - Lo sentimos, las facturas no pueden ser reenviadas a chats secretos. - Lo sentimos, las encuestas no se pueden reenviar a chats secretos. - Lo sentimos, los juegos no pueden ser enviados a chats secretos. - Lo sentimos, las facturas no pueden ser enviadas a chats secretos. - Respuesta múltiple - Toca para elegir la respuesta correcta - Un cuestionario tiene sólo una respuesta correcta. Los usuarios no pueden anular sus respuestas. - Añadir una opción… - Puedes añadir %1$s. - Has añadido el número máximo de opciones. - Encuesta anónima - ¡Respuesta equivocada! - No elegiste la opción correcta. - ¡Bien hecho! - Elegiste la respuesta correcta. - Encuesta - Cuestionario - VOTAR - VER RESULTADOS - Cuestionario anónimo - Detener encuesta - ¿Detener encuesta? - Si detienes esta encuesta ahora, nadie más podrá votar. Esta acción no se puede deshacer. - Detener cuestionario - ¿Detener cuestionario? - Si detienes este cuestionario ahora, nadie podrá enviar respuestas. Esta acción no se puede deshacer. - ¿Descartar encuesta? - ¿Quieres descartar esta encuesta? - Retractar voto - Resultados finales - Sin votos - Aún no hay respuestas - %1$d votos - %1$d voto - %1$d votos - %1$d votos - %1$d votos - %1$d votos - %1$d respuestas - %1$d respuesta - %1$d respuestas - %1$d respuestas - %1$d respuestas - %1$d respuestas - Mostrar más (%1$d) - Mostrar más (%1$d) - Mostrar más (%1$d) - Mostrar más (%1$d) - Mostrar más (%1$d) - Mostrar más (%1$d) - %1$d opciones más - %1$d opción más - %1$d opciones más - %1$d opciones más - %1$d opciones más - %1$d opciones más - Opción - - Acciones recientes - Todas las acciones - acciones elegidas - Todos los administradores - **Aún sin acciones**\n\nLos administradores del grupo\nno han realizado acciones de servicio\nen las últimas 48 horas. - **Aún sin acciones**\n\nLos administradores del canal\nno han realizado acciones de servicio\nen las últimas 48 horas. - **No se encontraron acciones**\n\nNo se encontraron acciones recientes\nque coincidan con tu consulta. - No se encontraron acciones recientes que contengan “**%1$s**”. - ¿Qué son las acciones recientes? - Esta es una lista de acciones importantes realizadas por los miembros y administradores en las últimas 48 horas. - Esta es una lista de las acciones de servicio realizadas por los administradores del canal en las últimas 48 horas. - un1 renombró el grupo a “%1$s” - un1 renombró el canal a “%1$s” - un1 salió del grupo - un1 salió del canal - un1 añadió a un2 - un1 se unió al grupo - expulsó a %1$s - quitó la expulsión a %1$s - un1 se unió al canal - un1 puso una nueva foto del grupo - un1 puso una nueva foto del canal - un1 puso un nuevo video del grupo - un1 puso un nuevo video del canal - un1 eliminó la foto del grupo - un1 eliminó la foto del canal - un1 editó este mensaje: - un1 editó un comentario: - un1 editó un archivo multimedia: - un1 editó un archivo multimedia y comentario: - Mensaje original - Comentario original - Vacío - un1 fijó este mensaje: - un1 desfijó un mensaje - un1 detuvo la encuesta: - un1 detuvo el cuestionario: - un1 eliminó este mensaje: - un1 cambió la ubicación del grupo a “%1$s” - un1 eliminó la ubicación del grupo - transfirió la propiedad a %1$s - un1 cambió el pack de stickers de grupo - un1 eliminó el pack de stickers de grupo - un1 convirtió a un2 en el grupo de conversación para este canal - un1 eliminó el grupo de conversación un2 - un1 vinculó este grupo a un2 - un1 desvinculó este grupo de un2 - un1 cambió el enlace del grupo: - un1 cambió el enlace del canal: - un1 eliminó el enlace del grupo - un1 eliminó el enlace del canal - Enlace anterior - un1 cambió la descripción del grupo: - un1 cambió la descripción del canal: - Descripción anterior - un1 dejó visible el historial para nuevos miembros - un1 ocultó el historial para nuevos miembros - un1 activó las invitaciones - un1 desactivó las invitaciones - un1 activó las firmas - un1 desactivó las firmas - cambió los permisos para %1$s\n\nDuración: %2$s - cambió los permisos por defecto - Enviar stickers y GIF - Enviar multimedia - Editar info. - Añadir usuarios - Fijar mensajes - Enviar encuestas - Enviar mensajes - Incrustar enlaces - Leer mensajes - cambió los privilegios de %1$s - promovió a %1$s - Editar info. del canal - Editar info. del grupo - Publicar mensajes - Editar mensajes - Eliminar mensajes - Añadir administradores - Ser anónimo - Expulsar usuarios - Gestionar chats de voz - Añadir usuarios - Título: %1$s - Título - Fijar mensajes - Todas las acciones - Nuevas excepciones - Privilegios de administrador - Nuevos miembros - Info. del grupo - Info. del canal - Mensajes eliminados - Mensajes editados - Mensajes fijados - Miembros que salieron - Chats de voz - Enlaces de invitación - un1 estableció el modo lento a %1$s - un1 desactivó el modo lento - un1 inició un chat de voz - un1 finalizó el chat de voz - un1 silenció a un2 en un chat de voz - un1 permitió hablar a un2 en un chat de voz - un1 permitió hablar a los nuevos participantes del chat de voz - un1 silenció a los nuevos participantes del chat de voz - - Nueva difusión - Nombre de la lista - Creaste una lista de difusión - Añadir destinatario - Eliminar de la lista de difusión - - Sin archivos de audio - Tu carpeta de música está vacía. - No se encontraron resultados - No hay coincidencias con **%1$s** en tu carpeta de música. - No hay coincidencias para **%1$s**. - Música - Artista desconocido - Título desconocido - Repetir pista - Repetir lista - Lista aleatoria - Invertir orden - - Elige un archivo - Buscar archivos recientes - %1$s de %2$s libres - Error desconocido - Error de acceso - El archivo no debe superar los %1$s - Almacenamiento no montado - Transferencia USB activa - Almacenamiento interno - Almacenamiento externo - Raíz del sistema - Tarjeta SD - Carpeta - Archivos recientes - Archivos (de la A a la Z) - No se encontraron resultados - No hay coincidencias con **%1$s** en el directorio actual. - Esta carpeta está vacía. - Envía imágenes sin compresión - Envía archivos de música - Explora la carpeta de la app - Explora tu sistema de archivos - Explora tu almacenamiento externo - Buscar música - - Stickers de grupo - Elige desde tus stickers - Puedes elegir un pack para que los miembros del grupo lo utilicen en él. - ELIGE UN PACK DE STICKERS - stickerset - Puedes crear tus packs de stickers personalizados usando el bot @stickers. - No se encontró el pack de stickers - Reinténtalo o elige uno de la lista de abajo - - invisible - soporte - escribiendo... - está escribiendo... - están escribiendo... - %1$s está escribiendo... - %1$s están escribiendo... - %1$s está grabando un audio - %1$s está grabando un video - %1$s está enviando un audio... - %1$s está enviando una foto... - VISTA RÁPIDA - VER GRUPO - VER FONDO - VER TEMA - VER CANAL - VER MENSAJE - El tema oscuro se usará automáticamente en la noche - Referencia - %1$s está jugando... - %1$s está enviando un video... - %1$s está enviando un archivo... - grabando un mensaje de voz... - grabando un videomensaje... - enviando audio... - enviando una foto... - jugando... - enviando un video... - enviando un archivo... - ¿Tienes preguntas\nsobre Telegram? - Galería - Ubicación - Video - Archivo - Cámara - Aún no hay mensajes... - Aún no hay mensajes programados… - Mensaje reenviado - De: - De: %1$s - de: - No hay recientes - Mensaje - Mensaje - Programar mensaje - COMPARTIR MI NÚMERO DE TELÉFONO - Compartir mi número - Añadir a Contactos - %s te invitó a un chat secreto. - Invitaste a %s a un chat secreto. - Los chats secretos: - Usan cifrado end-to-end - No dejan rastro en el servidor - Tienen autodestrucción de mensajes - Impiden reenviar mensajes - fuiste eliminado - Saliste de este grupo - Eliminar este grupo - Eliminar este chat - Eliminar este chat para ambos - Eliminar chats - DESLIZA PARA CANCELAR - Guardar en descargas - Guardar GIF - ¿Quieres eliminar el GIF de esta sección? - Guardar en música - Compartir - Aplicar traducción - Aplicar tema - Adjunto no compatible - Configurar autodestrucción - notificaciones de servicio - Obteniendo información... - ABRIR EN... - Abrir en... - Enviar %1$s - Subir %1$s - Como archivo - Como archivos - Abrir enlace - ¿Quieres abrir %1$s? - Iniciar sesión en %1$s como **%2$s** - Permitir que **%1$s** me envíe mensajes - Cancelar envío - ¿Permites a %1$s entregar tu nombre e id de Telegram (no tu número de teléfono) a los sitios web que abres a través de este bot? - ¿NO RELACIONADO CON LA UBICACIÓN? - Reportar grupo no relacionado - Por favor, dinos si este grupo no está relacionado con esta ubicación:\n\n**%1$s** - Por favor, dinos si este grupo no está relacionado con esta ubicación. - REPORTAR SPAM - Reportar spam - Bloquear a %1$s - BLOQUEAR - REPORTAR SPAM Y SALIR - AÑADIR CONTACTO - AÑADIR A %1$s A CONTACTOS - VER CONTACTO - ¿Quieres bloquear los mensajes y llamadas de **%1$s** en Telegram? - ¿Quieres bloquear los mensajes de **%1$s**? - ¿Quieres reportar el spam de este usuario? - ¿Quieres reportar el spam en este grupo? - ¿Quieres reportar el spam en este canal? - Lo sentimos, por ahora puedes enviar mensajes sólo a contactos mutuos. - Lo sentimos, por ahora sólo puedes añadir contactos mutuos a grupos. - Lo sentimos, actualmente tienes restringido enviar contenidos en grupos públicos. - Más información - Enviar a... - Escribe un comentario... - Toca y ve los GIF guardados - Fijar - Notificar a todos los miembros - Fijar también para %1$s - Desfijar - Fijar mensaje - Desfijar mensaje - ¿Quieres fijar un mensaje más antiguo y a la vez mantener fijado uno más reciente? - ¿Quieres fijar este mensaje en el grupo? - ¿Quieres fijar este mensaje en el canal? - ¿Quieres fijar este mensaje en la parte de arriba del chat? - ¿Quieres desfijar este mensaje? - Expulsar usuario - Reportar spam - Eliminar todo lo de %1$s - Borrar los emojis recientes - Emoticonos y personas - Animales y naturaleza - Comida y bebida - Actividades - Viajes y destinos - Objetos - Símbolos - Banderas - Seleccionar mensajes - REPORTAR MENSAJES - REPORTAR %1$s - Reportar - Reporte enviado - Reportar spam - Reportar falsificación - Reportar pornografía - Reportar abuso infantil - Reportar violencia - Por favor, añade detalles relevantes para tu reporte. - Información adicional… - Enviar reporte - Los moderadores de Telegram revisarán tu reporte.\n¡Gracias por tu cooperación! - Spam - Cuenta falsa - Violencia - Pornografía - Abuso infantil - Otros - Descripción - Mensaje fijado - Mensaje anterior - Encuesta fijada - editado - Editar mensaje - Editar comentario - Toca para reemplazar - Editar la foto - Editar el video - Reemplazar foto - Reemplazar video - Reemplazar multimedia - Reemplazar archivo - Reemplazar audio - Ve abajo para los bots - %1$s - Lo sentimos, terminó el tiempo de edición. - Añadir a pantalla de inicio - Buscar miembros - reenvía aquí para guardar - Mensajes guardados - Reenvía aquí para guardar. - - Has creado un **grupo**. - Los grupos pueden tener: - Hasta 200.000 miembros - Historial de chat persistente - Enlaces públicos como t.me/title - Admins. con diferentes privilegios - Guarda mensajes reenviándolos aquí - Envía archivos para almacenarlos - Accede desde cualquier dispositivo - Encuentra tus cosas con la búsqueda - Almacenamiento en la nube - Ir a la fecha - Eliminar para %1$s - Eliminar para todos - Texto copiado al portapapeles - Mantén para grabar audio. - Mantén para grabar audio. Toca para video. - Mantén para grabar video. Toca para audio. - Descartar mensaje de voz - ¿Quieres detener la grabación y descartar tu mensaje de voz? - Descartar videomensaje - ¿Quieres detener la grabación y descartar tu videomensaje? - Descartar - Los administradores del grupo han restringido que envíes multimedia hasta el %1$s - Los administradores del grupo han restringido que envíes contenido integrado hasta el %1$s - Los administradores del grupo han restringido que envíes stickers hasta el %1$s - Los administradores del grupo han restringido que envíes GIF hasta el %1$s - Los administradores del grupo han restringido que escribas hasta el %1$s - Los administradores del grupo han restringido que envíes multimedia. - Los administradores del grupo han restringido que envíes contenido integrado. - Los administradores del grupo han restringido que envíes stickers. - Los administradores del grupo han restringido que envíes GIF. - Los administradores del grupo han restringido que escribas. - No está permitido enviar contenido\nmultimedia en este grupo. - No están permitidos los bots integrados en este grupo. - No están permitidos los stickers en este grupo. - No están permitidos los GIF en este grupo. - No está permitido enviar mensajes en este grupo. - administrador - La instalación de APK está restringida para esta aplicación. Puedes habilitarla en los ajustes del sistema. - Mensajes no leídos - Buscar packs de stickers - Buscar stickers destacados - Buscar emoji - URL - Vista previa del mapa - Proveedor de vista previa de mapas - Telegram - Google - Yandex - Ninguno - ¿Instalar Google Maps? - ESTAFA - FALSO - vía - El mensaje no existe - Modo lento activo. Puedes enviar\ntu próximo mensaje en %1$s. - Toca para foto, mantén para video - Toca para ver como lista. - Enviar sin sonido - Enviar como una nueva foto - Reemplazar foto - Enviar ahora - Reprogramar - Hoy - Programar - Programar mensaje - Mensajes programados - Enviar cuando %1$s esté en línea - Recordatorios - Crear un recordatorio - Programado para el %1$s - Programado hasta que esté en línea - Lo sentimos, no puedes programar más de 100 mensajes. - Esta acción estará disponible una vez publicado el mensaje. - La votación estará disponible una vez publicado el mensaje. - Los resultados de la encuesta estarán disponibles después de que se publique el mensaje. - 📅 Recordatorio - 1 resultado - La calidad del video es demasiado baja para cambiar los ajustes de compresión. - Número de tarjeta copiado al portapapeles - Copiar - Puedes tirar un :dado: enviando su emoji en cualquier chat. - Envía el emoji **:dardo:** para probar suerte. - Envía el emoji %1$s para probar suerte. - ENVIAR - COVID-19 - PSA - Este mensaje es un anuncio de servicio público en relación a la actual pandemia de COVID-19. Más sobre esta iniciativa en https://telegram.org/blog/coronavirus - Prueba de información PSA - Notificación sobre COVID-19 - Este mensaje es un anuncio de servicio público en relación a la actual pandemia de COVID-19. Más sobre esta iniciativa en https://telegram.org/blog/coronavirus - Notificación importante - Esta es una notificación importante. - Ocultar chat - ¿Quieres ocultar este chat? - Ocultar - Envía un mensaje o toca el saludo de abajo para comenzar a chatear. - Envía un mensaje o toca el saludo de abajo. - %1$s está %2$s - %1$s está %2$s - El chat ha sido movido a tu lista principal. - d - s - m - h - S - a chats privados y grupos - Transferir propiedad del bot - Esto transferirá todos los **derechos de propietario** del bot al usuario elegido. - Cambiar propietario - Puedes transferir este bot sólo si: - Dejar un comentario - Comentarios - Comentario - Respuestas - Aún no hay comentarios... - Aún no hay respuestas… - Ver en el chat - Enviar anónimamente - Conversación iniciada - Ver hilo - Elige una fecha - Este chat te ayuda a realizar un seguimiento de las respuestas a tus comentarios en canales. - Esta publicación ha sido eliminada del grupo de conversación. - DESFIJAR TODOS LOS MENSAJES - OCULTAR MENSAJES FIJADOS - Mensajes fijados ocultos - Verás los mensajes fijados\notra vez si se fija uno nuevo. - Importado - El archivo es demasiado grande para importarlo. - No se pudo subir el archivo. - El audio se reproducirá a velocidad normal. - El audio se reproducirá a doble velocidad. - Mensaje copiado al portapapeles. - Enviado - Leído - Enlace de invitación enviado a **Mensajes guardados**. - Enlace de invitación enviado a **%1$s**. - Enlace de invitación enviado a **%1$s**. - Enlace de invitación enviado a **%1$s**. - Mensaje reenviado a **Mensajes guardados**. - Mensajes reenviados a **Mensajes guardados**. - Mensaje reenviado a **%1$s**. - Mensajes reenviados a **%1$s**. - Mensaje reenviado a **%1$s**. - Mensajes reenviados a **%1$s**. - Mensaje reenviado a **%1$s**. - Mensajes reenviados a **%1$s**. - Fondo compartido en **Mensajes guardados**. - Fondo compartido en **%1$s**. - Fondo compartido con **%1$s**. - Fondo compartido en **%1$s**. + %1$s te envió un código de regalo de %2$s de Telegram Premium + %1$s te envió un sorteo de %2$s Telegram Premium de %3$sm + %1$s publicó un sorteo de %2$s Telegram Premium de %3$sm + %1$s envió un sorteo de %3$s Telegram Premium de %4$sm al grupo %2$s + %1$s fijó un sorteo + %1$s reaccionó %2$s a tu sorteo + %1$s reaccionó %3$s en el grupo %2$s a tu sorteo %1$s activó la autodestrucción en %2$s Activaste la autodestrucción en %1$s %1$s desactivó la autodestrucción @@ -1253,15 +148,26 @@ %1$s envió un audio al grupo %2$s %1$s envió un sticker al grupo %2$s %1$s envió un %3$s sticker al grupo %2$s - %1$s te añadió al grupo %2$s + %1$s pagaste %2$s + %1$d ⭐️ multimedia + %1$d ⭐️ multimedia + %2$s te envió un post de pago por %1$d estrella + %2$s te envió un post de pago por %1$d estrellas + %2$s publicó un post de pago por %1$d estrella + %2$s publicó un post de pago por %1$d estrellas + %2$s fijó un post de pago por %1$d estrella + %2$s fijó un post de pago por %1$d estrellas + %2$s publicó un post de pago en el grupo %3$s por %1$d estrella + %2$s publicó un post de pago en el grupo %3$s por %1$d estrellas + %1$s te invitó al grupo %2$s %1$s renombró el grupo %2$s %1$s cambió la foto del grupo %2$s - %1$s cambió el video del grupo %2$s + %1$s cambió la foto del grupo %2$s %1$s añadió a %3$s al grupo %2$s - %1$s añadió a %3$s a un chat de voz en %2$s - %1$s te invitó a un chat de voz en %2$s - %1$s inició un chat de voz en %2$s - %1$s finalizó el chat de voz en %2$s + %1$s invitó a %3$s a un videochat en %2$s + %1$s te invitó a un videochat en %2$s + %1$s inició un videochat en %2$s + %1$s finalizó el videochat en %2$s %1$s volvió al grupo %2$s %1$s se unió al grupo %2$s %1$s eliminó a %3$s del grupo %2$s @@ -1279,9 +185,8 @@ Usuario Mensaje nuevo Responder - Responder a %1$s - Responder a %1$s - Datos en segundo plano restringidos. + Responder + Responder %1$s %2$s %1$s fijó “%2$s” en el grupo %3$s %1$s fijó un mensaje en el grupo %2$s @@ -1341,416 +246,31 @@ %1$s fijó un GIF %1$s fijó un audio Telegram - - Elige un contacto - Elige los contactos - COMPARTIR CONTACTO - Compartir contacto - Añadir contacto - Aún no hay contactos - Estoy usando Telegram para chatear. ¡Únete! Descárgala aquí: %1$s - a las - ayer a las - a las %1$s - hoy a las %1$s - ayer a las %1$s - en línea - últ. vez - últ. vez el - últ. vez %1$s - últ. vez el %1$s - Invitar amigos - Buscar contactos - Búsqueda global - últ. vez recientemente - últ. vez hace unos días - últ. vez hace unas semanas - últ. vez hace mucho tiempo - Nuevo mensaje - Elige contactos para invitarlos a Telegram - INVITAR A TELEGRAM - Compartir Telegram... - ¿Actualizar contactos? - Telegram ha detectado muchos contactos sin sincronizar. ¿Quieres sincronizarlos ahora? Elige “OK” si estás usando tu dispositivo, tarjeta SIM y cuenta de Google. - Ordenado por nombre - Ordenado por última vez - Añadir a %1$s - Número de teléfono - Aún no tienes contactos\nen Telegram - Invita a tus amigos a probar Telegram - Encuentra personas cerca para chatear - Busca por nombre de usuario - Nuevo contacto - El número de teléfono **%1$s** no está en tus contactos. ¿Quieres añadirlo? - Añadir contacto - - Añadir personas... - Podrás añadir más miembros después de crear el grupo. - Tu grupo alcanzó el límite de **200.000** miembros.\n\nPuedes aumentar este límite convirtiendo el grupo en un **grupo de difusión** donde sólo los administradores pueden publicar. ¿Te interesa? - Límite alcanzado - SABER MÁS - Grupo de difusión - Convertir en Grupo de difusión - Los grupos de difusión pueden tener más de 200.000 miembros, pero sólo los administradores pueden enviar mensajes. - Sólo pueden escribir los administradores. - Tu grupo ahora puede tener más de 200.000 miembros. - Nombre del grupo - Nombre del grupo - hasta %1$s - Lo sentimos, este grupo está lleno. - Lo sentimos, este chat no existe. - Este canal es privado. Únete a él para seguir viendo su contenido. - Este grupo es privado. Únete a él para seguir viendo su contenido. - Unirme al canal - Unirme al grupo - UNIRME - Enlace copiado al portapapeles - Enlace copiado al portapapeles.\nEste enlace sólo funcionará para miembros de este chat. - Este enlace sólo funcionará para miembros de este chat. - Lamentablemente, no puedes acceder a este mensaje. No eres miembro del chat en el que fue publicado. - Teléfono copiado al portapapeles - Correo copiado al portapapeles - Invitar al grupo con un enlace - Enlace de invitación - Enlaces de invitación - ¿Quieres anular este enlace? Una vez anulado, nadie podrá unirse a través de él. - El enlace de invitación anterior fue anulado. Se generó un enlace nuevo. - Anular - Anular enlace - ¿Quieres anular el enlace **%1$s**?\n\nEl grupo “**%2$s**” pasará a ser privado. - ¿Quieres anular el enlace **%1$s**?\n\nEl canal “**%2$s**” pasará a ser privado. - Copiar enlace - Compartir - Cualquiera que tenga instalado Telegram podrá unirse a tu grupo abriendo este enlace. - Buscar personas... - Buscar usuarios y grupos... - Grupos de difusión - Sin límite de miembros. - Sólo pueden escribir los administradores. - No puede volver a ser un grupo normal. - Convertir en Grupo de difusión - Mantener como grupo normal - ¿Quieres hacerlo? - Los miembros normales del grupo (que no son administradores) perderán **de forma irreversible** su permiso para publicar mensajes en el grupo.\n\nEsta acción **no** se puede deshacer. - CONVERTIR - Si cambias de opinión, ve a los ajustes de tu grupo > Permisos. - - Miembros - Multimedia - Ajustes - Añadir suscriptores - Añadir miembros - Añadir admins. - EXPULSAR DEL GRUPO - Eliminar y salir del grupo - Eliminar y salir del grupo - Notificaciones - Cambiar permisos - Eliminar del grupo - Convertir en supergrupo - Convertir en supergrupo - Convertir en supergrupo - Advertencia - Esta acción es irreversible. No puedes convertir un supergrupo en un grupo normal. - **Límite de miembros alcanzado.**\n\nPara tener más espacio y características adicionales, conviértelo en un supergrupo:\n\n• Permiten hasta %1$s\n• Los nuevos miembros ven todo el historial\n• Un mensaje eliminado desaparece para todos\n• Los admins. pueden añadir una descripción\n• El propietario puede generar un enlace público - **En los supergrupos:**\n\n• Los nuevos miembros ven todo el historial\n• Un mensaje eliminado desaparece para todos\n• Puede añadirse una descripción para el grupo\n• El creador puede generar un enlace público - **Importante:** Esta acción no se puede deshacer. - - Compartir contacto - Añadir a Contactos - Añadir contacto - Invitar a Telegram - %1$s aún no está en Telegram. ¿Quieres enviarle una invitación? - Invitar - BLOQUEAR - BLOQUEAR Y ELIMINAR - Bloquear usuario - Bloquear usuario - Bloquear usuarios - ¿Quieres bloquear los mensajes y llamadas de **%1$s** en Telegram? - ¿Quieres bloquear los mensajes y llamadas de **%1$s** en Telegram? - Usuario bloqueado - Usuario desbloqueado - Editar contacto - Eliminar contacto - Casa - Móvil - Trabajo - Otro - Principal - Trabajo - Cumpleaños - Puesto - Crear nuevo contacto - Nuevo contacto - Agregar a contacto existente - Biografía - Añade algunas palabras sobre ti - Ninguna - Puedes añadir algunas palabras sobre ti. Cualquiera que abra tu perfil verá este texto. - Iniciar chat secreto - Grupos en común - Grupos en común - Sin grupos en común - Ocurrió un error. - Clave de cifrado - Autodestrucción - Si pones un temporizador, la foto se autodestruirá después de ser vista. - Si pones un temporizador, el video se autodestruirá después ser visto. - Apagada - El texto e imagen derivan de la clave de cifrado para el chat secreto creado con **%1$s**.\n\nSi se ven igual en el dispositivo de **%2$s**, el cifrado end-to-end está garantizado.\n\nConoce más en telegram.org - https://telegram.org/faq/es#chats-secretos - Desconocido - Desconocido - Número oculto - El número de teléfono será visible una vez que %1$s te añada como contacto. - Al tocar **LISTO**, tu número de teléfono será visible para %1$s. - Compartir mi número con %1$s - %1$s ahora está en tu lista de contactos. - Información - Teléfono - Contenido compartido - Fotos y videos - Enlaces - Audios - Enviar mensaje - Reportar - %1$d enlaces de invitación - %1$d enlace de invitación - %1$d enlaces de invitación - %1$d enlaces de invitación - %1$d enlaces de invitación - %1$d enlaces de invitación - Nombre de usuario copiado al portapapeles. - Hashtag copiado al portapapeles. - Biografía copiada al portapapeles. - %s fue eliminado de tus contactos Nombre de usuario - Tu nombre de usuario - Lo sentimos, este nombre de usuario ya está ocupado. - Lo sentimos, este nombre de usuario no es válido. + también %1$s + username + Este nombre de usuario ya está ocupado. + Este enlace ya está ocupado.\nSin embargo, está disponible para su compra. **Saber más…** + Este nombre de usuario no es válido. Un nombre de usuario debe tener al menos 5 caracteres. - El nombre de usuario no debe exceder los 32 caracteres. + Un nombre de usuario básico debe tener al menos 5 caracteres.\nSin embargo, los nombres de usuario cortos y coleccionables están disponibles para su compra, incluido este. **Saber más…** + Un nombre de usuario no puede exceder los 32 caracteres. Los nombres de usuario no pueden comenzar con un número. - Puedes elegir un nombre de usuario en **Telegram**. Si lo haces, las personas te podrán encontrar por ese nombre y contactarte sin saber tu número de teléfono.\n\nPuedes usar **a–z**, **0–9** y guiones bajos.\nLa longitud mínima es de **5** caracteres. + Puedes elegir un nombre de usuario en **Telegram**. Los usuarios podrán encontrarte por ese nombre y contactarte sin saber tu número de teléfono.\n\nPuedes usar **a–z**, **0–9** y guiones bajos.\nLa longitud mínima es de **5** caracteres. Este enlace abre un chat contigo:\n%1$s Verificando nombre de usuario... %1$s está disponible. Ninguno Ocurrió un error. - - Stickers y máscaras - Stickers animados en bucle - Los stickers animados se reproducirán continuamente. - Stickers animados - Añadir stickers - AÑADIR %1$s - ELIMINAR %1$s - Añadir máscaras - Añadir a Stickers - Añadir a Favoritos - Sticker añadido a Favoritos - Sticker eliminado de Favoritos - Sticker eliminado de Recientes - Recientes - Favoritos - Stickers de grupo - Más stickers - Eliminar de Favoritos - Eliminar de Recientes - Añadir a máscaras - Stickers no encontrados - Stickers eliminados - %1$s ya no está en tus stickers. - Máscaras eliminadas - %1$s ya no está en tus máscaras. - Stickers archivados. - %1$s ha sido movido a tu archivo. - Máscaras archivadas. - %1$s ha sido movido a tu archivo. - Nuevos stickers añadidos - %1$s ha sido añadido a tus stickers. - Nuevas máscaras añadidas - %1$s ha sido añadido a tus máscaras. - Archivar - Compartir - Copiar enlace - Reordenar - Eliminar - Mueve stickers para reordenar. - Aún no hay stickers - No se encontraron stickers - No se encontraron GIF - No se encontraron emojis - Aún no hay máscaras - Sugerencias de emojis - **Telegram** te permite encontrar emojis a partir de miles de palabras clave, pero siempre puede faltar alguna. Si quieres sugerir una palabra clave, puedes ayudarnos visitando: - https://translations.telegram.org/%1$s/emoji - Máscaras - Puedes añadir máscaras a las fotos que envías. Para hacerlo, abre el editor de fotos antes de enviar una foto. - Stickers destacados - GIF destacados - Sugerir por emoji - Todos los packs - Mis packs - Ninguno - Estos stickers son tendencia en Telegram. Puedes añadir stickers personalizados con el bot @stickers. - Los artistas pueden añadir sus propios packs de stickers usando el bot @stickers. - Stickers archivados - Máscaras archivadas - Stickers no archivados - Sin máscaras archivadas - Puedes tener 200 packs de stickers activos.\nSi añades más, se archivarán los que no usas. - Puedes añadir hasta 200 packs de máscaras.\nSi añades más, se archivarán los que no usas. - ENVIAR STICKER - Stickers archivados - Algunos de tus packs de stickers más viejos fueron archivados. Puedes reactivarlos desde los ajustes de Stickers. - Máscaras archivadas - Algunos de tus packs de máscaras más viejos fueron archivados. Puedes reactivarlos desde los ajustes de máscaras. - Eliminar %1$s - ¿Quieres eliminar los packs de stickers seleccionados? - Archivar %1$s - ¿Quieres archivar los packs de stickers seleccionados? - IMPORTAR %1$s - Processing stickers... - ELIMINAR DE LA IMPORTACIÓN - Remove from import - Pon un nombre - Por favor, elige un nombre para tu pack. - Puedes usar a-z, 0-9 y guiones bajos. - Lo sentimos, este enlace es inválido. - El enlace debe tener al menos 5 caracteres. - El enlace no debe exceder los 32 caracteres. - Comprobando enlace - Este enlace está disponible. - Lo sentimos, este enlace está ocupado. - Importando stickers - ¡Stickers importados exitosamente! - Importa más stickers a Telegram y compártelos con tus amigos. - - Tema - Modo nocturno automático - Desactivado - Desactivado - Programado - Adaptativo - Programar - Predeterminado del sistema - Usar el anochecer y amanecer local - Actualizar ubicación - Calcular la hora de puesta y salida del sol requiere una única comprobación de tu ubicación aproximada. Esta ubicación sólo es almacenada localmente en tu dispositivo.\n\nAnochecer: %1$s\nAmanecer: %2$s - Desde - Hasta - Tema nocturno preferido - Nivel de luminosidad - Cambia a tu tema nocturno preferido cuando la luminosidad del entorno sea menor a un %1$d%%. - Oscuro - Azul oscuro - Día - Nocturno - Ártico - Clásico - Eliminar tema - ¿Quieres eliminar este tema? - Archivo de tema incorrecto - Pulsa **Crear** si quieres compartir tu tema con otras personas o personalizar cada color manualmente.\n\nPon el nombre del tema: - Pon el nombre del tema - CERRAR EDITOR - GUARDAR TEMA - Nuevo tema - Tema - Tema cambiado. - Puedes cambiarlo en *Ajustes > Chats*. - Temas incorporados - Temas personalizados - Establecer enlace - Enlace del tema - Esquinas de mensajes - Vista de lista de chats - Dos líneas - Tres líneas - CREAR TEMA - APLICAR - Vista previa del tema - Elegir color - Temas - Mostrar todos los temas - Tema no encontrado - Lo sentimos, este tema aún no es compatible con tu dispositivo. - Crear nuevo tema - Nuevo tema - Editar tema - Toca sobre el icono de la paleta de colores para ver la lista de elementos en cada ventana y editarlos. - Puedes crear tu propio tema cambiando los colores dentro de la aplicación.\n\nSiempre puedes volver al tema por defecto de Telegram aquí. - Puedes usar a-z, 0-9 y guiones bajos.\nLa longitud mínima es de 5 caracteres. - Tu tema será actualizado para todos los usuarios cada vez que lo modifiques. Cualquiera puede instalarlo usando este enlace:\n%1$s - Cualquiera puede instalar tu tema usando este enlace. Cuando modifiques el tema, será actualizado para todos los usuarios que lo hayan instalado.\n\nEl tema se basará en tus colores y fondo de chat seleccionados actualmente. - Puedes cambiar el enlace de tu tema.\n\nLos enlaces de temas deben tener más de 5 caracteres y pueden usar a-z, 0-9 y guiones bajos. - Lo sentimos, el nombre del tema no es válido. - Lo sentimos, este enlace no es válido. - Un enlace debe tener al menos 5 caracteres. - El enlace no debe exceder los 64 caracteres. - Lo sentimos, el enlace no puede comenzar con un número. - Comprobando enlace… - Lo sentimos, este enlace ya está ocupado. - %1$s está disponible. - Enlace - Nombre - Eva Summer - Con eso recuerdo un proverbio chino... - Jimmy Tyler - Oye, actualicé el código fuente. - Mike Apple - 🤷‍♂️ Sticker - Paul Newman - ¿Alguna idea? - Viejos piratas - ¡Yo-ho-ho! - Kate Bright - ¡Hola! - Nick K - Estos no son los androides que estás buscando. - Adler Toberg - ¿Alguien dijo mantequilla de maní? - Reinhardt - Reinhardt, necesitamos encontrarte algunas nuevas canciones 🎶. - Ya no te puedo tomar en serio. - ¡Ah! Los niños de hoy en día con la música tecno. Disfruten los clásicos, ¡como Hasselhoff! - Lúcio - ¡Dale! ¡VIVO para esto! - True Survivor - David Hasselhoff - Bob Harris - ¡Buenos días! 👋 - Buenos días - ¿Sabes qué hora es? - Es de mañana en *Tokio* 😎 - Usar un tema diferente - También puedes usar un tema personalizado existente como base para tu tema. - Elegir tema - Exportar - Crear - Color de realce - Fondo - Mis mensajes - RESTABLECER TODO - RESTABLECER - ¿Quieres cambiar el fondo de tu chat a un color? - ¿Quieres usar el fondo seleccionado actualmente o restablecer el fondo por defecto para este tema? - Compartir tema - Editar colores - Restablecer ajustes - Restablecer ajustes - ¿Quieres restablecer los ajustes de tamaño del texto y colores? - Eliminar tema - Abrir en el editor - ¿Guardar cambios? - ¿Quieres aplicar los nuevos colores que elegiste? + Ninguno Todos los ajustes de notificaciones fueron restablecidos a los valores por defecto Restablecer todas las notificaciones ¿Quieres restablecer todos los ajustes de notificaciones a los valores por defecto? + Restablecer a ajustes por defecto + Restablecer notificaciones + ¿Quieres restablecer los ajustes de notificaciones? Tamaño del texto del mensaje Hacer una pregunta Añadir una explicación @@ -1761,13 +281,13 @@ Ayuda Depuración Cuenta - Desbloquear - Mantén pulsado sobre un usuario para desbloquearlo. - No hay usuarios bloqueados - Notificación de mensajes + Desbloquear usuario + Aún sin usuarios bloqueados Mostrar notificaciones - Vista previa del mensaje - Notificaciones de grupo + Mostrar vistas previas + Mostrar remitente + Excepciones automáticas + Activa automáticamente las notificaciones para las historias de tus 5 contactos más frecuentes. Sonido Notificaciones en la app Sonidos en la app @@ -1776,12 +296,12 @@ Vista previa en la app Restablecer Restablecer todas las notificaciones - Deshace todos los ajustes personalizados de notificaciones para todos tus contactos, grupos y canales. + Deshace todos los ajustes personalizados de notificaciones para tus contactos, grupos y canales. Notificaciones y sonidos Notificaciones personalizadas Notificación pop-up Los mensajes nuevos de este contacto aparecerán en tu pantalla cuando no estés usando Telegram. - Led + Luz Color Azul Rojo @@ -1789,27 +309,23 @@ Verde Cian Blanco - Sepia - Oscuro Rosa Tamaño del texto Tipo de fuente Violeta Naranja - El led es una pequeña luz que parpadea en algunos dispositivos para señalar los mensajes nuevos. - Las notificaciones de mayor prioridad funcionarán aunque tu teléfono esté en modo No molestar. + Una pequeña luz que parpadea utilizada en algunos dispositivos para señalar los mensajes nuevos. + Las notificaciones de mayor prioridad funcionarán incluso con el modo No molestar. General Silenciado Notificaciones activadas - Activadas - Desactivadas + + No Desactivadas hasta %1$s - Por defecto (Sí) - Por defecto (No) Activar Desactivar - Bloqueados - Los usuarios bloqueados no podrán contactarte y no verán tu última vez. + Usuarios bloqueados + Los usuarios bloqueados no pueden enviarte mensajes ni añadirte a grupos. No verán tus fotos de perfil, historias, ni estados de última vez y en línea. Bloquear usuario CHATS CONTACTOS @@ -1820,31 +336,31 @@ Sólo si está silenciado Difuminado Movimiento - Cambiar fondo de chat - Fondo de chat - Restablecer fondos de chat - Elimina todos los fondos de chat subidos y restaura los preinstalados. - Restablecer fondos de chat - ¿Quieres restablecer todos los fondos de chat? - ¿Quieres eliminar los fondos seleccionados? + Cambiar fondo de pantalla + Cambiar tu color + Apariencia + Apariencia + Fondo de pantalla + Restablecer fondos de pantalla + Elimina todos los fondos de pantalla subidos y restaura los preinstalados. + Restablecer fondos de pantalla + ¿Quieres restablecer todos los fondos de pantalla? + ¿Quieres eliminar los fondos de pantalla seleccionados? Vista previa del fondo - Pista: algunas imágenes de fondo se ven mejor difuminadas. + Pista: algunos fondos de pantalla se ven mejor con el efecto difuminado. ¡Woo-hoo! ¡Gracias! - Desliza a la izquierda o derecha para ver más colores. - El salmón es un pez, no un color. - Bob Harris + Roberto ¡Buenos días! 👋 ¿Sabes qué hora es? Es de mañana en Tokio 😎 - Pulsa Establecer para aplicar el fondo. - Disfruta de la vista. - ESTABLECER FONDO + Toca Establecer para aplicar el fondo. + Se ve bien Buscar por color - Buscar fondos + Buscar imágenes Color: - Brillo - Código de color hexadecimal Colores + Los colores se moverán cuando envíes mensajes + Animado Patrón Elige un patrón Intensidad @@ -1861,8 +377,6 @@ Gris Blanco Elige un color - Subir imagen - Elegir una imagen cargando imagen completa… Elegir un color Mensajes @@ -1870,48 +384,58 @@ Eventos Un contacto se unió a Telegram Mensajes fijados + Traducir mensajes + Mostrar botón Traducir + Traducir chats enteros + No traducir + %1$d idioma + %1$d idiomas + Elige los idiomas + El botón “Traducir” aparecerá al realizar un solo toque en un mensaje de texto. + Google puede tener acceso al texto de los mensajes que traduzcas. Idioma Personalizado ¿Cambiar idioma? - Estás a punto de aplicar un pack de idioma (**%1$s**) que está completo en un %2$d%%.\n\nEsto traducirá toda la interfaz. Puedes sugerir correcciones en la [plataforma de traducción].\n\nPuedes cambiar el idioma cuando quieras en Ajustes. - Estás a punto de aplicar un pack de idioma personalizado (**%1$s**) que está completo en un %2$d%%.\n\nEsto traducirá toda la interfaz. Puedes sugerir correcciones en la [plataforma de traducción].\n\nPuedes cambiar el idioma cuando quieras en Ajustes. + Estás a punto de aplicar un pack de idioma (**%1$s**) que está completo en un %2$d %%.\n\nEsto traducirá toda la interfaz. Puedes sugerir correcciones en la [plataforma de traducción].\n\nPuedes cambiar el idioma cuando quieras en Ajustes. + Estás a punto de aplicar un pack de idioma personalizado (**%1$s**) que está completo en un %2$d %%.\n\nEsto traducirá toda la interfaz. Puedes sugerir correcciones en la [plataforma de traducción].\n\nPuedes cambiar el idioma cuando quieras en Ajustes. Datos insuficientes - Idiomas no oficiales - Idioma no disponible. + Idioma no encontrado. Ya estás usando este pack de idioma (**%1$s**). Puedes cambiar el idioma cuando quieras en Ajustes. Lamentablemente, este pack de idioma personalizado (**%1$s**) no contiene datos para Telegram Android. - Ten en cuenta que el soporte de Telegram está hecho por voluntarios. Respondemos lo antes posible, pero puede tomar tiempo.\n\nPor favor, mira las Preguntas frecuentes de Telegram]]>: tienen respuestas para la mayoría de las preguntas y soluciones a problemas]]>. + Ten en cuenta que el soporte de Telegram está en manos de voluntarios. Respondemos lo antes posible, pero puede tomar tiempo.\n\nPuedes mirar las preguntas frecuentes de Telegram]]>: tienen soluciones a problemas]]> y respuestas a muchas preguntas. Preguntar Preguntas frecuentes Preguntas frecuentes Aprende sobre Telegram https://t.me/TelegramTipsES Añadir cuenta - Elegir cuenta + Elige una cuenta https://telegram.org/faq/es Política de privacidad Términos de servicio Al registrarte, aceptas\nlos *términos de servicio*. https://telegram.org/privacy + https://telegram.org/tos + https://telegram.org/tos/mini-apps Eliminar pack de idioma ¿Quieres eliminar el pack de idioma **%1$s**? Archivo de traducción incorrecto Servicio keep-alive - Vuelve a abrir la app cuando se cierra. Actívala para notificaciones más fiables. + Vuelve a abrir la app al cerrarse. Activa esta opción para notificaciones más fiables. Conexión en segundo plano Mantiene una conexión en segundo plano de bajo impacto con Telegram para notificaciones más fiables. Ordenar por Importar contactos Nombre Apellidos - Color del led + Color de la luz Notificación pop-up Nunca mostrar Con pantalla encendida Con pantalla apagada "Mostrar siempre " Globo en el ícono - Activado + Mostrar globo en el ícono Incluir chats silenciados Contar mensajes sin leer Corta @@ -1920,7 +444,7 @@ Autodescargar multimedia Activada en todos los chats Hasta %1$s en todos los chats - Desactivada + No Hasta %1$s para %2$s Activada para %1$s Contactos @@ -1946,17 +470,21 @@ Comienza la descarga de la siguiente pista mientras estás escuchando un audio. Precargar videos grandes Precarga los primeros segundos (1-2 MB) de videos que superan los %1$s para su reproducción instantánea. - Actívalo si quieres que la multimedia se descargue automáticamente con datos móviles. - Actívalo si quieres que la multimedia se descargue automáticamente en roaming. - Actívalo si quieres que la multimedia se descargue automáticamente con Wi-Fi. + Activa esta opción si quieres que la multimedia se descargue automáticamente con datos móviles. + Activa esta opción si quieres que la multimedia se descargue automáticamente en roaming. + Activa esta opción si quieres que la multimedia se descargue automáticamente con Wi-Fi. Con datos móviles En roaming Con Wi-Fi Uso de datos Tipos de multimedia Los mensajes de voz son pequeños, siempre se descargan automáticamente. - Ningún contenido multimedia + Desactivada Sin GIF + Ajustes de autodescarga + Puedes cambiar tus ajustes de autodescarga para reducir el uso de datos móviles. + Puedes cambiar tus ajustes de autodescarga para reducir el uso de datos al usar Wi-Fi. + Puedes cambiar tus ajustes de autodescarga para reducir el uso de datos en roaming. Restablecer ajustes de autodescarga Restablecer ajustes ¿Quieres restablecer los ajustes de autodescarga? @@ -1967,15 +495,19 @@ Videos Presiona los botones de volumen para escucharlo. Cuenta oculta para mensajes reenviados + Cuenta oculta para historias republicadas Reproducción automática - Elevar para hablar - Guardar en galería + Levantar para hablar + Graba mensajes de voz acercando el teléfono a tu oído + Levantar para escuchar + Cambia el sonido al auricular levantando el teléfono hacia tu oído + Guardar en la galería Sonido silenciado Editar nombre + Cambiar color del perfil Personalizar Personalizadas - Activar notificaciones personalizadas - Importancia + Prioridad Igual que en Ajustes Baja Media @@ -1983,13 +515,14 @@ Urgente Nunca Repetir notificaciones - Puedes cambiar tu número de Telegram aquí. Tu cuenta y todos tus datos de la nube, mensajes, archivos, grupos, contactos, etc., se moverán al nuevo número. + Puedes cambiar tu número de Telegram aquí. Tu cuenta y todos tus datos de la nube, mensajes, archivos, grupos, contactos, etc., se trasladarán al nuevo número. Los usuarios verán tu nuevo número si lo tienen en sus agendas o si tus ajustes de privacidad lo permiten. Puedes modificar esto en Ajustes > Privacidad y seguridad > Número de teléfono. Cambiar número Cambiar número + Mantener %1$s Nuevo número - Enviaremos un SMS con el código de confirmación a tu nuevo número. - El número %1$s ya está vinculado a una cuenta de Telegram. Por favor, elimina esa cuenta antes de migrar al nuevo número. + Tu nuevo número recibirá un código de confirmación en una llamada o SMS. + El número %1$s ya está vinculado a una cuenta de Telegram. Por favor, elimina esa cuenta antes de usar este número. Otros Desactivada Activada @@ -2005,57 +538,47 @@ Silenciadas Notificaciones inteligentes Excepciones - Añadir una excepción + Añadir excepción Eliminar todas las excepciones Eliminar todas las excepciones ¿Quieres eliminar todas las excepciones? Nueva excepción Aquí aparecerán los chats que no tengan los ajustes por defecto para las notificaciones.\n\nPuedes personalizar las notificaciones para un chat abriendo su información y seleccionando “Notificaciones”. - Ninguna %1$d / %2$s - Desactivadas - Frecuencia de alertas - %1$s dentro de %2$s - Vistas previas de enlaces - Las vistas previas serán generadas en los servidores de Telegram. No almacenamos datos sobre los enlaces que envías. + Desactivar + Vista previa de enlaces + Las vistas previas de enlaces serán generadas en los servidores de Telegram. No almacenamos datos sobre los enlaces que envías. Chats secretos - Navegador en la app - Abre enlaces externos en la app Direct Share Chats recientes al compartir en Android - Emoji + Emojis Emojis grandes - Usar emoji predeterminado Telegram para Android %1$s - Menú de depuración - Enviar registros - Enviar últimos registros - Limpiar registros - Activar registros - Desactivar registros - Importar contactos - Recargar contactos - Restablecer chats - Leer todos los chats - Pausar la música al grabar - No pausar la música al grabar - Activar la animación del teclado - Desactivar la animación del teclado - Activar cámara interna - Desactivar cámara interna - Restablecer contactos importados - Borrar caché de multimedia enviada - Ajustes de llamadas Puedes cambiar el idioma más tarde en Ajustes. Elige tu idioma Otro + Pegar + Voltear + Toca un objeto para recortarlo + Recortar + Recortar un objeto + Deshacer cortar + Deshacer + Añadir contorno + Borrar + Restaurar + editar Pegar desde el portapapeles Ajustes de proxy Detalles del proxy Proxy Conexiones + Proxy añadido. Añadir proxy ¿Eliminar proxy? + Eliminar proxy + ¿Quieres eliminar este proxy? + ¿Quieres eliminar estos proxies? Usar proxy Servidor Contraseña @@ -2065,8 +588,8 @@ Proxy SOCKS5 Proxy MTProto El proxy que estás usando no está configurado correctamente y será desactivado. Por favor, encuentra otro. - Sponsor del proxy - Este canal es mostrado por tu servidor proxy. Para eliminar este canal de tu lista de chats, desactiva el proxy en Ajustes de Telegram. + Patrocinador del proxy + Este canal es mostrado por tu servidor proxy. Para quitar este canal de tu lista de chats, desactiva el proxy en Ajustes de Telegram > Datos y almacenamiento. Ajustes de proxy SOCKS5. Ajustes de proxy MTProto. Este proxy podría mostrar un canal patrocinado en tu lista de chats. Esto no revela nada de tu tráfico en Telegram. @@ -2075,8 +598,8 @@ Activar Atención Queda poco espacio en tu dispositivo. Puedes liberar espacio al elegir conservar sólo la caché de la multimedia reciente en Telegram. - Eliminar multimedia tras - Nunca eliminarla + Tu dispositivo está casi sin espacio de almacenamiento. Puedes usar los ajustes de caché para quitar archivos innecesarios y volver a descargarlos si los necesitas. + Gestionar caché Contactos Chats privados Grupos @@ -2085,24 +608,20 @@ hasta %1$s Streaming Streaming de video y audio - Algunos videos no se pueden reproducir en streaming. Por ejemplo, todos los videos que fueron enviados desde Android usando Telegram 4.7 y versiones anteriores. + Cuando sea posible, Telegram comenzará a reproducir videos y música de inmediato, sin esperar a que los archivos se descarguen por completo. Toca para cambiar el número - Apariencia - Stickers y máscaras - Elige esquemas de colores personalizados - Mostrar notificaciones para + Mostrar notificaciones de Todas las cuentas - Desactívalo si quieres recibir notificaciones sólo de la cuenta que estás usando actualmente. + Desactiva esta opción si quieres recibir notificaciones sólo de la cuenta actual. Notificaciones para chats Chats privados Grupos Canales + Historias + Reacciones Ten en cuenta que **%1$s** están en la lista de excepciones y este cambio no les afectará. Ten en cuenta que **%1$s** está en la lista de excepciones y este cambio no le afectará. Ver excepciones - Notificaciones para grupos - Notificaciones para chats privados - Notificaciones para canales Toca para cambiar Opciones alternativas Añadir otra cuenta @@ -2110,9 +629,13 @@ Poner un código Bloquea la app con un código para que otros no puedan abrirla. Borrar la caché + Borrar lo seleccionado Libera espacio en tu dispositivo; tu multimedia permanecerá en la nube. + Borrando la caché… + Mantén abierta esta ventana mientras Telegram borra la caché. Cambiar el número de teléfono - Mueve tu cuenta, chats y multimedia a un nuevo número. + Traslada tu cuenta, chats y multimedia a un nuevo número. + Tu número fue cambiado a %1$s. Contactar al soporte Cuéntanos sobre cualquier problema; cerrar sesión generalmente no ayuda. Cerrar sesión @@ -2125,34 +648,38 @@ FAQ Unidades de distancia Unidades de distancia - Automáticas + Automático Kilómetros Millas - Escanear código QR - Escanear código QR - Token inválido o expirado. + Escanea el código QR + Escanea el código QR No se encontró el token de autenticación Autenticación exitosa https://desktop.telegram.org/ + https://web.telegram.org/ Descarga Telegram en tu computadora desde *desktop.telegram.org*. Inicia Telegram Desktop para obtener el código QR. Escanea el código QR para conectar tu cuenta. Este código se puede utilizar para permitir que alguien inicie sesión en tu cuenta de Telegram.\n\nPara confirmar el inicio de sesión, ve a Ajustes > Dispositivos > Escanear QR y escanea el código. - Telegram necesita acceso a tu cámara para que puedas escanear códigos QR. + **Telegram** necesita acceso a la cámara para que puedas escanear códigos QR. Toca Ajustes > Permisos, y activa **Cámara**. Poner foto de perfil Actualizar Telegram Versión %1$s • %2$s - Descargando %1$d%%... + Descargando… %1$d %% Actualizar ahora Descargar ahora - Recordarme más tarde + Recuérdamelo más tarde **¿Qué hay de nuevo?**\n\n• Corrección de errores y mejoras. Enlace primario El enlace ya no está activo - Cancelar reenvío - Elegir otro chat - ¿Quieres cancelar el reenvío o reenviar los mensajes a un chat diferente? - Gesto de deslizar de lista de chats + ¿Qué quieres hacer con %1$s de tu chat con **%2$s**? + ¿Qué quieres hacer con %1$s de **%2$s**? + Mostrar remitentes + Ocultar remitentes + Mostrar remitente + Ocultar remitente + Gesto al deslizar en lista de chats + Elige qué acción quieres realizar al deslizar el dedo hacia la izquierda en la lista de chats. Fijar Leído Archivar @@ -2171,268 +698,29 @@ Nombre cambiado. Nombre del canal cambiado. Descripción del canal cambiada. - - Base de datos local - Borrar base de datos local - ¿Quieres borrar los mensajes de texto en caché? - Borrar la base de datos eliminará los mensajes en caché y comprimirá la base de datos para ahorrar espacio de almacenamiento. Telegram requiere algunos datos para funcionar, así que la base de datos nunca podrá llegar a cero.\n\nEsta operación puede tomar unos minutos. - Borrar caché - Borrar - Calculando... - Archivos - Fotos - Mensajes de voz y video - Videos - Música - GIF - Otros archivos - Vacía - Conservar multimedia - Las fotos, videos y otros archivos de los chats en la nube a los que **no accedas** durante este periodo, se eliminarán del dispositivo para ahorrar espacio.\n\nToda la multimedia estará en la nube de Telegram y podrás descargarla de nuevo si la necesitas. - Sin límite - Mensajes de voz - Videomensajes - - Telegram Passport - Información solicitada - Información entregada - ¿Qué es Telegram Passport? - Con Telegram Passport puedes registrarte fácilmente en sitios web y servicios que requieren una identificación.\n\nTu información, datos personales y documentos están protegidos con cifrado end-to-end. Nadie, incluyendo a Telegram, puede acceder a ellos sin tu permiso.\n\nPuedes visitar nuestras *preguntas frecuentes* para saber más. - https://telegram.org/faq/es#passport - Por favor, crea una contraseña para proteger tus datos personales con cifrado end-to-end.\n\nEsta contraseña también será requerida cuando inicies sesión en Telegram en un nuevo dispositivo. - CREAR UNA CONTRASEÑA - Eliminar Telegram Passport - Eliminar Telegram Passport - ¿Quieres eliminar tu Telegram Passport? - Por favor, usa sólo caracteres latinos. - Sube escaneos de una traducción certificada al inglés de tu pasaporte. - Sube escaneos de una traducción certificada al inglés de tu pasaporte interno. - Sube escaneos de una traducción certificada al inglés de tu licencia de conducir. - Sube escaneos de una traducción certificada al inglés de tu tarjeta de identificación. - Sube un escaneo de tu factura de servicios. - Sube un escaneo de tu extracto de cuenta bancaria. - Sube un escaneo de tu contrato de alquiler. - Sube un escaneo de la página de registro de tu pasaporte. - Sube un escaneo de tu registro temporal. - Para confirmar tu dirección, por favor, sube un escaneo o foto del documento seleccionado (todas las páginas). - Sube escaneos de una traducción certificada al inglés de tu factura de servicios. - Sube escaneos de una traducción certificada al inglés de tu extracto de cuenta. - Sube escaneos de una traducción certificada al inglés de tu contrato de alquiler. - Sube escaneos de una traducción certificada al inglés de la página de registro de tu pasaporte. - Sube escaneos de una traducción certificada al inglés de tu registro temporal. - Sube escaneos de una traducción certificada al inglés del documento seleccionado. - Añadir factura de servicios - Añadir extracto de cuenta - Añadir contrato de alquiler - Dirección - Dirección de residencia - Pon tu dirección - Sube una prueba de tu dirección - Dirección - Calle - Calle - Código postal - Ciudad - Región/Provincia - País - Número de teléfono - ¿Eliminar número de teléfono? - Pon tu número de teléfono - Usar %1$s - Usar el mismo número de teléfono que en Telegram. - Usar la misma dirección de correo que en Telegram. - O pon un nuevo número de teléfono - Nota: Recibirás un código de confirmación en el número de teléfono que nos diste. - Correo electrónico - ¿Eliminar correo electrónico? - Pon tu dirección de correo electrónico - Nota: Recibirás un código de confirmación en la dirección de correo que nos diste. - Código - Por favor, pon el código de confirmación que hemos enviado a %1$s. - Pon tu contraseña para acceder a tus datos personales. - **%1$s** solicita acceso a tus datos personales para registrarte en sus servicios. - Pon tu contraseña de Telegram para descifrar tus datos. - Aceptas la *política de privacidad de %1$s* y permites que @%2$s te envíe mensajes. - Estás enviando documentos directamente a %1$s y permitiendo que @%2$s te envíe mensajes. - AUTORIZAR - Añadir pasaporte - Añadir pasaporte interno - Registro de pasaporte - Registro temporal - Añadir tarjeta de identificación - Añadir licencia de conducir - Datos personales - Completa tus datos personales - Documento de identidad - Sube un escaneo de tu pasaporte u otra ID - Sube un escaneo de tu pasaporte - Sube un escaneo de tu pasaporte interno - Sube un escaneo de tu tarjeta de identificación - Sube un escaneo de tu licencia de conducir - Datos personales - Datos del documento - Nombre - Segundo nombre - Apellidos - Nombre (latino) - Segundo nombre (latino) - Apellidos (latino) - Nombre (%1$s) - Segundo nombre (%1$s) - Apellidos (%1$s) - Elegir género - Masculino - Femenino - Nacimiento - Género - Número de documento - Vencimiento - Nacionalidad - Residencia - Selfie - Documentos necesarios - Sube una selfie tuya sosteniendo el documento - Traducción - Lado delantero - Sube una foto del lado delantero del documento - Reverso - Sube una foto del reverso del documento - Página principal - Sube una foto de la página principal del documento - Elige la fecha de vencimiento - No vence - No vence - Elegir fecha de nacimiento - ¿Eliminar selfie? - El documento debe contener tu fotografía, nombre completo, fecha de nacimiento, número de documento, país de emisión y fecha de vencimiento. - ¿Quieres descartar toda la información que pusiste? - Descartar - Escaneos - Eliminar documento - Eliminar - ¿Quieres eliminar este escaneo? - ¿Quieres eliminar esta selfie? - ¿Quieres eliminar este documento? - ¿Quieres eliminar los datos personales? - ¿Quieres eliminar los datos de dirección? - Eliminar datos personales - Eliminar datos de dirección - ¿Eliminar escaneo? - Subir escaneos - Subir escaneos adicionales - No puedes subir más de %1$s. - Sólo puedes subir archivos de imagen. - Escanea tu pasaporte - Escanea tu pasaporte o tarjeta de identificación con zona legible para máquinas para completar los datos personales automáticamente. - Añadir un documento - No tienes documentos aún - Puedes añadir un número de teléfono, dirección de correo, documento de identificación o dirección residencial. - Toca para corregir errores. - %1$s o %2$s - Tu nombre - Tu nombre en %1$s - Tu nombre en el idioma de tu país de residencia (%1$s). - Por favor, revisa si este nombre es correcto:\n\n%1$s %2$s %3$s - árabe - azerbaiyano - búlgaro - bengalí - checo - danés - alemán - maldivo - butanés - griego - español - estonio - persa - francés - hebreo - croata - húngaro - armenio - indonesio - islandés - italiano - japonés - georgiano - camboyano - coreano - lao - lituano - letón - macedonio - mongol - malayo - birmano - nepalí - neerlandés - polaco - portugués - rumano - ruso - eslovaco - esloveno - tailandés - turcomano - turco - ucraniano - uzbeko - vietnamita - - Sesiones activas - Este dispositivo - Sin otras sesiones activas - Puedes iniciar sesión en Telegram desde otro móvil, tablet o computadora, usando el mismo número de teléfono. Todos tus datos se sincronizarán al instante. - Sesiones activas - Controla tus sesiones en otros dispositivos. - Toca en una sesión para cerrarla. - ¿Cerrar esta sesión? - ¿Quieres cerrar esta sesión? - Sale de todos los dispositivos, excepto este. - Cerrar sesiones - Cerrar sesión - Cerrar - ¿Quieres cerrar todas las demás sesiones? - Cerrar todas las demás sesiones - app no oficial - Sin sesiones activas. - Puedes iniciar sesión en sitios web que permitan registrarse con Telegram. - Sitios web conectados - Sesión iniciada con Telegram - Toca para desconectar de tu cuenta de Telegram. - ¿Quieres desconectar %1$s? - Desconectar sitio web - Desconectar sitios web - Desconectar - Bloquear %1$s - Desconectar todos los sitios web - ¿Quieres desconectarte de todos los sitios web en los que usaste Telegram para iniciar sesión? - Puedes iniciar sesión en sitios web que permitan registrarse con Telegram. - Intentos de acceso incompletos - Los dispositivos de arriba no tienen acceso a tus mensajes. El código fue puesto correctamente, pero no se ingresó una contraseña correcta. + ¿El %1$s aún es tu número? + Ten siempre actualizado tu número para que puedas iniciar sesión en Telegram. **Saber más** + https://telegram.org/faq/es#p-tengo-un-nuevo-numero-que-hago + + No - Carpetas - Configurar - Crear carpetas + Carpetas de chats Crear nueva carpeta - Crea carpetas para diferentes grupos de\nchats y cambia rápidamente entre ellas. + Crea carpetas para diferentes grupos de chats y cambia rápidamente entre ellas. Carpetas recomendadas - Todos - Todos + Todo + Todo Reordenar Editar carpeta Editar carpetas + Silenciar todo + Activar todo Contactos No contactos Grupos Canales - Excluir silenciados - Excluir leídos - Editar - Eliminar - Excluir archivados - No leídos + Editar carpeta + Eliminar carpeta Eliminar carpeta Silenciados Leídos @@ -2440,36 +728,33 @@ Incluir chats Excluir chats Añadir chats - Quitar chats + Añadir chats para excluir Tipos de chat Chats Chats incluidos Chats excluidos Elige qué chats aparecerán en esta carpeta. Elige qué chats no aparecerán en esta carpeta. - Chats secretos Bots Añadiendo chats - Espera un momento mientras llenamos esta carpeta… + Espera un momento mientras\nllenamos esta carpeta… La carpeta está vacía Actualmente no hay chats que\npertenezcan a esta carpeta. + No se encontraron chats + No hay chats a los que reenviar en esta carpeta. Nueva carpeta Sin chats Contacto No es contacto - Añadir excepción Nombre de la carpeta ¿Quieres eliminar esta carpeta? Tus chats no se eliminarán. - ¿Aplicar cambios? - Has editado esta carpeta. ¿Aplicar cambios? - ¿Crear carpeta? + ¿Quieres eliminar esta carpeta? Esto también desactivará todos los enlaces de invitación creados para compartir esta carpeta. + Cambios no guardados + Editaste esta carpeta. ¿Quieres aplicar los cambios? + Crear carpeta Aún no has terminado de crear la carpeta. ¿Crear ahora? Crear - Mostrar %1$d chats más Mostrar %1$d chat más - Mostrar %1$d chats más - Mostrar %1$d chats más - Mostrar %1$d chats más Mostrar %1$d chats más Eliminar excepción Eliminar excepción @@ -2479,45 +764,21 @@ ¿Quieres eliminar los “%1$s” de la lista de siempre incluidos? ¿Quieres eliminar “%1$s” de la lista de siempre incluidos? ¿Quieres eliminar a “%1$s” de la lista de siempre incluidos? - Carpetas + Carpetas de chats Abre *Ajustes > Carpetas* para organizar tus chats en carpetas. Importantes No leídos Añadir a carpeta Quitar de la carpeta Elige una carpeta - Añadiste a **%1$s** a **%2$s** - Añadiste **%1$s** a **%2$s** - Añadiste **%1$s** a **%2$s** - Quitaste a **%1$s** de **%2$s** - Quitaste **%1$s** de **%2$s** - Quitaste **%1$s** de **%2$s** + Añadiste a **%1$s** a **%2$s**. + Añadiste **%1$s** a **%2$s**. + Añadiste **%1$s** a **%2$s**. + Quitaste a **%1$s** de **%2$s**. + Quitaste **%1$s** de **%2$s**. + Quitaste **%1$s** de **%2$s**. Límite alcanzado No puedes excluir más de 100 chats de una carpeta. - - Código de bloqueo - Cambiar código - Cuando configuras un código, aparece un candado en la pantalla de chats. Toca sobre él para bloquear y desbloquear la app.\n\nNota: Si olvidas el código, tendrás que eliminar y reinstalar la app. Perderás todos los chats secretos. - PIN - Contraseña - Pon tu código actual - Pon un código - Pon tu nuevo código - Pon tu código - Repite tu nuevo código - Los códigos no coinciden - Autobloqueo - El bloqueo se activará transcurrido este tiempo. - en %1$s - Desactivado - Desbloquear con la huella digital - Confirma la huella para continuar - Sensor táctil - Huella no reconocida. Reinténtalo. - Mostrar contenido en la multitarea - Si está desactivada, no podrás hacer capturas de pantalla en la app pero el contenido del chat estará oculto en la multitarea. - Esto ocultará los contenidos de tus chats o tu lista de chats en la multitarea, pero no podrás hacer capturas de pantalla en Telegram.\n\nPuede que tengas que reiniciar la app para que surta efecto. - Demasiados intentos.\nPor favor, reinténtalo en %1$s. Enero Febrero @@ -2533,16 +794,14 @@ Diciembre Archivos Media - Multimedia compartida + Multimedia Grupos Enlaces Música Voz GIF - Archivos Contenido compartido - Enlaces - Música + Canales similares Comparte fotos y videos en este chat y accede a ellos desde cualquier dispositivo. Comparte música en este chat y accede a ella desde cualquier dispositivo. Comparte archivos en este chat y accede a ellos desde cualquier dispositivo. @@ -2554,264 +813,46 @@ Los enlaces de este chat aparecerán aquí. Los mensajes de voz de este chat aparecerán aquí. Los GIF de este chat aparecerán aquí. - - Mapa - Satélite - Híbrido - a %1$s m - a %1$s km - a %1$s ft - a %1$s mi - %1$s ft - %1$s mi - mi - km - %1$s m - %1$s km - a %1$s m de ti - a %1$s km de ti - a %1$s ft de ti - a %1$s mi de ti - Cómo llegar - No se encontraron lugares - No hay coincidencias con **%1$s** cerca de ti. - Enviar mi ubicación actual - Ubicación en tiempo real... - Enviar ubicación en tiempo real - Dejar de compartir - Dejar de compartir ubicación - ¿Quieres dejar de compartir tu ubicación en tiempo real con **%1$s**? - ¿Quieres dejar de compartir tu ubicación en tiempo real con **%1$s**? - ¿Quieres dejar de compartir tu ubicación en tiempo real? - Actualizada mientras te mueves - Enviar la ubicación seleccionada - Ubicación - Lugar - Exacta a %1$s - a %1$s - O elige un lugar - Toca para enviar esta ubicación - Ubicaciones en tiempo real - En tiempo real - 15 minutos - 1 hora - 8 horas - actualizada - actualizada %1$s - recién actualizada - Tú y %1$s - %1$s compartida con %2$s - %1$s compartida con %2$s - %1$s compartida con %2$s - DETENER TODO - Compartiendo tu ubicación en tiempo real con %1$s - Elige durante cuánto tiempo %1$s verá tu ubicación exacta. - Elige durante cuánto tiempo las personas de este chat verán tu ubicación en tiempo real. - Activar GPS - Por favor, activa tu GPS para acceder a las características de ubicación. - Hacerme visible - ¿Mostrar tu perfil? - Los usuarios que estén cerca podrán ver tu perfil y enviarte mensajes. Esto puede ayudarte a encontrar nuevos amigos, pero también podría atraer atención excesiva. Puedes dejar de compartir tu perfil cuando quieras.\n\nTu número permanecerá oculto. - Dejar de mostrarme - Personas cerca - Encontrar personas cerca - Añade rápidamente a personas cerca que estén viendo esta sección y descubre grupos locales.\n\nActiva el acceso a la ubicación para usar esta característica. - Personas cerca - Permitir acceso - Añade rápidamente a personas cerca que también están viendo esta sección y descubre grupos locales.\n\nPor favor, activa los servicios de ubicación para usar esta característica. - Activar - Grupos cerca - Intercambia información de contacto con personas cerca y encuentra nuevos amigos. - Buscando personas a tu alrededor… - Crear un grupo local - Iniciar grupo - Quienes estén cerca de esta ubicación (vecinos, compañeros de trabajo o de estudio, asistentes a eventos, visitantes de un lugar) verán tu grupo en la sección Personas cerca. - Si inicias un grupo no relacionado en esta ubicación, podrías ser restringido de crear grupos por ubicación. - Establecer ubicación - Establecer esta ubicación - Las personas podrán encontrar tu grupo en la sección “Personas cerca”. - Lugares en esta zona - Aviso de proximidad - Notificar cuando %1$s esté a %2$s - Notificar cuando alguien esté a %1$s - Ya estás a menos de %1$s - Compartir ubicación - Compartir - Para que funcione el aviso, comparte tu ubicación en tiempo real en este chat. - Avisar cuando %1$s esté cerca - Avisar cuando otros miembros del grupo estén cerca - Aviso de proximidad establecido - Te notificaremos cuando %1$s esté a %2$s de ti. - Te notificaremos cuando alguien esté a %1$s de ti. - Aviso de proximidad cancelado - - Mostrar como lista - Mostrar como cuadrícula - Mostrar toda la multimedia - Mostrar stickers - Mostrar todos los archivos - Mostrar todos los GIF - Toca para descargar - ABRIR ARCHIVO - Mostrar en el chat - Detener descarga - Guardar en galería - %1$d de %2$d - **%1$d** de %2$d - Galería - Todas las fotos - Toda la multimedia - Todos los videos - Aún no hay fotos - Por favor, primero descarga la multimedia - Por favor, espera hasta que se descargue el video completamente. - Video no optimizado para streaming. Tendrás que descargarlo completamente para reproducirlo. - La app no logró reproducir este video. ¿Quieres intentarlo con un reproductor externo? - Sin búsquedas recientes - Imágenes - GIF - No hay GIF recientes - BUSCAR FOTOS - BÚSQUEDA WEB - BUSCAR GIF - Buscar foto - Buscar GIF - Toca para permitir el acceso a tu cámara - Toca para permitir el acceso a tu galería - Recortar imagen - Realzar - Iluminación - Contraste - Exposición - Temperatura - Saturación - Viñeta - Sombras - Grano - Nitidez - Desvanecer - Piel suave - SOMBRAS - ILUMINACIÓN - TODO - ROJO - VERDE - AZUL - No - Lineal - Radial - Eliminar foto - ¿Quieres eliminar esta foto? - Eliminar video - ¿Quieres eliminar este video? - Eliminar GIF - ¿Quieres eliminar este GIF? - ¿Quieres eliminar esta foto para todos? - ¿Quieres eliminar este video para todos? - ¿Quieres eliminar este GIF para todos? - ¿Descartar cambios? - ¿Quieres descartar todos los cambios? - ¿Quieres borrar el historial de búsqueda? - ¿Quieres borrar tu historial de búsqueda? - Historial de búsqueda - Historial de búsqueda - ¿Quieres borrar a “%1$s” de tu historial de búsqueda? - ¿Quieres borrar “%1$s” de tu historial de búsqueda? - Borrar - Borrar - Añadir un comentario... - Comentario de foto - Comentario de video - Comentario en el GIF - Comentario - Eliminar - Editar - Bolígrafo - Resaltador - Neón - Flecha - Duplicar - Contorno - Normal - Enmarcado - Restablecer - Original - Cuadrada - Mostrar multimedia en mensajes por separado - Agrupar multimedia en un mensaje - Enviar sin agrupar - Enviar sin compresión - Elige una portada para tu video de perfil - Establecer como principal - Abrir en el editor - Ahora esta es la foto principal de tu perfil. - Ahora este es el video principal de tu perfil. - Ahora esta es la foto principal del canal. - Ahora este es el video principal del canal. - Ahora esta es la foto principal del grupo. - Ahora este es el video principal del grupo. - Foto guardada en Galería - Video guardado en Galería - Foto guardada en descargas - Video guardado en descargas - GIF guardado en descargas - Archivo guardado en música - Archivo guardado en descargas - %1$d archivos guardados en descargas - Archivo guardado en descargas - %1$d archivos guardados en descargas - %1$d archivos guardados en descargas - %1$d archivos guardados en descargas - %1$d archivos guardados en descargas - %1$d fotos guardadas en galería - Foto guardada en galería - %1$d fotos guardadas en galería - %1$d fotos guardadas en galería - %1$d fotos guardadas en galería - %1$d fotos guardadas en galería - %1$d videos guardados en galería - Video guardado en galería - %1$d videos guardados en galería - %1$d videos guardados en galería - %1$d videos guardados en galería - %1$d videos guardados en galería - %1$d archivos guardados en música - Archivo guardado en música - %1$d archivos guardados en música - %1$d archivos guardados en música - %1$d archivos guardados en música - %1$d archivos guardados en música - %1$d ítems guardados en galería - Ítem guardado en galería - %1$d ítems guardados en galería - %1$d ítems guardados en galería - %1$d ítems guardados en galería - %1$d ítems guardados en galería Verificación en dos pasos Verificación en dos pasos ¡Contraseña establecida! - Esta contraseña se te solicitará al iniciar sesión en un nuevo dispositivo, además del código recibido vía SMS. + Esta contraseña se te solicitará al iniciar sesión en un nuevo dispositivo, además del código recibido por SMS. Volver a Ajustes Volver a Passport Crear contraseña Mostrar contraseña Poner contraseña adicional - Puedes poner una contraseña que se te solicitará al iniciar sesión en un nuevo dispositivo, además del código que recibes vía SMS. + Puedes poner una contraseña que se te solicitará al iniciar sesión en un nuevo dispositivo, además del código que recibes por SMS. Tu contraseña - Activada - Desactivada + Tu contraseña + Tu cuenta está protegida por la verificación en dos pasos.\n¿Aún recuerdas tu contraseña? + Sí, por supuesto + No lo sé + + No + Pon la contraseña Pon tu contraseña + Comprobar contraseña + ¿Aún recuerdas tu contraseña? + ¡Perfecto! + Aún recuerdas tu contraseña. + Esta contraseña es incorrecta. + Volver a Ajustes Pon tu contraseña para hacer la transferencia. - Pon una contraseña + Pon tu contraseña de la verificación en dos pasos para recaudar. Pon una nueva contraseña - Pon tu nueva contraseña Repite tu contraseña + Nueva contraseña + Ahora puedes establecer la nueva contraseña que se utilizará para iniciar sesión en tu cuenta. + Pon la nueva contraseña + Repite la nueva contraseña Correo de recuperación Correo de recuperación + Puedes configurar un correo de recuperación para restablecer tu contraseña y restaurar el acceso a tu cuenta de Telegram. Tu correo - Tu código de correo - Por favor, confirma tu correo poniendo el código que acabas de recibir en %1$s. + Tu nuevo correo + Tu correo ha sido cambiado. Por favor, añade un correo válido. Es la única forma de recuperar una contraseña olvidada. Omitir Advertencia @@ -2819,7 +860,6 @@ ¡Ya casi! Por favor, revisa tu correo (no olvides la carpeta de spam) para completar la configuración de la verificación en dos pasos. ¡Listo! - Tu contraseña para la verificación en dos pasos está activada. Tu contraseña de la verificación en dos pasos ha sido cambiada. Tu correo de recuperación para la verificación en dos pasos ahora está activo. Tu correo de recuperación para la verificación en dos pasos ha sido cambiado. @@ -2831,37 +871,52 @@ ¿Quieres desactivar tu contraseña? ¿Quieres anular la configuración de la verificación en dos pasos? ¿Quieres anular la configuración del correo de recuperación? + ¿Cancelar el restablecimiento de la contraseña? Si solicitas un nuevo restablecimiento más tarde, tomará otros 7 días. + + NO + Cancelar restablecimiento Anular configuración - ¡Advertencia! ¡Todos los datos guardados en tu Telegram Passport se perderán! + Todos los datos guardados en tu Telegram Passport se perderán. Pista para la contraseña + Puedes poner una pista opcional para tu contraseña. Pista Crea una pista para tu contraseña + Crea una pista para tu contraseña. Las contraseñas no coinciden + Repite la contraseña Anular la configuración de la verificación Anular configuración - Anular la configuración del correo de recuperación + Anular la configuración del correo Anular Desactivar Para completar la configuración de la verificación en dos pasos, revisa tu correo (no olvides la carpeta de spam) y pon el código que te enviamos. - Para completar la configuración del correo de recuperación, revisa %1$s (no olvides la carpeta de spam) y pon el código que te enviamos. La pista debe ser diferente de tu contraseña - Correo inválido. Por favor, revisa si lo pusiste correctamente y reinténtalo. + Dirección de correo inválida. Por favor, reinténtalo. Lo sentimos - Como no estableciste un correo electrónico de recuperación cuando configuraste tu contraseña, las opciones restantes son recordar tu contraseña o restablecer tu cuenta. + Como no estableciste un correo de recuperación cuando configuraste tu contraseña, las opciones restantes son recordar tu contraseña o restablecer tu cuenta. + Como no estableciste un correo de recuperación cuando configuraste tu contraseña, las opciones restantes son recordar tu contraseña o esperar 7 días hasta que tu contraseña sea restablecida. + ¿Quieres restablecer tu contraseña de la verificación en dos pasos? + Tu contraseña de la verificación en dos pasos fue restablecida. RESTABLECER CUENTA + RESTABLECER CONTRASEÑA + Puedes restablecer tu contraseña en %1$s. + Restablecer contraseña Código de recuperación Enviamos un código de recuperación al correo que nos diste:\n\n%1$s - Por favor, revisa tu correo y pon el código de 6 dígitos que te enviamos. + Revisa tu correo y pon el código de 6 dígitos que te enviamos para desactivar tu contraseña de la nube. ¿No puedes acceder a %1$s? ¿Tienes problemas para acceder a tu correo? Si no puedes acceder a tu correo, las opciones restantes son recordar tu contraseña o restablecer tu cuenta. + Si no tienes acceso a tu correo, las opciones restantes son recordar tu contraseña o esperar 7 días hasta que tu contraseña sea restablecida. + ¿No puedes acceder a %1$s? + Solicitaste recientemente un restablecimiento de la contraseña que fue cancelado. Por favor, espera %1$s antes de hacer otra solicitud. RESTABLECER MI CUENTA - Si continúas con el reinicio de tu cuenta, perderás todos tus chats y mensajes, junto con toda la multimedia y archivos que compartiste. Advertencia - Esta acción no se puede deshacer.\n\nSi restableces tu cuenta, todos tus mensajes y chats se eliminarán. + Esta acción no se puede deshacer. Si continúas con el reinicio de tu cuenta, perderás todos tus chats, mensajes, multimedia y archivos de Telegram. Restablecer cuenta Contraseña Tienes activada la verificación en dos pasos, así que tu cuenta está protegida con una contraseña adicional. + Verificación en dos pasos activada. Tu cuenta está protegida con una contraseña. ¿Olvidaste la contraseña? Recuperar contraseña Código @@ -2871,162 +926,40 @@ Pon el código El código de verificación fue enviado a tu correo. Tienes activada la verificación en dos pasos.\nNecesitarás la contraseña que configuraste para iniciar tu sesión en Telegram. - - Datos y almacenamiento - Uso de almacenamiento y red - Uso de almacenamiento - Uso de datos - Almacenar en - Móvil - Wi-Fi - Roaming - Mensajes y otros datos - Enviados - Recibidos - Bytes enviados - Bytes recibidos - Archivos - Llamadas - Llamadas salientes - Llamadas entrantes - Tiempo total - Total - Restablecer estadísticas - Uso de la red desde el %1$s - Restablecer estadísticas - ¿Quieres restablecer las estadísticas de uso? - - Privacidad y seguridad - Privacidad - Última vez y en línea - Fotos de perfil - ¿Quién puede ver mis fotos y videos de perfil? - Puedes restringir quién puede ver tu foto de perfil con gran precisión. - Puedes añadir usuarios o grupos como excepciones que anularán los ajustes de arriba. - Número de teléfono - ¿Quién puede ver mi número? - ¿Quién puede encontrarme por mi número? - Los usuarios que tengan tu número guardado en sus contactos también lo verán en Telegram. - Los usuarios que añadan tu número a sus contactos lo verán en Telegram sólo si son tus contactos. - Puedes añadir usuarios o grupos como excepciones que anularán los ajustes de arriba. - Mensajes reenviados - Enlace a tu cuenta - Enlace según los ajustes de abajo - Sin un enlace a tu cuenta - ¿Quién puede añadir un enlace a mi cuenta al reenviar mis mensajes? - Los mensajes que envíes no enlazarán a tu cuenta al ser reenviados a otros chats. - Puedes añadir usuarios o grupos como excepciones que anularán los ajustes de arriba. - Reinhardt, necesitamos encontrarte algunas nuevas canciones 🎶. - Peer-to-peer - Peer-to-peer - Usar peer-to-peer con - Bots y sitios web - Eliminar información de pago y envío - Eliminar información de pago - ¿Quieres eliminar tu información de pago y envío? - ¿Quieres eliminar tu información de envío y dar la orden a todos los proveedores de pago de eliminar tus tarjetas de crédito guardadas? Telegram nunca almacena tus datos de tarjetas de crédito. - Información de pago eliminada. - Información de envío eliminada. - Información de pago y envío eliminada. - Sitios web en los que iniciaste sesión con Telegram. - Información de envío - Información de pago - Eliminar todos los borradores - Todos - Mis contactos - Nadie - Todos (-%1$d) - Mis contactos (+%1$d) - Mis contactos (-%1$d) - Mis contactos (-%1$d, +%2$d) - Nadie (+%1$d) - Todos - Mis contactos - Nadie - Todos (-%1$d) - Mis contactos (+%1$d) - Mis contactos (-%1$d) - Mis contactos (-%1$d, +%2$d) - Nadie (+%1$d) - Seguridad - Autodestrucción de la cuenta - Nuevos chats de desconocidos - Archivar y silenciar - Archiva y silencia automáticamente los nuevos chats, grupos y canales de quienes no son tus contactos. - Eliminar mi cuenta - Eliminar mi cuenta si estoy fuera - Si estoy fuera - Si no estás en línea al menos una vez durante este período, tu cuenta se eliminará junto con todos tus mensajes y contactos. - ¿Quién puede ver mi últ. vez y estado en línea? - Añadir excepciones - Añadir a excepciones - No verás el estado de última vez ni el de en línea de las personas con las que no compartas el tuyo. En su lugar, se mostrarán conexiones indeterminadas (recientemente, hace unos días, hace unas semanas). - Cambiaste algunos ajustes de privacidad. ¿Aplicar cambios? - Compartir con - No compartir con - Puedes añadir usuarios o grupos como excepciones que anularán los ajustes de arriba. - Compartir - No compartir - Añadir usuarios - Lo sentimos, hay demasiadas solicitudes. Es imposible cambiar los ajustes de privacidad ahora. Por favor, espera. - Mantén pulsado sobre un usuario para eliminarlo. - Grupos y canales - ¿Quién puede añadirme? - Puedes restringir quién puede añadirte a grupos y canales con gran precisión. - Permitir - No permitir - Estos usuarios podrán o no añadirte a grupos y canales, sin importar los ajustes de arriba. - Elige quién puede añadirte a grupos y canales. - No puedes añadir a este usuario a grupos debido a sus ajustes de privacidad. - No puedes añadir a este usuario a canales debido a sus ajustes de privacidad. - No puedes crear un grupo con estos usuarios debido a sus ajustes de privacidad. - Al desactivar peer-to-peer todas las llamadas pasarán por los servidores de Telegram para evitar dar a conocer tu dirección IP, pero podría disminuir la calidad del audio y video. - Eliminar contactos sincronizados - Sugerir contactos frecuentes - Muestra a las personas con las que te comunicas frecuentemente en la parte de arriba de la sección de búsqueda para un acceso rápido. - Desactivar sugerencias - Esto eliminará todos los datos sobre las personas con las que conversas frecuentemente, así como los bots integrados que podrías utilizar. - Añadir usuarios o grupos - Excepciones - Ninguno - Eliminar contactos - Esto eliminará tus contactos de los servidores de Telegram.\n\nSi “**Sincronizar contactos**” está activado, los contactos se sincronizarán otra vez. + Elige un correo de acceso + Recibirás los códigos de inicio de sesión de Telegram por correo y no por SMS. Pon una dirección de correo a la que tengas acceso. + Pon el nuevo correo + Por favor, revisa tu correo %1$s (no olvides la carpeta de spam) y pon el código que te enviamos. + Revisa tu correo + Por favor, pon el código que hemos enviado a tu correo %1$s. + Revisa tu nuevo correo + Por favor, pon el código que hemos enviado a tu nuevo correo %1$s. + o Enviando video... Enviando GIF... - - bot - Compartir - Añadir a un grupo - Ajustes - Ayuda - tiene acceso a los mensajes - no tiene acceso a los mensajes - ¿Qué puede hacer este bot? - INICIAR - REINICIAR - Detener bot - Reiniciar bot Listo Abrir Guardar Cancelar + Reducir Cerrar Cambiar Añadir + Añadido Editar Enviar Llamar Videollamar Copiar + Restringir + Suspender + Renombrar Eliminar Iniciar - Eliminar y detener Reenviar Reintentar - Desde la cámara - Desde Galería Eliminar foto OK OK @@ -3036,9 +969,7 @@ Crear enlace RECORTAR Actualizar app - ACTUALIZAR ACTUALIZAR - MÁS TARDE Aceptar Aceptar Rechazar @@ -3048,27 +979,31 @@ Rechazar y eliminar Siguiente Activar + Reportar falso positivo Te uniste al grupo con un enlace de invitación un1 eliminó el enlace de invitación un2 - un1 creó el enlace de invitación un2 un1 editó el enlace de invitación un2 a un3 - un1 cambió el volumen de un2 a %1$d%% + un1 cambió el volumen de un2 al %1$d %% un1 anuló el enlace de invitación un2 un1 editó el enlace de invitación un2 - un1 estableció la autoeliminación de mensajes en %1$s - Estableciste la autoeliminación de mensajes en %1$s + un1 estableció la autoeliminación en %1$s + Estableciste la autoeliminación en %1$s Los mensajes en este canal se eliminarán automáticamente en %1$s Los mensajes en este canal ya no se eliminarán automáticamente - un1 desactivó el temporizador de autoeliminación - Desactivaste el temporizador de autoeliminación + un1 desactivó la autoeliminación + Desactivaste la autoeliminación un1 se unió al grupo con un enlace de invitación + un1 se unió al grupo con el enlace de invitación de la carpeta + un1 se unió al canal con un enlace + un1 se unió al canal con un enlace de invitación de la carpeta un1 eliminó a un2 + un1 reembolsó %1$s un1 salió del grupo un1 añadió a un2 un1 eliminó la foto del grupo un1 cambió la foto del grupo - un1 cambió el video del grupo + un1 cambió la foto del grupo un1 cambió el nombre del grupo a un2 un1 creó el grupo Eliminaste a un2 @@ -3080,7 +1015,7 @@ un1 puntuó %1$s en un2 Eliminaste la foto del grupo Cambiaste la foto del grupo - Cambiaste el video del grupo + Cambiaste la foto del grupo Cambiaste el nombre del grupo a un2 Creaste el grupo un1 te eliminó @@ -3091,17 +1026,22 @@ un1 ahora está a %1$s de ti Ahora estás a %1$s de un1 un1 ahora está a %1$s de un2 - un1 te añadió a este grupo - un1 te añadió a este canal - un1 inició un chat de voz - Iniciaste un chat de voz - Chat de voz iniciado - Chat de voz programado para el %1$s - Chat de voz finalizado (%s) - un1 invitó a un2 al chat de voz - Invitaste a un2 al chat de voz - un1 te invitó al chat de voz - Autorizaste que este bot te envíe mensajes cuando iniciaste sesión en %1$s. + un1 te invitó a este grupo + un1 te invitó a este canal + un1 inició un videochat + Iniciaste un videochat + Videochat programado para el %1$s + Stream en directo iniciado + Stream en directo programado para el %1$s + Stream en directo finalizado (%s) + un1 finalizó el videochat (%s) + Finalizaste el videochat (%s) + un1 invitó a un2 al videochat + Invitaste a un2 al videochat + un1 te invitó al videochat + Al iniciar sesión en %1$s, autorizaste que este bot te envíe mensajes. + Al iniciar sesión en la app “%1$s”, autorizaste que este bot te envíe mensajes. + Autorizaste que este bot te envíe mensajes en su app web %1$s recibió los siguientes documentos: %2$s Datos personales Dirección @@ -3116,88 +1056,96 @@ Contrato de alquiler Número de teléfono Dirección de correo - Tu versión de Telegram no es compatible con este mensaje. Actualiza tu app para verlo: https://telegram.org/update + Tu versión de Telegram no es compatible con este mensaje. Actualiza tu app a la última versión. + Tu versión está actualizada. Foto Video Foto con autodestrucción Video con autodestrucción - La foto expiró - El video expiró + Foto expirada + Video expirado + Videomensaje expirado + Mensaje de voz expirado GIF Ubicación Ubicación en tiempo real Contacto + Respuestas Archivo Sticker Mensaje de voz Videomensaje + Mensaje de voz de un solo uso + Videomensaje de un solo uso Juego ¡Hiciste una captura de pantalla! ¡un1 hizo una captura de pantalla! - - Límite alcanzado - Chats inactivos - canal, %1$s inactivo - %1$s, %2$s inactivo - Salir de %1$s - Demasiadas comunidades - Eres miembro de demasiados grupos y canales. Por favor, sal de algunos antes de unirte a uno nuevo. - Eres miembro de demasiados grupos y canales. Por favor, sal de algunos antes de crear uno nuevo. - Eres miembro de demasiados grupos y canales. Por razones técnicas, necesitas salir de algunos antes de cambiar este ajuste en tus grupos. - El usuario objetivo es miembro de demasiados grupos y canales. Por favor, pídele que salga de algunos primero. + Álbum + No puedes fijar más de %d temas en la parte superior. ¡Advertencia! Esto **eliminará todos los mensajes** en este chat para **ambos** participantes. + ¡Advertencia! Esto **eliminará todos los mensajes** en este canal. ¡Advertencia! Esto **eliminará todos los mensajes** en este chat. Eliminar todo - ¿Detener la carga? - Actualizar Telegram + ¿Detener la carga? + ¿Quieres detener la carga? + Actualiza Telegram Lo sentimos, tu app de Telegram no está actualizada y no puede procesar esta solicitud. Por favor, actualiza Telegram. Número de teléfono inválido. Por favor, revisa el número y reinténtalo. Por favor, inicia sesión en tu cuenta de Telegram para usar Telegram Passport. Este número de teléfono está suspendido. - Código expirado. Por favor, vuelve a iniciar sesión. + Código expirado. Por favor, empieza de nuevo. + Código incorrecto + No se pudo finalizar + Por razones de seguridad, no puedes cambiar tu número de teléfono desde un dispositivo al que te acabas de conectar. Por favor, utiliza una conexión anterior o espera algunas horas. + Este dominio del correo no está permitido. + Token del correo inválido. + Dirección de correo inválida. + Correo de acceso + Esta dirección de correo será usada cada vez que inicies sesión en tu cuenta de Telegram en un nuevo dispositivo. + Cambiar correo Demasiados intentos. Por favor, reinténtalo más tarde. Demasiados intentos. Por favor, reinténtalo en %1$s Código inválido. Por favor, reinténtalo. Has eliminado y vuelto a crear tu cuenta muchas veces recientemente. Por favor, espera algunos días antes de registrarte de nuevo. - Nombre inválido + Nombre no permitido. Por favor, prueba con otro. Lo sentimos, este apellido no se puede usar Cargando... No tienes reproductor de video. Por favor, instala uno para continuar. - Por favor, envía un correo describiendo tu problema a sms@telegram.org + Por favor, envía un correo describiendo tu problema a reports@stel.com No tienes aplicaciones que puedan manejar el tipo de archivo “%1$s”. Por favor, instala una para continuar. Este usuario aún no tiene Telegram. ¿Enviarle una invitación? ¿Quieres hacerlo? Añadir bot ¿Quieres añadir a **%1$s** al grupo **%2$s**? - Cantidad de últimos mensajes para reenviar: + Cantidad de mensajes anteriores a reenviar: ¿Añadir a %1$s al grupo? - Añadir a %1$s - Añadir miembro + Añadir miembro + Añadir %1$d miembros ¿Quieres añadir a %1$s a **%2$s**? - ¿Quieres añadir a %1$s a **%2$s**? + ¿Quieres añadir a este miembro a **%2$s**? + ¿Quieres añadir a %1$d miembros a **%2$s**? Mostrar los últimos 100 mensajes a los nuevos miembros Mostrar los últimos 100 mensajes a **%1$s** ¿Quieres enviar este mensaje a **%1$s**? ¿Quieres compartir este juego con **%1$s**? ¿Quieres enviar este contacto a **%1$s**? - ¿Quieres cerrar sesión?\n\nTen en cuenta que puedes usar Telegram en todos tus dispositivos a la vez.\n\nRecuerda, cerrar sesión elimina los chats secretos. + ¿Quieres cerrar sesión?\n\nEsto cancelará todos tus chats secretos.\n\nPuedes usar Telegram en todos tus dispositivos al mismo tiempo y usar varias cuentas en la misma app. Eliminar %1$s Vaciar %1$s - Vaciar la caché para %1$s - ¿Quieres eliminar los chats seleccionados? - ¿Quieres eliminar el historial en los chats seleccionados? + Borrar la caché de %1$s + ¿Quieres eliminar estos chats? + ¿Quieres eliminar el historial en estos chats? ¿Borrar todo el texto y la multimedia en caché de los chats seleccionados? ¿Quieres eliminar y salir del grupo? ¿Quieres eliminar y salir del canal? ¿Quieres eliminar y salir del grupo **%1$s**? - ¿Quieres eliminar este chat? - ¿Quieres eliminar el chat con **%1$s**? + ¿Eliminar definitivamente este chat? + ¿Eliminar definitivamente el chat con **%1$s**? ¿Quieres eliminar el chat con **%1$s** y bloquearlo? ¿Quieres eliminar **Mensajes guardados**? ¿Quieres eliminar tu chat secreto con **%1$s**? - ¿Quieres eliminar el chat **%1$s**? Eliminar borradores ¿Quieres eliminar todos los borradores en la nube? ¿Compartir tu ubicación? @@ -3207,6 +1155,8 @@ Este bot podría querer saber tu ubicación cada vez que le envías una solicitud. Esto se puede utilizar para mostrar resultados específicos para tu ubicación. ¿Compartir tu número? El bot sabrá tu número de teléfono. Puede ser útil para la integración con otros servicios. + **%s** sabrá tu número de teléfono. Puede ser útil para la integración con otros servicios. + Esto también desbloqueará el bot. ¿Quieres compartir tu número de teléfono %1$s con **%2$s**? ¿Quieres compartir tu número de teléfono? ¿Quieres bloquear a **%1$s**? @@ -3214,22 +1164,27 @@ ¿Quieres eliminar este contacto? Chat secreto ¿Quieres iniciar un chat secreto? - ¿Quieres cancelar el registro? + ¿Quieres detener el registro? ¿Quieres detener el proceso de verificación? ¿Quieres eliminar el historial del chat con **%1$s**? - ¿Quieres eliminar el historial del chat secreto para ti y para **%1$s**? + Esto eliminará todos los mensajes para ti y para **%1$s**? ¿Quieres hacerlo? ¿Quieres eliminar el historial en **%1$s**? + ¿Quieres eliminar el historial del canal en **%1$s**? ¿Quieres eliminar todos los mensajes en este chat? - ¿Quieres eliminar el historial de **Mensajes guardados**? + ¿Quieres eliminar el historial de **Mensajes guardados**? Esta acción no se puede deshacer. ¿Borrar todo el texto y la multimedia en caché de este canal? ¿Borrar todo el texto y la multimedia en caché de este grupo? Eliminar %1$s + No guardar %1$s Eliminar mensaje + No guardar mensaje “Eliminar para todos” también eliminará los %1$s para los otros miembros del grupo. “Retirar mis mensajes” también eliminará los %1$s que enviaste para los otros miembros del grupo. “Retirar mis mensajes” también eliminará los %1$s que enviaste para %2$s. + ¿Quieres quitar este mensaje de mensajes guardados? ¿Quieres eliminar este mensaje? ¿Quieres eliminar estos mensajes? + ¿Quieres eliminar estos mensajes? ¿Quieres eliminar este mensaje para todos? ¿Quieres eliminar estos mensajes para todos? Retirar mis mensajes @@ -3239,7 +1194,9 @@ ¿Quieres enviar este mensaje a **%1$s**? ¿Quieres compartir este juego en **%1$s**? ¿Quieres enviar este contacto a **%1$s**? - No hay ninguna cuenta de Telegram con este nombre de usuario. + Nombre de usuario no encontrado. + No hay una cuenta de Telegram con este número de teléfono. + No se encontró la carpeta de chats. Este bot no puede unirse a grupos. ¿Quieres activar las vistas previas de enlaces ampliadas en los chats secretos? Ten en cuenta que son generadas en los servidores de Telegram. Ten en cuenta que los bots integrados son hechos por terceros. Para que el bot funcione, los símbolos escritos después del nombre de usuario del bot son enviados a su respectivo desarrollador. @@ -3250,120 +1207,57 @@ Por favor, permite a Telegram recibir llamadas para que podamos confirmar tu número de teléfono automáticamente. Lo sentimos, no tienes permitido hacer esto. No puedes añadir a este usuario o bot al grupo porque lo has bloqueado. Por favor, desbloquéalo para continuar. - UNIRME AL GRUPO - No puedes añadir a este usuario como administrador porque no es un miembro de este grupo y no tienes permitido añadirlo. + No puedes añadir a este usuario como admin. porque no es un miembro de este grupo y no tienes permitido añadirlo. No puedes añadir a este usuario como administrador porque está en la lista de usuarios expulsados y no puedes quitar su expulsión. No puedes añadir a este usuario porque está en la lista de usuarios expulsados y no puedes quitar su expulsión. - No puedes expulsar a este usuario porque es un administrador del grupo y no tienes permitido degradarlo. - Los administradores del grupo han restringido que envíes stickers. - Lo sentimos, los administradores del grupo han restringido que envíes multimedia. - Lo sentimos, los administradores del grupo han restringido que envíes encuestas. + No puedes expulsar a este usuario porque es un admin. de este grupo y no tienes permitido degradarlo. + Los admins. de este grupo han restringido que puedas enviar stickers. + Los admins. de este grupo han restringido que puedas enviar multimedia. + Los admins. de este grupo han restringido que envíes fotos. + Los admins. de este grupo han restringido que envíes videos. + Los admins. de este grupo han restringido que puedas enviar encuestas. + Los admins. de este grupo han restringido que envíes mensajes de voz. + Los admins. de este grupo han restringido que envíes videomensajes. + Los admins. de este grupo han restringido que envíes archivos. + Los admins. de este grupo han restringido que envíes música. No está permitido enviar stickers en este grupo. + No está permitido enviar fotos en este grupo. + No está permitido enviar videos en este grupo. No está permitido enviar multimedia en este grupo. No está permitido enviar encuestas en este grupo. - Lo sentimos mucho, pero esto significa que no puedes registrarte en Telegram.\n\nA diferencia de otros, nosotros no usamos los datos para la publicidad dirigida u otros propósitos comerciales. Telegram sólo almacena la información que necesita para funcionar como un servicio en la nube. Puedes ajustar cómo usamos tus datos (por ejemplo, eliminar contactos sincronizados) en los ajustes de privacidad y seguridad.\n\nPero si no estás de acuerdo con los modestos requisitos de Telegram, no podremos brindarte este servicio. + No está permitido enviar mensajes de voz en este grupo. + No está permitido enviar videomensajes en este grupo. + No está permitido enviar archivos en este grupo. + No está permitido enviar música en este grupo. + No puedes enviar mensajes de voz a este usuario debido a sus ajustes de privacidad. + No puedes enviar videomensajes a este usuario debido a sus ajustes de privacidad. + No se pudo reenviar + Lamentablemente, esto significa que no puedes registrarte en Telegram.\n\nA diferencia de otras apps, Telegram no usa los datos de los usuarios para publicidad dirigida u otros propósitos comerciales. Telegram sólo almacena la información que necesita para funcionar como un servicio en la nube. Puedes ajustar cómo usamos tus datos (por ejemplo, eliminar los contactos sincronizados) en los ajustes de privacidad y seguridad.\n\nSi no estás de acuerdo con los modestos requisitos de Telegram, no podremos brindarte este servicio. Verificación de edad Política de privacidad y términos de servicio Toca Aceptar para confirmar que tienes %1$s o más. - Lo sentimos mucho, pero esto significa que debemos separarnos aquí. A diferencia de otros, nosotros no usamos los datos para la orientación de anuncios u otros propósitos comerciales. Telegram sólo almacena la información que necesita para funcionar como un servicio en la nube. Puedes ajustar cómo usamos tus datos (por ejemplo, eliminar contactos sincronizados) en los ajustes de privacidad y seguridad.\n\nPero si no estás de acuerdo con las modestas necesidades de Telegram, no podremos brindarte este servicio. Puedes eliminar tu cuenta ahora o usarla un tiempo y eliminarla después si no estás de acuerdo con la forma en la que usamos tus datos. - Advertencia: Esto eliminará de forma irreversible tu cuenta de Telegram junto a todos los datos que almacenas en la nube de Telegram.\n\nImportante: Puedes cancelar ahora y exportar tus datos antes de eliminar tu cuenta en vez de perderlo todo. (Para hacerlo, abre la última versión de Telegram Desktop y ve a Ajustes > Avanzados > Exportar datos de Telegram). + Lamentablemente, no hay otras opciones. A diferencia de otras apps, Telegram no usa los datos de los usuarios para publicidad dirigida u otros propósitos comerciales. Telegram sólo almacena la información que necesita para funcionar como un servicio en la nube. Puedes ajustar cómo usamos tus datos en los ajustes de privacidad y seguridad.\n\nSi no estás de acuerdo con los modestos requisitos de Telegram, no podremos brindarte este servicio. + Advertencia: Esto eliminará de forma irreversible tu cuenta de Telegram y todos los datos que almacenas en la nube de Telegram.\n\nImportante: Puedes “Cancelar” ahora y exportar tus datos primero en lugar de perderlos. (Para hacerlo, abre la última versión de Telegram Desktop y ve a Ajustes > Avanzados > Exportar datos de Telegram). - Para que puedas comunicarte con tus amigos en todos tus dispositivos, tus contactos se sincronizarán continuamente con los servidores en la nube fuertemente cifrados de Telegram. - Telegram necesita acceso al almacenamiento para que puedas enviar y guardar fotos, videos, música y otros archivos. - Telegram necesita acceso a tu micrófono para que puedas enviar mensajes de voz. - Telegram necesita acceso a tu micrófono para que puedas grabar videos. - Telegram necesita acceso a la cámara para que puedas tomar fotos y videos. Por favor, actívalo en Ajustes. + **Telegram** necesita acceso al almacenamiento para que puedas enviar y guardar fotos, videos, música y otros archivos. Toca Ajustes > Permisos, y activa **Archivos y contenido multimedia**. + **Telegram** necesita acceso al micrófono para que puedas enviar mensajes de voz. Toca Ajustes > Permisos, y activa **Micrófono**. + **Telegram** necesita acceso al micrófono para que puedas enviar mensajes de voz. Toca Ajustes > Permisos, y activa **Micrófono**. + **Telegram** necesita acceso a la cámara para que puedas tomar fotos y videos. Toca Ajustes > Permisos, y activa **Cámara**. + **Telegram** necesita acceso a la cámara y al micrófono para que puedas enviar videomensajes. Toca Ajustes > Permisos, y activa **Micrófono** y **Cámara**. Telegram necesita acceso a tu ubicación para que puedas compartirla con tus amigos. - Telegram necesita acceso a tu ubicación. + Telegram necesita acceso a tu ubicación para que puedas añadir el widget del clima a tus historias. + **Telegram** necesita acceso a la ubicación para que puedas compartirla con tus amigos. Toca Ajustes > Permisos, y activa **Ubicación**. + **Telegram** necesita acceso a la ubicación para que puedas saber cómo llegar. Toca Ajustes > Permisos, y activa **Ubicación**. + **Telegram** necesita acceso a los contactos para que puedas compartirlos con tus amigos. Toca Ajustes > Permisos, y activa **Contactos**. + **Telegram** necesita acceso al almacenamiento para que puedas subir fotos de perfil. Toca Ajustes > Permisos, y activa **Archivos y contenido multimedia**. + **Telegram** necesita acceso a tus archivos de música para que puedas añadirlos a tu historia. Toca Ajustes > Permisos, y activa **Música y audio**. Telegram necesita acceso a mostrarse sobre otras aplicaciones para usar el modo imagen en imagen. El modo de superposición te permite usar la opción de pulsar para hablar y ver quién está hablando aunque estés fuera de Telegram. - AJUSTES + Ajustes Por favor, permite a Telegram aparecer en la pantalla bloqueada para que las llamadas funcionen correctamente. - Para compartir tu ubicación en tiempo real en este chat, Telegram necesita acceso a tu ubicación todo el tiempo, incluyendo cuando la app está en segundo plano.\n\nAccederemos a tu ubicación sólo durante el tiempo que elijas, y puedes dejar de compartirla en cualquier momento. No usaremos tu ubicación para ningún otro propósito que no sea el de compartirla en este chat. + Para compartir tu ubicación en tiempo real en este chat, Telegram necesita acceso a tu ubicación todo el tiempo, incluyendo cuando la aplicación está en segundo plano.\n\nAccederemos a tu ubicación sólo durante el tiempo que elijas, y puedes dejar de compartirla en cualquier momento. No la usaremos para ningún otro propósito que no sea el de compartirla en este chat. Modo imagen en imagen - Superposición del chat de voz - - Crecimiento - Seguidores - Interacciones - Vistas por fuente - Nuevos seguidores por fuente - Idiomas - Posts recientes - Alejar - Interacciones de IV - Cargando estadísticas… - Espera un momento mientras generamos los gráficos. - Vistas por horas (GMT) - Desliza hacia arriba para\nfijar la grabación - Notificaciones - Almacenamiento del dispositivo - Libre • %s - Borrar caché de Telegram - Resumen - Vistas por post - Reenvíos por post - Notificaciones activas - Borrar base de datos local - "Caché de Telegram • %s " - Base de datos local de Telegram • %s - ¡Se liberaron %s en tu dispositivo! - Otras apps • %s - Miembros del grupo - Nuevos miembros por fuente - Idioma principal de los miembros - Mensajes - Acciones - Miembros - Mensajes - Miembros que leen - Miembros que publican - %1$d caracteres - %1$d carácter - %1$d caracteres - %1$d caracteres - %1$d caracteres - %1$d caracteres - %1$d eliminaciones - %1$d eliminación - %1$d eliminaciones - %1$d eliminaciones - %1$d eliminaciones - %1$d eliminaciones - %1$d expulsiones - %1$d expulsión - %1$d expulsiones - %1$d expulsiones - %1$d expulsiones - %1$d expulsiones - %1$d restricciones - %1$d restricción - %1$d restricciones - %1$d restricciones - %1$d restricciones - %1$d restricciones - %1$d añadidos - %1$d añadido - %1$d añadidos - %1$d añadidos - %1$d añadidos - %1$d añadidos - Top admins. - Top miembros - Top miembros que añaden - %s por mensaje - Top días de la semana - Ver mensajes - Abrir perfil - Hoy - Ayer - Vistas - Reenvíos en público - Reenvíos en privado - Ver estadísticas - Ver estadísticas del canal - Estadísticas del mensaje - Abrir mensaje + Superposición del videochat Telegram Rápido @@ -3373,1088 +1267,28 @@ Basado en la nube La app de mensajería **más rápida**\ndel mundo. Es **gratis** y **segura**. **Telegram** entrega mensajes más\nrápido que cualquier otra aplicación. - **Telegram** es gratis para siempre.\nSin publicidad. Sin suscripciones. + **Telegram** da almacenamiento gratuito e\nilimitado en la nube para chats y multimedia. **Telegram** mantiene tus mensajes\na salvo del ataque de hackers. **Telegram** no tiene límite de espacio\npara tus archivos multimedia y chats. **Telegram** te permite acceder a tus\nmensajes desde múltiples dispositivos. Empezar a chatear - - Ajustes de la cuenta - Usar menos datos - Llamada entrante - Conectando - Intercambiando claves de cifrado - Esperando - Solicitando - Colgando - Llamada finalizada - Conexión fallida - Llamando - Línea ocupada - Llamada de Telegram - Videollamada de Telegram - Llamada de Telegram en curso - Chat de voz en curso - Finalizar - Otra llamada en curso - ¿Quieres finalizar la llamada con **%1$s** e iniciar una nueva con **%2$s**? - ¿Quieres finalizar la llamada con **%1$s** e iniciar un chat de voz en **%2$s**? - Hay otro chat de voz en curso - ¿Quieres salir del chat de voz en **%1$s** e iniciar uno nuevo en **%2$s**? - ¿Quieres salir del chat de voz en **%1$s** y llamar a **%2$s**? - Llamadas - Tono de llamada - Puedes personalizar el tono de llamada desde este contacto en Telegram. - Llamadas - Eliminar todas las llamadas - Eliminar llamadas - Eliminar para todos - ¿Quieres eliminar todas las llamadas recientes? - ¿Quieres eliminar de recientes las llamadas seleccionadas? - El peer-to-peer en llamadas será o no será utilizado con estos usuarios, sin importar los ajustes de arriba. - Usar peer-to-peer con - ¿Quién puede llamarme? - Puedes restringir quién puede llamarte. - Estos usuarios podrán o no podrán llamarte, sin importar los ajustes de arriba. - Nunca - En datos móviles - Siempre - En roaming - Contestar - Rechazar - Estás sin conexión. Por favor, conéctate a internet para realizar llamadas. - Estás sin conexión. Conéctate a internet para que puedas unirte a chats de voz. - Tienes activado el modo avión. Por favor, desactívalo o conéctate a una red Wi-Fi para realizar llamadas. - Tienes el modo avión activado. Desactívalo o conéctate a una red Wi-Fi para unirte a chats de voz. - Sin conexión - Modo avión - Ajustes - Llamada saliente - Llamada entrante - Videollamada saliente - Videollamada entrante - Llamada perdida - Llamada cancelada - Llamada rechazada - Videollamada perdida - Videollamada cancelada - Videollamada rechazada - %1$s (%2$s) - Sin llamadas recientes - Tus llamadas de voz y video\nrecientes aparecerán aquí. - La app de **%1$s** está usando un protocolo incompatible. Necesita actualizar la app para poder llamar. - La app de **%1$s** no es compatible con las llamadas. Necesita actualizar su app para recibir tu llamada. - Lo sentimos, **%1$s** está usando una versión antigua de Telegram que no permite hacer videollamadas. - Llamar por voz - Por favor, evalúa la calidad de tu llamada de Telegram - Telegram necesita acceso a tu micrófono para que puedas realizar llamadas. - Telegram necesita acceso a tu micrófono y cámara para que puedas hacer videollamadas. - Telegram necesita acceso a tu cámara para que puedas hacer videollamadas. - Añade un comentario opcional - Devolver llamada - Llamar de nuevo - Por defecto - ¿Quieres eliminar esta entrada del registro de llamadas? - Llamada de Telegram - Videollamada de Telegram - Auricular - Auriculares - Altavoz - Teléfono - Bluetooth - Dispositivos de salida - VOLVER A LLAMADA - Los ajustes de privacidad de %1$s no permiten tus llamadas. - Si los emojis son los mismos para %1$s, la llamada es 100%% segura. - Evaluar llamada - ¿Qué salió mal? - Incluir información técnica - Esto no revela los contenidos de tu chat y nos ayuda a resolver el problema antes. - Gracias por ayudarnos a mejorar las llamadas de Telegram. - contestando como %s - Responder con un mensaje - Estas respuestas rápidas estarán disponibles cuando respondas a una llamada entrante con un mensaje de Telegram. Puedes modificarlas para decir lo que tú quieras. - No puedo hablar ahora. ¿Qué pasa? - Te llamaré enseguida. - Te llamaré más tarde. - No puedo hablar ahora. ¿Me llamas más tarde? - Mensaje personalizado... - Permitir personalización - Llamada de Telegram con %s - Videollamada de Telegram con %s - No se puede establecer una llamada de Telegram en este momento. - Escuché mi propia voz - Escuché ruido de fondo - La otra parte desaparecía - El habla estaba distorsionada - No pude escuchar a la otra parte - La otra parte no me pudo escuchar - La llamada se detuvo inesperadamente - El video estaba distorsionado - El video estaba pixelado - Toca aquí para encender tu cámara - No silenciar - o mantén para hablar - Estás en directo - Silenciado por el administrador - Silenciado - Estás en modo de sólo escucha - toca si quieres hablar - Pediste hablar - Avisaremos a los oradores - Silenciar - Iniciar video - Detener video - Altavoz - Voltear - ¿Cambiar a videollamada? - CAMBIAR - Micrófono de %s apagado - Cámara de %s apagada - Aceptar - Rechazar - Reintentar - Video - ¿Quieres llamar a **%1$s**? - Llamada de voz - ¿Quieres videollamar a **%1$s**? - Videollamada - Reconectando - Iniciar chat de voz - Chat de voz - ¿Iniciar un chat de voz en este grupo? - ¿Quieres iniciar un chat de voz en este canal? - Gestionar chats de voz - Unirme - %1$s miembros hablando - %1$s miembro hablando - %1$s miembros hablando - %1$s miembros hablando - %1$s miembros hablando - %1$s miembros hablando - hablando - %1$d%% hablando - escuchando - quiere hablar - invitado - Salir - Finalizar - Silenciar micrófono - ¿Quieres silenciar a **%1$s** en este chat de voz? - Eliminar participante - ¿Quieres eliminar a %1$s del chat de voz y expulsarlo de %2$s? - **%1$s** fue eliminado del grupo. - **%1$s** ahora puede hablar. - **%1$s** ya no está silenciado para ti. - **%1$s** fue silenciado en este chat. - **%1$s** fue silenciado en este chat para ti. - Silenciar - Los nuevos pueden hablar - Los nuevos son silenciados - Compartir enlace de invitación - Finalizar chat de voz - Cancelar chat de voz - Conectando… - Salir del chat de voz - ¿Quieres salir de este chat de voz? - Finalizar chat de voz - ¿Quieres finalizar este chat de voz? - Finalizar chat de voz - VER CHAT DE VOZ - Chat de voz - Chat de voz programado - Abrir chat de voz - El usuario elegido ya está en este chat de voz. - Lo sentimos, no puedes unirte a chats de voz como administrador anónimo. - Lo sentimos, este chat de voz está lleno. - un1 invitó a un2 al chat de voz - Unirme al chat de voz - ¡Oye! Únete a nuestro chat de voz: %1$s - Invitar miembros - Compartir enlace de invitación - Eliminar - Abrir perfil - Abrir canal - Abrir grupo - Permitirle hablar - Buscar miembros para invitar... - Copiar enlace de invitación - Enlace de invitación copiado al portapapeles. - Toca para activar - Chat de voz finalizado. ¿Quieres iniciar uno nuevo? - Añadir miembro - ¿Quieres añadir a **%1$s** a **%2$s**? - Invitaste a **%1$s** al chat de voz. - Añadir - Volumen - Silenciar para mí - Silenciado para mí - Activar sonido para mí - Toca para unirte - Iniciar grabación - Detener grabación - Iniciar chat de voz como… - Unirme al chat de voz como… - Mostrarme como… - Elige si quieres ser mostrado con tu cuenta personal o como tu canal. - Elige si quieres ser mostrado con tu cuenta personal, este grupo o como uno de tus canales. - Continuar como %1$s - Editar título del chat de voz - Editar permisos - Los participantes de este chat de voz ahora te verán como **%1$s**. - Título del chat de voz - Puede hablar - Sólo escucha - COPIAR ENLACE DE ORADOR - COPIAR ENLACE DE OYENTE - Ahora puedes hablar. - Ahora puedes hablar en **%1$s**. - Detener grabación - ¿Quieres detener la grabación del chat de voz? - Iniciar grabación - ¿Quieres grabar este chat y guardar el resultado en un archivo de audio?\n\nOtros participantes verán que el chat está siendo grabado. - Título de la grabación - Audio guardado en **Mensajes guardados**. - Grabación del chat de voz iniciada. - El chat de voz está siendo grabado - cuenta personal - Cancelar solicitud para hablar - UNIRME COMO ORADOR - UNIRME COMO OYENTE - Unirme al chat de voz - ¿Quieres aparecer en este chat de voz con tu cuenta personal? - Sonido del chat de voz silenciado. - Sonido del chat de voz activado. - Los miembros de este grupo serán notificados en cuanto inicies el chat de voz. - Los suscriptores de este canal serán notificados en cuanto inicies el chat de voz. - Serás mostrado como: - Iniciar chat de voz - Programar chat de voz - Iniciar ahora - Crear recordatorio - Cancelar recordatorio - Los miembros del grupo serán notificados de que el chat de voz se iniciará en %1$s. - Los suscriptores del canal serán notificados de que el chat de voz se iniciará en %1$s. - Inicia en - Retraso de - Compartir - Te notificaremos cuando inicie. - **%1$s** se unió al chat de voz. - **%1$s** se unió al chat de voz. - Chats de voz activos - Llamadas recientes - Compartir pantalla - Dejar de compartir pantalla - - Abrir chat - Cambiar foto - Añadir biografía - Editar nombre - Biografía - Puedes añadir algunas palabras sobre ti. Todos verán este texto. - Toca y añade biografía - Editar biografía - Añadir descripción - Editar descripción - toca y añade foto o biografía - toca y añade biografía - toca y añade foto - toca y añade descripción - Toca y añade foto o descripción - Editar nombre - Título - Poner nueva foto - Cámara - Vista previa de video - Se compartirá video desde tu cámara con otros miembros de este chat de voz - Compartir video de la cámara - Vista previa - Fijar - Desfijar - Audio - Elegir salida de audio - Video pausado - Estás compartiendo\ntu pantalla - Estás compartiendo tu pantalla - DEJAR DE COMPARTIR - Supresión de ruido - Activada - Desactivada - Video disponible sólo para\nlos primeros %1$s - - Gestionar enlaces de invitación - Puedes crear enlaces de invitación adicionales que tienen un tiempo o número de usos limitado. - Cualquiera en Telegram podrá unirse a tu grupo abriendo este enlace. - Cualquiera en Telegram podrá unirse a tu canal abriendo este enlace. - Editar enlace - Guardar enlace - - Limitar por tiempo - Limitar número de usos - Nuevo enlace - Establece una duración personalizada - Pon un límite personalizado - Puedes hacer que el enlace expire después de un tiempo. - Puedes hacer que el enlace expire después de haber sido usado un cierto número de veces. - Aún nadie se unió - Expirado - Obtener código QR - Enlace creado por - Invitar con código QR - Compartir código QR - Anulado - El enlace expira %s - Expira después de - Establecer tiempo límite - Enlaces anulados - Eliminar enlace - Enlace anulado - Este enlace ya no está activo - El tiempo límite para este enlace expiró. - Este enlace alcanzó su límite de usos. - Crear un nuevo enlace - Eliminar todos los enlaces anulados - Nadie se unió - Límite alcanzado - Cualquiera en Telegram puede escanear este código para unirse a tu grupo. - Esto eliminará el enlace. - Esto eliminará todos los enlaces anulados. - Puedes generar enlaces de invitación que expirarán después de ser usados. - Enlaces creados por este admin. - Enlaces creados por otros admins. - Enlace de invitación para este admin. - Cualquiera en Telegram puede escanear este código para unirse a tu canal. - Cualquiera que tenga instalado Telegram podrá unirse a tu canal abriendo este enlace. - El enlace expira en %s - Enlace público - Este enlace de invitación expiró. - Copiar - Compartir - El enlace de invitación ha sido anulado. - Enlace expirado Mensaje al %1$s Llamada de voz al %1$s Videollamada al %1$s - - un1 están hablando - un1 está hablando - un1 están hablando - un1 están hablando - un1 están hablando - un1 están hablando - Eliminar %1$d fondos - Eliminar fondo - Eliminar %1$d fondos - Eliminar %1$d fondos - Eliminar %1$d fondos - Eliminar %1$d fondos - %1$d destinatarios - %1$d destinatario - %1$d destinatarios - %1$d destinatarios - %1$d destinatarios - %1$d destinatarios - %1$d en línea - %1$d en línea - %1$d en línea - %1$d en línea - %1$d en línea - %1$d en línea - %1$d contactos en Telegram - %1$d contacto en Telegram - %1$d contactos en Telegram - %1$d contactos en Telegram - %1$d contactos en Telegram - %1$d contactos en Telegram - Estoy usando Telegram para chatear, y también %1$d de nuestros otros contactos. ¡Únete! Descárgala aquí: %2$s - Estoy usando Telegram para chatear, y también %1$d de nuestros otros contactos. ¡Únete! Descárgala aquí: %2$s - Estoy usando Telegram para chatear, y también %1$d de nuestros otros contactos. ¡Únete! Descárgala aquí: %2$s - Estoy usando Telegram para chatear, y también %1$d de nuestros otros contactos. ¡Únete! Descárgala aquí: %2$s - Estoy usando Telegram para chatear, y también %1$d de nuestros otros contactos. ¡Únete! Descárgala aquí: %2$s - Estoy usando Telegram para chatear, y también %1$d de nuestros otros contactos. ¡Únete! Descárgala aquí: %2$s - %1$d personas se unieron - %1$d persona se unió - %1$d personas se unieron - %1$d personas se unieron - %1$d personas se unieron - %1$d personas se unieron - %1$d restantes - %1$d restantes - %1$d restante - %1$d restantes - %1$d restantes - %1$d restantes - %1$d pueden unirse - %1$d pueden unirse - %1$d puede unirse - %1$d pueden unirse - %1$d pueden unirse - %1$d pueden unirse - Quedan %1$d días - Quedan %1$d días - Queda %1$d día - Quedan %1$d días - Quedan %1$d días - Quedan %1$d días - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d canales - %1$d canal - %1$d canales - %1$d canales - %1$d canales - %1$d canales - %1$d grupos - %1$d grupo - %1$d grupos - %1$d grupos - %1$d grupos - %1$d grupos - %1$d miembros - %1$d miembro - %1$d miembros - %1$d miembros - %1$d miembros - %1$d miembros - %1$d participantes - %1$d participante - %1$d participantes - %1$d participantes - %1$d participantes - %1$d participantes - y %1$d más están escribiendo - y %1$d más están escribiendo - y %1$d más están escribiendo - y %1$d más están escribiendo - y %1$d más están escribiendo - y %1$d más están escribiendo - %1$s y %2$d más están escribiendo - %1$s y %2$d más está escribiendo - %1$s y %2$d más están escribiendo - %1$s y %2$d más están escribiendo - %1$s y %2$d más están escribiendo - %1$s y %2$d más están escribiendo - %1$d mensajes nuevos - %1$d mensaje nuevo - %1$d mensajes nuevos - %1$d mensajes nuevos - %1$d mensajes nuevos - %1$d mensajes nuevos - %1$d mensajes desfijados - Mensaje desfijado - %1$d mensajes desfijados - %1$d mensajes desfijados - %1$d mensajes desfijados - %1$d mensajes desfijados - %1$d mensajes - %1$d mensaje - %1$d mensajes - %1$d mensajes - %1$d mensajes - %1$d mensajes - %1$d ítems - %1$d ítem - %1$d ítems - %1$d ítems - %1$d ítems - %1$d ítems - en %1$d chats - en %1$d chat - en %1$d chats - en %1$d chats - en %1$d chats - en %1$d chats - %1$d segundos - %1$d segundo - %1$d segundos - %1$d segundos - %1$d segundos - %1$d segundos - %1$d minutos - %1$d minuto - %1$d minutos - %1$d minutos - %1$d minutos - %1$d minutos - %1$d horas - %1$d hora - %1$d horas - %1$d horas - %1$d horas - %1$d horas - %1$d días - %1$d día - %1$d días - %1$d días - %1$d días - %1$d días - %1$d segundos - %1$d segundo - %1$d segundos - %1$d segundos - %1$d segundos - %1$d segundos - %1$d minutos - %1$d minuto - %1$d minutos - %1$d minutos - %1$d minutos - %1$d minutos - %1$d horas - %1$d hora - %1$d horas - %1$d horas - %1$d horas - %1$d horas - %1$d días - %1$d día - %1$d días - %1$d días - %1$d días - %1$d días - %1$d semanas - %1$d semana - %1$d semanas - %1$d semanas - %1$d semanas - %1$d semanas - %1$d meses - %1$d mes - %1$d meses - %1$d meses - %1$d meses - %1$d meses - %1$d años - %1$d año - %1$d años - %1$d años - %1$d años - %1$d años - %1$d usuarios - %1$d usuario - %1$d usuarios - %1$d usuarios - %1$d usuarios - %1$d usuarios - %1$d veces - %1$d vez - %1$d veces - %1$d veces - %1$d veces - %1$d veces - %1$d metros - %1$d metro - %1$d metros - %1$d metros - %1$d metros - %1$d metros - %1$d stickers - %1$d sticker - %1$d stickers - %1$d stickers - %1$d stickers - %1$d stickers - %1$d máscaras - %1$d máscara - %1$d máscaras - %1$d máscaras - %1$d máscaras - %1$d máscaras - %1$d suscriptores - %1$d suscriptor - %1$d suscriptores - %1$d suscriptores - %1$d suscriptores - %1$d suscriptores - %1$d excepciones - %1$d excepción - %1$d excepciones - %1$d excepciones - %1$d excepciones - %1$d excepciones - %1$d usuarios expulsados - %1$d usuario expulsado - %1$d usuarios expulsados - %1$d usuarios expulsados - %1$d usuarios expulsados - %1$d usuarios expulsados - %1$d - %1$d - %1$d - %1$d - %1$d - %1$d - hace %1$d minutos - hace %1$d minuto - hace %1$d minutos - hace %1$d minutos - hace %1$d minutos - hace %1$d minutos - **%1$d** segundos - **%1$d** segundo - **%1$d** segundos - **%1$d** segundos - **%1$d** segundos - **%1$d** segundos - **%1$d** minutos - **%1$d** minuto - **%1$d** minutos - **%1$d** minutos - **%1$d** minutos - **%1$d** minutos - **%1$d** horas - **%1$d** hora - **%1$d** horas - **%1$d** horas - **%1$d** horas - **%1$d** horas - **%1$d** días - **%1$d** día - **%1$d** días - **%1$d** días - **%1$d** días - **%1$d** días - %1$s vistas - %1$s vista - %1$s vistas - %1$s vistas - %1$s vistas - %1$s vistas - %1$s reenvíos - %1$s reenvío - %1$s reenvíos - %1$s reenvíos - %1$s reenvíos - %1$s reenvíos - %1$s reenvíos en público - %1$s reenvío en público - %1$s reenvíos en público - %1$s reenvíos en público - %1$s reenvíos en público - %1$s reenvíos en público - %1$s reenvíos - %1$s reenvío - %1$s reenvíos - %1$s reenvíos - %1$s reenvíos - %1$s reenvíos - %1$s packs de stickers - %1$s pack de stickers - %1$s packs de stickers - %1$s packs de stickers - %1$s packs de stickers - %1$s packs de stickers - - %1$d mensajes reenviados - Mensaje reenviado - %1$d mensajes reenviados - %1$d mensajes reenviados - %1$d mensajes reenviados - %1$d mensajes reenviados - %1$d fotos - %1$d foto - %1$d fotos - %1$d fotos - %1$d fotos - %1$d fotos - %1$d videos - %1$d video - %1$d videos - %1$d videos - %1$d videos - %1$d videos - %1$d archivos - %1$d archivo - %1$d archivos - %1$d archivos - %1$d archivos - %1$d archivos - %1$d archivos de música - %1$d archivo de música - %1$d archivos de música - %1$d archivos de música - %1$d archivos de música - %1$d archivos de música - %1$d grupos en común - %1$d grupo en común - %1$d grupos en común - %1$d grupos en común - %1$d grupos en común - %1$d grupos en común - %1$d archivos multimedia - %1$d archivo multimedia - %1$d archivos multimedia - %1$d archivos multimedia - %1$d archivos multimedia - %1$d archivos multimedia - %1$d mensajes de voz - %1$d mensaje de voz - %1$d mensajes de voz - %1$d mensajes de voz - %1$d mensajes de voz - %1$d mensajes de voz - %1$d enlaces - %1$d enlace - %1$d enlaces - %1$d enlaces - %1$d enlaces - %1$d enlaces - %1$d GIF - %1$d GIF - %1$d GIF - %1$d GIF - %1$d GIF - %1$d GIF - %1$d usuarios bloqueados - %1$d usuario bloqueado - %1$d usuarios bloqueados - %1$d usuarios bloqueados - %1$d usuarios bloqueados - %1$d usuarios bloqueados - %1$d archivos reenviados - Archivo reenviado - %1$d archivos reenviados - %1$d archivos reenviados - %1$d archivos reenviados - %1$d archivos reenviados - %1$d fotos reenviadas - Foto reenviada - %1$d fotos reenviadas - %1$d fotos reenviadas - %1$d fotos reenviadas - %1$d fotos reenviadas - %1$d videos reenviados - Video reenviado - %1$d videos reenviados - %1$d videos reenviados - %1$d videos reenviados - %1$d videos reenviados - %1$d audios reenviados - Audio reenviado - %1$d audios reenviados - %1$d audios reenviados - %1$d audios reenviados - %1$d audios reenviados - %1$d mensajes de voz reenviados - Mensaje de voz reenviado - %1$d mensajes de voz reenviados - %1$d mensajes de voz reenviados - %1$d mensajes de voz reenviados - %1$d mensajes de voz reenviados - %1$d videomensajes reenviados - Videomensaje reenviado - %1$d videomensajes reenviados - %1$d videomensajes reenviados - %1$d videomensajes reenviados - %1$d videomensajes reenviados - %1$d ubicaciones reenviadas - Ubicación reenviada - %1$d ubicaciones reenviadas - %1$d ubicaciones reenviadas - %1$d ubicaciones reenviadas - %1$d ubicaciones reenviadas - %1$d contactos reenviados - Contacto reenviado - %1$d contactos reenviados - %1$d contactos reenviados - %1$d contactos reenviados - %1$d contactos reenviados - %1$d stickers reenviados - Sticker reenviado - %1$d stickers reenviados - %1$d stickers reenviados - %1$d stickers reenviados - %1$d stickers reenviados - %1$d encuestas reenviadas - Encuesta reenviada - %1$d encuestas reenviadas - %1$d encuestas reenviadas - %1$d encuestas reenviadas - %1$d encuestas reenviadas - y otros %1$d - y %1$d más - y otros %1$d - y otros %1$d - y otros %1$d - y otros %1$d - %1$d fotos seleccionadas - %1$d foto seleccionada - %1$d fotos seleccionadas - %1$d fotos seleccionadas - %1$d fotos seleccionadas - %1$d fotos seleccionadas - %1$d videos seleccionados - %1$d video seleccionado - %1$d videos seleccionados - %1$d videos seleccionados - %1$d videos seleccionados - %1$d videos seleccionados - %1$d archivos multimedia seleccionados - %1$d archivo multimedia seleccionado - %1$d archivos multimedia seleccionados - %1$d archivos multimedia seleccionados - %1$d archivos multimedia seleccionados - %1$d archivos multimedia seleccionados - %1$d personas están usando este tema - %1$d persona está usando este tema - %1$d personas están usando este tema - %1$d personas están usando este tema - %1$d personas están usando este tema - %1$d personas están usando este tema - Resultado %1$d de %2$d - Resultado %1$d de %2$d - Resultado %1$d de %2$d - Resultado %1$d de %2$d - Resultado %1$d de %2$d - Resultado %1$d de %2$d - %1$d usuarios - %1$d usuario - %1$d usuarios - %1$d usuarios - %1$d usuarios - %1$d usuarios - %1$d usuarios - %1$d usuario - %1$d usuarios - %1$d usuarios - %1$d usuarios - %1$d usuarios - %1$d de %2$d seleccionados - %1$d de %2$d seleccionado - %1$d de %2$d seleccionados - %1$d de %2$d seleccionados - %1$d de %2$d seleccionados - %1$d de %2$d seleccionados - Ver %1$d respuestas - Ver %1$d respuesta - Ver %1$d respuestas - Ver %1$d respuestas - Ver %1$d respuestas - Ver %1$d respuestas - %1$d respuestas - %1$d respuesta - %1$d respuestas - %1$d respuestas - %1$d respuestas - %1$d respuestas - %1$d comentarios - %1$d comentario - %1$d comentarios - %1$d comentarios - %1$d comentarios - %1$d comentarios - %1$d comentarios - %1$d comentario - %1$d comentarios - %1$d comentarios - %1$d comentarios - %1$d comentarios - comentarios - comentario - comentarios - comentarios - comentarios - comentarios - %1$d mensajes fijados - Mensaje fijado - %1$d mensajes fijados - %1$d mensajes fijados - %1$d mensajes fijados - %1$d mensajes fijados - %s personas se pueden unir con este enlace - %s persona se puede unir con este enlace - %s personas se pueden unir con este enlace - %s personas se pueden unir con este enlace - %s personas se pueden unir con este enlace - %s personas se pueden unir con este enlace - %1$d chats fijados - Chat fijado - %1$d chats fijados - %1$d chats fijados - %1$d chats fijados - %1$d chats fijados - %1$d chats desfijados - Chat desfijado - %1$d chats desfijados - %1$d chats desfijados - %1$d chats desfijados - %1$d chats desfijados - - Grupo - Canal - Chat secreto - Enviado %s - Recibido el %s - Programado para el %s - Volver atrás - Abrir menú de navegación - Abrir menú - Cerrar menú - Abrir en el visor de fotos - %2$s por %1$s - Más opciones - Cambiar al tema nocturno - Cambiar al tema de día - Reproducir - Pausar - Descargar - Cancelar descarga - Abrir archivo - Opciones de mensaje - Entrar en modo selección - Emoji, stickers y GIF - Adjuntar multimedia - Enviar silenciosamente - Enviar notificaciones - Comandos del bot - Teclado del bot - Mostrar teclado - Grabar mensaje de voz - Grabar videomensaje - Abrir chat - Foto de perfil - Cambiar foto de perfil - Cambiar orden - Mostrar cuentas - Ocultar cuentas - Ir al mensaje - Cancelar respuesta - Cancelar reenvío - Cancelar edición - Respondiendo a - Reenviando desde - Editando - Bloquear aplicación - Desbloquear aplicación - Retroceso - Anterior - Repetir, desactivado - Repetir, lista de reproducción - Repetir, una - Cerrar reproductor de audio - Velocidad doble - Dejar de compartir la ubicación en tiempo real - Cámara instantánea - Obturador - Cambiar cámara - Flash, desactivado - Flash, automático - Flash, activado - Pack de stickers - GIF - Stickers - Expandir panel - Contraer panel - Opciones de usuario - Rotar - Imagen invertida - Editor de fotos - Ajustes - Visor de fotos - Ir al final - Ir a la próxima mención - Silenciar micrófono - Título - Encabezado - Mi ubicación - Notificar cuando las personas que comparten su ubicación estén dentro del rango - Calidad de video - Relación de aspecto - Tomar una foto más - Visto - No visto - Enviando - Enviando error - No reproducido - Siguiente resultado de búsqueda - Anterior resultado de búsqueda - Filtrar por usuario - Tomar una foto - Grabar video - Desliza abajo para ver el archivo - Suelta para ver el archivo - Menor tamaño - Mejor calidad - %1$s de %2$s - %1$s de %2$s descargado - %1$s de %2$s subido - Visto %1$d vez - Visto %1$d veces - Visto %1$d veces - Visto %1$d veces - Visto %1$d veces - Enviar %1$d foto - Enviar %1$d fotos - Enviar %1$d fotos - Enviar %1$d fotos - Enviar %1$d fotos - Enviar %1$d archivo - Enviar %1$d archivos - Enviar %1$d archivos - Enviar %1$d archivos - Enviar %1$d archivos - Enviar %1$d audio - Enviar %1$d audios - Enviar %1$d audios - Enviar %1$d audios - Enviar %1$d audios - Compartir en %1$d chat - Compartir en %1$d chats - Compartir en %1$d chats - Compartir en %1$d chats - Compartir en %1$d chats - Respuesta correcta - Explicación - Modo imagen en imagen - El micrófono está encendido - El micrófono está apagado - Cambió a la cámara frontal - Cambió a la cámara trasera - La cámara está encendida - La cámara está apagada - Lista de mensajes fijados - Cambiar a pantalla completa - Salir de pantalla completa + d \'de\' MMM \'de\' yyyy + d \'de\' MMM \'de\' yyyy + d \'de\' MMMM + d \'de\' MMMM \'de\' yyyy MMMM \'de\' yyyy - dd \'de\' MMM \'de\' yyyy, h:mm a - dd \'de\' MMM \'de\' yyyy, HH:mm - dd \'de\' MMM \'de\' yyyy, h:mm a - dd \'de\' MMM \'de\' yyyy, HH:mm - dd \'de\' MMM, h:mm a - dd \'de\' MMM, HH:mm - LLLL yyyy - LLLL - dd \'de\' MMM + d \'de\' MMM \'de\' yyyy, h:mm a + d \'de\' MMM \'de\' yyyy, HH:mm + d \'de\' MMM \'de\' yyyy, h:mm a + d \'de\' MMM \'de\' yyyy, HH:mm + d \'de\' MMM, h:mm a + d \'de\' MMM, HH:mm + d \'de\' MMM dd.MM.yy dd.MM.yyyy d \'de\' MMMM @@ -4482,4 +1316,4 @@ \'Recordar el\' d \'de\' MMM \'a las\' HH:mm \'Recordar el\' d \'de\' MMM \'de\' yyyy \'a las\' HH:mm Menu - + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/values-it/strings.xml b/TMessagesProj/src/main/res/values-it/strings.xml index c5b706a028..ed7ecd2cbb 100644 --- a/TMessagesProj/src/main/res/values-it/strings.xml +++ b/TMessagesProj/src/main/res/values-it/strings.xml @@ -9,10 +9,13 @@ Continua in italiano Il tuo numero - Conferma il prefisso internazionale e inserisci il tuo numero di telefono. + Conferma il prefisso internazionale\ne inserisci il tuo numero di telefono. + Paese + Il tuo numero di telefono + Numero di telefono Scegli un Paese Prefisso internazionale non valido - Questo account è già collegato in questa app. + Questo account è già connesso all\'app. Cambia Sincronizza contatti I contatti da questo dispositivo saranno aggiunti a questo account. @@ -20,298 +23,66 @@ I contatti da questo dispositivo saranno aggiunti al tuo account. Attiva per mantenere sincronizzati i contatti da questo dispositivo con il tuo account. I contatti da questo dispositivo sono stati aggiunti al tuo account. + È questo il numero corretto? + Formato errato + Il numero che hai fornito è troppo breve per **%1$s**:\n\n**%2$s**\n\nInserisci il numero corretto, incluso il tuo prefisso internazionale. + Modifica numero + Se non hai ricevuto il codice tramite SMS o chiamata, per favore controlla le tue **impostazioni dati cellulare** e il numero di telefono:\n\n**%1$s**\n\nNon ti resta che provare un altro numero o contattare il supporto Telegram. Tocca **Aiuto** per inviarci i dettagli tecnici in modo da poter identificare il problema. + Aiuto + Modifica numero Verifica numero Abbiamo inviato un SMS con un codice di accesso al tuo numero **%1$s**. Abbiamo inviato il codice su **Telegram** in un tuo altro dispositivo. + Abbiamo inviato il codice sull\'app **Telegram** per %1$s in un altro tuo dispositivo. Controlla i tuoi messaggi Telegram - Inserisci codice - Stiamo chiamando il tuo numero **%1$s**.\n\nNon rispondere alla chiamata, Telegram farà tutto in automatico. - Chiameremo il tuo numero **%1$s** per dettarti un codice. + Ottieni il codice per %1$s nella sezione Anonymous Numbers su Fragment. + Inserisci il codice + Apri Fragment + Stiamo chiamando il tuo numero **%1$s**.\n\nNon rispondere alla chiamata. Telegram farà tutto in automatico. + Chiameremo il tuo numero **%1$s** per dettarti il codice. Telegram ti chiamerà tra %1$d:%2$02d Ti invieremo un SMS tra %1$d:%2$02d Ti stiamo chiamando... Invio SMS... Codice Numero errato? + Codice errato, per favore riprova. Non hai ricevuto il codice? - Invia il codice come SMS + Tocca qui per ricevere il codice via SMS + Ricevi il codice su Fragment Annulla ripristino account - Qualcuno con accesso a **%1$s** ha richiesto l\'eliminazione del tuo account Telegram e il ripristino della password della verifica in due passaggi.\n\nSe non sei stato tu, per favore inserisci il codice che abbiamo appena inviato tramite SMS. Puoi anche annullare *cambiando il tuo numero di telefono*. + Qualcuno con accesso a **%1$s** ha richiesto l\'eliminazione del tuo account Telegram e il ripristino della password della verifica in due passaggi.\n\nSe non sei stato tu, inserisci il codice che ti abbiamo appena inviato tramite SMS. Puoi anche annullare *cambiando il tuo numero di telefono*. Ripristino account Dato che l\'account **%1$s** è attivo e protetto da una password, sarà eliminato tra 1 settimana. Questo ritardo è richiesto per motivi di sicurezza.\n\nPuoi annullare questo processo in qualsiasi momento. Potrai ripristinare il tuo account tra: I tuoi tentativi recenti di ripristinare questo account sono stati annullati dal suo utente attivo. Per favore riprova tra 7 giorni. - RIPRISTINA ACCOUNT Link non valido o scaduto. + Fatto! Il processo di eliminazione per il tuo account %1$s è stato annullato. Puoi chiudere questa finestra ora. Il tuo codice di accesso è **%1$s**. Inseriscilo nell\'app Telegram in cui stai cercando di accedere.\n\nNon dare questo codice a nessuno. + Puoi richiedere un SMS tra %1$d:%2$02d + Puoi richiedere un nuovo SMS tra %1$d:%2$02d + Ricevi il codice tramite SMS + Puoi richiedere una chiamata tra %1$d:%2$02d + Chiamami per dettare il codice + Ricevi il codice tramite chiamata + Prefisso internazionale + Accedi con Google Il tuo nome Inserisci il tuo nome e aggiungi una foto del profilo. Nome (obbligatorio) + Nome Cognome (facoltativo) + Cognome Annulla iscrizione - - Hai trasferito con successo %1$s a %2$s per %3$s - Hai trasferito con successo %1$s a %2$s - Cassa - Metodi di spedizione - Spiacenti, non è possibile consegnare al tuo indirizzo. - Info di spedizione - Indirizzo di spedizione - Indirizzo 1 (Via) - Indirizzo 2 (Via) - Città - Provincia - Paese - Codice postale - Destinatario - Nome completo - Mancia - Mancia (opzionale) - Numero di telefono - Email - Salva info di spedizione - Puoi salvare le tue informazioni di spedizione per uso futuro. - Informazioni di pagamento - Carta di pagamento - Numero della carta - Codice di sicurezza (CVV) - MM/AA - Indirizzo di fatturazione - Nome e cognome - Salva info di pagamento - Puoi salvare le tue informazioni di pagamento per uso futuro. Saranno memorizzate direttamente con il fornitore dei pagamenti. Telegram non ha accesso ai dati della tua carta di credito. - Per favore *attiva la verifica in due passaggi* per abilitare questo. - Riepilogo transazione - Trasferire **%1$s** al bot %2$s per **%3$s**? - Totale - FATTURA - FATTURA DI PROVA - PAGA %1$s - Metodo di pagamento - Nuova carta - Fornitore del pagamento - Nome - Numero di telefono - Indirizzo di contatto - Metodo di spedizione - Ricevuta - Scegli una carta differente - La tua carta %1$s è registrata. Per pagare con questa carta, per favore inserisci la tua password della verifica in due passaggi. - Spiacenti, il pagamento è stato annullato dal bot. - Spiacenti, il pagamento è stato rifiutato. - Impossibile raggiungere il server di pagamento. Per favore controlla la tua connessione a Internet e riprova. - Attenzione - Né Telegram, né %1$s avranno accesso alle informazioni della tua carta di credito. I dettagli della tua carta di credito saranno gestiti solamente dal sistema di pagamento, %2$s.\n\nI pagamenti saranno inviati direttamente allo sviluppatore di %1$s. Telegram non può fornire alcuna garanzia, per cui procedi a tuo rischio. In caso di problemi, per favore contatta lo sviluppatore di %1$s o la tua banca. - Password e email - Password - Inserisci una password - Ripeti la tua password - Per favore crea una password per proteggere le tue info di pagamento. Ti verrà chiesto di inserirla quando accedi. - Email di recupero - Il tuo indirizzo email - Per favore inserisci un\'email valida. È l\'unico modo per recuperare una password dimenticata. - Il numero sarà usato da %1$s come info di fatturazione. - L\'email sarà usata da %1$s come info di fatturazione. - Il numero e l\'email saranno passati a %1$s come info di fatturazione. - Hai pagato **%1$s** per **%2$s**. - - Nuova chat - La modalità notte automatica è disattivata - Impostazioni - Contatti - Nuovo gruppo - ieri - Nessun risultato - Benvenuto su Telegram - Visualizzato di recente - NASCONDI - Inizia a messaggiare toccando il pulsante con la matita in basso a destra. - Inizia a messaggiare toccando uno dei contatti qui sotto. - Attendo la rete... - Connetto... - Connesso - Ping: %1$d ms - Controllo... - Disponibile - Non disponibile - Connetto al proxy - Connetti proxy - Aggiorno... - Nuova chat segreta - Attendo che %s si colleghi... - Chat segreta annullata - Scambio chiavi di crittografia... - %s si è unito/a alla tua chat segreta. - Ti sei unito/a alla chat segreta. - Cancella cronologia - Cancella cronologia - Cancella cronologia - Attiva autoeliminazione - Si autoelimina tra %1$s - Autoelimina i messaggi in questa chat - Autoelimina i messaggi - Elimina automaticamente i nuovi messaggi dopo un certo periodo di tempo per te e %1$s. - Elimina automaticamente i nuovi messaggi dopo un certo periodo di tempo per i membri del gruppo. - Elimina automaticamente i nuovi messaggi dopo un certo periodo di tempo per gli iscritti del canale. - Conferma - 24 ore - 7 giorni - Elimina automaticamente i nuovi messaggi inviati in questa chat dopo un certo periodo di tempo. - Mai - Imposta per la chat - I messaggi in questa chat sono eliminati\nautomaticamente %1$s dopo essere stati inviati. - I nuovi messaggi in questa chat saranno eliminati automaticamente dopo %1$s. - Autoeliminazione disattivata. - Imposta autoeliminazione - Timer di autoeliminazione - Cronologia cancellata. - Silenzia - Riattiva - Chat eliminata - Gruppo eliminato. - Canale eliminato. - Archivio fissato. - Scorri a sinistra sull\'archivio per nasconderlo. - Archivio nascosto. - Scorri in basso per vedere l\'archivio. - Chat archiviata. - Chat archiviate. - Nascondi l\'archivio scorrendo a sinistra su di esso. - ANNULLA - Elimina dalla cache - Elimina ed esci - Nascondi - Fissa - Fissa - Togli - Archivia - Archivio - Estrai - Chat archiviate - Elimina la chat - Account eliminato - Seleziona chat - Seleziona chat - Inoltra a... - Foto segreta - Video temporaneo - GIF segreta - %1$s sta usando una versione vecchia di Telegram, quindi le foto segrete saranno visualizzate in modalità di compatibilità.\n\nUna volta che %2$s avrà aggiornato Telegram, le foto con il timer minore di 1 minuto funzioneranno in modalità \'Tieni premuto per vedere\' , e sarai notificato ogni volta che l\'altro esegue uno screenshot. - Messaggi - Cerca - Silenzia notifiche - Silenzia per %1$s - Riattiva - Tra %1$s - Disattiva - HASHTAG - Recenti - Persone - Rimuovi suggerimento - Sei sicuro di voler rimuovere **%1$s** dai suggerimenti? - Rimuovere %1$s dai suggerimenti? - Anteprima link - Bozza - Cronologia eliminata - da %1$s - %1$s da %2$s - Layout errato? - Invia sticker - Invia GIF - Visualizza pacchetto - Fissa in alto - Spiacenti, puoi fissare in alto solo %1$s nella lista principale. Puoi fissare più chat nelle cartelle chat e nel tuo archivio. - Spiacenti, non puoi fissare in alto altre chat. - Togli dall\'alto - Segna come non letto - Segna come letto - Segna tutto come letto - Nascondi sopra la lista - Fissa nella lista - Grassetto - Corsivo - Mono - Barrato - Sottolineato - Normale - **Telegram** ha bisogno di accedere ai tuoi contatti affinché tu possa connetterti con gli amici su tutti i tuoi dispositivi. I tuoi contatti saranno sincronizzati continuamente con i server cloud fortemente criptati di Telegram. - NON ADESSO - CONTINUA - I tuoi contatti su Telegram - Questo è il tuo archivio - Le chat con le notifiche attive vengono estratte quando arrivano nuovi messaggi. - Chat silenziate - Le chat con le notifiche disattivate rimangono archiviate quando arrivano nuovi messaggi. - Chat fissate - Puoi fissare in alto un numero illimitato di chat archiviate. - Premi questo pulsante per programmare il tuo messaggio o per inviarlo senza suono. - Nascondere le nuove chat? - Stai ricevendo molte nuove chat da utenti che non sono tra i tuoi contatti. Vuoi che queste chat siano **automaticamente silenziate** e **archiviate**? - VAI ALLE IMPOSTAZIONI - Apri profilo - Apri canale - Apri gruppo - Invia messaggio - Menziona - Notifiche silenziate - Notifiche silenziate per %1$s - Notifiche attivate - %1$d messaggi eliminati - Messaggio eliminato - %1$d messaggi eliminati - %1$d messaggi eliminati - %1$d messaggi eliminati - %1$d messaggi eliminati - Nessun risultato - Nessun risultato - Prova una nuova ricerca. - La musica da tutte le tue chat apparirà qui. - I file da tutte le tue chat appariranno qui. - I link da tutte le tue chat appariranno qui. - I vocali da tutte le tue chat appariranno qui. - I media da tutte le tue chat appariranno qui. - Chat - Messaggio fissato - Messaggio tolto - Tocca la matita per iniziare una nuova chat - Crea un nuovo gruppo per importare - Importa i messaggi - Errore di importazione - Formato file non valido. - Impossibile importare la cronologia nella chat selezionata. - File lingua sconosciuto. - Devi essere amministratore nel gruppo per importare i messaggi. - Il formato del file è per un gruppo, ma hai selezionato un utente. - Il formato del file è per un utente, ma hai selezionato un gruppo. - Impossibile importare i messaggi a causa delle impostazioni di privacy. - IMPORTA - Vuoi importare i messaggi da **%1$s** nella chat con **%2$s**?\n\nI messaggi saranno importati nel giorno corrente ma includeranno anche date e orari originali. Entrambe le parti vedranno i messaggi. - Vuoi importare i messaggi nella chat con **%1$s**?\n\nI messaggi saranno importati nel giorno corrente ma includeranno anche date e orari originali. Entrambe le parti vedranno i messaggi. - Vuoi importare i messaggi da **%1$s** nel gruppo **%2$s**?\n\nI messaggi saranno importati nel giorno corrente ma includeranno anche date e orari originali. Tutti i membri vedranno i messaggi. - Vuoi importare i messaggi nel gruppo **%1$s**?\n\nI messaggi saranno importati nel giorno corrente ma includeranno anche date e orari originali. Tutti i membri vedranno i messaggi. - Puoi importare i messaggi solo nelle chat private con utenti che sono contatti reciproci. - Devi essere amministratore nel gruppo per importare i messaggi. - Messaggio importato da un’altra app. Non possiamo garantire che sia reale. - Importo messaggi e media... **%d%%** - Importazione chat - Tieni Telegram aperto fino\nal termine dell’importazione. - %1$s di %2$s - Fatto - Chat importata con successo! - Risparmia spazio sul tuo dispositivo importando più chat su Telegram. - Importo messaggi e media... - Importo gli sticker... - Importa messaggi e media in... - O scegli uno dei tuoi contatti + Info profilo Modifica widget Mostra le scorciatoie delle tue chat più importanti per aprirle rapidamente.\n\nSe non viene selezionato nessuno, il widget mostrerà i contatti più frequenti. - Mostra l\'ultimo messaggio dalle chat che scegli.\n\nSe non vengono selezionate delle chat, il widget mostrerà quelle più recenti. - "Attenzione: il tuo codice sarà **ignorato** per i widget. " - Il tuo codice **non influenzerà** i widget aggiunti alla schermata home. + Mostra l\'ultimo messaggio dalle chat che scegli.\n\nSe non vengono selezionate chat specifiche, il widget mostrerà quelle più recenti. + Attenzione: I tuoi widget mostreranno tutti i messaggi recenti, ma per aprire l\'app e rispondere sarà necessario il codice di accesso. Cerca chat... Anteprima widget tocca per modificare il widget @@ -319,511 +90,10 @@ Chat Scorciatoie L\'account è stato disconnesso. - - Rendi amministratore - Modifica permessi amministratore - Nessun utente rimosso - Elimina il gruppo - Lascia il gruppo - Elimina il gruppo - Perderai tutti i messaggi in questo gruppo. - Puoi aggiungere amministratori per farti aiutare a gestire il tuo gruppo. Tieni premuto per rimuoverli. - Aspetta! Eliminando il gruppo rimuoverai tutti i membri e tutti i messaggi saranno persi. Vuoi comunque eliminare il gruppo? - Elimina il gruppo per tutti i membri - Elimina per tutti gli iscritti - Gruppo creato - un1 ti ha aggiunto a questo gruppo - Sei sicuro di voler lasciare il gruppo? - Sei sicuro di voler lasciare **%1$s**? - Spiacenti, non puoi aggiungere questo utente ai gruppi. - Spiacenti, questo gruppo è pieno. - Spiacenti, se una persona non fa più parte di un gruppo, devi essere nei suoi contatti di Telegram per poterla riaggiungere.\n\nTieni presente che può comunque unirsi con il link d\'invito del gruppo purché non sia nell\'elenco Utenti rimossi. - Spiacenti, troppi amministratori in questo gruppo. - Spiacenti, l\'utente selezionato ha già troppi gruppi o canali pubblici. Per favore chiedigli di rendere privato uno dei suoi gruppi o canali. - Spiacenti, l\'utente selezionato ha già troppi gruppi basati sulla posizione. Per favore chiedigli di eliminarne o trasferirne uno prima. - Spiacenti, hai già troppi gruppi basati sulla posizione. Per favore eliminane prima uno dei tuoi. - Spiacenti, troppi bot in questo gruppo. - un1 ha fissato \"%1$s\" - un1 ha fissato un messaggio - un1 ha fissato un sondaggio - un1 ha fissato un quiz - un1 ha fissato una foto - un1 ha fissato un video - un1 ha fissato un file - un1 ha fissato uno sticker - un1 ha fissato un messaggio vocale - un1 ha fissato un videomessaggio - un1 ha fissato un contatto - un1 ha fissato %1$s - un1 ha fissato una posizione - un1 ha fissato una posizione in tempo reale - un1 ha fissato una GIF - un1 ha fissato un file audio - Questo gruppo è stato aggiornato a supergruppo - %1$s è stato aggiornato a supergruppo. - Gli utenti rimossi dal gruppo dagli amministratori non possono rientrare tramite link d\'invito. - Gli utenti rimossi dal canale dagli amministratori non possono rientrare tramite link d\'invito. - Nuovo canale - Nome del canale - Aggiungi persone al tuo canale - Se imposti un link permanente, le altre persone potranno trovare il tuo canale e unirsi.\n\nPuoi usare a-z, 0-9 e underscore.\nLa lunghezza minima è 5 caratteri. - Se imposti un link pubblico, le altre persone potranno trovare il tuo gruppo e unirsi.\n\nPuoi usare a-z, 0-9 e underscore.\nLa lunghezza minima è 5 caratteri. - Attenzione - link - Le persone possono unirsi al tuo canale seguendo questo link. Puoi revocare il link in ogni momento. - Le persone possono unirsi al tuo gruppo seguendo questo link. Puoi revocare il link in ogni momento. - Descrizione (opzionale) - Descrizione - Puoi inserire una descrizione opzionale per il tuo canale. - Hai cambiato qualche impostazione in questo gruppo. Applicare le modifiche? - Hai cambiato qualche impostazione in questo canale. Applicare le modifiche? - Canale pubblico - Gruppo pubblico - Gruppo basato sulla posizione - I canali pubblici possono essere trovati nella ricerca, chiunque può unirsi. - I gruppi pubblici possono essere trovati nella ricerca, la cronologia è disponibile per tutti e chiunque può unirsi. - Canale privato - Gruppo privato - È possibile unirsi ai canali privati solo tramite link d\'invito. - È possibile unirsi ai gruppi privati solo se sei stato invitato o se hai un link d\'invito. - Link pubblico - Link d\'invito - Aggiungi membri - Aggiungi iscritti - Lascia il canale - Lascia il canale - Impostazioni - UNISCITI - Post - Post silenzioso - Cos\'è un canale? - I canali sono uno strumento da uno a molti per diffondere i tuoi messaggi a un pubblico illimitato. - Crea canale - Spiacenti, questo nome è già stato preso. - Spiacenti, questo nome non è valido. - I nomi dei canali devono avere almeno 5 caratteri. - Il nome non può superare i 32 caratteri. - I nomi dei canali non possono iniziare con un numero. - I nomi dei gruppi devono avere almeno 5 caratteri. - I nomi dei gruppi non possono iniziare con un numero. - Controllo il nome... - %1$s è disponibile. - Membri - Aggiungi al gruppo - Aggiungi al canale - Elimina dalla lista - Iscritti - Utenti rimossi - Permessi - Cosa possono fare i membri del gruppo? - Aggiungi eccezione - Cerca eccezioni - Utenti rimossi - Contatti in questo canale - Contatti in questo gruppo - I tuoi contatti - Bot - Altri membri - Altri iscritti - unito/a il %1$s - Utenti limitati - Amministratori - Elimina il canale - Elimina il canale - Aspetta! Eliminando il canale rimuoverai tutti gli iscritti e tutti i messaggi saranno persi. Vuoi comunque eliminare il canale? - Sei sicuro di voler lasciare il canale? - Sei sicuro di voler lasciare **%1$s**? - Perderai tutti i messaggi in questo canale. - Modifica - Scegli un link - Per favore scegli un link per il tuo canale pubblico, in modo che possa essere trovato nella ricerca e condiviso con altri.\n\nSe non sei interessato, ti consigliamo di creare un canale privato. - Canale creato - Foto del canale cambiata - Video del canale cambiato - Foto del canale rimossa - Nome del canale cambiato in un2 - Hai riservato troppi link pubblici. Prova a revocare il link da un gruppo o canale più vecchio, oppure creane uno privato. - Proprietario - Amministratore - Amministratore - SILENZIA - RIATTIVA NOTIFICHE - Aggiungi amministratore - Rimuovi utente - Sblocca - Tieni premuto l\'utente per sbloccarlo. - Invita tramite link - Rimuovi amministratore - Modifica permessi - Solo gli amministratori del canale possono vedere questa lista. - Chiunque abbia Telegram installato potrà unirsi al tuo canale aprendo questo link. - Puoi aggiungere amministratori per farti aiutare a gestire il tuo canale. Tieni premuto per rimuovere gli amministratori. - Vuoi unirti al canale \'%1$s\'? - Spiacenti, questa chat non è più accessibile. - Spiacenti, non puoi accedere a questa chat perché sei stato rimosso da un amministratore. - Sfortunatamente, non ti è permesso partecipare ai gruppi pubblici. - Spiacenti, questa chat non è più accessibile. - Aggiungere %1$s al canale? - Spiacenti, se una persona non fa più parte di un canale, devi essere nei suoi contatti di Telegram per poterla riaggiungere.\n\nTieni presente che può comunque unirsi con il link d\'invito del canale purché non sia nell\'elenco Utenti rimossi. - Spiacenti, non puoi aggiungere questo utente ai canali. - Spiacenti, troppi amministratori in questo canale. - Spiacenti, troppi bot in questo canale. - Spiacenti, puoi aggiungere solo i primi 200 iscritti a un canale. Ricorda che un numero illimitato di persone può unirsi con il link del canale. - Troppe community - Spiacenti, sei membro di troppi gruppi e canali. Per favore lasciane qualcuno prima di crearne uno nuovo. - Spiacenti, sei membro di troppi gruppi e canali. Per favore lasciane qualcuno prima di unirti ad uno. - un1 ti ha aggiunto a questo canale - Ti sei unito/a a questo canale - Ti sei unito/a a questo gruppo - Rimuovi dal canale - Spiacenti, non puoi inviare messaggi in questo canale - %1$s ti ha aggiunto al canale %2$s - Il canale %1$s ha aggiornato la sua foto - Il canale %1$s ha aggiornato il suo video - %1$s ha pubblicato un messaggio - %1$s ha pubblicato una foto - %1$s ha pubblicato un video - %1$s ha pubblicato un contatto %2$s - %1$s ha pubblicato un sondaggio %2$s - %1$s ha pubblicato il quiz \"%2$s\" - %1$s ha pubblicato una posizione - %1$s ha pubblicato una posizione in tempo reale - %1$s ha pubblicato un file - %1$s ha pubblicato una GIF - %1$s ha pubblicato %2$s - %1$s ha pubblicato un album - %1$s ha pubblicato un messaggio vocale - %1$s ha pubblicato un videomessaggio - %1$s ha pubblicato una file audio - %1$s ha pubblicato uno sticker - %1$s ha pubblicato uno %2$s sticker - Chi può aggiungere membri? - Tutti i membri - Solo gli amministratori - I post saranno notificati agli iscritti - Gli iscritti riceveranno una notifica silenziosa - Firma messaggi - Aggiungi i nomi degli amministratori nei messaggi che pubblicano. - Permessi amministratore - Titolo personalizzato - Sarà mostrato un titolo personalizzato a tutti i membri invece di \'%1$s\'. - Cosa può fare questo amministratore? - Cambiare le info del canale - Cambiare le info del gruppo - Pubblicare messaggi - Modificare messaggi altrui - Eliminare messaggi altrui - Eliminare messaggi - Aggiungere amministratori - Rimanere anonimo - Rimuovi amministratore - Trasferisci proprietà gruppo - Trasferisci proprietà canale - Controllo di sicurezza - Puoi trasferire questo gruppo a **%1$s** solo se hai: - Puoi trasferire questo canale a **%1$s** solo se hai: - La **Verifica in due passaggi** attivata da più di **7 giorni**. - Eseguito l\'accesso su questo dispositivo da più di **24 ore**. - Per favore ritorna più tardi. - Imposta password - Questo trasferirà tutti i **diritti di proprietà** per **%1$s** a **%2$s**. - Cambia proprietario - **%1$s** ora è il proprietario del gruppo. - **%1$s** ora è il proprietario del canale. - Rimuovere utenti - Aggiungere utenti - Invitare utenti tramite link - Fissare messaggi - Promosso da %1$s - Non puoi modificare i permessi di questo amministratore. - Non puoi modificare questo permesso. - Questo permesso non è disponibile nei gruppi pubblici. - Rimosso da %1$s - Permessi utente - Questa opzione è disattivata per tutti i membri nei permessi del gruppo. - Cosa può fare questo utente? - Leggere messaggi - Inviare messaggi - Inviare media - Inviare sondaggi - Inviare sticker e GIF - Inviare link con anteprima - Cambiare le info chat - Fissare messaggi - Aggiungere utenti - non legge - non invia messaggi - niente media - niente sondaggi - niente sticker e GIF - niente link - non cambia le info - non fissa - non aggiunge utenti - Durata - Sempre - Blocca e rimuovi dal gruppo - Applicare le modifiche? - Hai cambiato i permessi di questo utente in **%1$s**. Applicare le modifiche? - Personalizzata - Gestisci gruppo - Gestisci canale - Gestisci gruppo - Gestisci canale - Cronologia per i nuovi membri - Imposta nuova foto - Imposta foto o video - Visibile - I nuovi membri vedranno i messaggi inviati prima di unirsi. - Nascosta - I nuovi membri non vedranno i messaggi precedenti. - I nuovi membri non vedranno più di 100 messaggi precedenti. - Unisciti al canale - Unisciti al gruppo - Tipo di gruppo - Tipo di canale - Tipo di gruppo - Tipo di canale - Impostazioni gruppo - Impostazioni canale - Privato - Pubblico - Privato - Pubblico - Link - Tocca per aggiungere un link permanente - Scegli foto - Scegli una foto o un video - Imposta nuova foto - Scatta foto - Registra video - Carica dalla galleria - Seleziona dalla galleria - Ricerca web - Statistiche - I bot possono essere aggiunti solo come amministratori - I bot possono essere aggiunti ai canali solo come amministratori. - RENDI AMMINISTRATORE - %1$s sarà rimosso dagli amministratori se lo limiti. - Discussione - Visualizza discussione - Aggiungi una chat di gruppo per i commenti - Canale collegato - Seleziona una chat di gruppo che ospiterà i commenti dal tuo canale. - Tutto ciò che pubblichi nel canale verrà inoltrato in questo gruppo. - **%1$s** è il gruppo che sarà usato per ospitare i commenti per il tuo canale. - Il gruppo è collegato come chat di discussione di %1$s. - Tutti i nuovi messaggi pubblicati in questo canale sono inoltrati nel gruppo. - Crea un nuovo gruppo - Scollega gruppo - Scollega canale - Scollega - COLLEGA GRUPPO - Vuoi rendere **%1$s** la chat di discussione di **%2$s**? - Vuoi rendere **%1$s** la chat di discussione di **%2$s**?\n\nQualsiasi membro di questo gruppo potrà vedere i messaggi nel canale. - Vuoi rendere **%1$s** la chat di discussione di **%2$s**?\n\nChiunque dal canale potrà vedere i messaggi in questo gruppo. - La \"Cronologia per i nuovi membri\" sarà resa Visibile. - Sei sicuro di voler scollegare **%1$s** da questo gruppo? - Sei sicuro di voler scollegare **%1$s** da questo canale? - DISCUTI - canale - Modalità lenta - No - %1$ds - %1$dm - %1$dh - Scegli quanto dovranno aspettare i membri prima di inviare il messaggio successivo. - I membri potranno inviare solo un messaggio ogni %1$s. - La modalità lenta è attiva. Non puoi inviare più di un messaggio alla volta. - La modalità lenta è attiva. Non puoi selezionare più elementi. - Spiacenti, questo testo è troppo lungo da inviare come singolo messaggio.\n\nLa modalità lenta è attiva. Non puoi inviare più di un messaggio alla volta. - **%1$s** promosso ad amministratore - **%1$s** rimosso da **%2$s** - - Nuovo sondaggio - Nuovo quiz - Sondaggio - Domanda sondaggio - Fai una domanda - Opzioni risposta - Risposte quiz - Risultati sondaggio - Voto anonimo - Modalità quiz - Seleziona prima un\'opzione - Comprimi - Espandi - Spiacenti, i sondaggi con voti visibili non possono essere inoltrati nei canali. - Spiacenti, le fatture non possono essere inoltrate nelle chat segrete. - Spiacenti, i sondaggi non possono essere inoltrati nelle chat segrete. - Spiacenti, i giochi non possono essere inviati nelle chat segrete. - Spiacenti, le fatture non possono essere inviate nelle chat segrete. - Risposte multiple - Tocca per scegliere la risposta corretta - I sondaggi in modalità quiz hanno una risposta corretta. Gli utenti non possono ritirare le loro risposte. - Aggiungi un\'opzione... - Puoi aggiungere %1$s. - Hai aggiunto il numero massimo di opzioni. - Sondaggio anonimo - Risposta sbagliata! - Hai mancato l\'opzione corretta. - Ben fatto! - Hai scelto la risposta esatta - Sondaggio - Quiz - VOTA - VISUALIZZA RISULTATI - Quiz anonimo - Termina sondaggio - Terminare il sondaggio? - Se termini questo sondaggio ora, nessuno potrà più votare. Questa azione non può essere annullata. - Termina quiz - Terminare il quiz? - Se termini questo quiz ora, nessuno potrà più rispondere. Questa azione non può essere annullata. - Scartare il sondaggio? - Sei sicuro di voler scartare questo sondaggio? - Ritira voto - Risultati finali - Nessun voto - Nessuno ha risposto - %1$d voti - %1$d voto - %1$d voti - %1$d voti - %1$d voti - %1$d voti - %1$d risposte - %1$d risposta - %1$d risposte - %1$d risposte - %1$d risposte - %1$d risposte - Mostra altri (%1$d) - Mostra altro (%1$d) - Mostra altri (%1$d) - Mostra altri (%1$d) - Mostra altri (%1$d) - Mostra altri (%1$d) - altre %1$d opzioni - un\'altra opzione - altre %1$d opzioni - altre %1$d opzioni - altre %1$d opzioni - altre %1$d opzioni - Opzione - - Azioni recenti - Tutte le azioni - azioni selezionate - Tutti gli amministratori - **Ancora nessuna azione**\n\nI membri e gli amministratori del\ngruppo non hanno eseguito azioni\ndi servizio nelle ultime 48 ore. - **Ancora nessuna azione**\n\nGli amministratori del canale non\nhanno eseguito azioni di servizio\nnelle ultime 48 ore. - **Nessuna azione trovata**\n\nNon sono state trovate azioni recenti\nche rispondono alla tua richiesta. - Non sono state trovate azioni recenti contenenti \'**%1$s**\' . - Cosa sono le azioni recenti? - Questa è una lista delle azioni importanti da parte di membri e amministratori nelle ultime 48 ore. - Questa è una lista di tutte le azioni di servizio eseguite dagli amministratori del canale nelle ultime 48 ore. - un1 ha rinominato il gruppo in \"%1$s\" - un1 ha rinominato il canale in \"%1$s\" - un1 ha lasciato il gruppo - un1 ha lasciato il canale - un1 ha aggiunto un2 - un1 si è unito/a al gruppo - ha bloccato %1$s - ha sbloccato %1$s - un1 si è unito/a al canale - un1 ha impostato una nuova foto del gruppo - un1 ha impostato una nuova foto del canale - un1 ha impostato un nuovo video del gruppo - un1 ha impostato un nuovo video del canale - un1 ha rimosso la foto del gruppo - un1 ha rimosso la foto del canale - un1 ha modificato questo messaggio: - un1 ha modificato la didascalia: - un1 ha modificato un media: - un1 ha modificato un media e la didascalia: - Messaggio originale - Didascalia originale - Vuota - un1 ha fissato questo messaggio: - un1 ha tolto un messaggio - un1 ha terminato il sondaggio: - un1 ha terminato il quiz: - un1 ha eliminato questo messaggio: - un1 ha cambiato la posizione del gruppo in \"%1$s” - un1 ha rimosso la posizione del gruppo - ha trasferito la proprietà a %1$s - un1 ha cambiato il set di sticker del gruppo - un1 ha rimosso il set di sticker del gruppo - un1 ha reso un2 la chat di discussione per questo canale - un1 ha rimosso la chat di discussione un2 - un1 ha collegato questo gruppo a un2 - un1 ha scollegato questo gruppo da un2 - un1 ha cambiato il link del gruppo: - un1 ha modificato il link del canale: - un1 ha rimosso il link del gruppo - un1 ha rimosso il link del canale - Link precedente - un1 ha modificato la descrizione del gruppo: - un1 ha modificato la descrizione del canale: - Descrizione precedente - un1 ha reso visibile la cronologia del gruppo ai nuovi membri - un1 ha nascosto la cronologia del gruppo ai nuovi membri - un1 ha attivato gli inviti del gruppo - un1 ha disattivato gli inviti del gruppo - un1 ha attivato le firme - un1 ha disattivato le firme - ha cambiato i permessi di %1$s\n\nDurata: %2$s - ha cambiato i permessi di default - Inviare sticker e GIF - Inviare media - Cambiare le info - Aggiungere utenti - Fissare messaggi - Inviare sondaggi - Inviare messaggi - Inviare link con anteprima - Leggere messaggi - ha cambiato i permessi di %1$s - ha promosso %1$s - Modificare le info del canale - Modificare le info del gruppo - Pubblicare messaggi - Modificare messaggi - Eliminare messaggi - Aggiungere amministratori - Rimanere anonimo - Rimuovere utenti - Gestire chat vocali - Aggiungere utenti - Titolo: %1$s - Titolo - Fissare messaggi - Tutte le azioni - Nuove eccezioni - Diritti di amministrazione - Nuovi membri - Info gruppo - Info canale - Messaggi eliminati - Messaggi modificati - Messaggi fissati - Membri usciti - Chat vocali - Link d\'invito - un1 ha impostato la modalità lenta a %1$s - un1 ha disattivato la modalità lenta - un1 ha iniziato una chat vocale - un1 ha terminato la chat vocale - un1 ha silenziato un2 in una chat vocale - un1 ha riattivato un2 in una chat vocale - un1 ha permesso ai nuovi partecipanti della chat vocale di parlare - un1 ha silenziato i nuovi partecipanti della chat vocale Nuova lista broadcast Inserisci il nome della lista Hai creato una lista broadcast - Aggiungi destinatario Rimuovi dalla lista broadcast Nessun file audio @@ -837,372 +107,33 @@ Ripeti traccia Ripeti lista Lista casuale - Inverti ordine + Ordine inverso Seleziona file - Cerca file recenti Liberi %1$s di %2$s Errore sconosciuto + Errore sconosciuto: %s "Errore di accesso " - La dimensione del file non dovrebbe superare i %1$s - Archivio non montato - Trasferimento USB attivo Archivio interno Archivio esterno - Cartella principale Scheda SD Cartella File recenti File A-Z - Nessun risultato trovato - Non ci sono risultati per **%1$s** nella cartella corrente. - Questa cartella è vuota. Per inviare immagini senza compressione Per inviare file audio Sfoglia la cartella dell\'app Sfoglia i tuoi file di sistema Sfoglia il tuo archivio esterno Cerca musica - - Sticker del gruppo - Scegli dai tuoi sticker - Puoi rendere un set di sticker disponibile a tutti i membri che scrivono all\'interno di questo gruppo. - SCEGLI SET DI STICKER - stickerset - Puoi creare i tuoi set di sticker personalizzati tramite il bot @stickers. - Nessun set di sticker trovato - Riprova o scegli dalla lista seguente - - invisibile - supporto - sta scrivendo... - sta scrivendo... - stanno scrivendo... - %1$s sta scrivendo... - %1$s stanno scrivendo... - %1$s sta registrando un vocale... - %1$s sta registrando un videomessaggio... - %1$s sta inviando un audio... - %1$s sta inviando una foto... - APERTURA RAPIDA - VISUALIZZA GRUPPO - VISUALIZZA SFONDO - VISUALIZZA TEMA - VISUALIZZA CANALE - VISUALIZZA MESSAGGIO - Il tema scuro si attiverà automaticamente durante la notte - Note - %1$s sta giocando a un gioco... - %1$s sta inviando un video... - %1$s sta inviando un file... - sta registrando un vocale... - sta registrando un videomessaggio... - sta inviando un audio... - sta inviando una foto... - sta giocando a un gioco... - sta inviando un video... - sta inviando un file... - Hai una domanda\nsu Telegram? - Galleria - Posizione - Video - File - Foto - Ancora nessun messaggio... - Ancora nessun messaggio programmato... - Messaggio inoltrato - Da - Da %1$s - da: - Nessun recente - Messaggio - Messaggio - Programma messaggio - CONDIVIDI IL MIO NUMERO - Condividi il mio contatto - Aggiungi ai contatti - %s ti ha invitato a unirti ad una chat segreta. - Hai invitato %s a unirsi ad una chat segreta. - Chat segrete: - Crittografia end-to-end - Nessuna traccia sui server - Timer di autodistruzione - Nessun inoltro - sei stato rimosso - Hai lasciato il gruppo - Elimina questo gruppo - Elimina questa chat - Elimina questa chat per entrambi - Elimina la chat - SCORRI PER ANNULLARE - Salva nei download - Salva nelle GIF - Eliminare la GIF da questa sezione? - Salva nella musica - Condividi - Applica traduzione - Applica tema - Allegato non supportato - Timer di autodistruzione - Notifiche di servizio - Recupero le info del link... - APRI CON... - Apri con... - Invia %1$s - Carica %1$s - Invia come file - Invia come file - Apri link - Vuoi aprire %1$s? - Accedi a %1$s come **%2$s** - Consenti a **%1$s** di inviarmi messaggi - Annulla invio - Consentire a %1$s di trasmettere il tuo nome e id Telegram (non il tuo numero di telefono) alle pagine che apri tramite questo bot? - GRUPPO NON LEGATO ALLA POSIZIONE? - Segnala gruppo non correlato - Per favore dicci se il gruppo non è legato a questa posizione:\n\n**%1$s** - Per favore dicci se il gruppo non è legato a questa posizione. - SEGNALA COME SPAM - Segnala come spam - Blocca %1$s - BLOCCA UTENTE - SEGNALA COME SPAM E LASCIA - AGGIUNGI CONTATTO - AGGIUNGI %1$s AI CONTATTI - VISUALIZZA CONTATTO - Vuoi impedire a **%1$s** di scriverti e chiamarti su Telegram? - Vuoi bloccare i messaggi da **%1$s**? - Sei sicuro di voler segnalare questo utente come spam? - Sei sicuro di voler segnalare questo gruppo come spam? - Sei sicuro di voler segnalare questo canale come spam? - Spiacenti, al momento puoi scrivere solo ai contatti reciproci. - Spiacenti, al momento puoi aggiungere ai gruppi solo i contatti reciproci. - Spiacenti, al momento ti è vietato pubblicare nei gruppi pubblici. - Maggiori info - Invia a... - Scrivi un commento... - Tocca qui per vedere le GIF salvate - Fissa - Notifica tutti i membri - Fissa anche per %1$s - Togli - Fissa messaggio - Togli messaggio - Vuoi fissare un vecchio messaggio lasciandone fissato uno più recente? - Fissare questo messaggio nel gruppo? - Vuoi fissare questo messaggio in questo canale? - Vuoi fissare questo messaggio nella parte superiore della chat? - Togliere questo messaggio? - Rimuovi utente - Segnala come spam - Elimina tutto da %1$s - Cancellare le emoji recenti - Emoticon e persone - Animali e natura - Cibo e bevande - Attività - Viaggi e luoghi - Oggetti - Simboli - Bandiere - Seleziona messaggi - SEGNALA MESSAGGI - SEGNALA %1$s - Segnala - Segnalazione inviata - Segnala spam - Segnala falso - Segnala pornografia - Segnala abuso minorile - Segnala violenza - Per favore aggiungi qualsiasi dettaglio rilevante per la tua segnalazione. - Dettagli aggiuntivi... - Invia segnalazione - I moderatori di Telegram esamineranno la segnalazione.\nGrazie per la collaborazione! - Spam - Account falso - Violenza - Pornografia - Abuso minorile - Altro - Descrizione - Messaggio fissato - Messaggio precedente - Sondaggio fissato - modificato - Modifica messaggio - Modifica didascalia - Tocca per modificare - Modifica foto - Modifica video - Cambia foto - Cambia video - Cambia media - Cambia file - Cambia file audio - Scorri in basso per i bot - %1$s - Spiacenti, tempo di modifica scaduto. - Aggiungi alla home - Cerca membri - inoltra qui per salvare - Messaggi salvati - Inoltra qui per salvare. - Tu - Hai creato un **gruppo**. - I gruppi possono avere: - Fino a 200.000 membri - Cronologia chat permanente - Link pubblici come t.me/title - Amministratori con permessi diversi - Inoltra i messaggi qui per salvarli - Invia media e file per archiviarli - Accedi alla chat da ogni dispositivo - Trova le tue cose con la ricerca - Il tuo archivio cloud - Vai alla data - Elimina per %1$s - Elimina per tutti i membri - Testo copiato negli appunti - Tieni premuto per l\'audio. - Tieni premuto per l\'audio. Tocca per il video. - Tieni premuto per il video. Tocca per l\'audio. - Scarta messaggio vocale - Sei sicuro di voler terminare la registrazione e scartare il tuo messaggio vocale? - Scarta videomessaggio - Sei sicuro di voler terminare la registrazione e scartare il tuo videomessaggio? - Scarta - Gli amministratori di questo gruppo ti hanno vietato di inviare media qui fino al %1$s - Gli amministratori di questo gruppo ti hanno vietato di inviare contenuti inline qui fino al %1$s - Gli amministratori di questo gruppo ti hanno vietato di inviare sticker qui fino al %1$s - Gli amministratori di questo gruppo ti hanno vietato di inviare GIF qui fino al %1$s. - Gli amministratori di questo gruppo ti hanno vietato di scrivere qui fino al %1$s - Gli amministratori di questo gruppo ti hanno vietato di inviare media qui. - Gli amministratori di questo gruppo ti hanno vietato di inviare contenuti inline qui. - Gli amministratori di questo gruppo ti hanno vietato di inviare sticker. - Gli amministratori di questo gruppo ti hanno vietato di inviare GIF. - Gli amministratori di questo gruppo ti hanno vietato di scrivere qui. - I media non sono permessi in questo gruppo. - I bot inline non sono permessi in questo gruppo. - Gli sticker non sono permessi in questo gruppo. - Le GIF non sono permesse in questo gruppo. - Non è permesso scrivere messaggi in questo gruppo. - amministratore - L\'installazione di APK è disattivata per questa app. Puoi attivarla nelle impostazioni di sistema. - Messaggi non letti - Cerca set di sticker - Cerca sticker in primo piano - Cerca emoji - URL - Anteprima mappa - Anteprima mappa - Telegram - Google - Yandex - Nessuna anteprima - Installare Google Maps? - TRUFFA - FALSO - via - Il messaggio non esiste - La modalità lenta è attiva. Puoi inviare il prossimo messaggio tra %1$s - Tocca per le foto, tieni premuto per i video - Tocca per vedere come lista. - Invia senza suono - Invia come nuova foto - Sostituisci foto - Invia ora - Riprogramma - Oggi - Programma - Programma messaggio - Messaggi programmati - Invia quando %1$s è in linea - Promemoria - Imposta un promemoria - Programmato per il %1$s - Programmato per quando in linea - Spiacenti, non puoi programmare più di 100 messaggi. - Questa azione sarà disponibile dopo la pubblicazione del messaggio. - La votazione sarà disponibile dopo la pubblicazione del messaggio. - I risultati del sondaggio saranno disponibili dopo la pubblicazione del messaggio. - 📅 Promemoria - 1 risultato - Qualità video troppo bassa per cambiare le impostazioni di compressione. - Numero carta copiato negli appunti - Copia - Invia l\'emoji **:dado:** in qualsiasi chat per lanciare un dado. - Invia l\'emoji **:freccetta:** per tentare la fortuna. - Invia l\'emoji %1$s per tentare la fortuna. - INVIA - COVID-19 - PSA - Questo messaggio ti fornisce un annuncio di servizio pubblico in relazione alla pandemia COVID-19 in corso. Scopri di più su questa iniziativa su https://telegram.org/blog/coronavirus - Test info PSA - Notifica COVID-19 - Questo messaggio ti fornisce un annuncio di servizio pubblico in relazione alla pandemia COVID-19 in corso. Scopri di più su questa iniziativa su https://telegram.org/blog/coronavirus - Notifica importante - Questa è una notifica importante. - Nascondi chat - Sei sicuro di voler nascondere questa chat? - Nascondi - Invia un messaggio o tocca il saluto qui sotto per mostrare che sei pronto a chattare. - Invia un messaggio o tocca il saluto qui sotto. - %1$s è a %2$s - %1$s è %2$s - La chat è stata spostata nella tua lista principale. - g - s - m - h - S - in chat e gruppi privati - Trasferisci proprietà bot - Questo trasferirà tutti i **diritti di proprietà** per il bot all\'utente selezionato. - Cambia proprietario - Puoi trasferire questo bot solo se hai: - Lascia un commento - Commenti - Commenta - Risposte - Ancora nessun commento... - Ancora nessuna risposta... - Visualizza in chat - Invia anonimamente - Discussione iniziata - Visualizza thread - Scegli data - Questa chat ti aiuta a tenere traccia delle risposte ai tuoi commenti nei canali. - Spiacenti, questo post è stato rimosso dal gruppo di discussione. - TOGLI TUTTI I MESSAGGI - NASCONDI I MESSAGGI FISSATI - Messaggi fissati nascosti - Rivedrai i messaggi fissati se ne sarà fissato uno nuovo. - Importato - Il file è troppo grande per l’importazione. - Impossibile caricare il file. - Audio riprodotto a velocità normale. - Audio riprodotto a velocità doppia. - Messaggio copiato negli appunti. - Consegnato - Letto - Link d\'invito inviato nei **Messaggi salvati**. - Link d\'invito inviato a **%1$s**. - Link d\'invito inviato a **%1$s**. - Link d\'invito inviato a **%1$s**. - Messaggio inoltrato nei **Messaggi salvati**. - Messaggi inoltrati nei **Messaggi salvati**. - Messaggio inoltrato in **%1$s**. - Messaggi inoltrati in **%1$s**. - Messaggio inoltrato a **%1$s**. - Messaggi inoltrati a **%1$s**. - Messaggio inoltrato in **%1$s**. - Messaggi inoltrati in **%1$s**. - Sfondo condiviso nei **Messaggi salvati**. - Sfondo condiviso con **%1$s**. - Sfondo condiviso con **%1$s**. - Sfondo condiviso in **%1$s**. + %1$s ti ha inviato un codice regalo per %2$s di Telegram Premium + %1$s ti ha inviato un giveaway di %2$s abbonamenti Premium da %3$sm + %1$s ha pubblicato un giveaway di %2$s abbonamenti Premium da %3$sm + %1$s ha inviato un giveaway di %3$s abbonamenti Premium da %4$sm nel gruppo %2$s + %1$s ha fissato un giveaway + %1$s ha reagito con %2$s al tuo giveaway + %1$s ha reagito con %3$s nel gruppo %2$s al tuo giveaway %1$s ha impostato il timer di autodistruzione a %2$s Hai impostato il timer di autodistruzione a %1$s %1$s ha disattivato il timer di autodistruzione @@ -1225,7 +156,7 @@ %1$s ti ha inviato il quiz \"%2$s\" %1$s ti ha inviato una posizione %1$s ti ha inviato una posizione in tempo reale - %1$s ti ha invitato a giocare %2$s + %1$s ti ha invitato a giocare a %2$s %1$s ha totalizzato %3$s a %2$s %1$s ti ha inviato un file %1$s ti ha inviato una GIF @@ -1243,7 +174,7 @@ %1$s ha condiviso un contatto %3$s nel gruppo %2$s %1$s ha inviato una posizione nel gruppo %2$s %1$s ha condiviso una posizione in tempo reale nel gruppo %2$s - %1$s ha invitato il gruppo %2$s a giocare %3$s + %1$s ha invitato il gruppo %2$s a giocare a %3$s %1$s ha totalizzato %4$s a %3$s nel gruppo %2$s %1$s ha inviato un file nel gruppo %2$s %1$s ha inviato una GIF nel gruppo %2$s @@ -1253,24 +184,35 @@ %1$s ha inviato un file audio nel gruppo %2$s %1$s ha inviato uno sticker nel gruppo %2$s %1$s ha inviato uno %3$s sticker nel gruppo %2$s + %1$s hai ricevuto un addebito di %2$s + %1$d ⭐️ media + %1$d ⭐️ media + %2$s ti ha inviato un post a pagamento per %1$d stella + %2$s ti ha inviato un post a pagamento per %1$d stelle + %2$s ha pubblicato un post a pagamento per %1$d stella + %2$s ha pubblicato un post a pagamento per %1$d stelle + %2$s ha fissato un post a pagamento per %1$d stella + \n%2$s ha fissato un post a pagamento per %1$d stelle + %2$s ha pubblicato un post a pagamento nel gruppo %3$s per %1$d stella + \n%2$s ha pubblicato un post a pagamento nel gruppo %3$s per %1$d stelle %1$s ti ha invitato nel gruppo %2$s %1$s ha rinominato il gruppo %2$s %1$s ha modificato la foto del gruppo %2$s - %1$s ha cambiato il video del gruppo per %2$s + %1$s ha cambiato la foto del gruppo %2$s %1$s ha invitato %3$s nel gruppo %2$s - %1$s ha invitato %3$s in una chat vocale in %2$s - %1$s ti ha invitato in una chat vocale in %2$s - %1$s ha iniziato una chat vocale in %2$s - %1$s ha terminato la chat vocale in %2$s + %1$s ha invitato %3$s in una chat video in %2$s + %1$s ti ha invitato in una chat video in %2$s + %1$s ha avviato una chat video in %2$s + %1$s ha terminato la chat video in %2$s %1$s è tornato nel gruppo %2$s - %1$s si è unito/a al gruppo %2$s + %1$s si è unito al gruppo %2$s %1$s ha rimosso %3$s dal gruppo %2$s %1$s ti ha rimosso dal gruppo %2$s %1$s ha lasciato il gruppo %2$s %1$s è ora su Telegram! %1$s,\nAbbiamo rilevato un accesso al tuo account da un nuovo dispositivo il %2$s\n\nDispositivo: %3$s\nPosizione: %4$s\n\nSe non sei stato tu, puoi andare in Impostazioni > Dispositivi e terminare quella sessione.\n\nSe pensi che qualcuno si sia collegato al tuo account contro il tuo volere, puoi attivare la Verifica in due passaggi nelle impostazioni di Privacy e sicurezza.\n\nCordiali saluti,\nil team di Telegram %1$s ha aggiornato la foto del profilo - %1$s si è unito/a al gruppo %2$s tramite link d\'invito + %1$s si è unito al gruppo %2$s tramite il link d\'invito %1$s ha inviato %3$s nel gruppo %2$s %1$s ha inviato un album nel gruppo %2$s %1$s ha inoltrato %3$s nel gruppo %2$s @@ -1279,9 +221,8 @@ Utente Nuovo messaggio Rispondi - Rispondi a %1$s - Rispondi a %1$s - Dati in background disattivati. + Rispondi + Rispondi %1$s %2$s %1$s ha fissato \"%2$s\" nel gruppo %3$s %1$s ha fissato un messaggio nel gruppo %2$s @@ -1341,416 +282,31 @@ %1$s ha fissato una GIF %1$s ha fissato un file audio Telegram - - Seleziona contatto - Seleziona contatti - CONDIVIDI CONTATTO - Condividi contatto - Aggiungi contatto - Ancora nessun contatto - Ehi, sto usando Telegram per chattare. Unisciti a me! Scaricalo qui: %1$s - alle - ieri alle - alle %1$s - oggi alle %1$s - ieri alle %1$s - in linea - ultimo accesso - ultimo accesso - ultimo accesso %1$s - ultimo accesso %1$s - Invita amici - Cerca contatti - Ricerca globale - ultimo accesso di recente - ultimo accesso entro una settimana - ultimo accesso entro un mese - ultimo accesso molto tempo fa - Nuovo messaggio - Seleziona dei contatti per invitarli su Telegram - INVITA SU TELEGRAM - Condividi Telegram... - Aggiornare i contatti? - Telegram ha trovato molti contatti non sincronizzati, vorresti sincronizzarli adesso? Scegli \'OK\' se stai usando il tuo dispositivo, la tua SIM e il tuo account Google. - Ordinati per nome - Ordinati per ultimo accesso - Aggiungi %1$s - Numero di telefono - Non hai ancora contatti su Telegram - Invita gli amici a provare Telegram - Trova persone nelle vicinanze con cui chattare - Cerca persone tramite username - Nuovo contatto - Il numero di telefono **%1$s** non è tra i tuoi contatti. Vuoi aggiungerlo? - Aggiungi contatto - - Aggiungi persone... - Potrai aggiungere altri membri dopo aver creato il gruppo. - Il tuo gruppo ha raggiunto il limite di **200.000** membri.\n\nPuoi aumentare questo limite convertendo il gruppo in un **gruppo broadcast** dove solo gli amministratori possono scrivere.\nTi interessa? - Limite raggiunto - SCOPRI DI PIÙ - Gruppo broadcast - Converti in gruppo broadcast - I gruppi broadcast possono avere più di 200.000 membri, ma solo gli amministratori possono inviare messaggi. - Solo gli amministratori possono inviare messaggi in questo gruppo. - Il tuo gruppo ora può avere più di 200.000 membri. - Inserisci il nome del gruppo - Nome del gruppo - fino a %1$s - Spiacenti, questo gruppo è già pieno. - Spiacenti, sembra che questa chat non esista. - Questo canale è privato. Unisciti per continuare a vederne i contenuti. - Questo gruppo è privato. Unisciti per continuare a vederne i contenuti. - Unisciti al canale - Unisciti al gruppo - UNISCITI - Link copiato negli appunti - Link copiato negli appunti.\nQuesto link funzionerà solo per i membri di questa chat. - Questo link funzionerà solo per i membri di questa chat. - Sfortunatamente, non puoi accedere a questo messaggio. Non sei membro della chat in cui è stato pubblicato. - Numero copiato negli appunti - Email copiata negli appunti - Invita nel gruppo tramite link - Link d\'invito - Link d’invito - Sei sicuro di voler revocare questo link? Una volta fatto, nessuno potrà unirsi utilizzandolo. - Il precedente link d\'invito ora è inattivo. Ne è stato creato uno nuovo. - Revoca - Revoca link - Sei sicuro di voler revocare il link **%1$s**?\n\nIl gruppo \"**%2$s**\" diventerà privato. - Sei sicuro di voler revocare il link **%1$s**?\n\nIl canale \"**%2$s**\" diventerà privato. - Copia link - Condividi link - Chiunque abbia Telegram installato potrà unirsi al tuo gruppo tramite questo link. - Cerca persone... - Cerca utenti e gruppi... - Gruppi broadcast - Nessun limite al numero di membri. - Solo gli amministratori possono pubblicare. - Non possono tornare gruppi normali. - Converti in gruppo broadcast - Mantieni il gruppo normale - Sei sicuro? - I membri normali (non amministratori) perderanno **irrevocabilmente** la possibilità di inviare messaggi nel gruppo.\n\nQuesta azione **non può** essere annullata. - CONVERTI - Se cambi idea, vai nelle impostazioni del tuo gruppo > Permessi. - - Membri - Media condivisi - Impostazioni - Aggiungi iscritto - Aggiungi membro - Aggiungi amministratori - RIMUOVI DAL GRUPPO - Elimina e lascia il gruppo - Elimina e lascia il gruppo - Notifiche - Cambia permessi - Rimuovi dal gruppo - Aggiorna a supergruppo - Converti in supergruppo - Converti in supergruppo - Attenzione - Questa azione è irreversibile. Non è possibile trasformare un supergruppo in un gruppo normale. - **Limite membri raggiunto.**\n\nPer avere maggiore spazio e funzioni aggiuntive, aggiorna a supergruppo:\n\n• I supergruppi hanno massimo %1$s\n• I nuovi membri possono vedere tutta la cronologia\n• I messaggi eliminati scompaiono per tutti\n• Gli admin possono aggiungere una descrizione al gruppo\n• Il proprietario può creare un link pubblico per il gruppo - **Nei supergruppi:**\n\n• I nuovi membri vedono tutta la cronologia\n• I messaggi eliminati scompaiono per tutti\n• Gli admin possono aggiungere una descrizione al gruppo\n• Il creatore può creare un link pubblico per il gruppo - **Nota:** questa azione non può essere annullata. - - Condividi contatto - Aggiungi ai contatti - Aggiungi contatto - Invita su Telegram - %1$s non si è ancora unito/a a Telegram, vuoi invitarlo a unirsi? - Invita - BLOCCA - BLOCCA E ELIMINA RISPOSTE - Blocca utente - Blocca utente - Blocca utenti - Vuoi impedire a **%1$s** di scriverti e chiamarti su Telegram? - Vuoi impedire a **%1$s** di scriverti e chiamarti su Telegram? - Utente bloccato - Utente sbloccato - Modifica contatto - Elimina contatto - Casa - Cellulare - Lavoro - Altro - Principale - Lavoro - Compleanno - Titolo - Crea nuovo contatto - Nuovo contatto - Aggiungi a contatto esistente - Bio - Aggiungi qualche riga su di te - Nessuna - Puoi aggiungere qualche riga su di te. Chiunque apra il tuo profilo vedrà questo testo. - Avvia chat segreta - Gruppi in comune - Gruppi in comune - Nessun gruppo in comune - Si è verificato un errore. - Chiave di crittografia - Timer di autodistruzione - Se imposti un timer, la foto si autodistruggerà dopo essere stata vista. - Se imposti un timer, il video si autodistruggerà dopo essere stato visto. - No - L\'immagine e il testo sono derivati dalla chiave di crittografia di questa chat segreta con **%1$s**.\n\nSe sono uguali sul dispositivo di **%2$s**, la crittografia end-to-end è garantita.\n\nUlteriori informazioni su telegram.org - https://telegram.org/faq/it#chat-segrete - Sconosciuto - Sconosciuto - Numero nascosto - Il numero di telefono sarà visibile dopo che %1$s ti avrà aggiunto come contatto. - Quando premerai su **FATTO**, il tuo numero di telefono sarà visibile a %1$s. - Condividi il mio numero con %1$s - %1$s ora è nella tua lista contatti - Info - Telefono - Contenuto condiviso - Foto e video - Link - File audio - Invia messaggio - Segnala - %1$d link d\'invito - %1$d link d\'invito - %1$d link d\'invito - %1$d link d\'invito - %1$d link d\'invito - %1$d link d\'invito - Username copiato negli appunti. - Hashtag copiato negli appunti. - Bio copiata negli appunti. - %s eliminato dai tuoi contatti Username - Il tuo username - Spiacenti, questo username è già stato preso. - Spiacenti, questo username non è valido. - Un username deve avere almeno 5 caratteri. - Il massimo per un username è 32 caratteri. + e %1$s + username + Questo username è già occupato. + Questo link è già occupato.\nTuttavia, al momento è disponibile per l\'acquisto. **Scopri di più…** + Questo username non è valido. + Gli username devono avere almeno 5 caratteri. + Un username base deve avere almeno 5 caratteri.\nTuttavia, gli username collezionabili brevi, incluso questo, sono disponibili per l\'acquisto. **Scopri di più…** + Gli username non possono superare i 32 caratteri. Gli username non possono iniziare con un numero. - Puoi scegliere un username su **Telegram**. Se lo fai, le persone potranno trovarti tramite questo username e contattarti senza aver bisogno del tuo numero di telefono.\n\nPuoi usare **a–z**, **0–9** e underscore. La lunghezza minima è **5** caratteri. + Puoi scegliere un username su **Telegram**. Se lo fai, le persone potranno trovarti tramite questo username e contattarti senza sapere il tuo numero di telefono.\n\nPuoi usare **a–z**, **0–9** e underscore. La lunghezza minima è **5** caratteri. Questo link apre una chat con te:\n%1$s Controllo l\'username... %1$s è disponibile. Nessuno Si è verificato un errore. - - Sticker e maschere - Riproduci sticker animati in loop - Gli sticker animati saranno riprodotti in modo continuo nella chat. - Sticker animati - Aggiungi sticker - AGGIUNGI %1$s - RIMUOVI %1$s - Aggiungi maschere - Aggiungi agli sticker - Aggiungi ai preferiti - Sticker aggiunto ai preferiti - Sticker rimosso dai preferiti - Sticker rimosso dai recenti - Usati di recente - Preferiti - Sticker del gruppo - Altri sticker - Elimina dai preferiti - Rimuovi dai recenti - Aggiungi alle maschere - Sticker non trovati - Sticker rimossi - %1$s non è più tra i tuoi sticker. - Maschere rimosse - %1$s non è più tra le tue maschere. - Sticker archiviati. - %1$s è stato spostato nel tuo archivio. - Maschere archiviate. - %1$s è stato spostato nel tuo archivio. - Nuovi sticker aggiunti - %1$s è stato aggiunto ai tuoi sticker. - Nuove maschere aggiunte - %1$s è stato aggiunto alle tue maschere. - Archivia - Condividi - Copia link - Riordina - Rimuovi - Muovi gli sticker per riordinarli. - Ancora nessuno sticker - Nessuno sticker trovato - Nessuna GIF trovata - Nessuna emoji trovata - Ancora nessuna maschera - Suggerimenti emoji - **Telegram** ti consente di cercare emoji usando migliaia di parole chiave, ma c\'è sempre qualcosa mancante. Se vuoi suggerire nuovi sinonimi per le emoji, puoi aiutarci visitando: - https://translations.telegram.org/%1$s/emoji - Maschere - Puoi aggiungere maschere alle foto che invii. Per farlo, apri l\'editor fotografico prima di inviare una foto. - Sticker in primo piano - GIF in primo piano - Suggerisci da emoji - Tutti i set - I miei set - Nessuno - Questi sticker sono al momento in primo piano su Telegram. Puoi aggiungere sticker personalizzati tramite il bot @stickers. - Gli artisti sono invitati ad aggiungere i loro set di sticker usando il nostro bot @stickers. - Sticker archiviati - Maschere archiviate - Nessuno sticker archiviato - Nessuna maschera archiviata - Puoi avere 200 set di sticker attivi.\nI set non usati sono archiviati quando ne aggiungi altri. - Puoi aggiungere fino a 200 set di maschere.\nI set non usati saranno archiviati quando ne aggiungerai altri. - INVIA STICKER - Sticker archiviati - Alcuni dei tuoi set di sticker più vecchi sono stati stati archiviati. Puoi riattivarli nelle impostazioni degli sticker. - Maschere archiviate - Alcuni dei tuoi set di maschere più vecchi sono stati stati archiviati. Puoi riattivarli nelle impostazioni delle maschere. - Elimina %1$s - Sei sicuro di voler eliminare i set di sticker selezionati? - Archivia %1$s - Sei sicuro di voler archiviare i set di sticker selezionati? - IMPORTA %1$s - Elaboro gli sticker... - RIMUOVI DALL\'IMPORTAZIONE - Rimuovi dall\'importazione - Inserisci nome - Per favore scegli un nome per il tuo set. - Puoi usare a-z, 0-9 e underscore. - Spiacenti, questo link non è valido. - Il link deve avere almeno 5 caratteri. - Il link non può superare i 32 caratteri. - Controllo il link... - Questo link è disponibile. - Spiacenti, questo link è già stato preso. - Importazione sticker - Sticker importati con successo! - Importa altri sticker su Telegram e condividili con i tuoi amici. - - Tema - Modalità notte automatica - No - Disattivata - Programmata - Adattiva - Programma - Default di sistema - Usa tramonto e alba locali - Aggiorna posizione - Calcolare gli orari di tramonto e alba richiede un unico controllo della tua posizione approssimativa. Ricorda che questa posizione è archiviata solo localmente sul tuo dispositivo.\n\nTramonto: %1$s\nAlba: %2$s - Dalle - Alle - Tema notte preferito - Soglia luminosità - Passa al tema notte quando la luce ambientale è inferiore al %1$d%%. - Scuro - Blu scuro - Giorno - Notte - Artico - Classico - Elimina il tema - Sei sicuro di voler eliminare questo tema? - File tema non valido - Tocca **Crea** se vuoi condividere il tema con gli altri o personalizzare manualmente ogni colore.\n\nPer favore inserisci il nome del tema: - Inserisci il nome del tema - CHIUDI EDITOR - SALVA TEMA - Nuovo tema - Tema - Tema cambiato. - Puoi cambiarlo di nuovo nelle *Impostazioni chat*. - Temi integrati - Temi personalizzati - Imposta link - Link tema - Angoli messaggio - Visualizzazione lista chat - Due righe - Tre righe - CREA TEMA - APPLICA - Anteprima tema - Seleziona colore - Temi - Mostra tutti i temi - Tema non trovato - Spiacenti, questo tema non supporta ancora il tuo dispositivo. - Crea nuovo tema - Nuovo tema - Modifica tema - Tocca sull\'icona della tavolozza per vedere la lista degli elementi in ogni schermata - e modificarli. - Puoi creare il tuo tema cambiando i colori all\'interno dell\'app.\n\nPuoi sempre tornare al tema Telegram di default qui. - Puoi usare a-z, 0-9 e underscore.\nLa lunghezza minima è 5 caratteri. - Il tuo tema sarà aggiornato per tutti gli utenti ogni volta che lo modifichi. Chiunque può installarlo usando questo link:\n%1$s - Chiunque può installare il tuo tema utilizzando questo link. Quando modifichi il tema, sarà aggiornato per tutti gli utenti che lo hanno installato.\n\nIl tema sarà basato sul tema e sullo sfondo attualmente selezionati. - Puoi modificare il link del tuo tema.\n\nI link dei temi devono essere più lunghi di 5 caratteri e possono usare a-z, 0-9 e underscore. - Spiacenti, nome del tema non valido. - Spiacenti, questo link non è valido. - Un link deve avere almeno 5 caratteri. - Il link non deve avere più di 64 caratteri. - Spiacenti, il link non può iniziare con un numero. - Controllo il link... - Spiacenti, questo link è già stato preso. - %1$s è disponibile. - Link - Nome - Eva Summer - Mi ricorda una dimostrazione cinese... - La tua competizione interiore - ehi, ho aggiornato il codice sorgente. - Mike Apple - 🤷‍♂️ Sticker - Paul Newman - Qualche idea? - Vecchi pirati - Yo-ho-ho! - Kate Bright - Hola! - Nick K - Questi non sono i droidi che stai cercando. - Adler Toberg - Qualcuno ha detto burro d\'arachidi? - Reinhardt - Reinhardt, dobbiamo trovarti qualche nuova canzone 🎶. - Non posso prenderti sul serio adesso. - Ah, i ragazzi di oggi con la musica techno! Godetevi i classici, come Hasselhoff! - Lucio - Coraggio! Io VIVO per questo! - True Survivor - David Hasselhoff - Bob Harris - Buongiorno! 👋 - Buongiorno - Sai che ore sono? - È mattina a *Tokyo* 😎 - Usa un tema diverso - Puoi anche usare un tema personalizzato esistente come base per il tuo tema. - Scegli tema - Esporta - Crea - Colore principale - Sfondo - Miei messaggi - RIPRISTINA TUTTO - RIPRISTINA - Sei sicuro di voler cambiare lo sfondo della chat con un colore? - Vuoi usare lo sfondo attualmente selezionato o ripristinare quello di default per questo tema? - Condividi tema - Modifica colori - Ripristina default - Ripristina impostazioni - Sei sicuro di voler ripristinare la dimensione del testo e le impostazioni del colore? - Elimina il tema - Apri nell\'editor - Salvare le modifiche? - Vuoi applicare i nuovi colori che hai scelto? + Nessuna Tutte le impostazioni di notifica sono state ripristinate Ripristina tutte le notifiche - Sei sicuro di voler ripristinare tutte le impostazioni di notifica sui valori di default? + Vuoi davvero ripristinare tutte le impostazioni di notifica sui valori predefiniti? + Ripristina le impostazioni predefinite + Ripristina notifiche + Vuoi davvero ripristinare le impostazioni di notifica sui valori predefiniti? Dimensione testo messaggio Fai una domanda Aggiungi una spiegazione @@ -1761,13 +317,13 @@ Aiuto Debug Account - Sblocca - Tieni premuto sull’utente per sbloccarlo. + Sblocca utente Ancora nessun utente bloccato - Notifiche messaggio Mostra notifiche - Anteprima messaggio - Notifiche di gruppo + Mostra anteprime messaggi + Mostra nome mittente + Eccezioni automatiche + Attiva automaticamente le notifiche delle storie per i 5 utenti che contatti più di frequente. Suono Notifiche in-app Suoni in-app @@ -1776,12 +332,12 @@ Anteprima in-app Ripristina Ripristina tutte le notifiche - Ripristina tutte le impostazioni personalizzate di notifica per i contatti, i gruppi e i canali. + Annulla tutte le impostazioni di notifica personalizzate per i tuoi contatti, gruppi e canali. Notifiche e suoni Notifiche personalizzate Notifiche popup I nuovi messaggi da questo contatto appariranno sul tuo schermo quando non stai usando Telegram. - LED + Luce Colore Blu Rosso @@ -1789,27 +345,23 @@ Verde Ciano Bianco - Seppia - Scuro Rosa Dimensione carattere Tipo di font Viola Arancione - Il led è una piccola luce lampeggiante usata in alcuni dispositivi per indicare nuovi messaggi. - Le notifiche con priorità più alta funzioneranno anche se il telefono è in modalità Non disturbare. + Una piccola luce lampeggiante usata per indicare i nuovi messaggi su alcuni dispositivi. + Le notifiche con priorità più alta funzioneranno anche in modalità Non disturbare. Generali Silenziato Non silenziato No Disattivate fino a %1$s - Default (Sì) - Default (No) Attiva Disattiva Utenti bloccati - Gli utenti bloccati non potranno contattarti e non vedranno l\'orario del tuo ultimo accesso. + Gli utenti bloccati non possono inviarti messaggi o aggiungerti ai gruppi. Non vedranno le tue foto del profilo, le storie, lo stato in linea e l\'ultimo accesso. Blocca utente CHAT CONTATTI @@ -1821,30 +373,30 @@ Sfocato Prospettiva Cambia sfondo chat + Cambia colore del nome + Aspetto + Aspetto Sfondo chat Ripristina sfondi chat Rimuove tutti gli sfondi chat caricati e ripristina quelli preinstallati. Ripristina sfondi chat - Sei sicuro di voler ripristinare tutti gli sfondi chat? - Sei sicuro di voler eliminare gli sfondi selezionati? + Vuoi davvero ripristinare tutti gli sfondi chat? + Vuoi davvero eliminare gli sfondi selezionati? Anteprima sfondo - Suggerimento: alcuni sfondi appaiono migliori quando sfocati. + Suggerimento: alcuni sfondi appaiono migliori con l\'effetto sfocato. Woo-hoo! Grazie! - Scorri a sinistra o destra per vedere altri colori. - Il salmone è un pesce, non un colore. Bob Harris Buongiorno! 👋 Sai che ore sono? È mattina a Tokyo 😎 - Premi \'Imposta\' per applicare lo sfondo. - Goditi la vista. - IMPOSTA SFONDO + Premi “Imposta” per applicare lo sfondo. + Sembra bello Cerca per colore - Cerca sfondi + Cerca immagini Colore: - Luminosità - Codice colore esadecimale Colori + I colori si muovono quando invii i messaggi + Animato Motivo Scegli motivo Intensità @@ -1861,27 +413,33 @@ Grigio Bianco Seleziona un colore - Carica immagine - Seleziona immagine carico l\'immagine completa... Imposta un colore Messaggi Invia con tasto Invio Eventi - Un contatto si è unito a Telegram + Un contatto è ora su Telegram Messaggi fissati + Traduci i messaggi + Mostra pulsante Traduci + Traduci intere chat + Non tradurre + %1$d lingua + %1$d lingue + Scegli lingue + Il pulsante \"Traduci\" apparirà con un singolo tocco su un messaggio di testo. + Google potrebbe avere accesso al testo dei messaggi che traduci. Lingua Personalizzata Cambiare lingua? Stai per applicare una lingua (**%1$s**) che è completa al %2$d%%.\n\nQuesto tradurrà l\'intera interfaccia. Puoi suggerire correzioni nella [piattaforma di traduzione].\n\nPuoi cambiare la tua lingua in qualsiasi momento nelle Impostazioni. - Stai per applicare una lingua (**%1$s**) che è completa al %2$d%%.\n\nQuesto tradurrà l\'intera interfaccia. Puoi suggerire correzioni nella [piattaforma di traduzione].\n\nPuoi cambiare la tua lingua in qualsiasi momento nelle Impostazioni. + Stai per applicare una lingua personalizzata (**%1$s**) che è completa al %2$d%%.\n\nQuesto tradurrà l\'intera interfaccia. Puoi suggerire correzioni nella [piattaforma di traduzione].\n\nPuoi cambiare la tua lingua in qualsiasi momento nelle Impostazioni. Dati insufficienti - Lingue non ufficiali - Questa lingua non esiste. + Lingua non trovata. Stai già usando questa lingua (**%1$s**). Puoi cambiare la tua lingua in qualsiasi momento nelle Impostazioni. - Sfortunatamente, questa lingua personalizza (**%1$s**) non contiene dati per Telegram Android. - Per favore nota che il supporto di Telegram è gestito da volontari. Proviamo a rispondere quanto prima, ma potrebbe volerci del tempo.\n\nDai un\'occhiata alle FAQ di Telegram]]>: contengono suggerimenti importanti per risolvere i problemi]]> e risposte a quasi tutte le domande. - Chiedi a un volontario + Sfortunatamente, questa lingua personalizzata (**%1$s**) non contiene dati per Telegram Android. + Per favore ricorda che il supporto di Telegram è gestito da volontari. Proviamo a rispondere quanto prima, ma potrebbe volerci del tempo.\n\nDai un\'occhiata alle FAQ di Telegram]]>: contengono risposte a quasi tutte le domande e suggerimenti importanti per risolvere i problemi]]>. + Chiedi ai volontari FAQ Telegram FAQ Telegram Funzioni di Telegram @@ -1889,29 +447,31 @@ Aggiungi account Seleziona Account https://telegram.org/faq/it - Informativa sulla privacy - Termini di servizio - Iscrivendoti,\naccetti i *Termini di servizio*. + Informativa sulla Privacy + Termini di Servizio + Iscrivendoti, accetti\ni *Termini di Servizio*. https://telegram.org/privacy + https://telegram.org/tos + https://telegram.org/tos/mini-apps Elimina la lingua - Sei sicuro di voler eliminare la lingua **%1$s**? + Vuoi davvero eliminare la lingua **%1$s**? File di traduzione non valido Servizio keep-alive Riavvia l\'app quando terminata. Attiva per notifiche affidabili. Connessione in background - Mantiene una connessione a basso impatto con Telegram per notifiche affidabili. + Conserva una connessione a basso consumo con Telegram per notifiche affidabili. Ordina per Importa contatti Nome Cognome - Colore LED - Notifiche popup + Colore luce + Notifica popup Nessun popup Solo con schermo acceso Solo con schermo spento - Mostra sempre il popup + Mostra sempre Contatore badge - Attivato + Mostra icona badge Includi le chat silenziate Conta i messaggi non letti Breve @@ -1922,7 +482,7 @@ Fino a %1$s in tutte le chat Disattivato Fino a %1$s per %2$s - Attivo per %1$s + Attivato per %1$s Contatti Canali Basso @@ -1949,47 +509,56 @@ Attiva questo se vuoi che i media siano scaricati automaticamente con la rete cellulare. Attiva questo se vuoi che i media siano scaricati automaticamente in roaming. Attiva questo se vuoi che i media siano scaricati automaticamente con la rete Wi-Fi. - Con la rete cellulare + Con i dati cellulare In roaming Con il Wi-Fi Utilizzo dati Tipi di media I messaggi vocali sono leggeri, sono sempre scaricati automaticamente. - Nessun media + Disattivato Nessuna GIF + Impostazioni download automatico + Puoi cambiare le tue impostazioni di download automatico per ridurre l\'utilizzo dei dati cellulare. + Puoi cambiare le tue impostazioni di download automatico per ridurre l\'utilizzo dei dati quando usi una rete Wi-Fi. + Puoi cambiare le impostazioni di download automatico per ridurre l\'utilizzo dei dati quando sei in roaming. Ripristina download automatico Ripristina impostazioni - Sei sicuro di voler ripristinare le impostazioni di download automatico? + Vuoi davvero ripristinare le impostazioni di download automatico? Quando utilizzi la rete cellulare - Quando connesso tramite Wi-Fi + Quando connesso al Wi-Fi In roaming GIF Video Premi i tasti del volume per attivare il suono. Il mittente ha nascosto il suo account + L\'account è stato nascosto dall\'utente Autoriproduzione media - Alza per registrare + Alza per parlare + Registra i messaggi vocali avvicinando il telefono al tuo orecchio + Alza per ascoltare + Passa l\'audio alla capsula auricolare avvicinando il telefono al tuo orecchio Salva nella galleria Suono silenziato Modifica nome + Cambia colore profilo Personalizza Personalizzate - Attiva notifiche personalizzate - Importanza - Come nelle Impostazioni + Priorità + Come in Impostazioni Bassa Media Alta Urgente Mai Ripeti notifiche - Puoi cambiare il tuo numero di telefono qui. Il tuo account e tutti i tuoi dati cloud — messaggi, media, contatti, etc. saranno trasferiti sul nuovo numero + Puoi cambiare il tuo numero di telefono qui. Il tuo account e tutti i tuoi dati cloud (messaggi, media, contatti, etc.) saranno trasferiti sul nuovo numero. Gli utenti vedranno il tuo nuovo numero se lo hanno in rubrica o se le tue impostazioni sulla privacy lo consentono. Puoi modificarle in Impostazioni > Privacy e sicurezza > Numero di telefono. Cambia numero Cambia numero + Conserva %1$s Nuovo numero - Invieremo un SMS con un codice di conferma al tuo nuovo numero. - Il numero %1$s è già connesso a un account Telegram. Per favore elimina quell\'account prima di migrare ad un nuovo numero. + Il tuo nuovo numero riceverà un codice di conferma tramite chiamata o SMS. + Il numero %1$s è già connesso a un account Telegram. Per favore elimina quell\'account prima di usare questo numero. Altro Disattivata Attivate @@ -2008,26 +577,21 @@ Aggiungi eccezione Elimina tutte le eccezioni Elimina tutte le eccezioni - Sei sicuro di voler eliminare tutte le eccezioni? + Vuoi davvero eliminare tutte le eccezioni? Nuova eccezione - Questa sezione mostrerà tutte le chat con impostazioni di notifica non di default.\n\nPuoi personalizzare le notifiche per una chat aprendo il suo profilo e scegliendo \'Notifiche\'. - Nessuna + Questa sezione mostrerà tutte le chat con impostazioni di notifica non predefinite.\n\nPuoi personalizzare le notifiche per una chat aprendo il suo profilo e scegliendo \'Notifiche\'. %1$d / %2$s - Disattivate - Frequenza avviso sonoro - %1$s ogni %2$s + Disattiva Anteprime link - Le anteprime dei link saranno generate dai server di Telegram. Non archiviamo dati sui link che invii. + Le anteprime dei link saranno generate dai server di Telegram. Non conserviamo alcun dato sui link che invii. Chat segrete - Browser in-app - Apri i link esterni all\'interno dell\'app Condivisione diretta Mostra le chat recenti nel menu di condivisione Emoji Emoji grandi - Usa emoji di default Telegram per Android %1$s Menu debug + Tieni premuto di nuovo per il menu di debug Invia i log Invia gli ultimi log \nCancella i log @@ -2036,26 +600,44 @@ Importa contatti Ricarica contatti Ripristina chat - Leggi tutte le chat - Disattiva musica quando registri - Mantieni musica quando registri - Attiva tastiera fluida - Disattiva tastiera fluida + Segna tutte le chat come lette + Verifica aggiornamenti Attiva fotocamera in-app Disattiva fotocamera in-app Ripristina contatti importati - Vuota cache dei media inviati + Cancella la cache dei media inviati Impostazioni chiamata - Puoi cambiare la lingua più tardi nelle Impostazioni. + Cancella la cache WebView + Cancella i cookie WebView + Attiva debug WebView + "Disattiva debug WebView " + Debug attivato! + Debug disattivato! + Puoi cambiare la lingua più tardi in Impostazioni. Scegli la tua lingua Altro + Incolla + Inverti + Tocca un oggetto per ritagliarlo + Ritaglia + Ritaglia un oggetto + Annulla ritaglio + Annulla + Aggiungi contorno + Cancella + Ripristina + modifica Incolla dagli appunti Impostazioni proxy Dettagli proxy Proxy Connessioni + Proxy aggiunto. Aggiungi proxy Eliminare il proxy? + Elimina il proxy + Vuoi davvero eliminare questo proxy? + Vuoi davvero eliminare questi proxy? Usa proxy Server Password @@ -2066,7 +648,7 @@ Proxy MTProto Il proxy che stai usando non è configurato correttamente e sarà disattivato. Per favore trovane un altro. Sponsor del proxy - Questo canale è mostrato dal tuo server proxy. Per rimuovere il canale dalla lista chat, disattiva il proxy nelle Impostazioni di Telegram. + Questo canale è mostrato dal tuo server proxy. Per rimuovere il canale dalla lista chat, disattiva il proxy nelle Impostazioni di Telegram > Dati e archivio. Impostazioni proxy SOCKS5 Impostazioni proxy MTProto. Questo proxy potrebbe mostrare un canale sponsorizzato nella tua lista chat. Questo non rivela nulla del tuo traffico Telegram. @@ -2075,8 +657,8 @@ Attiva Attenzione Hai quasi esaurito lo spazio sul dispositivo. Per liberarlo, imposta Telegram per salvare nella cache solo i media recenti. - Rimuovi media dopo - Non rimuovere mai + Il tuo dispositivo ha quasi esaurito lo spazio libero. Puoi usare le impostazioni della cache per rimuovere i media non necessari, e riscaricare i file se ne hai bisogno. + Gestisci la cache Contatti Chat private Gruppi @@ -2085,11 +667,8 @@ fino a %1$s Streaming Streaming file video e audio - Alcuni video non possono essere riprodotti in streaming – ad esempio, tutti i video inviati da Android usando Telegram 4.7 o precedente. + Quando è possibile, Telegram inizierà subito a riprodurre video e musica, senza aspettare che i file vengano scaricati completamente. Tocca per cambiare numero di telefono - Aspetto - Sticker e maschere - Scegli combinazioni di colori personalizzate Mostra notifiche da Tutti gli account Disattiva se vuoi ricevere notifiche solo dall\'account in uso al momento. @@ -2097,22 +676,25 @@ Chat private Gruppi Canali - Per favore nota che **%1$s** sono nella lista delle eccezioni e questa modifica non avrà effetto. - Per favore nota che **%1$s** è nella lista delle eccezioni e questa modifica non avrà effetto. + Storie + Reazioni + Per favore ricorda che **%1$s** sono nella lista delle eccezioni e questa modifica non avrà effetto. + Per favore ricorda che **%1$s** è nella lista delle eccezioni e questa modifica non avrà effetto. Visualizza eccezioni - Notifiche per i gruppi - Notifiche per le chat private - Notifiche per i canali Tocca per cambiare Opzioni alternative Aggiungi un altro account Connetti altri account Telegram e passa facilmente da uno all\'altro. Imposta un codice di blocco Blocca l\'app con un codice, così gli altri non potranno aprirla. - Svuota cache + Cancella la cache + Cancella la selezione Libera spazio sul tuo dispositivo; i tuoi media rimarranno nel cloud. + Cancello la cache… + Tieni aperta questa finestra mentre Telegram elimina la tua cache. Cambia numero di telefono Sposta il tuo account, le chat e i media su un nuovo numero. + Il tuo numero di telefono è stato cambiato con successo in %1$s. Contatta il supporto Segnalaci qualsiasi problema; disconnettersi solitamente non aiuta. Esci @@ -2130,29 +712,33 @@ Miglia Scansiona codice QR Scansiona codice QR - Token non valido o già scaduto. Nessun token di autenticazione trovato Autenticazione riuscita https://desktop.telegram.org/ + https://web.telegram.org/ Scarica Telegram sul tuo computer da *desktop.telegram.org* Avvia Telegram Desktop per ottenere il codice QR. Scansiona il codice QR per connettere il tuo account. Questo codice può essere usato per consentire a qualcuno di accedere al tuo account Telegram.\n\nPer confermare l\'accesso a Telegram, vai in Impostazioni > Dispositivi > Scansiona QR e scansiona il codice. - Telegram deve accedere alla tua fotocamera affinché tu possa scansionare i codici QR . + **Telegram** deve accedere alla tua fotocamera per poter scansionare i codici QR. Tocca Impostazioni > Permessi, e attiva **Fotocamera**. Imposta foto del profilo Aggiorna Telegram Versione %1$s • %2$s - Scarico %1$d%%... + Download... %1$d%% Aggiorna ora Scarica ora Ricordamelo più tardi - **Cosa c’è di nuovo?**\n\n• Risoluzione di problemi e miglioramenti. + **Cosa c\'è di nuovo?**\n\n• Risoluzione di problemi e miglioramenti. Link primario Link non più attivo - Annulla inoltro - Scegli un\'altra chat - Vuoi annullare l\'inoltro o inviare i messaggi in un\'altra chat? + Cosa vuoi fare con %1$s dalla tua chat con **%2$s**? + Cosa vuoi fare con %1$s da **%2$s**? + Mostra nomi mittenti + Nascondi nomi mittenti + Mostra nome mittente + Nascondi nome mittente Gesto scorrimento lista chat + Scegli l\'azione da eseguire quando scorri a sinistra nella lista chat. Fissa Letto Archivia @@ -2169,355 +755,13 @@ Annulla inoltro Bio aggiornata. Nome aggiornato. - Titolo canale aggiornato. + Nome canale aggiornato. Descrizione canale aggiornata. - - Database locale - Cancella database locale - Sei sicuro di voler eliminare i messaggi di testo nella cache? - Cancellando il database locale, saranno eliminati i messaggi nella cache e il database verrà compresso per risparmiare spazio. Telegram ha bisogno di alcuni dati per funzionare, quindi il database non sarà azzerato.\n\nQuesta operazione può richiedere alcuni minuti. - Svuota cache - Svuota - Calcolo... - Documenti - Foto - Vocali e videomessaggi - Video - Musica - GIF - Altri file - Vuota - Mantieni media - Foto, video e altri file dalle chat nel cloud che non hai **aperto** in questo periodo saranno eliminati dal dispositivo per preservare lo spazio sul disco.\n\nTutti i media rimarranno nel cloud Telegram e potranno essere riscaricati ogni volta che ne avrai bisogno. - Sempre - Messaggi vocali - Videomessaggi - - Telegram Passport - Informazioni richieste - Informazioni fornite\n - Cos\'è Telegram Passport? - Con Telegram Passport puoi iscriverti facilmente ai siti web e ai servizi che richiedono la verifica dell\'identità.\n\nLe tue informazioni, i tuoi dati personali e i tuoi documenti sono protetti tramite crittografia end-to-end. Nessuno, incluso Telegram, può accedervi senza il tuo permesso.\n\nPuoi visitare le nostre *FAQ* per saperne di più. - https://telegram.org/faq/it/#passport - Per favore crea una password per rendere sicuri i tuoi dati personali tramite crittografia end-to-end.\n\nQuesta password sarà inoltre richiesta ogni volta che accedi a Telegram su un nuovo dispositivo. - CREA UNA PASSWORD - Elimina Telegram Passport - Elimina Telegram passport - Sei sicuro di voler eliminare il tuo Telegram Passport? - Usare solo caratteri latini. - Carica le scansioni di una traduzione inglese verificata del tuo passaporto. - Carica le scansioni di una traduzione inglese verificata del tuo passaporto nazionale. - Carica le scansioni di una traduzione inglese verificata della tua patente. - Carica le scansioni di una traduzione inglese verificata della tua carta d\'identità. - Carica una scansione della tua bolletta. - Carica una scansione del tuo estratto conto. - Carica una scansione del tuo contratto di locazione. - Carica una scansione della pagina di registrazione del tuo passaporto. - Carica una scansione della tua registrazione temporanea. - Per confermare il tuo indirizzo, carica una scansione o una foto del documento selezionato (tutte le pagine). - Carica le scansioni di una traduzione inglese verificata della tua bolletta. - Carica le scansioni di una traduzione inglese verificata del tuo estratto conto. - Carica le scansioni di una traduzione inglese verificata del tuo contratto di locazione. - Carica le scansioni di una traduzione inglese verificata della pagina di registrazione del passaporto. - Carica le scansioni di una traduzione inglese verificata della tua registrazione temporanea. - Carica le scansioni di una traduzione inglese verificata del documento selezionato. - Aggiungi bolletta - Aggiungi estratto conto - Aggiungi contratto di locazione - Indirizzo - Indirizzo di residenza - Fornisci il tuo indirizzo - Carica una prova del tuo indirizzo - Indirizzo - Via - Via - Codice postale - Città - Provincia - Paese - Numero di telefono - Eliminare il numero di telefono? - Inserisci il tuo numero di telefono - Usa %1$s - Usa lo stesso numero di telefono di Telegram. - Usa lo stesso indirizzo email di Telegram. - O inserisci un nuovo numero di telefono - Nota: riceverai un codice di conferma al numero di telefono fornito. - Email - Eliminare l\'email? - Inserisci il tuo indirizzo email - Nota: riceverai un codice di conferma all\'indirizzo email fornito. - Codice - Per favore inserisci il codice di conferma che abbiamo appena inviato a %1$s. - Per favore inserisci la tua password per accedere ai tuoi dati personali. - %1$s richiede l\'accesso ai tuoi dati personali per l\'iscrizione ai suoi servizi. - Inserisci la tua password di Telegram per decifrare i tuoi dati. - Accetti l\'*Informativa sulla privacy di %1$s* e consenti a @%2$s di inviarti messaggi. - Stai inviando i tuoi documenti direttamente a %1$s e autorizzi il loro @%2$s a inviarti messaggi. - AUTORIZZA - Aggiungi passaporto - Aggiungi passaporto nazionale - Registrazione passaporto - Registrazione temporanea - Aggiungi carta d\'identità - Aggiungi patente di guida - Dettagli personali - Inserisci i tuoi dettagli personali - Documento d\'identità - Carica una scansione del tuo passaporto o di un altro documento - Carica una scansione del tuo passaporto - Carica una scansione del tuo passaporto nazionale - Carica una scansione della tua carta d\'identità - Carica una scansione della tua patente - Dettagli personali - Dettagli documento - Nome - Secondo nome - Cognome - Nome (latino) - Secondo nome (latino) - Cognome (latino) - Nome (%1$s) - Secondo nome (%1$s) - Cognome (%1$s) - Seleziona genere - Uomo - Donna - Data di nascita - Genere - Numero documento - Data di scadenza - Nazionalità - Residenza - Selfie - Documenti richiesti - Carica un tuo selfie mentre reggi il documento - Traduzione - Lato frontale - Carica una foto del lato frontale del documento - Lato posteriore - Carica una foto del lato posteriore del documento - Pagina principale - Carica una foto della pagina principale del documento - Seleziona data di scadenza - Non scade - Nessuna - Seleziona data di nascita - Eliminare il selfie? - Il documento deve contenere la tua foto, il nome, il cognome, la data di nascita, il numero del documento, il Paese di emissione e la data di scadenza. - "Sei sicuro di voler scartare tutte le informazione che hai inserito? " - Scarta - Scansioni - Elimina documento - Elimina - Vuoi eliminare questa scansione? - Vuoi eliminare questo selfie? - Vuoi eliminare questo documento? - Sei sicuro di voler eliminare i dettagli personali? - Vuoi eliminare i dettagli dell\'indirizzo? - Elimina dettagli personali - Elimina dettagli indirizzo - Eliminare la scansione? - Carica scansioni - Carica scansioni aggiuntive - Non puoi caricare più di %1$s. - Puoi caricare solamente immagini. - Scansiona il tuo passaporto - Scansiona il tuo passaporto o la carta d\'identità con campi leggibili in modo che i tuoi dettagli vengano inseriti in automatico. - Aggiungi un documento - Non hai ancora alcun documento - Puoi aggiungere il tuo numero di telefono, indirizzo email, documento d\'identità o indirizzo di residenza. - Tocca per correggere gli errori. - %1$s o %2$s - Il tuo nome - Il tuo nome in %1$s - Il tuo nome nella lingua del Paese di residenza (%1$s). - Per favore controlla se questo nome è corretto:\n\n%1$s %2$s %3$s - Arabo - Azero - Bulgaro - Bangla - Ceco - Danese - Tedesco - Divehi - Dzongkha - Greco - Spagnolo - Estone - Persiano - Francese - Ebraico - Croato - Ungherese - Armeno - Indonesiano - Islandese - Italiano - Giapponese - Georgiano - Khmer - Coreano - Lao - Lituano - Lettone - Macedone - Mongolo - Malese - Birmano - Nepali - Olandese - Polacco - Portoghese - Rumeno - Russo - Slovacco - Sloveno - Tailandese - Turkmeno - Turco - Ucraino - Uzbeko - Vietnamita - - Sessioni attive - Questo dispositivo - Nessun\'altra sessione attiva - Puoi accedere a Telegram da altri dispositivi mobile, tablet e desktop usando lo stesso numero. Tutti i tuoi dati saranno sincronizzati istantaneamente. - Sessioni attive - Controlla le tue sessioni sugli altri dispositivi. - Tocca su una sessione per terminarla. - Terminare questa sessione? - Sei sicuro di voler terminare questa sessione? - Esce da tutti i dispositivi tranne questo. - Termina sessioni - Termina sessione - Termina - Sei sicuro di voler terminare tutte le altre sessioni? - Termina le altre sessioni - app non ufficiale - Nessun accesso attivo. - Puoi accedere ai siti web che supportano l\'iscrizione tramite Telegram. - Siti web connessi - Connessi con Telegram - Tocca per disconnettere dal tuo account Telegram. - Sei sicuro di voler disconnettere %1$s? - Disconnetti sito web - Disconnetti siti web - Disconnetti - Blocca %1$s - Disconnetti tutti i siti web - Sei sicuro di voler disconnettere tutti i siti web in cui hai usato Telegram per accedere? - Puoi accedere ai siti web che supportano l\'iscrizione tramite Telegram. - Tentativi di accesso non completi - I dispositivi elencati non hanno accesso ai tuoi messaggi. Il codice è stato inserito correttamente, ma la password inserita non è corretta. - - Cartelle - Imposta - Imposta cartelle - Crea nuova cartella - Crea cartelle per diversi gruppi di chat e passa velocemente da una all\'altra. - Cartelle consigliate - Tutte le chat - Tutte - Riordina - Modifica cartella - Modifica cartelle - Contatti - Non contatti - Gruppi - Canali - Escludi silenziate - Escludi lette - Modifica - Elimina - Escludi archiviate - Non lette - Rimuovi cartella - Silenziate - Lette - Archiviate - Includi chat - Escludi chat - Aggiungi chat - Rimuovi chat - Tipi di chat - Chat - Chat incluse - Chat escluse - Scegli le chat e i tipi di chat che appariranno in questa cartella. - Scegli le chat e i tipi di chat che non appariranno in questa cartella. - Chat segrete - Bot - Aggiungo le chat - Per favore attendi qualche momento mentre riempiamo questa cartella per te... - La cartella è vuota - Al momento non ci sono chat nella cartella. - Nuova cartella - Nessuna chat - Contatti - Non contatti - Aggiungi eccezione - Nome cartella - Sei sicuro di voler eliminare questa cartella? Le tue chat non saranno eliminate. - Applicare le modifiche? - Hai modificato questa cartella. Applicare le modifiche? - Creare la cartella? - Non hai ancora finito di creare la cartella. Crearla adesso? - Crea - Mostra altre %1$d chat - Mostra un\'altra chat - Mostra altre %1$d chat - Mostra altre %1$d chat - Mostra altre %1$d chat - Mostra altre %1$d chat - Rimuovi eccezione - Rimuovi eccezione - Sei sicuro di voler rimuovere \"%1$s\" dalla lista sempre escluse? - Sei sicuro di voler rimuovere \"%1$s\" dalla lista sempre escluse? - Sei sicuro di voler rimuovere \"%1$s\" dalla lista sempre escluse? - Sei sicuro di voler rimuovere \"%1$s\" dalla lista sempre incluse? - Sei sicuro di voler rimuovere \"%1$s\" dalla lista sempre incluse? - Sei sicuro di voler rimuovere \"%1$s\" dalla lista sempre incluse? - Cartelle chat - Apri *Impostazioni > Cartelle* per organizzare le tue chat in cartelle. - Importanti - Non lette - Aggiungi a una cartella - Rimuovi dalla cartella - Scegli una cartella - **%1$s** aggiunto a **%2$s** - **%1$s** aggiunta a **%2$s** - **%1$s** aggiunte a **%2$s** - **%1$s** rimosso da **%2$s** - **%1$s** rimossa da **%2$s** - **%1$s** rimosse da **%2$s** - Limite raggiunto - Spiacenti, non puoi escludere più di 100 chat da una cartella. - - Codice di blocco - Cambia codice - Quando imposti un codice aggiuntivo, apparirà un\'icona col lucchetto nella pagina delle chat. Premila per bloccare e sbloccare l\'app.\n\nNota: se ti dimentichi il codice, dovrai eliminare e reinstallare l\'app. Tutte le chat segrete saranno perse. - PIN - Password - Inserisci il tuo codice attuale - Inserisci un codice - Inserisci il nuovo codice - Inserisci il tuo codice - Ripeti il nuovo codice - I codici non corrispondono - Blocco automatico - Richiede il codice se assente per del tempo. - dopo %1$s - Disattivato - Sblocca con impronta digitale - Conferma impronta digitale per continuare - Sensore touch - Impronta digitale non riconosciuta. Riprova. - Mostra contenuto nelle app recenti - Se disattivata, non potrai fare screenshot nell\'app, ma il sistema nasconderà il contenuto delle chat nella lista delle app recenti. - Questo nasconderà il contenuto delle chat o dell\'elenco chat dalla lista della app recenti, ma non sarà possibile effettuare screenshot su Telegram.\n\nPotrebbe essere necessario riavviare l\'applicazione affinché questo abbia effetto. - Troppi tentativi.\nPer favore riprova tra %1$s. + %1$s è ancora il tuo numero? + Tieni aggiornato il tuo numero per poter sempre accedere a Telegram. **Scopri di più** + https://telegram.org/faq/it#d-ho-un-nuovo-numero-di-telefono-cosa-faccio + + No Gennaio Febbraio @@ -2539,112 +783,35 @@ Musica Vocali GIF - File condivisi Contenuto condiviso - Link condivisi - Musica condivisa - Condividi foto e video in questa chat e accedi ad essi da ogni tuo dispositivo. - Condividi musica in questa chat e accedi ad essa da ogni tuo dispositivo. - Condividi file e documenti in questa chat e accedi ad essi da ogni tuo dispositivo. - Condividi link in questa chat ed accedi ad essi da ogni tuo dispositivo. - Condividi messaggi vocali in questa chat e accedi ad essi da ogni tuo dispositivo. + Canali simili + Condividi foto e video in questa chat e accedi a essi da ogni tuo dispositivo. + Condividi musica in questa chat e accedi a essa da ogni tuo dispositivo. + Condividi file e documenti in questa chat e accedi a essi da ogni tuo dispositivo. + Condividi link in questa chat e accedi a essi da ogni tuo dispositivo. + Condividi messaggi vocali in questa chat e accedi a essi da ogni tuo dispositivo. Le foto e i video di questa chat appariranno qui. La musica di questa chat apparirà qui. I file e i documenti di questa chat appariranno qui. I link condivisi di questa chat appariranno qui. I messaggi vocali di questa chat appariranno qui. Le GIF di questa chat appariranno qui. - - Mappa - Satellite - Ibrido - distante %1$s m - distante %1$s km - distante %1$s piedi - distante %1$s miglia - %1$s ft - %1$s mi - mi - km - %1$s m - %1$s km - %1$s m da te - %1$s km da te - %1$s ft da te - %1$s mi da te - Indicazioni - Nessun luogo trovato - Non ci sono risultati per **%1$s** vicino a te. - Invia la mia posizione attuale - Posizione in tempo reale... - Invia posizione in tempo reale - Termina condivisione - Termina condivisione posizione - Vuoi terminare la condivisione della posizione in tempo reale con **%1$s**? - Vuoi terminare la condivisione della posizione in tempo reale con **%1$s**? - Vuoi terminare la condivisione della posizione in tempo reale? - Aggiornata mentre ti muovi - Invia la posizione selezionata - Posizione - Luogo - Precisione di %1$s - distante %1$s - O scegli un luogo - Tocca per inviare questa posizione - Posizioni in tempo reale - Posizione in tempo reale - per 15 minuti - per 1 ora - per 8 ore - aggiornata - aggiornata %1$s - aggiornata adesso - Tu e %1$s - %1$s condivisa con %2$s - %1$s condivisa con %2$s - %1$s condivisa con %2$s - TERMINA TUTTO - Posizione in tempo reale condivisa con %1$s - Scegli per quanto %1$s vedrà la tua posizione precisa. - Scegli per quanto le persone in questa chat vedranno la tua posizione in tempo reale. - Attiva GPS - Per favore attiva il tuo GPS per accedere alle funzioni basate sulla posizione. - Rendimi visibile - Mostrare il tuo profilo? - Gli utenti nelle vicinanze potranno visualizzare il tuo profilo e inviarti messaggi. Questo può aiutarti a trovare nuovi amici, ma potrebbe anche attirare un\'eccessiva attenzione. Puoi interrompere la condivisione del tuo profilo in qualsiasi momento.\n\nIl tuo numero di telefono rimarrà nascosto. - Interrompi visibilità - Persone vicine - Trova persone vicine - Aggiungi rapidamente persone vicine che stanno guardando questa sezione e scopri chat di gruppo locali.\n\nPer favore concedi l\'accesso alla posizione per abilitare questa funzione. - Persone vicine - Consenti accesso - Aggiungi rapidamente persone vicine che stanno guardando questa sezione e scopri chat di gruppo locali.\n\nPer favore attiva i servizi di localizzazione per abilitare questa funzione. - Attiva - Gruppi vicini - Scambia info di contatto con le persone vicine e trova nuovi amici. - Cerco utenti attorno a te... - Crea un gruppo locale - Avvia gruppo - Chiunque si trovi in ​​questa posizione (vicini, colleghi, studenti, partecipanti ad un evento, visitatori) vedrà il tuo gruppo nella sezione Persone vicine. - Se avvii un gruppo non legato a questa posizione, potresti essere limitato nella creazione di nuovi gruppi basati sulla posizione. - Imposta posizione - Imposta questa posizione - Le persone potranno trovare il tuo gruppo nella sezione \"Persone vicine\". - Luoghi in quest\'area - Avviso di prossimità - Notifica quando %1$s è a %2$s - Notifica quando qualcuno è a %1$s - Sei già più vicino di %1$s - Condividi posizione - Condividi - Per far funzionare l\'avviso, condividi la posizione in tempo reale in questa chat. - Avvisa quando %1$s è vicino - Avvisa quando altri membri del gruppo sono vicini - Avviso di prossimità impostato - Ti notificheremo quando %1$s sarà a %2$s da te. - Ti notificheremo quando qualcuno sarà a %1$s da te. - Avviso di prossimità annullato + Velocità + Lenta + Molto lenta + Veloce + Molto veloce + Normale + Media + Super veloce + Molto veloce + Veloce + Personalizzata %s + Normale + Lenta + Molto lenta + Tieni premuto per altre velocità. Mostra come lista Mostra come griglia Mostra tutti i media @@ -2653,11 +820,16 @@ Mostra tutte le GIF Tocca per scaricare APRI FILE - Visualizza in chat + Mostra nella chat Arresta download Salva nella galleria %1$d di %2$d - **%1$d** di %2$d + %1$d messaggio + %1$d messaggi + %2$s risultato + %2$s risultati + Mostra come lista + Mostra come chat Galleria Tutte le foto Tutti i media @@ -2670,14 +842,12 @@ Nessuna ricerca recente Immagini GIF - Nessuna GIF recente CERCA IMMAGINI - RICERCA WEB CERCA GIF - Cerca su web + Ricerca web Cerca GIF - Tocca per permettere l\'accesso alla tua Fotocamera - Tocca per permettere l\'accesso alla tua Galleria + Tocca per permettere l\'accesso alla Fotocamera + Tocca per permettere l\'accesso alla Galleria Ritaglia immagine Migliora Alte luci @@ -2701,92 +871,66 @@ Lineare Radiale Elimina la foto - Sei sicuro di voler eliminare questa foto? + Vuoi davvero eliminare questa foto? Elimina il video - Sei sicuro di voler eliminare questo video? + Vuoi davvero eliminare questo video? Elimina la GIF - Sei sicuro di voler eliminare questa GIF? - Sei sicuro di voler eliminare questa foto per tutti? - Sei sicuro di voler eliminare questo video per tutti? - Sei sicuro di voler eliminare questa GIF per tutti? - Scartare le modifiche? - Sei sicuro di voler scartare tutte le modifiche? + Vuoi davvero eliminare questa GIF? + Vuoi davvero eliminare questa foto per tutti? + Vuoi davvero eliminare questo video per tutti? + Vuoi davvero eliminare questa GIF per tutti? + Scarta le modifiche + Vuoi davvero scartare tutte le modifiche? Cancellare la cronologia di ricerca? - Sei sicuro di voler cancellare la tua cronologia di ricerca? - Cancella cronologia chat + Vuoi cancellare la tua cronologia di ricerca? + Vuoi rimuovere questa chat dalla tua cronologia di ricerca? + Vuoi rimuovere queste %1$d chat dalla tua cronologia di ricerca? + Cancella cronologia di ricerca + Rimuovi dalla cronologia di ricerca Cronologia di ricerca - Sei sicuro di voler rimuovere \"%1$s\" dalla tua cronologia di ricerca? - Sei sicuro di voler rimuovere \"%1$s\" dalla tua cronologia di ricerca? + Vuoi rimuovere \"%1$s\" dalla tua cronologia di ricerca? + Vuoi rimuovere \"%1$s\" dalla tua cronologia di ricerca? + Vuoi rimuovere %1$s dalla tua cronologia di ricerca? Rimuovi - Cancella + Cancella tutto Aggiungi una didascalia... - Didascalia foto - Didascalia video - Didascalia GIF Didascalia Elimina Modifica - Penna - Evidenziatore - Neon Freccia Duplica - Contornato - Normale - Incorniciato Ripristina Originale Quadrato - Mostra i media come messaggi separati - Mostra i media come messaggio unico Invia senza raggruppare Invia senza compressione - Scegli una copertina per il tuo video del profilo + Scegli una copertina per la tua foto del profilo Imposta come principale Apri nell\'editor Questa ora è la tua foto principale. - Questo ora è il tuo video principale. + Questo ora è la tua foto principale. Questa ora è la foto principale del canale. - Questo ora è il video principale del canale. + Questa ora è la foto principale del canale. Questa ora è la foto principale del gruppo. - Questo ora è il video principale del gruppo. - Foto salvata nella galleria - Video salvato nella galleria - Foto salvata nei download - Video salvato nei download - GIF salvata nei download - File salvato nella musica - File salvato nei download - %1$d file salvati nei download - File salvato nei download - %1$d file salvati nei download - %1$d file salvati nei download - %1$d file salvati nei download - %1$d file salvati nei download - %1$d foto salvate nella galleria - Foto salvata nella galleria - %1$d foto salvate nella galleria - %1$d foto salvate nella galleria - %1$d foto salvate nella galleria - %1$d foto salvate nella galleria - %1$d video salvati nella galleria - Video salvato nella galleria - %1$d video salvati nella galleria - %1$d video salvati nella galleria - %1$d video salvati nella galleria - %1$d video salvati nella galleria - %1$d file salvati nella musica - File salvato nella musica - %1$d file salvati nella musica - %1$d file salvati nella musica - %1$d file salvati nella musica - %1$d file salvati nella musica - %1$d oggetti salvati nella galleria - Un oggetto salvato nella galleria - %1$d oggetti salvati nella galleria - %1$d oggetti salvati nella galleria - %1$d oggetti salvati nella galleria - %1$d oggetti salvati nella galleria + Questa ora è la foto principale del gruppo. + Foto salvata nella galleria. + Video salvato nella galleria. + Foto salvata nei **download**. + Video salvato nei **download**. + Aggiunta alle GIF preferite. + GIF salvata nei **download**. + File salvato nella musica. + File salvato nei **download**. + File salvato nei **download**. + %1$d file salvati nei **download**. + Foto salvata nella galleria. + %1$d foto salvate nella galleria. + Video salvato nella galleria. + %1$d video salvati nella galleria. + File salvato nella musica. + %1$d file salvati nella musica. + Un oggetto salvato nella galleria. + %1$d oggetti salvati nella galleria. Verifica in due passaggi Verifica in due passaggi @@ -2799,27 +943,41 @@ Imposta password aggiuntiva Puoi impostare una password che sarà richiesta quando accedi su un nuovo dispositivo oltre al codice che ricevi via SMS. La tua password + La tua password + Il tuo account è protetto dalla Verifica in due passaggi. Ricordi ancora la tua password? + Sì, certamente + Ho un dubbio No + Inserisci password Inserisci la tua password - Per favore inserisci la tua password per completare il trasferimento. - Inserisci una password + Verifica la password + Ricordi ancora la tua password? + Perfetto! + Ricordi ancora la tua password. + Hai inserito la password errata. + Torna alle Impostazioni + Inserisci la tua password per completare il trasferimento. + Inserisci la tua password per ritirare. Inserisci una nuova password - Inserisci la tua nuova password Ripeti la tua password + Nuova password + Ora puoi impostare una nuova password che sarà usata per l\'accesso al tuo account. + Inserisci una nuova password + Ripeti la nuova password Email di recupero Email di recupero + Puoi impostare un\'email di recupero per poter ripristinare la password e recuperare l\'accesso al tuo account Telegram. La tua email - Il tuo codice email - Per favore conferma il tuo indirizzo email inserendo il codice che hai appena ricevuto su %1$s. - Per favore inserisci un\'email valida. È l\'unico modo per recuperare una password dimenticata. + La tua nuova email + La tua email è stata cambiata. + Inserisci un\'email valida. È l\'unico modo per recuperare una password dimenticata. Salta Attenzione No, seriamente.\n\nSe dimentichi la tua password, perderai l\'accesso al tuo account Telegram. Non ci sarà modo di recuperarlo. Ci siamo quasi! Controlla la tua email (non dimenticare lo spam) per completare la configurazione della verifica in due passaggi. Fatto! - La password per la verifica in due passaggi ora è attiva. La tua password per la verifica in due passaggi è stata cambiata. La tua email di recupero per la verifica in due passaggi ora è attiva. La tua email di recupero per la verifica in due passaggi è stata cambiata. @@ -2828,81 +986,96 @@ Imposta email di recupero Cambia email di recupero Disattiva password - Sei sicuro di voler disattivare la tua password? - Sei sicuro di voler interrompere la configurazione della verifica in due passaggi? - Sei sicuro di voler interrompere la configurazione dell\'email di recupero? + Vuoi davvero disattivare la tua password? + Vuoi davvero interrompere la configurazione della verifica in due passaggi? + Vuoi davvero interrompere la configurazione dell\'email di recupero? + Annullare il processo di rimozione password? Se richiedi nuovamente la rimozione, serviranno altri 7 giorni. + + NO + Annulla rimozione Interrompi configurazione - Attenzione! Tutti i dati salvati nel tuo Telegram Passport andranno persi! + Tutti i dati salvati nel tuo Telegram Passport andranno persi. Suggerimento password + Puoi creare un suggerimento opzionale per la tua password. Suggerimento Crea un suggerimento per la tua password + Crea un suggerimento per la tua password. Le password non corrispondono + Ripeti la password Interrompi configurazione verifica in due passaggi Interrompi configurazione Interrompi configurazione email di recupero Interrompi Disattiva Per completare la configurazione della verifica in due passaggi, controlla la tua email (non dimenticare lo spam) e inserisci il codice che ti abbiamo appena inviato. - Per completare l\'impostazione dell\'email di recupero, controlla %1$s (non dimenticare lo spam) e inserisci il codice che ti abbiamo appena inviato. Il suggerimento deve essere diverso dalla password - Indirizzo email non valido. Per favore controlla di averlo inserito correttamente e riprova. + Indirizzo email non valido, per favore riprova. Spiacenti Siccome non hai fornito un\'email di recupero quando hai impostato la tua password, non ti resta che ricordare la tua password o ripristinare il tuo account. + Siccome non hai fornito un\'email di recupero quando hai impostato la tua password, non ti resta che ricordare la tua password o aspettare 7 giorni fino a quando la tua password sarà rimossa. + Vuoi davvero rimuovere la tua password della Verifica in due passaggi? + La tua password della Verifica in due passaggi è stata rimossa. RIPRISTINA ACCOUNT + RIMUOVI PASSWORD + Puoi rimuovere la tua password tra %1$s. + Rimuovi password Codice di recupero - Abbiamo inviato un codice di ripristino all\'email che ci hai fornito:\n\n%1$s - Per favore controlla la tua email e inserisci il codice a 6 cifre che ti abbiamo inviato lì. + Abbiamo inviato un codice di recupero all\'email fornita:\n\n%1$s + Controlla la tua email e inserisci il codice a 6 cifre che ti abbiamo inviato lì per disattivare la tua password. Impossibile accedere a %1$s? Hai problemi ad accedere alla tua email? Se non puoi ripristinare l\'accesso alla tua email, non ti resta che ricordare la tua password o ripristinare il tuo account. + Se non hai accesso alla tua email di recupero, non ti resta che ricordare la tua password o attendere 7 giorni fino a quando la tua password sarà rimossa. + Impossibile accedere a %1$s? + Hai recentemente richiesto la rimozione della password che è stata annullata. Per favore attendi %1$s prima di effettuare una nuova richiesta. RIPRISTINA IL MIO ACCOUNT - Perderai tutte le chat e i messaggi, insieme ai media e ai file condivisi, se procederai a ripristinare il tuo account. Attenzione - Questa azione non può essere annullata.\n\nSe ripristini il tuo account, tutti i tuoi messaggi e le tue chat saranno eliminati. + Questa azione non può essere annullata. Perderai tutte le chat Telegram, i messaggi, i media e i file se procederai con il ripristino del tuo account. Ripristina account Password - Hai attivato la verifica in due passaggi, così il tuo account è protetto con una password aggiuntiva. + Hai la verifica in due passaggi attiva, quindi il tuo account è protetto con una password aggiuntiva. + Verifica in due passaggi attivata. Il tuo account è protetto con una password aggiuntiva. Password dimenticata? Recupero password Codice Password disattivata Reinvia codice Codice di verifica - Inserisci codice + Inserisci il codice Il codice di verifica è stato inviato alla tua email. Hai attivato la verifica in due passaggi.\nAvrai bisogno della password che hai impostato per accedere al tuo account Telegram. - - Dati e archivio - Utilizzo disco e rete - Utilizzo archivio - Utilizzo dati - Percorso archiviazione - Cellulare - Wi-Fi - Roaming - Messaggi e altri dati - Inviati - Ricevuti - Byte inviati - Byte ricevuti - File - Chiamate - Chiamate in uscita - Chiamata in entrata - Tempo totale - Totale - Azzera statistiche - Utilizzo rete da %1$s - Ripristina statistiche - Vuoi ripristinare le tue statistiche di utilizzo? + Scegli un\'email di accesso + Riceverai i codici di accesso a Telegram via email e non via SMS. Inserisci un indirizzo email a cui hai accesso. + Inserisci la nuova email + Controlla la tua email %1$s (incluso lo spam) e inserisci il codice che ti abbiamo appena inviato. + Controlla la tua email + Inserisci il codice che abbiamo inviato alla tua email %1$s. + Controlla la nuova email + Inserisci il codice che abbiamo inviato alla tua nuova email %1$s. + o Privacy e sicurezza Privacy Ultimo accesso e in linea + Contatti e utenti Premium + Messaggi + Puoi limitare i messaggi dagli utenti che non sono tra i tuoi contatti e non hanno Premium.\n\n**Cos\'è Telegram Premium?** + Messaggi vocali + Chi può inviarmi messaggi? + Chi può inviarmi messaggi vocali o videomessaggi? + Puoi decidere chi può inviarti messaggi vocali o videomessaggi con precisione dettagliata. + Puoi aggiungere utenti o interi gruppi come eccezioni che annulleranno le impostazioni precedenti. + Solo gli abbonati a *Telegram Premium* possono decidere da chi ricevere messaggi vocali. Foto del profilo - Chi può vedere le foto e i video del mio profilo? - Puoi decidere chi può vedere la tua foto del profilo con precisione granulare. - Puoi aggiungere utenti o interi gruppi come eccezioni che annulleranno le impostazioni precedenti. + Chi può vedere le foto del mio profilo? + Puoi decidere chi può vedere la tua foto del profilo con precisione dettagliata. + Puoi aggiungere utenti o interi gruppi che **non** vedranno la tua foto del profilo. + Aggiungi utenti o interi gruppi che vedranno ancora la tua foto del profilo. + Aggiungi utenti o interi gruppi come eccezioni che annulleranno le impostazioni precedenti. + Bio + Chi può vedere la mia bio? + Puoi decidere chi può vedere la bio sul tuo profilo con precisione dettagliata. + Puoi aggiungere utenti o interi gruppi che non vedranno la tua bio. Numero di telefono Chi può vedere il mio numero? Chi può trovarmi con il mio numero @@ -2910,20 +1083,20 @@ Gli utenti che aggiungono il tuo numero ai loro contatti lo vedranno su Telegram solo se sono tuoi contatti. Puoi aggiungere utenti o interi gruppi come eccezioni che annulleranno le impostazioni precedenti. Messaggi inoltrati - Collega al tuo account - Collega se permesso dalle impostazioni - Non collega al tuo account - Chi può aggiungere un link al mio account quando inoltra i miei messaggi? - I messaggi che invii non rimanderanno al tuo account quando inoltrati da altri utenti. + Collegato al tuo account + Collegato se permesso dalle impostazioni + Non collegato al tuo account + Chi può inserire un collegamento al mio account quando inoltra i miei messaggi? + I messaggi inviati non ricondurranno al tuo account quando inoltrati da altri utenti. Puoi aggiungere utenti o interi gruppi come eccezioni che annulleranno le impostazioni precedenti. Reinhardt, dobbiamo trovarti qualche nuova canzone 🎶. Peer-to-peer - Peer-to-peer nelle chiamate + Chiamate peer-to-peer Usa Peer-to-peer con Bot e siti web Cancella info di pagamento e spedizione Cancella info di pagamento - Sei sicuro di voler eliminare le tue info di pagamento e spedizione? + Vuoi davvero eliminare le tue info di pagamento e spedizione? Eliminare le tue info di spedizione e ordinare a tutti i fornitori dei pagamenti di rimuovere le tue carte di credito salvate? Ricorda che Telegram non archivia mai i dati della tua carta di credito. Info di pagamento cancellate. Info di spedizione cancellate. @@ -2934,33 +1107,40 @@ Elimina tutte le bozze cloud Tutti I miei contatti + Contatti e Premium Nessuno + Utenti Premium Tutti (-%1$d) - I miei contatti (+%1$d) - I miei contatti (-%1$d) - I miei contatti (-%1$d, +%2$d) + Contatti (+%1$d) + Contatti (-%1$d) + Contatti (-%1$d, +%2$d) + Contatti e Premium (+%1$d) + Contatti e Premium (-%1$d) + Contatti e Premium (-%1$d, +%2$d) Nessuno (+%1$d) + Premium (+%1$d) Tutti + Contatti e Premium I miei contatti Nessuno Tutti (-%1$d) - I miei contatti (+%1$d) - I miei contatti (-%1$d) - I miei contatti (-%1$d, +%2$d) + Contatti (+%1$d) + Contatti (-%1$d) + Contatti (-%1$d, +%2$d) Nessuno (+%1$d) Sicurezza - Autodistruzione account + Autodistruggi se inattivo per... Nuove chat da utenti sconosciuti Archivia e silenzia - Archivia e silenzia automaticamente nuove chat, gruppi e canali da non contatti. + Archivia e silenzia automaticamente nuove chat, gruppi e canali dai non contatti. Elimina il mio account - Elimina il mio account se lontano per - Se lontano per - Se non ti connetti almeno una volta in questo periodo, il tuo account verrà eliminato insieme a tutti i messaggi e i contatti. - Chi può vedere il tuo ultimo accesso? + Elimina il mio account se assente per + Se assente per + Se non ti connetti almeno una volta in questo periodo, il tuo account sarà eliminato insieme a tutti i messaggi e i contatti. + Chi può vedere il mio ultimo accesso? Aggiungi eccezioni "Aggiungi alle eccezioni " - Non vedrai l\'ultimo accesso o lo stato in linea delle persone con cui non condividi il tuo. Verrà mostrato un orario approssimativo (di recente, entro una settimana, entro un mese). + A meno che tu non sia un utente Premium, non vedrai l\'ultimo accesso o lo stato in linea delle persone con cui non condividi il tuo. Sarà mostrato un orario approssimativo (di recente, entro una settimana, entro un mese). Hai modificato alcune impostazioni della privacy. Applicare le modifiche? Condividi con Non condividere con @@ -2968,11 +1148,11 @@ Condividi Non condividere Aggiungi utenti - Spiacenti, troppe richieste. Impossibile cambiare le impostazioni di privacy ora, attendi. - Tieni premuto sull\'utente per eliminarlo. - Gruppi + Troppe richieste. Per favore attendi prima di cambiare di nuovo le impostazioni della privacy. + Inviti + Puoi decidere quali utenti sono autorizzati ad aggiungerti a gruppi e canali. Chi può aggiungermi ai gruppi? - Puoi decidere chi può aggiungerti a gruppi e canali con precisione granulare. + Puoi decidere chi può aggiungerti a gruppi e canali con precisione dettagliata. Consenti sempre Non consentire mai Questi utenti potranno o non potranno aggiungerti a gruppi e canali indipendentemente dalle impostazioni precedenti. @@ -2980,7 +1160,7 @@ Spiacenti, non puoi aggiungere questo utente al gruppo a causa delle sue impostazioni di privacy. Spiacenti, non puoi aggiungere questo utente al canale a causa delle sue impostazioni di privacy. Spiacenti, non puoi creare un gruppo con questi utenti a causa delle loro impostazioni di privacy. - Disattivando il peer-to-peer, tutte le chiamate saranno inviate tramite i server di Telegram per evitare di rivelare l\'indirizzo IP, ma la qualità audio e video potrebbe diminuire leggermente. + Disattivando il peer-to-peer, tutte le chiamate saranno inviate tramite i server di Telegram per evitare di rivelare l\'indirizzo IP, ma la qualità audio e video potrebbe diminuire. Elimina i contatti sincronizzati Suggerisci contatti frequenti Visualizza le persone che contatti di frequente nella parte superiore della sezione di ricerca per un accesso rapido. @@ -2990,44 +1170,33 @@ Eccezioni Nessuno Elimina contatti - Questo rimuoverà i tuoi contatti dai server di Telegram.\n\nSe \'**Sincronizza contatti**\' è attivo, i contatti saranno risincronizzati. + Questo rimuoverà i tuoi contatti dai server di Telegram.\n\nSe \"**Sincronizza contatti**\" è attivo, la tua attuale rubrica sarà risincronizzata. Invio video... Invio GIF... - - bot - Condividi - Aggiungi a un gruppo - Impostazioni - Aiuto - ha accesso ai messaggi - non ha accesso ai messaggi - Cosa può fare questo bot? - AVVIA - RIAVVIA - Arresta bot - Riavvia bot Fatto Apri Salva Annulla + Riduci Chiudi Cambia Aggiungi + Aggiunti Modifica Invia Chiama Videochiama Copia + Limita + Banna + Rinomina Elimina Avvia - Elimina e arresta Inoltra Reinvia - Dalla fotocamera - Dalla galleria - Elimina la foto + Rimuovi la foto Imposta OK Arresta @@ -3036,9 +1205,7 @@ Crea link RITAGLIA Aggiorna App - AGGIORNA ORA AGGIORNA - PIÙ TARDI Accetta Accetta Rifiuta @@ -3048,10 +1215,10 @@ Rifiuta ed elimina Avanti Attiva + Segnala falso positivo - Ti sei unito/a al gruppo tramite link d\'invito + Ti sei unito al gruppo tramite il link d\'invito un1 ha eliminato il link d\'invito un2 - un1 ha creato il link d\'invito un2 un1 ha modificato il link d\'invito un2 in un3 un1 ha impostato il volume di un2 al %1$d%% un1 ha revocato il link d\'invito un2 @@ -3062,13 +1229,17 @@ I messaggi in questo canale non saranno più eliminati automaticamente un1 ha disattivato il timer di autoeliminazione Hai disattivato il timer di autoeliminazione - un1 si è unito/a al gruppo tramite link d\'invito + un1 si è unito al gruppo tramite il link d\'invito + un1 si è unito al gruppo tramite link d\'invito della cartella + un1 si è unito al canale tramite link d\'invito + un1 si è unito al canale tramite un link d\'invito di una cartella un1 ha rimosso un2 + un1 ha rimborsato %1$s un1 ha lasciato il gruppo un1 ha aggiunto un2 un1 ha rimosso la foto del gruppo un1 ha cambiato la foto del gruppo - un1 ha cambiato il video del gruppo + un1 ha cambiato la foto del gruppo un1 ha cambiato il nome del gruppo in un2 un1 ha creato il gruppo Hai rimosso un2 @@ -3080,28 +1251,33 @@ un1 ha totalizzato %1$s a un2 Hai rimosso la foto del gruppo Hai cambiato la foto del gruppo - Hai cambiato il video del gruppo - Hai cambiato il nome del gruppo in un2 + Hai cambiato la foto del gruppo + Hai rinominato il gruppo in un2 Hai creato il gruppo un1 ti ha rimosso un1 ti ha aggiunto un1 è tornato nel gruppo - un1 si è unito/a al gruppo + un1 si è unito al gruppo Sei tornato nel gruppo un1 ora è a %1$s da te Ora sei a %1$s da un1 un1 ora è a %1$s da un2 un1 ti ha invitato in questo gruppo un1 ti ha invitato in questo canale - un1 ha iniziato una chat vocale - Hai iniziato una chat vocale - Chat vocale iniziata - Chat vocale programmata per il %1$s - Chat vocale terminata (%s) - un1 ha invitato un2 nella chat vocale - Hai invitato un2 nella chat vocale - un1 ti ha invitato nella chat vocale - Hai permesso a questo bot di scriverti quando ti sei collegato su %1$s. + un1 ha avviato una chat video + Hai avviato una chat video + Chat video programmata per: %1$s + Diretta streaming iniziata + Diretta streaming programmata per il %1$s + Diretta streaming terminata (%s) + un1 ha terminato la chat video (%s) + Hai terminato la chat video (%s) + un1 ha invitato un2 nella chat video + Hai invitato un2 nella chat video + un1 ti ha invitato nella chat video + Hai permesso a questo bot di scriverti quando hai eseguito l\'accesso su %1$s + Hai permesso a questo bot di scriverti quando hai eseguito l\'accesso sull\'app \"%1$s\". + Hai consentito a questo bot di scriverti nella sua app web. %1$s ha ricevuto i seguenti documenti: %2$s Dettagli personali Indirizzo @@ -3116,122 +1292,137 @@ Contratto di locazione Numero di telefono Indirizzo email - Questo messaggio non è supportato dalla tua versione di Telegram. Aggiorna l\'app per visualizzarlo: https://telegram.org/update + Questo messaggio non è supportato dalla tua versione di Telegram. Per favore, aggiorna all\'ultima versione. + La tua versione è aggiornata. Foto Video Foto con autodistruzione Video con autodistruzione - La foto è scaduta - Il video è scaduto + Foto scaduta + Video scaduto + Videomessaggio scaduto + Vocale scaduto GIF Posizione Posizione in tempo reale Contatto + Risposte File Sticker Messaggio vocale Videomessaggio + Messaggio vocale monouso + Videomessaggio monouso Gioco Tu Hai fatto uno screenshot! un1 ha fatto uno screenshot! - - Limite raggiunto - Chat inattive - canale, inattivo da %1$s - %1$s, inattivo da %2$s - Lascia %1$s - Troppe community - Spiacenti, sei membro di troppi gruppi e canali. Per favore lasciane qualcuno prima di unirti ad uno nuovo. - Spiacenti, sei membro di troppi gruppi e canali. Per favore lasciane qualcuno prima di crearne uno nuovo. - Spiacenti, sei membro di troppi gruppi e canali. Per motivi tecnici, devi lasciarne qualcuno prima di modificare questa impostazione nei tuoi gruppi. - Spiacenti, l\'utente selezionato è membro di troppi gruppi e canali. Per favore chiedigli di lasciarne qualcuno prima. + Album + Spiacenti, non puoi fissare in alto più di %d topic. Attenzione! Questo **eliminerà tutti i messaggi** in questa chat per **entrambi** i partecipanti. + Attenzione! Questo **eliminerà tutti i messaggi** in questo canale. Attenzione! Questo **eliminerà tutti i messaggi** in questa chat. Elimina tutto - Terminare il caricamento? + Interrompere il caricamento? + Vuoi terminare il caricamento? Aggiorna Telegram Spiacenti, la tua app Telegram è obsoleta e non può gestire la richiesta. Per favore aggiorna Telegram. Numero di telefono non valido. Per favore controlla il numero e riprova. Per favore accedi al tuo account Telegram per usare Telegram Passport. - Questo numero è stato bloccato. - Codice scaduto, per favore riprova l\'accesso. + Questo numero è bloccato. + Codice scaduto, per favore ricomincia. + Codice errato + Impossibile terminare + Per motivi di sicurezza, non puoi cambiare il tuo numero di telefono da un dispositivo appena connesso. Usa una sessione precedente o attendi qualche ora. + Questo dominio email non è consentito. + Token email non valido. + Indirizzo email non valido. + Email di accesso + Questo indirizzo email sarà usato ogni volta che accedi al tuo account Telegram da un nuovo dispositivo. + Cambia email Troppi tentativi, per favore riprova più tardi. Troppi tentativi, per favore riprova tra %1$s Codice non valido, per favore riprova. Spiacenti, hai eliminato e ricreato il tuo account troppe volte di recente. Per favore attendi alcuni giorni prima di iscriverti di nuovo. - Nome non valido + Questo nome non è valido, per favore provane un altro. Spiacenti, questo cognome non può essere usato Carico... Non hai un lettore video, per favore installane uno per continuare - Per favore invia un’email descrivendo il problema a sms@telegram.org - Non hai applicazioni che possono gestire il tipo di file \'%1$s\': installane una per proseguire + Per favore invia un\'email descrivendo il problema a reports@stel.com + Non hai applicazioni che possono gestire il tipo di file \"%1$s\": installane una per proseguire Questo utente non ha ancora Telegram, vuoi invitarlo? - Sei sicuro? + Vuoi procedere? Aggiungi bot Vuoi aggiungere **%1$s** al gruppo **%2$s**? - Numero di ultimi messaggi da inoltrare: + Numero di messaggi precedenti da inoltrare: Aggiungere %1$s al gruppo? - Aggiungi %1$s - Aggiungi membro - Sei sicuro di voler aggiungere %1$s a **%2$s**? - Sei sicuro di voler aggiungere %1$s a **%2$s**? + Aggiungi membro + Aggiungi %1$d membri + Vuoi davvero aggiungere %1$s a **%2$s**? + Vuoi davvero aggiungere un membro a **%2$s**? + Vuoi davvero aggiungere %1$d membri a **%2$s**? Mostra gli ultimi 100 messaggi ai nuovi membri Mostra gli ultimi 100 messaggi a **%1$s** Vuoi inviare questo messaggio a **%1$s**? Vuoi condividere questo gioco con **%1$s**? Vuoi inviare questo contatto a **%1$s**? - Sei sicuro di voler uscire?\n\nNota che puoi usare Telegram su tutti i tuoi dispositivi contemporaneamente.\n\nRicorda, uscendo eliminerai tutte le chat segrete. + Vuoi davvero uscire?\n\nQuesto eliminerà tutte le tue chat segrete.\n\nPuoi usare Telegram su tutti i tuoi dispositivi contemporaneamente e usare diversi account sulla stessa app. Elimina %1$s - Svuota %1$s - Svuota cache per %1$s - Sei sicuro di voler eliminare le chat selezionate? - Sei sicuro di voler cancellare la cronologia nelle chat selezionate? + Cancella %1$s + Cancella la cache per %1$s + Vuoi davvero eliminare queste chat? + Vuoi davvero cancellare la cronologia in queste chat? Eliminare tutti i testi e i media dalle chat selezionate? - Sei sicuro di voler eliminare e lasciare il gruppo? + Vuoi davvero eliminare e lasciare il gruppo? Vuoi eliminare e lasciare il canale? - Sei sicuro di voler eliminare e lasciare il gruppo **%1$s**? - Sei sicuro di voler eliminare questa chat? - Sei sicuro di voler eliminare la chat con **%1$s**? - Sei sicuro di voler eliminare la chat con **%1$s** e bloccarlo? - Sei sicuro di voler eliminare i **Messaggi salvati**? - Sei sicuro di voler eliminare la tua chat segreta con **%1$s**? - Sei sicuro di voler eliminare la chat **%1$s**? + Vuoi davvero eliminare e lasciare il gruppo **%1$s**? + Vuoi eliminare definitivamente questa chat? + Eliminare definitivamente la chat con **%1$s**? + Vuoi davvero eliminare la chat con **%1$s** e bloccarlo? + Vuoi davvero eliminare i **Messaggi salvati**? + Vuoi davvero eliminare la tua chat segreta con **%1$s**? Elimina le bozze cloud - Sei sicuro di voler eliminare tutte le bozze? + Vuoi davvero eliminare tutte le bozze? Condividere la tua posizione? Questo invierà la tua posizione attuale al bot. L\'app non è riuscita a determinare la tua posizione attuale Scegli manualmente Questo bot vorrebbe sapere la tua posizione ogni volta che invii una richiesta. Questo può essere usato per fornire risultati specifici in base alla posizione. Condividere il tuo numero di telefono? - Il bot saprà il tuo numero di telefono. Questo può essere utile per l\'integrazione con altri servizi. + Il bot saprà il tuo numero di telefono. Questo può essere utile per integrazioni con altri servizi. + **%s** saprà il tuo numero di telefono. Questo può essere utile per integrazioni con altri servizi. + Questo sbloccherà anche il bot. Vuoi condividere il tuo numero %1$s con **%2$s**? - Sei sicuro di voler condividere il tuo numero? - Sei sicuro di voler bloccare **%1$s**? - Sei sicuro di voler sbloccare questo utente? - Sei sicuro di voler eliminare questo contatto? + Vuoi davvero condividere il tuo numero? + Vuoi davvero bloccare **%1$s**? + Vuoi davvero sbloccare questo utente? + Vuoi davvero eliminare questo contatto? Chat segreta - Sei sicuro di voler iniziare una chat segreta? - Sei sicuro di voler annullare la registrazione? + Vuoi davvero iniziare una chat segreta? + Vuoi davvero interrompere la registrazione? Vuoi terminare il processo di verifica? - Sei sicuro di voler eliminare la tua cronologia della chat con **%1$s**? - Sei sicuro di voler eliminare la tua cronologia della chat segreta con **%1$s**? - Sei sicuro di voler cancellare la cronologia chat di **%1$s**? - Sei sicuro di voler eliminare tutti i messaggi in questa chat? - Sei sicuro di voler pulire i **Messaggi salvati**? + Vuoi davvero eliminare la tua cronologia della chat con **%1$s**? + Questo eliminerà tutti i messaggi per te e per **%1$s**. Sei sicuro? + Vuoi davvero cancellare la cronologia chat di **%1$s**? + Vuoi cancellare la cronologia del canale **%1$s**? + Vuoi davvero eliminare tutti i messaggi in questa chat? + Vuoi davvero cancellare i **Messaggi salvati**? Questa azione non può essere annullata. Eliminare tutti i testi e i media di questo canale dalla cache? Eliminare tutti i testi e i media di questo gruppo dalla cache? Elimina %1$s + Rimuovi %1$s Elimina messaggio + Rimuovi messaggio Puoi eliminare %1$s che hai inviato anche dalla cronologia degli altri membri del gruppo selezionando \"Elimina per tutti i membri\". Puoi eliminare %1$s che hai inviato anche dalla cronologia degli altri membri del gruppo selezionando \"Ritira i miei messaggi\". Puoi eliminare %1$s che hai inviato anche dalla cronologia di **%2$s** selezionando \"Ritira i miei messaggi\". - Sei sicuro di voler eliminare questo messaggio? - Sei sicuro di voler eliminare questi messaggi? - Sei sicuro di voler eliminare questo messaggio per tutti? - Sei sicuro di voler eliminare questi messaggi per tutti? + Vuoi davvero rimuovere questo messaggio dai Messaggi salvati? + Vuoi davvero eliminare questo messaggio? + Vuoi davvero eliminare questi messaggi? + Vuoi davvero eliminare questi messaggi? + Vuoi davvero eliminare questo messaggio per tutti? + Vuoi davvero eliminare questi messaggi per tutti? Ritira i miei messaggi Elimina anche per %1$s Elimina la cronologia anche per %1$s @@ -3239,1212 +1430,79 @@ Vuoi inviare questo messaggio a **%1$s**? Vuoi condividere questo gioco con **%1$s**? Vuoi inviare questo contatto a **%1$s**? - Non esiste alcun account Telegram con questo username. + Username non trovato. + Non esiste un account Telegram con questo numero di telefono. + Nessuna cartella chat trovata. Questo bot non può unirsi ai gruppi. Attivare le anteprime estese per i link nelle Chat segrete? Ricorda che le anteprime dei link sono generate sui server di Telegram. - Per favore nota che i bot inline sono forniti da sviluppatori di terze parti. Per far funzionare il bot, i caratteri che digiti dopo l\'username del bot sono inviati al suo sviluppatore. + Per favore ricorda che i bot inline sono forniti da sviluppatori di terze parti. Per far funzionare il bot, i caratteri che digiti dopo l\'username del bot sono inviati al rispettivo sviluppatore. Spiacenti, non puoi modificare questo messaggio. - Per favore consenti a Telegram di ricevere chiamate così potremo inserire in automatico il codice per te. - Per favore permetti a Telegram di ricevere chiamate e leggere il registro delle chiamate in modo da poter inserire il codice per te automaticamente. - Per favore permetti a Telegram di leggere il registro delle chiamate in modo da poter inserire il codice per te automaticamente. + Consenti a Telegram di ricevere chiamate così potremo inserire in automatico il codice per te. + Consenti a Telegram di ricevere chiamate e leggere il registro delle chiamate in modo da poter inserire il codice per te automaticamente. + Consenti a Telegram di leggere il registro delle chiamate in modo da poter inserire il codice per te automaticamente. Per favore consenti a Telegram di ricevere chiamate, così potremo confermare automaticamente il tuo numero di telefono. Spiacenti, questa azione non ti è permessa. - Spiacenti, non puoi aggiungere questo utente o bot al gruppo perché lo hai bloccato. Per favore sbloccalo per procedere. - UNISCITI AL GRUPPO - Spiacenti, non puoi aggiungere questo utente come amministratore perché non è un membro del gruppo e non sei autorizzato ad aggiungerlo. - Spiacenti, non puoi aggiungere questo utente come amministratore perché è bloccato e non puoi sbloccarlo. - Spiacenti, non puoi aggiungere questo utente perché è nella lista degli utenti rimossi e non lo puoi sbloccare. - Spiacenti, non puoi bloccare questo utente perché è un amministratore in questo gruppo e non sei autorizzato a degradarlo. - Spiacenti, gli amministratori di questo gruppo ti hanno vietato di inviare sticker. - Spiacenti, gli amministratori di questo gruppo ti hanno vietato di inviare media. - Spiacenti, gli amministratori di questo gruppo ti hanno vietato di inviare sondaggi. + Spiacenti, non puoi aggiungere questo utente o bot al gruppo perché lo hai bloccato. Sbloccalo per procedere. + Non puoi aggiungere questo utente come amministratore perché non è un membro del gruppo e non sei autorizzato ad aggiungerlo. + Non puoi aggiungere questo utente come amministratore perché è nella lista Utenti rimossi e non sei autorizzato a sbloccarlo. + Spiacenti, non puoi aggiungere questo utente perché è nella lista degli utenti rimossi e non puoi sbloccarlo. + Non puoi bannare questo utente perché è un amministratore in questo gruppo e non sei autorizzato a degradarlo. + Gli amministratori del gruppo ti hanno vietato di inviare sticker. + Gli amministratori del gruppo ti hanno vietato di inviare media. + Spiacenti, gli amministratori del gruppo ti hanno vietato di inviare foto. + Spiacenti, gli amministratori del gruppo ti hanno vietato di inviare video. + Gli amministratori del gruppo ti hanno vietato di inviare sondaggi. + Spiacenti, gli amministratori del gruppo ti hanno vietato di inviare messaggi vocali. + Spiacenti, gli amministratori del gruppo ti hanno vietato di inviare videomessaggi. + Spiacenti, gli amministratori del gruppo ti hanno vietato di inviare documenti. + Spiacenti, gli amministratori del gruppo ti hanno vietato di inviare musica. Spiacenti, non è permesso inviare sticker in questo gruppo. + Spiacenti, non è permesso inviare foto in questo gruppo. + Spiacenti, non è permesso inviare video in questo gruppo. Spiacenti, non è permesso inviare media in questo gruppo. Spiacenti, non è permesso inviare sondaggi in questo gruppo. - Siamo spiacenti, ma questo significa che non puoi iscriverti a Telegram.\n\nA differenza di altri, non utilizziamo i tuoi dati per il targeting degli annunci o altri scopi commerciali. Telegram conserva solo le informazioni di cui ha bisogno per funzionare come servizio cloud ricco di funzionalità. Puoi regolare il modo in cui utilizziamo i tuoi dati (ad esempio, eliminando i contatti sincronizzati) nelle impostazioni di Privacy e sicurezza.\n\nMa se in genere non sei d\'accordo con le modeste esigenze di Telegram, non sarà possibile per noi fornirti questo servizio. + Spiacenti, non è permesso inviare messaggi vocali in questo gruppo. + Spiacenti, non è permesso inviare videomessaggi in questo gruppo. + Spiacenti, non è permesso inviare documenti in questo gruppo. + Spiacenti, non è permesso inviare musica in questo gruppo. + Spiacenti, non puoi inviare messaggi vocali a questo utente a causa delle sue impostazioni di privacy. + Spiacenti, non puoi inviare videomessaggi a questo utente a causa delle sue impostazioni di privacy. + Impossibile inoltrare + Sfortunatamente, questo significa che non puoi iscriverti a Telegram.\n\nA differenza delle altre app, Telegram non usa i tuoi dati per il targeting delle inserzioni o altri scopi commerciali. Telegram conserva solo le informazioni di cui ha bisogno per funzionare come servizio cloud ricco di funzionalità. Puoi regolare il modo in cui utilizziamo i tuoi dati (ad esempio, eliminare i contatti sincronizzati) nelle impostazioni di Privacy e sicurezza.\n\nSe non ti senti a tuo agio con le modeste esigenze di Telegram, non ci sarà possibile fornirti questo servizio. Verifica età - Informativa sulla privacy e Termini di servizio + Informativa sulla Privacy e Termini di Servizio Tocca Accetta per confermare di avere almeno %1$s anni. - Siamo molto dispiaciuti, ma questo significa che dobbiamo separarci qui. A differenza di altri, non utilizziamo i tuoi dati per il targeting degli annunci o altri scopi commerciali. Telegram memorizza solo le informazioni necessarie per funzionare come servizio cloud ricco di funzionalità. Puoi regolare il modo in cui utilizziamo i tuoi dati (ad esempio, eliminando i contatti sincronizzati) nelle impostazioni di Privacy e sicurezza.\n\nMa se in genere non sei d\'accordo con le modeste esigenze di Telegram, non sarà possibile per noi fornire questo servizio. Puoi eliminare il tuo account ora — o guardarti intorno ancora e cancellarlo più tardi se ritieni di non essere soddisfatto del modo in cui usiamo i tuoi dati. - Attenzione, questo cancellerà irreversibilmente il tuo account Telegram insieme a tutti i dati che archivi nel cloud di Telegram.\n\nImportante: Puoi annullare adesso ed esportare i tuoi dati prima di eliminare il tuo account invece che perdere tutto. (Per farlo, apri l\'ultima versione di Telegram Desktop e vai in Impostazioni > Avanzate > Esporta dati Telegram.) + Sfortunatamente, non ci sono altre opzioni. A differenza di altri, Telegram non usa i tuoi dati per il targeting delle inserzioni o altri scopi commerciali. Telegram conserva solo le informazioni di cui ha bisogno per funzionare come servizio cloud ricco di funzionalità. Puoi regolare il modo in cui utilizziamo i tuoi dati nelle impostazioni di Privacy e sicurezza.\n\nSe non ti senti a tuo agio con le modeste esigenze di Telegram, non ci sarà possibile fornirti questo servizio. + Attenzione, questo eliminerà irreversibilmente il tuo account Telegram e tutti i dati che archivi nel cloud di Telegram.\n\nImportante: Puoi annullare adesso ed esportare prima i tuoi dati invece che perdere tutto. (Per farlo, apri l\'ultima versione di Telegram Desktop e vai in Impostazioni > Avanzate > Esporta dati Telegram.) - Per farti connettere con i tuoi amici su tutti i tuoi dispositivi, i tuoi contatti saranno sincronizzati di continuo con i server cloud fortemente criptati di Telegram. - Telegram deve accedere alla tua memoria per poter inviare e salvare foto, video, musica e altri media. - Telegram deve accedere al microfono affinché tu possa inviare messaggi vocali. - Telegram deve accedere al microfono affinché tu possa registrare video. - Telegram deve accedere alla fotocamera affinché tu possa scattare foto e registrare video. Per favore attivalo nelle Impostazioni. - Telegram deve accedere alla tua posizione affinché tu possa condividerla con i tuoi amici. - Telegram deve accedere alla tua posizione. + **Telegram** deve accedere all\'archivio per poter inviare e salvare foto, video, musica e altri documenti. Tocca Impostazioni > Permessi, e attiva **File e media**. + **Telegram** deve accedere al microfono per poter inviare messaggi vocali. Tocca Impostazioni > Permessi, e attiva **Microfono**. + **Telegram** deve accedere al microfono per poter inviare messaggi vocali. Tocca Impostazioni > Permessi, e attiva **Microfono**. + **Telegram** deve accedere alla fotocamera per poter scattare foto e video. Tocca Impostazioni > Permessi, e attiva **Fotocamera**. + **Telegram** deve accedere alla fotocamera e al microfono per poter inviare videomessaggi. Tocca Impostazioni > Permessi, e attiva **Microfono** e **Fotocamera**. + Telegram deve accedere alla tua posizione perché tu possa condividerla con i tuoi amici. + Telegram deve accedere alla tua posizione perché tu possa aggiungere il widget meteo alle tue storie. + **Telegram** deve accedere alla posizione perché tu possa condividerla con i tuoi amici. Tocca Impostazioni > Permessi, e attiva **Posizione**. + **Telegram** deve accedere alla posizione per poter ottenere le indicazioni. Tocca Impostazioni > Permessi, e attiva **Posizione**. + **Telegram** deve accedere ai contatti perché tu possa condividerli con i tuoi amici. Tocca Impostazioni > Permessi, e attiva **Contatti**. + **Telegram** deve accedere all\'archivio per poter caricare foto del profilo. Tocca Impostazioni > Permessi, e attiva **File e media**. + **Telegram** deve accedere ai tuoi file musicali per aggiungerli alla tua storia. Tocca Impostazioni > Permessi, e attiva **Musica e audio**. Telegram deve accedere allo spostamento su altre app per riprodurre i video in modalità Picture-in-Picture. - La modalità overlay ti consente di utilizzare il push-to-talk e vedere chi sta parlando anche quando sei fuori da Telegram. - IMPOSTAZIONI - Per favore consenti a Telegram di essere visualizzato sulla schermata di blocco in modo che le chiamate possano funzionare correttamente. + La modalità overlay ti consente di usare il push-to-talk e vedere chi sta parlando anche quando sei fuori da Telegram. + Impostazioni + Consenti a Telegram di apparire sulla schermata di blocco in modo che le chiamate possano funzionare correttamente. Per condividere la posizione in tempo reale in questa chat, Telegram ha bisogno di accedere alla tua posizione per tutto il tempo, anche quando l\'applicazione è in background.\n\nAccederemo alla tua posizione solo per la durata da te scelta, e potrai smettere di condividerla in qualsiasi momento. Non useremo la tua posizione per nessun altro scopo se non quello di condividerla in questa chat. Picture-in-Picture - Overlay chat vocale - - Crescita - Follower - Interazioni - Visualizzazioni per origine - Nuovi follower per origine - Lingue - Post recenti - Riduci - Interazioni AR - Carico le statistiche... - Per favore attendi qualche momento mentre generiamo i grafici. - Visualizzazioni per orario (UTC) - Scorri in alto per continuare a registrare - Notifiche - Archivio dispositivo - %s Liberi - Svuota la cache di Telegram - Panoramica - Visualizzazioni per post - Condivisioni per post - Notifiche attivate - Cancella database locale - %s Cache di Telegram - %s Database locale di Telegram - %s liberati sul tuo dispositivo! - %s Altre app - Membri del gruppo - Nuovi membri per origine - Lingua principale dei membri - Messaggi - Azioni - Membri - Messaggi - Membri che visualizzano - Membri che pubblicano - %1$d caratteri - %1$d carattere - %1$d caratteri - %1$d caratteri - %1$d caratteri - %1$d caratteri - %1$d eliminazioni - %1$d eliminazione - %1$d eliminazioni - %1$d eliminazioni - %1$d eliminazioni - %1$d eliminazioni - %1$d blocchi - %1$d blocco - %1$d blocchi - %1$d blocchi - %1$d blocchi - %1$d blocchi - %1$d limitazioni - %1$d limitazione - %1$d limitazioni - %1$d limitazioni - %1$d limitazioni - %1$d limitazioni - %1$d inviti - %1$d invito - %1$d inviti - %1$d inviti - %1$d inviti - %1$d inviti - Amministratori migliori - Membri migliori - Classifica inviti - %s per messaggio - Giorni migliori della settimana - Visualizza messaggi - Apri profilo - Oggi - Ieri - Visualizzazioni - Condivisioni pubbliche - Condivisioni private - Visualizza statistiche - Visualizza statistiche canale - Statistiche messaggio - Apri messaggio - - Telegram - Veloce - Gratis - Sicuro - Potente - Basato sul cloud - L\'app di messaggi **più veloce** al mondo.\nÈ **gratuita** e **sicura**. - **Telegram** consegna i messaggi più\nvelocemente di qualsiasi altra app. - **Telegram** sarà sempre gratuito.\nNessuna pubblicità. Nessun abbonamento. - **Telegram** protegge i tuoi messaggi\ndagli attacchi degli hacker. - **Telegram** non ha limiti di dimensione\nper le tue chat e i file multimediali. - **Telegram** ti consente di accedere\nai tuoi messaggi da più dispositivi. - Inizia a messaggiare - - Impostazioni account - Meno dati per le chiamate - Chiamata in entrata - Connetto - Scambio chiavi di crittografia - Attendo - Richiedo - Riattacco - Chiamata terminata - Connessione fallita - Squillo - Linea occupata - Chiamata Telegram - Videochiamata Telegram - Chiamata Telegram in corso - Chat vocale in corso - Termina - Altra chiamata in corso - Terminare la chiamata con **%1$s** e iniziarne una nuova con **%2$s**? - Terminare la chiamata con **%1$s** e iniziare una chat vocale in **%2$s**? - Un\'altra chat vocale in corso - Lasciare la chat vocale in **%1$s** e iniziarne una nuova in **%2$s**? - Lasciare la chat vocale in **%1$s** e chiamare **%2$s**? - Chiamate - Suoneria - Puoi personalizzare la suoneria usata quando questo contatto ti chiama su Telegram. - Chiamate - Elimina tutte le chiamate - Elimina chiamate - Elimina per tutti - Vuoi eliminare tutte le chiamate recenti? - Vuoi eliminare le chiamate selezionate dai recenti? - Il peer-to-peer nelle chiamate sarà o non sarà usato con questi utenti indipendentemente dalle impostazioni precedenti. - Usa il peer-to-peer con - Chi può chiamarmi? - Puoi decidere chi può chiamarti. - Questi utenti potranno o non potranno chiamarti indipendentemente dalle impostazioni precedenti. - Mai - Solo con i dati cellulare - Sempre - Solo in roaming - Rispondi - Rifiuta - Al momento non sei in linea. Connettiti a Internet per chiamare. - Al momento non sei in linea. Connettiti a Internet per partecipare alle chat vocali. - Al momento hai la modalità aereo attivata. Per favore disattivala o connettiti ad una rete Wi-Fi per chiamare. - Al momento la modalità aereo è attiva. Disattivala o connettiti al Wi-Fi per partecipare alle chat vocali. - Non in linea - Modalità aereo - Impostazioni - Chiamata in uscita - Chiamata in entrata - Videochiamata in uscita - Videochiamata in entrata - Chiamata persa - Chiamata annullata - Chiamata rifiutata - Videochiamata persa - Videochiamata annullata - Videochiamata rifiutata - %1$s (%2$s) - Nessuna chiamata recente - Le tue chiamate e videochiamate recenti\nappariranno qui. - L\'app di **%1$s** sta usando un protocollo non compatibile. Deve aggiornare la sua app prima che tu possa chiamarlo. - L\'app di **%1$s** non supporta le chiamate. Deve aggiornare la sua app prima che tu possa chiamarlo. - Spiacenti, **%1$s** sta usando una vecchia versione di Telegram che non supporta le videochiamate. - Chiamata vocale - Per favore valuta la qualità della tua chiamata Telegram - Telegram deve accedere al microfono affinché tu possa effettuare chiamate. - Telegram deve accedere al tuo microfono e alla tua videocamera affinché tu possa effettuare videochiamate. - Telegram deve accedere alla tua fotocamera affinché tu possa effettuare videochiamate. - Aggiungi un commento facoltativo - Richiama - Richiama - Default - Vuoi eliminare questa voce dal registro delle chiamate? - Chiamata Telegram - Videochiamata Telegram - Auricolare - Cuffie - Vivavoce - Telefono - Bluetooth - Dispositivi di output - RITORNA ALLA CHIAMATA - Spiacenti, non puoi chiamare **%1$s** a causa delle sue impostazioni di privacy. - Se le emoji sono uguali sullo schermo di %1$s, la chiamata è sicura al 100%%. - Valuta la chiamata - Cosa è andato storto? - Includi informazioni tecniche - Non rivela i contenuti della chat e ci aiuta a risolvere il problema più velocemente. - Grazie per aver contribuito a rendere le chiamate di Telegram migliori. - rispondi come %s - Rispondi con messaggio - Queste risposte rapide sono disponibili quando rispondi ad una chiamata in entrata con un messaggio Telegram. Modificale a tuo piacimento. - Non posso parlare ora. Cosa succede? - Ti richiamerò fra poco. - Ti chiamerò più tardi. - Non posso parlare ora. Mi richiami più tardi? - Messaggio personalizzato... - Consenti personalizzazione - Chiamata Telegram a %s - Videochiamata Telegram a %s - Impossibile effettuare una chiamata Telegram al momento. - Sentivo la mia stessa voce - Sentivo dei rumori di fondo - Sentivo gli altri a tratti - La voce era distorta - Non riuscivo a sentire gli altri - Gli altri non riuscivano a sentirmi - Chiamata terminata di colpo - Il video era distorto - Il video era pixellato - Tocca qui per attivare la tua videocamera - Riattiva - o tieni premuto e parla - Sei in diretta - Silenziato dall\'amministratore - Silenziato - Sei in modalità solo ascolto - tocca se vuoi parlare - Hai chiesto di parlare - Lo faremo sapere agli speaker - Muto - Avvia video - Ferma video - Vivavoce - Inverti - Passa a videochiamata? - PASSA - Il microfono di %s è spento - La videocamera di %s è spenta - Accetta - Rifiuta - Riprova - Video - Sei sicuro di voler chiamare **%1$s**? - Chiamata vocale - Sei sicuro di voler videochiamare **%1$s**? - Videochiamata - Riconnetto - Avvia chat vocale - Chat vocale - Iniziare una chat vocale in questo gruppo? - Vuoi avviare una chat vocale in questo canale? - Gestire le chat vocali - Unisciti - %1$s membri stanno parlando - %1$s membro sta parlando - %1$s membri stanno parlando - %1$s membri stanno parlando - %1$s membri stanno parlando - %1$s membri stanno parlando - sta parlando - %1$d%% sta parlando - sta ascoltando - vuole parlare - invitato - Lascia - Termina - Silenzia microfono - Sei sicuro di voler silenziare **%1$s** in questa chat vocale? - Rimuovi partecipante - Vuoi rimuovere %1$s dalla chat vocale e bloccarlo in %2$s? - **%1$s** rimosso dal gruppo. - **%1$s** ora può parlare. - **%1$s** è ora attivo per te. - **%1$s** ora è silenziato in questa chat. - **%1$s** è ora silenziato in questa chat per te. - Silenzia - Nuovi partecipanti attivi - Nuovi partecipanti silenziati - Condividi link d\'invito - Termina la chat vocale - Annulla chat vocale - Connetto... - Lascia la chat vocale - Sei sicuro di voler lasciare questa chat vocale? - Termina la chat vocale - Sei sicuro di voler terminare questa chat vocale? - Termina la chat vocale - CHAT VOCALE - Chat vocale - Chat vocale programmata - Apri chat vocale - L\'utente selezionato è già in questa chat vocale. - Spiacenti, non puoi unirti alle chat vocali come amministratore anonimo. - Spiacenti, questa chat vocale è piena. - un1 ha invitato un2 nella chat vocale - Unisciti alla chat vocale - Ehi! Unisciti alla nostra chat vocale: %1$s - Invita membri - Condividi link d\'invito - Rimuovi - Apri profilo - Apri canale - Apri gruppo - Permetti di parlare - Cerca membri da invitare... - Copia link d\'invito - Link d\'invito copiato negli appunti. - Riattiva - Chat vocale terminata. Iniziarne una nuova? - Aggiungi membro - Vuoi aggiungere **%1$s** a **%2$s**? - Hai invitato **%1$s** nella chat vocale. - Aggiungi - Volume - Silenzia per me - Silenziato per me - Riattiva per me - Tocca per unirti - Avvia registrazione - Termina registrazione - Avvia la chat vocale come... - Unisciti alla chat vocale come... - Mostrami come... - Scegli se vuoi essere visualizzato come account personale o come canale. - Scegli se vuoi essere visualizzato come account personale, come questo gruppo o come uno dei tuoi canali. - Continua come %1$s - Modifica titolo chat vocale - Modifica permessi - I partecipanti di questa chat vocale ora ti vedranno come **%1$s**. - Titolo chat vocale - Può parlare - Solo ascolto - COPIA LINK SPEAKER - COPIA LINK ASCOLTATORE - Adesso puoi parlare. - Adesso puoi parlare in **%1$s**. - Termina registrazione - Vuoi terminare la registrazione di questa chat vocale? - Avvia registrazione - Registrare questa chat e salvare il risultato in un file audio?\n\nI partecipanti vedranno che la chat viene registrata. - Titolo registrazione - Audio salvato nei **Messaggi salvati**. - Registrazione chat vocale iniziata. - La chat vocale viene registrata - account personale - Annulla la richiesta di parlare - UNISCITI COME SPEAKER - UNISCITI COME ASCOLTATORE - Unisciti alla chat vocale - Sei sicuro di voler apparire in questa chat vocale come account personale? - Suono chat vocale disattivato. - Suono chat vocale riattivato. - I membri del gruppo saranno avvisati dell\'inizio della chat vocale. - Gli iscritti del canale saranno avvisati dell\'inizio della chat vocale. - Sarai visualizzato come: - Avvia chat vocale - Programma chat vocale - Avvia ora - Imposta promemoria - Annulla promemoria - I membri del gruppo saranno avvisati che la chat vocale inizierà tra %1$s. - Gli iscritti del canale saranno avvisati che la chat vocale inizierà tra %1$s. - Inizia tra - In ritardo di - Condividi - Ti notificheremo quando inizia. - **%1$s** si è unito/a alla chat vocale. - **%1$s** si è unito/a alla chat vocale. - Chat vocali attive - Chiamate recenti - Condividi schermo - Termina condivisione schermo - questo sei tu - Apri chat - Cambia foto - Aggiungi bio - Modifica nome - Bio - Puoi aggiungere alcune righe su di te. Tutti vedranno questo testo. - Tocca per la bio - Modifica bio - Aggiungi descrizione - Modifica descrizione - tocca per foto o bio - tocca per la bio - tocca per la foto - tocca per la descrizione - Tocca per foto o descrizione - Modifica titolo - Titolo - Imposta nuova foto - Video - Anteprima video - Il video dalla tua fotocamera sarà condiviso con gli altri membri di questa chat vocale. - Condividi videocamera - Anteprima - Fissa - Togli - Audio - Seleziona output audio - Video in pausa - Stai condividendo\nil tuo schermo - Stai condividendo il tuo schermo - TERMINA CONDIVISIONE - Soppressione del rumore - Attivata - Disattivata - Video disponibile solo per\ni primi %1$s partecipanti - - Gestisci i link d\'invito - Puoi creare link d\'invito aggiuntivi che hanno una durata o un numero di utilizzi limitato. - Chiunque su Telegram potrà unirsi al tuo gruppo tramite questo link. - Chiunque su Telegram potrà unirsi al tuo canale tramite questo link. - Modifica link - Salva link - - Limita per durata - Limita il numero di utilizzi - Nuovo link - Imposta durata personalizzata - Inserisci limite personalizzato - Puoi far scadere il link dopo un certo periodo di tempo. - Puoi far scadere il link dopo che è stato usato un certo numero di volte. - Non ancora usato - Scaduto - Ottieni QR - Link creato da - Invita tramite QR - Condividi codice QR - Revocato - Questo link scade %s - Scade dopo - Imposta limite di tempo - Link revocati - Elimina il link - Link revocato - Questo link non è più attivo - Il limite di tempo di questo link è scaduto. - Questo link ha raggiunto il limite di utilizzo. - Crea un nuovo link - Elimina tutti i link revocati - Non ancora usato - Limite raggiunto - Chiunque su Telegram può scansionare questo codice per unirsi al tuo gruppo. - Questo eliminerà il link. - Questo eliminerà tutti i link revocati. - Puoi generare link d\'invito che scadranno dopo essere stati usati. - Link creati da questo amministratore - Link creati da altri amministratori - Link per questo amministratore - Chiunque su Telegram può scansionare questo codice per unirsi al tuo canale. - Chiunque abbia Telegram installato potrà unirsi al tuo canale tramite questo link. - Questo link scade tra %s - Link pubblico - Questo link d\'invito è scaduto. - Copia - Condividi - Questo link d\'invito è stato revocato. - Link scaduto + Overlay chat video Invia un messaggio a %1$s Chiama %1$s Videochiama %1$s - - un1 stanno parlando - un1 sta parlando - un1 stanno parlando - un1 stanno parlando - un1 stanno parlando - un1 stanno parlando - Elimina %1$d sfondi - Elimina sfondo - Elimina %1$d sfondi - Elimina %1$d sfondi - Elimina %1$d sfondi - Elimina %1$d sfondi - %1$d destinatari - %1$d destinatario - %1$d destinatari - %1$d destinatari - %1$d destinatari - %1$d destinatari - %1$d in linea - %1$d in linea - %1$d in linea - %1$d in linea - %1$d in linea - %1$d in linea - %1$d contatti su Telegram - %1$d contatto su Telegram - %1$d contatti su Telegram - %1$d contatti su Telegram - %1$d contatti su Telegram - %1$d contatti su Telegram - Ehi, sto usando Telegram per chattare – così come altri %1$d dei nostri contatti. Unisciti a noi! Scaricalo qui: %2$s - Ehi, sto usando Telegram per chattare – così come %1$d altro dei nostri contatti. Unisciti a noi! Scaricalo qui: %2$s - Ehi, sto usando Telegram per chattare – così come altri %1$d dei nostri contatti. Unisciti a noi! Scaricalo qui: %2$s - Ehi, sto usando Telegram per chattare – così come altri %1$d dei nostri contatti. Unisciti a noi! Scaricalo qui: %2$s - Ehi, sto usando Telegram per chattare – così come altri %1$d dei nostri contatti. Unisciti a noi! Scaricalo qui: %2$s - Ehi, sto usando Telegram per chattare – così come altri %1$d dei nostri contatti. Unisciti a noi! Scaricalo qui: %2$s - %1$d persone si sono unite - %1$d persona si è unita - %1$d persone si sono unite - %1$d persone si sono unite - %1$d persone si sono unite - %1$d persone si sono unite - %1$d rimanenti - %1$d rimanenti - %1$d rimanente - %1$d rimanenti - %1$d rimanenti - %1$d rimanenti - %1$d possono unirsi - %1$d possono unirsi - %1$d può unirsi - %1$d possono unirsi - %1$d possono unirsi - %1$d possono unirsi - %1$d giorni rimanenti - %1$d giorni rimanenti - %1$d giorno rimanente - %1$d giorni rimanenti - %1$d giorni rimanenti - %1$d giorni rimanenti - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d chat - %1$d canali - %1$d canale - %1$d canali - %1$d canali - %1$d canali - %1$d canali - %1$d gruppi - %1$d gruppo - %1$d gruppi - %1$d gruppi - %1$d gruppi - %1$d gruppi - %1$d membri - %1$d membro - %1$d membri - %1$d membri - %1$d membri - %1$d membri - %1$d partecipanti - %1$d partecipante - %1$d partecipanti - %1$d partecipanti - %1$d partecipanti - %1$d partecipanti - e altri %1$d stanno scrivendo - e %1$d altro stanno scrivendo - e altri %1$d stanno scrivendo - e altri %1$d stanno scrivendo - e altri %1$d stanno scrivendo - e altri %1$d stanno scrivendo - %1$s e altri %2$d stanno scrivendo - %1$s e %2$d altro stanno scrivendo - %1$s e altri %2$d stanno scrivendo - %1$s e altri %2$d stanno scrivendo - %1$s e altri %2$d stanno scrivendo - %1$s e altri %2$d stanno scrivendo - %1$d nuovi messaggi - %1$d nuovo messaggio - %1$d nuovi messaggi - %1$d nuovi messaggi - %1$d nuovi messaggi - %1$d nuovi messaggi - %1$d messaggi tolti - Messaggio tolto - %1$d messaggi tolti - %1$d messaggi tolti - %1$d messaggi tolti - %1$d messaggi tolti - %1$d messaggi - %1$d messaggio - %1$d messaggi - %1$d messaggi - %1$d messaggi - %1$d messaggi - %1$d oggetti - %1$d oggetto - %1$d oggetti - %1$d oggetti - %1$d oggetti - %1$d oggetti - da %1$d chat - da %1$d chat - da %1$d chat - da %1$d chat - da %1$d chat - da %1$d chat - %1$d secondi - %1$d secondo - %1$d secondi - %1$d secondi - %1$d secondi - %1$d secondi - %1$d minuti - %1$d minuto - %1$d minuti - %1$d minuti - %1$d minuti - %1$d minuti - %1$d ore - %1$d ora - %1$d ore - %1$d ore - %1$d ore - %1$d ore - %1$d giorni - %1$d giorno - %1$d giorni - %1$d giorni - %1$d giorni - %1$d giorni - %1$d secondi - %1$d secondo - %1$d secondi - %1$d secondi - %1$d secondi - %1$d secondi - %1$d minuti - %1$d minuto - %1$d minuti - %1$d minuti - %1$d minuti - %1$d minuti - %1$d ore - %1$d ora - %1$d ore - %1$d ore - %1$d ore - %1$d ore - %1$d giorni - %1$d giorno - %1$d giorni - %1$d giorni - %1$d giorni - %1$d giorni - %1$d settimane - %1$d settimana - %1$d settimane - %1$d settimane - %1$d settimane - %1$d settimane - %1$d mesi - %1$d mese - %1$d mesi - %1$d mesi - %1$d mesi - %1$d mesi - %1$d anni - %1$d anno - %1$d anni - %1$d anni - %1$d anni - %1$d anni - %1$d utenti - %1$d utente - %1$d utenti - %1$d utenti - %1$d utenti - %1$d utenti - %1$d volte - %1$d volta - %1$d volte - %1$d volte - %1$d volte - %1$d volte - %1$d metri - %1$d metro - %1$d metri - %1$d metri - %1$d metri - %1$d metri - %1$d sticker - %1$d sticker - %1$d sticker - %1$d sticker - %1$d sticker - %1$d sticker - %1$d maschere - %1$d maschera - %1$d maschere - %1$d maschere - %1$d maschere - %1$d maschere - %1$d iscritti - %1$d iscritto - %1$d iscritti - %1$d iscritti - %1$d iscritti - %1$d iscritti - %1$d eccezioni - %1$d eccezione - %1$d eccezioni - %1$d eccezioni - %1$d eccezioni - %1$d eccezioni - %1$d utenti rimossi - %1$d utente rimosso - %1$d utenti rimossi - %1$d utenti rimossi - %1$d utenti rimossi - %1$d utenti rimossi - %1$d punti - %1$d punto - %1$d punti - %1$d punti - %1$d punti - %1$d punti - aggiornata %1$d minuti fa - aggiornata %1$d minuto fa - aggiornata %1$d minuti fa - aggiornata %1$d minuti fa - aggiornata %1$d minuti fa - aggiornata %1$d minuti fa - **%1$d** secondi - **%1$d** secondo - **%1$d** secondi - **%1$d** secondi - **%1$d** secondi - **%1$d** secondi - **%1$d** minuti - **%1$d** minuto - **%1$d** minuti - **%1$d** minuti - **%1$d** minuti - **%1$d** minuti - **%1$d** ore - **%1$d** ora - **%1$d** ore - **%1$d** ore - **%1$d** ore - **%1$d** ore - **%1$d** giorni - **%1$d** giorno - **%1$d** giorni - **%1$d** giorni - **%1$d** giorni - **%1$d** giorni - %1$s visualizzazioni - %1$s visualizzazione - %1$s visualizzazioni - %1$s visualizzazioni - %1$s visualizzazioni - %1$s visualizzazioni - %1$s condivisioni - %1$s condivisione - %1$s condivisioni - %1$s condivisioni - %1$s condivisioni - %1$s condivisioni - %1$s condivisioni pubbliche - %1$s condivisione pubblica - %1$s condivisioni pubbliche - %1$s condivisioni pubbliche - %1$s condivisioni pubbliche - %1$s condivisioni pubbliche - %1$s hanno condiviso - %1$s ha condiviso - %1$s hanno condiviso - %1$s hanno condiviso - %1$s hanno condiviso - %1$s hanno condiviso - %1$s set di sticker - %1$s set di sticker - %1$s set di sticker - %1$s set di sticker - %1$s set di sticker - %1$s set di sticker - - %1$d messaggi inoltrati - Messaggio inoltrato - %1$d messaggi inoltrati - %1$d messaggi inoltrati - %1$d messaggi inoltrati - %1$d messaggi inoltrati - %1$d foto - %1$d foto - %1$d foto - %1$d foto - %1$d foto - %1$d foto - %1$d video - %1$d video - %1$d video - %1$d video - %1$d video - %1$d video - %1$d file - %1$d file - %1$d file - %1$d file - %1$d file - %1$d file - %1$d file musicali - %1$d file musicale - %1$d file musicali - %1$d file musicali - %1$d file musicali - %1$d file musicali - %1$d gruppi in comune - %1$d gruppo in comune - %1$d gruppi in comune - %1$d gruppi in comune - %1$d gruppi in comune - %1$d gruppi in comune - %1$d media - %1$d media - %1$d media - %1$d media - %1$d media - %1$d media - %1$d messaggi vocali - %1$d messaggio vocale - %1$d messaggi vocali - %1$d messaggi vocali - %1$d messaggi vocali - %1$d messaggi vocali - %1$d link - %1$d link - %1$d link - %1$d link - %1$d link - %1$d link - %1$d GIF - %1$d GIF - %1$d GIF - %1$d GIF - %1$d GIF - %1$d GIF - %1$d utenti bloccati - %1$d utente bloccato - %1$d utenti bloccati - %1$d utenti bloccati - %1$d utenti bloccati - %1$d utenti bloccati - %1$d file inoltrati - File inoltrato - %1$d file inoltrati - %1$d file inoltrati - %1$d file inoltrati - %1$d file inoltrati - %1$d foto inoltrate - Foto inoltrata - %1$d foto inoltrate - %1$d foto inoltrate - %1$d foto inoltrate - %1$d foto inoltrate - %1$d video inoltrati - Video inoltrato - %1$d video inoltrati - %1$d video inoltrati - %1$d video inoltrati - %1$d video inoltrati - %1$d file audio inoltrati - File audio inoltrato - %1$d file audio inoltrati - %1$d file audio inoltrati - %1$d file audio inoltrati - %1$d file audio inoltrati - %1$d messaggi vocali inoltrati - Messaggio vocale inoltrato - %1$d messaggi vocali inoltrati - %1$d messaggi vocali inoltrati - %1$d messaggi vocali inoltrati - %1$d messaggi vocali inoltrati - %1$d videomessaggi inoltrati - Videomessaggio inoltrato - %1$d videomessaggi inoltrati - %1$d videomessaggi inoltrati - %1$d videomessaggi inoltrati - %1$d videomessaggi inoltrati - %1$d posizione inoltrate - Posizione inoltrata - %1$d posizione inoltrate - %1$d posizione inoltrate - %1$d posizione inoltrate - %1$d posizione inoltrate - %1$d contatti inoltrati - Contatto inoltrato - %1$d contatti inoltrati - %1$d contatti inoltrati - %1$d contatti inoltrati - %1$d contatti inoltrati - %1$d sticker inoltrati - Sticker inoltrato - %1$d sticker inoltrati - %1$d sticker inoltrati - %1$d sticker inoltrati - %1$d sticker inoltrati - %1$d sondaggi inoltrati - Sondaggio inoltrato - %1$d sondaggi inoltrati - %1$d sondaggi inoltrati - %1$d sondaggi inoltrati - %1$d sondaggi inoltrati - e altri %1$d - e %1$d altro - e altri %1$d - e altri %1$d - e altri %1$d - e altri %1$d - %1$d foto selezionate - %1$d foto selezionata - %1$d foto selezionate - %1$d foto selezionate - %1$d foto selezionate - %1$d foto selezionate - %1$d video selezionati - %1$d video selezionato - %1$d video selezionati - %1$d video selezionati - %1$d video selezionati - %1$d video selezionati - %1$d media selezionati - %1$d media selezionato - %1$d media selezionati - %1$d media selezionati - %1$d media selezionati - %1$d media selezionati - %1$d persone stanno usando questo tema - %1$d persona sta usando questo tema - %1$d persone stanno usando questo tema - %1$d persone stanno usando questo tema - %1$d persone stanno usando questo tema - %1$d persone stanno usando questo tema - Risultato %1$d di %2$d - Risultato %1$d di %2$d - Risultato %1$d di %2$d - Risultato %1$d di %2$d - Risultato %1$d di %2$d - Risultato %1$d di %2$d - %1$d utenti - %1$d utente - %1$d utenti - %1$d utenti - %1$d utenti - %1$d utenti - %1$d utenti - %1$d utente - %1$d utenti - %1$d utenti - %1$d utenti - %1$d utenti - %1$d di %2$d selezionati - %1$d di %2$d selezionato - %1$d di %2$d selezionati - %1$d di %2$d selezionati - %1$d di %2$d selezionati - %1$d di %2$d selezionati - Visualizza %1$d risposte - Visualizza %1$d risposta - Visualizza %1$d risposte - Visualizza %1$d risposte - Visualizza %1$d risposte - Visualizza %1$d risposte - %1$d risposte - %1$d risposta - %1$d risposte - %1$d risposte - %1$d risposte - %1$d risposte - %1$d commenti - %1$d commento - %1$d commenti - %1$d commenti - %1$d commenti - %1$d commenti - %1$d commenti - %1$d commento - %1$d commenti - %1$d commenti - %1$d commenti - %1$d commenti - commenti - commento - commenti - commenti - commenti - commenti - %1$d messaggi fissati - Messaggio fissato - %1$d messaggi fissati - %1$d messaggi fissati - %1$d messaggi fissati - %1$d messaggi fissati - %s persone possono unirsi con questo link - %s persona può unirsi con questo link - %s persone possono unirsi con questo link - %s persone possono unirsi con questo link - %s persone possono unirsi con questo link - %s persone possono unirsi con questo link - %1$d chat fissate - Chat fissata - %1$d chat fissate - %1$d chat fissate - %1$d chat fissate - %1$d chat fissate - %1$d chat tolte - Chat tolta - %1$d chat tolte - %1$d chat tolte - %1$d chat tolte - %1$d chat tolte - - Gruppo - Canale - Chat segreta - Inviato %s - Ricevuto %s - Programmato per le %s - Torna indietro - Apri menu di navigazione - Apri menu - Chiudi menu - Apri nel visualizzatore delle foto - %2$s di %1$s - Altre opzioni - Passa alla modalità notte - Passa alla modalità giorno - Play - Sospendi - Download - Annulla download - Apri file - Opzioni messaggio - Attiva modalità di selezione - Emoji, sticker, e GIF - Allega media - Invia silenziosamente - Invia notifiche - Comandi del bot - Tastiera del bot - Mostra tastiera - Registra un messaggio vocale - Registra videomessaggio - Apri chat - Foto del profilo - Cambia foto del profilo - Cambia ordine - Mostra account - Nascondi account - Vai al messaggio - Annulla risposta - Annulla inoltro - Annulla modifica - Rispondendo a - Inoltrando da - Modifica - Blocca applicazione - Sblocca applicazione - Backspace - Precedente - Ripeti, spento - Ripeti, playlist - Ripeti, una - Chiudi lettore musicale - Riproduzione a velocità doppia - Termina condivisione posizione in tempo reale - Fotocamera istantanea - Pulsante di scatto - Cambia fotocamera - Flash, No - Flash, Auto - Flash, Sì - Set di sticker - GIF - Sticker - Espandi pannello - Chiudi pannello - Opzioni utente - Ruota - Specchio - Editor foto - Aggiustamenti - Visualizzatore foto - Vai in fondo - Vai alla menzione successiva - Silenzia microfono - Titolo - Titolo - La mia posizione - Notifica quando le persone che condividono la posizione sono nelle vicinanze - Qualità video - Proporzioni - Scatta un\'altra foto - Visto - Non visto - Invio - Errore di invio - Non riprodotto - Risultato ricerca successivo - Risultato ricerca precedente - Filtra per utente - Scatta una foto - Registra un video - Scorri in basso per l’archivio - Rilascia per l’archivio - Dimensione minore - Qualità maggiore - %1$s di %2$s - Scaricato %1$s di %2$s - Caricato %1$s di %2$s - Visualizzato %1$d volta - Visualizzato %1$d volte - Visualizzato %1$d volte - Visualizzato %1$d volte - Visualizzato %1$d volte - Invia %1$d foto - Invia %1$d foto - Invia %1$d foto - Invia %1$d foto - Invia %1$d foto - Invia %1$d file - Invia %1$d file - Invia %1$d file - Invia %1$d file - Invia %1$d file - Invia %1$d file audio - Invia %1$d file audio - Invia %1$d file audio - Invia %1$d file audio - Invia %1$d file audio - Condividi in %1$d chat - Condividi in %1$d chat - Condividi in %1$d chat - Condividi in %1$d chat - Condividi in %1$d chat - Risposta corretta - Spiegazione - Modalità Picture-in-Picture - Il microfono è acceso - Il microfono è spento - Passato a videocamera frontale - Passato a videocamera posteriore - La videocamera è accesa - La videocamera è spenta - Elenco messaggi fissati - Passa a schermo intero - Esci dallo schermo intero + dd MMM, yyyy + dd MMM yyyy + dd MMMM + dd MMMM, yyyy MMMM yyyy dd MMM yyyy, h:mm a dd MMM yyyy, HH:mm @@ -4452,13 +1510,11 @@ dd MMM yyyy, HH:mm dd MMM, h:mm a dd MMM, HH:mm - LLLL yyyy - LLLL dd MMM dd.MM.yy dd.MM.yyyy d MMMM - d MMMM, yyyy + d MMMM yyyy EEE EEEE HH:mm @@ -4482,4 +1538,4 @@ \'Ricorda il\' d MMM \'alle\' HH:mm \'Ricorda il\' d MMM yyyy \'alle\' HH:mm Menu - + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/values-ko/strings.xml b/TMessagesProj/src/main/res/values-ko/strings.xml index 2318404bb8..b75a0b0a2a 100644 --- a/TMessagesProj/src/main/res/values-ko/strings.xml +++ b/TMessagesProj/src/main/res/values-ko/strings.xml @@ -1,15 +1,18 @@ - Telegram - Telegram Beta + 텔레그램 + 텔레그램 한국어 영어 한국어 ko - 한국어로 진행 + 한국어로 계속 전화번호 국가 번호를 확인하고 전화번호를 입력해 주세요. + 국가 + 내 전화번호 + 전화번호 국가를 선택하세요 올바른 국가번호를 입력하세요 이미 앱에 로그인된 계정입니다. @@ -20,1189 +23,99 @@ 이 기기에 있는 연락처가 계정에 추가됩니다. 기기에 있는 연락처를 계정과 계속 동기화하려면 켜 주세요. 기기에 있는 연락처가 계정에 추가되었습니다. + 올바른 번호인가요? + 올바르지 않은 포맷 + **%1$s**에 제공한 번호가 너무 짧습니다:\n\n**%2$s**\n\n국가코드를 포함한 올바른 번호를 입력해주세요. + 번호 변경 + 코드를 SMS 혹은 전화로 받지 못하였을 경우, **셀룰러 데이터 설정**과 전화번호를 확인해주세요:\n\n**%1$s**\n\n현재 남은 방법은 다른 번호로 시도하시거나 텔레그램 지원에 연락하는 것입니다. **도움말**을 탭하여 저희가 문제를 확인할 수 있도록 자세하게 기술적인 내용을 전달해주세요. + 도움말 + 번호 변경 휴대전화 인증 **%1$s** 번호로 인증 코드가 담긴 SMS를 보냈습니다. 회원님의 다른 기기에 설치된 **텔레그램** 앱으로 코드를 보냈습니다. + 회원님의 다른 기기에 %1$s에 대한 코드를 **텔레그램 앱**으로 전송했습니다. 텔레그램 메시지를 확인하세요 + **Fragment**의 Anonymous Numbers 섹션에서 **%1$s**의 코드를 받으세요. 코드를 입력하세요 + Fragment 열기 **%1$s** 번호로 인증 전화를 걸었습니다. \n\n전화를 받지 마세요. 텔레그램이 모든 것을 자동으로 처리합니다. - 코드를 말씀해 드리기 위해 **%1$s** 번호로 전화합니다. + 코드를 불러 드리기 위해 **%1$s** 번호로 전화합니다. %1$d:%2$02d 뒤에 텔레그램에서 전화합니다. %1$d:%2$02d 뒤에 SMS를 보냅니다 회원님에게 전화하는 중... SMS 전송중... 코드 전화번호가 잘못되었나요? + 올바르지 않은 코드입니다. 다시 시도해주세요. 코드를 받지 못하셨나요? - 코드를 SMS로 보내기 + 탭하여 SMS로 코드 받기 + Fragment로 코드 받기 계정 초기화 취소 **%1$s**에 접근이 가능한 누군가가 회원님의 텔레그램 계정삭제 및 2단계 인증 초기화를 요청했습니다.\n\n만약 이것을 요청 하신게 아니라면, 저희가 방금 보낸 SMS 코드를 입력해주세요. 또한 *전화번호를 변경을 하여* 취소를 할 수 있습니다. 계정 초기화 계정 **%1$s**이 비밀번호로 보호되어 있기에, 보안 목적으로 1주일 뒤에 이 계정을 삭제할 것입니다. 보안목적에 따라 지연기간을 두게 되었습니다.\n\n이 작업은 언제든지 취소하실 수 있습니다. 아래 시간이 지나야 계정을 초기화하실 수 있습니다: - 이 계정으로 활동하는 사용자가 계정 초기화를 취소했습니다. 7일 뒤 다시 시도해 주세요. - 초기화 + 이 계정을 사용 중인 사용자가 계정 초기화 시도를 취소했습니다. 7일 뒤에 다시 시도해 주세요. 링크가 폐기되거나 만료되었습니다. + 성공! %1$s 계정 탈퇴 작업이 취소되었습니다. 이제 이 창을 닫으셔도 좋습니다. 로그인 코드는 **%1$s**입니다. 로그인하고자 하는 텔레그램 앱에 입력하세요.\n\n아무에게도 이 코드를 주지 마세요. + 다음 이후에 SMS를 요청할 수 있습니다 %1$d:%2$02d + %1$d:%2$02d 이후에 새로운 SMS를 요청할 수 있습니다 + SMS로 코드받기 + 다음 이후에 음성 전화를 요청할 수 있습니다 %1$d:%2$02d + 코드를 불러주는 전화 받기 + 전화로 코드 받기 + 국가코드 + Google 계정으로 로그인 성명 이름을 입력하고 프로필 사진을 추가하세요. 이름 (필수) + 이름 성 (선택) + 가입 취소 - - 성공적으로 %2$s에 %1$s어치 %3$s에 대한 금액을 송금하셨습니다 - 성공적으로 %2$s에 %1$s 금액을 송금하셨습니다 - 체크아웃 - 배송 방법 - 죄송합니다. 회원님의 주소로는 배송해 드리기가 어렵습니다. - 배송 정보 - 배송주소 - 주소 1 - 주소 2 - 도시 - - 국가 - 우편번호 - 수신자 - 이름 - - 팁 (선택사항) - 전화번호 - 이메일 - 배송 정보 저장 - 나중에 이용할 수 있도록 배송 정보를 저장하실 수 있습니다. - 결제 정보 - 결제 카드 - 카드 번호 - 보안 코드 (CVV) - MM/YY - 청구 주소 - 성명 - 결제 정보 저장 - 나중에 이용할 수 있도록 결제 정보를 저장하실 수 있습니다. 해당 정보는 결제 제공자에게 바로 저장이 됩니다. 텔레그램은 회원님의 신용카드 정보에 접근을 할 수 없습니다. - 이 기능을 사용하려면 *2단계 인증을 활성화*해 주세요. - 거래내역 확인 - **%3$s**에 대하여 %2$s봇에게 **%1$s**만큼 전송하겠습니까? - 전체 - 인보이스 - 테스트 인보이스 - %1$s 결제 - 결제 방법 - 새로운 신용카드 - 결제 제공 업체 - 이름 - 전화번호 - 연락주소 - 배송방법 - 영수증 - 다른 카드 선택 - %1$s 카드가 파일에 보관되어 있습니다. 이 카드로 결제하려면 2단계 인증 비밀번호를 입력해 주세요. - 죄송합니다. 봇에 의해 결제가 취소되었습니다. - 죄송합니다. 결제가 거절되었습니다. - 결제 서버로 연결할 수 없습니다. 인터넷 연결을 확인하고 다시 시도해 주세요. - 경고 - 텔레그램이나 %1$s은(는) 회원님의 신용카드 정보에 접근할 수 없습니다. 신용카드 정보는 %2$s 결제 시스템에서만 처리됩니다.\n\n결제는 %1$s 개발자에게 직접 됩니다. 텔레그램은 그 어떠한 보장도 하지 않음으로 진행시 위험을 감수하셔야 합니다. 문제 발생 시, %1$s 개발자나 사용하시는 은행에게 문의해 주세요. - 비밀번호 및 이메일 - 비밀번호 - 비밀번호 입력 - 비밀번호를 다시 입력하세요 - 결제 정보를 보호하려면 비밀번호를 만들어 주세요. 로그인 할 때 입력하라는 메시지가 나타날 것입니다. - 복구 이메일 - 이메일 주소 - 정확한 이메일을 입력해 주세요. 잊어버린 비밀번호를 되찾으실 유일한 수단입니다. - 전화번호가 %1$s 님에게 결제 정보로서 전달됩니다. - 이메일이 %1$s 님에게 결제 정보로서 전달됩니다. - 전화번호와 이메일이 %1$s 님에게 청구서 정보로서 전달됩니다. - **%2$s**에 대해 **%1$s** 만큼 지불했습니다. - - 새로운 대화 - 자동 야간 모드가 꺼져 있습니다 - 설정 - 연락처 - 그룹 만들기 - 어제 - 결과 없음 - 텔레그램에 오신 것을 환영합니다 - 최근 방문 - 숨기기 - 오른쪽 밑에 있는 연필 버튼을\n가볍게 눌러 대화를 시작하세요. - 아래에 있는 연락처 하나를 탭하여 대화를 시작해보세요. - 연결 대기 중... - 연결 중... - 연결됨 - 핑: %1$d ms - 확인 중... - 사용 가능 - 사용 불가능 - 프록시에 연결 중 - 프록시 연결 - 갱신 중... - 비밀 대화 시작 - %s 님의 접속을 기다리고 있습니다... - 비밀 대화가 취소되었습니다 - 암호화 키 교환 중... - %s 님이 비밀 대화에 들어왔습니다. - 비밀 대화에 들어오셨습니다. - 대화 내용 비우기 - 내용 비우기 - 대화내용 비우기 - 자동삭제 활성화 - %1$s 이후 자동 삭제됨 - 이 대화에 메시지 자동삭제하기 - 자동삭제 메시지 - 새로 보낸 메시지가 나와 %1$s 에게 일정 시간 이후 자동으로 삭제됩니다. - 새로 보낸 메시지가 일정 시간 이후 그룹의 참가자에게 자동으로 삭제됩니다. - 새로 보낸 메시지가 일정 시간 이후 채널의 구독자에게 자동으로 삭제됩니다. - 확인 - 24시간 - 7일 - 이 대화에서 보낸 메시지가 일정 시간 이후에 자동으로 삭제됩니다. - 안 함 - 이 대화에 설정 - 이 대화에서 보낸 메시지가 %1$s 이후에 자동으로 삭제 됩니다. - 이 대화에 새로운 메시지는 자동으로 %1$s 이후에 삭제됩니다. - 자동 삭제가 해제되었습니다. - 자동삭제 타이머 설정 - 자동삭제 타이머 - 내용을 비웠습니다. - 알림 끄기 - 알림 켜기 - 대화방을 삭제했습니다 - 그룹을 삭제했습니다. - 채널을 삭제했습니다. - 보관함 고정함 - 보관함을 숨기려면 왼쪽으로 쓸어넘기세요. - 보관함 숨김 - 보관함을 보려면 쓸어내리세요. - 대화방 보관됨. - 대화방을 보관했습니다. - 왼쪽으로 밀어 보관을 숨기세요. - 되돌리기 - 캐시에서 삭제 - 삭제하고 나가기 - 숨기기 - 고정 - 고정 - 고정 해제 - 보관 - 보관함 - 보관 해제 - 보관한 대화방 - 대화방 삭제 - 탈퇴한 계정 - 대화방 선택 - 대화 선택 - 대화방 선택 - 비밀 사진 - 사라지는 동영상 - 비밀 GIF - %1$s님의 텔레그램 버전이 낮아 비밀 사진을 호환성 모드로 표시합니다.\n\n%2$s님이 텔레그램을 업데이트하고 나면, 자동삭제 시간이 1분 이하인 사진은 \"탭하고 누르고 있어야 보임\" 상태가 되며, 상대방이 화면을 캡처할 때 마다 알림을 받습니다. - 메시지 - 검색 - 알림 끄기 - %1$s 동안 끄기 - 알림 끄기 - %1$s 뒤 - 사용 안 함 - 해시태그 - 최근 - 사람들 - 추천 제거 - 정말 추천 목록에서 **%1$s**을(를) 제거하시겠습니까? - %1$s 님을 추천 목록에서 삭제할까요? - 링크 미리보기 - 임시 저장 - 대화 내용을 비웠습니다 - %1$s 작성 - %1$s, %2$s 작성 - 레이아웃이 잘못되었나요? - 스티커 보내기 - GIF 보내기 - 묶음 보기 - 맨 위에 고정 - 죄송합니다. 메인 목록 위쪽에는 %1$s개만 고정하실 수 있습니다. 대화방 폴더와 보관함에서는 더 많은 대화방이 고정됩니다. - 죄송합니다. 더 이상 위쪽에 대화방을 고정하실 수 없습니다. - 맨 위 고정 해제 - 읽지 않음으로 표시 - 읽음으로 표시 - 모두 읽음으로 표시 - 목록 위로 숨기기 - 목록에 고정 - 굵게 - 기울임꼴 - 고정폭 - 취소선 - 밑줄 - 일반 - 모든 기기에 걸쳐 친구들과 소통하려면 **텔레그램**의 연락처 접근을 허용해 주세요. 단단히 암호화된 텔레그램 서버로 회원님의 연락처가 지속적으로 동기화될 것입니다. - 지금 안 함 - 계속 - 텔레그램에 있는 회원님의 연락처 - 회원님의 보관함입니다 - 알림이 켜진 대화방은 새로운 메시지가 도착하면 보관이 해제됩니다. - 알림이 꺼진 대화방 - 알림이 꺼진 대화방은 새로운 메시지가 도착해도 계속 보관됩니다. - 고정된 대화방 - 보관한 대화방들은 개수 제한 없이 맨 위에 고정하실 수 있습니다. - 이 버튼을 길게 눌러 메시지를 예약하거나 메시지를 소리 없이 보내세요. - 새로운 대화방을 숨길까요? - 연락처 목록에 없는 사용자에게서 새로운 메시지를 많이 받고 계십니다. 해당 대화방에 **자동 알림 끄기**와 **보관**을 적용하시겠습니까? - 설정으로 이동 - 프로필 열기 - 채널 열기 - 그룹 열기 - 메시지 보내기 - 언급 - 알림 음소거 됨 - %1$s동안 알림 음소거 - 알림 활성화 됨 - 메시지 %1$d 개가 삭제가 되었습니다. - 메시지 %1$d 개가 삭제가 되었습니다. - 메시지 %1$d 개가 삭제가 되었습니다. - 메시지 %1$d 개가 삭제가 되었습니다. - 메시지 %1$d 개가 삭제가 되었습니다. - 메시지 %1$d 개가 삭제가 되었습니다. - 결과 없음 - 결과 없음 - 검색을 다시 해보세요. - 여기에 모든 대화방의 음악이 표시됩니다. - 여기에 모든 대화방의 파일이 표시됩니다. - 회원님의 모든 대화방에 있는 링크가 여기에 보입니다. - 여기에 모든 대화방의 음성 및 동영상 메시지가 표시됩니다 - 회원님의 모든 대화방에 있는 미디어가 여기에 보입니다. - 대화방 - 메시지가 고정되었습니다 - 메시지 고정이 해제되었습니다 - 연필을 탭하여 새로운 대화를 시작해보세요 - 그룹을 생성하여 대화 가져오기 - 대화 가져오기 - 가져오기 오류 - 올바르지 않은 파일 형식입니다. - 선택한 대화에 내역을 가져 올 수 없습니다. - 파일 언어를 알 수 없습니다. - 대화를 가져오려면 그룹의 관리자이어야 합니다. - 파일형식이 그룹용이기 때문에, 개인대화에 반영할 수 없습니다. - 파일형식이 개인대화용이기 때문에, 그룹에 반영할 수 없습니다. - 개인 정보 설정에 따라 대화를 가져 올 수 없습니다. - 가져오기 - **%1$s** 대화내역을 **%2$s**님의 대화로 가져오겠습니까?\n\n가져온 대화내역은 당일로 반영되지만, \n원본 시간도 같이 표시가 됩니다. 모두에게 대화내역이 표시됩니다. - 대화내역을 %1$s님의 대화로 가져오시겠습니까?\n\n가져온 대화내역은 당일로 반영되지만, 원본 시간도 같이 표시가 됩니다. 모두에게 대화내역이 표시됩니다. - **%1$s** 대화내역을 **%2$s** 그룹으로 가져오겠습니까?\n\n가져온 대화내역은 당일로 반영되지만, \n원본 시간도 같이 표시가 됩니다. 모두에게 대화내역이 표시됩니다. - 대화내역을 %1$s으로 대화로 가져오시겠습니까?\n\n가져온 대화내역은 당일로 반영되지만, 원본 시간도 같이 표시가 됩니다. 모두에게 대화내역이 표시됩니다. - 서로 연락처가 추가된 사용자의 개인 대화에만 메시지를 가져 올 수 있습니다. - 대화를 가져오려면 그룹의 관리자이어야 합니다. - 이 메시지는 다른 앱에서 가져왔습니다. 진위 여부는 알 수 없습니다. - 메시지 및 미디어 가져오는 중... **%d%%** - 대화 가져오는 중 - 가져오기가 끝날때까지\n창을 닫지 말아주세요. - %1$s / %2$s - 완료 - 성공적으로 대화를 가져왔습니다. - 텔레그램으로 더 많은 대화를 이전하여 기기의 저장 공간을 절약해보세요. - 메시지 및 미디어 가져오는 중... - 스티커 가져오는 중... - 다음으로 메시지 및 미디어 가져오기... - 혹은 연락처에 있는 분을 선택하기 + 프로필 정보 위젯 편집 - 가장 중요한 대화에 빠른 접근을 위해 바로가기를 표시합니다.\n\n아무도 선택을 하지 않았을 경우, 위젯에는 가장 연락한 연락처가 표시됩니다. - 선택한 대화의 가장 최근 메시지가 표시됩니다.\n\n특정 대화를 선택하지 않았을 경우, 위젯에 가장 최근의 대화가 표시 됩니다. - 경고: 위젯에 비밀번호는 **무시**됩니다. - 비밀번호가 홈화면에 추가된 위젯에는 **영향을 미치지 않습니다**. + 가장 중요한 대화방으로 빠르게 접근하기 위한 바로가기를 표시합니다.\n\n아무도 선택하지 않으셨다면, 연락이 가장 잦은 대화방들이 이 위젯에 표시됩니다. + 선택하신 대화방의 가장 최근 메시지를 표시합니다.\n\n대화방을 지정하지 않으셨다면, 가장 최근 대화방들이 이 위젯에 표시됩니다. + 경고: 위젯에 최근 메시지가 표시 되지만, 앱을 열고 답장을 하려면 암호를 입력해야 합니다. 대화 검색... 위젯 미리보기 - 탭을 하여 위젯 수정 - 탭을 하여 수정 + 탭하여 위젯 편집 + 탭하여 편집 대화 바로가기 계정이 로그아웃 됨 - - 관리자로 승격 - 관리자 권한 수정 - 추방된 사용자가 없습니다 - 그룹 삭제 - 그룹 나가기 - 그룹 삭제 - 그룹에 있는 메시지가 모두 사라집니다. - 그룹을 관리하는 데 도움을 줄 관리자를 추가하실 수 있습니다. 관리자를 제명하려면 길게 누르세요. - 잠깐! 그룹을 삭제하시면 모든 참가자가 추방되며 모든 메시지가 사라집니다. 그래도 그룹을 삭제할까요? - 참가자 모두에게 그룹을 삭제하시겠습니까? - 구독자 모두에게서 삭제 - 그룹 만들어짐 - un1 님이 나를 이 그룹에 추가했습니다 - 정말 그룹에서 나가시겠습니까? - 정말 **%1$s**에서 나가시겠습니까? - 죄송합니다. 이 사용자를 그룹에 추가하실 수 없습니다. - 죄송합니다. 그룹이 가득 찼습니다. - 죄송합니다. 채널에서 나간 사용자를 다시 추가하시려면 회원님이 사용자의 텔레그램 연락처에 저장되어 있어야 합니다.\n\n사용자가 추방된 사용자 목록에 있지 않는 한 채널의 초대 링크를 통해 언제든 들어올 수 있다는 점을 알아 두세요. - 죄송합니다, 그룹에 너무 많은 관리자가 있습니다. - 죄송합니다. 해당 사용자에게 너무 많은 공개 그룹과 채널이 있습니다. 먼저 기존 그룹이나 채널을 비공개로 돌리도록 요청해 주세요. - 죄송합니다. 해당 사용자가 위치 기반 그룹을 너무 많이 소유하고 있습니다. 먼저 기존 그룹 하나를 삭제하거나 소유권을 넘기도록 요청해 주세요. - 죄송합니다. 위치 기반 그룹을 너무 많이 만드셨습니다. 먼저 하나를 삭제해 주세요. - 죄송합니다. 이 그룹에는 봇이 너무 많습니다. - un1 님이 \"%1$s\"을(를) 고정했습니다 - un1 님이 메시지를 고정했습니다 - un1 님이 설문을 고정했습니다 - un1 님이 퀴즈를 고정했습니다 - un1 님이 사진을 고정했습니다 - un1 님이 동영상을 고정했습니다 - un1 님이 파일을 고정했습니다 - un1 님이 스티커를 고정했습니다 - un1 님이 음성 메시지를 고정했습니다 - un1 님이 동영상 메시지를 고정했습니다 - un1 님이 연락처를 고정했습니다 - un1 님이 %1$s을(를) 고정했습니다 - un1 님이 위치를 고정했습니다 - un1 님이 실시간 위치를 고정했습니다 - un1 님이 GIF를 고정했습니다 - un1 님이 오디오 파일을 고정했습니다 - 그룹이 슈퍼그룹으로 업그레이드되었습니다 - %1$s 그룹이 슈퍼그룹으로 업그레이드됐습니다 - 관리자가 그룹에서 추방시킨 사용자는 초대 링크를 통해 다시 들어올 수 없습니다. - 관리자가 채널에서 추방시킨 사용자는 초대 링크를 통해 다시 들어올 수 없습니다. - 채널 만들기 - 채널명 - 채널에 연락처를 추가하세요 - 영구 링크를 설정하시면, 다른 사람들이 회원님의 채널을 찾아 들어올 수 있습니다.\n\na부터 z 사이 글자, 0부터 9 사이 숫자와 밑줄을 사용하실 수 있습니다.\n최소 길이는 다섯 자입니다. - 공개 링크를 설정하시면, 다른 사람들이 회원님의 그룹을 찾아 들어올 수 있습니다.\n\na부터 z 사이 글자, 0부터 9 사이 숫자와 밑줄을 사용하실 수 있습니다.\n최소 길이는 다섯 자입니다. - 경고 - 링크 - 사람들이 위 링크를 따라 회원님의 채널에 들어올 수 있습니다. 링크는 언제든지 폐기하실 수 있습니다. - 사람들이 위 링크를 따라 그룹에 들어올 수 있습니다. 링크는 언제든지 폐기하실 수 있습니다. - 설명 (선택) - 안내 - 채널에 관해 안내해 주실 수 있습니다. - 몇 가지 그룹 설정을 바꾸셨습니다. 변경 사항을 적용할까요? - 몇 가지 채널 설정을 바꾸셨습니다. 변경 사항을 적용할까요? - 공개 채널 - 공개 그룹 - 위치 기반 그룹 - 공개 채널은 검색으로 찾을 수 있으며, 누구나 들어올 수 있습니다. - 공개 그룹은 검색으로 찾을 수 있고, 모두에게 대화 내용이 공개되며, 누구나 들어갈 수 있습니다. - 비공개 채널 - 비공개 그룹 - 비공개 채널에는 초대 링크로만 들어올 수 있습니다. - 비공개 그룹은 초대되거나 초대 링크가 있는 경우에만 들어갈 수 있습니다. - 공개 링크 - 초대 링크 - 참가자 추가 - 구독자 추가 - 채널 나가기 - 채널 나가기 - 설정 - 들어가기 - 알리기 - 조용히 알리기 - 채널이란 무엇인가요? - 채널은 무제한의 사람에게 내 메시지를 단번에 알릴 수 있는 일대다 방식의 도구입니다. - 채널 만들기 - 죄송합니다. 이미 사용되고 있는 이름입니다. - 올바르지 않은 이름입니다. - 채널명은 5자 이상이어야 합니다. - 이름은 32자를 넘길 수 없습니다. - 채널명은 숫자로 시작할 수 없습니다. - 그룹명은 5자 이상이어야 합니다. - 그룹명은 숫자로 시작 할 수 없습니다. - 이름 확인 중... - %1$s을(를) 사용하실 수 있습니다. - 참가자 - 그룹에 추가 - 채널에 추가 - 이 목록에서 삭제 - 구독자 - 추방된 사용자 - 권한 - 이 그룹의 참가자가 할 수 있는 일 - 예외 추가 - 예외 검색 - 추방된 사용자 - 연락처에 등록된 채널 구독자 - 연락처에 등록된 그룹 참가자 - 내 연락처 - - 나머지 참가자 - 나머지 구독자 - %1$s 명 들어옴 - 제한된 사용자 - 관리자 - 채널 삭제 - 채널 삭제 - 잠시만요! 이 채널을 삭제하시면 모든 구독자가 추방되며 메시지가 사라집니다. 무시하고 삭제할까요? - 채널에서 나가시겠습니까? - 정말 **%1$s** 채널에서 나가시겠습니까? - 채널에 있는 메시지가 모두 사라집니다. - 수정 - 링크를 정하세요 - 사람들이 이 채널을 검색하여 찾고 공유할 수 있도록 링크를 설정해 주세요.\n\n이를 꺼리신다면, 비공개 채널을 추천해 드립니다. - 채널이 만들어졌습니다 - 채널 사진이 바뀌었습니다 - 채널 동영상 변경됨 - 채널 사진이 제거되었습니다 - 채널명이 un2(으)로 바뀌었습니다 - 죄송하지만, 공개 링크가 너무 많습니다. 옛 그룹이나 채널의 링크를 폐기하거나 비공개로 생성해주세요. - 소유자 - 관리자 - 관리자 - 알림 끄기 - 알림 켜기 - 관리자 추가 - 사용자 추방 - 차단 해제 - 차단을 해제하려면 사용자를 길게 누르세요. - 링크로 초대 - 관리자 권한 회수 - 권한 수정 - 채널 관리자만 이 목록을 볼 수 있습니다. - 누구나 텔레그램을 설치했다면 위 링크를 따라 회원님의 채널에 들어올 수 있습니다. - 채널을 관리하는 데 도움을 줄 만한 관리자를 추가하실 수 있습니다. 관리자를 제명하려면 길게 누르세요. - \'%1$s\' 채널에 들어가시겠습니까? - 죄송합니다. 이 대화방에는 더 이상 접근하실 수 없습니다. - 죄송합니다. 관리자에게 차단되었기에 이 대화방에 접근하실 수 없습니다. - 안타깝지만, 공개 그룹에 참가하시는 것이 금지되었습니다. - 죄송합니다. 이 대화방에는 더 이상 접근하실 수 없습니다. - %1$s 님을 채널에 추가할까요? - 죄송합니다. 채널에서 나간 사용자를 다시 추가하시려면 회원님이 사용자의 텔레그램 연락처에 저장되어 있어야 합니다.\n\n사용자가 추방된 사용자 목록에 있지 않는 한 채널의 초대 링크를 통해 언제든 들어올 수 있다는 점을 알아 두세요. - 죄송합니다. 이 사용자를 채널에 추가하실 수 없습니다. - 죄송합니다, 채널에 너무 많은 관리자가 있습니다. - 죄송합니다. 이 채널에는 봇이 너무 많습니다. - 죄송합니다. 처음 200명까지만 채널에 추가하실 수 있습니다. 채널 링크로는 사람들을 무한정 들이실 수 있는 점 알아두세요. - 커뮤니티가 너무 많습니다 - 죄송합니다. 너무 많은 그룹과 채널에 들어가 계십니다. 몇 곳에서 나온 뒤 새로 만들어 주세요. - 죄송합니다. 너무 많은 그룹과 채널에 들어가 계십니다. 몇 곳에서 나온 뒤 새로 들어가 주세요. - un1 님이 나를 이 채널에 추가했습니다 - 채널에 들어오셨습니다 - 그룹에 들어오셨습니다 - 채널에서 추방 - 죄송합니다. 이 채널에 메시지를 보내실 수 없습니다. - %1$s 님이 나를 %2$s 채널에 초대했습니다 - %1$s 채널 사진이 업데이트되었습니다 - %1$s 채널에서 비디오가 업데이트되었습니다 - %1$s에서 메시지를 게시했습니다 - %1$s에서 사진을 게시했습니다 - %1$s 채널이 동영상을 게시했습니다 - %1$s 님이 연락처를 게시했습니다 %2$s - %1$s에서 %2$s 설문을 게시했습니다 - %1$s 님이 \"%2$s\" 퀴즈를 게시했습니다 - %1$s에서 위치를 게시했습니다 - %1$s에서 실시간 위치를 게시했습니다 - %1$s에서 파일을 게시했습니다 - %1$s에서 GIF를 게시했습니다 - %1$s에서 %2$s을 게시했습니다 - %1$s에서 사진첩을 게시했습니다 - %1$s에서 음성 메시지를 게시했습니다 - %1$s에서 동영상 메시지를 게시했습니다 - %1$s에서 오디오 파일을 게시했습니다 - %1$s에서 스티커를 게시했습니다 - %1$s에서 %2$s 스티커를 게시했습니다 - 참가자를 추가할 수 있는 사람 - 모든 참가자 - 관리자만 - 글을 게시하시면 참가자가 알림을 받습니다 - 참가자가 조용히 알림을 받습니다 - 메시지 서명 - 메시지에 게시한 관리자의 이름을 추가합니다. - 관리자 권한 - 맞춤 칭호 - 맞춤 제목이 모든 참가자에게 \'%1$s\' 대신 보입니다. - 이 관리자가 할 수 있는 일 - 채널 정보 수정 - 그룹 정보 수정 - 메시지 게시 - 다른 사람 메시지 수정 - 다른 사람의 메시지 삭제 - 메시지 삭제 - 새로운 관리자 추가 - 익명으로 남기 - 관리자 권한 회수 - 그룹 소유권 넘기기 - 채널 소유권 넘기기 - 보안 확인 사항 - 아래 경우에만 이 그룹을 **%1$s** 님에게 넘기실 수 있습니다: - 다음 경우에만 이 채널을 **%1$s** 님에게 넘기실 수 있습니다: - 현재까지 **7일** 넘게 **2단계 인증**을 켬. - **24시간** 전에 이 기기에 로그인함 - 나중에 다시 시도하세요. - 비밀번호 설정 - **총소유자** 권한을 **%1$s** 님에게서 **%2$s** 님에게로 넘깁니다. - 소유자 바꾸기 - **%1$s** 님이 이제 그룹의 소유자입니다. - **%1$s** 님이 이제 채널의 소유자입니다. - 사용자 차단 - 사용자 추가 - 링크로 사용자 초대 - 메시지 고정 - %1$s 님이 승격시킴 - 이 관리자의 권한을 수정하실 수 없습니다. - 이 권한을 수정하실 수 없습니다. - 이 권한은 공개 그룹에서 부여되지 않습니다. - %1$s 님이 추방함 - 사용자 권한 - 이 설정은 그룹 권한을 가진 참가자 모두에게서 꺼져 있습니다 - 이 사용자가 할 수 있는 일 - 메시지 읽기 - 메시지 보내기 - 미디어 보내기 - 설문 보내기 - 스티커 및 GIF 보내기 - 링크 보내기 - 대화방 정보 수정 - 메시지 고정 - 사용자 추가 - 읽기 금지 - 메시지 보내기 금지 - 미디어 금지 - 설문 금지 - 스티커 및 GIF 금지 - 링크 보내기 금지 - 정보 수정 금지 - 고정 금지 - 사용자 추가 금지 - 지속 기간 - 무기한 - 차단하고 그룹에서 추방 - 변경 사항을 적용할까요? - **%1$s**에서 사용자의 권한을 수정하셨습니다. 변경 사항을 적용할까요? - 맞춤 - 그룹 관리 - 채널 관리 - 그룹 관리 - 채널 관리 - 새로운 참가자에게 기존 대화 내용을 - 새 사진 설정하기 - 사진 및 동영상 설정하기 - 보임 - 새로운 참가자는 들어오기 전부터 있던 메시지를 볼 수 있습니다. - 숨김 - 새로운 참가자는 이전 메시지를 볼 수 없습니다. - 새로운 참가자는 100개 이전의 메시지를 볼 수 없습니다. - 채널 들어가기 - 그룹 들어가기 - 그룹 유형 - 채널 유형 - 그룹 유형 - 채널 유형 - 그룹 설정 - 채널 설정 - 비공개 - 공개 - 비공개 - 공개 - 링크 - 영구 링크를 추가하려면 누르세요 - 사진 선택 - 사진 및 비디오 선택 - 새로운 사진 설정하기 - 카메라 - 동영상 녹화 - 갤러리 - 갤러리 - 웹 검색 - 통계 - 봇에게 관리자 권한을 부여해야만 추가하실 수 있습니다. - 관리자만 채널에 봇을 추가할 수 있습니다. - 관리자 세우기 - %1$s 님을 제한하시면 이 사용자가 관리자에서 제명됩니다. - 토론 - 토론 보기 - 댓글을 위한 그룹 대화방을 추가하세요. - 연결된 채널 - 채널의 댓글들을 호스트할 그룹 대화방을 선택하세요. - 채널에 게시하시는 모든 것이 이 그룹으로 전달됩니다. - %1$s 대화방이 채널의 댓글을 호스트할 그룹으로 선택되었습니다. - 이 그룹은 %1$s의 토론 게시판으로 연결 되어 있습니다. - 이 채널에 새로 게시되는 메시지가 모두 그룹으로 전달됩니다. - 새로운 그룹 만들기 - 그룹 끊어내기 - 채널 끊어내기 - 끊어내기 - 그룹 잇기 - **%1$s** 그룹을 **%2$s** 전용 토론 게시판으로 삼으시겠습니까? - **%1$s** 그룹을 **%2$s** 전용 토론 게시판으로 삼으시겠습니까?\n\n이 그룹의 모든 참가자가 채널에 게시되는 메시지를 볼 수 있습니다. - **%1$s** 그룹을 **%2$s** 전용 토론 게시판으로 삼으시겠습니까?\n\n\n채널에서 온 누구나 이 그룹의 메시지를 볼 수 있습니다. - \"새로운 참가자에게 대화 기록\"이 보이기로 전환됩니다. - 정말 이 그룹에서 **%1$s** 채널을 끊어내시겠습니까? - 정말 이 채널에서 **%1$s** 그룹을 끊어내시겠습니까? - 토론 - 채널 - 저속 모드 - 끄기 - %1$d초 - %1$d분 - %1$d시간 - 각 참가자가 다음 메시지를 보내기 전까지 얼마나 기다려야 할지 정하세요. - 참가자는 메시지를 %1$s초에 하나씩만 보낼 수 있습니다. - 저속 모드가 켜져 있습니다. 한 번에 메시지를 하나 이상 보내실 수 없습니다. - 저속 모드가 켜져 있습니다. 항목을 더 선택하실 수 없습니다. - 죄송합니다. 이 글은 한 메시지로 치기에 너무 깁니다.\n\n저속 모드가 켜져 있습니다. 한 번에 메시지를 하나 이상 보내실 수 없습니다. - %1$s님이 관리자로 승격됨 - **%2$s** 에서 **%1$s** 님을 추방했습니다 - - 새로운 설문 - 새로운 퀴즈 - 설문 - 설문지 질문 - 질문을 작성하세요 - 답변 선택지 - 퀴즈 답 - 설문 결과 - 익명 투표 - 퀴즈 모드 - 먼저 선택지를 고르세요 - 줄이기 - 늘이기 - 죄송합니다. 공개 투표 설문은 채널로 전달하실 수 없습니다. - 죄송합니다, 영수증은 비밀대화로 전달 할 수 없습니다. - 죄송합니다. 설문을 비밀 대화로 전달하실 수 없습니다. - 죄송합니다, 게임은 비밀대화로 전송 할 수 없습니다. - 죄송합니다, 영수증은 비밀대화로 전송 할 수 없습니다. - 다중 선택 - 눌러서 올바른 답을 정하세요 - 설문이 퀴즈 모드일 때는 올바른 답이 하나만 있습니다. 사용자는 한 번 고른 답을 무를 수 없습니다. - 선택지를 추가합니다... - %1$s 추가하실 수 있습니다. - 추가하신 선택지 수가 최대입니다. - 익명 설문 - 정답이 아니에요! - 틀린 답을 고르셨습니다. - 참 잘했어요! - 올바른 답을 고르셨습니다. - 설문 - 퀴즈 - 투표 - 결과 보기 - 익명 퀴즈 - 설문 마감 - 설문을 마감할까요? - 지금 이 설문을 마감하시면, 더 이상 다른 사람이 투표할 수 없습니다. 이 작업은 되돌릴 수 없습니다. - 퀴즈 마감 - 퀴즈를 마감할까요? - 이 퀴즈를 마감하시면, 더 이상 다른 사람이 퀴즈에 답을 제출할 수 없습니다. 이 작업은 되돌릴 수 없습니다. - 설문 삭제 - 정말 이 설문을 삭제하시겠습니까? - 투표 취소 - 최종 결과 - 투표자 없음 - 답한 사람 없음 - %1$d명 투표함 - %1$d명 투표함 - %1$d명 투표함 - %1$d명 투표함 - %1$d명 투표함 - %1$d명 투표함 - 답변자 %1$d명 - 답변자 %1$d명 - 답변자 %1$d명 - 답변자 %1$d명 - 답변자 %1$d명 - 답변자 %1$d명 - 더 보기 (%1$d명) - 더 보기 (%1$d명) - 더 보기 (%1$d명) - 더 보기 (%1$d명) - 더 보기 (%1$d명) - 더 보기 (%1$d명) - 선택지를 %1$d개 더 - 선택지를 %1$d개 더 - 선택지를 %1$d개 더 - 선택지를 %1$d개 더 - 선택지를 %1$d개 더 - 선택지를 %1$d개 더 - 선택지 - - 최근 활동 - 모든 활동 - 선택한 활동 - 모든 관리자 - **활동 없음**\n\n지난 48시간 사이에\n그룹 참가자와 관리자의\n서비스 활동이 없었습니다. - **활동 없음**\n\n지난 48시간 사이에\n채널 관리자가 취한\n서비스 활동이 없습니다. - **검색하신 활동이 없습니다**\n\n검색어에 해당하는 최근 활동을 찾지 못했습니다. - \'**%1$s**\'에 관한 최근 활동을 찾지 못했습니다. - 최근 활동이란 무엇인가요? - 지난 48시간 사이에 이루어진 그룹의 참가자와 관리자의 주요 활동 기록입니다. - 지난 48시간 사이에 이루어진 채널 관리자의 모든 서비스 활동 기록입니다. - un1 님이 그룹명을 \"%1$s\"(으)로 바꿨습니다 - un1 님이 채널명을 \"%1$s\"(으)로 바꿨습니다 - un1 님이 그룹에서 나갔습니다 - un1 님이 채널에서 나갔습니다 - un1 님이 un2 님을 추가했습니다 - un1 님이 그룹에 들어왔습니다 - %1$s 님을 차단했습니다 - %1$s 님을 차단 해제했습니다 - un1 님이 채널에 들어왔습니다 - un1 님이 그룹 사진을 새로 설정했습니다 - un1 님이 채널 사진을 새로 설정했습니다 - un1 님이 새로운 그룹 영상을 설정했습니다 - un1 님이 새로운 채널 비디오를 설정했습니다 - un1 님이 그룹 사진을 제거했습니다 - un1 님이 채널 사진을 제거했습니다 - un1 님이 아래 메시지를 수정했습니다: - un1 님이 설명을 수정했습니다: - un1 님이 미디어를 수정했습니다: - un1 님이 미디어와 설명을 수정했습니다: - 원본 메시지 - 원본 설명 - 없음 - un1 님이 아래 메시지를 고정했습니다: - un1님이 메시지 고정을 해제했습니다 - un1 님이 설문을 마감했습니다: - un1 님이 퀴즈를 마감했습니다: - un1 님이 아래 메시지를 삭제했습니다: - un1 님이 그룹 위치를 \"%1$s\"(으)로 바꿨습니다 - un1 님이 그룹 위치를 제거했습니다 - %1$s 님에게 소유권을 넘겼습니다 - un1 님이 그룹 스티커 묶음을 변경했습니다 - un1 님이 그룹 스티커 묶음을 제거했습니다 - un1 님이 un2 그룹을 채널 전용 토론 그룹으로 삼았습니다 - un1 님이 un2 토론 그룹을 제거했습니다 - un1 님이un2에 이 그룹을 이었습니다 - un1 님이 un2(으)로부터 이 그룹을 끊어냈습니다 - un1 님이 그룹 링크를 바꿨습니다: - un1 님이 채널 링크를 바꿨습니다: - un1 님이 그룹 링크를 제거했습니다 - un1 님이 채널 링크를 제거했습니다 - 기존 링크 - un1 님이 그룹 설명을 바꿨습니다: - un1 님이 채널 안내를 수정했습니다: - 기존 안내 - un1 님이 새로운 참가자에게 기존 대화 내용이 보이도록 했습니다 - un1 님이 새로운 참가자에게 기존 대화 내용이 보이지 않도록 했습니다 - un1 님이 그룹 초대를 허용함 - un1 님이 그룹 초대 기능을 껐습니다 - un1 님이 서명 기능을 켰습니다 - un1 님이 서명 기능을 껐습니다 - %1$s 님의 권한을 수정했습니다\n\n지속 기간: %2$s - 기본 권한 수정 - 스티커 및 GIF 보내기 - 미디어 보내기 - 정보 수정 - 사용자 추가 - 메시지 고정 - 설문 보내기 - 메시지 보내기 - 링크 보내기 - 메시지 읽기 - %1$s 님의 권한을 수정했습니다 - %1$s 님을 승격했습니다 - 채널 정보 수정 - 그룹 정보 수정 - 메시지 게시 - 메시지 수정 - 메시지 삭제 - 관리자 추가 - 익명으로 유지 - 사용자 차단 - 음성 대화 관리 - 사용자 추가 - 제목: %1$s - 제목 - 메시지 고정 - 모든 활동 - 새로운 예외 - 관리자 권한 - 새로운 참가자 - 그룹 정보 - 채널 정보 - 메시지 삭제 - 메시지 수정 - 메시지 고정 - 나간 참가자 - 음성 대화 - 초대 링크 - un1 님이 저속 모드 타이머를 %1$s(으)로 맞췄습니다 - un1 님이 저속 모드를 껐습니다 - un1님이 음성 대화를 시작했습니다 - un1 님이 음성 대화를 종료했습니다 - un1 님이 un2 님을 음성 대화에서 음소거했습니다 - un1 님이 un2 님을 음성 대화에서 음소거 해제했습니다 - un1 님이 새로운 음성 대화 참가자에게 말하기를 허용했습니다 - un1 님이 새로운 음성 대화 참가자를 음소거했습니다 - - 새 단체 메시지 리스트 - 리스트 이름을 입력하세요 - 단체 메시지 리스트를 만들었습니다 - 받는 사람 추가 - 알릴 목록에서 제거 - - 오디오 파일이 없습니다 - 음악 라이브러리가 비었습니다 - 검색 결과가 없습니다 - 음악 라이브러리에 **%1$s** 같은 것이 없습니다. - **%1$s**에 해당하는 결과가 없습니다. - 음악 - 알 수 없는 아티스트 - 알 수 없는 제목 - 노래 반복 - 목록 반복 - 목록 셔플 - 역순 파일 선택 - 최근 파일 검색 %2$s 중 %1$s 남음 알 수 없는 오류 + 알 수 없는 에러: %s 접근 오류 - 파일 크기는 %1$s보다 작아야 합니다 - 스토리지가 마운트되지 않음 - USB 전송 활성 내부 저장 공간 외부 저장 공간 - 시스템 루트 SD 카드 폴더 최근 파일 파일 A-Z - 검색 결과가 없습니다 - 현재 디렉토리에 **%1$s** 같은 것이 없습니다. - 폴더가 비었습니다. 압축 없이 사진 보내기 음악 파일 보내기 앱 폴더 탐색 파일 시스템 탐색 외부 저장 공간 탐색 음악 검색 - - 그룹 스티커 - 내 스티커에서 선택 - 이 그룹에서 대화할 때 그룹 참가자 모두가 사용할 수 있는 스티커 묶음을 선택하실 수 있습니다. - 스티커 묶음 선택 - 스티커 묶음 - "@stickers 봇으로 회원님만의 스티커 묶음을 만드실 수 있습니다." - 스티커 묶음을 찾지 못했습니다 - 다시 시도하거나 아래 목록에서 고르세요 - - 숨김 - 지원 - 입력 중... - 님이 입력 중... - 님이 입력 중... - %1$s 님이 입력 중... - %1$s 님이 입력 중... - %1$s 님이 음성 메시지 녹음 중... - %1$s 님이 동영상 메시지 녹화 중... - %1$s 님이 녹음을 보내는 중... - %1$s 님이 사진 보내는 중... - 즉시 보기 - 그룹 보기 - 배경 보기 - 테마 보기 - 채널로 이동 - 메시지 보기 - 어두운 테마가 밤 시간에 자동으로 켜집니다 - 인용 - %1$s 님이 게임 플레이 중... - %1$s 님이 동영상을 보내는 중... - %1$s 님이 파일 보내는 중... - 음성 메시지 녹음 중... - 동영상 메시지 녹화 중... - 녹음 보내는 중... - 사진 보내는 중... - 게임 플레이 중... - 동영상 보내는 중... - 파일 보내는 중... - 텔레그램에 관해\n궁금한 점이 있으신가요? - 갤러리 - 위치 - 동영상 - 파일 - 카메라 - 메시지가 없습니다... - 예약한 메시지가 없습니다... - 전달된 메시지 - 보낸 사람: - %1$s 보냄 - "보낸 이: " - 최근 이모지 없음 - 메시지 - 메시지 - 메시지 예약 - 내 전화번호 공유 - 내 연락처 공유 - 연락처에 추가 - %s 님이 나를 비밀 대화에 초대했습니다. - %s 님을 비밀 대화에 초대하셨습니다. - 비밀 대화는 - 단대단 암호화를 사용합니다 - 서버에 어떤 흔적도 남기지 않습니다 - 자동 삭제 타이머가 있습니다 - 전달 기능이 허용되지 않습니다 - 그룹에서 추방되셨습니다 - 그룹에서 나오셨습니다 - 이 그룹 삭제 - 대화방 삭제 - 이 대화방 삭제 - 대화방 삭제 - 밀어서 취소 - 다운로드 폴더에 저장 - GIF에 저장 - 이 섹션에서 GIF를 삭제할까요? - 음악에 저장 - 공유 - 언어 파일 적용 - 테마 파일 적용 - 지원하지 않는 형식입니다 - 자동 삭제 타이머 맞추기 - 서비스 알림 - 링크 정보 가져오는 중... - 다음으로 열기... - 다른 앱으로 열기... - 보내기 %1$s - %1$s 업로드 - 파일로 보내기 - 파일로 보내기 - 링크 열기 - %1$s 링크를 여시겠습니까? - **%2$s** 님으로 %1$s에 로그인 - **%1$s**에서 나에게 메시지를 보내도록 허용합니다 - 보내기 취소 - %1$s이(가) 앞으로 여실 페이지로 회원님의 텔레그램 이름과 아이디(전화번호 아님)를 전달할 수 있도록 허락할까요? - 이 장소와 관련 없는 그룹인가요? - 관련 없는 그룹 신고 - 그룹이 이 장소와 관련 없는 경우 알려 주세요:\n\n**%1$s** - 그룹이 이 장소와 관련 없는 경우 알려 주세요. - 스팸 신고 - 스팸 신고 - %1$s 님 차단 - 사용자 차단 - 스팸 신고하고 나가기 - 연락처에 추가 - %1$s 님을 연락처에 추가하기 - 연락처 보기 - 텔레그램 메시지와 전화 수신에서 **%1$s** 님을 차단하시겠습니까? - **%1$s**님의 메시지를 차단하겠습니까? - 정말 이 사용자가 보낸 스팸을 신고하시겠습니까? - 정말 이 그룹의 스팸 메시지를 신고하시겠습니까? - 정말 이 채널에 게시된 스팸 메시지를 신고하시겠습니까? - 죄송합니다. 연락처를 교환한 상대에게만 메시지를 보내실 수 있습니다. - 죄송합니다. 연락처를 교환한 상대만 그룹에 초대하실 수 있습니다. - 죄송합니다. 현재 회원님은 공개 그룹에 게시하실 수 없습니다. - 더 알아보기 - 대화방 선택 - 설명을 적으세요... - 저장한 GIF 파일을 보려면 탭하세요. - 고정 - 모든 참가자에게 알리기 - %1$s에도 메시지 고정 - 고정 해제 - 메시지 고정 - 메시지 고정 해제 - 최근 메시지의 고정을 유지하면서, 기존 메시지를 고정하시겠습니까? - 그룹에 메시지를 고정하겠습니까? - 채널에 이 메시지를 고정하시겠습니까? - 이 메시지를 대화방 위쪽에 고정하시겠습니까? - 메시지를 고정 해제하시겠습니까? - 사용자 차단 - 스팸 신고 - %1$s 님의 메시지 모두 삭제 - 최근에 사용한 이모지를 비울까요 - 스마일리와 사람 - 동물과 자연 - 음식과 음료 - 활동 - 여행과 장소 - 사물 - 특수문자 - 깃발 - 메시지 선택 - 메시지 신고 - %1$s 신고 - 신고 - 신고가 접수되었습니다 - 스팸 신고 - 사칭 신고 - 음란물 신고 - 아동학대 신고 - 폭력성 신고 - 신고와 관련된 추가 정보를 입력해주세요. - 추가 정보... - 신고하기 - 텔레그램 모더레이터가 신고내역을 확인할 것입니다. 감사합니다! - 스팸 - 가짜 계정 - 폭력성 - 음란물 - 아동 학대 - 기타 - 안내 - 고정된 메시지 - 이전 메시지 - 고정된 설문 - 수정됨 - 메시지 수정 - 설명 수정 - 미디어를 수정하려면 누르세요 - 사진 편집하기 - 비디오 편집하기 - 사진 교체하기 - 비디오 교체하기 - 미디어 교체하기 - 파일 교체하기 - 오디오 파일 교체하기 - 봇을 보려면 끌어 올리세요 - %1$s - 죄송합니다. 수정 시간이 만료되었습니다. - 홈 화면에 추가 - 참가자 검색 - 저장하려면 여기로 전달해 두세요 - 저장한 메시지 - 저장하려면 여기로 전달하세요 - - **그룹**을 만드셨습니다. - 그룹은 - 200,000명까지 참가할 수 있습니다 - 대화 내용이 보존됩니다 - 공개 링크를 t.me/제목으로 둘 수 있습니다 - 여러 권한의 관리자를 세울 수 있습니다 - 여기로 메시지를 전달해 저장하세요 - 미디어와 파일을 보내어 저장하세요 - 어느 기기에서나 이 대화방에 드나드세요. - 검색을 활용해 필요한 것을 빠르게 찾으세요 - 클라우드 저장 공간 - 날짜로 이동 - %1$s 님에게서 삭제 - 모든 참가자에게서 삭제 - 텍스트를 클립보드에 복사했습니다 - 음성 녹음을 하려면 꾹 눌러주세요. - 꾹 눌러 녹음하세요. 살짝 눌러 동영상으로 바꾸세요. - 꾹 눌러 녹화하세요. 살짝 눌러 음성으로 바꾸세요. - 음성 메시지 삭제 - 정말 녹음을 멈추고 음성 메시지를 삭제하시겠습니까? - 동영상 메시지 삭제 - 정말 녹화를 멈추고 동영상 메시지를 삭제하시겠습니까? - 삭제 - 그룹 관리자의 제한으로 여기에 미디어를 %1$s까지 보내실 수 없습니다 - 그룹 관리자의 제한으로 여기에 인라인 콘텐츠를 %1$s까지 보내실 수 없습니다 - 그룹 관리자의 제한으로 여기에 스티커를 %1$s까지 보내실 수 없습니다 - 그룹 관리자의 제한으로 여기에 GIF를 %1$s까지 보내실 수 없습니다 - 그룹 관리자의 제한으로 메시지를 %1$s까지 작성하실 수 없습니다 - 그룹 관리자의 제한으로 여기에 미디어를 보내실 수 없습니다. - 그룹 관리자의 제한으로 여기에 인라인 콘텐츠를 보내실 수 없습니다 - 그룹 관리자의 제한으로 스티커를 보내실 수 없습니다. - 그룹 관리자의 제한으로 GIF를 보내실 수 없습니다. - 그룹 관리자의 제한으로 메시지를 작성하실 수 없습니다. - 이 그룹에서는 미디어를 보내실 수 없습니다. - 그룹에서 인라인 봇을 금지합니다. - 그룹에서 스티커를 금지합니다. - 본 그룹에는 GIF가 허용되지 않습니다. - 이 그룹에서는 메시지를 작성하실 수 없습니다. - 관리자 - 이 앱에서는 APK 설치가 제한됩니다. 시스템 설정에서 이를 허용하실 수 있습니다. - 읽지 않은 메시지 - 스티커 묶음 검색 - 인기 스티커 검색 - 이모지 검색 - URL - 지도 미리보기 제공 기관 - 지도 미리보기 제공 기관 - 텔레그램 - Google - Yandex - 미리보기 없음 - Google 지도를 설치할까요? - 신용 사기 - 가짜 - "다음을 통해 보냄: " - 메시지가 존재하지 않습니다 - 저속 모드가 켜져 있습니다. %1$s 뒤에 다음 메시지를 보내실 수 있습니다. - 사진은 짧게, 동영상은 길게 누르세요 - 목록으로 보려면 누르세요. - 소리 없이 보내기 - 새로운 사진으로 보내기 - 사진 교체 - 지금 보내기 - 시간 조정하기 - 오늘 - 예약 - 메시지 예약 - 예약한 메시지 - %1$s 님이 온라인일 때 보냄 - 알림 - 알림 설정하기 - %1$s 자로 예약되었습니다 - 온라인 될 때까지 예약되었습니다 - 죄송합니다. 메시지를 100개 이상 예약할 수 없습니다. - 이 작업은 메시지가 공개된 뒤에 시행하실 수 있습니다. - 투표는 메시지가 공개된 뒤에 이용할 수 있습니다. - 설문 결과는 메시지가 게시된 뒤에 열람하실 수 있습니다. - 📅 알림 - 1건의 결과 - 압축 설정을 바꾸기엔 동영상 품질이 너무 낮습니다. - 카드 번호가 클립보드에 복사되었습니다 - 복사 - 대화방에 **:dice:**를 보내어 주사위를 굴리세요. - **:darts:** 이모지를 보내어 운수를 시험해 보세요. - %1$s 이모지를 보내어 운수를 시험해 보세요. - 보내기 - 코로나19 - 공공발표 - 이 메시지는 세계적 유행 중인 코로나19 감염 질환에 관한 공공 서비스 발표를 제공드립니다. 아래 링크에서 이 계획에 대해 더 알아보세요.\nhttps://telegram.org/blog/coronavirus - 공공서비스발표 정보 테스트 - 코로나바이러스감염증-19 알림 - 이 메시지는 세계적 유행 중인 코로나19 감염 질환에 관한 공공 서비스 발표를 제공드립니다. 아래 링크에서 이 계획에 대해 더 알아보세요.\nhttps://telegram.org/blog/coronavirus - 중요 알림 - 중요한 알림입니다. - 대화방 가리기 - 정말 이 대화방을 가리시겠습니까? - 가리기 - 메시지를 보내거나 아래의 인삿말을 눌러 회원님이 대화할 준비가 되었음을 보여 주세요. - 메시지를 보내거나 탭을 하여 아래의 인사를 보내보세요. - %1$s 님이 %2$s 밖에 있음 - %1$s님이 %2$s에 있음 - 대화방을 메인 목록으로 옮겼습니다. - d - s - m - h - w - 개인 메시지 및 그룹 - 봇 권한 넘기기 - 선택한 사용자에게 봇에 대한 **모든 소유** 권한을 넘기게 됩니다. - 소유자 변경 - 다음 조건이 부합할 경우 봇 권한을 넘길 수 있습니다: - 댓글 남기기 - 댓글 - 댓글 - 답변 - 아직 댓글이 없습니다... - 아직 답변이 없습니다... - 대화방에서 보기 - 익명으로 보내기 - 토론이 시작되었습니다 - 스레드 보기 - 날짜 선택 - 이 대화방에서 채널 속 회원님의 댓글에 남겨진 답변들을 모아 보실 수 있습니다. - 죄송합니다. 이 게시물은 토론 그룹에서 제거되었습니다. - 모든 메시지 고정해제 - 고정된 메시지 숨기기 - 고정된 메시지 숨김 - 새로운 메시지가 고정되었을 때 고정된 메시지가 다시 보입니다. - 가져온 시간 - 파일이 너무 커서 가져올 수 없습니다. - 파일 업로드에 실패했습니다. - 음성이 정상 속도로 재생됩니다. - 음성이 두배로 빨리 재생됩니다. - 클립보드에 메시지를 복사했습니다. - 전송됨 - 읽음 - **저장한 메시지**로 초대 링크를 보냈습니다. - **%1$s** (으)로 초대링크를 보냈습니다. - **%1$s** (으)로 초대링크를 보냈습니다. - **%1$s**으로 초대링크를 보냈습니다. - **저장한 메시지**로 메시지를 전달했습니다. - **저장한 메시지**로 메시지를 전달했습니다. - **%1$s**에 메시지를 전달했습니다. - **%1$s**에 메시지를 전달했습니다. - **%1$s**에 메시지를 전달했습니다. - **%1$s**에 메시지를 전달했습니다. - **%1$s**에 메시지를 전달했습니다. - **%1$s**에 메시지를 전달했습니다. - **저장한 메시지**로 배경이 공유됨 - **%1$s**(으)로 배경이 공유됨 - **%1$s**(으)로 배경이 공유됨 - **%1$s**(으)로 배경이 공유됨 + %1$s님이 텔레그램 프리미엄 %2$s의 선물 코드를 보냈습니다. + %1$s님이 %2$sx %3$sm 프리미엄 구독권을 경품으로 보냈습니다. + %1$s님이 %2$sx %3$sm 프리미엄 구독권 경품을 게시했습니다. + %1$s님이 %2$s그룹으로 %3$sx %4$sm 프리미엄 구독권을 경품으로 보냈습니다. + %1$s님이 경품을 고정했습니다 + 내 %2$s 경품에 %1$s님이 반응했습니다. + 그룹에서 %1$s님이 내 %2$s 경품에 %3$s 반응을 했습니다. %1$s 님이 자동 삭제 타이머를 %2$s(으)로 맞췄습니다 자동 삭제 타이머를 %1$s(으)로 맞추셨습니다 %1$s 님이 자동 삭제 타이머를 껐습니다 @@ -1253,15 +166,21 @@ %1$s님이 %2$s 그룹에 오디오 파일을 보냈습니다 %1$s 님이 %2$s 그룹에 스티커를 보냈습니다 %1$s님이 %2$s 그룹에 %3$s 스티커를 보냈습니다 + %1$s에 대해 %2$s만큼 청구됨 + %1$d ⭐️ media + %2$s sent you a paid post for %1$d stars + %2$s posted a paid post for %1$d stars + %2$s pinned a paid post for %1$d stars + %2$s posted a paid post in %3$s group for %1$d stars %1$s님이 %2$s 그룹에 초대했습니다 %1$s 님이 %2$s 그룹명을 바꿨습니다 %1$s 님이 %2$s 그룹 사진을 바꿨습니다 - %2$s 의 그룹 비디오를 %1$s 님이 변경했습니다 + %2$s 의 그룹 사진을 %1$s 님이 변경했습니다 %1$s 님이 %3$s 님을 %2$s 그룹에 초대했습니다 - %2$s 에서 %1$s 님이 %3$s 님을 음성 대화에 초대했습니다. - %1$s 님이 나를 %2$s의 음성 대화에 초대했습니다 - %2$s 에서 %1$s 님이 음성 대화를 시작했습니다 - %2$s 에서 %1$s님이 음성 대화를 종료했습니다 + %2$s 에서 %1$s 님이 %3$s 님을 영상 대화에 초대했습니다. + %1$s 님이 나를 %2$s의 영상 대화에 초대했습니다 + %2$s 에서 %1$s 님이 영상 대화를 시작했습니다 + %2$s 에서 %1$s님이 영상 대화를 종료했습니다 %1$s 님이 %2$s 그룹에 돌아왔습니다 %1$s 님이 %2$s 그룹에 들어왔습니다 %1$s 님이 %3$s 님을 %2$s 그룹에서 추방했습니다 @@ -1279,9 +198,8 @@ 사용자 새로운 메시지 답장 - %1$s 그룹에 답장 - %1$s 님에게 답장 - 백그라운드 데이터가 제한되었습니다. + 답장 + 답장 %2$s %1$s %1$s 님이 %3$s 그룹에 \"%2$s\"을(를) 고정했습니다 %1$s 님이 %2$s 그룹에 메시지를 고정했습니다 @@ -1343,8 +261,6 @@ 텔레그램 연락처 선택 - 연락처 선택 - 연락처 공유 연락처 공유 연락처 추가 연락처 없음 @@ -1362,6 +278,8 @@ 친구 초대 연락처 검색 전체 검색 + 더 보기 + 간략히 최근에 접속함 일주일 이내 마지막으로 접속함 한 달 이내 마지막으로 접속함 @@ -1381,393 +299,32 @@ 주위에 대화할 사람들을 찾아보세요 아이디를 통해 사람들을 찾아보세요 새로운 연락처 - " 연락처에 **%1$s** 번호가 없습니다. 추가를 하시겠습니까?" + 연락처에 **%1$s** 전화번호가 없습니다. 추가하시겠습니까? 연락처 추가 - - 사람들을 추가하세요... - 그룹을 만들고 나서 참가자를 더 추가하실 수 있습니다. - 그룹이 한계치인 **200,000** 참가자에 도달했습니다.\n\n관리자만 메시지를 보낼 수 있는 **브로드캐스트 그룹** 으로 변경할 경우 이 제한을 해제할 수 있습니다. 관심있으신가요? - 한계 도달 - 더 자세히 - 브로드캐스트 그룹 - 브로드캐스트 그룹으로 전환 - 브로드캐스트 그룹은 200,000 이상 참가 가능하지만, 관리자만 메시지를 보낼 수 있습니다. - 이 그룹에는 관리자만 메시지를 보낼 수 있습니다. - 이제 그룹에 참가자가 200,000 보다 더 많아 질 수 있습니다. - 그룹명 입력 - 그룹명 - 최대 %1$s - 죄송합니다. 이 그룹은 이미 가득 찼습니다. - 죄송하지만, 대화방이 없어진 모양입니다. - 비공개 채널입니다. 대화 내용을 이어 보려면 채널에 들어가 주세요. - 이 그룹은 비공개입니다. 계속 내용을 보려면 입장해주세요. - 채널 들어가기 - 그룹 들어가기 - 들어가기 - 링크를 클립보드에 복사했습니다 - 링크가 클립보드에 복사되었습니다.\n이 링크는 이 대화방의 참가자에게만 작동합니다. - 이 링크는 이 대화방의 참가자에게만 작동합니다. - 안타깝게도 이 메시지에 접근하실 수 없습니다. 회원님은 메시지가 게시된 대화방의 참가자가 아닙니다. - 전화번호를 클립보드에 복사했습니다 - 이메일을 클립보드에 복사했습니다 - 링크로 그룹에 초대하기 - 초대 링크 - 초대 링크 - 정말 이 초대 링크를 폐기할까요? 폐기하면 누구도 이 링크로 들어올 수 없습니다. - 이전 초대 링크는 이제 비활성화되었습니다. 새 초대 링크가 만들어졌습니다. - 폐기 - 링크 폐기 - 정말 **%1$s** 링크를 폐기하시겠습니까?\n\n\"**%2$s**\" 그룹은 비공개가 됩니다. - **%1$s** 링크를 폐지하시겠습니까?\n\n \"**%2$s**\" 채널이 비공개로 바뀔 것입니다. - 링크 복사 - 링크 공유 - 누구나 텔레그램을 설치했다면 위 링크를 따라 그룹에 들어올 수 있습니다. - 사람을 검색하세요... - 사용자나 그룹을 검색하세요... - 브로드캐스트 그룹 - 인원에 대한 제한이 없습니다. - 관리자만 메시지 전송이 가능합니다. - 일반 그룹으로 다시 돌릴 수 없게 됩니다. - 브로드캐스트 그룹으로 전환 - 일반 그룹으로 유지 - 정말 진행할까요? - 그룹의 일반 참가자(비관리자)들은 **더 이상** 그룹에 메시지를 보낼 수 없게 됩니다.\n\n이 작업은 취소가 **불가능합니다**. - 전환 - 마음이 바뀌셨다면, 그룹 설정 > 권한으로 이동해주세요. - - 참가자 - 공유한 미디어 - 설정 - 구독자 추가 - 참가자 추가 - 관리자 추가 - 그룹에서 차단 - 그룹 삭제하고 나가기 - 그룹 삭제 및 나가기 - 알림 - 권한 수정 - 그룹에서 추방 - 슈퍼그룹으로 업그레이드 - 슈퍼그룹으로 변환 - 슈퍼그룹으로 변환 - 경고 - 이 작업은 되돌릴 수 없습니다. 슈퍼그룹에서 일반 그룹으로는 내리실 수 없습니다. - **참가자 수 한계에 다다랐습니다.**\n\n더 많은 참가자를 추가하고 추가 기능을 사용하려면, 슈퍼그룹으로 업그레이드하세요.\n\n• 슈퍼그룹은 %1$s명까지 수용할 수 있습니다\n• 새로운 참가자가 대화 기록 전체를 볼 수 있습니다\n• 메시지 삭제시 모두에게 삭제됩니다\n• 관리자는 그룹에 설명을 추가 할 수 있습니다\n• 생성자가 그룹에 공개 링크를 설정 할 수 있습니다 - **슈퍼그룹에서는**\n\n• 새로운 참가자가 대화 내용 전체를 볼 수 있습니다\n• 한 사람이 메시지를 삭제하면 모두에게서도 사라집니다\n• 생성자가 그룹에 공개 링크를 둘 수 있습니다 - **주의:** 이 작업은 되돌릴 수 없습니다. - - 연락처 공유 - 연락처에 추가 - 연락처 추가 - 텔레그램으로 초대하기 - %1$s 님은 아직 텔레그램에 가입하지 않았습니다. 초대하시겠습니까? - 초대 - 차단 - 차단 및 답글 삭제 - 사용자 차단 - 사용자 차단 - 사용자 차단 - 텔레그램 메시지와 전화 수신에서 **%1$s** 님을 차단하시겠습니까? - 텔레그램 메시지와 전화 수신에서 **%1$s** 님을 차단하시겠습니까? - 사용자가 차단되었습니다 - 사용자가 차단 해제되었습니다 - 연락처 수정 - 연락처 삭제 - - 휴대전화 - 직장 - 기타 - - 직장 - 생일 - 제목 - 새 연락처 등록 - 새로운 연락처 - 기존 연락처에 추가 - 자기소개 - 본인에 대해 몇 마디 적어 보세요 - 없음 - 자신에 대한 짤막한 소개를 적으실 수 있습니다. 누구나 회원님의 프로필을 열면 이 소개를 보게 됩니다. - 비밀 대화 시작 - 공통 그룹 - 공통 그룹 - 공통 그룹이 없습니다 - 오류가 발생했습니다. - 암호화 키 - 자동 삭제 타이머 - 타이머를 맞추시면, 사진이 열람된 뒤에 자동으로 삭제됩니다. - 타이머를 맞추시면, 동영상이 열람된 뒤에 자동으로 삭제됩니다. - - 이 이미지와 문자는 **%1$s** 님과의 비밀 대화에 사용된 암호화 키에서 파생되었습니다.\n\n이 이미지와 문자가 **%2$s** 님의 기기에서 똑같이 보인다면, 단대단 암호화가 보장됩니다.\n\ntelegram.org에서 자세히 알아보세요. - https://telegram.org/faq/ko#1498786448 - 알 수 없음 - 알 수 없음 - 전화번호 숨김 - 전화번호는 %1$s 님이 회원님을 연락처에 추가하는 즉시 보입니다. - **완료**를 누르시면, 회원님의 전화번호가 %1$s 님에게 보입니다. - %1$s 님과 내 전화번호 공유 - %1$s 님이 연락처 목록에 등록되었습니다. - 정보 - 전화번호 - 공유하는 콘텐츠 - 사진과 동영상 - 링크 - 오디오 파일 - 메시지 보내기 - 신고 - 초대링크 %1$d개 - 초대링크 %1$d개 - 초대링크 %1$d개 - 초대링크 %1$d개 - 초대링크 %1$d개 - 초대링크 %1$d개 - 클립보드에 사용자명 복사됨 - 클립보드에 해시태그 복사됨 - 클립보드에 자기소개 복사됨 - %s 님이 연락처에서 삭제되었습니다 - - 사용자명 - 사용자명 - 죄송합니다. 이미 사용되고 있는 사용자명입니다. - 올바른 사용자명을 입력하세요. - 사용자명은 5자 이상이어야 합니다. - 사용자명은 32자를 넘길 수 없습니다. - 사용자명은 숫자로 시작할 수 없습니다. - **텔레그램** 사용자명을 정하실 수 있습니다. 회원님의 전화번호를 모르는 사람도 이 사용자명으로 회원님을 찾아 연락할 수 있습니다.\n\n**a부터 z 사이 글자**, **0부터 9 사이 숫자**와 밑줄을 사용하실 수 있습니다. 최소 길이는 **다섯** 자입니다. - 아래 링크로 회원님과의 대화방이 열립니다:\n%1$s - 사용자명을 확인하고 있습니다... - %1$s: 사용하실 수 있습니다. - 없음 - 오류가 발생했습니다. - - 스티커 및 마스크 - 움직이는 스티커 반복 재생 - 움직이는 스티커가 대화 중 계속 재생됩니다. - 움직이는 스티커 - 스티커 추가 - %1$s 추가 - %1$s 제거 - 마스크 추가 - 스티커에 추가 - 즐겨찾기에 추가 - 스티커가 즐겨찾기에 추가되었습니다 - 스티커가 즐겨찾기에서 제거되었습니다 - 스티커가 최근 목록에서 제거되었습니다 - 최근 사용 - 즐겨찾기 - 그룹 스티커 - 스티커 더 보기 - 즐겨찾기에서 삭제 - 최근 목록에서 삭제 - 마스크에 추가 - 스티커를 찾지 못했습니다 - 스티커가 제거되었습니다 - %1$s은(는) 더 이상 스티커함에 없습니다. - 마스크가 제거되었습니다 - %1$s은(는) 더 이상 마스크함에 없습니다. - 스티커 보관됨. - %1$s이(가) 보관함으로 이동되었습니다. - 마스크 보관됨. - %1$s이(가) 보관함으로 이동되었습니다. - 새로운 스티커가 추가되었습니다 - %1$s이(가) 스티커함에 추가되었습니다. - 새로운 마스크 추가 - %1$s이(가) 마스크함에 추가되었습니다. - 보관 - 공유 - 링크 복사 - 재정렬 - 삭제 - 스티커를 움직여 재정렬하세요. - 스티커가 없습니다 - 스티커를 찾지 못했습니다 - GIF를 찾지 못했습니다 - 이모지 없음 - 마스크 없음 - 이모지 추천 - **텔레그램**에서 회원님이 이모지를 손쉽게 찾으실 수 있도록 수천 개의 키워드를 지원해 드리지만, 누락된 키워드들이란 있기 마련입니다. 새로운 이모지 대치어를 제안하고 싶다면, 다음 사이트에서 도움을 주세요: - https://translations.telegram.org/%1$s/emoji - 마스크 - 보내고자 하는 사진에 마스크를 추가하실 수 있습니다. 사진을 보내기 전에 사진 편집기를 열어 보세요. - 인기 스티커 - 인기 GIF - 이모지에 맞춰 스티커 추천 - 모든 스티커 - 내 스티커 - 사용 안 함 - 이 스티커들이 텔레그램에서 한창 인기를 끌고 있습니다. @sticker 봇으로 맞춤 스티커를 추가하실 수 있습니다. - 아티스트분들은 언제든지 @stickers 봇으로 손수 제작한 스티커 묶음을 추가할 수 있습니다. - 보관된 스티커 - 보관된 마스크 - 보관된 스티커가 없습니다 - 보관된 마스크 없음 - 사용 가능한 스티커 묶음을 200개까지 추가하실 수 있습니다. \n사용하지 않은 스티커는 새로운 묶음을 추가하실 때 보관됩니다. - 마스크 묶음을 200개까지 보유하실 수 있습니다. 사용하지 않은 마스크는 새로운 묶음을 추가하실 때 보관됩니다. - 스티커 보내기 - 보관된 스티커 - 몇몇 오래된 스티커 묶음이 보관되었습니다. 스티커 설정에서 다시 활성화하실 수 있습니다. - 보관된 마스크 - 몇몇 오래된 마스크가 보관되었습니다. 마스크 설정에서 다시 활성화하실 수 있습니다. - %1$s 삭제 - 정말 선택된 스티커 묶음을 삭제하시겠습니까? - %1$s 보관 - 정말 선택된 스티커 묶음을 보관하시겠습니까? - %1$s개 가져오기 - 스티커 처리 중… - 가져오기에서 제외 - 불러오기에서 제거 - 이름 입력 - 묶음 이름을 선택해주세요. - a-z, 0-9 그리고 밑줄을 사용할 수 있습니다. - 죄송하지만, 이 링크는 올바르지 않습니다. - 링크는 5자 이상이어야 합니다. - 링크는 32자를 넘길 수 없습니다. - 링크 확인 중... - 사용할 수 있는 링크입니다. - 죄송하지만, 이 링크는 이미 사용중입니다. - 스티커 가져오는 중 - 성공적으로 스티커를 가져왔습니다! - 텔레그램에 더 많은 스티커를 가져와 친구들과 공유해보세요. - - 테마 - 자동 야간 모드 - 끄기 - 끄기 - 예약 - 조정 - 예약 - 시스템 기본값 - 지역 일몰 및 일출 시간 사용 - 위치 갱신 - 일몰 및 일출 시간을 계산하려면 회원님의 대략적인 위치를 한 번 확인해야 합니다. 이 위치는 회원님의 기기에만 로컬로 보관됩니다.\n\n일몰: %1$s\n일출: %2$s - 시작 - 종료 - 선호하는 테마 - 밝기 경계 - 주변 밝기가 %1$d%% 아래일 때 선호하시는 야간 테마로 전환합니다. - 다크 - 검푸른색 - - - 북극 - 고전 - 테마 삭제 - 이 테마를 삭제하시겠습니까? - 올바르지 않은 테마 파일입니다 - 다른 사람과 테마를 공유하거나 각 색을 직접 맞춤하시고 싶다면 **만들기**를 누르세요.\n\n테마명을 입력해 주세요:\n - 테마명을 입력하세요 - 편집기 닫기 - 테마 저장 - 새로운 색 테마 - 색 테마 - 색 테마를 바꾸었습니다. - **대화방 설정**에서 복원하실 수 있습니다. - 내장 테마 - 맞춤 테마 - 링크 생성 - 테마 링크 - 메시지 모서리 - 대화 목록 외관 - 두 줄 - 세 줄 - 테마 만들기 - 적용 - 테마 미리보기 - 색 선택 - 색 테마 - 모든 테마 보기 - 테마를 찾지 못했습니다 - 죄송합니다. 기기에서 이 색 테마를 지원하지 않습니다. - 새로운 테마 만들기 - 새로운 테마 - 테마 수정 - 각 화면의 구성 요소 목록을 보려면 팔레트 아이콘을 누르세요. 이들을 수정하실 수 있습니다. - 앱 안에서 색들을 바꾸어 회원님만의 테마를 만드실 수 있습니다.\n\n여기서 언제든지 기본 텔레그램 테마로 돌리실 수 있습니다. - a부터 z, 0부터 9와 밑줄을 사용하실 수 있습니다.\n적어도 다섯 자이어야 합니다. - 테마를 수정하시는 족족 테마가 사용자에게 업데이트됩니다.\n이 링크로 누구든 테마를 설치할 수 있습니다:\n%1$s - 누구든 이 링크로 회원님의 테마를 설치할 수 있습니다. 테마를 수정하시는 족족 테마를 설치한 사용자가 업데이트를 받습니다.\n\n현재 선택된 색과 배경을 바탕으로 테마가 만들어집니다. - 테마의 링크를 바꾸실 수 있습니다.\n\n테마 링크는 다섯 자 이상이어야 하며 a부터 z, 0부터 9와 밑줄을 사용하실 수 있습니다. - 죄송합니다. 올바르지 않은 테마명입니다. - 죄송합니다. 사용할 수 없는 링크입니다. - 링크는 적어도 다섯 자로 이루어져야 합니다. - 링크는 64자를 넘을 수 없습니다. - 죄송합니다. 링크는 숫자로 시작할 수 없습니다. - 링크 확인 중... - 죄송합니다. 이미 사용되는 링크입니다. - %1$s 사용하실 수 있습니다. - 링크 - 이름 - 이바 써머 - Reminds me of a Chinese prove... - 내부 경쟁자 - 저기, 방금 제가 소스 코드 업데이트했어요. - 마이크 애플 - 🤷‍♂️ 스티커 - 폴 뉴먼 - 좋은 생각 없어요? - 늙은 해적단 - 여봐라! - 케이트 브라이트 - Hola! - Nick K - 이것들은 귀하가 찾는 그 드로이드가 아닙니다. - Adler Toberg - Did someone say peanut butter? - 라인하르트 - 라인하르트, 새 음악도 좀 들어보시지 그래요🎶? - 하, 이게 진심으로 하는 말이라니. 아으! - 요즘 젊은이들은 테크노인지 뭔지 하는 것만 좋아한다니까! 핫셀호프 같은 고전 음악을 들어 보라고! - 루시우 - 오너라! 피가 끓어오르는구만! - True Survivor - 데이비드 핫셀호프 - 밥 해리스 - 좋은 아침입니다! 👋 - 좋은 아침입니다 - 지금 몇 시인지 아세요? - *도쿄*는 이제 아침이죠 😎 - 다른 테마 사용 - 테마의 토대로 삼을 것으로 기존 맞춤 테마를 사용하셔도 좋습니다. - 테마 선택 - 내보내기 - 만들기 - 강조 색 - 배경 - 내 메시지 - 모두 초기화 - 초기화 - 정말 배경을 색깔로 바꾸시겠습니까? - 지금 선택한 배경을 사용하시겠습니까? 아니면 이 테마의 기본 설정으로 초기화 하시겠습니까? - 테마 공유 - 색 편집 - 기본으로 되돌리기 - 설정 초기화 - 정말 글자 크기와 색 설정을 초기화하시겠습니까? - 테마 삭제 - 편집기에서 열기 - 변경 사항을 저장할까요? - 선택한 색을 적용하시겠습니까? 모든 알림 설정이 기본으로 설정되었습니다 모든 알림 초기화 정말 모든 알림 설정을 기본으로 초기화하시겠습니까? + 기본 값으로 초기화 + 알림 초기화 + 정말 알림 설정을 기본값으로 초기화하겠습니까? 메시지 글자 크기 질문하기 설명 추가 사용자가 틀린 답을 선택하면 이 설명이 나타납니다. 교육용으로 활용하기 좋습니다. 화면 전환 효과 사용 대화방 설정 - 디바이스 + 기기 도움말 디버그 계정 - 차단 해제 - 차단을 해제하려면 사용자를 길게 누르세요. + 사용자 차단 해제 차단된 사용자 없음 - 메시지 알림 - 알림 보이기 - 메시지 미리보기 - 그룹 알림 + 알림 표시 + 메시지 미리보기 표시 + 보내는 사람 이름 보기 + 자동 예외 + 가장 빈번하게 연락하는 사용자 5명에게 자동으로 스토리 알림을 허용합니다. 소리 앱 사용 중 알림 앱 사용 중 소리 @@ -1781,7 +338,7 @@ 맞춤 알림 팝업 알림 텔레그램이 꺼져 있을 때 이 연락처에서 보낸 새로운 메시지가 화면에 나타납니다. - LED + 색상 파란색 빨간색 @@ -1789,27 +346,23 @@ 초록색 청록색 하얀색 - 적갈색 - 다크 분홍색 폰트 크기 글꼴 유형 보라색 주황색 - LED는 몇몇 기기에 있는 반짝이는 작은 빛으로 새로운 메시지가 왔음을 나타냅니다. - 우선순위가 높은 알림은 휴대전화가 방해 금지 상태이더라도 작동합니다. + 몇몇 기기에 있는 반짝이는 작은 빛으로 새로운 메시지가 왔음을 나타냅니다. + 우선순위가 높은 알림은 방해 금지 상태이더라도 작동합니다. 일반 알림 끔 - 알림 켜기 + 알림 켬 %1$s까지 끔 - 기본 (켬) - 기본 (끔) 켜기 끄기 차단된 사용자 - 차단된 사용자는 회원님에게 연락하거나 회원님의 마지막 접속 시간을 볼 수 없습니다. + 차단된 사용자는 회원님에게 연락하거나 그룹에 초대를 할 수 없습니다. 그들은 회원님의 프로필 사진, 스토리, 온라인 상태 및 마지막 접속 시간을 볼 수 없습니다. 사용자 차단 대화방 연락처 @@ -1820,31 +373,31 @@ 무음일 때만 흐림 모션 효과 - 대화 배경 바꾸기 - 대화방 배경 - 대화방 배경 초기화 - 업로드된 대화방 배경을 모두 제거하고 기본으로 설치된 배경을 복구합니다. + 대화방 배경화면 변경 + 이름 색상 변경 + 외관 + 외관 + 대화방 배경화면 + 대화방 배경화면 초기화 + 업로드된 배경화면을 모두 제거하고 기본으로 설치된 배경을 복구합니다. 대화방 배경 재설정 - 정말 모든 대화방 배경을 초기화하시겠습니까? - 정말 선택한 배경을 삭제하시겠습니까? + 정말 모든 대화방 배경화면을 초기화하시겠습니까? + 정말 선택한 배경화면을 삭제하시겠습니까? 배경 미리보기 - 팁: 몇몇 배경에는 흐림 효과가 잘 어울립니다. + 팁: 몇몇 배경화면에는 흐림 효과가 잘 어울립니다. 야호! 고마워요 - 좌우로 쓸어넘겨 다양한 색을 입혀 보세요. - Salmon is a fish, not a color. - Bob Harris + 밥 해리스 좋은 아침입니다! 👋 지금 몇 시인지 아세요? 도쿄는 이제 아침이죠 😎 - \'설정\'을 눌러 배경을 적용하세요. - 경치가 장관이로구나! - 배경으로 설정 - 색으로 검색 - 배경 검색 - 색: - 밝기 - Hex 색 코드 + \'설정\'을 눌러 배경화면을 적용하세요. + 멋져 보이네 + 색상으로 검색 + 이미지 검색 + 색상: 색상 + 메시지를 보낼 때 색상이 움직입니다 + 움직임 무늬 패턴 선택 세기 @@ -1860,27 +413,33 @@ 검은색 회색 하얀색 - 색 선택 - 이미지 업로드 - 이미지 선택 + 색상 선택 이미지 전체 불러오는 중... - 색 설정하기 + 색상 설정 메시지 - 엔터 키로 보내기 + 엔터로 보내기 이벤트 친구의 텔레그램 가입 메시지 고정 + 메시지 번역 + 번역 버튼 보기 + 대화 전체 번역 + 번역하지 않음 + 언어 %1$d개 + 언어 %1$d개 + 언어 선택 + 텍스트 메시지를 한번 탭 할 경우 \'번역\' 버튼이 나타나게 됩니다. + 번역하는 메시지에 대해 구글이 접근을 할 수도 있습니다. 언어 맞춤 언어를 바꿀까요? %2$d%% 완성된 언어 묶음(**%1$s**)을 적용하시려고 합니다.\n\n인터페이스 전체가 번역됩니다. [번역 플랫폼]을 통해 오역을 바로잡으실 수 있습니다.\n\n설정에서 언제든 언어를 바꾸실 수 있습니다. %2$d%% 완성된 비공식 언어 묶음(**%1$s**)을 적용하시려고 합니다.\n\n인터페이스 전체가 번역됩니다. [번역 플랫폼]을 통해 오역을 바로잡으실 수 있습니다.\n\n설정에서 언제든 언어를 바꾸실 수 있습니다. 데이터가 부족합니다 - 비공식 언어 해당 언어가 없습니다. - 이미 이 언어 묶음(**%1$s**)을 사용하고 계십니다. 언제든 설정에서 언어를 바꾸실 수 있습니다. + 이 언어 묶음(**%1$s**)을 이미 사용하고 계십니다. 설정에서 언제든지 언어를 되돌리실 수 있습니다. 안타깝게도 이 맞춤 언어 묶음(**%1$s**)에는 Android 텔레그램용 데이터가 들어 있지 않습니다. - 텔레그램 지원 사항은 자원봉사자들이 처리합니다. 신속하게 응답해 드리고자 노력하지만, 다소 시간이 걸릴 수 있습니다.\n\n 자주 묻는 질문]]>을 확인해 보세요. 잦은 질문에 대한 답과 문제 해결]]>을 위한 중요한 조언이 있습니다. + 텔레그램 지원은 자원봉사자들이 처리합니다. 신속하게 응답해 드리고자 노력하지만, 다소 시간이 걸릴 수 있습니다.\n\n 자주 묻는 질문]]>을 확인해 보세요. 잦은 질문에 대한 답과 문제 해결]]>을 위한 중요한 조언이 있습니다. 봉사자에게 질문하기 자주 묻는 질문 자주 묻는 질문 @@ -1891,8 +450,10 @@ https://telegram.org/faq/ko 개인 정보 정책 이용 약관 - 가입함으로써 귀하는 *이용 약관*에 동의하게 됩니다. + 가입함으로써 귀하는 \n*이용 약관*에 동의하게 됩니다. https://telegram.org/privacy + https://telegram.org/tos + https://telegram.org/tos/mini-apps 언어 묶음 삭제 정말 **%1$s** 언어 묶음을 삭제하시겠습니까? 언어 파일이 올바르지 않습니다 @@ -1904,14 +465,14 @@ 연락처 가져오기 이름 - LED 색상 + 빛 색상 팝업 알림 사용 안 함 화면이 켜져 있을 때만 화면이 꺼져 있을 때만 - 항상 보임 + 항상 표시 앱 배지에 알림 개수 표시 - 사용 + 배지 아이콘 보기 알림 꺼진 대화방 포함 안 읽은 메시지 세기 짧게 @@ -1955,8 +516,12 @@ 데이터 사용량 미디어 종류 음성 메시지는 용량이 적어 항상 자동으로 다운로드됩니다. - 다운로드하지 않음 + 비활성화됨 GIF가 없습니다 + 자동 다운로드 설정 + 모바일 데이터 사용량을 줄이기 위해 자동 다운로드 설정을 변경하실 수 있습니다. + Wi-Fi에 연결되어 있을 때 데이터 사용량을 줄이기 위해 자동 다운로드 설정을 변경하실 수 있습니다. + 자동 다운로드 설정을 변경하여 로밍 시 데이터 사용량을 줄일 수 있습니다. 자동 다운로드 설정 초기화 설정 재설정 정말 자동 다운로드 설정을 초기화하시겠습니까? @@ -1967,15 +532,19 @@ 동영상 소리를 켜려면 음량 버튼을 누르세요. 사용자가 계정을 숨겼습니다 + 이 계정은 사용자에 의해 숨겨졌습니다 미디어 자동 재생 - 기기 들어 말하기 + 기기를 들어서 말하기 + 전화기를 귀에 대고 음성 메시지를 녹음하세요. + 귀에 대고 듣기 + 휴대전화를 귀에 대면 소리가 이어폰으로 전환됩니다. 갤러리에 저장 음소거됨 이름 수정 + 프로필 색상 변경 맞춤 맞춤 - 맞춤 알림 사용 - 중요도 + 우선순위 설정과 동일 낮음 중간 @@ -1983,13 +552,14 @@ 긴급 사용 안 함 알림 반복 - 여기서 텔레그램 전화번호를 바꾸실 수 있습니다. 회원님의 계정과 함께 메시지와 미디어, 연락처 따위의 모든 클라우드 데이터가 새 번호로 옮겨집니다. - 회원님이 주소록에 저장되어 있거나, 회원님의 개인 정보 설정으로 번호 열람이 승인된 사용자들은 회원님의 전화번호를 볼 수 있습니다. 설정 > 개인 정보 및 보안 > 전화번호에서 이 설정을 수정하실 수 있습니다. - 번호 바꾸기 - 번호 바꾸기 + 여기서 텔레그램 전화번호를 변경하실 수 있습니다. 회원님의 계정과 함께 메시지와 미디어, 연락처 따위의 모든 클라우드 데이터가 새 번호로 옮겨집니다. + 회원님이 주소록에 저장되어 있거나, 회원님의 개인 정보 설정으로 번호 열람이 승인된 사용자들은 회원님의 새 전화번호를 볼 수 있습니다. 설정 > 개인 정보 및 보안 > 전화번호에서 이 설정을 수정하실 수 있습니다. + 번호 번경 + 번호 변경 + %1$s 유지 새 번호 - 회원님의 새 번호로 인증 코드가 담긴 SMS를 보내 드립니다. - 그 번호는 이미 텔레그램 계정에 연결되어 있습니다. 새 번호로 이동하기 전에 %1$s 계정에서 탈퇴해 주세요. + 전화나 SMS를 통해 새 번호로 인증 코드를 보내드립니다. + \n%1$s 번호는 이미 텔레그램 계정에 연결되어 있습니다. 지금 번호를 사용하기 전에 이전 계정을 탈퇴해 주세요. 기타 사용 안 함 사용 @@ -2011,23 +581,18 @@ 정말 모든 예외를 삭제하시겠습니까? 새로운 예외 기본과 다르게 알림 설정이 된 대화방이 이 부분에 모두 나열됩니다.\n\n대화방의 프로필을 열고 \'알림\'을 선택하여 알림 설정을 맞춤하실 수 있습니다. - 없음 %1$d / %2$s 사용 안 함 - 소리 알림 간격 - "%2$s 이내 %1$s " 링크 미리보기 - 링크 미리보기는 텔레그램 서버에 생성됩니다. 회원님이 보내시는 링크에 관한 데이터는 보관되지 않습니다. + 링크 미리보기는 텔레그램 서버에 생성됩니다. 회원님이 보내시는 그 어떠한 링크에 관한 데이터도 보관하지 않습니다. 비밀 대화 - 앱 안 브라우저 - 앱 안에서 외부 링크 열기 바로 공유 - 공유 메뉴에 최근 대화방 띄우기 + 안드로이드 공유 메뉴에 최근 대화방을 표시합니다 이모지 - 대용량 이모지 - 시스템 기본 이모지 사용 + 큰 이모지 Android용 텔레그램 %1$s 디버그 메뉴 + 디버그 메뉴로 이동하려면 길게 눌러주세요 로그 보내기 최신 로그 전송 로그 초기화 @@ -2037,25 +602,43 @@ 연락처 재동기화 대화 초기화 모든 대화 읽기 - 녹화 시 음악 멈춤 사용 - 녹화 시 음악 멈춤 사용 안 함 - 부드러운 키보드 사용 - 부드러운 키보드 사용 안 함 + 앱 업데이트 확인 앱 안 카메라 사용 앱 안 카메라 사용 안 함 가져온 연락처 초기화 보내진 미디어 캐시 비우기 통화 설정 - 언어는 나중에 설정에서 바꾸실 수 있습니다. + 웹뷰 캐시 비우기 + Clear WebView cookies + WebView 디버그 켜기 + WebView 디버그 비활성화 + 디버그가 켜졌습니다! + 디버그가 비활성화되었습니다! + 언어는 나중에 설정에서 변경하실 수 있습니다. 언어를 선택하세요 나머지 + 붙여넣기 + 플립 + Tap on an object to crop it + 잘라내기 + Cut Out an Object + 잘라내기 취소 + Undo + Add Outline + Erase + Restore + edit 클립보드에서 붙여넣기 프록시 설정 프록시 상세 정보 프록시 연결 + 프록시 추가됨 프록시 추가 프록시를 삭제할까요? + 프록시 삭제 + 정말 이 프록시를 삭제하겠습니까? + 정말 이 프록시들을 삭제하곘습니까? 프록시 사용 서버 비밀번호 @@ -2066,17 +649,17 @@ MTProto 프록시 사용하고 계신 프록시는 올바르게 설정되지 않았기에 비활성화될 것입니다. 다른 프록시를 사용해 주세요. 프록시 협찬 - 이 채널은 회원님의 프록시 서버로 인해 나타났습니다. 채널을 대화방 목록에서 제거하려면, 텔레그램 설정에서 프록시 사용을 해제하세요. + 이 채널은 회원님의 프록시 서버로 인해 나타났습니다. 채널을 대화방 목록에서 제거하려면, 텔레그램 설정 > 데이터 및 저장소에서 프록시 사용을 해제하세요. SOCKS5 프록시 설정입니다. MTProto 프록시 설정입니다. - 이 프록시를 사용하시면 후원 받은 채널이 대화방 목록에 표시될 수 있습니다. 이는 회원님의 텔레그램 트래픽을 공개하지 않습니다. + 이 프록시를 사용하시면 후원 채널이 대화방 목록에 표시될 수 있습니다. 회원님의 텔레그램 트래픽은 전혀 공개되지 않습니다. 전화에 프록시 사용 프록시 서버는 통화 품질을 저하시킬 수 있습니다. 사용 주의 기기에 남은 공간이 거의 없습니다. 텔레그램이 최근 미디어의 캐시만 저장하도록 설정해 여유 공간을 확보하실 수 있습니다. - 다음 시간 뒤 미디어 삭제: - 지우지 않기 + 기기의 저장 공간이 거의 다 찼습니다. 캐시 설정으로 불필요한 미디어를 제거하실 수 있습니다. 파일이 필요할 때 다시 다운로드하세요. + 캐시 관리 연락처 개인 대화 그룹 대화 @@ -2085,34 +668,34 @@ 최대 %1$s 스트리밍 동영상 및 음악 파일 스트리밍 - 어떤 동영상은 스트리밍할 수 없습니다 – 예로, 안드로이드에서 텔레그램 4.7 이하 버전으로 보낸 동영상은 모두 스트리밍할 수 없습니다. - 전화번호를 바꾸려면 누르세요 - 외관 - 스티커 및 마스크 - 맞춤 색 배합 선택 - 알림 보이기 + 가능한 경우 텔레그램은 파일이 완전히 다운로드될 때까지 기다리지 않고 즉시 영상과 음악 재생을 시작합니다. + 전화번호를 변경하려면 탭하세요 + 알림 표시 대상 모든 계정 - 현재 이용하고 계신 계정에만 알림을 받고 싶다면 이 설정을 끄세요. + 현재 이용하고 있는 계정에만 알림을 받고 싶다면 이 기능을 끄세요. 대화방 알림 - 개인 대화방 + 개인 대화 그룹 채널 - **%1$s**는 예외로 분류되어 이번 변경에 영향을 받지 않는다는 점을 알아 두세요. - **%1$s**는 예외로 분류되어 이번 변경에 영향을 받지 않는다는 점을 알아 두세요. + 스토리들 + Reactions + **%1$s**는 예외로 분류되어 이번 변경에 영향을 받지 않는다는 점을 유의해주세요. + **%1$s**는 예외로 분류되어 이번 변경에 영향을 받지 않는다는 점을 유의해주세요. 예외 보기 - 그룹 알림 - 개인 대화방 알림 - 채널 알림 - 바꾸려면 누르세요 + 탭하여 변경 대체 옵션 다른 계정 추가 다른 텔레그램 계정을 연결하여 두 계정 간 손쉽게 전환하세요. - 암호 설정하기 + 암호 설정 다른 사람이 열 수 없도록 앱을 암호로 잠그세요. 캐시 비우기 - 기기의 저장 공간을 확보하세요. 미디어는 클라우드에 보존됩니다. - 전화번호 바꾸기 - 연락처와 그룹, 메시지, 미디어를 새 번호로 옮기세요. + 선택내역 비우기 + 기기의 저장 공간을 확보합니다. 미디어는 클라우드에 보관됩니다. + 캐시 비우는 중... + 텔레그램이 캐시를 초기화하는 동안 이 창을 계속 열어두세요. + 전화번호 변경 + 계정과 대화, 미디어를 새 번호로 옮기세요. + 전화번호가 성공적으로 %1$s으로 변경되었습니다. 문의하기 문제가 있으면 알려 주세요. 로그아웃은 대개 도움이 되지 않습니다. 로그아웃 @@ -2130,16 +713,16 @@ 마일 QR 코드 스캔 QR 코드 스캔 - 토큰이 올바르지 않거나 만료되었습니다. 인증 토큰을 찾지 못했습니다 인증되었습니다 https://desktop.telegram.org/ + https://web.telegram.org/ 컴퓨터에 텔레그램을 다운로드하세요\n*desktop.telegram.org*. QR 코드를 받으려면 텔레그램 데스크탑을 실행하세요. 회원님의 계정을 연결하려면 QR 코드를 스캔하세요. 이 코드는 누군가가 회원님의 텔레그램 계정에 로그인할 수 있도록 하는 데 사용될 수 있습니다.\n\n텔레그램 로그인을 인증하려면, 설정 > 기기 > QR 코드 스캔으로 이동하여 코드를 스캔해 주세요. - QR 코드를 스캔하려면 텔레그램에게 카메라 접근 권한이 필요합니다. - 프로필 사진 설정하기 + **텔레그램**이 QR 코드를 스캔하려면 카메라 접근권한이 필요합니다. 설정을 탭하고 -> 권한으로 이동 하신 후, **카메라**를 활성화해주세요. + 프로필 사진 설정 텔레그램 업데이트 버전 %1$s • %2$s %1$d%% 다운로드 중... @@ -2149,17 +732,21 @@ **무엇이 달라졌나요?**\n\n• 버그 수정 및 기능 개선. 기존 링크 링크가 더 이상 유효하지 않습니다 - 전달 취소 - 다른 대화 선택 - 전달을 취소하거나 다른 대화로 전달하겠습니까? - 대화 목록의 스와이프 제스처 + **%2$s** 와 대화에서의 %1$s 에 대해 어떻게 하시겠습니까? + **%2$s** 의 %1$s 에 대해 어떻게 하시겠습니까? + 보낸 사람 이름 보기 + 발신자 이름 숨김 + 보낸 사람 이름 보기 + 발신자 이름 숨김 + 대화 목록 쓸어넘기기 제스처 + 대화 목록에서 왼쪽으로 스와이프할 때 수행할 작업을 선택합니다. 고정 - 읽기 + 읽음 보관 - 음소거 + 알림 끄기 삭제 폴더 변경 - 음소거 해제 + 알림 켜기 음소거 삭제 읽음 @@ -2169,624 +756,44 @@ 전달 취소하기 자기소개 업데이트됨. 이름 업데이트됨. - 채널 제목 업데이트됨. + 채널 이름이 업데이트 되었습니다. 채널 설명 업데이트됨. - - 로컬 데이터베이스 - 로컬 데이터베이스 비우기 - 정말 캐시된 문자 메시지 비우시겠습니까? - 로컬 데이터베이스를 비우면 캐시된 메시지의 글을 지우고 데이터베이스를 압축해 내장 디스크 공간을 절약합니다. 텔레그램이 작동하는데 데이터가 어느 정도 필요하므로 데이터베이스 크기는 0이 되지 않습니다.\n\n이 작업은 완료되기까지 몇 분 정도 걸릴 수 있습니다. - 캐시 비우기 - 비우기 - 계산 중... - 문서 - 사진 - 음성 및 영상 메시지 - 동영상 - 음악 - GIF - 다른 파일 - 비어 있음 - 미디어 저장 기간 - 이 기간 동안 회원님이 **접근하지 않으신** 클라우드 대화방의 사진, 동영상과 그 밖의 파일들이 디스크 공간 확보를 위해 이 기기에서 제거됩니다.\n\n모든 미디어는 텔레그램 클라우드에 남으며 필요할 때 다시 다운로드하실 수 있습니다. - 무기한 - 음성 메시지 - 동영상 메시지 - - 텔레그램 패스포트 - "요청 받은 정보 " - 제공한 정보 - 텔레그램 패스포트가 무엇인가요? - 텔레그램 패스포트와 함께라면, 신분 인증이 필요한 여러 웹 사이트와 서비스에 손쉽게 로그인하실 수 있습니다.\n\n회원님의 정보와 개인 데이터, 서류들은 단대단 암호화로 보호됩니다. 텔레그램을 포함하여, 그 누구도 회원님의 허가 없이 이들에 접근할 수 없습니다.\n\n*자주 묻는 질문*을 방문하여 자세히 알아보실 수 있습니다. - https://telegram.org/faq/ko#1660002760 - 단대단 암호화로 개인 데이터를 보호하려면 비밀번호를 만드셔야 합니다.\n\n새로운 기기로 텔레그램에 로그인할 때 이 비밀번호가 필요할 것입니다. - 비밀번호 만들기 - 텔레그램 패스포트 삭제 - 텔레그램 패스포트 삭제 - 정말 텔레그램 패스포트를 삭제하시겠습니까? - 로마자만 사용해 주세요. - 회원님 여권의 공증된 영문 번역본을 스캔하여 업로드하세요. - 회원님 내부 여권의 공증된 영문 번역본을 스캔하여 업로드하세요. - 회원님 운전면허증의 공증된 영문 번역본을 스캔하여 업로드하세요. - 회원님 신분증의 공증된 영문 번역본을 스캔하여 업로드하세요. - 회원님의 공과금 고지서를 스캔하여 업로드하세요. - 회원님의 입출금 내역서를 스캔하여 업로드하세요. - 회원님의 임차 계약서를 스캔하여 업로드하세요. - 회원님의 여권 등록 페이지를 스캔하여 업로드하세요. - 회원님의 가등기를 스캔하여 업로드하세요. - 회원님의 주소를 확인하기 위함이오니, 선택된 서류(모든 쪽)의 사진이나 스캔을 업로드해 주세요. - 회원님 공과금 고지서의 공증된 영문 번역본을 스캔하여 업로드하세요. - 회원님 입출금 내역서의 공증된 영문 번역본을 스캔하여 업로드하세요. - 회원님 임차 계약서의 공증된 영문 번역본을 스캔하여 업로드하세요. - 회원님 여권 등록 페이지의 공증된 영문 번역본을 스캔하여 업로드하세요. - 회원님 가등기의 공증된 영문 번역본을 스캔하여 업로드하세요. - 선택된 서류의 공증된 영문 번역본을 스캔하여 업로드하세요. - 공과금 고지서 추가 - 입출금 내역서 추가 - 임차 계약서 추가 - 주소 - 거주지 주소 - 회원님의 주소를 입력하세요 - 회원님 주소의 증명을 업로드하세요 - 주소 - 도로 - 도로 - 우편 번호 - 도시 - - 국가 - 전화번호 - 전화번호를 삭제할까요? - 전화번호를 입력하세요 - %1$s 사용 - 텔레그램에 있는 것과 같은 전화번호를 사용하세요. - 텔레그램에 있는 것과 같은 이메일을 사용하세요. - 아니면 새 전화번호를 입력하세요 - 참고: 입력하신 전화번호로 인증 코드를 보내 드립니다. - 이메일 - 이메일을 삭제할까요? - 이메일 주소를 입력하세요 - 참고: 입력하신 이메일 주소로 인증 코드를 보내 드립니다. - 코드 - 방금 %1$s(으)로 받은 인증 코드를 입력해 주세요. - 개인 데이터에 접근하려면 비밀번호를 입력해 주세요. - **%1$s**이(가) 서비스에 회원님을 등록하기 위해 개인 데이터 접근 권한을 요청합니다. - 데이터를 해독하려면 텔레그램 비밀번호를 입력해 주세요. - *%1$s 개인 정보 정책*을 수락하시어 @%2$s 봇이 회원님에게 메시지를 보낼 수 있도록 합니다. - 서류를 %1$s에 곧바로 보내고 %2$s에서 회원님에게 메시지를 보낼 수 있도록 허용합니다. - 승인 - 여권 추가 - 내부 여권 추가 - 여권 등록 - 가등기 - 신분증 추가 - 운전면허증 추가 - 개인 신상 명세 - 개인 신상 명세를 채우세요 - 신분 증명서 - 회원님의 여권이나 다른 신분증을 스캔하여 업로드하세요 - 회원님의 여권을 스캔하여 업로드하세요 - 회원님의 내부 여권을 스캔하여 업로드하세요 - 회원님의 신분증을 스캔하여 업로드하세요 - 회원님의 운전면허증을 스캔하여 업로드하세요 - 개인 신상 명세 - 서류 세부 정보 - 성명 - 중간 이름 - - 이름 (로마자) - 가운데 이름 (로마자) - 성 (로마자) - 이름 (%1$s) - 가운데 이름 (%1$s) - 성 (%1$s) - 성별을 선택하세요 - 남성 - 여성 - 생년월일 - 성별 - 서류 번호 - 만료일 - 시민권 - 거주지 - 본인 사진 - 필요한 서류 - 본인이 이 서류를 들고 있는 사진을 업로드하세요 - 번역본 - 앞면 - 서류 앞면의 사진을 업로드하세요 - 반대면 - 서류 뒷면의 사진을 업로드하세요 - 주요 면 - 서류 주요 면의 사진을 업로드하세요 - 만료일을 선택하세요 - 만료되지 않음 - 없음 - 생년월일을 선택하세요 - 본인 사진을 삭제할까요? - 서류에 회원님의 사진과 성명, 생년월일, 서류 번호, 발급 국가, 만료일이 포함되어야 합니다. - 정말 입력한 정보를 모두 삭제하시겠습니까? - 삭제 - 스캔 - 서류 삭제 - 삭제 - 스캔을 삭제하시겠습니까? - 본인 사진을 삭제하시겠습니까? - 서류를 삭제하시겠습니까? - 정말 개인 신상 명세를 삭제하시겠습니까? - 주소 세부 정보를 삭제하시겠습니까? - 개인 신상 명세 삭제 - 주소 세부 정보 삭제 - 스캔을 삭제할까요? - 스캔 업로드 - 추가 스캔 업로드 - 파일을 %1$s개 이상 업로드하실 수 없습니다. - 이미지 파일만 업로드하실 수 있습니다. - 회원님의 여권을 스캔하세요 - 개인 신상 명세를 자동으로 채우려면 회원님의 여권이나 신분증의 기계 판독 가능 구역을 스캔하세요. - 서류 추가 - 아직 서류가 없습니다 - 회원님의 전화번호나 이메일 주소, 신분 증명서, 거주지 주소를 추가하실 수 있습니다. - 교정하려면 누르세요. - %1$s 또는 %2$s - 성명 - %1$s 성명 - 거주하시는 국가의 언어(%1$s)로 성명을 작성하세요. - 성명이 올바른지 확인해 주세요.\n\n%1$s %2$s %3$s - 아랍어 - 아제르바이잔어 - 불가리아어 - 벵골어 - 체코어 - 덴마크어 - 독일어 - 디베히어 - 종카어 - 그리스어 - 스페인어 - 에스토니아어 - 페르시아어 - 프랑스어 - 히브리어 - 크로아티아어 - 헝가리어 - 아르메니아어 - 인도네시아어 - 아이슬란드어 - 이탈리아어 - 일본어 - 조지아어 - 캄보디아어 - 한국어 - 라오어 - 리투아니아어 - 라트비아어 - 마케도니아어 - 몽골어 - 말레이시아어 - 버마어 - 네팔어 - 네덜란드어 - 폴란드어 - 포르투갈어 - 루마니아어 - 러시아어 - 슬로바키아어 - 슬로베니아어 - 타이어 - 투르크멘어 - 터키어 - 우크라이나어 - 우즈베크어 - 베트남어 - - 활성 세션 - 이 기기 - 활성화된 다른 세션이 없습니다 - 동일한 전화번호를 사용하여 다른 모바일, 태블릿, 데스크탑 장치에서 텔레그램에 로그인하실 수 있습니다. 모든 데이터가 즉시 동기화됩니다. - 활성 세션 - 다른 기기의 세션을 제어하세요. - 세션을 종료하려면 짧게 누르세요. - 이 세션을 종료할까요? - 정말 이 세션을 종료하시겠습니까? - 본 기기 외의 모든 기기에서 로그아웃합니다. - 세션 종료 - 세션 종료 - 종료 - 정말 다른 기기에 로그인된 세션을 모두 종료하시겠습니까? - 다른 세션 모두 종료 - 비공식앱 - 현재 로그인된 곳이 없습니다. - 텔레그램으로 로그인하기를 지원하는 웹 사이트에 로그인하실 수 있습니다. - 연결된 웹 사이트 - 텔레그램으로 로그인된 웹 사이트 - 텔레그램 계정과 연결을 끊으려면 짧게 누르세요. - 정말 %1$s과(와) 연결을 끊으시겠습니까? - 웹 사이트 연결 끊기 - 웹 사이트 연결 끊기 - 연결 끊기 - %1$s 차단 - 모든 웹 사이트 연결 끊기 - 정말 텔레그램을 사용하여 로그인한 모든 웹 사이트와 연결을 끊으시겠습니까? - 텔레그램으로 로그인하기를 지원하는 웹 사이트에 로그인하실 수 있습니다. - 완료되지 않은 로그인 시도 - 위 기기가 메시지에 접근할 수 없습니다. 코드는 알맞게 입력하셨으나, 비밀번호가 잘못되었습니다. - - 폴더 - 설정 - 폴더 설정 - 새 폴더 만들기 - 대화방을 모은 폴더를 여럿 만들고\n신속하게 대화를 전환하세요. - 추천 폴더 - 모든 대화방 - 모두 - 재정렬 - 폴더 편집 - 폴더 편집 - 연락처 - 비연락처 - 그룹 - 채널 - 알림 꺼진 방 제외 - 읽은 방 제외 - 편집 - 삭제 - 보관된 방 제외 - 안 읽음 - 폴더 제거 - 알림 꺼짐 - 읽음 - 보관됨 - 대화방 포함 - 대화방 제외 - 대화방 추가 - 대화방 제거 - 대화 유형 - 대화방 - 포함할 대화방 - 제외할 대화방 - 폴더에 표시할 대화방과 대화방 유형을 정하세요. - 폴더에 표시하지 않을 대화방과 대화방 유형을 정하세요. - 비밀 대화 - - Adding chats - 이 폴더를 채우는 동안 잠시 기다려 주세요... - 폴더가 비어있습니다 - 이 폴더에 속한 대화방이 없습니다. - 새 폴더 - 대화방 없음 - 연락처 - 비연락처 - 예외 추가 - 폴더명 - 정말 이 폴더를 제거하시겠습니까? 대화방은 삭제되지 않습니다. - 변경 사항을 적용할까요? - 이 폴더를 편집하셨습니다. 변경 사항을 적용할까요? - 폴더를 만들까요? - 폴더 만들기를 끝마치지 않으셨습니다. 바로 만들까요? - 만들기 - 대화방 %1$d개 더 보기 - 대화방 %1$d개 더 보기 - 대화방 %1$d개 더 보기 - 대화방 %1$d개 더 보기 - 대화방 %1$d개 더 보기 - 대화방 %1$d개 더 보기 - 예외 제거 - 예외 제거 - 정말 \"%1$s\"을(를) 항상 제외 목록에서 제거하시겠습니까? - 정말 \"%1$s\"을(를) 항상 제외 목록에서 제거하시겠습니까? - 정말 \"%1$s\"을(를) 항상 제외 목록에서 제거하시겠습니까?? - 정말 \"%1$s\"을(를) 항상 포함 목록에서 제거하시겠습니까? - 정말 \"%1$s\"을(를) 항상 포함 목록에서 제거하시겠습니까? - 정말 \"%1$s\"을(를) 항상 포함 목록에서 제거하시겠습니까? - 대화방 폴더 - *설정 > 폴더*를 열어 대화방을 폴더로 정리하세요. - 알림 켜짐 - 읽지 않음 - 폴더에 추가 - 폴더에서 제거 - 폴더를 선택해주세요 - **%2$s** 폴더에 **%1$s** 대화가 추가됨 - **%2$s** 폴더에 **%1$s** 대화가 추가됨 - **%2$s** 폴더에 **%1$s** 대화가 추가됨 - **%1$s**을(를) **%2$s**에서 제거했습니다 - **%2$s** 폴더에서 **%1$s** 대화가 삭제됨 - **%2$s** 폴더에서 **%1$s** 대화가 삭제됨 - 한계 도달 - 죄송합니다, 폴더에서 100개 이상의 대화를 제외할 수 없습니다. + 지금도 %1$s 번호를 사용하시나요? + 언제든지 텔레그램에 로그인할 수 있도록 전화번호를 최신으로 유지하세요. **더 알아보기** + https://telegram.org/faq#q-i-have-a-new-phone-number-what-do-i-do + + 아니요 암호 잠금 - 암호 바꾸기 - 암호를 설정하시면, 대화 페이지에 잠금 아이콘이 나타납니다. 이 아이콘을 눌러 텔레그램을 잠그거나 잠금 해제하실 수 있습니다.\n\n주의: 암호를 잊어버리면 앱을 삭제하고 다시 설치하셔야 합니다. 비밀 대화는 모두 사라집니다. - PIN - 암호 - 현재 암호를 입력하세요 - 암호를 입력하세요 - 새 암호를 입력하세요 + 암호 변경 + 암호를 설정하시면, 대화 목록 상단에 잠금 아이콘이 나타납니다. 이를 탭하여 텔레그램 앱을 잠그실 수 있습니다.\n\n주의: 암호를 잊어버릴 경우, 앱을 로그아웃하거나 재설치하셔야 합니다. 비밀 대화는 모두 사라집니다. + 암호를 설정하시면, 대화 목록 상단에 잠금 아이콘이 나타납니다. 이를 탭하여 텔레그램 앱을 잠그실 수 있습니다. + 암호 설정 + 암호를 다시 입력해주세요 + 암호로 전환 + PIN으로 전환 + 암호가 일치하지 않습니다. 다시 시도해주세요. 암호를 입력하세요 - 암호를 다시 입력하세요 - 암호가 일치하지 않습니다. + 이 설정을 관리하려면 현재 텔레그램 암호를 입력해주세요. + 암호를 잊어버리셨나요? + 암호를 잊어버리셨다면, 앱을 삭제 후 재설치 해주세요. \n\n비밀 대화는 모두 사라집니다. + 대화 목록 상단의 잠금 아이콘을 탭하여 앱을 잠글 수 있습니다. + 암호 끄기 + 정말 암호를 비활성화 하겠습니까? + 끄기 + 새 암호를 입력하세요 + 텔레그램 암호 입력 자동 잠금 - 일정 시간이 지나면 텔레그램을 잠급니다. + 일정 시간이 지나면 암호를 묻게 됩니다. %1$s 뒤 사용 안 함 지문으로 잠금 해제 - 계속하려면 지문인식 절차를 거치세요 - 터치 센서 - 지문이 인식되지 않았습니다. 다시 시도하세요. 앱 전환 화면에서 대화 내용 드러내기 + 작업전환에 있는 앱 내용 + 내용 보기 위 기능을 끄면, 앱 안에서 화면을 캡처하실 수 없지만 앱 전환 화면에서 대화 내용이 숨겨집니다. 앱 전환 화면에서 대화 내용이나 목록이 숨겨지지만, 텔레그램에서 스크린샷을 찍으실 수 없습니다.\n\n이 기능을 사용하려면 앱을 다시 시작하셔야 할 수도 있습니다. 너무 많이 시도하셨습니다.\n%1$s초 뒤에 다시 시도해 주세요. - - 1월 - 2월 - 3월 - 4월 - 5월 - 6월 - 7월 - 8월 - 9월 - 10월 - 11월 - 12월 - 파일 - 미디어 - 공유한 미디어 - 그룹 - 링크 - 음악 - 음성 - GIF - 공유한 파일 - 공유하는 콘텐츠 - 공유한 링크 - 공유한 음악 - 사진과 동영상을 이 대화방에 공유하여\n어느 기기에서나 열람해 보세요. - 이 대화방에 음악을 공유해두면 회원님의 모든 기기에서 접근하실 수 있습니다. - 파일과 문서를 이 대화방에 공유하여\n어느 기기에서나 열람해 보세요. - 이 대화방에 링크를 공유해 두어 어느 기기에서나 열람하세요. - 음성 메시지를 이 대화방에 공유하여\n어느 기기에서나 열람해 보세요. - 이 대화방에서 나눈 사진과 동영상을 여기서 보실 수 있습니다. - 이 대화방에서 주고받은 음악이 여기에 담깁니다. - 이 대화방에서 나눈 파일과 문서를 여기서 보실 수 있습니다. - 이 대화방에서 주고받은 링크가 여기에 담깁니다. - 이 대화방에서 나눈 음성 메시지가 여기에 표시됩니다. - 이 대화방의 GIF가 여기에 보입니다. - - 지도 - 위성 - 혼합 - %1$s m 떨어짐 - %1$s km 떨어짐 - %1$s ft 떨어짐 - %1$s mi 떨어짐 - %1$s 피트 - %1$s 마일 - mi - km - %1$s m - %1$s km - 나에게서 %1$s m 떨어짐 - 나에게서 %1$s km 떨어짐 - 나에게서 %1$s ft 떨어짐 - 나에게서 %1$s mi 떨어짐 - 가는 길 - 장소를 찾지 못했습니다 - 주변에 **%1$s** 같은 곳이 없습니다. - 내 현재 위치 보내기 - 내 실시간 위치 공유... - 내 실시간 위치 공유 - 위치 공유 중단 - 위치 공유 멈추기 - 정말 %1$s 님과 실시간 위치 공유를 중단하시겠습니까? - **%1$s** 님과 실시간 위치 공유를 중단하시겠습니까? - 실시간 위치 공유를 중단하시겠습니까? - 움직임을 따라 실시간 갱신됩니다 - 선택한 위치 보내기 - 위치 - 장소 - 반경 %1$s 안으로 정확합니다 - %1$s 떨어짐 - 아니면 장소 선택 - 이 위치를 보내려면 누르세요 - 실시간 위치 - 실시간 위치 - 15분 동안 - 1시간 동안 - 8시간 동안 - 갱신됨 - %1$s 전 갱신됨 - 방금 업데이트됨 - 나와 %1$s 님 - %1$s를 %2$s와 공유 중 - %2$s에서 %1$s 공유 중 - %2$s에서 %1$s를 공유 중 - 모두 중단 - 실시간 위치를 %1$s와 공유하고 있습니다 - %1$s 님에게 회원님의 정확한 위치를 얼마 동안 보일지 선택하세요. - 이 대화방 사람들에게 회원님의 실시간 위치를 얼마 동안 보일지 선택하세요. - GPS 켜기 - 위치 기반 기능에 접근하려면 GPS를 켜 주세요. - 나를 공개하기 - 내 프로필을 공개할까요? - 주변 사용자가 회원님의 프로필을 보고 회원님에게 메시지를 보낼 수 있습니다. 이 설정은 새로운 친구를 찾으시는 데 도움될 수 있으나, 지나치게 주의를 끌 수도 있습니다. 언제든 회원님의 프로필을 공유하길 멈추실 수 있습니다.\n\n회원님의 전화번호는 여전히 가려집니다. - 공개 멈추기 - 주변 사람 - 주변 사람 찾기 - 손쉽게 이 섹션를 열고 있는 사람들을 추가하고 지역 그룹 대화방을 찾으세요.\n\n이 기능을 활성화 하려면 위치 접근을 켜 주세요. - 주변 사람 - 접근 허용 - 이 페이지를 보고 있는 주변 사람들을 손쉽게 추가하거나 지역 그룹 대화방을 발견해 보세요.\n\n이 기능을 사용하려면 위치 서비스를 켜셔야 합니다. - 켜기 - 주변 그룹 - 주변 사람들과 연락처 정보를 교환하여\n새로운 친구를 찾으세요. - 주위에 있는 사용자 찾는 중... - 지역 그룹 만들기 - 그룹하기 - 이 근처에 있는 사람들(이웃이나 직장 동료, 친구, 학생, 행사 참석자, 방문객)이 회원님의 그룹을 \'주변 사람\' 탭에서 볼 수 있습니다. - 이 위치와 관계 없는 그룹을 만들 경우, 앞으로 위치 기반 그룹을 만들지 못하실 수 있습니다. - 위치 설정 - 이 위치로 설정하기 - 사람들이 회원님의 그룹을 \"주변 사람\" 섹션에서 찾을 수 있습니다. - 지역에 있는 장소 - 근접 경고 - %1$s님이 %2$s내 있을때 알림 - %1$s내에 누가 근접시 알림 - 이미 %1$s 보다 더 가까이 있습니다. - 위치 공유 - 공유 - 알림을 작동시키려면, 이 대화방에 회원님의 실시간 위치를 공유해주세요. - %1$s님이 가까워졌을때 알림 - 그룹 내 다른 사용자가 근접 했을때 알리기 - 근접 알림 설정됨 - %1$s님이 %2$s내 접근시 알림을 드리겠습니다 - 누군가가 %1$s내에 접근시 알림을 드리겠습니다 - 근접 알림 취소됨 - - 목록으로 보기 - 그리드로 보기 - 모든 미디어 보기 - 스티커 보기 - 모든 파일 보기 - GIF 모두 보기 - 다운로드하려면 누르세요 - 파일 열기 - 대화 속에서 보기 - 다운로드 중지 - 갤러리에 저장 - %1$d / %2$d - " %2$d개 중 **%1$d**번째" - 갤러리 - 모든 사진 - 모든 미디어 - 모든 동영상 - 사진이 없습니다 - 먼저 미디어를 다운로드해 주세요 - 동영상을 완전히 다운로드할 때까지 기다려 주세요. - 동영상이 스트리밍에 최적화되어 있지 않습니다. 재생하려면 완전히 다운로드하셔야 합니다. - 앱에서 동영상을 재생할 수 없습니다. 외부 플레이어로 재생할까요? - 최근 검색 기록이 없습니다 - 이미지 - GIF - 최근 GIF 없음 - 이미지 찾기 - 웹 검색 - GIF 찾기 - 웹 검색 - GIF 검색 - 카메라 접근을 허용하려면 누르기 - 갤러리 접근을 허용하려면 누르기 - 사진 자르기 - 향상 - 하이라이트 - 대비 - 노출 - 온기 - 채도 - 비네팅 - 그림자 - 그레인 - 선명 - 흐림 - 매끈한 피부 - 그림자 - 하이라이트 - 모두 - 빨강 - 초록 - 파랑 - - 선형 - 방사형 - 사진 삭제 - 정말 사진을 삭제하시겠습니까? - 동영상 삭제 - 이 동영상을 정말 삭제하시겠습니까? - GIF 삭제 - 정말 이 GIF를 삭제하시겠습니까? - 모두에게 이 사진을 삭제하겠습니까? - 정말 모두에게 동영상을 지우시겠습니까? - 모두에게 이 GIF를 삭제하겠습니까? - 변경 사항을 삭제할까요? - 정말 모든 변경 사항을 폐기하시겠습니까? - 검색 기록을 비울까요? - 정말 검색 기록을 비우시겠습니까? - 검색 기록 비우기 - 기록 검색 - 정말 \"%1$s\"을(를) 검색 기록에서 제거하시겠습니까? - 정말 \"%1$s\"을(를) 검색 기록에서 제거하시겠습니까? - 제거 - 비우기 - 설명을 추가하세요... - 사진 설명 - 동영상 설명 - GIF 설명 - 설명 - 삭제 - 수정 - - 마커 - 네온 - 화살표 - 복제 - 외곽선 - 일반 - 프레임 - 초기화 - 원본 - 정방형 - 미디어를 개별 메시지로 보내기 - 미디어를 하나의 메시지로 묶기 - 묶지 않고 보내기 - 압축 없이 보내기 - 프로필 동영상의 커버를 정하세요 - 메인으로 설정하기 - 편집기에서 열기 - 앞으로 이것이 회원님의 메인 프로필 사진입니다. - 앞으로 이것이 회원님의 메인 프로필 동영상입니다. - 채널에 대표로 설정된 사진입니다. - 채널에 대표로 설정된 비디오입니다. - 현재 그룹 대표 사진입니다. - 현재 그룹 대표 영상입니다. - 갤러리로 사진이 저장됐습니다 - 갤러리로 영상이 저장됐습니다 - 다운로드로 사진이 저장됐습니다 - 다운로드로 동영상이 저장됐습니다 - 다운로드로 GIF가 저장됐습니다 - 음악에 파일이 저장됐습니다 - 다운로드로 파일이 저장됐습니다 - 다운로드에 %1$d개의 파일이 저장됐습니다 - 다운로드에 %1$d개의 파일이 저장됐습니다 - 다운로드에 %1$d개의 파일이 저장됐습니다 - 다운로드에 %1$d개의 파일이 저장됐습니다 - 다운로드에 %1$d개의 파일이 저장됐습니다 - 다운로드에 %1$d개의 파일이 저장됐습니다 - 갤러리에 %1$d개의 사진이 저장됐습니다 - 갤러리에 %1$d개의 사진이 저장됐습니다 - 갤러리에 %1$d개의 사진이 저장됐습니다 - 갤러리에 %1$d개의 사진이 저장됐습니다 - 갤러리에 %1$d개의 사진이 저장됐습니다 - 갤러리에 %1$d개의 사진이 저장됐습니다 - 갤러리로 %1$d개의 비디오가 저장됐습니다 - 갤러리로 %1$d개의 비디오가 저장됐습니다 - 갤러리로 %1$d개의 비디오가 저장됐습니다 - 갤러리로 %1$d개의 비디오가 저장됐습니다 - 갤러리로 %1$d개의 비디오가 저장됐습니다 - 갤러리로 %1$d개의 비디오가 저장됐습니다 - 음악에 %1$d개 파일이 저장됐습니다 - 음악에 %1$d개 파일이 저장됐습니다 - 음악에 %1$d개 파일이 저장됐습니다 - 음악에 %1$d개 파일이 저장됐습니다 - 음악에 %1$d개 파일이 저장됐습니다 - 음악에 %1$d개 파일이 저장됐습니다 - 항목 %1$d개가 갤러리에 저장되었습니다 - 항목 %1$d개가 갤러리에 저장되었습니다 - 항목 %1$d개가 갤러리에 저장되었습니다 - 항목 %1$d개가 갤러리에 저장되었습니다 - 항목 %1$d개가 갤러리에 저장되었습니다 - 항목 %1$d개가 갤러리에 저장되었습니다 2단계 인증 2단계 인증 @@ -2795,23 +802,38 @@ 설정으로 돌아가기 패스포트로 돌아가기 비밀번호 설정 - 비밀번호 표시 + 비밀번호 보기 추가 비밀번호 설정 새로운 기기에 로그인할 때 SMS로 받는 코드와 별개로 입력해야 하는 비밀번호를 설정하실 수 있습니다. 비밀번호 + 내 비밀번호 + 현재 계정이 2단계 인증으로 보호되어 있습니다.\n아직 비밀번호를 기억하고 계신가요? + 네, 확실합니다 + 잘 모르겠어요 - 해제 + + 비밀번호 입력 비밀번호를 입력하세요 + 비밀번호 확인 + 아직 비밀번호를 기억하시나요? + 완벽합니다! + 아직 비밀번호를 기억하고 계십니다. + 이 비밀번호는 올바르지 않습니다. + 설정으로 돌아가기 이전 작업을 완료하려면 비밀번호를 입력해 주세요. - 비밀번호 입력 + 출금하려면 비밀번호를 입력해주세요. 새 비밀번호를 입력하세요 - 새 비밀번호를 입력해 주세요 - 비밀번호를 다시 입력해 주세요 + 비밀번호를 다시 입력하세요 + 새로운 비밀번호 + 계정 로그인시 사용될 새로운 비밀번호를 설정 할 수 있습니다. + 새로운 비밀번호 입력 + 새로운 비밀번호 재입력 복구 이메일 복구 이메일 + 비밀번호를 재설정하고 회원님의 텔레그램 계정에 다시 접속하는 데 필요한 복구 이메일을 설정하실 수 있습니다. 이메일 - 이메일 코드 - %1$s 편으로 받은 코드를 입력하여 이메일 주소를 인증해 주세요. + 새로운 이메일 + 내 이메일 주소가 변경되었습니다. 정확한 이메일을 추가해 주세요. 잊어버린 비밀번호를 되찾으실 유일한 수단입니다. 건너뛰기 경고 @@ -2819,49 +841,63 @@ 거의 다 됐어요! 2단계 인증 설정을 완료하려면 이메일을 (스팸 메일함도 잊지 않고) 확인해 주세요. 성공! - 2단계 인증 비밀번호가 활성화되었습니다. 2단계 인증 비밀번호가 변경되었습니다. 2단계 인증용 복구 이메일이 이제 작동합니다. 2단계 인증을 위한 복구 이메일이 바뀌었습니다. - 비밀번호 바꾸기 - 비밀번호 끄기 - 복구 이메일 설정하기 - 복구 이메일 바꾸기 + 비밀번호 변경 + 비밀번호 비활성 + 복구 이메일 설정 + 복구 이메일 변경 비밀번호 끄기 정말 비밀번호를 사용하지 않도록 하시겠습니까? 정말 2단계 인증 설정을 중단하시겠습니까? 정말 복구 이메일 설정을 중단하시겠습니까? + 비밀번호 초기화를 취소하겠습니까? 새로운 초기화 신청시, 다시 7일이 소요됩니다. + + 아니오 + 초기화 취소 설치 중단 - 경고! 텔레그램 패스포트에 저장된 데이터가 모두 사라집니다! + 텔레그램 패스포트에 저장된 데이터가 모두 사라지게됩니다. 비밀번호 힌트 + 비밀번호에 추가 힌트를 생성할 수 있습니다. 힌트 비밀번호 힌트를 만드세요 + 비밀번호 힌트를 생성해주세요. 비밀번호가 맞지 않습니다 + 비밀번호 재입력 2단계 인증 설정 그만두기 설정 중단 복구 이메일 설정 중단 중단 사용 안 함 2단계 인증 설정을 완료하려면, 이메일을 (스팸 메일함도 잊지 말고) 확인하여 보내 드린 인증 코드를 입력해 주세요. - 복구 이메일 설정을 완료하려면, %1$s을 (스팸 메일함도 잊지 말고) 확인하여 보내 드린 코드를 입력해 주세요. 힌트는 비밀번호와 달라야 합니다 - 잘못된 이메일 주소입니다.. 제대로 입력했는지 확인하고 다시 시도해 주세요. + 이메일이 올바르지 않습니다. 다시 입력해 주세요. 죄송합니다 비밀번호를 설정할 때 복구 이메일을 등록하지 않았기에, 비밀번호를 기억해 내거나 계정을 초기화하시는 수밖에 없습니다. + 비밀번호 설정시 복구 이메일을 제공하지 않았기 때문에, 기존 비밀번호를 기억해내거나 7일 후 비밀번호가 초기화될때까지 기다려주셔야 합니다. + 정말 2단계 인증 비밀번호를 초기화하겠습니까? + 2단계 인증 비밀번호가 초기화되었습니다. 계정 초기화 + 비밀번호 초기화 + %1$s 후에 비밀번호를 초기화하실 수 있습니다. + 비밀번호 초기화 복구 코드 제공하신 이메일로 복구 코드를 보냈습니다:\n\n%1$s - 이메일을 확인하여 보내 드린 6자리 코드를 입력해 주세요. + 이메일로 보내 드린 6자리 코드를 입력하여 클라우드 비밀번호를 비활성화하세요. %1$s 접근에 어려움이 있으신가요? 이메일에 접근하는데 어려움이 있으신가요? 이메일에 접근하지 못한다면, 비밀번호를 기억해 내거나 계정을 초기화하시는 수밖에 없습니다. + 복구 이메일에 접근 할 수 없을 경우, 기존 비밀번호를 기억해내거나 7일 후 비밀번호가 초기화될때까지 기다려주셔야 합니다. + %1$s에 접근할 수 없습니까? + 최근에 비밀번호 초기화 요청을 취소한 이력이 있습니다. %1$s 이후에 새로운 요청을 할 수 있습니다. 계정 초기화 - 계정 초기화를 진행하시면, 대화방, 메시지와 더불어 공유한 미디어와 파일이 모두 사라집니다. 경고 - 이 작업은 되돌릴 수 없습니다.\n\n계정을 초기화하시면, 메시지와 대화방이 모두 삭제됩니다. + 이 작업은 되돌릴 수 없습니다. 계정 초기화를 진행하시면 텔레그램 대화, 메시지, 미디어와 파일을 모두 잃게 됩니다. 계정 초기화 비밀번호 2단계 인증이 켜져 있으므로, 계정이 추가 비밀번호로 보호됩니다. + 2단계 인증이 활성화 되었습니다. 사용하시는 계정이 추가적인 비밀번호로 보호되었습니다. 비밀번호를 잊어버리셨나요? 비밀번호 복구 코드 @@ -2871,333 +907,80 @@ 코드 입력 인증 코드를 이메일로 보냈습니다. 2단계 인증이 활성화되었습니다.\n회원님의 텔레그램 계정에 로그인하려면 여기서 설정하신 비밀번호가 필요합니다. - - 데이터 및 저장 공간 - 디스크 및 네트워크 사용량 - 저장 공간 사용량 - 데이터 사용량 - 저장 경로 - 모바일 - Wi-Fi - 로밍 - 메시지 및 기타 데이터 - 보냄 - 받음 - 보낸 바이트 - 받은 바이트 - 파일 - 통화 - 발신 전화 - 수신 전화 - 전체 시간 - 전체 - 통계 초기화 - %1$s부터 사용된 네트워크 - 통계 재설정 - 사용량 통계를 초기화 하시겠습니까? - - 개인 정보 및 보안 - 개인 정보 - 마지막 접속 및 온라인 - 프로필 사진 - 누가 내 프로필 사진과 영상을 볼 수 있나요? - 회원님의 프로필 사진을 볼 수 있는 사람을 세세하게 제한하실 수 있습니다. - 사용자나 그룹 전체를 예외로 추가하여 앞선 설정을 무시하실 수 있습니다. - 전화번호 - 내 전화번호를 볼 수 있는 사람 - 내 번호로 나를 찾을 수 있는 사람 - 이미 연락처에 회원님의 전화번호를 저장한 사용자는 텔레그램에서도 전화번호를 볼 수 있습니다. - 회원님의 번호를 연락처에 저장한 사용자라도 회원님의 연락처에 저장되어 있어야만 회원님의 전화번호를 볼 수 있습니다. - 사용자나 그룹 전체를 예외로 추가하여 앞선 설정을 무시하실 수 있습니다. - 전달된 메시지 - 회원님의 계정으로 연결됨 - 아래 설정이 허용하는 선에서 연결됨 - 회원님의 계정으로 연결되지 않음 - 내 메시지를 전달할 때 내 계정 링크를 추가할 수 있는 사람 - 회원님의 메시지가 다른 사람에 의해 전달되는 경우 회원님의 계정으로 도로 링크를 걸지 않습니다. - 사용자나 그룹 전체를 예외로 추가하여 앞선 설정을 무시하실 수 있습니다. - 라인하르트, 새 음악도 좀 들어보시지 그래요 🎶? - 피어투피어 - 단대단 통화 - 단대단 사용할 사람 - 봇 및 웹 사이트 - 결제 및 배송 정보 초기화 - 결제 정보 초기화 - 정말 결제와 배송 정보를 비우시겠습니까? - 배송 정보를 삭제하고 결제 제공 업체에 저장된 신용카드 정보를 삭제하도록 요청하시겠습니까? 텔레그램은 절대로 신용카드 정보를 저장하지 않습니다. - 결제 정보가 초기화되었습니다. - 배송 정보가 초기화되었습니다. - 결제 및 배송 정보가 초기화되었습니다. - 텔레그램을 이용하여 로그인하신 웹 사이트 목록입니다. - 배송 정보 - 결제 정보 - 클라우드 임시 저장 모두 삭제 - 모두 - 내 연락처 - 없음 - 모두 (-%1$d) - 내 연락처 (+%1$d) - 내 연락처 (-%1$d) - 내 연락처 (-%1$d, +%2$d) - 비공개 (+%1$d) - 모두 - 내 연락처 - 없음 - 모두 (-%1$d) - 내 연락처 (+%1$d) - 내 연락처 (-%1$d) - 내 연락처 (-%1$d, +%2$d) - 없음 (+%1$d) - 보안 - 계정 자동 탈퇴 - 알 수 없는 사용자가 만든 새로운 대화방 - 보관하고 알림 끄기 - 연락처에 등록되지 않은 사람들이 만든 새로운 대화방과 그룹, 채널들을 자동으로 보관하고 알림을 끕니다. - 계정 삭제하기 - 다음 기간 내 미접속 시 계정 탈퇴 - 다음 기간 동안 비활성화 시 - 이 기간 안에 한 번이라도 접속하지 않으시면, 모든 그룹, 메시지, 연락처와 더불어 회원님의 계정이 사라집니다. - 내 마지막 접속 시간을 볼 수 있는 사람 - 예외 추가 - 예외에 추가 - 회원님의 마지막 접속 시간을 공유 받지 못한 사람의 마지막 접속 시간이나 온라인 상태는 보실 수 없습니다. 대신 최근, 일주일 이내, 한달 이내와 같이 간략하게 보입니다. - 일부 개인 정보 설정을 바꾸셨습니다. 변경 사항을 적용할까요? - 항상 공유 - 항상 공유 안 함 - 사용자나 그룹 전체를 예외로 추가하여 앞선 설정을 무시하실 수 있습니다. - 항상 공유 - 항상 공유 안 함 - 사용자 추가 - 죄송합니다. 개인 정보 설정을 너무 많이 바꾸셨습니다. 잠시 기다리세요. - 사용자를 삭제하려면 길게 누르세요. - 그룹 - 나를 그룹 대화방에 추가할 수 있는 사람 - 회원님을 그룹과 채널에 추가할 수 있는 사람을 세세하게 제한하실 수 있습니다. - 항상 허용 - 항상 거부 - 위 사용자는 앞선 설정과 무관하게 회원님을 그룹과 채널에 추가하지 못합니다. - 회원님을 그룹과 채널에 추가할 수 있는 사람을 정하세요. - 죄송합니다. 사용자의 개인 정보 설정으로 인해 이 사용자를 그룹에 추가하실 수 없습니다. - 죄송합니다. 사용자의 개인 정보 설정으로 인해 이 사용자를 채널에 추가하실 수 없습니다. - 죄송합니다. 이 사용자의 개인 정보 설정으로 인해 함께 그룹을 만드실 수 없습니다. - 단대단을 끄시면, 회원님의 IP 주소를 노출시키지 않도록 모든 통화가 텔레그램 서버를 통해 전달됩니다. 다만 음성 및 영상 품질이 저하될 수 있습니다. - 동기화된 연락처 삭제 - 자주 이용하는 연락처 추천 - 신속한 연락을 위해 검색 구역 위쪽에 자주 대화하는 사람을 표시합니다. - 추천 사용 안 함 - 즐겨 사용하시는 인라인 봇과 자주 문자하시는 대화 상대들에 대한 모든 데이터가 삭제됩니다. - 사용자 또는 그룹 추가 - 예외 - 없음 - 연락처 삭제 - 연락처가 텔레그램 서버에서 제거됩니다.\n\n\'**연락처 동기화**\'가 켜져 있다면, 연락처가 다시 동기화됩니다. + 로그인에 사용할 이메일 선택 + 문자가 아닌 이메일을 통해 텔레그램 로그인 코드를 받게 됩니다. 접근 권한이 있는 이메일 주소를 입력하세요. + 새로운 이메일을 입력하세요 + 이메일 %1$s을 확인(스팸 폴더도 잊지 말아주세요)해주시고 보내드린 코드를 입력해주세요. + 이메일을 확인하세요 + 이메일 %1$s으로 보낸 코드를 입력해주세요. + 새 이메일을 확인하세요 + 새로운 이메일 %1$s으로 보낸 코드를 입력해주세요. + 혹은 동영상 보내는 중... GIF 보내는 중... - - - 공유 - 그룹에 추가 - 설정 - 도움말 - 메시지 접근 권한 있음 - 메시지 접근 권한 없음 - 이 봇은 무엇을 할 수 있나요? - 시작 - 다시 시작 - 봇 정지 - 봇 다시 시작 - - 완료 - 열기 - 저장 - 취소 - 닫기 - 바꾸기 - 추가 - 수정 - 보내기 - 전화 걸기 - 영상 통화 - 복사 - 삭제 - 시작 - 삭제하고 정지 - 전달 - 다시 보내기 - 카메라 - 갤러리 - 사진 제거 - 설정 - 확인 - 중단 - 더 기다리기 - 계속하기 - 링크 만들기 - 자르기 - 앱 업데이트 - 지금 업데이트 - 업데이트 - 나중에 - 수락 - 동의 - 거절 - 지금 삭제 - 뒤로 - 가입 - 거절 및 삭제 - 다음 - 활성화 - - 초대 링크를 통해 그룹에 들어오셨습니다 - un1님이 초대링크를 삭제했습니다 un2 - un1님이 초대링크를 생성했습니다 un2 - un1님이 초대링크 un2 을 un3로 수정했습니다. - un1 님이 볼륨 un2 를 %1$d%% 으로 변경했습니다. - un1님이 초대링크를 폐기했습니다 un2 - un1님이 초대링크를 수정했습니다 un2 - un1 님이 메시지가 %1$s 이후에 자동삭제가 되도록 설정했습니다. - 메시지가 %1$s 이후에 자동삭제가 되도록 설정했습니다. - 이 채널에 있는 메시지는 %1$s 이후에 자동으로 삭제 됩니다. - 이 채널에 메시지는 더 이상 자동삭제가 되지 않습니다. - un1 님이 자동삭제 타이머를 비활성화했습니다. - 자동삭제 타이머를 비활성화 했습니다. - un1 님이 초대 링크를 통해 그룹에 들어왔습니다 - un1 님이 un2 님을 추방했습니다 - un1 님이 그룹에서 나갔습니다 - un1 님이 un2 님을 추가했습니다 - un1 님이 그룹 사진을 제거했습니다 - un1 님이 그룹 사진을 바꿨습니다 - un1 님이 그룹 비디오를 변경했습니다 - un1 님이 그룹명을 un2(으)로 바꿨습니다 - un1 님이 그룹을 만들었습니다 - un2 님을 추방하셨습니다 - 그룹에서 나오셨습니다 - un2 님을 추가하셨습니다 - %1$s점 획득 - un1 님이 %1$s점 획득 - 회원님이 un2에서 %1$s점 획득 - un1님이 un2에서 %1$s점 획득 - 그룹 사진을 삭제하셨습니다 - 그룹 사진을 바꾸셨습니다 - 그룹 비디오를 변경했습니다 - 그룹명을 un2(으)로 바꾸셨습니다 - 그룹을 만드셨습니다 - un1 님이 나를 추방했습니다 - un1 님이 나를 추가했습니다 - un1 님이 그룹에 돌아왔습니다 - un1 님이 그룹에 들어왔습니다 - 그룹에 돌아오셨습니다 - un1님이 회원님으로 부터 %1$s내 있습니다 - 회원님이 un1님으로부터 %1$s내 있습니다. - un1 님이 현재 un2 님으로부터 %1$s 안에 있습니다 - un1님이 그룹에 초대했습니다 - un1님이 채널에 초대했습니다 - un1 님이 음성 대화를 시작했습니다 - 음성 대화를 시작했습니다 - 음성 대화가 시작되었습니다 - 음성 대화를 %1$s에 예약함 - 음성 대화 종료됨 (%s) - un1님이 un2님을 음성 대화에 초대했습니다 - un2 님을 음성 대화에 초대하셨습니다 - un1 님이 음성 대화에 초대했습니다 - %1$s에 로그인할 때 이 봇이 회원님에게 메시지를 보내도록 허용하셨습니다. - %1$s 님이 다음 서류를 받았습니다: %2$s - 개인 신상 명세 - 주소 - 여권 - 내부 여권 - 여권 등록 - 가등기 - 운전면허증 - 신분증 - 공과금 고지서 - 입출금 내역서 - 임대 계약서 - 전화번호 - 이메일 주소 - 이 메시지는 현재 사용하고 있는 텔레그램 버전에서 지원되지 않습니다.\n메시지를 보시려면 http://telegram.org/update 에서 앱을 업데이트하세요. - 사진 - 동영상 - 자동 삭제되는 사진 - 자동 삭제되는 동영상 - 사진이 만료되었습니다 - 동영상이 만료되었습니다 - GIF - 위치 - 실시간 위치 - 연락처 - 파일 - 스티커 - 음성 메시지 - 동영상 메시지 - 게임 - - 회원님이 스크린샷을 찍었습니다! - un1 님이 스크린샷을 찍었습니다! - - 상한선에 다다름 - 활동 없는 대화방 - 채널, %1$s 간 활동 없음 - %1$s, %2$s 간 활동 없음 - %1$s 나가기 - 커뮤니티가 너무 많습니다 - 죄송합니다. 너무 많은 그룹과 채널에 들어가 계십니다.\n몇 곳에서 나온 뒤 새로 들어가 주세요. - 죄송합니다. 너무 많은 그룹과 채널에 들어가 계십니다. 몇 곳에서 나온 뒤 새로 만들어 주세요. - 죄송합니다. 너무 많은 그룹과 채널에 들어가 계십니다. 기술적인 이유로, 대화방 몇 곳에서 나온 뒤 이 그룹 설정을 바꾸실 수 있습니다. - 죄송합니다. 해당 사용자가 너무 많은 그룹과 채널에 들어가 있습니다.\n먼저 몇 곳을 나가도록 요청해 주세요. + 죄송하지만, 상단에 %d개 이상의 주제를 고정할 수 없습니다. 잠깐! **참가자 서로에게서** 이 대화방의 **모든 메시지가 삭제**됩니다. + 주의! 이 채널의 **모든 메시지가 삭제**됩니다. 경고! 이 대화방의 **모든 메시지**가 삭제됩니다. 모두 삭제 + 로딩을 중단할까요? 불러오기를 중단할까요? 텔레그램을 업데이트하세요 죄송합니다. 텔레그램 앱이 최신 버전이 아니기에 이 요청을 받을 수 없습니다. 텔레그램을 업데이트해 주세요. 전화번호가 잘못되었습니다. 번호를 확인하여 다시 시도해 주세요. 텔레그램 패스포트를 사용하려면 텔레그램 계정에 로그인해 주세요. 차단된 전화번호입니다. - 코드가 만료되었습니다. 다시 로그인하세요. + 코드가 만료되었습니다. 다시 시작해 주세요. + 올바르지 않은 코드 + 종료할 수 없습니다 + 보안상의 이유로 방금 연결한 기기에서는 전화번호를 변경할 수 없습니다. 이전 연결을 사용하거나 몇 시간 동안 기다려주세요. + 이 이메일 도메인은 사용하실 수 없습니다. + 올바르지 않은 이메일 토큰입니다. + 올바르지 않은 이메일 주소입니다. + 이메일 로그인 + 이 이메일 주소는 새 기기에서 텔레그램 계정에 로그인할 때마다 사용됩니다. + 이메일 변경 너무 많이 시도하셨습니다. 나중에 다시 시도하세요. 너무 많이 시도하셨습니다. %1$s초 뒤에 다시 시도하세요. - 올바르지 않은 코드입니다. 다시 시도해주세요. + 코드가 올바르지 않습니다. 다시 시도해 주세요. 죄송합니다. 최근 들어 계정을 너무 많이 삭제한 뒤 재생성하셨습니다. 며칠 기다렸다 다시 가입해 주세요. - 올바른 이름을 입력해 주세요 + 이름이 올바르지 않습니다. 다시 입력해 주세요. 죄송합니다. 본 성을 사용하실 수 없습니다 불러오는 중... 동영상 재생기가 없습니다. 계속하려면 앱을 설치하세요. - 발생한 문제를 자세히 적어 sms@telegram.org으로 이메일을 보내 주세요. + 발생한 문제를 자세히 적어 reports@stel.com으로 이메일을 보내 주세요. \'%1$s\' 파일 유형을 처리할 수 있는 응용 프로그램이 없습니다. 계속하려면 프로그램을 설치해 주세요 지인분이 아직 텔레그램을 설치하지 않았습니다. 초대장을 보낼까요? 확실하십니까? 봇 추가 **%1$s** 님을 **%2$s** 그룹에 추가하시겠습니까? - 전달할 최근 메시지 개수: + 전달할 이전 메시지 수: %1$s 님을 그룹에 추가할까요? - %1$s 추가 - 참가자 추가 + 참가자 %1$d명 추가 정말 %1$s 님을 **%2$s**에 초대하시겠습니까? - 정말 %1$s 님을 **%2$s**에 추가하시겠습니까? + 정말 참가자 %2$s명을 **%1$d**으로 추가하겠습니까? 새로운 참가자에게 최근 메시지 100개를 보입니다 최근 메시지 100개를 **%1$s** 님에게 보이기 **%1$s** 님에게 이 메시지를 보내시겠습니까? **%1$s** 님에게 이 게임을 공유하시겠습니까? **%1$s** 님에게 이 연락처를 보내시겠습니까? - 정말 로그아웃하시겠습니까?\n\n텔레그램은 회원님의 모든 기기에서 동시에 끊김 없이 이용하실 수 있습니다.\n\n로그아웃하면 모든 비밀 대화가 사라진다는 점을 기억하세요. + 정말 로그아웃하시겠습니까?\n\n로그아웃시, 모든 비밀 대화가 사라지게 됩니다.\n\n회원님의 모든 기기에서 동시에, 하나의 앱에서 여러개의 텔레그램 계정을 사용할 수 있습니다. %1$s 삭제 %1$s 비우기 %1$s에서 캐시 비우기 - 정말 선택한 대화방을 삭제하시겠습니까? - 정말 선택한 대화방의 대화 내용을 비우시겠습니까? - 선택한 대화방의 캐시화된 텍스트와 미디어를 모두 삭제할까요? + 정말 이 대화방들을 삭제하시겠습니까? + 정말 이 대화방들의 대화 내용을 비우시겠습니까? + 선택하신 대화방의 캐시화된 텍스트와 미디어를 모두 삭제할까요? 이 그룹에서 정말 나가시겠습니까? 채널을 삭제하고 나가시겠습니까? 정말 **%1$s** 그룹을 삭제하고 나가시겠습니까? - 정말 이 대화방을 삭제하시겠습니까? - 정말 **%1$s** 님과의 대화방을 삭제하시겠습니까? - 정말 **%1$s** 대화방을 삭제하고 차단하시겠습니까? + 이 대화방을 영구적으로 삭제하시겠습니까? + **%1$s** 님과의 대화를 영구삭제하시겠습니까? + 정말 **%1$s** 님과의 대화방을 삭제하고 차단하시겠습니까? 정말 **저장한 메시지**를 삭제하시겠습니까? 정말 **%1$s** 님과의 비밀 대화를 삭제하시겠습니까? - 정말 **%1$s** 대화방을 삭제하시겠습니까? 클라우드 임시 저장 삭제 정말 클라우드 임시 저장을 모두 삭제하시겠습니까? 현재 위치를 공유할까요? @@ -3207,6 +990,8 @@ 봇이 요청을 받을 때마다 회원님의 위치를 확인합니다.이는 상세 위치 정보를 제공하는 데 사용됩니다. 전화번호를 공유할까요? 봇이 회원님의 전화번호를 감지할 것입니다. 이는 다른 서비스와 통합하는 데 도움이 됩니다. + **%s**이 회원님의 전화번호를 알게 됩니다. 이로써 다른 서비스와 수월히 통합할 수 있습니다. + 이 경우 봇 차단도 해제됩니다. 회원님의 %1$s 번호를 **%2$s** 님과 공유하시겠습니까? 정말 전화번호를 공유하시겠습니까? 정말 **%1$s** 님을 차단하시겠습니까? @@ -3214,22 +999,27 @@ 이 연락처를 정말 삭제하시겠습니까? 비밀 대화 비밀 대화를 시작하시겠습니까? - 정말 가입을 취소하시겠습니까? + 정말 가입을 중단하시겠습니까? 인증 절차를 중단하시겠습니까? 정말 **%1$s** 님과의 대화 내용을 비우시겠습니까? - 정말 **%1$s** 님과의 대화 내용을 비우시겠습니까? + **%1$s** 님과의 대화 내용을 모두에게 비우게 됩니다. 정말 진행하겠습니까? 정말 **%1$s**의 대화 내용을 비우시겠습니까? + **%1$s** 채널의 내역을 모두 비우겠습니까? 정말 이 대화방의 모든 메시지를 삭제하시겠습니까? - 정말 **저장한 메시지**를 비우시겠습니까? + 정말 **저장한 메시지**를 비우시겠습니까? 이 작업은 되돌릴 수 없습니다. 이 채널에서 캐시된 텍스트와 미디어를 모두 삭제할까요? 이 그룹에 저장된 텍스트와 미디어 캐시를 모두 삭제할까요? %1$s 삭제 + 저장 취소 %1$s개 메시지 삭제 + 메시지 저장 취소 \"모든 참가자에게서 삭제를 체크하여\" %1$s을(를) 나머지 그룹 참가자들의 수신함에서도 삭제하실 수도 있습니다. \"보낸 메시지 회수\"를 체크하여 %1$s을(를) 나머지 그룹 참가자들의 대화방에서도 삭제하실 수 있습니다. \"보낸 메시지 회수\"를 체크하여 %1$s을(를) **%2$s** 님의 대화방에서도 삭제하실 수 있습니다. + 정말 이 메시지를 저장한 메시지에서 제거하겠습니까? 정말 이 메시지를 삭제하시겠습니까? 정말 이 메시지들을 삭제하시겠습니까? + 정말 이 메시지들을 삭제하겠습니까? 정말 이 메시지를 모두에게서 삭제하시겠습니까? 정말 이 메시지들을 모두에게서 삭제하시겠습니까? 보낸 메시지 회수 @@ -3239,7 +1029,9 @@ **%1$s** 님에게 이 메시지를 보내시겠습니까? **%1$s** 님에게 이 게임을 공유하시겠습니까? **%1$s** 님에게 이 연락처를 보내시겠습니까? - 이 사용자명을 가진 텔레그램 계정이 없습니다. + 사용자명을 찾지 못했습니다. + 이 번호로 되어 있는 텔레그램 계정이 없습니다. + 대화 폴더를 찾을 수 없습니다. 이 봇은 그룹에 들어올 수 없습니다. 비밀 대화에서 링크 미리보기를 활성화하시겠습니까? 링크 미리보기는 텔레그램 서버에서 만들어지는 점을 유의하시기 바랍니다. 인라인 봇은 제3 개발자가 제공한다는 점을 유의하시기 바랍니다. 봇이 작동을 하기 위해서, 봇의 사용자명 뒤에 입력한 내역이 해당 개발자에게 보내지게 됩니다. @@ -3250,1201 +1042,66 @@ 텔레그램이 전화를 받을 수 있도록 허용해 주셔야 회원님의 전화번호를 자동으로 확인할 수 있습니다. 죄송합니다. 이 작업은 진행하실 수 없습니다. 죄송합니다. 차단된 사용자나 봇은 그룹에 추가하실 수 없습니다. 먼저 차단을 해제해 주세요. - 그룹 들어가기 - 죄송합니다. 이 사용자는 그룹의 참가자가 아니며 회원님에게 사용자를 초대할 권한이 없기에 관리자에 추가하실 수 없습니다. - 죄송합니다. 이 사용자는 추방된 사용자 목록에 있으며 회원님이 차단을 해제할 수 없기에 관리자로 추가하실 수 없습니다. + 이 사용자는 그룹의 참가자가 아니며 회원님에게 사용자를 초대할 권한이 없기에 관리자에 추가하실 수 없습니다. + 이 사용자는 추방된 사용자 목록에 있으며 회원님이 차단을 해제할 수 없기에 관리자로 추가하실 수 없습니다. 죄송합니다. 이 사용자는 추방된 사용자 목록에 있으며 회원님이 차단을 해제할 수 없기에 추가하실 수 없습니다. - 죄송합니다. 그룹 관리자인 이 사용자를 강등할 권한이 없으므로 차단하실 수 없습니다. - 죄송합니다. 그룹 관리자의 제한으로 스티커를 보내실 수 없습니다. - 죄송합니다. 그룹 관리자의 제한으로 미디어를 보내실 수 없습니다. - 죄송합니다. 그룹 관리자의 제한으로 설문을 보내실 수 없습니다. + 그룹 관리자인 이 사용자를 강등할 권한이 없으므로 차단하실 수 없습니다. + 그룹 관리자의 제한으로 스티커를 보내실 수 없습니다. + 그룹 관리자의 제한으로 미디어를 보내실 수 없습니다. + 죄송하지만, 이 그룹의 관리자가 여기에 사진을 보내지 못하도록 제한했습니다. + 죄송하지만, 이 그룹의 관리자가 여기에 영상을 보내지 못하도록 제한했습니다. + 그룹 관리자의 제한으로 설문을 보내실 수 없습니다. + 죄송하지만, 이 그룹의 관리자가 여기에 음성 메시지를 보내지 못하도록 제한했습니다. + 죄송하지만, 이 그룹의 관리자가 여기에 영상 메시지를 보내지 못하도록 제한했습니다. + 죄송하지만, 이 그룹의 관리자가 여기에 문서를 보내지 못하도록 제한했습니다. + 죄송하지만, 이 그룹의 관리자가 여기에 음악을 보내지 못하도록 제한했습니다. 죄송합니다. 이 그룹에서는 스티커를 보내실 수 없습니다. + 죄송하지만, 이 그룹에서는 사진 전송이 허용되지 않습니다. + 죄송하지만, 이 그룹에서는 영상 전송이 허용되지 않습니다. 죄송합니다. 이 그룹에서는 미디어를 보내실 수 없습니다. 죄송합니다. 이 그룹에서는 설문을 보내실 수 없습니다. + 죄송하지만, 이 그룹에서는 음성 메시지 전송이 허용되지 않습니다. + 죄송하지만, 이 그룹에서는 영상 메시지 전송이 허용되지 않습니다. + 죄송하지만, 이 그룹에서는 문서 전송이 허용되지 않습니다. + 죄송하지만, 이 그룹에서는 음악 전송이 허용되지 않습니다. + 죄송하지만, 개인 정보 설정 때문에 이 사용자에게 음성 메시지를 보낼 수 없습니다. + 죄송하지만, 개인 정보 설정 때문에 이 사용자에게 영상 메시지를 보낼 수 없습니다. + 전달할 수 없음 유감스럽게도, 텔레그램에 가입하실 수 없습니다.\n\n다른 서비스와 달리 저희는 광고 타겟팅이나 다른 상업적 목적으로 귀하의 데이터를 사용하지 않습니다. 텔레그램이 안전하고 기능이 풍부한 클라우드 서비스로서 작동하는 데 필요한 정보만을 저장합니다. 개인 정보 및 보안 설정에서 데이터 사용 방식(동기화된 연락처 삭제 따위)을 설정하실 수 있습니다.\n\n하지만 텔레그램의 간소한 요구 사항에 두루 동의하실 수 없다면 저희로서 이 서비스를 제공해 드리기가 어렵습니다. 나이 인증 개인 정보 정책 및 이용 약관 귀하가 %1$s세 이상임을 인증하려면 동의를 누르세요. - 유감스럽게도, 텔레그램에 가입하실 수 없습니다.\n\n다른 서비스와 달리 저희는 광고 타겟팅이나 다른 상업적 목적으로 귀하의 데이터를 사용하지 않습니다. 텔레그램이 안전하고 기능이 풍부한 클라우드 서비스로서 작동하는 데 필요한 정보만을 저장합니다. 개인 정보 및 보안 설정에서 데이터 사용 방식(동기화된 연락처 삭제 따위)을 설정하실 수 있습니다.\n\n하지만 텔레그램의 간소한 요구 사항에 두루 동의하실 수 없다면 저희로서 이 서비스를 제공해 드리기가 어렵습니다. - 주의! 텔레그램 클라우드에 저장하신 모든 데이터와 함께 회원님의 텔레그램 계정이 삭제되며, 되돌릴 수 없습니다.\n\n중요: 지금 취소하여 계정을 삭제하기 전에 데이터를 내보내실 수 있습니다. (최신 텔레그램 데스크톱을 열고 설정 > 고급 설정 > 텔레그램 데이터 내보내기에서 진행하실 수 있습니다.) + 유감스럽지만, 다른 방법이 없습니다. 다른 앱과 달리, 텔레그램은 광고 타겟팅이나 다른 상업적 목적으로 사용자 데이터를 사용하지 않습니다. 텔레그램은 기능이 풍부한 클라우드 서비스로서 작동하는 데 필요한 정보만을 저장합니다. 개인 정보 및 보안 설정에서 내 데이터에 대한 제어를 할 수 있습니다.\n\n만약 텔레그램의 간소한 요구 사항에 두루 동의하실 수 없다면 저희로서 이 서비스를 제공해 드리기가 어렵습니다. + 주의요망, 텔레그램 클라우드에 저장하신 모든 데이터와 회원님의 텔레그램 계정이 삭제되며, 되돌릴 수 없습니다.\n\n중요: 지금 취소하여 데이터를 잃어버리기 전에 먼저 내보내실 수 있습니다. (최신 텔레그램 데스크톱을 열고 설정 > 고급 설정 > 텔레그램 데이터 내보내기에서 진행하실 수 있습니다.) - 회원님이 모든 기기에서 친구들과 연락하실 수 있도록, 텔레그램의 단단히 암호화된 클라우드 서비스로 연락처가 계속 동기화됩니다. - 사진, 동영상, 음악과 그 밖의 미디어를 보내고 저장하려면 텔레그램에게 저장 공간 접근 권한이 필요합니다. - 음성 메시지를 보내려면 텔레그램에게 마이크 접근 권한을 부여하셔야 합니다. - 동영상을 녹화하려면 텔레그램에게 마이크 접근 권한을 부여하셔야 합니다. - 사진과 동영상을 촬영하려면 텔레그램에게 카메라 접근 권한을 부여하셔야 합니다. 설정에서 권한을 켜 주세요. + **텔레그램**이 사진, 동영상, 음악과 그 밖의 문서를 보내고 저장하려면 저장 공간 접근 권한이 필요합니다. 설정 > 권한을 탭하고 **파일과 미디어**를 활성화 해주세요. + **텔레그램**이 음성 메시지를 보내려면 마이크 접근 권한이 필요합니다. 설정 > 권한을 탭하고 **마이크**를 활성화 해주세요. + **텔레그램**이 음성 메시지를 보내려면 마이크 접근 권한이 필요합니다. 설정 > 권한을 탭하고 **마이크**를 활성화 해주세요. + **텔레그램**이 사진 및 동영상을 찍으려면 접근 권한이 필요합니다. 설정 > 권한을 탭하고 **카메라**를 활성화 해주세요. + **텔레그램**이 영상 메시지를 보내려면 카메라와 마이크 접근 권한이 필요합니다. 설정 > 권한을 탭하고 **마이크**와 **카메라**를 활성화 해주세요. 회원님의 위치를 친구들과 공유하려면 텔레그램에게 위치 접근 권한이 필요합니다. - 텔레그램이 위치 접근 권한이 필요합니다. + Telegram needs access to your location so that you can add the weather widget to your stories. + **텔레그램**이 친구들과 위치를 공유하려면 위치 접근 권한이 필요합니다. 설정 > 권한을 탭하고 **위치**를 활성화 해주세요. + **텔레그램**이 길을 찾으려면 위치 접근 권한이 필요합니다. 설정 > 권한을 탭하고 **위치**를 활성화 해주세요. + **텔레그램**에서 연락처를 친구들에게 공유 하려면 연락처 접근 권한이 필요합니다. 설정 > 권한을 탭하고 **연락처**를 활성화 해주세요. + **텔레그램**이 프로필 사진 및 영상을 업로드하기 위하여 저장 접근 권한이 필요합니다. 설정 > 권한을 탭하고 **파일 및 미디어**를 활성화 해주세요. + **텔레그램**이 스토리에 음악 파일을 추가하려면 음악 파일에 접근해야 합니다. 설정 > 권한을 탭하고 **음악 및 오디오**를 켜세요. 화면속화면 모드로 동영상을 재생하려면 텔레그램에게 다른 앱 위에 그릴 수 있는 권한을 부여하셔야 합니다. 오버레이 모드는 푸시-투-토크시, 텔레그램을 나가더라도 누가 대화를 하는지 알 수 있게 됩니다. 설정 통화가 제대로 실행되도록 텔레그램이 잠금 화면에 나타나는 것을 허용해 주세요. 이 대화에서 실시간 위치를 공유 하려면, 텔레그램이 항상 위치에 대해 접근 권한이, 백그라운드 실행시도 포함, 부여되어야 합니다.\n\n회원님이 설정한 시간에만 위치에 접근을 하게 되며, 언제든지 중지를 할 수 있습니다. 텔레그램은 대화에 위치를 공유하는 것 이외에 해당 정보를 일절 사용 하지 않습니다. 화면-속-화면 - 음성 대화 오버레이 - - 성장 - 팔로워 - 상호작용 - 경로별 조회수 - 경로별 신규 팔로워 - 언어 - 최근 게시글 - 전체 보기 - IV 상호작용 - 통계 불러오는 중... - 그래프를 만드는 동안 잠시 기다려 주세요 - 시간당 조회수 (UTC) - 쓸어올려 녹화를 유지하세요 - 알림 - 기기 저장 공간 - %s 여유 - 텔레그램 캐시 비우기 - 개요 - 게시글당 조회수 - 게시글당 공유수 - 알림 켬 - 로컬 데이터베이스 비우기 - %s 텔레그램 캐시 - %s 텔레그램 로컬 데이터베이스 - %s를 회원님 기기에 확보했습니다! - %s 기타 앱 - 그룹 참가자들 - 경로별 신규 참가자 - 참가자 주요 언어 - 메시지들 - 활동 - 참가자 - 메시지 - 읽기 위주 참가자 - 게시 위주 참가자 - %1$d 자 - %1$d 자 - %1$d 자 - %1$d 자 - %1$d 자 - %1$d 자 - 삭제 %1$d건 - 삭제 %1$d건 - 삭제 %1$d건 - 삭제 %1$d건 - 삭제 %1$d건 - 삭제 %1$d건 - 제한 %1$d건 - 제한 %1$d건 - 제한 %1$d건 - 제한 %1$d건 - 제한 %1$d건 - 제한 %1$d건 - 제한 %1$d 건 - 제한 %1$d 건 - 제한 %1$d 건 - 제한 %1$d 건 - 제한 %1$d 건 - 제한 %1$d 건 - 초대 %1$d건 - 초대 %1$d건 - 초대 %1$d건 - 초대 %1$d건 - 초대 %1$d건 - 초대 %1$d건 - 상위 관리자 - 상위 참가자 - 상위 초대자 - 메시지 당 %s자 - 주중 최고의 날 - 메시지 보기 - 프로필 열기 - 오늘 - 어제 - 조회수 - 공개 공유 - 비공개 공유 - 통계 보기 - 채널 통계 보기 - 메시지 통계 - 메시지 보기 - - 텔레그램 - 눈부신 속도 - 평생 무료 - 철통 보안 - 강력함 - 클라우드 기반 - 세상에서 가장 **빠른** 메신저입니다.\n **무료**이며 **안전합니다**. - **텔레그램**은 어느 메신저보다도\n빠르게 메시지를 전달합니다. - **텔레그램**은 영원히 무료입니다. \n광고도, 구독료도 없습니다. - **텔레그램**은 회원님의 메시지를\n해커의 공격으로부터 안전하게 지켜냅니다. - **텔레그램**으로 대화와 미디어를\n용량 걱정 없이 즐기세요. - **텔레그램**은 몇 대의 기기에서든\n자유롭게 이용하실 수 있습니다. - 시작하기 - - 계정설정 - 전화에 데이터 적게 사용 - 수신 전화 - 연결 중 - 암호화 키 교환 중 - 대기 중 - 요청 중 - 끊는 중 - 전화 종료 - 연결 실패 - 전화 거는 중 - 통화 중 - 텔레그램 전화 - 텔레그램 영상 통화 - 텔레그램으로 통화 중 - 참여중인 음성 대화 - 통화 종료 - 이미 통화하고 계십니다 - **%1$s**님과 통화를 종료하고 **%2$s**님과 새로 통화하겠습니까? - **%1$s**님과 전화를 종료하고 **%2$s**의 음성 대화를 시작하시겠습니까? - 다른 음성 대화가 진행중입니다 - **%1$s**의 음성 대화를 나가고, **%2$s**에서 새로운 음성 대화를 시작하겠습니까? - **%1$s**의 음성 대화를 나가고 **%2$s**에게 전화를 거시겠습니까? - 전화 - 벨소리 - 이 연락처에서 전화가 걸려올 때 울리는 벨소리를 맞춤하실 수 있습니다. - 전화 - 모든 전화내역 삭제 - 전화내역 삭제 - 모두에게서 삭제 - 최근 전화내역을 삭제하시겠습니까? - 최근에서 선택한 전화내역을 삭제하시겠습니까? - 위 사용자와 통화할 때에는 앞선 설정과 무관하게 단대단이 사용되거나 사용되지 않습니다. - 단대단으로 통화할 사람 - 나에게 전화할 수 있는 사람 - 회원님에게 전화할 수 있는 사람을 제한하실 수 있습니다. - 위 사용자는 앞선 설정과 무관하게 회원님에게 전화를 걸지 못합니다. - 안 함 - 모바일 데이터로만 가능 - 항상 - 로밍 중에만 - 받기 - 거부 - 회원님은 현재 오프라인이십니다. 전화를 걸려면 인터넷에 연결해 주세요. - 현재 오프라인입니다. 음성 대화에 참여하려면 인터넷에 연결 해주세요. - 비행기 모드가 현재 켜져 있습니다. 전화를 걸려면 비행기 모드를 끄거나 Wi-Fi에 연결하세요. - 현재 비행기 모드입니다. 음성 대화에 참여하려면, 비행기 모드를 종료하거나 와이파이에 연결 해주세요. - 오프라인 - 비행기 모드 - 설정 - 발신 전화 - 수신 전화 - 발신 영상 통화 - 수신 영상 통화 - 부재중 전화 - 취소된 전화 - 거부한 전화 - 부재중 영상 통화 - 취소된 영상 통화 - 거절된 영상 통화 - %1$s (%2$s) - 최근 통화 기록이 없습니다 - 최근 음성 및 영상 통화내역이\n여기에 표시됩니다. - **%1$s** 님의 앱은 호환되지 않는 프로토콜을 사용하고 있습니다. 상대가 앱을 업데이트한 뒤에서야 전화하실 수 있습니다. - **%1$s** 님의 텔레그램은 전화를 지원하지 않습니다. 이 사용자의 앱을 업데이트한 뒤에 전화할 수 있습니다. - %1$s 님의 앱이 영상 통화를 지원하지 않습니다. 전화를 거시기 전에 이 사용자가 앱을 업데이트해야 합니다. - 음성 통화 걸기 - 텔레그램 전화의 품질을 평가해주세요. - 전화를 걸려면 텔레그램에게 마이크 접근 권한을 부여하셔야 합니다. - 텔레그램이 영상 통화를 하기 위하여 기기의 마이크와 카메라에 접근이 필요합니다. - 텔레그램이 영상 통화를 하려면 카메라 접근 권한이 필요합니다. - 코멘트를 추가하실 수 있습니다 - 답신 전화 - 다시 전화 걸기 - 기본값 - 이 항목을 통화 기록에서 삭제하시겠습니까? - 텔레그램 전화 - 텔레그램 영상 통화 - 이어폰 - 헤드셋 - 스피커 - 휴대폰 - 블루투스 - 출력 장치 - 통화로 돌아가기 - 죄송합니다. 사용자의 개인 정보 설정으로 인해 **%1$s** 님에게 전화하실 수 없습니다. - 화면 속 이모지가 %1$s 님 것과 같다면, 이 통화는 100% 안전합니다. - 전화 평가 - 무엇이 잘못됐나요? - 기술 정보 포함 - 대화 내용은 공개되지 않으며 빠른 시일 내로 문제를 해결해 드리는 데 도움이 됩니다. - 텔레그램 전화를 개선할 수 있도록 도와주셔서 감사합니다. - %s 님으로 받는 중 - 문자로 응답 - 이 빠른 응답 문구들을 전화가 걸려올 때 텔레그램 메시지로 보내실 수 있습니다. 무엇이든지 원하는 말로 바꾸세요. - 지금 대화할 수 없어요. 무슨 일인가요? - 곧바로 전화할게요. - 나중에 전화할게요. - 지금 대화할 수 없어요. 나중에 전화 주시겠어요? - 맞춤 메시지... - 맞춤 허용 - %s님에게 텔레그램으로 전화 - %s님으로 부터의 영상 통화 - 지금은 텔레그램으로 전화하실 수 없습니다. - 제 목소리가 울렸습니다 - 잡음이 들렸습니다 - 상대가 번번이 사라졌습니다 - 소리가 왜곡되었습니다 - 상대의 목소리가 들리지 않았습니다 - 제 목소리가 상대에게 들리지 않았습니다 - 통화가 예기치 않게 종료되었습니다 - 동영상이 왜곡됨 - 동영상이 깨져 보임 - 여기를 눌러 카메라를 켜세요 - 음소거 해제 - 또는 길게 눌러 말하기 - 실시간 대화 중 - 관리자가 음소거함 - 음소거됨 - 듣기 전용 모드입니다 - 발언 희망시 탭해주세요 - 발언을 요청했습니다 - 저희가 발언자들에게 알렸습니다 - 음소거 - 영상 시작 - 영상 중단 - 스피커 - 전환 - 영상 통화로 전환할까요? - 전환 - %s 님의 마이크가 꺼져 있습니다 - %s 님의 카메라가 꺼져 있습니다 - 수락 - 거부 - 다시 시도 - 영상 - %1$s에게 전화를 겁니까? - 음성 통화 - 정말 **%1$s**에게 영상 통화를 거시겠습니까? - 영상 통화 - 다시 연결중 - 음성 대화 시작 - 음성 대화 - 이 그룹에서 음성 대화를 시작하겠습니까? - 이 채널에서 음성 대화를 시작하겠습니까? - 음성 대화 관리 - 들어가기 - 참가자 %1$s명 말하는 중 - 참가자 %1$s명 말하는 중 - 참가자 %1$s명 말하는 중 - 참가자 %1$s명 말하는 중 - 참가자 %1$s명 말하는 중 - 참가자 %1$s명 말하는 중 - 말하는 중 - %1$d%%로 말하는 중 - 듣는 중 - 발언 희망 - 초대됨 - 나가기 - 종료 - 마이크 음소거 - 정말 **%1$s**님을 음성 대화에서 음소거 하겠습니까? - 참가자 추방 - %1$s님을 음성대화에서 추방하고, %2$s에서 차단하겠습니까? - **%1$s**님이 그룹에서 내보내졌습니다 - **%1$s** 님이 발언 할 수 있습니다 - **%1$s**님의 음소거가 해제됨 - **%1$s** 님은 대화에서 음소거 되었습니다 - **%1$s**님은 이 대화에서 나에게 음소거됨 - 마이크 끄기 - 새로운 참가자도 말할 수 있음 - 새로운 참가자는 말할 수 없음 - 초대 링크 공유 - 음성 대화 종료 - 음성 대화 취소 - 연결 중... - 음성 대화 나가기 - 정말 음성 대화를 나가시겠습니까? - 음성 대화 종료 - 정말 이 음성 대화를 종료하시겠습니까? - 음성 대화 종료 - 음성 대화 보기 - 음성 대화 - 예약된 음성 대화 - 음성 대화 참여 - 선택한 사용자는 이미 음성 대화에 참여 중입니다. - 죄송하지만, 익명 관리자로 음성 대화에 참여할 수 없습니다. - 죄송합니다, 이 음성 대화방이 다 찼습니다. - 음성 대화에 un1님이 un2님을 초대했습니다 - 음성 대화 참여 - 안녕하세요! 음성 대화에 참여해보세요: %1$s - 참가자 초대 - 초대 링크 공유 - 추방 - 프로필 열기 - 채널 열기 - 그룹 열기 - 말하기 허용 - 초대할 참가자 검색... - 초대 링크 복사 - 초대 링크가 클립보드에 복사되었습니다. - 마이크 켜기 - 음성 대화가 종료되었습니다. 새로운 음성 대화를 시작하겠습니까? - 참가자 추가 - **%1$s**님을 **%2$s**에 추가하시겠습니까? - **%1$s**님을 음성 대화에 초대했습니다 - 추가 - 볼륨 - 나에게 음소거 - 나에게 음소거됨 - 음소거 해제 - 들어가려면 누르세요 - 녹음 시작 - 녹음 중단 - 다음으로 음성 대화를 시작... - 음성 대화를 다음으로 참가... - 다음으로 나를 표시... - 개인 계정 혹은 소유하고 있는 채널로 표시될지 선택해주세요. - 개인 계정, 이 그룹 혹은 소유하고 있는 채널 중 한 개로 표시될지 선택해주세요. - %1$s으로 계속하기 - 음성 대화 제목 수정 - 권한 편집 - 음성대화 참가자들에게 회원님이 **%1$s**으로 표시 됩니다. - 음성 대화 제목 - 발언 가능 - 듣기 전용 - 발언자 링크 복사 - 청취자 링크 복사 - 이제 발언 할 수 있습니다. - 이제 **%1$s**에서 발언 할 수 있습니다. - 녹음 중단 - 음성 대화 녹음을 중단하겠습니까? - 녹음 시작 - 이 대화 녹음을 시작하고 결과를 음성 파일로 저장 하고 싶으신가요?\n\n참가자들은 이 대화가 녹음되는지 알게 됩니다. - 녹음 제목 - **저장한 메시지로** 음성이 저장됨 - 음성 대화 녹음이 시작됨 - 음성 대화가 녹음되고 있습니다 - 개인 계정 - 말하기 요청 취소 - 발언자로 들어가기 - 청취자로 들어가기 - 음성 대화 들어가기 - 정말 개인 계정으로 음성 대화에 표시가 되길 원하십니까? - 음성 대화가 음소거됨. - 음성 대화가 음소거 해제됨. - 음성 대화 시작시 이 그룹 참가자들에게 알림이 가게 됩니다. - 음성 대화 시작시 이 채널 구독자들에게 알림이 가게 됩니다. - 회원님이 다음으로 표시됩니다: - 음성 대화 시작 - 음성 대화 예약 - 지금 시작 - 알림 설정 - 알림 취소 - 그룹 참가자들은 %1$s 이후 음성 대화가 시작된다는 알림을 받게 됩니다. - 채널 구독자들은 %1$s 이후 음성 대화가 시작된다는 알림을 받게 됩니다. - 다음 이후 시작 - 지연 시간 - 공유 - 시작시 알림으로 알려드립니다. - **%1$s** 님이 음성 대화에 들어왔습니다. - **%1$s** 님이 음성 대화에 들어왔습니다. - 활성화된 음성 통화 - 최근 통화 내역 - 화면 공유 - 화면 공유 중지 - 회원님입니다 - 대화 열기 - 사진 변경 - 자기소개 추가 - 이름 변경 - 자기소개 - 자기소개에 대해 몇 줄 적을 수 있습니다. 내용은 모두에게 보여집니다. - 탭하여 자기소개 추가 - 자기소개 수정 - 설명 추가 - 설명 수정 - 탭하여 프로필 수정 - 탭하여 자기소개 추가 - 탭하여 사진 추가 - 탭하여 설명 추가 - 탭하여 사진 혹은 설명 추가 - 제목 수정 - 제목 - 새로운 사진 설정 - 카메라 - 영상 미리보기 - 음성 대화에 참여중인 다른 참가자들에게 내 카메라 영상이 공유 됩니다 - 카메라 영상 공유 - 미리보기 - 고정 - 고정 해제 - 음성 - 음성 출력 선택 - 영상 일시정지 됨 - 내 화면을\n공유중입니다 - 내 화면을 공유 중입니다 - 공유 중지하기 - 소음 억제 - 사용 - 사용안함 - 처음 %1$s명 참가자에게만\n영상이 제공됩니다 - - 초대 링크 관리 - 기간 및 횟수가 제한된 초대링크를 추가적으로 생성할 수 있습니다. - 누구나 텔레그램이 있다면 이 링크를 따라 그룹에 들어올 수 있습니다. - "누구나 텔레그램이 있다면 이 링크를 따라 채널에 들어올 수 있습니다. " - 링크 수정 - 링크 저장 - 제한 없음 - 기간에 따라 제한 - 사용 횟수 제한 - 새 링크 - 맞춤 지속 시간 설정 - 맞춤 제한값 입력 - 일정 시간 이후 링크를 만료시킬 수 있습니다. - 일정 횟수 이상 사용이 된 링크를 만료시킬 수 있습니다. - 아직 아무도 입장 안함 - 만료됨 - QR 코드 생성 - 링크 생성자 - QR 코드로 초대하기 - QR 코드 공유 - 폐기됨 - %s 이후에 링크 만료됨 - 이후 만료 - 시간 제한 설정 - 폐기된 링크 - 링크 삭제 - 폐기된 링크 - 이 링크는 더 이상 사용을 못합니다 - 이 링크의 시간 제한이 만료되었습니다. - 이 링크는 사용 제한에 도달했습니다. - 새 링크 생성 - 폐기된 링크 모두 삭제 - 아직 아무도 입장 안함 - 한계 도달 - 텔레그램에 있는 누구나 이 코드를 스캔하여 그룹에 입장 할 수 있습니다. - 링크를 삭제합니다. - 이 작업은 모든 폐기된 링크를 삭제합니다. - 사용이 완료 된 후 폐기되는 초대링크를 생성할 수 있습니다. - 이 관리자가 생성한 초대링크 - 다른 관리자가 만든 링크 - 이 관리자의 초대링크 - 텔레그램에 있는 누구나 이 코드를 스캔하여 채널에 입장 할 수 있습니다. - 누구나 텔레그램을 설치했다면 이 링크를 따라 채널에 들어올 수 있습니다. - " %s 이후에 링크가 만료됩니다" - 공개 링크 - 이 초대링크는 만료되었습니다. - 복사 - 공유 - 초대링크가 폐기되었습니다. - 만료된 링크 + 영상 대화 오버레이 메시지 보내기 %1$s 음성 통화 걸기 %1$s 영상 통화 걸기 %1$s - - un1님이 말하는 중 - un1님이 말하는 중 - un1님이 말하는 중 - un1님이 말하는 중 - un1님이 말하는 중 - un1님이 말하는 중 - 배경 %1$d개 삭제 - 배경 %1$d개 삭제 - 배경 %1$d개 삭제 - 배경 %1$d개 삭제 - 배경 %1$d개 삭제 - 배경 %1$d개 삭제 - 받는 사람 %1$d명 - 받는 사람 %1$d명 - 받는 사람 %1$d명 - 받는 사람 %1$d명 - 받는 사람 %1$d명 - 받는 사람 %1$d명 - 온라인 %1$d명 - 온라인 %1$d명 - 온라인 %1$d명 - 온라인 %1$d명 - 온라인 %1$d명 - 온라인 %1$d명 - 텔레그램에 %1$d개의 연락처가 있음 - 텔레그램에 %1$d개의 연락처가 있음 - 텔레그램에 %1$d개의 연락처가 있음 - 텔레그램에 %1$d개의 연락처가 있음 - 텔레그램에 %1$d개의 연락처가 있음 - 텔레그램에 %1$d개의 연락처가 있음 - 안녕하세요, %1$d명의 친구와 텔레그램이라는 메신저를 사용하고 있어요. 함께 사용해요! 여기서 다운로드하세요: %2$s - 안녕하세요, %1$d명의 친구와 텔레그램이라는 메신저를 사용하고 있어요. 함께 사용해요! 여기서 다운로드하세요: %2$s - 안녕하세요, %1$d명의 친구와 텔레그램이라는 메신저를 사용하고 있어요. 함께 사용해요! 여기서 다운로드하세요: %2$s - 안녕하세요, %1$d명의 친구와 텔레그램이라는 메신저를 사용하고 있어요. 함께 사용해요! 여기서 다운로드하세요: %2$s - 안녕하세요, %1$d명의 친구와 텔레그램이라는 메신저를 사용하고 있어요. 함께 사용해요! 여기서 다운로드하세요: %2$s - 안녕하세요, %1$d명의 친구와 텔레그램이라는 메신저를 사용하고 있어요. 함께 사용해요! 여기서 다운로드하세요: %2$s - %1$d 명 들어옴 - %1$d 명 들어옴 - %1$d 명 들어옴 - %1$d 명 들어옴 - %1$d 명 들어옴 - %1$d 명 들어옴 - %1$d 명 남음 - %1$d 명 남음 - %1$d 명 남음 - %1$d 명 남음 - %1$d 명 남음 - %1$d 명 남음 - %1$d 명 입장 가능 - %1$d 명 입장 가능 - %1$d 명 입장 가능 - %1$d 명 입장 가능 - %1$d 명 입장 가능 - %1$d 명 입장 가능 - %1$d 일 남음 - %1$d 일 남음 - %1$d 일 남음 - %1$d 일 남음 - %1$d 일 남음 - %1$d 일 남음 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 대화방 %1$d개 - 채널 %1$d개 - 채널 %1$d개 - 채널 %1$d개 - 채널 %1$d개 - 채널 %1$d개 - 채널 %1$d개 - 그룹 %1$d개 - 그룹 %1$d개 - 그룹 %1$d개 - 그룹 %1$d개 - 그룹 %1$d개 - 그룹 %1$d개 - 참가자 %1$d명 - 참가자 %1$d명 - 참가자 %1$d명 - 참가자 %1$d명 - 참가자 %1$d명 - 참가자 %1$d명 - 참가자 %1$d명 - 참가자 %1$d명 - 참가자 %1$d명 - 참가자 %1$d명 - 참가자 %1$d명 - 참가자 %1$d명 - 외 %1$d명이 입력 중 - 외 %1$d명이 입력 중 - 외 %1$d명이 입력 중 - 외 %1$d명이 입력 중 - 외 %1$d명이 입력 중 - 외 %1$d명이 입력 중 - %1$s 님 외 %2$d명이 입력 중 - %1$s 님 외 %2$d명이 입력 중 - %1$s 님 외 %2$d명이 입력 중 - %1$s 님 외 %2$d명이 입력 중 - %1$s 님 외 %2$d명이 입력 중 - %1$s 님 외 %2$d명이 입력 중 - 새로운 메시지 %1$d개 - 새로운 메시지 %1$d개 - 새로운 메시지 %1$d개 - 새로운 메시지 %1$d개 - 새로운 메시지 %1$d개 - 새로운 메시지 %1$d개 - 메시지 %1$d개를 고정 해제했습니다 - 메시지 %1$d개를 고정 해제했습니다 - 메시지 %1$d개를 고정 해제했습니다 - 메시지 %1$d개를 고정 해제했습니다 - 메시지 %1$d개를 고정 해제했습니다 - 메시지 %1$d개를 고정 해제했습니다 - 메시지 %1$d개 - 메시지 %1$d개 - 메시지 %1$d개 - 메시지 %1$d개 - 메시지 %1$d개 - 메시지 %1$d개 - "항목 %1$d개 " - "항목 %1$d개 " - "항목 %1$d개 " - "항목 %1$d개 " - "항목 %1$d개 " - "항목 %1$d개 " - 대화방 %1$d곳에서 보냄 - 대화방 %1$d곳에서 보냄 - 대화방 %1$d곳에서 보냄 - 대화방 %1$d곳에서 보냄 - 대화방 %1$d곳에서 보냄 - 대화방 %1$d곳에서 보냄 - %1$d 초 - %1$d 초 - %1$d 초 - %1$d 초 - %1$d 초 - %1$d 초 - %1$d 분 - %1$d 분 - %1$d 분 - %1$d 분 - %1$d 분 - %1$d 분 - %1$d 시간 - %1$d 시간 - %1$d 시간 - %1$d 시간 - %1$d 시간 - %1$d 시간 - %1$d 일 - %1$d 일 - %1$d 일 - %1$d 일 - %1$d 일 - %1$d 일 - %1$d초 - %1$d초 - %1$d초 - %1$d초 - %1$d초 - %1$d초 - %1$d분 - %1$d분 - %1$d분 - %1$d분 - %1$d분 - %1$d분 - %1$d시간 - %1$d시간 - %1$d시간 - %1$d시간 - %1$d시간 - %1$d시간 - %1$d일 - %1$d일 - %1$d일 - %1$d일 - %1$d일 - %1$d일 - %1$d주 - %1$d주 - %1$d주 - %1$d주 - %1$d주 - %1$d주 - %1$d개월 - %1$d개월 - %1$d개월 - %1$d개월 - %1$d개월 - %1$d개월 - %1$d년 - %1$d년 - %1$d년 - %1$d년 - %1$d년 - %1$d년 - 사용자 %1$d명 - 사용자 %1$d명 - 사용자 %1$d명 - 사용자 %1$d명 - 사용자 %1$d명 - 사용자 %1$d명 - %1$d 번 - %1$d 번 - %1$d 번 - %1$d 번 - %1$d 번 - %1$d 번 - %1$d 미터 - %1$d 미터 - %1$d 미터 - %1$d 미터 - %1$d 미터 - %1$d 미터 - 스티커 %1$d장 - 스티커 %1$d장 - 스티커 %1$d장 - 스티커 %1$d장 - 스티커 %1$d장 - 스티커 %1$d장 - 마스크 %1$d개 - 마스크 %1$d개 - 마스크 %1$d개 - 마스크 %1$d개 - 마스크 %1$d개 - 마스크 %1$d개 - 구독자 %1$d명 - 구독자 %1$d명 - 구독자 %1$d명 - 구독자 %1$d명 - 구독자 %1$d명 - 구독자 %1$d명 - 예외 %1$d개 - 예외 %1$d개 - 예외 %1$d개 - 예외 %1$d개 - 예외 %1$d개 - 예외 %1$d개 - %1$d 님이 사용자를 추방했습니다 - %1$d 님이 사용자를 추방했습니다 - %1$d 님이 사용자를 추방했습니다 - %1$d 님이 사용자를 추방했습니다 - %1$d 님이 사용자를 추방했습니다 - %1$d 님이 사용자를 추방했습니다 - %1$d - %1$d - %1$d - %1$d - %1$d - %1$d - %1$d분 전 갱신됨 - %1$d분 전 갱신됨 - %1$d분 전 갱신됨 - %1$d분 전 갱신됨 - %1$d분 전 갱신됨 - %1$d분 전 갱신됨 - **%1$d**초 - **%1$d**초 - **%1$d**초 - **%1$d**초 - **%1$d**초 - **%1$d**초 - **%1$d**분 - **%1$d**분 - **%1$d**분 - **%1$d**분 - **%1$d**분 - **%1$d**분 - **%1$d**시간 - **%1$d**시간 - **%1$d**시간 - **%1$d**시간 - **%1$d**시간 - **%1$d**시간 - **%1$d**일 - **%1$d**일 - **%1$d**일 - **%1$d**일 - **%1$d**일 - **%1$d**일 - %1$s회 조회 - %1$s회 조회 - %1$s회 조회 - %1$s회 조회 - %1$s회 조회 - %1$s회 조회 - %1$s회 공유 - %1$s회 공유 - %1$s회 공유 - %1$s회 공유 - %1$s회 공유 - %1$s회 공유 - %1$s 공개 공유 - %1$s 공개 공유 - %1$s 공개 공유 - %1$s 공개 공유 - %1$s 공개 공유 - %1$s 공개 공유 - %1$s개 공유 - %1$s개 공유 - %1$s개 공유 - %1$s개 공유 - %1$s개 공유 - %1$s개 공유 - 스티커 묶음 %1$s개 - 스티커 묶음 %1$s개 - 스티커 묶음 %1$s개 - 스티커 묶음 %1$s개 - 스티커 묶음 %1$s개 - 스티커 묶음 %1$s개 - - 전달할 메시지 %1$d개 - 전달할 메시지 %1$d개 - 전달할 메시지 %1$d개 - 전달할 메시지 %1$d개 - 전달할 메시지 %1$d개 - 전달할 메시지 %1$d개 - 사진 %1$d장 - 사진 %1$d장 - 사진 %1$d장 - 사진 %1$d장 - 사진 %1$d장 - 사진 %1$d장 - 동영상 %1$d개 - 동영상 %1$d개 - 동영상 %1$d개 - 동영상 %1$d개 - 동영상 %1$d개 - 동영상 %1$d개 - 파일 %1$d개 - 파일 %1$d개 - 파일 %1$d개 - 파일 %1$d개 - 파일 %1$d개 - 파일 %1$d개 - 음악 파일 %1$d개 - 음악 파일 %1$d개 - 음악 파일 %1$d개 - 음악 파일 %1$d개 - 음악 파일 %1$d개 - 음악 파일 %1$d개 - 공통 그룹 %1$d곳 - 공통 그룹 %1$d곳 - 공통 그룹 %1$d곳 - 공통 그룹 %1$d곳 - 공통 그룹 %1$d곳 - 공통 그룹 %1$d곳 - 미디어 %1$d개 - 미디어 %1$d개 - 미디어 %1$d개 - 미디어 %1$d개 - 미디어 %1$d개 - 미디어 %1$d개 - 음성 메시지 %1$d개 - 음성 메시지 %1$d개 - 음성 메시지 %1$d개 - 음성 메시지 %1$d개 - 음성 메시지 %1$d개 - 음성 메시지 %1$d개 - 링크 %1$d개 - 링크 %1$d개 - 링크 %1$d개 - 링크 %1$d개 - 링크 %1$d개 - 링크 %1$d개 - GIF %1$d개 - GIF %1$d개 - GIF %1$d개 - GIF %1$d개 - GIF %1$d개 - GIF %1$d개 - 차단된 사용자 %1$d명 - 차단된 사용자 %1$d명 - 차단된 사용자 %1$d명 - 차단된 사용자 %1$d명 - 차단된 사용자 %1$d명 - 차단된 사용자 %1$d명 - 전달할 파일 %1$d개 - 전달할 파일 %1$d개 - 전달할 파일 %1$d개 - 전달할 파일 %1$d개 - 전달할 파일 %1$d개 - 전달할 파일 %1$d개 - 전달할 사진 %1$d장 - 전달할 사진 %1$d장 - 전달할 사진 %1$d장 - 전달할 사진 %1$d장 - 전달할 사진 %1$d장 - 전달할 사진 %1$d장 - 전달할 동영상 %1$d개 - 전달할 동영상 %1$d개 - 전달할 동영상 %1$d개 - 전달할 동영상 %1$d개 - 전달할 동영상 %1$d개 - 전달할 동영상 %1$d개 - 전달할 오디오 파일 %1$d개 - 전달할 오디오 파일 %1$d개 - 전달할 오디오 파일 %1$d개 - 전달할 오디오 파일 %1$d개 - 전달할 오디오 파일 %1$d개 - 전달할 오디오 파일 %1$d개 - 전달할 음성 메시지 %1$d개 - 전달할 음성 메시지 %1$d개 - 전달할 음성 메시지 %1$d개 - 전달할 음성 메시지 %1$d개 - 전달할 음성 메시지 %1$d개 - 전달할 음성 메시지 %1$d개 - 전달할 동영상 메시지 %1$d개 - 전달할 동영상 메시지 %1$d개 - 전달할 동영상 메시지 %1$d개 - 전달할 동영상 메시지 %1$d개 - 전달할 동영상 메시지 %1$d개 - 전달할 동영상 메시지 %1$d개 - 전달할 위치 %1$d곳 - 전달할 위치 %1$d곳 - 전달할 위치 %1$d곳 - 전달할 위치 %1$d곳 - 전달할 위치 %1$d곳 - 전달할 위치 %1$d곳 - 전달할 연락처 %1$d개 - 전달할 연락처 %1$d개 - 전달할 연락처 %1$d개 - 전달할 연락처 %1$d개 - 전달할 연락처 %1$d개 - 전달할 연락처 %1$d개 - 전달할 스티커 %1$d장 - 전달할 스티커 %1$d장 - 전달할 스티커 %1$d장 - 전달할 스티커 %1$d장 - 전달할 스티커 %1$d장 - 전달할 스티커 %1$d장 - 전달할 설문 %1$d개 - 전달할 설문 %1$d개 - 전달할 설문 %1$d개 - 전달할 설문 %1$d개 - 전달할 설문 %1$d개 - 전달할 설문 %1$d개 - 및 %1$d 개 - 및 %1$d 개 - 및 %1$d 개 - 및 %1$d 개 - 및 %1$d 개 - 및 %1$d 개 - 사진 %1$d장 선택됨 - 사진 %1$d장 선택됨 - 사진 %1$d장 선택됨 - 사진 %1$d장 선택됨 - 사진 %1$d장 선택됨 - 사진 %1$d장 선택됨 - 동영상 %1$d개 선택됨 - 동영상 %1$d개 선택됨 - 동영상 %1$d개 선택됨 - 동영상 %1$d개 선택됨 - 동영상 %1$d개 선택됨 - 동영상 %1$d개 선택됨 - 미디어 %1$d개 선택됨 - 미디어 %1$d개 선택됨 - 미디어 %1$d개 선택됨 - 미디어 %1$d개 선택됨 - 미디어 %1$d개 선택됨 - 미디어 %1$d개 선택됨 - %1$d명이 이 테마를 사용하는 중 - %1$d명이 이 테마를 사용하는 중 - %1$d명이 이 테마를 사용하는 중 - %1$d명이 이 테마를 사용하는 중 - %1$d명이 이 테마를 사용하는 중 - %1$d명이 이 테마를 사용하는 중 - %1$d /%2$d의 결과 - %1$d /%2$d의 결과 - %1$d /%2$d의 결과 - %1$d /%2$d의 결과 - %1$d /%2$d의 결과 - %1$d /%2$d의 결과 - 사용자 %1$d명 - 사용자 %1$d명 - 사용자 %1$d명 - 사용자 %1$d명 - 사용자 %1$d명 - 사용자 %1$d명 - 사용자 %1$d명 - 사용자 %1$d명 - 사용자 %1$d명 - 사용자 %1$d명 - 사용자 %1$d명 - 사용자 %1$d명 - %2$d 중 %1$d 선택함 - %2$d 중 %1$d 선택함 - %2$d 중 %1$d 선택함 - %2$d 중 %1$d 선택함 - %2$d 중 %1$d 선택함 - %2$d 중 %1$d 선택함 - 답글 %1$d 개 보기 - 답글 %1$d 개 보기 - 답글 %1$d 개 보기 - 답글 %1$d 개 보기 - 답글 %1$d 개 보기 - 답글 %1$d 개 보기 - 답글 %1$d개 - 답글 %1$d개 - 답글 %1$d개 - 답글 %1$d개 - 답글 %1$d개 - 답글 %1$d개 - 댓글 %1$d 개 - 댓글 %1$d 개 - 댓글 %1$d 개 - 댓글 %1$d 개 - 댓글 %1$d 개 - 댓글 %1$d 개 - 댓글 %1$d개 - 댓글 %1$d개 - 댓글 %1$d개 - 댓글 %1$d개 - 댓글 %1$d개 - 댓글 %1$d개 - 댓글 - 댓글 - 댓글 - 댓글 - 댓글 - 댓글 - %1$d개의 고정된 메시지 - %1$d개의 고정된 메시지 - %1$d개의 고정된 메시지 - %1$d개의 고정된 메시지 - %1$d개의 고정된 메시지 - %1$d개의 고정된 메시지 - 이 링크를 통해 %s 명 입장 가능합니다 - 이 링크를 통해 %s 명 입장 가능합니다 - 이 링크를 통해 %s 명 입장 가능합니다 - 이 링크를 통해 %s 명 입장 가능합니다 - 이 링크를 통해 %s 명 입장 가능합니다 - 이 링크를 통해 %s 명 입장 가능합니다 - %1$d개의 대화 고정됨 - %1$d개의 대화 고정됨 - %1$d개의 대화 고정됨 - %1$d개의 대화 고정됨 - %1$d개의 대화 고정됨 - %1$d개의 대화 고정됨 - %1$d개의 대화 고정해제됨 - %1$d개의 대화 고정해제됨 - %1$d개의 대화 고정해제됨 - %1$d개의 대화 고정해제됨 - %1$d개의 대화 고정해제됨 - %1$d개의 대화 고정해제됨 - - 그룹 - 채널 - 비밀 대화 - %s 보냄 - %s 받음 - %s 에 예약됨 - 돌아가기 - 네비게이션 메뉴 열기 - 메뉴 열기 - 메뉴 닫기 - 사진 뷰어에서 열기 - %2$s로 %1$s - 옵션 더 보기 - 야간 테마로 전환하기 - 낮 테마로 전환하기 - 재생 - 정지 - 다운로드 - 다운로드 취소 - 파일 열기 - 메시지 옵션 - 선택 모드로 들어가기 - 이모지, 스티커 및 GIF - 미디어 첨부 - 조용히 보내기 - 알림 보내기 - 봇 명령어 - 봇 키보드 - 키보드 보이기 - 음성 메시지 녹음 - 동영상 메시지 녹화 - 대화방 열기 - 프로필 사진 - 프로필 사진 바꾸기 - 정렬 바꾸기 - 계정 보이기 - 계정 숨기기 - 메시지로 - 답장 취소 - 전달 취소 - 편집 취소 - 답장 중 - 전달 중 - 편집 중 - 애플리케이션 잠금 - 애플리케이션 잠금 해제 - 뒤로가기 - 이전 - 반복, 끔 - 반복, 재생 목록 - 반복, 한 번 - 오디오 재생기 닫기 - 2배 속도로 재생 - 실시간 위치 공유 중단 - 즉석 카메라 - 셔터 - 카메라 전환 - 플래시, 끔 - 플래시, 자동 - 플래시, 켬 - 스티커 묶음 - GIF - 스티커 - 확장 패널 - 패널 모으기 - 사용자 옵션 - 회전 - 미러 - 사진 편집기 - 조정 - 사진 뷰어 - 맨 밑으로 - 다음 언급으로 - 마이크 음소거 - 제목 - 표제 - 내 위치 - 근처에 위치를 공유하는 사람이 접근하였을 시 알림 - 동영상 품질 - 종횡비 - 사진 한 장 더 찍기 - 접속함 - 접속 안 함 - 전송중 - 전송 오류 - 미재생 - 다음 검색 결과 - 이전 검색 결과 - 사용자로 필터링 - 사진 촬영 - 동영상 녹화 - 쓸어내려서 보관함 보기 - 놓아서 보관함 보기 - 더 작은 크기 - 나은 품질 - " %2$s 개 중 %1$s 개" - " %2$s개중 %1$s번째 다운로드됨" - %2$s 개 중 %1$s 개 업로드 됨 - %1$d 번 조회됨 - %1$d 번 조회됨 - %1$d 번 조회됨 - %1$d 번 조회됨 - %1$d 번 조회됨 - 사진 %1$d 장 보내기 - 사진 %1$d 장 보내기 - 사진 %1$d 장 보내기 - 사진 %1$d 장 보내기 - 사진 %1$d 장 보내기 - 파일 %1$d 개 보내기 - 파일 %1$d 개 보내기 - 파일 %1$d 개 보내기 - 파일 %1$d 개 보내기 - 파일 %1$d 개 보내기 - 음성 파일 %1$d 개 보내기 - 음성 파일 %1$d 개 보내기 - 음성 파일 %1$d 개 보내기 - 음성 파일 %1$d 개 보내기 - 음성 파일 %1$d 개 보내기 - %1$d 개의 대화에서 공유 - %1$d 개의 대화에서 공유 - %1$d 개의 대화에서 공유 - %1$d 개의 대화에서 공유 - %1$d 개의 대화에서 공유 - 올바른 정답 - 설명 - 사진-속-사진 모드 - 마이크가 켜져 있습니다 - 마이크가 꺼져 있습니다 - 전면 카메라로 전환되었습니다 - 후면 카메라로 전환되었습니다 - 카메라가 켜져 있습니다 - 카메라가 꺼져 있습니다 - 고정된 메시지 목록 - 전체화면 전환 - 전체화면 나가기 + yyyy, MMM dd + yyyy MMM dd + MMMM dd + yyyy MMMM dd yyyy년 MMMM yyyy년 MMM dd일 h:mm a yyyy년 MMM dd일 HH:mm @@ -4452,8 +1109,6 @@ yyyy.MMM.dd, HH:mm MMM dd, a h:mm MMM dd일 HH:mm - yyyy년 LLLL - LLLL M\'월\' d\'일\' yy.MM.dd. yyyy.MM.dd. @@ -4465,10 +1120,10 @@ a h:mm %1$s %2$s M\'월\' d\'일\' - yyyy MMM d - \'오늘\' HH:mm\'에 보냄\' - M\'월\' d\'일\' HH:mm\'에 보냄\' - yyyy\'년\' M\'월\' d\'일\' HH:mm\'에 보냄\' + yyyy\'년\' M\'월\' d\'일\' + \'오늘\' HH:mm \'에 보내기\' + M\'월\' d\'일\' HH:mm \'에 보내기\' + yyyy\'년\' M\'월\' d\'일\' HH:mm \'에 보내기\' \'오늘\' HH:mm \'에 시작\' MMM d\'일\' HH:mm \'에 시작함\' MMM d\'일\' yyyy HH:mm\'에 시작\' diff --git a/TMessagesProj/src/main/res/values-nl/strings.xml b/TMessagesProj/src/main/res/values-nl/strings.xml index 8f636981ed..aad53499dd 100644 --- a/TMessagesProj/src/main/res/values-nl/strings.xml +++ b/TMessagesProj/src/main/res/values-nl/strings.xml @@ -1,7 +1,7 @@ Telegram - Telegram Beta + Telegram-bèta Nederlands Engels Dutch @@ -9,7 +9,10 @@ Doorgaan in het Nederlands Je telefoon - Bevestig je landnummer en voer je telefoonnummer in. + Selecteer je landcode en\nvoer je telefoonnummer in. + Land + Je telefoonnummer + Telefoonnummer Kies een land Ongeldig landnummer Dit account heeft al een actieve sessie in deze app. @@ -17,813 +20,80 @@ Contacten synchroniseren Contacten van dit apparaat worden aan dit account toegevoegd Contacten van dit apparaat worden niet aan dit account toegevoegd. - Contacten van dit apparaat worden aan je account toegevoegd. - Inschakelen om contacten continu naar je account te synchroniseren + Contacten op dit apparaat worden aan je account toegevoegd. + Schakel dit in om contacten op je apparaat continu met je account te synchroniseren. Contacten van dit apparaat zijn aan je account toegevoegd. + Is dit het juiste nummer? + Verkeerd formaat + Het nummer dat je hebt verstrekt, is te kort voor **%1$s**:\n\n**%2$s**\n\nVoer alsjeblieft het juiste nummer in (inclusief de landcode). + Nummer wijzigen + Als je de code niet via SMS of telefonisch hebt ontvangen, controleer dan je **mobiele data-instellingen** en telefoonnummer:\n\n**%1$s**\n\nJe resterende mogelijkheden zijn om een ander nummer te proberen of contact op te nemen met de ondersteuning van Telegram. Tik op **Hulp** om de technische details naar ons te sturen, zodat we het probleem kunnen identificeren. + Help + Nummer wijzigen Telefoonverificatie - Een SMS met activatiecode is verzonden naar **%1$s**. - We hebben de code naar je andere **Telegram**-app gestuurd. + We hebben een sms met een activeringscode verzonden naar je telefoon **%1$s**. + We hebben de code naar de **Telegram**-app op je andere apparaat verzonden. + We hebben de code naar de **Telegram-app** voor %1$s op je andere apparaat gestuurd. Controleer je Telegramberichten + Ga naar Anonymous Numbers op Fragment om de code voor %1$s te verkrijgen. Code invoeren - We bellen je op nummer **%1$s**.\n\nNeem niet op, Telegram verwerkt alles automatisch. - We bellen je op **%1$s** om een code te dicteren. + Fragment openen + We bellen je op je telefoonnummer **%1$s**.\n\nNeem niet op. Telegram zal alles automatisch verwerken. + We bellen je op **%1$s** om de code te delen. Telegram belt je over %1$d:%2$02d min We sturen je een SMS over %1$d:%2$02d We bellen je SMS sturen... Code Verkeerd nummer? + Verkeerde code, probeer het opnieuw. Geen code ontvangen? - Verstuur de code per SMS - Account reset annuleren - Iemand met toegang tot nummer **%1$s** heeft geprobeerd om je Telegram account te verwijderen en je twee-staps-verificatie wachtwoord te resetten.\n\nAls jij dit niet was, geef dan de code in die we zojuist per SMS hebben gestuurd. Je kunt dit ook annuleren door je telefoonnummer te *wijzigen naar een nummer waar je toegang tot hebt*. + Tik hier om een code via SMS te ontvangen + Code verkrijgen via Fragment + Accountreset annuleren + Iemand met toegang tot **%1$s** heeft een verzoek ingediend om je Telegram-account te verwijderen en je wachtwoord voor tweestapsverificatie te resetten.\n\nAls dit niet door jou is aangevraagd, voer dan de code in die je zojuist via SMS van ons hebt ontvangen. Je kunt dit ook annuleren door *je telefoonnummer te wijzigen*. Account resetten Account **%1$s** is actief en beveiligd met een wachtwoord, dus voor de veiligheid verwijderen we het pas over 1 week.\n\nJe kunt dit proces ieder moment annuleren. - Je account kan gereset worden over: - De actieve gebruiker heeft de recente poging om dit account te resetten geannuleerd. Probeer het over 7 dagen nog eens. - RESET ACCOUNT + Je account kan worden gereset over: + Je recente pogingen om dit account te resetten, zijn door een actieve gebruiker geannuleerd. Probeer het over 7 dagen nog eens. Deze link is ongeldig of verlopen. - De verwijdering van account: %1$s is geannuleerd. Je kunt dit venster sluiten. + Success! + De verwijdering van je account %1$s is geannuleerd. Je kunt dit venster sluiten. Je logincode is **%1$s**. Voer de code in in de Telegram-app waarop je probeert in te loggen.\n\nGeef deze code nooit aan iemand anders. + Je kunt een SMS aanvragen in %1$d:%2$02d + Je kunt over %1$d:%2$02d een nieuwe SMS aanvragen + Code ontvangen via SMS + Je kunt een oproep aanvragen in %1$d:%2$02d + Bel me om de code op te lezen + Code via oproep ontvangen + Landnummer + Inloggen met Google Je naam - Geef je naam in upload je profielfoto + Voer je naam in en voeg een profielfoto toe. Voornaam (verplicht) + Voornaam Achternaam (optioneel) + Achternaam Registratie annuleren - - Je hebt %1$s overgemaakt naar %2$s voor %3$s - Je hebt %1$s overgemaakt naar %2$s - Afrekenen - Verzendmethodes - Sorry, afleveren op jouw adres is niet mogelijk. - Verzendinformatie - Verzendadres - Adres 1 (Straat) - Adres 2 (Straat) - Stad - Provincie - Land - Postcode - Ontvanger - Naam - Tip - Tip (Optional) - Telefoonnummer - E-mail - Verzendinformatie opslaan - Je kunt je verzendinformatie opslaan voor toekomstig gebruik. - Betaalinformatie - Betaalkaart - Kaartnummer - Veiligheidscode (CVV) - MM/JJ - Factuuradres - Voor- en Achternaam - Betalingsinformatie opslaan - Je kunt je betalingsinformatie voor toekomstig gebruik opslaan. - "Activeer \"twee-staps-verificatie\" om deze functie te gebruiken. " - Transactie-overzicht - Transfer **%1$s** to the %2$s bot for **%3$s**? - Totaal - FACTUUR - TEST FACTUUR - %1$s BETALEN - Betalingsmethode - New card - Betalingsprovider - Naam - Telefoonnummer - Contactadres - Verzendmethode - Betalingsbewijs - Kies een andere kaart - Kaartinformatie %1$s is opgeslagen. Geef je 2-staps-verificatie-wachtwoord in om met deze kaart te betalen. - Sorry, de bot heeft je betaling geannuleerd. - Sorry, de betaling werd geweigerd. - Betalingsprovider kon niet worden bereikt, controleer je internetverbinding en probeer het opnieuw. - Waarschuwing - Noch Telegram, noch %1$s krijgen toegang tot je creditcard-informatie. Creditkaartgegevens worden alleen gebruikt door het het betalingssysteem %2$s.\n\nBetalingen gaan direct naar de ontwikkelaar van %1$s. Telegram kan geen garanties afgeven, doorgaan is op eigen risico. Neem bij problemen contact op met de ontwikkelaar van %1$s of je bank. - Wachtwoord & E-Mail - Wachtwoord - Wachtwoord invoeren - Wachtwoord opnieuw invoeren - Stel een wachtwoord in om je betaalinformatie te beschermen. Tijdens het inloggen vragen we je om dit wachtwoord. - Herstel-e-mailadres - Je e-mailadres - Voeg je geldige e-mailadres toe. Het is de enige manier om je wachtwoord te herstellen. - Telefoonnummer wordt doorgegeven aan %1$s als factuurinformatie. - E-mail wordt doorgegeven aan %1$s als factuurinformatie. - Telefoonnummer en E-mail worden doorgegeven aan %1$s als factuurinformatie. - You paid **%1$s** for **%2$s**. - - Nieuwe chat - Automatisch nachtmodus is uit - Instellingen - Contacten - Nieuwe groep - gisteren - Geen resultaten - Welkom bij Telegram - Recent bekeken - VERBERG - Begin een gesprek door op de opstelknop rechtsonder te drukken. - Start een gesprek door hieronder op 1 van je contacten te tikken. - Wachten op netwerk... - Verbinden - Verbonden - Ping: %1$d ms - Controleren... - Beschikbaar - Onbeschikbaar - Verbinden met proxy - Verbinden met proxy - Bijwerken - Nieuwe geheime chat - Wachten tot %s online komt - Geheime chat geannuleerd - Encryptiesleutels uitwisselen - %s neemt deel aan je geheime chat. - Toegevoegd aan de geheime chat. - Geschiedenis wissen - Geschiedenis wissen - Geschiedenis wissen - Automatisch wissen aan - Auto-deletes in %1$s - Automatisch verwijderen in deze chat - Automatisch verwijderen - Automatically delete new messages after a certain period of time for you and %1$s. - Automatically delete new messages after a certain period of time for members of this group. - Verwijder nieuwe berichten automatisch na een bepaalde tijdsduur voor abonnees van dit kanaal. - Bevestigen - 24 uur - 7 dagen - Automatically delete new messages sent in this chat after a certain period of time. - Uit - Stel in voor deze chat - Messages in this chat are automatically\ndeleted %1$s after they are sent. - Nieuwe berichten in deze groep worden automatisch verwijderd na %1$s - Automatisch verwijderen uitgeschakeld. - Set auto-delete timer - Auto-delete timer - Geschiedenis gewist. - Stil - Geluid aan - Chat verwijderd - Groep verwijderd. - Kanaal verwijderd - Archief vastgezet. - Veeg naar links om het archief te verbergen. - Archief verborgen - Veeg naar beneden voor het archief - Chat gearchiveerd - Chats gearchiveerd - Veeg naar links om het archief te verbergen - ONGEDAAN MAKEN - Cache opschonen - Verwijder en verlaat - Verbergen - Vastzetten - Vastzetten - Losmaken - Archiveren - Archief - Dearchiveren - Gearchiveerde chats - Chat verwijderen - Verwijderd account - Kies een chat - Kies chats - Doorsturen naar - Geheime foto - Tijdelijke video - Geheime GIF - %1$s gebruikt een oudere versie van Telegram, dus worden geheime foto\'s weergegeven in de compatibiliteitsmodus.\n\nZodra %2$s Telegram updatet werken foto\'s met timers voor 1 minuut of minder in de \'Druk en houd ingedrukt\'-modus en krijg je een bericht wanneer de andere partij een schermafdruk maakt. - Berichten - Zoeken - Meldingen stil - %1$s stil - Stil uitschakelen - Over %1$s - Uitschakelen - HASHTAGS - Recent - Mensen - Suggestie verwijderen - **%1$s** echt uit suggesties verwijderen? - %1$s uit suggesties verwijderen? - Link-voorbeeld - Concept - Geschiedenis gewist - door %1$s - %1$s door %2$s - Verkeerde lay-out? - Sticker sturen - GIF sturen - Bundel bekijken - Vastzetten - Je kunt maxmimaal %1$s vastzetten. Wil je je chats anders organiseren? Meer chats vastzetten kan in je archief en in je chatmappen. - Sorry, je kunt niet meer dan 5 chats vastzetten. - Losmaken - Markeer als ongelezen - Markeer als gelezen - Markeer alles als gelezen - Verberg boven de lijst - Zet vast in de lijst - Vet - Cursief - Mono - Doorstrepen - Onderstrepen - Normaal - **Telegram** heeft toegang tot je contacten nodig zodat je makkelijk contact kunt opnemen met je vrienden vanaf al je apparaten. Telegram synchroniseert je contacten continu naar onze zwaar versleutelde Cloud-servers. - NU NIET - DOORGAAN - Je contacten op Telegram - Dit is je archief - Chats met ingeschakelde melding worden gedearchiveerd bij nieuwe meldingen. - Stille chats - Stille chats blijven gearchiveerd bij nieuwe berichten. - Vastgezette chats - Je kunt een ongelimteerd aantal gearchiveerde chats vastzetten. - Hou deze knop ingedrukt om je bericht te plannen of zonder geluid te sturen. - Nieuwe chats verbergen? - Je ontvangt veel nieuwe chats van mensen die geen contact van je zijn. Wil je deze chats **automatisch dempen** en **archiveren**? - GA NAAR INSTELLINGEN - Profiel openen - Open kanaal - Open groep - Stuur bericht - Vermelden - Meldingen stil - Meldingen stil voor %1$s - Meldingen aan - %1$d berichtend verwijderd - %1$d bericht verwijderd - %1$d berichtend verwijderd - %1$d berichtend verwijderd - %1$d berichtend verwijderd - %1$d berichtend verwijderd - Geen resultaten - Geen resultaten - Zoek opnieuw - Muziek van al je chats verschijnt hier - Bestanden van al je chats verschijnen hier - Links van al je chats verschijnen hier - Spraakberichten uit al je chats verschijnen hier - Media van al je chats verschijnen hier - Chats - Bericht vastgezet - Bericht losgemaakt - Tik op het potlood voor een nieuwe chat - Nieuwe groep om te importeren - Berichten importeren - Fout bij importeren - Ongeldig bestandsformaat. - Unable to import history to selected chat. - Onbekend bestandsformaat. - Je moet groepsbeheerder zijn om berichten te importeren - Het bestandformaat is voor een groep, niet voor een gebruiker. - Het bestandsformaar is voor een gebruiker, niet voor een groep. - Importeren mislukt door privacy-instellingen. - IMPORTEREN - "Berichten van **%1$s** importeren naar de chat met **%2$s**?\n\nBerichten worden geïmporteerd naar de huidige dag maar zijn wel voorzien van de originele tijdstempel. Beide partijen zien de berichten. " - "Berichten importeren naar de chat met *%1$s?**\n\nBerichten worden geïmporteerd naar de huidige dag maar zijn wel voorzien van de originele tijdstempel. Beide partijen zien de berichten. " - "Berichten van **%1$s** importeren naar de groep **%2$s**?\n\nBerichten worden geïmporteerd naar de huidige dag maar zijn wel voorzien van de originele tijdstempel. Alle leden zien de berichten. " - "Berichten naar **%1$s** importeren?\n\nBerichten worden geïmporteerd naar de huidige dag maar zijn wel voorzien van de originele tijdstempel. Alle leden zien de berichten. " - Je kunt alleen berichten importeren naar privégesprekken met wederzijdse contacten. - Je moet groepsbeheerder zijn om berichten te importeren. - Dit bericht is geïmporteerd uit een andere app en kan daarom nep zijn. - Berichten en media importeren... **%d%%** - Chat importeren - Hou Telegram open\ntotdat de import klaar is - %1$s van %2$s - Klaar - Chat geïmporteerd - Bespaar ruimte door berichten naar Telegram te importeren. - Berichten en media importeren... - Importing stickers... - Importeer berichten en media naar... - Of kies 1 van je contacten + Profielinformatie - Edit Widget - Display shortcuts to your most important chats for quick access.\n\nIf nobody is selected, your most frequent contacts will be shown in this widget. - Display the latest message from the chats you choose.\n\nIf no specific chats are selected, your most recent chats will be shown in this widget. - Warning: Your passcode will be **ignored** for widgets. - Your passcode **will not affect** widgets added to homescreen. - Search for chats... - Preview of the widget - tap to edit widget - tap to edit + Wijzig Widget + Geef snelkoppelingen weer naar je belangrijkste chats voor snelle toegang.\n\nKies je niemand? dan geeft de widget je meest gebruikte contacten weer. + Meest recente berichten weergeven van de gekozen chats.\n\nKies je geen specifieke chats? Dan geeft deze Widget je meest recente chats weer. + Waarschuwing: je widgets zullen alle recente berichten weergeven, maar je toegangscode is vereist om de app te openen en te reageren. + Zoek chats... + Voorvertoning van de Widget + tik om Widget te wijzigen + tik om te wijzigen Chats Snelkoppelingen - Account was logged off. - - Promoveren tot beheerder - Beheerdersrechten aanpassen - Geen verwijderde gebruikers - Groep verwijderen - Groep verlaten - Groep verwijderen - Je raakt alle berichten in deze groep kwijt. - Je kunt beheerders toevoegen om je te helpen je groep te beheren. Druk en houd ingedrukt om beheerders te verwijderen. - Groep echt verwijderen? Berichten worden gewist en alle leden verwijderd. - Verwijder de groep voor alle leden - Verwijder voor alle abonnees - Groep gemaakt - un1 heeft je toegevoegd aan deze groep - Groep echt verlaten? - **%1$s** echt verlaten? - Je kunt deze gebruiker niet toevoegen aan groepen. - Sorry, deze groep is vol. - Deze gebruiker heeft de groep verlaten. Opnieuw toevoegen kan alleen door wederzijdse contactpersonen.\n\nZolang deze gebruiker niet in de lijst met verwijderde gebruikers staat kan hij/zij altijd nog lid worden via de uitnodigingslink van de groep. - Maximaal aantal beheerders bereikt. - Sorry, de gebruiker heeft al teveel locatiegebonden groepen of kanalen. Vraag of ze er eerst 1 willen overdragen of verwijderen. - Sorry, de gebruiker heeft al teveel locatiegebonden groepen. Vraag of ze er eerst 1 willen overdragen of verwijderen. - Sorry, je hebt teveel locatiegebonden groepen. Verwijder eerst een bestaande. - Maximaal aantal bots bereikt. - un1 heeft \"%1$s\" vastgezet - un1 heeft bericht vastgezet - un1 heeft een poll vastgezet - un1 heeft een quiz vastgezet - un1 heeft foto vastgezet - un1 heeft een video vastgezet - un1 heeft bestand vastgezet - un1 heeft sticker vastgezet - un1 heeft spraakbericht vastgezet - un1 heeft een videobericht vastgezet - un1 heeft contact vastgezet - un1 heeft %1$s vastgezet - un1 heeft locatie vastgezet - un1 heeft live locatie vastgezet - un1 heeft GIF vastgezet - un1 heeft muziekbestand vastgezet - De groep is opgewaardeerd naar een supergroep - %1$s is opgewaardeerd naar een supergroep - Gebruikers verwijderd door beheerders kunnen geen lid worden via uitnodigingslinks - Gebruikers verwijderd door beheerders kunnen geen lid worden via uitnodigingslinks - Nieuw kanaal - Kanaalnaam - Mensen aan je kanaal toevoegen - Als je een permanente link instelt kunnen anderen je kanaal vinden en er lid van worden.\n\nJe kunt a-z, 0-9 en liggend streepje gebruiken.\nDe minimale lengte is 5 karakters. - Als je een permanente link instelt kunnen anderen je groep vinden en er lid van worden.\n\nJe kunt a-z, 0-9 en liggend streepje gebruiken.\nDe minimale lengte is 5 karakters. - Waarschuwing - link - Lid worden van je kanaal kan door deze link te volgen, je kunt de link altijd intrekken. - Lid worden van je groep kan door deze link te volgen, je kunt de link altijd intrekken. - Beschrijving (optioneel) - Beschrijving - Optioneel kun je een kanaalbeschrijving geven. - Je hebt instellingen voor deze groep gewijzigd, wijzigingen toepassen? - Je hebt instellingen voor dit kanaal gewijzigd, wijzigingen toepassen? - Publiek kanaal - Publieke groep - Locatiegebonden groep - Publieke kanalen zijn te vinden via de zoekfunctie, iedereen kan er lid van worden. - Publieke groepen zijn te vinden via de zoekfunctie, iedereen kan er lid van worden en de geschiedenis zien. - Privé-kanaal - Privé-groep - Lid worden van privé-kanalen kan alleen per uitnodigingslink. - Lid worden van privé-groepen kan alleen via uitnodiging of per uitnodigingslink. - Permanente link - Uitnodigingslink - Leden toevoegen - Abonnees toevoegen - Kanaal verlaten - Kanaal verlaten - Instellingen - LID WORDEN - Massabericht - Stil massabericht - Wat is een kanaal? - Kanalen zijn een functie om berichten naar een ongelimiteerd publiek te sturen. - Kanaal maken - Deze naam is bezet. - Deze naam is ongeldig. - Een kanaalnaam moet minimaal 5 tekens hebben. - De naam mag niet langer zijn dan 32 tekens. - Sorry, begincijfers zijn niet toegestaan. - Een groepsnaam moet minimaal 5 tekens hebben. - Begincijfers zijn niet toegestaan. - Naam controleren... - %1$s is beschikbaar. - Leden - Toevoegen aan groep - Toevoegen aan kanaal - Verwijder uit deze lijst - Abonnees - Verwijderde gebruikers - Rechten - Wat mogen leden van deze groep? - Uitzondering toevoegen - Uitzonderingen zoeken - Verwijderde gebruikers - Contacten in dit kanaal - Contacten in deze groep - Your contacts - Bots - Andere leden - Andere abonnees - lid geworden op %1$s - Beperkt - Beheerders - Kanaal verwijderen - Kanaal verwijderen - Kanaal echt verwijderen? Berichten worden gewist en alle abonnees verwijderd. - Kanaal echt verlaten? - **%1$s** echt verlaten? - Je raakt alle berichten in dit kanaal kwijt. - Wijzig - Kies een link - Stel een link in voor je publieke kanaal, om deze vindbaar te maken via de zoekfunctie en te delen met anderen.\n\nWil je dit niet dan kun je een privé-kanaal aanmaken. - Kanaal gemaakt - Kanaalfoto bijgewerkt - Kanaalvideo bijgewerkt - Kanaalfoto verwijderd - Kanaalnaam gewijzigd naar un2 - Het maximale aantal publieke links is bereikt. Trek eerst een link van één van je oudere groepen of kanalen in, of gebruik de privé-variant. - Eigenaar - Beheerder - Beheerder - GELUID UIT - GELUID AAN - Beheerder toevoegen - Verwijder gebruiker - Deblokkeer - Gebruiker vasthouden om te deblokkeren. - Uitnodigen via link - Beheerder ontslaan - Rechten aanpassen - Alleen kanaalbeheerders zien deze lijst. - Andere Telegram-gebruikers kunnen lid worden van je groep door deze link te openen. - Je kunt beheerders toevoegen om je te helpen je kanaal te beheren. Druk en houd ingedrukt om beheerders te verwijderen. - Lid worden van kanaal \'%1$s\'? - Sorry, deze chat is niet beschikbaar. - Sorry, je kunt niet bij deze chat omdat een beheerder je geblokkeerd heeft. - Helaas ben je geblokkeerd van deelname in publieke groepen. - Sorry, deze chat is niet beschikbaar. - %1$s toevoegen aan het kanaal? - Deze gebruiker heeft het kanaal verlaten. Opnieuw toevoegen gaat alleen als je een contactpersoon van de gebruiker bent.\n\nVia de uitnodigingslink van het kanaal kunnen ze ook weer lid worden, mits ze niet in de lijst met verwijderde gebruikers staan. - Je kunt deze gebruiker niet toevoegen aan kanalen. - Maximaal aantal beheerders bereikt. - Maximaal aantal bots bereikt. - Je kunt 200 leden handmatig toevoegen aan een kanaal. Een ongelimiteerd aantal mensen kan lid worden via de link van het kanaal. - Teveel communities - Sorry, je bent lid van teveel groepen en kanalen, verlaat er wat voordat je een nieuwe maakt. - Sorry, je bent lid van teveel groepen en kanalen, verlaat er wat om lid hiervan te worden. - un1 heeft je toegevoegd aan dit kanaal - Je bent nu lid van dit kanaal - Je bent nu lid van deze groep - Verwijderen uit kanaal - Je hebt alleen leesrechten in dit kanaal. - %1$s heeft je toegevoegd aan het kanaal %2$s - Kanaalfoto van %1$s bijgewerkt - Kanaal %1$s heeft zijn video bijgewerkt - %1$s plaatste een bericht - %1$s plaatste een foto - %1$s plaatste een video - %1$s plaatste een contact %2$s - %1$s plaatste een poll %2$s - %1$s plaatste de quiz \"%2$s\" - %1$s plaatste een locatie - %1$ plaatste een live-locatie - %1$s plaatste een bestand - %1$s plaatste een GIF - %1$s plaatste %2$s - %1$s plaatste een album - %1$s plaatste een spraakbericht - %1$s plaatste een videobericht - %1$s plaatste een muziekbestand - %1$s plaatste een sticker - %1$s plaatste een %2$s sticker - Wie kan leden toevoegen? - Alle leden - Beheerders - Berichtgeving voor abonnees - Stille berichtgeving voor abonnees - Ondertekenen - Beheerdersnaam bij alle uitgaande berichten. - Beheerdersrechten - Aangepaste titel - Een aangepaste titel die zal worden weergegeven aan alle leden i.p.v. \'%1$s\'. - Wat mag deze beheerder? - Informatie aanpassen - Informatie aanpassen - Berichten plaatsen - Berichten wijzigen - Berichten verwijderen - Verwijder berichten - Beheerders toevoegen - Anoniem blijven - Beheerder ontslaan - Eigenaarschap overdragen - Eigenaarschap overdragen - Veiligheidscontrole - Je kunt de groep alleen overdragen aan **%1$s** indien: - Je kunt het kanaal alleen overdragen aan **%1$s** indien: - **Twee-staps-verificatie** langer dan **7 dagen** geleden is ingeschakeld. - Je langer dan **24 uur** geleden bent ingelogd op dit apparaat. - Probeer het later opnieuw - Wachtwoord instellen - Hiermee draag je alle **eigenaarsrechten** van **%1$s** over naar **%2$s** - Eigenaar wijzigen - **%1$s** is nu eigenaar van de groep. - **%1$s** is nu eigenaar van het kanaal. - Leden blokkeren - Leden toevoegen - Uitnodigen via link - Berichten vastzetten - Gepromoveerd door %1$s - Je kunt de machtigingen van deze beheerder niet aanpassen. - Je kunt deze rechten niet aanpassen. - Dit recht is niet beschikbaar in publieke groepen. - Verwijderd door %1$s - Gebruikersrechten - Deze optie is voor alle leden uitgeschakeld via de groepsrechten - Wat mag dit lid? - Berichten lezen - Berichten versturen - Media versturen - Polls sturen - Stickers en GIF\'s sturen - Link-voorbeeld sturen - Chatinformatie wijzigen - Berichten vastzetten - Gebruikers toevoegen - geen leesrechten - geen berichten sturen - geen media - geen polls - geen stickers & GIF\'s - geen links - geen info wijzigen - niet vastzetten - geen gebruikers toevoegen - Tijdsduur - Voor altijd - Blokkeer en verwijder uit groep - Wijzigingen toepassen? - Je hebt de rechten van deze gebruiker in **%1$s** aangepast. Wijzigingen toepassen? - Aangepast - Groep beheren - Kanaal beheren - Groep beheren - Kanaal beheren - Geschiedenis voor nieuwe leden - Nieuwe foto instellen - Stel foto of video in - Zichtbaar - Nieuwe leden krijgen chatgeschiedenis ouder dan de eigen deelname te zien. - Verborgen - Nieuwe leden zien oudere berichten niet. - Nieuwe leden krijgen niet meer dan 100 voorgaande berichten te zien. - Lid worden van kanaal - Lid worden van groep - Groepsvorm - Kanaaltype - Groepstype - Kanaaltype - Groepsinstellingen - Kanaalinstellingen - Privé - Publiek - Privé - Publiek - Link - Tik om een permanente link toe te voegen - Afbeelding kiezen - Kies foto of video - Nieuwe foto instellen - Foto maken - Video opnemen - Uploaden uit galerij - Kies uit galerij - Online zoeken - Statistieken - Bots kunnen alleen als beheerder worden toegevoegd. - Bots kunnen alleen als beheerder aan kanalen worden toegevoegd. - BEHEERDER MAKEN - %1$s zal verwijderd worden als beheerder als je een beperking oplegt. - Discussie - Discussie weergeven - Voeg een groepschat toe voor opmerkingen. - Gekoppeld kanaal - Kies een groepschat waar de opmerkingen voor je kanaal naartoe gaan. - Alles wat je plaatst in het kanaal zal worden doorgestuurd naar deze groep. - **%1$s** is gekozen als groep waar opmerkingen voor je kanaal naartoe gaan. - Groep gekoppeld als discussiegroep voor %1$s. - Alle nieuwe berichten die je plaatst in dit kanaal worden doorgestuurd naar de groep. - Maak een nieuwe groep - Groep ontkoppelen - Kanaal ontkoppelen - Ontkoppel - Groep koppelen - **%1$s** echt de discussiegroep voor **%2$s** maken? - **%1$s** echt de discussiegroep voor **%2$s** maken?\n\nAlle leden van deze groep kunnen berichten in het kanaal zien. - **%1$s** echt de discussiegroep voor **%2$s** maken?\n\nAlle abonnees van het kanaal kunnen de berichten in deze groep zien. - \"Chatgeschiedenis voor nieuwe leden\" zal op zichtbaar worden ingesteld. - **%1$s** echt ontkoppelen van deze groep? - **%1$s** echt ontkoppelen van dit kanaal? - Discussiëren - kanaal - Tempolimiet - Uit - %1$ds - %1$dm - %1$du - Kies hoe lang leden moeten wachten voordat ze een volgend bericht kunnen sturen. - Leden kunnen maar 1 bericht sturen per %1$s. - Tempolimiet ingeschakeld. Je kunt niet meer dan 1 bericht tegelijkertijd sturen. - Tempolimiet ingeschakeld. Je kunt niet meer dan 1 item selecteren. - Sorry, deze tekst is te lang om als 1 bericht te sturen.\n\nTempolimiet is ingeschakeld, je kunt niet meer dan 1 bericht tegelijkertijd sturen. - **%1$s** gepromoveerd tot beheerder - **%1$s** verwijderd van **%2$s** - - Nieuwe poll - Nieuwe quiz - Poll - Pollvraag - Stel een vraag - Antwoordopties - Quiz antwoorden - Pollresultaten - Anoniem stemmen - Quiz-modus - Kies eerst een optie - Inklappen - Uitklappen - Sorry, polls met zichtbare stemmen kunnen niet naar kanalen worden doorgestuurd. - Sorry, invoices can’t be forwarded to secret chats. - Sorry, polls kunnen niet worden doorgestuurd naar geheime chats - Sorry, games can’t be sent to secret chats. - Sorry, invoices can’t be sent to secret chats. - Meerdere antwoorden - Tik om het juiste antwoord te kiezen - Polls in quiz-modus hebben 1 correct antwoord. Gebruikers kunnen hun antwoord niet intrekken. - Optie toevoegen... - Je kan nog %1$s. - Maximaal aantal opties zijn toegevoegd. - Anonieme poll - Fout antwoord! - Je hebt de juiste optie gemist. - Goed gedaan! - Je hebt het goede antwoord gekozen. - Poll - Quiz - STEMMEN - RESULTATEN WEERGEVEN - Anonieme quiz - Poll stoppen - Poll stoppen? - Als je deze poll nu stopt kan niemand meer stemmen. Deze actie kan niet ongedaan worden gemaakt. - Quiz stoppen? - Quiz stoppen? - Als je deze quiz nu stopt kan niemand antwoorden insturen, je kunt dit niet ongedaan maken. - Poll verwijderen? - Deze poll echt weggooien? - Stem intrekken - Eindresultaat - Geen stemmen - Niemand heeft geantwoord - %1$d stemmen - %1$d stem - %1$d stemmen - %1$d stemmen - %1$d stemmen - %1$d stemmen - %1$d antwoorden - %1$d antwoord - %1$d antwoorden - %1$d antwoorden - %1$d antwoorden - %1$d antwoorden - Meer tonen (%1$d) - Meer tonen (%1$d) - Meer tonen (%1$d) - Meer tonen (%1$d) - Meer tonen (%1$d) - Meer tonen (%1$d) - %1$d meer opties - %1$d optie - %1$d meer opties - %1$d meer opties - %1$d meer opties - %1$d meer opties - Optie - - Recente gebeurtenissen - Alle gebeurtenissen - geselecteerde gebeurtenissen - Alle beheerders - **Nog geen gebeurtenissen**\n\nBeheerders en leden\nhebben geen acties uitgevoerd\nin de afgelopen 48 uur. - **Nog geen gebeurtenissen**\n\nBeheerders\nhebben geen acties uitgevoerd\nin de afgelopen 48 uur. - **Geen gebeurtenissen**\n\nGeen recente gebeurtenissen gevonden\nvoor je zoekopdracht. - Geen recente gebeurtenissen met inhoud \'**%1$s**\' gevonden - Wat is een logboek? - Dit is een lijst met alle acties van de groepsleden en beheerders in de afgelopen 48 uur. - Dit is een lijst met alle acties van de beheerders in de afgelopen 48 uur. - un1 heeft de groep hernoemd naar \"%1$s\" - un1 heeft het kanaal hernoemd naar \"%1$s\" - un1 heeft de groep verlaten - un1 heeft het kanaal verlaten - un1 heeft un2 toegevoegd - un1 is lid geworden - %1$s geblokkeerd - %1$s gedeblokkeerd - un1 is lid geworden - groepsafbeelding door un1 ingesteld: - kanaalfoto door un1 ingesteld: - groepsvideo door un1 ingesteld: - kanaalvideo door un1 ingesteld: - groepsafbeelding door un1 verwijderd - kanaalfoto door un1 verwijderd - bericht door un1 bewerkt: - onderschrift door un1 gewijzigd: - un1 wijzigde media: - un1 wijzigde media en onderschrift: - Origineel bericht - Origineel onderschrift - Leeg - bericht door un1 vastgezet: - bericht door un1 losgemaakt - un1 heeft de poll gestopt: - un1 stopte de quiz: - bericht door un1 verwijderd: - un1 wijzigde de groepslocatie naar \"%1$s\" - un1 verwijderde de groepslocatie - Eigenaarschap overgedragen aan %1$s - groepsstickers door un1 gewijzigd - groepsstickers door un1 verwijderd - un1 heeft un2 de discussiegroep van dit kanaal gemaakt. - un1 heeft de discussiegroep verwijderd un2 - un1 heeft deze groep aan un2 gekoppeld - un1 heeft deze groep van un2 ontkoppeld - link door un1 gewijzigd: - link door un1 gewijzigd: - groepslink door un1 verwijderd - kanaallink door un1 verwijderd - Vorige link - beschrijving door un1 gewijzigd - beschrijving door un1 gewijzigd - Vorige beschrijving - un1 heeft de groepsgeschiedenis ook voor nieuwe leden zichtbaar gemaakt - un1 heeft de groepsgeschiedenis voor nieuwe leden verborgen - uitnodigingen door un1 ingeschakeld - uitnodigingen door un1 uitgeschakeld - ondertekenen door un1 ingeschakeld - ondertekenen door un1 uitgeschakeld - rechten van %1$s\n\n tot: %2$s aangepast - standaard rechten aangepast - Stickers & GIF\'s versturen - Media versturen - Informatie aanpassen - Gebruikers toevoegen - Berichten vastzetten - Polls sturen - Berichten versturen - Link-voorbeeld sturen - Berichten lezen - privileges van %1$s aangepast - promoted %1$s - Informatie aanpassen - Informatie aanpassen - Berichten plaatsen - Berichten wijzigen - Berichten verwijderen - Beheerders toevoegen - Anoniem blijven - Leden blokkeren - Spraakchats beheren - Leden toevoegen - Titel: %1$s - Titel - Berichten vastzetten - Alle gebeurtenissen - Nieuwe uitzonderingen - Beheerdersrechten - Nieuwe leden - Groepsinformatie - Kanaalinformatie - Verwijderde berichten - Gewijzigde berichten - Vastgezette berichten - Vertrokken leden - Spraakchats - Uitnodigingslinks - un1 heeft tempolimiet ingesteld op %1$s - un1 heeft tempolimiet uitgeschakeld - un1 startte een spraakchat - un1 beëindigde de spraakchat - un1 heeft un2 gedempt in een spraakchat - un1 heeft het geluid van un2 ingeschakeld. - un1 gaf toestemming aan nieuwe spraakchatleden om te praten. - un1 heeft nieuwe deelnemers van de spraakchat gedempt + Account is uitgelogd Nieuwe verzendlijst Naam van lijst Je hebt een verzendlijst gemaakt - Ontvanger toevoegen Verwijder van verzendlijst Geen audiobestanden @@ -834,379 +104,40 @@ Muziek Onbekende artiest Onbekende titel - Nummer herhalen - Lijst herhalen - Lijst husselen + Nummer Herhalen + Lijst Herhalen + Willekeurige Volgorde Volgorde omdraaien Kies een bestand - Zoek recente bestanden Vrij: %1$s van %2$s Onbekende fout + Onbekende fout: %s Toegangsfout - Bestanden mogen maximaal %1$s zijn - Geen opslagmedium gevonden - USB-overdracht actief Interne opslag Externe opslag - Systeemmap SD-kaart Map Recente bestanden Bestanden A-Z - Geen resultaten - Geen resultaten voor **%1$s** in de huidige map. - Deze map is leeg. - Om bestanden ongecomprimeerd te versturen + Om bestanden zonder compressie te versturen Om muziek bestanden te versturen - Blader door de map van de App + Blader door de map van de app Blader door je bestandssysteem Blader door je externe opslag Zoek muziek - - Groepsstickers - Kies uit je stickers - Je kunt een stickerbundel kiezen die voor iedereen in de groepschat beschikbaar is. - KIES STICKERBUNDEL - stickerbundel - Je kunt persoonlijke stickerbundels maken via de bot @stickers. - Stickerbundel niet gevonden - Probeer opnieuw of kies uit de lijst - - onzichtbaar - ondersteuning - aan het typen - is aan het typen - zijn aan het typen - %1$s is aan het typen... - %1$s zijn aan het typen... - %1$s neemt een spraakbericht op... - %1$s neemt een videobericht op... - %1$s verstuurt een geluid... - %1$s verstuurt een foto - SNELLE WEERGAVE - BEKIJK GROEP - ACHTERGROND WEERGEVEN - THEMA BEKIJKEN - KANAAL OPENEN - BEKIJK BERICHT - Donker thema schakelt automatisch in tijdens de nacht - Referentie - %1$s speelt een spel - %1$s verstuurt een video - %1$s verstuurt een bestand - neemt een spraakbericht op... - neemt een videobericht op... - audio versturen... - foto versturen - speelt een spel - video versturen - bestand versturen - Heb je een vraag\nover Telegram? - Galerij - Locatie - Video - Bestand - Camera - Nog geen berichten - Nog geen geplande berichten - Doorgestuurd bericht - Van - Van %1$s - van: - Niets recents - Bericht - Bericht - Plan bericht - DEEL MIJN NUMMER - Mijn contactgegevens delen - Toevoegen aan contacten - %s heeft je uitgenodigd voor een geheime chat. - Je hebt %s uitgenodigd voor een geheime chat. - Geheime chat functies: - End-to-end-encryptie - Geen serveropslag - Zelfvernietigingstimers - Doorstuurbescherming - Je bent verwijderd - Je hebt deze groep verlaten - Deze groep verwijderen - Chat verwijderen - Deze chat verwijderen - Chats verwijderen - SLEEP OM TE ANNULEREN - Opslaan in Downloads - GIF opslaan - GIF verwijderen van deze sectie? - Opslaan in muziek - Delen - Vertaling toepassen - Thema toepassen - Bestandstype niet ondersteund - Zelfvernietigingstimer instellen - Servicemeldingen - Link-preview ophalen... - OPENEN IN... - Open met... - %1$s versturen - Upload %1$s - Als bestand - Als bestand - Link openen - Wil je %1$s openen? - Log in op %1$s als %2$s - Sta %1$s toe om me berichten te sturen - Versturen annuleren - Wil je %1$s toestaan om je naam en ID (niet je telefoonnummer) door te geven aan webpagina\'s die je opent via deze bot? - GROEP NIET LOCATIEGEBONDEN? - Ongerelateerde groep melden - Vertel het ons als deze groep niet gerelateerd is aan deze locatie.\n\n**%1$s** - Vertel het ons als deze groep niet gerelateerd is aan deze locatie. - SPAM MELDEN - Spam melden - Blokkeer %1$s - BLOKKEREN - SPAM MELDEN EN VERLATEN - TOEVOEGEN - VOEG %1$s TOE AAN CONTACTEN - CONTACT BEKIJKEN - **%1$s** echt blokkeren om je berichten te sturen en je te bellen via Telegram? - Echt berichten van **%1$s** blokkeren? - "Spam van deze gebruiker echt melden? " - "Spam van deze groep echt melden? " - "Spam van dit kanaal echt melden? " - Je kunt momenteel alleen berichten sturen aan onderlingen contacten. - Je kunt momenteel alleen onderlinge contacten aan groepen toevoegen - Sorry, je bent momenteel beperkt in het plaatsen van berichten in publieke groepen. - Meer informatie - Versturen naar... - Opmerking toevoegen - Tik hier om opgeslagen GIF\'s te bekijken - Vastzetten - Alle leden informeren - Ook vastzetten voor %1$s - Losmaken - Bericht vastzetten - Bericht losmaken - Wil je een ouder bericht vastzetten maar ook een nieuwer bericht vastgezet laten? - Dit bericht vastzetten in de groep? - Wil je dit bericht vastzetten? - Wil je dit bericht vastzetten bovenaan de chat? - Wil je dit bericht losmaken? - Blokkeer gebruiker - Spam melden - Alles verwijderen van %1$s - Recente emoji\'s wissen - Smiley\'s en mensen - Dieren en natuur - Eten en drinken - Activiteit - Reizen en plekken - Dingen - Symbolen - Vlaggen - Selecteer berichten - BERICHTEN MELDEN - REPORT %1$s - Melden - Melding verzonden - Spam Melden - Report Fake - Porno Melden - Kindermisbruik Melden - Geweld Melden - Please enter any additional details relevant to your report. - Additional details... - Send Report - Telegram moderators will review your report.\nThank you for your cooperation! - Spam - Nepaccount - Geweld - Pornografie - Kindermisbruik - Overig - Beschrijving - Vastgezet bericht - Vorig bericht - Vastgezette poll - gewijzigd - Bericht wijzigen - Wijzig onderschrift - Media vervangen - Foto bewerken - Video bewerken - Foto vervangen - Video vervangen - Media vervangen - Bestand vervangen - Audiobestand vervangen - Scrollen voor bots - %1$s - Wijzigen kan niet meer. - Toevoegen aan startscherm - Leden zoeken - Hierheen doorsturen om op te slaan - Bewaarde berichten - Hierheen doorsturen om op te slaan - Jij - Je hebt een **groep** gemaakt - Groepskenmerken: - Tot 200000 leden - Blijvende chatgeschiedenis - Publieke links zoals t.me/titel - Beheerders met aangepaste rechten - Berichten naartoe door te sturen - Media en bestanden te bewaren - Te gebruiken op al je apparaten - Snel dingen in op te zoeken - Je Cloudopslag is er om: - Ga naar datum - Verwijder voor %1$s - Verwijder voor iedereen - Tekst gekopieerd naar klembord. - Hou vast om audio op te nemen. - Hou vast voor audio-opname. Tik voor video - Hou vast voor video-opname. Tik voor audio - Spraakbericht weggooien - Wil je stoppen met opnemen en je spraakbericht weggooien? - Videobericht weggooien - Wil je stoppen met opnemen en je videobericht weggooien? - Weggooien - Je bent beperkt in het sturen van media door de groepsbeheerders tot %1$s - Je bent beperkt in het sturen van inline-content door de groepsbeheerders tot %1$s - Je bent beperkt in het sturen van stickers door de groepsbeheerders tot %1$s - De beheerders van deze groep hebben je beperkt in het sturen van GIF\'s tot %1$s - Je bent beperkt in het plaatsen van berichten door de groepsbeheerders tot%1$s - Je bent beperkt in het sturen van media door de groepsbeheerders. - Je bent beperkt in het sturen van inline-content door de groepsbeheerders. - Je bent beperkt in het sturen van stickers door de groepsbeheerders. - De beheerders van deze groep hebben je beperkt in het sturen van GIF\'s - Je bent beperkt in het plaatsen van berichten door de groepsbeheerders. - Media sturen is niet toegestaan in deze groep. - Inline-bots zijn niet toegestaan in deze groep. - Stickers zijn niet toegestaan in deze groep. - GIF\'s zijn niet toegestaan in deze groep - Berichten schrijven is niet toegestaan in deze groep. - beheerder - APK-installatie is beperkt voor deze app. Je kunt dit inschakelen via de systeeminstellingen. - Ongelezen berichten - Zoek stickerbundels - Zoek populaire stickers - Emoji zoeken - URL - Kaartvoorvertoning - Kaarvoorvertoningingsleverancier - Telegram - Google - Yandex - Geen - Google Maps installeren? - OPLICHTING - NEP - via - Bericht bestaat niet - Tempolimiet is ingeschakeld. Je kunt het\nvolgende bericht sturen over %1$s. - Tik voor foto, hou vast voor video - Tik om als lijst weer te geven. - Stuur zonder geluid - Sturen als nieuwe foto - Foto vervangen - Stuur nu - Plan opnieuw - Vandaag - Plannen - Plan bericht - Geplande berichten - Stuur wanneer %1$s online komt - Herinneringen - Stel een herinnering in - Gepland op %1$s - Gepland tot online - Sorry, je kunt niet meer dan 100 berichten plannen. - Deze actie is beschikbaar na publicatie van het bericht. - Stemmen is beschikbaar naar publicatie van het bericht. - Poll-resultaten zijn zichtbaar na het publiceren van het bericht. - 📅 Herinnering - 1 resultaat - Videokwaliteit is te laag om de compressie-instellingen te wijzigen. - Kaartnummer naar klembord gekopiëerd - Kopiëren - Stuur een **:dice:**-emoji om een dobbelsteen te gebruiken in een chat. - Stuur een **:darts:**-emoji om je geluk te beproeven - Stuur een %1$s-emoji om je geluk te beproeven. - Sturen - COVID-19 - PSA - Dit bericht geeft je een publieke dienstaankondiging betreft de huidige COVID-19-pandemie. Lees meer over dit initiatief op https://telegram.org/blog/coronavirus - PSA info test - Melding betreft COVID-19 - Dit bericht geeft je een publieke dienstaankondiging betreft de huidige COVID-19-pandemie. Lees meer over dit initiatief op https://telegram.org/blog/coronavirus - Belangrijke melding - Dit is een belangrijke melding. - Chat verbergen - Weet je zeker dat je deze chat wilt verbergen? - Verbergen - Stuur een bericht of tik op de groet hieronder als je klaar bent om te chatten. - Stuur een bericht of tik op de groet hieronder. - %1$s is %2$s - %1$s is %2$s - Chat verplaatst naar je hoofdpagina - d - s - m - u - w - naar privéberichten en groepen - Eigenaarschap van bot overdragen - Hiermeer draag je het **volledige eigenaarschap** van de bot over naar de gekozen gebruiker. - Eigenaarschap overdragen - Je kan deze bot alleen overdragen als je het volgende hebt: - Opmerking toevoegen - Opmerkingen - Opmerking - Antwoorden - Nog geen opmerkingen - Nog geen antwoorden - Bekijk in chat - Anoniem verzenden - Discussie gestart - Gesprek weergeven - Kies datum - Via deze chat kun je de antwoorden op jouw opmerkingen in kanalen volgen. - Sorry, deze post is verwijderd uit de discussiegroep - ALLE BERICHTEN LOSMAKEN - VASTGEZETTE BERICHTEN VERBERGEN - Vastgezette berichten verborgen - Vastgezette berichten worden opnieuw weergegeven als een nieuw bericht is vastgezet. - Geïmporteerd - File is too large for import. - Failed to upload file. - Audio speelt op normale snelheid af. - Audio speelt twee keer zo snel af. - Bericht gekopiëerd naar klembord - Afgeleverd - Gelezen - Invite link sent to **Saved Messages**. - Invite link sent to **%1$s**. - Invite link sent to **%1$s**. - Invite link sent to **%1$s**. - Bericht doorgestuurd naar **Bewaarde berichten**. - Berichten doorgestuurd naar **Bewaarde berichten**. - Bericht doorgestuurd naar **%1$s**. - Berichten doorgestuurd naar **%1$s**. - Bericht doorgestuurd naar **%1$s**. - Berichten doorgestuurd naar **%1$s**. - Bericht doorgestuurd naar **%1$s**. - Berichten doorgestuurd naar **%1$s**. - Background shared to **Saved Messages**. - Background shared to **%1$s**. - Background shared with **%1$s**. - Background shared to **%1$s**. + %1$s heeft je een cadeaucode voor %2$s Telegram Premium gestuurd + %1$s heeft je een winactie voor %2$s premium-abonnementen van %3$s maanden gestuurd + %1$s is een winactie voor %2$s premium-abonnementen van %3$s maanden gestart + %1$s heeft een winactie voor %3$s premium-abonnementen van %4$s maanden naar de groep %2$s gestuurd + %1$s heeft een winactie vastgezet + %1$s heeft met %2$s op je winactie gereageerd + %1$s heeft met %3$s op je winactie in de groep %2$s gereageerd %1$s heeft de zelfvernietigingstimer ingesteld op %2$s Je hebt de zelfvernietigingstimer ingesteld op %1$s %1$s heeft de zelfvernietigingstimer uitgeschakeld - Je hebt de zelfvernietigingstimer uitgeschakeld + Je hebt de zelfvernietigingstimer uitgezet Je hebt een nieuw bericht 📅 Jij: %1$s 📅 Jij @@ -1221,7 +152,7 @@ %1$s heeft je een zelfvernietigende foto gestuurd %1$s heeft je een zelfvernietigende video gestuurd %1$s deelde een contact %2$s met je - %1$s stuurde je een poll %2$s + %1$s stuurde je een peiling %2$s %1$s stuude je de quiz \"%2$s\" %1$s heeft je een locatie gestuurd %1$s deelt een live-locatie met je @@ -1238,7 +169,7 @@ %1$s heeft een bericht gestuurd naar de groep %2$s %1$s heeft een foto gestuurd naar de groep %2$s %1$s heeft een video gestuurd naar de groep %2$s - %1$s stuurde een poll %3$s naar de groep %2$s + %1$s stuurde een peiling %3$s naar de groep %2$s %1$s stuurde de quiz \"%3$s\" naar de groep %2$s %1$s deelde een contact %3$s in de groep %2$s %1$s heeft een locatie gestuurd naar de groep %2$s @@ -1253,22 +184,33 @@ %1$s heeft een muziekbestand gestuurd naar de groep %2$s %1$s heeft een sticker gestuurd naar de groep %2$s %1$s heeft een %3$s sticker gestuurd naar de groep %2$s + Er is %2$s bij %1$s in rekening gebracht + %1$d ⭐️ media + %1$d ⭐️ media + %2$s heeft je een betaald bericht gestuurd voor %1$d ster + %2$s heeft je een betaald bericht gestuurd voor %1$d sterren + %2$s heeft een betaald bericht geplaatst voor %1$d ster + %2$s heeft een betaald bericht geplaatst voor %1$d sterren + %2$s heeft een betaald bericht vastgezet voor %1$d ster + %2$s heeft een betaald bericht vastgezet voor %1$d sterren + %2$s heeft een betaald bericht in de groep %3$s geplaatst voor %1$d ster + %2$s heeft een betaald bericht in de groep %3$s geplaatst voor %1$d sterren %1$s heeft je uitgenodigd voor de groep %2$s %1$s heeft de groepsnaam van %2$s gewijzigd %1$s heeft de groepsfoto voor %2$s aangepast - %1$s heeft de groepsvideo voor %2$s aangepast + %1$s heeft de groepsfoto van %2$s gewijzigd %1$s heeft %3$s uitgenodigd voor de groep %2$s - %1$s nodigde %3$s uit voor een spraakchat in %2$s - %1$s nodigde je uit voor een spraakchat in %2$s - %1$s startte een spraakchat in %2$s - %1$s beëindigde de spraakchat in %2$s + %1$s nodigde %3$s uit voor een videochat in %2$s + %1$s nodigde je uit voor een videochat in %2$s + %1$s startte een videochat in %2$s + %1$s heeft de videochat in %2$s beëindigd %1$s is terug in de groep %2$s %1$s is nu lid van de groep %2$s %1$s heeft %3$s verwijderd uit de groep %2$s %1$s heeft je verwijderd uit de groep %2$s %1$s heeft de groep %2$s verlaten - %1$s heeft nu Telegram! - %1$s,\nEr is op je account ingelogd vanaf een nieuw apparaat op %2$s\n\nApparaat: %3$s\nLocatie: %4$s\n\nAls jij dit niet was, kun je die sessie beëindigen via Instellingen - Apparaten.\n\nAls je dat denkt dat iemand anders zonder jouw toestemming is ingelogd kun je twee-staps-verificatie activeren via instellingen - privacy en veiligheid.\n\nBedankt,\nHet Telegram-team + %1$s zit nu op Telegram! + %1$s,\nEr is op %2$s vanaf een nieuw apparaat op je account ingelogd.\n\nApparaat: %3$s\nLocatie: %4$s\n\nAls dit niet door jou is gedaan, kun je gaan naar Instellingen > Apparaten en deze sessie beëindigen.\n\nAls je gelooft dat iemand zonder jouw toestemming op je account is ingelogd, kun je tweestapsverificatie inschakelen via Instellingen > Privacy en veiligheid.\n\nMet vriendelijke groet,\nHet Telegram-team %1$s heeft zijn/haar profielfoto gewijzigd %1$s is nu lid van de groep %2$s via uitnodigingslink %1$s heeft %3$s naar de groep %2$s gestuurd @@ -1278,16 +220,15 @@ Telegram Gebruiker Nieuw bericht - Antwoord - Antwoord op %1$s - Antwoord op %1$s - Achtergrondgegevens beperkt. + Antwoorden + Reageren + Reageren %1$s %2$s %1$s heeft \"%2$s\" vastgezet in de groep %3$s %1$s heeft bericht vastgezet in de groep %2$s - %1$s heeft een poll %3$s vastgezet in de groep %2$s + %1$s heeft een peiling %3$s vastgezet in de groep %2$s %1$s heeft de quiz \"%3$s\" vastgezet in de groep %2$s - %1$s heeft foto vastgezet in de groep %2$s + %1$s heeft een foto vastgezet in de groep %2$s %1$s heeft een spel in de groep %2$s vastgezet %1$s heeft een score vastgezet in de groep %2$s %1$s heeft video vastgezet in de groep %2$s @@ -1303,10 +244,10 @@ %1$s heeft muziekbestand vastgezet in de groep %2$s %1$s heeft een factuur in de groep %2$s vastgezet %1$s heeft \"%2$s\" vastgezet - %1$s heeft bericht vastgezet - %1$s heeft een poll vastgezet %2$s + %1$s heeft een bericht vastgezet + %1$s heeft een peiling vastgezet %2$s %1$s heeft quiz \"%2$s\" vastgezet - %1$s heeft foto vastgezet + %1$s heeft een foto vastgezet %1$s heeft een spel vastgezet %1$s heeft een score vastgezet %1$s heeft video vastgezet @@ -1323,7 +264,7 @@ %1$s heeft muziekbestand vastgezet %1$s heeft \"%2$s\" vastgezet %1$s zette een bericht vast - %1$s heeft de poll %2$s vastgezet + %1$s heeft de peiling %2$s vastgezet %1$s heeft de quiz %2$s vastgezet %1$s zette een foto vast %1$s zette een spel vast @@ -1341,418 +282,33 @@ \n%1$s zette een GIF vast \n%1$s zette een audiobestand vast Telegram - - Contact kiezen - Kies contacten - Contact delen - Contact delen - Contact toevoegen - Nog geen contacten - Ik gebruik Telegram om te chatten. Download de app hier: %1$s - om - gisteren om - om %1$s - vandaag om %1$s - gisteren om %1$s - online - gezien - gezien - laatst gezien %1$s - laatst gezien %1$s - Vrienden uitnodigen - Contacten zoeken - Wereldwijd zoeken - recent gezien - afgelopen week gezien - afgelopen maand gezien - lang geleden gezien - Nieuw bericht - Kies contacten en nodig ze uit voor Telegram - NODIG UIT VOOR TELEGRAM - Telegram delen... - Contacten bijwerken? - Veel van je contacten zijn niet gesynchroniseerd, wil je deze synchroniseren? Kies \'OK\' als je je eigen apparaat, SIM en Google-account gebruikt. - Sorteren op naam - Sorteren op laatst-gezien - Voeg %1$s toe - Telefoonnummer - Je hebt nog geen contacten op Telegram - Nodig vrienden uit om Telegram te proberen - Vind mensen dichtbij om mee te chatten - Zoek mensen op gebruikersnaam - Nieuw contact - Telefoonnummer **%1$s** staat niet in je contacten, toevoegen? - Voeg contact toe - - Mensen toevoegen... - Je kan meer leden toevoegen nadat je de groep hebt aangemaakt. - Your group has reached the limit of **200,000** members.\n\nYou can increase this limit by converting the group to a **broadcast group** where only admins can post.\nInterested? - Limiet bereikt - LEARN MORE - Omroepgroep - Opwaarderen naar omroepgroep - Broadcast groups can have over 200,000 members, but only admins can send messages in them. - Only admins can send messages in this group. - Your group can now have more than 200,000 members. - Groepsnaam - Groepsnaam - tot aan %1$s - Sorry, deze groep is al vol. - Sorry, deze groep bestaat niet. - Dit kanaal is privé, word lid om de inhoud ervan te bekijken. - Deze groep is privé, word lid om de inhoud ervan te bekijken. - Lid worden - Groepslid worden - LID WORDEN - Link gekopieerd naar klembord. - Link gekopiëerd naar klembord.\nDeze link werkt alleen voor leden van deze chat. - Deze link werkt alleen voor leden van deze chat - Je kunt dit bericht niet openen omdat je geen lid bent van de chat waar dit bericht is geplaatst. - Nummer gekopieerd naar klembord - E-mail gekopieerd naar klembord - Uitnodigingslink sturen - Uitnodigingslink - Uitnodigingslinks - Deze link echt intrekken? Na intrekken kan niemand meer lid worden met de oude link. - De oude link is nu inactief. Een nieuwe link is aangemaakt. - Intrekken - Link intrekken - Link **%1$s** echt intrekken?\n\nDe groep \"**%2$s**\" zal privé worden. - Link **%1$s** echt intrekken?\n\nHet kanaal \"**%2$s**\" zal privé worden. - Link kopiëren - Link delen - Andere Telegram-gebruikers kunnen lid worden van je groep door deze link te openen. - Zoek mensen - Zoek naar gebruikers en groepen - Omroepgroepen - No limit on the number of members. - Only admins can send messages. - Can\'t be turned back into a regular group. - Opwaarderen naar omroepgroep - Leave as regular group - Are you sure? - Regular members of the group (non-admins) will **irrevocably** lose their right to post messages in the group.\n\nThis action **can\'t** be undone. - CONVERT - If you change your mind, go to your group\'s Settings > Permissions. - - Leden - Gedeelde media - Instellingen - Abonnee toevoegen - Lid toevoegen - Beheerders toevoegen - LID BEPERKEN - Groep verwijderen en verlaten - Verwijder en verlaat groep - Meldingen - Rechten aanpassen - Verwijderen uit groep - Opwaarderen naar supergroep - Opwaarderen naar supergroep - Opwaarderen naar supergroep - Waarschuwing - Groep echt omzetten naar supergroep? Je kunt dit niet ongedaan maken. - "**Ledenlimiet bereikt.**\n\nWil je extra functies en een hogere limiet? Waardeer op naar een supergroep:\n\n• Supergroepen hebben maximaal %1$s\n• Nieuwe leden zien de hele geschiedenis\n• Gewiste berichten gelden voor iedereen\n• Beheerders kunnen een groepsbeschrijving instellen\n• Maker kan een publieke groepslink instellen " - **Supergroepen:**\n\n• Nieuwe leden zien de hele geschiedenis\n• Gewiste berichten gelden voor iedereen\n• Beheerders kunnen een groepsbeschrijving instellen\n• Maker kan een publieke groepslink instellen - **Let op:** Je kunt dit niet ongedaan maken. - - Delen - Toevoegen - Contact toevoegen - Uitnodigen voor Telegram - %1$s is nog geen lid, uitnodigen? - Nodig uit - Blokkeren - BLOKKEER EN VERWIJDER ANTWOORDEN - Blokkeer - Blokkeer gebruiker - Blokkeer gebruikers - **%1$s** echt blokkeren om je berichten te kunnen sturen of op te kunnen roepen via Telegram? - **%1$s** echt blokkeren om je berichten te kunnen sturen of op te kunnen roepen via Telegram? - Gebruiker geblokkeerd - Gebruiker gedeblokkeerd - Wijzig - Verwijder - Thuis - Mobiel - Werk - Overig - Hoofd - Baan - Verjaardag - Titel - Maak nieuw contact - Nieuw contact - Toevoegen aan Contact - Bio - Voeg wat informatie over jezelf toe - Geen - Je kunt hier wat over jezelf vertellen. Iedereen die je profiel opent kan deze tekst zien. - Geheime chat starten - Gedeelde groepen - Gedeelde groepen - Nog geen gedeelde groepen - Er is een fout opgetreden. - Encryptiesleutel - Zelfvernietigingstimer - Als je een timer instelt vernietigt de foto zichzelf na het bekijken. - Als je een timer instelt vernietigt de video zichzelf na het bekijken. - Uit - Deze afbeelding en tekst zijn afgeleid van de encryptiesleutel voor deze geheime chat met **%1$s**.\n\nAls dit er hetzelfde uitziet op het apparaat van **%2$s**, dan is end-to-end-encryptie gegarandeerd.\n\nLees meer op telegram.org - https://telegram.org/faq#secret-chats - Onbekend - Onbekend - Verborgen - Telefoonnummer is zichtbaar zodra %1$s je als contact heeft toegevoegd. - Als je op **GEREED** tik, zal je nummer zichtbaar zijn voor %1$s. - Deel mijn nummer met %1$s - %1$s staat nu in je contacten - Info - Telefoon - Gedeelde inhoud - Foto\'s en video\'s - Links - Audiobestanden - Stuur bericht - Melden - %1$d uitnodigingslinks - %1$d uitnodigingslink - %1$d uitnodigingslinks - %1$d uitnodigingslinks - %1$d uitnodigingslinks - %1$d uitnodigingslinks - Gebruikersnaam gekopiëerd - Hashtag gekopiëerd - Bio copied to clipboard. - %s verwijderd uit je contacten Gebruikersnaam - Kies een naam - Sorry, deze gebruikersnaam is al bezet. - Sorry, deze gebruikersnaam is ongeldig. - Je naam moet minimaal 5 tekens hebben. - Je naam mag niet langer zijn dan 32 tekens. + ook %1$s + gebruikersnaam + Deze gebruikersnaam is al bezet. + Deze link is al bezet.\nEchter, het staat momenteel te koop. **Lees meer...** + Deze gebruikersnaam is ongeldig. + De minimumlengte voor gebruikersnamen is 5 tekens. + De minimumlengte voor gebruikersnamen is normaliter 5 tekens. Echter, korte verzamelbare gebruikersnamen zoals deze staan momenteel te koop. **Lees meer...** + Naam mag niet langer dan 32 tekens zijn. Gebruikersnamen kunnen niet met een nummer beginnen. - Je kan een gebruikersnaam kiezen voor **Telegram**. Hiermee kunnen anderen je vinden en contact met je opnemen zonder je telefoonnummer te weten.\n\nJe mag **a–z**, **0–9** en liggend streepje gebruiken. De minimale lengte is **5** tekens. - Deze link opent een chat met je:\n%1$s - Gebruikersnaam controleren. + Je kunt een gebruikersnaam instellen op **Telegram**. Op die manier kunnen anderen je vinden en contact met je opnemen zonder je telefoonnummer te kennen.\n\nJe kunt **a–z**, **0–9** en underscores gebruiken. De minimumlengte is **5** tekens. + Via deze link wordt een chat met jou geopend: %1$s + Gebruikersnaam controleren... %1$s is beschikbaar. Geen Er is een fout opgetreden. - - Stickers en maskers - Geanimeerde stickers herhalen - Geanimeerde stickers spelen continu af in de chat. - Geanimeerde stickers - Stickers toevoegen - VOEG %1$s TOE - VERWIJDER %1$s - Maskers toevoegen - Toevoegen aan stickers - Toevoegen aan favorieten - Sticker toegevoegd aan favorieten - Sticker verwijderd uit favorieten - Sticker verwijderd uit recente - Recent gebruikt - Favorieten - Groepsstickers - Meer stickers - Verwijder uit favorieten - Verwijder uit recente - Maskers toevoegen - Stickers niet gevonden - Stickers verwijderd - %1$s staat niet meer in je stickers. - Maskers verwijderd - %1$s staat niet meer in je maskers. - Stickers gearchiveerd. - %1$s is verplaatst naar je archief. - Maskers gearchiveerd. - %1$s is verplaatst naar je archief. - Nieuwe stickers toegevoegd - %1$s is toegevoegd aan je stickers. - Nieuwe maskers toegevoegd - %1$s is toegevoegd aan je maskers. - Archiveer - Delen - Link kopiëren - Herschikken - Verwijder - Stickers verplaatsen om te rangschikken. - Nog geen stickers - Geen stickers gevonden - Geen GIF\'s gevonden - Geen Emoji gevonden - Nog geen maskers - Emojisuggesties - **Telegram** maakt het mogelijk om emoji te vinden op basis van duizenden woorden, maar er zullen er altijd wat missen. Als je suggesties wilt doen om emoji\'s nog makkelijker te vinden kan dat via:\n - https://translations.telegram.org/%1$s/emoji - Maskers - Je kunt maskers toevoegen aan foto\'s , gebruik de fotobewerkingsoptie en verstuur ze. - Populaire stickers - Populaire GIF\'s - Stickersuggesties - Alle bundels - Mijn bundels - Geen - Deze stickers zijn momenteel populair op Telegram. Je kunt persoonlijke stickers toevoegen via de @stickers bot. - Ontwerpers kunnen stickerbundels toevoegen via onze bot: @stickers. - Gearchiveerde stickers - Gearchiveerde maskers - Geen gearchiveerde stickers - Geen gearchiveerde maskers - Je kunt 200 stickerbundels tegelijk installeren, daarboven archiveren we ongebruikte stickers. - Je kunt 200 maskerbundels tegelijk installeren, daarboven archiveren we ongebruikte maskers. - STICKER STUREN - Gearchiveerde stickers - Een aantal ongebruikte stickerbundels zijn gearchiveerd. Je deze opnieuw activeren via de stickersinstellingen. - Gearchiveerde maskers - Een aantal ongebruikte maskerbundels zijn gearchiveerd. Je kunt deze opnieuw activeren via de maskerinstellingen. - %1$s verwijderen - Echt de gekozen stickerbundels verwijderen? - %1$s archiveren - Echt de gekozen stickerbundel archiveren? - IMPORT %1$s - Processing stickers... - REMOVE FROM IMPORT - Remove from import - Enter name - Please choose a name for your set. - You can use a-z, 0-9 and underscores. - Sorry, this link is invalid. - Link must have at least 5 characters. - Link must not exceed 32 characters. - Checking link... - This link is available. - Sorry, this link is already taken. - Importing stickers - Stickers imported successfully! - Import more stickers to Telegram and share them with your friends. - - Thema - Automatisch nachtthema - Uit - Uitgeschakeld - Geplande tijd - Adaptief - Planning - Systeem standaard - Gebruik zonsopkomst & -ondergang - Locatie bijwerken - Het berekenen van zonsopkomst en -ondergang vereist een eenmalige controle van je locatie bij benadering. Deze locatie zal alleen lokaal op je apparaat worden opgeslagen. \n\nZonsondergang: %1$s\nZonsopkomst: %2$s - Van - Tot - Voorkeursthema voor \'s nachts - Drempelwaarde omgevingslicht - Schakel om naar je nachtthema als het omgevingslicht minder dan %1$d%% is. - Donker - Donkerblauw - Dag - Nacht - Arctisch - Klassiek - Thema verwijderen - Thema echt verwijderen? - Themabestand is ongeldig - Tik **Maken** als je je thema met anderen wilt delen of handmatig kleuren aan wilt passen.\n\nGeef een naam voor je thema: - Geef een naam aan je thema - BEWERKER SLUITEN - THEME OPSLAAN - Nieuw kleurenthema - Kleurenthema - Kleurenthema gewijzigd - Je kunt dit terugwijzigen via *Chatinstellingen* - Ingebouwde thema\'s - Aangepaste thema\'s - Link instellen - Themalink - Berichthoeken - Weergave chatoverzicht - Twee regels - Drie regels - THEMA MAKEN - TOEPASSEN - Thema-voorbeeld - Selecteer kleur - Kleurenthema\'s - Alle thema\'s weergeven - Thema niet gevonden - Sorry, dit thema heeft nog geen ondersteuning voor jouw apparaat. - Nieuw thema maken - Nieuw thema - Wijzig thema - Tik op het palet-icoon om een lijst met elementen voor elk scherm te zien en deze te bewerken. - Je kunt je eigen thema maken door kleuren in de app aan te passen.\n\nJe kunt hier altijd het standaardthema weer instellen. - Je kun a-z, 0-9 en underscore gebruiken.\nMinimale lengte 5 karakters. - Je thema zal worden bijgewerkt voor alle gebruikers iedere keer als je deze wijzigt. Iedereen kan het installeren via deze link.\n\n%1$s - Iedereen kan je thema installeren via deze link. Je wijzigingen worden automatisch bijgewerkt voor iedereen die het heeft geinstalleerd.\n\nHet thema zal worden gebaseerd op je huidige thema en achtergrond. - Je kunt de link van je thema wijzigen\n\nThemalinks moeten minimaal 5 karakters bevatten en bestaan uit a-z, 0-9 of underscore. - Sorry, de themanaam is ongeldig - Sorry, deze link is ongeldig. - Een link moet minimaal 5 karakters bevatten - De link mag niet langer zijn dan 64 karakters. - Sorry, een begincijfer is niet toegestaan. - Link controleren... - Sorry, deze link is bezet. - %1$s is beschikbaar. - Link - Naam - Eva Zomer - Doet me denken aan een Chinese spr.. - Je innerlijke competitie - hoi, ik heb de broncode bijgewerkt. - Mike Apple - 🤷‍♂️ Sticker - Paul Newman - Enig idee? - Oude piraten - Yo-ho-ho! - Kate Bright - Hola! - Nick K - Dit zijn niet de Droids waar je naar opzoek bent. - Adler Toberg - Zei iemand pindakaas? - Reinhardt - We hebben echt wat nieuwe muziek nodig - Heel subtiel allemaal - Ik zit mij voor het vensterglas onnoemlijk te vervelen. - Lucio - Kom maar op, ik leef hiervoor. - Overlever - David Hasselhoff - Bob Harris - Goedemorgen! - Goedemorgen - Weet je hoe laat het is? - Het is ochtend in *Tokio* 😎 - Gebruik een ander thema - Je kunt ook een bestaand thema gebruiken als basis voor jouw thema. - Kies thema - Exporteer - Maak - Accentkleur - Achtergrond - Mijn berichten - RESET ALLE - RESET - Chatachtergrond echt naar een kleur wijzigen? - Do you want to use your currently selected background or reset it to the default for this theme? - Thema delen - Kleuren wijzigen - Reset naar standaard - Instellingen resetten - Tekstformaat en kleurinstellingen echt resetten? - Thema verwijderen - Open in editor - Wijzigingen opslaan? - Nieuwe kleuren toepassen? + Geen Alle meldingen gereset Alle meldingen herstellen - Alle meldingsinstellingen herstellen naar de standaardwaarden? - Tekstgrootte berichten - Een vraag stellen + Weet je zeker dat je alle meldingsinstellingen naar de standaardwaarden wilt herstellen? + Terugzetten naar standaardinstellingen + Meldingen resetten + Weet je zeker dat je de meldingsinstellingen wilt resetten? + Tekstgrootte bij berichten + Stel een vraag Uitleg toevoegen Gebruikers zien deze uitleg nadat ze een verkeerd antwoord hebben gekozen, goed voor educatieve doeleinden. Animaties @@ -1761,27 +317,27 @@ Help Debug Account - Deblokkeer - Gebruiker vasthouden om te deblokkeren. + Gebruiker deblokkeren Geen geblokkeerde gebruikers - Berichtmeldingen - Meldingen weergeven - Voorbeeld - Groepsmeldingen + Meldingen Weergeven + Berichtvoorbeelden weergeven + Naam afzender weergeven + Automatische uitzonderingen + Verhaalmeldingen automatisch inschakelen voor de 5 gebruikers die je het vaakst spreekt. Geluid In-app meldingen Geluiden Trillen Trillen In-App voorbeeld - Resetten - Meldingen resetten - Alle aangepaste meldingsinstellingen wissen voor contacten, groepen en kanalen. + Wissen + Alle meldingen resetten + Hiermee verwijder je alle aangepaste meldingsinstellingen voor je contacten, groepen en kanalen. Meldingen en geluiden Aangepaste meldingen Pop-up meldingen Nieuwe berichten van deze persoon worden weergegeven als je Telegram niet gebruikt. - LED + Licht Kleur Blauw Rood @@ -1789,28 +345,24 @@ Groen Cyaan Wit - Sepia - Donker Roze Tekstgrootte Lettertype Paars Oranje - Sommige apparaten hebben een LED-functie, om d.m.v. licht aan te geven dat er nieuwe berichten zijn. + Knipperend lampje dat aangeeft dat er nieuwe berichten zijn (op sommige apparaten). Meldingen met hoge prioriteit werken ook als je telefoon op \"Niet storen\" staat. Algemeen Stil Geluid aan Aan Uit - Uit tot %1$s - Standaard (Aan) - Standaard (Uit) + Uit tot %1$s Inschakelen Uitschakelen Geblokkeerd - Geblokkeerde gebruikers kunnen geen contact met je opnemen en zien je laatst-gezien-tijd niet. - Blokkeer gebruiker + Geblokkeerde gebruikers kunnen je geen berichten sturen of je aan groepen toevoegen. Ze hebben ook geen toegang tot je profielfoto\'s, verhalen, online status en \'laatst gezien\'. + Gebruiker blokkeren CHATS CONTACTEN Uitloggen @@ -1821,30 +373,30 @@ Vervaagd Beweging Chatachtergrond wijzigen + Naamkleur wijzigen + Uiterlijk + Uiterlijk Chatachtergrond Chatachtergronden resetten - Verwijder alle geüploade chatachtergronden en herstel de voorgeïnstalleerde achtergronden. - Chat achtergrond resetten - Echt alle chatachtergronden resetten? - Achtergrond echt verwijderen? - Achtergrondvoorvertoning - Sommige achtergrondafbeeldingen zien er vervaagd beter uit. + Alle geüploade achtergronden verwijderen en de voorgeïnstalleerde herstellen. + Chatachtergronden resetten + Weet je zeker dat je alle chatachtergronden wilt resetten? + Weet je zeker dat je de geselecteerde achtergronden wilt verwijderen? + Voorbeeld van achtergrond + Tip: sommige achtergrondafbeeldingen zien er beter uit met het vervagingseffect. Bedankt! - Veeg naar links of rechts om meer kleuren te zien - Zalm is een vis, geen kleur. Michiel Godfried, ben jij het echt? Ik zit mij voor het vensterglas onnoemlijk te vervelen. Ik wou dat ik twee hondjes was, dan kon ik samen spelen - Tik op stel in om de achtergrond toe te passen - Geniet van het uitzicht - ACHTERGROND INSTELLEN + Tik op instellen om de achtergrond toe te passen. + Ziet er prima uit Zoek op kleur - Zoek Achtergronden + Afbeeldingen zoeken Kleur: - Helderheid - Kleur in hexidecimaal - Colors + Kleuren + Kleuren bewegen wanneer je berichten verstuurt + Animeren Patroon Kies patroon Intensiteit @@ -1860,60 +412,69 @@ Zwart Grijs Wit - Kies een kleur - Afbeelding uploaden - Kies afbeelding + Kleur instellen afbeelding laden... - Stel een kleur in + Kleur instellen Berichten - Versturen met Enter + Verzenden met enter Gebeurtenissen - Contact lid van Telegram + Nieuw contact op Telegram Vastgezette berichten + Berichten vertalen + Vertaalknop tonen + Volledige chats vertalen + Niet vertalen + %1$d talen + %1$d taal + %1$d talen + Talen kiezen + De vertaalknop zal verschijnen wanneer je één keer tikt op een bericht dat tekst bevat. + Google heeft mogelijk toegang tot de inhoud van berichten die je vertaalt. Taal Aangepast Taal wijzigen? Je staat op het punt om een aangepast taalbestand toe te passen, dit taalbestand (**%1$s**) is %2$d%% compleet.\n\nHiermee vertaal je de complete app, correcties kun je doorgeven via het [vertalingsplatform].\n\nJe kunt je taal altijd aanpassen via Instellingen. - Je staat op het punt om een aangepast taalbestand toe te passen, dit taalbestand (**%1$s**) is %2$d%% compleet.\n\nHiermee vertaal je de complete app, correctie kun je doorgeven via het [vertalingsplatform].\n\nJe kunt je taal altijd aanpassen via Instellingen. + Je staat op het punt om een aangepast taalpakket (**%1$s**) toe te passen, dat %2$d%% voltooid is.\n\nHiermee vertaal je de volledige app. Eventuele correcties kun je doorgeven via het [vertaalplatform].\n\nJe kunt je taal op elk moment terugzetten via de Instellingen. Te weinig gegevens - Onofficiële talen - Deze taal bestaat niet - Je maakt al gebruik van dit taalbestand (**%1$s**). Je kunt je taal altijd aanpassen via Instellingen. - Helaas lijkt dit aangepaste taalbestand (**%1$s**) geen gegevens voor Telegram Android te bevatten. - De ondersteuning van Telegram wordt gedaan door vrijwilligers. We doen ons best om zo snel mogelijk te antwoorden, maar het kan even duren.\n\nBekijk ook de veelgestelde vragen]]>: Hier staan de antwoorden op de meeste vragen en belangrijke tips voor het oplossen van problemen]]>. + Taal niet gevonden. + Je maakt al gebruik van dit taalbestand (**%1$s**). Je kunt je taal op elk moment aanpassen via de instellingen. + Helaas bevat dit aangepaste taalbestand (**%1$s**) geen informatie voor Telegram Android. + Houd er rekening mee dat de ondersteuning van Telegram door vrijwilligers wordt gedaan. We proberen zo snel mogelijk te reageren, maar soms kan het even duren.\n\nBekijk ook de veelgestelde vragen]]> van Telegram: daar vind je antwoorden op de meestgestelde vragen en belangrijke tips voor probleemoplossing]]>. Vraag een vrijwilliger Veelgestelde vragen Veelgestelde vragen - Telegram Features + Telegram-functies https://t.me/TelegramTips Account toevoegen Account kiezen https://telegram.org/faq Privacybeleid Gebruiksvoorwaarden - Door aan te melden ga je akkoord \nmet onze *Gebruiksvoorwaarden*. + Door je aan te melden, ga je akkoord met de *Gebruiksvoorwaarden*. https://telegram.org/privacy + https://telegram.org/tos + https://telegram.org/tos/mini-apps Vertaalbestand verwijderen Taalbestand **%1$s** echt verwijderen? Ongeldig vertalingsbestand Meldingenservice - App automatisch herstarten bij afsluiten om meldingen weer te kunnen blijven geven. + App herstarten bij afsluiten. Dit is belangrijk voor betrouwbare meldingen. Achtergrondverbinding - Achtergrondverbinding voor meldingen. Inschakelen voor betrouwbare meldingen. + Blijf op de achtergrond verbonden met Telegram voor betrouwbare meldingen. Sorteren op Importeer contacten Voornaam Achternaam - LED-kleur + Lichtkleur Pop-up meldingen Geen pop-up Alleen bij scherm aan Alleen bij scherm uit - Altijd pop-up tonen + Altijd weergeven Badgenummer Ingeschakeld - Stille chats meetellen - Tel ongelezen berichten + Gedempte chats meetellen + Ongelezen berichten tellen Kort Lang Automatisch media downloaden @@ -1921,7 +482,7 @@ Aan voor alle chats Tot %1$s in alle chats Uit - Tot %1$s voor %2$s + Tot %1$s voor %2$s Aan voor %1$s Contacten Kanalen @@ -1944,7 +505,7 @@ Maximale bestandsgrootte Volgend nummer voorladen Begin met het downloaden van het volgende nummer tijdens het luisteren. - Grotere video\'s voorladen + Grotere video\'s vooraf laden Laad de eerste paar seconden van video\'s groter dan %1$s voor direct afspelen. Zet dit aan als je media automatisch wilt download via je mobiele netwerk Zet dit aan als je media automatisch wilt downloaden bij roamen. @@ -1955,26 +516,34 @@ Datagebruik Soorten media Spraakberichten zijn miniscuul, ze worden altijd automatisch gedownload. - Geen media + Uitgeschakeld Geen GIF\'s + Auto-download instellingen + Je kunt je instellingen voor automatisch downloaden aanpassen om je mobiele dataverbruik te verminderen. + Je kunt je instellingen voor automatisch downloaden aanpassen om je dataverbruik op wifinetwerken te verminderen. + Je kunt je instellingen voor automatisch downloaden aanpassen om je dataverbruik tijdens het roamen te verminderen. Autom. downloaden resetten Instellingen resetten Instellingen voor automatisch downloaden echt resetten? Bij mobiele verbinding - Bij Wi-Fi-verbinding + Wanneer verbonden met Wi-Fi Bij roaming GIF\'s Video\'s Gebruik de volumeknoppen voor geluid. Account verborgen door gebruiker - Autom. media afspelen - Houd bij oor + Dit account is door de gebruiker verborgen + Media automatisch afspelen + Houd bij oor om te spreken + Neem spraakberichten op door de telefoon naar je oor te brengen + Raise to listen + Schakel over naar de koptelefoon door de telefoon naar je oor te brengen Opslaan in galerij Geluid gedempt Naam wijzigen + Profielkleur wijzigen Aanpassen Aangepast - Aangepaste meldingen inschakelen Prioriteit Systeeminstelling gebruiken Laag @@ -1983,20 +552,21 @@ Dringend Nooit Meldingen herhalen - Je kan je telefoonnummer hier wijzigen. Al je clouddata — berichten, bestanden, groepen, contacten, etc. zullen worden verplaatst naar je nieuwe nummer. + Je kunt je Telegram-nummer hier wijzigen. Je account en al je data in de cloud (berichten, media, contacten, etc.) worden naar het nieuwe nummer overgezet. Gebruikers zien je nieuwe nummer als ze deze in hun adresboek hebben of als je privacy-instellingen dat toestaat. Je kunt dit aanpassen via Instellingen > Privacy en veiligheid > Telefoonnummer. Nummer wijzigen Nummer wijzigen + Behoud %1$s Nieuw nummer - We sturen een sms-bericht met verificatiecode naar je nieuwe nummer. - Aan telefoonnummer %1$s is al een Telegram-account gekoppeld. Verwijder het account om te kunnen migreren naar het nieuwe nummer. + Je krijgt een oproep of sms met een verificatiecode op je nieuwe nummer. + Het telefoonnummer %1$s is reeds aan een Telegram-account gekoppeld. Verwijder dat account voordat je dit nummer kunt gebruiken. Overig Uitgeschakeld Ingeschakeld Uitgeschakeld Uitgeschakeld Uit - Chatgeluiden + Geluiden in chats Standaard Standaard Standaard @@ -2006,56 +576,46 @@ Slimme meldingen Uitzonderingen Uitzondering toevoegen - Alle uitzondering wissen + Alle uitzonderingen verwijderen Alle uitzonderingen wissen - Echt alle uitzonderingen wissen? + Weet je zeker dat je alle uitzonderingen wilt verwijderen? Nieuwe uitzondering Hier vind je alle chats met niet-standaard berichtgevingsinstellingen.\n\nJe kunt de instellingen van een chat wijzigen door het profiel te openen en naar ‘Berichtgeving’ te gaan. - Geen %1$d / %2$s Uitgeschakeld - Aantal geluidsmeldingen - %1$s binnen %2$s - Link-voorbeelden - Link-voorvertoningen worden gegenereerd op de servers van Telegram. We slaan geen data op over de verstuurde links + Voorbeelden van links + Voorbeelden van links worden op de Telegram-servers gegenereerd. We slaan geen informatie op over de links die je verstuurt. Geheime chats - In-app browser - Externe links in de app openen Snel delen Recente chats in snel delen weergeven Emoji Grote emoji - Systeem-emoji gebruiken Telegram voor Android %1$s - Debug-menu - Logbestanden versturen - Send Last Logs - Logboek opschonen - Logboek inschakelen - Logboek uitschakelen - Contacten importeren - Contacten verversen - Chats herstellen - Alles als gelezen - Muziek pauzeren tijdens opnemen - Muziek niet pauzeren tijdens opnemen - Soepel toetsenbord aan - Soepel toetsenbord uit - In-app camera inschakelen - In-app camera uitschakelen - Reset geimporteerde contacten - Verstuurde media cache wissen - Oproepinstellingen Via instellingen kun je je taal altijd aanpassen. Kies je taal Overige + Plakken + Omdraaien + Tik op een object om het uit te knippen + Wegknippen + Object uitknippen + Knippen terugdraaien + Ongedaan maken + Rand toevoegen + Wissen + Herstellen + bewerken Plakken uit klembord Proxy-instellingen Proxy-details Proxy Connecties + Proxy toegevoegd. Proxy toevoegen Proxy verwijderen? + Proxy verwijderen + Weet je zeker dat je deze proxy wilt verwijderen? + Weet je zeker dat je deze proxy\'s wilt verwijderen? Gebruik proxy Server Wachtwoord @@ -2065,56 +625,56 @@ SOCKS5 Proxy MTProto Proxy De door jou ingestelde proxy is niet correct geconfigureerd en zal daarom worden uitgeschakeld. Probeer een andere Proxy. - Proxy-sponsor - Dit kanaal is zichtbaar omdat je een proxy-server gebruikt, om dit kanaal te verwijderen uit je chatoverzicht kun je de proxy uitschakelen via de instellingen van Telegram. + Proxysponsor + Dit kanaal is zichtbaar omdat je een proxyserver gebruikt. Om dit kanaal uit je chatlijst te verwijderen, kun je de proxy uitschakelen via de instellingen van Telegram > Data en opslag. SOCKS5 proxy-instellingen MTProto-proxy-instellingen. De proxy die je gebruikt kan een gesponsord kanaal weergeven in je chatoverzicht, maar heeft geen inzage in je Telegram-verkeer. - Gebruik voor oproepen - Je oproepkwaliteit kan slechter worden door het gebruik van een proxy-server. + Gebruik proxy voor oproepen + Het gebruik van proxyservers kan de kwaliteit van je telefoongesprekken verminderen. Inschakelen Let op Je opslagruimte begint vol te raken. Om ruimte te maken kun je Telegram instellen om alleen recente media te cachen. - Verwijder media na - Nooit verwijderen + Je apparaat heeft bijna geen vrije opslagruimte meer. Je kunt de cache-instellingen gebruiken om onnodige media te verwijderen — bestanden kunnen makkelijk opnieuw worden gedownload wanneer je ze weer nodig hebt. + Cache beheren Contacten Chats Groepschats Kanalen MAXIMALE GROOTTE tot %1$s - Streaming + Streamen Muziek en audio streamen - Sommige video\'s kunnen niet worden gestreamd, bijvoorbeeld video\'s verstuurd vanaf Android met Telegram versie 4.7 en ouder. - Tik om je nummer te wijzigen - Uiterlijk - Stickers en maskers - Kies aangepast kleurenthema - Meldingen weergeven van + Waar mogelijk zal Telegram video\'s en muziek meteen afspelen, zelfs voordat ze volledig zijn gedownload. + Tik hier om je nummer te wijzigen + Meldingen weergeven voor Alle accounts Uitschakelen als je alleen meldingen wilt ontvangen van het account dat je momenteel gebruikt. - Berichtmeldingen voor chats + Meldingen voor chats Privéchats Groepen Kanalen - **%1$s** zijn opgegeven als uitzonderingen, deze wijziging heeft geen effect op hen. + Verhalen + Reacties + Houd er rekening mee dat **%1$s** zijn uitgezonderd en niet door deze wijziging worden beïnvloed. **%1$s** is opgegeven als uitzondering, deze wijziging heeft geen effect op hem/haar. Uitzonderingen weergeven - Berichtmeldingen voor groepen - Berichtmeldingen voor privégesprekken - Berichtmeldingen voor kanalen Tik om te wijzigen Andere opties - Voeg een account toe - Telegram-accounts verbinden en makkelijk wisselen. - Stel een toegangscode in - Vergrendel de App met een toegangscode ter beveiliging. - Cache Wissen - Schoon de opslag op je apparaat op; je media blijft bewaard in de Cloud. + Nog een account toevoegen + Je kunt andere Telegram-accounts koppelen en makkelijk tussen ze schakelen. + Een toegangscode instellen + Je kunt de app met een toegangscode vergrendelen, zodat anderen het niet kunnen openen. + Cache wissen + Selectie wissen + Maak opslagruimte vrij op je apparaat; je media blijft in de cloud. + Cache wordt gewist... + Houd dit venster open terwijl Telegram je cache aan het wissen is. Telefoonnummer wijzigen Verplaats je account, chats en media naar een nieuw nummer. + Je telefoonnummer is met succes gewijzigd naar %1$s. Om hulp vragen - Vertel ons over eventuele problemen; uitloggen helpt meestal niet. + Vertel ons wat het probleem is; uitloggen helpt meestal niet. Uitloggen Uitloggen deactiveert al je geheime chats. Instellingen en veelgestelde vragen zoeken @@ -2128,1044 +688,215 @@ Automatisch Kilometers Mijlen - QR-code scannen + Scan QR-code Scan QR-code - Token ongeldig of al verlopen. Geen authenticatie-token gevonden Authenticatie gelukt https://desktop.telegram.org/ + https://web.telegram.org/ Download Telegram op je computer via *desktop.telegram.org* Gebruik Telegram Desktop om de QR-code te krijgen. Scan de QR-Code om met je account te verbinden. Met deze code kun je iemand toestaan om in te loggen op je Telegram-account\n\nOm de login te bevestigen ga naar, Instellingen > Apparaten > Scan QR en scan de code. - Telegram heeft toegang tot je camera nodig om QR-codes te scannen. + **Telegram** heeft toegang tot je camera nodig, zodat je QR-codes kunt scannen. Tik op Instellingen > Machtigingen en schakel **Camera** aan. Profielfoto instellen - Update Telegram - Version %1$s • %2$s - Downloading %1$d%%... - Update Now - Download Now - Remind me later - **What\'s new?**\n\n• Bug fixes and improvements. + Update uitvoeren + Versie %1$s • %2$s + Aan het downloaden... %1$d%% + Update uitvoeren + Nu downloaden + Herinner me later + **Wat is er nieuw?**\n\n• Probleemoplossingen en verbeteringen Primaire link - Link is no longer active - Cancel Forward - Select another chat - Do you want to cancel forwarding or to forward messages to a different chat? - Chat list swipe gesture - Pin - Read - Archive - Mute - Delete - Change Folder - Unmute - Mute - Delete - Read - Unread - Unpin - Pin - Cancel Forwarding - Bio updated. - Name updated. - Channel title updated. - Channel description updated. - - Lokale database - Lokale database wissen - Gecachete tekstberichten wissen? - Het opschonen van de lokale database zal de tekst van gecachet berichten verwijderen en de database comprimeren om ruimte te besparen. Telegram heeft wat ruimte nodig om te kunnen functioneren, dus de databasegrootte zal nooit nul worden.\n\nDit kan enkele minuten duren. - Cache opschonen - Opschonen - Berekenen... - Bestanden - Foto\'s - Spraak- en videoberichten - Video\'s - Muziek - GIFs - Overige bestanden - Leeg - Media bewaren - Foto\'s, video\'s en andere bestanden uit cloudchats die je gedurende deze periode niet hebt **geopend** zullen worden verwijderd van dit apparaat om ruimte te besparen.\n\nAlle media zal in de Telegram-cloud bewaard blijven en kan opnieuw worden gedownload als je het weer nodig hebt. - Voor altijd - Spraakberichten - Videoberichten - - Telegram Passport - Gevraagde informatie - Opgegeven informatie - Wat is Telegram Passport? - Met Telegram Passport kun je je makkelijk aanmelden voor diensten en websites die identiteitsverificatie vereisen.\n\nJe informatie, persoonsgegevens en bestanden worden beschermd middels end-to-end-versleuteling. Niemand, ook Telegram niet, heeft toegang tot deze gegevens zonder je toestemming.\n\nJe kunt onze *Veelgestelde vragen* bekijken voor meer informatie. - https://telegram.org/faq#passport - Stel een wachtwoord in om je persoonsgegevens te beveiligen met end-to-end-versleuteling.\n\nDit wachtwoord heb je ook nodig wanneer je inlogt op Telegram vanaf een nieuw apparaat. - Stel een wachtwoord in - Telegram Passport verwijderen - Telegram passport verwijderen - Telegram Passport echt verwijderen? - Controleer of je naam geen ongeldige tekens bevat. - Upload scans van een gecertificeerde Engelse vertaling van je paspoort. - Upload scans van een gecertificeerde Engelse vertaling van je nationale paspoort. - Upload scans van een gecertificeerde Engelse vertaling van je rijbewijs. - Upload scans van een gecertificeerde Engelse vertaling van je identiteitsbewijs. - Upload een scan van je energierekening - Upload een scan van je bankafschrift - Upload een scan van je huurovereenkomst - Upload een scan van je paspoortregistratiepagina - Upload een scan van je tijdelijke identiteitsbewijs - Upload een scan of foto van het gekozen document (alle pagina\'s) om je adres te bevestigen. - Upload scans van een gecertificeerde Engelse vertaling van je energierekening. - Upload scans van een gecertificeerde Engelse vertaling van je bankafschrift. - Upload scans van een gecertificeerde Engelse vertaling van je huurovereenkomst. - Upload scans van een gecertificeerde Engelse vertaling van je paspoortregistratiepagina. - Upload scans van een gecertificeerde Engelse vertaling van je tijdelijke identiteitsbewijs. - Upload scans van een gecertificeerde Engelse vertaling van het gekozen document. - Energierekening toevoegen - Bankafschrift toevoegen - Huurovereenkomst toevoegen - Adres - Woonadres - Voer je adres in - Upload bewijs van je woonadres - Adres - Straat - Straat - Postcode - Stad - Provincie - Land - Telefoonnummer - Telefoonnummer echt verwijderen? - Voer je telefoonnummer in - Gebruik %1$s - Gebruik hetzelfde telefoonnummer als op Telegram - Gebruik hetzelfde E-mailadres als op Telegram - Of geef een nieuw telefoonnummer op - Let op: Je ontvangt de bevestigingscode op het opgegeven telefoonnummer. - E-mailadres - E-mailadres verwijderen? - Voer je E-mailadres in - Let op: Je ontvangt een bevestigingscode op het door jou opgegeven E-mailadres. - Code - Voer de bevestigingscode in die we hebben verstuurd naar %1$s. - Voer je wachtwoord in voor toegang tot je persoonsgegevens - **%1$s ** vraagt om toegang tot je persoonsgegevens om je aan te melden voor de door hen aangeboden diensten - Voer je Telegram-wachtwoord in om je gegevens te ontsleutelen. - Je gaat akkoord met het *%1$s Privacybeleid* en staat toe dat \n@%2$s je berichten stuurt. - Je stuurt je documenten direct naar %1$s en staat %2$s toe je berichten te sturen. - Toestaan - Paspoort toevoegen - Nationaal paspoort toevoegen - Paspoortregistratie - Tijdelijk identiteitsbewijs - Identiteitskaart toevoegen - Rijbewijs toevoegen - Persoonsgegevens - Voer je persoonsgegevens in - Identiteitsbewijs - Upload een scan van je paspoort of ander identiteitsbewijs - Upload een scan van je paspoort - Upload een scan van je nationaal paspoort - Upload een scan van je identiteitskaart - Upload een scan van je rijbewijs - Persoonsgegevens - Documentdetails - Naam - Tweede naam - Achternaam - Naam (Latijns alfabet) - Tweede naam (Latijns alfabet) - Achternaam (Latijns alfabet) - Naam (%1$s) - Tweede naam (%1$s) - Achternaam (%1$s) - Kies je geslacht - Man - Vrouw - Geboortedatum - Geslacht - Documentnummer - Verloopdatum - Burgerschap - Land van residentie - Selfie - Vereiste documenten - Upload een selfie waarop je het document vasthoudt - Vertaling - Voorkant - Upload een foto van de voorkant van het document - Achterkant - Upload een foto van de achterkant van het document - Hoofdpagina - Upload een foto van de hoofdpagina van het document - Kies de verloopdatum - Verloopt niet - Geen - Kies je geboortedatum - Selfie verwijderen? - Dit document moet je foto, voor en achternaam, geboortedatum, documentnummer, land van uitgifte en verloopdatum bevatten. - Alle informatie die je hebt ingegeven weggooien? - Weggooien - Scans - Document verwijderen - Verwijder - Scan echt verwijderen? - Selfie echt verwijderen? - Document echt verwijderen? - Persoonsgegevens echt verwijderen? - Adresgegevens echt verwijderen? - Persoonsgegevens verwijderen - Adresgegevens verwijderen - Scan verwijderen? - Scans uploaden - Upload extra scans - Je kunt maximaal %1$s uploaden. - Je kunt alleen afbeeldingen uploaden - Scan je paspoort - Scan je paspoort of identiteitskaart met de machine-leesbare-zone om je gegevens automatisch in te vullen. - Document toevoegen - Nog geen documenten - Je kunt je telefoonnummer, E-mailadres, identiteitsbewijs of woonadres toevoegen. - Tik om fouten te corrigeren. - %1$s of %2$s - Je naam - Je naam in het %1$s - Je naam in de taal van het land (%1$s) van residentie. - Controleer of deze naam klopt:\n\n%1$s %2$s %3$s - Arabisch - Azerbeidzjaans - Bulgaars - Bangla - Tsjechisch - Deens - Duits - Divehi - Dzongkha - Grieks - Spaans - Estisch - Perzisch - Frans - Hebreeuws - Kroatisch - Hongaars - Armeens - Indonesisch - IJslands - Italiaans - Japans - Georgisch - Khmer - Koreaans - Laotiaans - Litouws - Lets - Macedonisch - Mongools - Maleis - Birmaans - Nepalees - Nederlands - Pools - Portugees - Roemeens - Russisch - Slowaaks - Sloveens - Thai - Turkmeens - Turks - Oekraïens - Oezbeeks - Vietnamees - - Actieve sessies - Dit apparaat - Geen andere actieve sessies - Je kunt in Telegram inloggen vanaf andere apparaten (mobiel, tablet, desktop) met hetzelfde telefoonnummer. Al je data zal direct worden gesynchroniseerd. - Actieve sessies - Beheer je sessies van andere apparaten. - Tik op een sessie om deze te beëindigen. - Deze sessie beëindigen? - Deze sessie echt beëindigen? - Logt alle apparaten behalve deze uit. - Sessies beëindigen - Sessie beëindigen - Beëindigen - Alle apparaten behalve het huidige apparaat uitloggen? - Beëindig alle andere sessies - onofficiële app - Geen actieve logins. - Je kunt inloggen op websites die authenticatie via Telegram ondersteunen. - Verbonden websites - Ingelogd met Telegram - Tik om de verbinding met je Telegram-account te verbreken. - Verbinding met %1$s echt verbreken? - Website-verbinding verbreken - Websites-verbinding verbreken - Verbreken - %1$s blokkeren - Verbinding met alle websites verbreken - Wil je de verbinding met alle websites waarmee je via Telegram bent ingelogd verbreken? - Je kunt inloggen op websites die authenticatie via Telegram ondersteunen. - Incomplete loginpogingen - Deze apparaten hebben geen toegang tot je account. De code werd correct ingegeven, maar geen correct wachtwoord. - - Mappen - Instellen - Mappen instellen - Maak nieuwe map - Maak mappen voor verschillende groepen chats en wissel snel tussen ze. - Aanbevolen mappen - Alle chats - Alle - Herschikken - Map bewerken - Mappen bewerken - Contacten - Niet-contacten - Groepen - Kanalen - Exlusief gedempt - Exclusief gelezen - Bewerken - Verwijderen - Exclusief gearchiveerd - Ongelezen - Map verwijderen - Gedempt - Gelezen - Gearchiveerd - Chats opnemen - Chats uitzonderen - Chats toevoegen - Chats verwijderen - Chattypes - Chats - Inbegrepen chats - Uitgezonderde chats - Kies chats en chat-types die in deze map komen. - Kies chats en chat-types die niet in deze map komen. - Geheime chats - Bots - Chats toevoegen - Wacht even terwijl we deze map voor je vullen... - Map is leeg - Geen chats die momenteel horen bij deze map. - Nieuwe map - Geen chats - Contact - Niet-contact - Uitzondering toevoegen - Mapnaam - Deze map echt verwijderen? Je chats worden niet verwijderd. - Wijzigingen toepassen? - Je hebt deze map bewerkt. Wijzigingen toepassen? - Map maken? - Je hebt de map nog niet gemaakt, nu maken? - Maken - %1$d extra chats tonen - %1$d extra chat tonen - %1$d extra chats tonen - %1$d extra chats tonen - %1$d extra chats tonen - %1$d extra chats tonen - Uitzondering verwijderen - Uitzondering verwijderen - \"%1$s\" echt verwijderen uit de \"nooit inbegrepen\"-lijst? - \"%1$s\" echt verwijderen uit je zoekgeschiedenis? - \"%1$s\" echt verwijderen uit de \"nooit inbegrepen\"-lijst? - \"%1$s\" echt verwijderen uit de \"altijd inbegrepen\"-lijst? - \"%1$s\" echt verwijderen uit de \"altijd inbegrepen\"-lijst? - \"%1$s\" echt verwijderen uit de \"altijd inbegrepen\"-lijst? - Chatmappen - Open *Instellingen> Mappen* om je chats in mappen in te delen. - Niet gedempt - Ongelezen - Toevoegen aan map - Verwijderen van map - Kies een map - **%1$s** toegevoegd aan **%2$s** - **%1$s** toegevoegd aan **%2$s** - **%1$s** toegevoegd aan **%2$s** - **%1$s** verwijderd van **%2$s** - **%1$s** verwijderd van **%2$s** - **%1$s** verwijderd van **%2$s** - Limiet bereikt - Sorry, je kunt niet meer dan 100 chats uitsluiten van een map - - Toegangscode-vergrendeling - Toegangscode wijzigen - Als je een toegangscode instelt verschijnt er een slotje op de chatspagina. Tik erop om Telegram te vergrendelen of te ontgrendelen.\n\nLet op: vergeet je de toegangscode dan zul je de app moeten verwijderen en herinstalleren. Alle geheime chats gaan daarbij verloren. - PIN - Wachtwoord - Huidige toegangscode invoeren - Toegangscode invoeren - Nieuwe toegangscode invoeren - Toegangscode invoeren - Toegangscode opnieuw invoeren - Toegangscodes komen niet overeen - Automatisch vergrendelen - Vraag om toegangscode indien afwezig - over %1$s - Uitgeschakeld - Ontgrendel met vingerafdruk - Vingerafdruk bevestigen - Vingerafdruksensor - Vingerafdruk niet herkend, probeer opnieuw - App-inhoud weergeven in taakbeheer - Indien uitgeschakeld kun je geen in-app schermafdrukken maken, chats zijn dan ook niet zichtbaar in taakbeheer. - Hiermee verberg je de inhoud van je chats of chatoverzicht in je taakbeheer, ook kun je geen schermafdrukken maken in Telegram.\n\nHet kan zijn dat je de app moet herstarten voordat dit actief is. - Teveel pogingen.\nProbeer het opnieuw over %1$s. - - januari - februari - maart - april - mei - juni - juli - augustus - september - oktober - november - december - Bestanden - Media - Gedeelde media - Groepen - Links - Muziek - Spraak - GIF\'s - Gedeelde bestanden - Gedeelde content - Gedeelde links - Gedeelde muziek - Deel foto\'s en video\'s in deze chat om ze op al je apparaten te kunnen benaderen. - Deel muziek in deze chat om er vanaf al je apparaten gebruik van te maken. - Deel bestanden en documenten in deze chat om ze op al je apparaten te kunnen benaderen. - Deel links in deze chat om ze op al je apparaten te kunnen benaderen. - Deel spraakberichten in deze chat en open ze vanaf al je apparaten. - Foto\'s en video\'s van deze chat verschijnen hier - Muziek van deze chat verschijnt hier - Bestanden van deze chat verschijnen hier - Gedeelde links can deze chat verschijnen hier - Spraakberichten in deze chat worden hier weergegeven. - GIF\'s uit deze chat komen hier. - - Kaart - Satelliet - Hybride - %1$s m afstand - %1$s km afstand - %1$s voet afstand - %1$s mijl afstand - %1$s ft - %1$s mi - mi - km - %1$s m - %1$s km - %1$s m afstand - %1$s km afstand - %1$s ft afstand - %1$s mi afstand - Aanwijzingen - Geen plaatsen gevonden - Geen resultaten met **%1$s** bij jou in de buurt. - Huidige locatie sturen - Deel mijn live-locatie - Deel mijn live-locatie - Delen van locatie stoppen - Stop locatie delen - Stoppen met het delen van je Live-locatie met **%1$s**? - Stoppen met het delen van je Live-locatie met **%1$s**? - Stoppen met het delen van je Live-locatie? - Bijgewerkt terwijl je je verplaatst - Geselecteerde locatie sturen - Locatie - Plek - Nauwkeurig tot op %1$s - %1$s van jou - Of kies een plaats - Tik om deze locatie te sturen - Live-locaties - Live-locatie - 15 minuten - 1 uur - 8 uur - bijgewerkt - bijgewerkt %1$s - zojuist bijgewerkt - Jij en %1$s - %1$s aan het delen met %2$s - %1$s delen met %2$s - %1$s delen met %2$s - ALLES STOPPEN - Je deelt je live-locatie met %1$s - Kies hoelang je je nauwkeurige locatie met %1$s wilt delen. - Kies hoelang je je Live-locatie met mensen in deze chat wilt delen. - GPS inschakelen - Activeer je GPS voor locatie-gebaseerde diensten. - Maak mij zichtbaar - Profiel weergeven? - Gebruikers dichtbij kunnen je profiel zien en je berichten sturen. Op deze manier kun je nieuwe mensen leren kennen maar je kunt ook ongewenste aandacht krijgen. Je kunt ieder moment stoppen met het delen van je profiel.\n\nJe telefoonnummer blijft verborgen. - Weergeven stoppen - Mensen dichtbij - Mensen dichtbij vinden - Voeg mensen dichtbij die deze sectie open hebben makkelijk toe en ontdek lokale groepschats.\n\nSta locatie-toegang toe om deze functie in te schakelen. - Mensen dichtbij - Sta toegang toe - Voeg snel mensen dichtbij toe die deze sectie open hebben en ontdek lokale groepschats.\n\nSta locatietoegang toe om deze functie te gebruiken. - Inschakelen - Groepen dichtbij - Wissel contactgegevens uit met mensen dichtbij en vind nieuwe vrienden - Zoeken naar gebruikers in de buurt - Maak een lokale groep - Groep starten - Iedereen die hier dichtbij is (buren, collega\'s, medestudenten, etc.) zien je groep in de \"Mensen dichtbij\"-sectie. - Als je een ongerelateerde groep op deze plek start kun je beperkt worden in het maken van nieuwe lokatie-afhankelijke groepen. - Locatie instellen - Stel deze locatie in - Mensen kunnen je groep vinden in de \"Mensen Dichtbij\"-sectie - Plaatsen in de buurt - Nabijheidsmelding - Melden als %1$s binnen %2$s is - Melden indien iemand binnen %1$s is - Je bent al binnen %1$s - Locatie delen - Delen - Deel je Live-locatie in deze chat om de melding te activeren - Melden als %1$s dichtbij is - Melden als andere groepsleden in de buurt zijn - Nabijheidsmelding ingesteld - We sturen je een melding als %1$s binnen een straal van %2$s is. - We sturen je een melding als iemand binnen een straal van %1$s is. - Nabijheidsmelding geannuleerd - - Weergeven als lijst - Weergeven als rooster - Alle media weergeven - Stickers weergeven - Alle bestanden - Alle GIF\'s tonen - Tik om te downloaden - BESTAND OPENEN - In chat weergeven - Stop download - Opslaan in galerij - %1$d van %2$d - **%1$d** of %2$d - Galerij - Alle foto\'s - Alle media - Alle video\'s - Nog geen foto\'s - Download media eerst - Wacht todat de video volledig is gedownload. - Deze video is niet geoptimaliseerd om te streamen, een volledige download kan nodig zijn om deze af te spelen. - De app kon deze video niet afspelen. Afspelen proberen met externe speler? - Geen recente zoekopdrachten - Afbeeldingen - GIF\'s - Niets recents - ONLINE ZOEKEN - ZOEK OP HET WEB - "GIF\'S ZOEKEN " - Online zoeken - GIF\'s zoeken - Tik om toegang tot je camera toe te staan - Tik om toegang tot je galerij toe te staan - Foto bijsnijden - Verbeteren - Accent - Contrast - Belichting - Warmte - Verzadiging - Vignet - Schaduwen - Korrel - Scherper - Vervagen - Huid verzachten - SCHADUWEN - ACCENTUEREN - ALLE - ROOD - GROEN - BLAUW - Uit - Lineair - Radiaal - Foto verwijderen - Foto echt verwijderen? - Video verwijderen - Video echt verwijderen? - GIF verwijderen - Echt deze GIF verwijderen? - Deze foto echt voor iedereen verwijderen? - Deze video echt voor iedereen verwijderen? - Deze GIF echt voor iedereen verwijderen? - Wijzigingen weggooien? - Alle wijzigingen echt weggooien? - Zoekgeschiedenis wissen? - Zoekgeschiedenis echt wissen? - Zoekgeschiedenis wissen - Zoekgeschiedenis - \"%1$s\" echt verwijderen uit je zoekgeschiedenis? - \"%1$s\" echt verwijderen uit je zoekgeschiedenis? - Verwijderen - Wissen - Onderschrift toevoegen - Foto-onderschrift - Video-onderschrift - GIF-Onderschrift - Onderschrift - Verwijder - Bewerk - Pen - Markeerstift - Neon - Pijl - Klonen - Omlijnd - Normaal - Omlijst - Resetten - Origineel - Vierkant - Geeft media als aparte berichten weer - Geef media als een enkel bericht weer - Stuur zonder groeperen - Stuur zonder compressie - Kies een voorpagina voor je profielvideo - Als hoofd instellen - Openen in bewerker - Dit is nu je hoofdprofielfoto. - Dit is nu je hoofdprofielvideo. - Dit is nu de hoofdkanaalfoto. - Dit is nu de hoofdkanaalvideo. - Dit is nu de hoofdgroepsfoto. - Dit is nu de hoofdgroepsvideo. - Foto opgeslagen in galerij - Video opgeslagen in galerij - Foto opgeslagen in downloads - Video opgeslagen in downloads - GIF opgeslagen in downloads - Bestand opgeslagen in muziek - Bestand opgeslagen in downloads - %1$d bestanden opgeslagen in downloads - %1$d bestand opgeslagen in downloads - %1$d bestanden opgeslagen in downloads - %1$d bestanden opgeslagen in downloads - %1$d bestanden opgeslagen in downloads - %1$d bestanden opgeslagen in downloads - %1$d foto\'s opgeslagen in galerij - %1$d foto opgeslagen in galerij - %1$d foto\'s opgeslagen in galerij - %1$d foto\'s opgeslagen in galerij - %1$d foto\'s opgeslagen in galerij - %1$d foto\'s opgeslagen in galerij - %1$d video\'s opgeslagen in galerij - %1$d video opgeslagen in galerij - %1$d video\'s opgeslagen in galerij - %1$d video\'s opgeslagen in galerij - %1$d video\'s opgeslagen in galerij - %1$d video\'s opgeslagen in galerij - %1$d bestanden opgeslagen in muziek - %1$d bestand opgeslagen in muziek - %1$d bestanden opgeslagen in muziek - %1$d bestanden opgeslagen in muziek - %1$d bestanden opgeslagen in muziek - %1$d bestanden opgeslagen in muziek - %1$d items in galerij opgeslagen - %1$d item in galerij opgeslagen - %1$d items in galerij opgeslagen - %1$d items in galerij opgeslagen - %1$d items in galerij opgeslagen - %1$d items in galerij opgeslagen + Link is niet meer actief + Wat wil je met %1$s uit je chat met **%2$s** doen? + Wat wil je doen met %1$s van **%2$s**? + Afzendernamen tonen + Afzendernamen verbergen + Afzendernaam tonen + Afzendernaam verbergen + Effect van vegen over chats + Kies welke handeling je wilt uitvoeren wanneer je naar links veegt in de chatlijst. + Vastzetten + Lezen + Archiveren + Dempen + Verwijderen + Map wijzigen + Geluid aan + Stil + Verwijderen + Gelezen + Ongelezen + Maak los + Zet vast + Doorsturen annuleren + Bio bijgewerkt. + Naam bijgewerkt + Kanaaltitel bijgewerkt. + Kanaalbeschrijving bijgewerkt + Is %1$s nog steeds je nummer? + Houd je nummer actueel zodat je altijd op Telegram kunt inloggen. **Lees meer** + https://telegram.org/faq#q-i-have-a-new-phone-number-what-do-i-do + Ja + Nee - Twee-staps-verificatie - Twee-staps-verificatie + Tweestapsverificatie + Tweestapsverificatie Wachtwoord ingesteld! - Dit wachtwoord heb je nodig wanneer je inlogt op Telegram vanaf een nieuw apparaat, naast de code die je ontvangt per SMS. + Wanneer je op een nieuw apparaat inlogt, zal dit wachtwoord nodig zijn naast de code die je via SMS ontvangt. Terug naar instellingen Terug naar Passport Wachtwoord instellen Wachtwoord weergeven Extra wachtwoord instellen - Naast de code die je per SMS ontvangt kun je een extra wachtwoord instellen voor als je inlogt op een nieuw apparaat. + Je kunt een wachtwoord instellen dat nodig zal zijn wanneer je op een nieuw apparaat inlogt, naast de code die je via SMS ontvangt. Je wachtwoord + Je wachtwoord + Je account is met 2-stapsverificatie beschermd. Ken je jouw wachtwoord nog? + Ja, zeker weten + Niet zeker Aan Uit + Voer je wachtwoord in Voer je wachtwoord in - Voer je wachtwoord in om de overdracht af te ronden - Wachtwoord invoeren - Nieuw wachtwoord invoeren - Nieuw wachtwoord invoeren + Wachtwoord controleren + Ken je jouw wachtwoord nog? + Perfect! + Je kent je wachtwoord nog. + Verkeerd wachtwoord ingevoerd. + Terug naar de Instellingen + Voer je wachtwoord in om de overdracht af te ronden. + Voer je wachtwoord in om verder te gaan met verzilveren. + Voer een nieuw wachtwoord in Wachtwoord opnieuw invoeren + Nieuw wachtwoord + Je kunt nu een nieuw wachtwoord instellen om in te loggen op je account. + Voor nieuw wachtwoord in + Voer nieuw wachtwoord nogmaals in Herstel-e-mailadres Herstel-e-mailadres + Je kunt een herstel-e-mailadres instellen om je wachtwoord te resetten en de toegang tot je Telegram-account te herstellen. Je e-mailadres - Je e-mailcode - Bevestig je e-mailadres door de code in te geven die je hebt ontvangen op %1$s. - Voeg je geldige e-mailadres toe. Het is de enige manier om je wachtwoord te herstellen. + Je nieuwe e-mailadres + Je e-mailadres is gewijzigd. + Voeg een geldig e-mailadres toe. Dat is de enige manier om een vergeten wachtwoord te herstellen. Overslaan Waarschuwing - Let op:\n\nAls je je wachtwoord vergeet verlies je toegang tot je Telegram-account. Er is geen optie om dit te herstellen. + Nee, werkelijk.\n\nAls je jouw wachtwoord vergeet, verlies je de toegang tot je Telegram-account. Er is geen manier om het te herstellen. Bijna klaar! - Controleer je e-mail en klik op de bevestigingslink om de twee-staps-verificatie in te schakelen. Kijk voor de zekerheid ook in de ongewenste post. + Controleer je e-mail (vergeet je spam niet) om de activering van tweestapsverificatie te voltooien. Gelukt! - Je wachtwoord voor twee-staps-verificatie is nu actief. Je tweestapsverificatiewachtwoord is aangepast. - Je herstel-e-mailadres voor twee-staps-verificatie is nu actief. - Je herstel-e-mailadres voor twee-staps-verificatie is gewijzigd. + Je herstel-e-mailadres voor tweestapsverificatie is nu actief. + Je herstel-e-mailadres voor tweestapsverificatie is gewijzigd. Wachtwoord wijzigen Wachtwoord uitschakelen Herstel-e-mailadres instellen Herstel-e-mailadres wijzigen Wachtwoord uitschakelen Weet je zeker dat je je wachtwoord wilt uitschakelen? - Instellen van Twee-staps-verificatie annuleren? - Instellen van herstel-e-mailadres annuleren? - Installatie annuleren - Let op! Alle opgeslagen gegevens in je Telegram Passport gaan verloren! + Weet je zeker dat je de installatie van tweestapsverificatie wilt annuleren? + Weet je zeker dat je geen herstel-e-mailadres wilt instellen? + Resetprocedure annuleren? Als je later een nieuwe reset aanvraagt, duurt het weer 7 dagen. + JA + NEE + Reset annuleren + Instellen annuleren + Alle gegevens in je Telegram Passport zullen verloren gaan. Wachtwoordhint + Je kunt een optionele hint voor je wachtwoord instellen. Hint - Stel een hint voor je wachtwoord in + Stel een hint in voor je wachtwoord + Maak een hint aan voor je wachtwoord Wachtwoorden komen niet overeen - Twee-staps-verificatie annuleren - Installatie annuleren - Instellen annuleren + Wachtwoord opnieuw invoeren + Instellen van tweestapsverificatie annuleren + Instellen annuleren + Instellen van herstel-e-mailadres annuleren Annuleren Uitschakelen - Voer de code in die we hebben gestuurd om twee-staps-verificatie in te schakelen. Controleer ook je ongewenste post. - Voer de code in die we hebben gestuurd naar %1$s om je herstel-e-mailadres in te schakelen. Controleer ook je ongewenste post. + Controleer je e-mail (vergeet je spam niet) en voer de ontvangen code in om de activering van tweestapsverificatie te voltooien. De hint moet anders zijn dan je wachtwoord - Ongeldig e-mailadres, controleer of je het adres correct hebt ingegeven en probeer opnieuw. + Ongeldig e-mailadres, probeer het opnieuw. Sorry Omdat je geen herstel-e-mailadres hebt opgegeven voor je wachtwoord zul je bij verlies van je wachtwoord je account moeten resetten. + Omdat je bij het instellen van je wachtwoord geen herstel e-mailadres hebt ingevuld, zijn de enige opties: je wachtwoord alsnog zoeken of 7 dagen wachten tot je wachtwoord opnieuw is ingesteld. + Weet je zeker dat je jouw wachtwoord voor 2-stapsverificatie wilt resetten? + Je wachtwoord voor tweestapsverificatie is gereset. RESET ACCOUNT + Wachtwoord Resetten + Je kunt je wachtwoord over %1$s resetten. + Wachtwoord resetten Herstelcode We hebben een herstelcode naar je opgegeven e-mailadres gestuurd:\n\n%1$s - Controleer je E-mail en geef de 6-cijferige code in die we je hebben gestuurd. + Controleer je e-mail en noteer de 6-cijferige code die je daar hebt ontvangen om je cloudwachtwoord uit te schakelen. Geen toegang tot %1$s? Geen toegang tot je e-mail? - Bij verlies van je wachtwoord zul je je account moeten resetten. + Als je de toegang tot je e-mailadres niet kunt herstellen, heb je maar twee opties: alsnog je wachtwoord achterhalen of je account resetten. + Als je geen toegang hebt tot je herstel-e-mailadres, heb je twee mogelijkheden: je wachtwoord alsnog terugvinden of 7 dagen wachten zodat je wachtwoord opnieuw wordt ingesteld. + Geen toegang tot %1$s? + Je hebt onlangs een wachtwoordreset geannuleerd. Wacht alsjeblieft %1$s voordat je een nieuw verzoek indient. ACCOUNT RESETTEN - Al je chats, berichten en alle andere data gaan verloren als je verder gaat met de account-reset. Waarschuwing - Je kunt dit niet ongedaan maken.\n\nAl je chats, berichten en data gaan verloren als je je account reset. + Deze handeling kan niet worden teruggedraaid.\n\nAls je jouw account reset, gaan al je berichten en chats verloren. Reset Account Wachtwoord - Twee-staps-verificatie ingeschakeld. Je account is met een extra wachtwoord beveiligd. + Tweestapsverificatie is ingeschakeld. Je account is met een extra wachtwoord beveiligd. + Tweestapsverificatie is ingeschakeld. Je account is met een extra wachtwoord beveiligd. Wachtwoord vergeten? Wachtwoordherstel Code Wachtwoord uitgeschakeld - Code opnieuw sturen + Code opnieuw versturen Verificatiecode Code invoeren De verificatiecode is naar je e-mailadres gestuurd. - Je hebt twee-staps-verificatie ingeschakeld.\nAls je inlogt op je Telegram-account heb je het ingestelde wachtwoord nodig. - - Data en opslag - Opslag- en datagebruik - Opslaggebruik - Datagebruik - Opslagpad - Mobiel - Wi-Fi - Roaming - Berichten en andere gegevens - Verzonden - Ontvangen - Verzonden bytes - Ontvangen bytes - Bestanden - Oproepen - Uitgaande oproepen - Inkomende oproepen - Totale oproeptijd - Totaal - Gegevens opnieuw instellen - Datagebruik sinds %1$s - Statistieken resetten - Gebruiksgegevens opnieuw instellen? - - Privacy en veiligheid - Privacy - Laatst gezien en online - Profielfoto\'s - Wie kan mijn profielfotos en -video\'s zien? - Je kunt nauwkeurig beperken wie je profielfoto kan zien. - Je kunt gebruikers of groepen toevoegen als uitzondering op de instelling hierboven. - Telefoonnummer - Wie kan mijn telefoonnummer zien? - Wie kan me vinden via mijn nummer? - Gebruikers die je nummer al hebben opgeslagen in contacten zien je nummer op ook Telegram. - Gebruikers die je nummer aan contacten toevoegen zien jouw nummer alleen als ze ook in jouw contacten staan. - Je kunt gebruikers of groepen toevoegen als uitzondering op de instelling hierboven. - Doorgestuurde berichten - Link naar je account - Link indien hieronder toegestaan - Geen link naar je account - Wie voegt een link naar mijn account toe bij het doorsturen van mijn berichten - Berichten van je die worden doorgestuurd linken niet terug naar je account. - Je kunt gebruikers of groepen toevoegen als uitzondering op de instelling hierboven. - Godfried, verveel je je? - Peer-to-Peer - Peer-to-Peer in oproepen - Gebruik Peer-to-Peer met - Bots en websites - Betaal- en verzendinfo wissen - Betaalgegevens wissen - Betaal- en verzendgegevens wissen? - Je verzendinformatie wissen en alle betalingsproviders opdracht geven om je bewaarde creditcards te verwijderen? Je creditcardgegevens worden nooit opgeslagen door Telegram. - Payment info cleared. - Shipping info cleared. - Payment and shipping info cleared. - Websites waarop je Telegram hebt gebruikt om in te loggen. - Verzendinformatie - Betaalinformatie - Verwijder alle Cloud-conceptberichten - Iedereen - Mijn contacten - Niemand - Iedereen (-%1$d) - Mijn contacten (+%1$d) - Mijn contacten (-%1$d) - Mijn contacten (-%1$d, +%2$d) - Niemand (+%1$d) - Iedereen - Contacten - Niemand - Iedereen (-%1$d) - Contacten (+%1$d) - Contacten (-%1$d) - Contacten (-%1$d, +%2$d) - Niemand (+%1$d) - Veiligheid - Account verwijderen - Nieuwe chats van onbekende gebruikers - Archiveer en demp - Nieuwe chats, groepen en kanalen van niet-contacten automatisch archiveren en dempen. - Verwijder mijn account - Verwijder mijn account indien afwezig voor - Indien afwezig voor - Als je binnen deze periode niet minimaal één keer ingelogd bent geweest zal je account worden verwijderd, inclusief alle berichten en contacten. - Wie kan mijn laatst gezien tijd zien? - Uitzonderingen toevoegen - Aan uitzonderingen toevoegen - Let op: van mensen waarmee je je laatst gezien tijd niet deelt is deze voor jou ook niet zichtbaar. In plaats daarvan krijg je tijden bij benadering te zien (recent, afgelopen week, afgelopen maand). - Je hebt privacyinstellingen aangepast. Wijzigingen toepassen? - Altijd delen met - Nooit delen met - Je kunt gebruikers of groepen toevoegen als uitzondering op de instelling hierboven. - Altijd delen - Nooit delen - Toevoegen - Sorry, te veel verzoeken. Momenteel is het niet mogelijk om de privacyinstellingen te wijzigen, even geduld alsjeblieft. - Gebruiker vasthouden om te verwijderen. - Groepen - Wie kan me toevoegen aan groepchats? - Je kunt nauwkeurig bepalen wie je aan groepen en kanalen mag toevoegen. - Altijd toestaan - Nooit toestaan - Deze gebruikers altijd toestaan of verbieden je aan groepen en kanalen toe te voegen. - Wijzig wie je aan groepen en kanalen kan toevoegen. - Je kunt deze gebruiker niet toevoegen aan groepen vanwege de privacyinstellingen van deze gebruiker. - Je kunt deze gebruiker niet toevoegen aan kanalen vanwege de privacyinstellingen van deze gebruiker. - Je kan geen groep maken met deze gebruikers vanwege de privacyinstellingen van deze gebruikers. - Peer-to-peer uitschakelen zorgt ervoor dat alle gesprekken verlopen via Telegram-servers, dit voorkomt dat je IP-adres zichtbaar is maar verlaagt de audio- en videokwaliteit. - Wis gesynchroniseerde contacten - Veelgebruikte contacten voorstellen - Mensen die je vaak een bericht stuurt bovenaan de zoeksectie weergeven voor snelle toegang. - Suggesties uitschakelen - Hiermee verwijder je alle gegevens van mensen die je vaak berichten stuurt, inclusief inline-bots die je veel gebruikt. - Voeg gebruikers of groepen toe. - Uitzonderingen - Geen - Contacten verwijderen - Hiermeer verwijder je je contacten van de Telegram-servers.\n\nAls \'**Contacten synchroniseren**\' aan staat worden de contacten opnieuw gesynchoniseerd. + Je hebt tweestapsverificatie ingeschakeld. Het wachtwoord dat je hier instelt, heb je later nodig om in te loggen op je Telegram-account. + Kies een e-mailadres om in te loggen + Inlogcodes van Telegram ontvang je via e-mail in plaats van SMS. Voer een e-mailadres in waar je toegang toe hebt. + Voer nieuw e-mailadres in + Controleer je e-mailadres %1$s (en eventueel je spam) voor de code die we zojuist naar je hebben verzonden. + Controleer je e-mail + Voer de code in die we naar je e-mail hebben gestuurd: %1$s. + Controleer je mailbox + Voer de code in die naar je nieuwe e-mailadres is verzonden: %1$s. + of Video versturen GIF versturen... - - bot - Delen - Groepslid maken - Instellingen - Help - toegang tot berichten - geen toegang tot berichten - Wat kan deze bot? - BEGIN - HERSTART - Bot stoppen - Bot herstarten - - Gereed - Openen - Opslaan - Annuleren - Sluit - Wijzigen - Toevoegen - Wijzig - Stuur - Bellen - Video-oproep - Kopieer - Verwijder - Start - Verwijderen en stoppen - Doorsturen - Opnieuw proberen - Van camera - Uit galerij - Foto verwijderen - Stel in - OK - Stop - Langer wachten - Doorgaan - Link maken - BIJSNIJDEN - App bijwerken - NU BIJWERKEN - BIJWERKEN - LATER - Akkoord - Akkoord - Afwijzen - NU VERWIJDEREN - Vorige - Aanmelden - Afwijzen & Verwijderen - Volgende - Inschakelen - - Je bent nu lid van de groep via uitnodigingslink - un1 deleted invite link un2 - un1 created invite link un2 - un1 edited invite link un2 to un3 - un1 changed un2 volume to %1$d%% - un1 revoked invite link un2 - un1 edited invite link un2 - un1 has set messages to auto-delete in %1$s - You set messages to auto-delete in %1$s - Berichten in dit kanaal worden automatisch verwijderd na %1$s - Berichten in dit kanaal worden niet meer automatisch verwijderd - un1 disabled the auto-delete timer - You disabled the auto-delete timer - un1 is nu lid van de groep via uitnodigingslink - un1 heeft un2 verwijderd - un1 heeft de groep verlaten - un1 heeft un2 toegevoegd - un1 heeft de groepsafbeelding verwijderd - un1 heeft de groepsafbeelding gewijzigd - Groepsvideo door un1 gewijzigd - un1 heeft de groepsnaam gewijzigd naar un2 - un1 heeft de groep gemaakt - Je hebt un2 verwijderd - Je hebt de groep verlaten - Je hebt un2 toegevoegd - Je hebt %1$s behaald - un heeft %1$s behaald - Je hebt met un2 %1$s behaald - un1 heeft met un2 %1$s behaald - Je hebt de groepsafbeelding verwijderd - Je hebt de groepsafbeelding gewijzigd - Je hebt de groepsvideo gewijzigd - Je hebt de groepsnaam gewijzigd naar un2 - Je hebt de groep gemaakt - un1 heeft je verwijderd - un1 heeft je toegevoegd - un1 is terug in de groep - un1 is lid van de groep - Je keerde terug naar de groep - un1 is nu binnen %1$s van je - Je bent nu binnen %1$s van un1 - un1 is nu binnen %1$s van un2 - un1 heeft je uitgenodigd voor deze groep - un1 heeft je uitgenodigd voor dit kanaal - un1 startte een spraakchat - Je startte een spraakchat - Voice chat started - Voice chat scheduled on %1$s - Spraakchat beëindigd (%s) - un1 nodigde un2 uit voor de spraakchat - Je hebt un2 uitgenodigd voor de spraakchat. - un1 heeft je uitgenodigd voor de spraakchat - Je hebt deze bot toegestaan je berichten te sturen door in te loggen op %1$s. - %1$s heeft de volgende documenten ontvangen: %2$s - Persoonlijke gegevens - Adres - Paspoort - Nationaal paspoort - Paspoortregistratie - Tijdelijk identiteitsbewijs - Rijbewijs - Identiteitskaart - Energierekening - Bankafschrift - Huurovereenkomst - Telefoonnummer - E-mailadres - Dit bericht wordt niet ondersteund door jouw versie van Telegram. Update om dit bericht te bekijken: https://telegram.org/update - Foto - Video - Zelfvernietigende foto - Zelfvernietigende video - Foto is verlopen - Video is verlopen - GIF - Locatie - Live-locatie - Contact - Bestand - Sticker - Spraakbericht - Videobericht - Spel - Jij - Schermafdruk gemaakt! - un1 heeft een schermafdruk gemaakt! - - Limiet bereikt - Inactieve chats - kanaal, inactief sinds %1$s - %1$s, inactief sinds %2$s - Verlaat %1$s - Teveel communities - Sorry, je bent lid van teveel groepen kanalen. Verlaat er wat om lid te worden van een nieuwe. - Sorry, je bent lid van teveel groepen en kanalen, verlaat er wat voordat je een nieuwe maakt. - Sorry, je bent lid van teveel groepen en kanalen. Om technische redenen zul je er eerst wat moeten verlaten voordat je deze instelling van je groepen kunt wijzigen. - Sorry, de doelgebruiker is lid van teveel groepen en kanalen, vraag eerst of ze uit enkele willen gaan. + Sorry, je kunt niet meer dan %d onderwerpen bovenaan vastzetten. Let op! Hiermee verwijder je **alle berichten** in deze chat voor **beide** deelnemers. + Waarschuwing! Dit zal **alle berichten** in het kanaal verwijderen. Let op! Hiermee **verwijder je alle berichten** uit deze chat. Alles verwijderen - Stopped met laden? + Stoppen met laden? + Stoppen met laden? Telegram bijwerken Je gebruikt een verouderde versie van Telegram, deze kan dit verzoek niet verwerken. Werk Telegram bij. Ongeldig telefoonnummer, controleer het nummer en probeer opnieuw. Log in op Telegram om Telegram Passport te gebruiken. Dit nummer is geblokkeerd. - Code verlopen, log opnieuw in. - Te veel pogingen, probeer het later opnieuw. + Code verlopen, probeer het opnieuw. + Verkeerde code + Stopzetten mislukt + Om veiligheidsredenen kun je jouw telefoonnummer niet wijzigen vanaf een apparaat dat pas is verbonden. Gebruik alsjeblieft een eerdere verbinding of wacht een paar uur. + Dit e-maildomein is niet toegestaan. + Ongeldige e-mailtoken. + Ongeldig e-mailadres. + Inloggen via e-mail + Dit e-mailadres wordt gebruikt wanneer je vanaf een nieuw apparaat op je Telegram-account inlogt. + E-mailadres wijzigen + Teveel pogingen, probeer het later opnieuw. Te veel pogingen, probeer het over %1$s opnieuw - Ongeldige code, probeer het opnieuw + Ongeldige code, probeer het opnieuw. Je hebt in korte tijd je account veelvuldig verwijderd en opnieuw aangemaakt. Probeer het over een aantal dagen nog eens. - Ongeldige voornaam + Ongeldige voornaam. Probeer een andere. Ongeldige achternaam Bezig met laden Je hebt geen mediaspeler. Installeer een mediaspeler om door te gaan. - E-mail ons op sms@telegram.org en vertel ons wat het probleem is. + Je kunt een e-mail met een beschrijving van het probleem sturen naar reports@stel.com Je hebt geen apps die bestandstype \'%1$s\' kunnen verwerken, gelieve een compatibele app te installeren Deze gebruiker heeft nog geen Telegram. Wil je een uitnodiging sturen? Weet je het zeker? @@ -3173,76 +904,85 @@ **%1$s** toevoegen aan de groep **%2$s**? Aantal recente berichten om door te sturen: %1$s toevoegen aan de groep? - Voeg %1$s toe - Lid toevoegen - %1$s echt toevoegen aan **%2$s**? - %1$s echt toevoegen aan **%2$s**? - Nieuwe leden krijgen de laatste 100 berichten te zien. + Lid toevoegen + %1$d leden toevoegen + Weet je zeker dat je %1$s aan **%2$s** wilt toevoegen? + Weet je zeker dat je dit lid aan **%2$s** wilt toevoegen? + Weet je zeker dat je %1$d leden aan **%2$s** wilt toevoegen? + Laatste 100 berichten aan nieuwe leden weergeven. Laat de laatste 100 berichten aan **%1$s** zien. Bericht naar **%1$s** sturen? Spel met **%1$s** delen? Contact naar **%1$s** sturen? - Weet je zeker dat je wilt uitloggen?\n\nTelegram kun je naadloos op al je apparaten tegelijkertijd gebruiken.\n\nLet op! Als je uitlogt worden al je geheime chats verwijderd. + Weet je zeker dat je wilt uitloggen?\n\nDoor deze handeling worden al je geheime chats verwijderd.\n\nVergeet niet dat je Telegram naadloos op al je apparaten tegelijk kunt gebruiken en dat je meerdere accounts aan dezelfde app kunt toevoegen. Verwijder %1$s Wis %1$s - Lege cache voor %1$s - Geselecteerde chats echt verwijderen? - Geschiedenis van geselecteerde chats echt wissen? + Cache wissen voor %1$s + Weet je zeker dat je deze chats wilt verwijderen? + Weet je zeker dat je de geschiedenis van deze chats wilt wissen? Alle gecachete tekst en media van de geselecteerde chats verwijderen? Verwijderen en de groep verlaten? Echt het kanaal verlaten en verwijderen? Groep **%1$s** echt verwijderen en verlaten? - Chat echt verwijderen? - Chat met **%1$s** echt wissen? - Echt **%1$s** blokkeren en de chat verwijderen? + Wil je deze chat permanent verwijderen? + Weet je zeker dat je de chat met **%1$s** permanent wilt verwijderen? + Weet je zeker dat je de chat met **%1$s** wilt verwijderen en blokkeren? " **Bewaarde berichten** echt verwijderen?" - Weet je zeker dat je de geheime chat met **%1$s** wilt verwijderen? - Chat **%1$s** echt wissen? + Echt de geheime chat met **%1$s** verwijderen? Wis Cloud-concepten - Echt alle Cloud-conceptberichten wissen? + Weet je zeker dat je alle concepten in de cloud wilt wissen? Locatie delen? - Huidige locatie naar deze bot sturen? + Hierdoor wordt je huidige locatie met de bot gedeeld. Huidige locatie kon niet worden vastgesteld Handmatig kiezen - Deze bot wil toegang tot je locatie voor ieder verzoek dat je stuurt. Dit kan gebruikt worden voor locatiespecifieke resultaten. + Deze bot wil toegang tot je locatie bij elk verzoek dat je verstuurt. Dit kan worden gebruikt om locatiespecifieke resultaten te verschaffen. Telefoonnummer delen? De bot krijgt je telefoonnummer, dit kan handig zijn voor de integratie met andere diensten. + **%s** krijgt je telefoonnummer. Dit kan nuttig zijn voor de integratie met andere diensten. + Hierdoor wordt de bot ook gedeblokkeerd. Telefoonnummer %1$s delen met **%2$s**? Telefoonnummer echt delen? - **%1$s** echt blokkeren? - Weet je zeker dat je deze persoon wilt deblokkeren? + Weet je zeker dat je **%1$s** wilt blokkeren? + Deze gebruiker echt deblokkeren? Contact echt verwijderen? Geheime chat Weet je zeker dat je een geheime chat wilt starten? Weet je zeker dat je de registratie wilt annuleren? - Nummerverificatie stopped? + Wil je het verificatieproces stopzetten? Chatgeschiedenis met **%1$s** echt wissen? - Geheime chatgeschiedenis met **%1$s** echt wissen? + Alle berichten zullen voor jou en **%1$s** worden verwijderd. Doorgaan? Chatgeschiedenis in **%1$s** echt wissen? + Wil je de geschiedenis van het kanaal in **%1$s** wissen? "Geschiedenis echt wissen? " - **Bewaarde berichten** echt wissen? + Weet je zeker dat je jouw **Opgeslagen berichten** wilt wissen? Dit kan niet worden teruggedraaid. Kanaalcache opschonen? Gecachet tekst en media van deze groep wissen? Verwijder %1$s + %1$s uit opslag halen Bericht verwijderen + Bericht uit opslag halen Je kunt deze %1$s ook verwijderen bij alle groepsleden via de optie “verwijder voor iedereen”. Je kunt ook het %1$s dat je hebt gestuurd verwijderen bij de andere groepsleden via de \"Bericht intrekken\"-functie. Je kunt ook het %1$s dat je hebt gestuurd verwijderen bij **%2$s**\' via de \"Bericht intrekken\"-functie. + Weet je zeker dat je dit bericht uit je bewaarde berichten wilt verwijderen? Bericht echt verwijderen? Berichten echt verwijderen? + Weet je zeker dat je deze berichten wilt verwijderen? Bericht echt voor iedereen wissen? Berichten echt voor iedereen wissen? Mijn berichten intrekken Ook verwijderen voor %1$s Geschiedenis ook voor %1$s wissen - Stuur bericht + Bericht sturen Bericht naar **%1$s** sturen? Spel met **%1$s** delen? Contact naar **%1$s** sturen? - Er is geen Telegram-account met deze gebruikersnaam. + Gebruikersnaam niet gevonden. + Er bestaat geen Telegram-account onder dit telefoonnummer. + Geen chatmap gevonden. Deze bot kan geen groepslid worden. Wil je uitgebreide link-voorbeelden inschakelen voor geheime chats? Let op: deze worden gegenereerd op onze servers. - Let op: inline-bots worden aangeboden door externe ontwikkelaars. Voor de werking van de bot worden de karakters die je na de botnaam typt naar deze ontwikkelaar verstuurd. + Houd er rekening mee dat inline bots door externe partijen zijn ontwikkeld. Om de bot te laten werken, worden de symbolen die je na de gebruikersnaam van de bot typt, naar de ontwikkelaar verstuurd. Je mag dit bericht niet wijzigen. Sta het ontvangen van oproepen toe zodat we automatisch je inlogcode kunnen invoeren. Sta Telegram toe om oproepen te ontvangen en de oproepenlijst te lezen zodat we automatisch de code voor je kunnen ingeven. @@ -3250,1201 +990,66 @@ Sta het ontvangen van oproepen toe zodat we automatisch je telefoonnummer kunnen bevestigen. Je mag deze actie niet uitvoeren. Je hebt deze gebruiker of bot geblokkeerd, toevoegen aan een groep kan pas na deblokkeren. - LID WORDEN - Je mag geen leden toevoegen, deze gebruiker is nog geen lid en kan daarom niet worden toegevoegd als beheerder. - Je mag geen leden deblokkeren, deze gebruiker is geblokkeerd en kan daarom niet worden toegevoegd als beheerder. - Je kunt deze gebruiker niet toevoegen omdat deze op de lijst van verwijderde gebruikers staan en jij ze niet kun deblokkeren. - Je mag geen leden degraderen, deze gebruiker is een beheerder en kan daarom niet worden geblokkeerd. - De beheerders van deze groep hebben je beperkt in het sturen van stickers. - De beheerders van deze groep hebben je beperkt in het sturen van media. - De beheerders van deze groep hebben je beperkt in het sturen van polls. - Stickers sturen naar deze groep is niet toegestaan. + Je kunt deze gebruiker niet de status van beheerder geven, omdat die geen lid is van deze groep en ook niet door jou kan worden toegevoegd. + Je kunt deze gebruiker niet als beheerder toevoegen, omdat die op de zwarte lijst staat en niet kan worden gedeblokkeerd. + Sorry, je kunt deze gebruiker niet toevoegen omdat die op de lijst van verwijderde gebruikers staat en niet door jou kan worden gedeblokkeerd. + Je kunt deze gebruiker niet verbannen, omdat die een beheerder in deze groep is en niet kan worden gedegradeerd. + De beheerders van deze groep hebben je vermogen om stickers te versturen beperkt. + De beheerders van deze groep hebben jouw vermogen om media te versturen beperkt + Sorry, de beheerders van deze groep hebben je beperkt in het delen van foto\'s. + Sorry, de beheerders van deze groep hebben je beperkt in het delen van video\'s. + De beheerders van deze groep hebben je vermogen om peilingen te houden beperkt. + Sorry, de beheerders van deze groep hebben je beperkt in het delen van spraakberichten. + Sorry, de beheerders van deze groep hebben je beperkt in het delen van videoberichten. + Sorry, de beheerders van deze groep hebben je beperkt in het delen van documenten. + Sorry, de beheerders van deze groep hebben je beperkt in het delen van muziek. + Sorry, stickers versturen is niet toegestaan in deze groep. + Sorry, het delen van foto\'s is niet toegestaan in deze groep. + Sorry, het delen van video\'s is niet toegestaan in deze groep. Media sturen naar deze groep is niet toegestaan. - Polls sturen is niet toegestaan in deze groep - Het spijt ons maar helaas kun je je dan niet aanmelden voor Telegram.\n\nIn tegenstelling tot anderen gebruiken we je gegevens niet voor advertenties of andere commerciële doelen. Telegram slaat alleen gegevens op die noodzakelijk zijn om te kunnen functioneren als een veelzijde Cloud-dienst. Hoe we je gegevens gebruiken (verwijderen van gesynchroniseerde contacten) kun je aanpassen via de instellingen, onder Privacy & Veiligheid.\n\nHelaas is het wel zo dat als je niet akkoord gaat met het beperkte gebruik van je gegevens door Telegram, we je niet van onze dienst kunnen voorzien. + Sorry, peilingen zijn niet toegestaan in deze groep. + Sorry, het delen van spraakberichten is niet toegestaan in deze groep. + Sorry, het delen van videoberichten is niet toegestaan in deze groep. + Sorry, het delen van documenten is niet toegestaan in deze groep. + Sorry, het delen van muziek is niet toegestaan in deze groep. + Sorry, je kunt geen spraakberichten naar deze gebruiker sturen vanwege zijn/haar privacyinstellingen. + Sorry, je kunt geen videoberichten naar deze gebruiker sturen vanwege zijn/haar privacyinstellingen. + Doorsturen niet mogelijk + Helaas betekent dit dat jij je niet kunt aanmelden voor Telegram.\n\nIn tegenstelling tot andere apps, gebruikt Telegram de gegevens van \ngebruikers niet voor gerichte advertenties of andere commerciële \ndoeleinden. Telegram slaat alleen de gegevens op die noodzakelijk zijn \nvoor het functioneren als een veelzijdige cloudservice. Je kunt \naanpassen hoe we jouw gegevens gebruiken (bijvoorbeeld gesynchroniseerde\n contacten verwijderen) in de Privacy- en Beveiligingsinstellingen.\n\nAls je niet akkoord gaat met de beperkte vereisten van Telegram, kun je \ngeen gebruik maken van deze service. Leeftijdsverificatie Privacybeleid en gebruiksvoorwaarden - Tik om te bevestigen dat je %1$s of ouder bent. - Het spijt ons maar helaas moeten we dan afscheid van elkaar nemen. In tegenstelling tot anderen gebruiken we je gegevens niet voor advertenties of andere commerciële doelen. Telegram slaat alleen gegevens op die noodzakelijk zijn om te kunnen functioneren als een veelzijde Cloud-dienst. Hoe we je gegevens gebruiken (verwijderen van gesynchroniseerde contacten) kun je aanpassen via de instellingen, onder Privacy & Veiligheid.\n\nHelaas is het wel zo dat als je niet akkoord gaat met het beperkte gebruik van je gegevens door Telegram, we je niet van onze dienst kunnen voorzien. Je kunt je account nu verwijderen of nog even rondkijken en deze later verwijderen als je niet blij bent met de manier waarop we met je data omgaan. - Let op, hiermee verwijder je je Telegram-account inclusief alle gegevens die zijn opgeslagen in de Telegram-cloud permanent.\n\nLet op: je kunt dit verzoek nu annuleren en je gegevens exporteren voordat je je account verwijderd, op die manier raak je niet alles kwijt. (Om dit te doen, maak gebruik van de meest recente versie van Telegram-desktop, ga naar Instellingen > Geavanceerd > Telegram-gegevens exporteren.) + Tik op Akkoord om te bevestigen dat je %1$s of ouder bent. + Er zijn helaas geen andere mogelijkheden. In tegenstelling tot veel andere apps, gebruik Telegram de gegevens van onze gebruikers niet voor het tonen van gerichte advertenties of andere commerciële doeleinden. Telegram slaat alleen de informatie op die het nodig heeft om te functioneren als een veelzijdige clouddienst. Je kunt zelf aanpassen hoe je gegevens worden gebruikt in de Privacy- en Beveiligingsinstellingen.\n\nAls je niet akkoord gaat met de beperkte vereisten van Telegram, zullen we niet in staat zijn om je deze dienst aan te bieden. + Waarschuwing: dit zal ervoor zorgen dat je Telegram-account permanent wordt verwijderd, samen met alle data die je in de Telegram-cloud hebt opgeslagen.\n\nBelangrijk: je kunt het proces nu annuleren en je gegevens exporteren voordat je jouw account verwijdert, zodat je niet alles kwijtraakt. (Om dit te doen, kun je de nieuwste versie van Telegram Desktop openen en naar Instellingen > Geavanceerd > Telegram-gegevens Exporteren gaan.) - Om vanaf al je apparaten contact te kunnen leggen met je vrienden zullen je contacten continu worden gesynchroniseerd met onze zwaar versleutelde Cloud-servers. - Telegram heeft toegang tot je opslaggeheugen nodig zodat je foto\'s, video\'s, muziek en andere media kunt opslaan en versturen. - Telegram heeft toegang tot je microfoon nodig om spraakberichten te kunnen verzenden. - Telegram heeft toegang tot je microfoon nodig om video op te nemen. - Telegram heeft toegang tot je camera nodig zodat je foto\'s en video\'s kunt maken. Schakel dit in via instellingen. + **Telegram** heeft toegang tot je opslag nodig, zodat je foto\'s, video\'s, muziek en andere bestanden kunt verzenden en opslaan. Tik op Instellingen > Machtigingen en schakel **Bestanden en media** aan. + **Telegram** heeft toegang tot je microfoon nodig zodat je spraakberichten kunt versturen. Tik op Instellingen > Machtigingen en schakel **Microfoon** aan. + **Telegram** heeft toegang tot je microfoon nodig zodat je spraakberichten kunt versturen. Tik op Instellingen > Machtigingen en schakel **Microfoon** aan. + **Telegram** heeft toegang tot je camera nodig zodat je foto\'s en video\'s kunt maken. Tik op Instellingen > Machtigingen en schakel **Camera** aan. + **Telegram** heeft toegang tot je camera en microfoon nodig zodat je videoberichten kunt versturen. Tik op Instellingen > Machtigingen en schakel **Microfoon** en **Camera** aan. Telegram heeft toegang tot je locatie nodig om deze te kunnen delen met je vrienden. - Telegram heeft toegang tot je locatie nodig. + Telegram heeft toegang nodig tot je locatie zodat je het weerbericht in je verhalen kunt plaatsen. + **Telegram** heeft toegang tot je locatie nodig zodat je het met vrienden kunt delen. Tik op Instellingen > Machtigingen en schakel **Locatie** aan. + **Telegram** heeft toegang tot je locatie nodig zodat je aanwijzingen kunt krijgen. Tik op Instellingen > Machtigingen en schakel **Locatie** aan. + **Telegram** heeft toegang tot je contacten nodig zodat je die met vrienden kunt delen. Tik op Instellingen > Machtigingen en schakel **Contacten** aan. + **Telegram** heeft toegang tot je opslag nodig zodat je profielfoto\'s s kunt uploaden. Tik op Instellingen > Machtigingen en schakel **Bestanden en media** in. + **Telegram** heeft toegang tot je muziekbestanden nodig om ze aan je verhaal toe te voegen. Tik op Instellingen > Machtigingen en schakel **Muziek en geluid** in. Telegram heeft de toestemming \'over andere apps tekenen\' nodig om video\'s af te spelen in beeld-in-beeld-modus. Met overlay-modus kun je Push-To-Talk gebruiken en zien wie er aan het praten is zelfs als je Telegram niet in de voorgrond hebt. - INSTELLINGEN + Instellingen Sta Telegram toe om weer te kunnen geven op het vergrendelscherm om ervoor te zorgen dat oproepen goed werken. Om je Live-locatie in deze chat te kunnen delen heeft Telegram constante toegang tot je locatie nodig, ook als deze op de achtergrond draait.\n\nWe gebruiken je locatie alleen voor de periode die jij instelt en je kunt het delen op ieder moment stoppen. We maken alleen gebruik van je locatiegegevens voor het delen ervan in deze chat. Beeld-in-beeld - Spraakchat-overlay - - Groei - Volgers - Interacties - Weergaven per bron - Nieuwe volgers per bron - Talen - Recente posts - Uitzoomen - IV-interacties - Statistieken laden... - Wacht even terwijl we grafieken genereren - Aantal keer bekeken per uur (UTC) - Veeg omhoog om opnemen vast te zetten - Meldingen - Apparaatopslag - %s vrij - Telegram-cache wissen - Overzicht - Aantal keer bekeken per post - Aantal keer gedeeld per post - Meldingen ingeschakeld - Lokale database wissen - %s Telegram Cache - %s Telegram Lokale Database - %s vrijgemaakt op je apparaat! - %s Andere Data - Groepsleden - Nieuwe leden per bron - Hoofdtaal van leden - Leden - Acties - Leden - Berichten - Kijkende leden - Plaatsende leden - %1$d tekens - %1$d teken - %1$d tekens - %1$d tekens - %1$d tekens - %1$d tekens - %1$d verwijderingen - %1$d verwijdering - %1$d verwijderingen - %1$d verwijderingen - %1$d verwijderingen - %1$d verwijderingen - %1$d verbanningen - %1$d verbanning - %1$d verbanningen - %1$d verbanningen - %1$d verbanningen - %1$d verbanningen - %1$d beperkingen - %1$d beperking - %1$d beperkingen - %1$d beperkingen - %1$d beperkingen - %1$d beperkingen - %1$d uitnodigingen - %1$d uitnodiging - %1$d uitnodigingen - %1$d uitnodigingen - %1$d uitnodigingen - %1$d uitnodigingen - Actiefste beheerders - Actiefste leden - Actiefste uitnodigers - %s per bericht - Actiefste dagen - Berichten weergeven - Profiel openen - Vandaag - Gisteren - Weergaves - Publiek gedeeld - Prive gedeeld - Stats weergeven - Kanaaalstatistieken weergeven - Berichtstatistieken - Open bericht - - Telegram - Snel - Gratis - Veilig - Krachtig - In de cloud - \'s Werelds **snelste** berichtendienst.\nHet is **gratis** en **veilig**. - **Telegram** bezorgt berichten sneller dan\nelke andere applicatie. - **Telegram** is altijd gratis. Geen advertenties.\nGeen abonnementskosten. - **Telegram** beveiligt je berichten\ntegen aanvallen van hackers. - **Telegram** beperkt je niet in de grootte van\nje media of chats. - **Telegram** biedt toegang tot je berichten\nvanaf meerdere apparaten. - Begin met chatten - - Accountinstellingen - Data besparen bij oproepen - Inkomende oproep - Verbinden - Encryptiesleutels uitwisselen - Wachten - Aanvragen - Ophangen - Oproep beëindigd - Verbinden mislukt - Gaat over - In gesprek - Telegram-oproep - Telegram-video-oproep - Telegram-oproep bezig - Spraakchat bezig - Ophangen - Er is al een oproep actief - Oproep met **%1$s** beëindigen en een nieuwe starten met **%2$s**? - Oproep met **%1$s** stoppen en spraakchat starten in **%2$s**? - Een andere spraakchat is actief - Spraakchat in **%1$s** verlaten en nu starten in **%2$s**? - Spraakchat in **%1$s** verlaten en **%2$s** bellen? - Oproepen - Beltoon - Je kunt een aangepaste beltoon instellen voor Telegram-oproepen van dit contact. - Oproepen - Alle oproepen verwijderen - Oproepen verwijderen - Verwijder voor iedereen - Alle recente oproepen wissen? - Geselecteerde oproepen uit recent verwijderen? - Peer-to-peer in spraakoproepen zal niet worden gebruikt voor deze gebruikers, onafhankelijk van de instellingen hierboven. - Met wie is peer-to-peer actief? - Wie kan mij bellen? - Je kunt inperken wie jou mag bellen. - Deze gebruikers altijd toestaan of verbieden om je te bellen. - Nooit - Alleen bij mobiele verbinding - Altijd - Alleen tijdens roamen - Opnemen - Weigeren - Je bent offline, maak verbinding met het internet om een oproep te starten. - Je bent momenteel offline. Maak verbinding met het internet om deel te nemen aan spraakchats. - Vliegtuigmodus is actief, schakel vliegtuigmodus uit of verbind met Wi-Fi om een oproep te starten - Je hebt vliegtuigmodus ingeschakeld. Schakel vliegtuigmodus uit of verbind met Wi-Fi om deel te nemen aan spraakchats. - Offline - Vliegtuigmodus - Instellingen - Uitgaande oproep - Inkomende oproep - Uitgaande video-oproep - Inkomende video-oproep - Gemiste oproep - Oproep geannuleerd - Geweigerde oproep - Gemiste video-oproep - Geannuleerde oproep - Geweigerde video-oproep - %1$s (%2$s) - No recent calls - Your recent voice and video calls\nwill appear here. - **%1$s** maakt gebruik van een niet-compatibel protocol voor spraakoproepen en moet eerst een update uitvoeren. - **%1$s** heeft nog geen ondersteuning voor spraakoproepen en zal eerst een update moeten uitvoeren. - Sorry, **%1$s** gebruikt een oude versie van Telegram die geen videogesprekken ondersteunt. - Voer een spraakoproep - Beoordeel de kwaliteit van je Telegram-oproep. - Telegram heeft toegang tot je microfoon nodig zodat je kunt bellen. - Telegram heeft toegang nodig tot je microfoon en camera, zodat je video-oproepen kunt doen. - Telegram needs access to your camera so that you can make video calls. - Optionele opmerking toevoegen - Terugbellen - Herhaal - Standaard - Gesprek echt uit oproepgeschiedenis wissen? - Telegram-oproep - Telegram-video-oproep - Oorstuk - Koptelefoon - Luidspreker - Phone - Bluetooth - Uitvoerapparaten - TERUG NAAR GESPREK - Sorry, je kunt %1$s niet bellen vanwege privacyinstellingen. - Als deze emoji\'s gelijk zijn bij %1$s is dit gesprek 100%% veilig. - Beoordeel deze oproep - Wat is er misgegaan? - Technische informatie versturen - Geeft geen inzage in je gesprek, maar we kunnen hiermee het probleem wel sneller oplossen. - Bedankt voor je hulp bij het verbeteren van Telegram-oproepen. - Antwoorden als %s - Antwoord met bericht - Deze snelle antwoorden zijn beschikbaar als je reageert op een inkomende oproep met een Telegram-bericht. Je kunt deze zelf wijzigen. - Kan nu niet praten, wat is er? - Ik bel je zo terug. - Ik bel je later. - Kan nu niet praten, bel je me later? - Aangepast bericht. - Aangepast toestaan - Telegram-oproep naar %s - Telegram-video-oproep naar %s - Kan momenteel geen Telegram-oproep starten. - Ik hoorde mijn eigen stem - Ik hoorde achtergrondgeluid - De andere kant viel constant weg - Spraak was vervormd - Ik kon de andere kant niet horen - De andere kant kon me niet horen - Oproep onverwacht afgebroken - Video was vervormd - Video was korrelig - Tik hier om je camera aan te zetten - Geluid aan - of vasthouden en praten - Je bent live - Gedempt door een beheerder - Gedempt - Je kan nu alleen luisteren - tap if you want to speak - You asked to speak - We let the speakers know - Geluid uit - Camera aan - Camera uit - Luidspreker - Wisselen - Overschakelen naar video-oproep? - WISSELEN - De microfoon van %s staat uit - De camera van %s staat uit - Opnemen - Weigeren - Opnieuw proberen - Video - Echt bellen met %1$s**? - Spraakoproep - Echt een video-oproep starten met %1$s**? - Video-oproep - Opnieuw verbinden - Spraakchat starten - Spraakchat - Spraakchat starten in deze groep? - Do you want to start a voice chat in this channel? - Spraakchats beheren - Deelnemen - %1$s deelnemers spreken - %1$s deelnemer spreekt - %1$s deelnemers spreken - %1$s deelnemers spreken - %1$s deelnemers spreken - %1$s deelnemers spreken - aan het spreken - %1$d%% speaking - aan het luisteren - wants to speak - uitgenodigd - Verlaten - Beëindigen - Microfoon dempen - Weet je zeker dat je **%1$s** wilt dempen in deze spraakchat? - Remove participant - Do you want to remove %1$s from the voice chat and ban them in %2$s? - **%1$s** verwijderd van de groep. - **%1$s** kan nu spreken. - Geluid van **%1$s** is nu aan voor jou - **%1$s** is nu gedempt in deze chat. - **%1$s** is nu voor jou gedempt in deze chat. - Dempen - Nieuwe deelnemers ongedempt - Nieuwe deelnemers gedempt - Uitnodigingslink delen - Spraakchat beëindigen - Cancel voice chat - Verbinden... - Spraakchat verlaten - Weet je zeker dat je deze spraakchat wilt verlaten? - Spraakchat beëindigen - Weet je zeker dat je deze spraakchat wilt beëindigen? - Spraakchat beëindigen - SPRAAKCHAT - Spraakchat - Scheduled Voice Chat - Spraakchat openen - De geselecteerde gebruiker is al in deze spraakchat. - Sorry, je kan niet deelnemen aan spraakchats als een anonieme beheerder. - Sorry, this voice chat is full. - un1 nodigde un2 uit voor de spraakchat - Deelnemen aan spraakchat - Hoi! Neem deel aan onze spraakchat: %1$s - Leden uitnodigen - Share Invite Link - Verwijderen - Profiel openen - Open Channel - Open Group - Spreken toestaan - Zoek leden om uit te nodigen... - Uitnodigingslink kopiëren - Uitnodigingslink gekopieerd naar klembord. - Geluid aan - Spraakchat beëindigt. Een nieuwe starten? - Lid toevoegen - Wil je **%1$s** toevoegen aan **%2$s**? - Je hebt **%1$s** uitgenodigd voor de spraakchat - Toevoegen - Volume - Voor mij dempen - Gedempt voor mij - Geluid aan voor mij - Tik om deel te nemen - Start opname - Stop opname - Start Voice Chat as... - Join Voice Chat as... - Display me as... - Choose whether you want to be displayed as your personal account or as your channel. - Choose whether you want to be displayed as your personal account, this group, or one of your channels. - Continue as %1$s - Edit voice chat title - Edit permissions - Participants of this voice chat will now see you as **%1$s** - Voice chat title - Can speak - Listen only - COPY SPEAKER LINK - COPY LISTENER LINK - You can now speak. - You can now speak in **%1$s**. - Stop recording - Do you want to stop recording this voice chat? - Start recording - Record this chat and save the result into an audio file?\n\nParticipants will see that the chat is being recorded. - Recording Title - Audio saved to **Saved Messages**. - Voice chat recording started. - Voice chat is being recorded - personal account - Cancel request to speak - JOIN AS SPEAKER - JOIN AS LISTENER - Join Voice Chat - Are sure you want to appear in this voice chat as your personal account? - Voice chat sound muted. - Voice chat sound unmuted. - Members of this group will be notified once you start the voice chat. - Subscribers of this channel will be notified once you start the voice chat. - You will be displayed as: - Start Voice Chat - Schedule Voice Chat - Start Now - Set Reminder - Cancel Reminder - Members of the group will be notified that the voice chat will start in %1$s. - Subscribers of the channel will be notified that the voice chat will start in %1$s. - Starts in - Late by - Share - We will notify you when it starts. - **%1$s** joined the voice chat. - **%1$s** joined the voice chat. - Active voice chats - Recent calls - Share screen - Stop sharing screen - this is you - Open Chat - Change Photo - Add Bio - Edit Name - Bio - You can add a few lines about yourself. Everyone will see this text. - Tap to add a Bio - Edit Bio - Add description - Edit description - tap to add photo or bio - tap to add bio - tap to add photo - tap to add description - Tap to add photo or description - Edit title - Title - Set New Photo - Camera - Video Preview - Video from your camera will be shared with other members of this voice chat - Share Camera Video - Preview - Pin - Unpin - Audio - Select audio output - Video on Pause - You are sharing\nyour screen - You are sharing your screen - STOP SHARING - Noise suppression - Enabled - Disabled - Video is only available\nfor the first %1$s - - Manage Invite Links - You can create additional invite links that have a limited time or number of uses. - Anyone on Telegram will be able to join your group by following this link. - Anyone on Telegram will be able to join your channel by following this link. - Edit link - Save Link - Geen limiet - Tijdslimiet - Gebruikslimiet - Nieuwe link - Aangepaste duur - Voer aangepaste limiet in - Je kunt de link laten verlopen na een bepaalde tijdsduur - Je kunt de link laten verlopen als deze een aantal keren gebruikt is. - No one joined yet - Verlopen - Get QR code - Link created by - Nodig uit via QR-code - QR-Code delen - Revoked - The link expires %s - Expire after - Set Time Limit - Ingetrokken links - Link verwijderen - Revoked Link - This link is no longer active - The time limit for this link has expired. - This link reached its usage limit. - Nieuwe link maken - Ingetrokken links verwijderen - No one joined - Limiet bereikt - Everyone on Telegram can scan this code to join your group. - Hiermee verwijder je de link. - Hiermee verwijder je alle ingetrokken links - You can generate invite links that expire after they are used. - Invite links created by this admin - Uitnodigingslinks van andere beheerders - Invite link for this admin - Iedereen op Telegram kan deze code scannen om lid te worden van je kanaal - Anyone who has Telegram installed will be able to join your channel by following this link. - The link expires in %s - Public link - This invite link has expired. - Kopiëren - Delen - De uitnodigingslink is ingetrokken. - Expired Link + Videochatoverlay Bericht naar %1$s Spraakoproep naar %1$s Video-oproep naar %1$s - - un1 are speaking - un1 is speaking - un1 are speaking - un1 are speaking - un1 are speaking - un1 are speaking - %1$d Achtergronden verwijderen - Achtergrond verwijderen - %1$d Achtergronden verwijderen - %1$d Achtergronden verwijderen - %1$d Achtergronden verwijderen - %1$d Achtergronden verwijderen - %1$d ontvangers - %1$d ontvanger - %1$d ontvangers - %1$d ontvangers - %1$d ontvangers - %1$d ontvangers - %1$d online - %1$d online - %1$d online - %1$d online - %1$d online - %1$d online - %1$d contacten op Telegram - %1$d contact op Telegram - %1$d contacten op Telegram - %1$d contacten op Telegram - %1$d contacten op Telegram - %1$d contacten op Telegram - Ik en nog %1$d van onze contacten gebruiken Telegram om te chatten! Download de app hier: %2$s - Ik en nog %1$d van onze contacten gebruiken Telegram om te chatten! Download de app hier: %2$s - Ik en nog %1$d van onze contacten gebruiken Telegram om te chatten! Download de app hier: %2$s - Ik en nog %1$d van onze contacten gebruiken Telegram om te chatten! Download de app hier: %2$s - Ik en nog %1$d van onze contacten gebruiken Telegram om te chatten! Download de app hier: %2$s - Ik en nog %1$d van onze contacten gebruiken Telegram om te chatten! Download de app hier: %2$s - %1$d personen nemen deel - %1$d persoon neemt deel - %1$d personen nemen deel - %1$d personen nemen deel - %1$d personen nemen deel - %1$d personen nemen deel - %1$d remaining - %1$d remaining - %1$d remaining - %1$d remaining - %1$d remaining - %1$d remaining - %1$d can join - %1$d can join - %1$d can join - %1$d can join - %1$d can join - %1$d can join - %1$d days left - %1$d days left - %1$d day left - %1$d days left - %1$d days left - %1$d days left - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d kanalen - %1$d kanaal - %1$d kanalen - %1$d kanalen - %1$d kanalen - %1$d kanalen - %1$d groepen - %1$d groep - %1$d groepen - %1$d groepen - %1$d groepen - %1$d groepen - %1$d leden - %1$d leden - %1$d leden - %1$d leden - %1$d leden - %1$d leden - %1$d deelnemers - %1$d deelnemer - %1$d deelnemers - %1$d deelnemers - %1$d deelnemers - %1$d deelnemers - en %1$d meer zijn aan het typen - en %1$d meer is aan het typen - en %1$d meer zijn aan het typen - en %1$d meer zijn aan het typen - en %1$d meer zijn aan het typen - en %1$d meer zijn aan het typen - %1$s en %2$d anderen zijn aan het typen - %1$s en %2$d andere zijn aan het typen - %1$s en %2$d anderen zijn aan het typen - %1$s en %2$d anderen zijn aan het typen - %1$s en %2$d anderen zijn aan het typen - %1$s en %2$d anderen zijn aan het typen - %1$d nieuwe berichten - %1$d nieuw bericht - %1$d nieuwe berichten - %1$d nieuwe berichten - %1$d nieuwe berichten - %1$d nieuwe berichten - %1$d berichten losgemaakt - Bericht losgemaakt - %1$d berichten losgemaakt - %1$d berichten losgemaakt - %1$d berichten losgemaakt - %1$d berichten losgemaakt - %1$d berichten - %1$d bericht - %1$d berichten - %1$d berichten - %1$d berichten - %1$d berichten - %1$d items - %1$d item - %1$d items - %1$d items - %1$d items - %1$d items - van %1$d chats - van %1$d chat - van %1$d chats - van %1$d chats - van %1$d chats - van %1$d chats - %1$d seconds - %1$d second - %1$d seconds - %1$d seconds - %1$d seconds - %1$d seconds - %1$d minutes - %1$d minute - %1$d minutes - %1$d minutes - %1$d minutes - %1$d minutes - %1$d hours - %1$d hour - %1$d hours - %1$d hours - %1$d hours - %1$d hours - %1$d days - %1$d day - %1$d days - %1$d days - %1$d days - %1$d days - %1$d seconden - %1$d seconde - %1$d seconden - %1$d seconden - %1$d seconden - %1$d seconden - %1$d minuten - %1$d minuut - %1$d minuten - %1$d minuten - %1$d minuten - %1$d minuten - %1$d uur - %1$d uur - %1$d uur - %1$d uur - %1$d uur - %1$d uur - %1$d dagen - %1$d dag - %1$d dagen - %1$d dagen - %1$d dagen - %1$d dagen - %1$d weken - %1$d week - %1$d weken - %1$d weken - %1$d weken - %1$d weken - %1$d maanden - %1$d maand - %1$d maanden - %1$d maanden - %1$d maanden - %1$d maanden - %1$d jaar - %1$d jaar - %1$d jaar - %1$d jaar - %1$d jaar - %1$d jaar - %1$d gebruikers - %1$d gebruiker - %1$d gebruikers - %1$d gebruikers - %1$d gebruikers - %1$d gebruikers - %1$d keer - %1$d keer - %1$d keer - %1$d keer - %1$d keer - %1$d keer - %1$d meter - %1$d meter - %1$d meter - %1$d meter - %1$d meter - %1$d meter - %1$d stickers - %1$d sticker - %1$d stickers - %1$d stickers - %1$d stickers - %1$d stickers - %1$d maskers - %1$d masker - %1$d maskers - %1$d maskers - %1$d maskers - %1$d maskers - %1$d abonnees - %1$d abonnee - %1$d abonnees - %1$d abonnees - %1$d abonnees - %1$d abonnees - %1$d uitzonderingen - %1$d uitzondering - %1$d uitzonderingen - %1$d uitzonderingen - %1$d uitzonderingen - %1$d uitzonderingen - %1$d verwijderde gebruikers - %1$d verwijderde gebruiker - %1$d verwijderde gebruikers - %1$d verwijderde gebruikers - %1$d verwijderde gebruikers - %1$d verwijderde gebruikers - %1$d punten - %1$d punt - %1$d punten - %1$d punten - %1$d punten - %1$d punten - %1$d min geleden - %1$d min geleden - %1$d min geleden - %1$d min geleden - %1$d min geleden - %1$d min geleden - **%1$d** seconden - **%1$d** seconde - **%1$d** seconden - **%1$d** seconden - **%1$d** seconden - **%1$d** seconden - **%1$d** minuten - **%1$d** minuut - **%1$d** minuten - **%1$d** minuten - **%1$d** minuten - **%1$d** minuten - **%1$d** uur - **%1$d** uur - **%1$d** uur - **%1$d** uur - **%1$d** uur - **%1$d** uur - **%1$d** dagen - **%1$d** dag - **%1$d** dagen - **%1$d** dagen - **%1$d** dagen - **%1$d** dagen - %1$s keer bekeken - %1$s keer bekeken - %1$s keer bekeken - %1$s keer bekeken - %1$s keer bekeken - %1$s keer bekeken - %1$s keer gedeeld - %1$s keer gedeeld - %1$s keer gedeeld - %1$s keer gedeeld - %1$s keer gedeeld - %1$s keer gedeeld - %1$s publiek gedeeld - %1$s publiek gedeeld - %1$s publiek gedeeld - %1$s publiek gedeeld - %1$s publiek gedeeld - %1$s publiek gedeeld - %1$s gedeeld - %1$s gedeeld - %1$s gedeeld - %1$s gedeeld - %1$s gedeeld - %1$s gedeeld - %1$s stickerbundels - %1$s stickerbundel - %1$s stickerbundels - %1$s stickerbundels - %1$s stickerbundels - %1$s stickerbundels - - Bijlage: %1$d berichten - Bijlage: 1 bericht - Bijlage: %1$d berichten - Bijlage: %1$d berichten - Bijlage: %1$d berichten - Bijlage: %1$d berichten - %1$d foto\'s - %1$d foto - %1$d foto\'s - %1$d foto\'s - %1$d foto\'s - %1$d foto\'s - %1$d video\'s - %1$d video - %1$d video\'s - %1$d video\'s - %1$d video\'s - %1$d video\'s - %1$d bestanden - %1$d bestand - %1$d bestanden - %1$d bestanden - %1$d bestanden - %1$d bestanden - %1$d muziekbestanden - %1$d muziekbestand - %1$d muziekbestanden - %1$d muziekbestanden - %1$d muziekbestanden - %1$d muziekbestanden - %1$d gedeelde groepen - %1$d gedeelde groep - %1$d gedeelde groepen - %1$d gedeelde groepen - %1$d gedeelde groepen - %1$d gedeelde groepen - %1$d media - %1$d media - %1$d media - %1$d media - %1$d media - %1$d media - %1$d spraakberichten - %1$d spraakbericht - %1$d spraakberichten - %1$d spraakberichten - %1$d spraakberichten - %1$d spraakberichten - %1$d links - %1$d link - %1$d links - %1$d links - %1$d links - %1$d links - %1$d GIF\'s - %1$d GIF - %1$d GIF\'s - %1$d GIF\'s - %1$d GIF\'s - %1$d GIF\'s - %1$d geblokkeerde gebruikers - %1$d geblokkeerde gebruiker - %1$d geblokkeerde gebruikers - %1$d geblokkeerde gebruikers - %1$d geblokkeerde gebruikers - %1$d geblokkeerde gebruikers - Bijlage: %1$d bestanden - Bijlage: 1 bestand - Bijlage: %1$d bestanden - Bijlage: %1$d bestanden - Bijlage: %1$d bestanden - Bijlage: %1$d bestanden - Bijlage: %1$d foto\'s - Bijlage: 1 foto - Bijlage: %1$d foto\'s - Bijlage: %1$d foto\'s - Bijlage: %1$d foto\'s - Bijlage: %1$d foto\'s - Bijlage: %1$d video\'s - Bijlage: 1 video - Bijlage: %1$d video\'s - Bijlage: %1$d video\'s - Bijlage: %1$d video\'s - Bijlage: %1$d video\'s - Bijlage: %1$d muziekbestanden - Doorgestuurd muziekbestand - Bijlage: %1$d muziekbestanden - Bijlage: %1$d muziekbestanden - Bijlage: %1$d muziekbestanden - Bijlage: %1$d muziekbestanden - Bijlage: %1$d spraakberichten - Bijlage: 1 spraakbericht - Bijlage: %1$d spraakberichten - Bijlage: %1$d spraakberichten - Bijlage: %1$d spraakberichten - Bijlage: %1$d spraakberichten - Bijlage: %1$d videoberichten - Doorgestuurd videobericht - Bijlage: %1$d videoberichten - Bijlage: %1$d videoberichten - Bijlage: %1$d videoberichten - Bijlage: %1$d videoberichten - Bijlage: %1$d locaties - Bijlage: 1 locatie - Bijlage: %1$d locaties - Bijlage: %1$d locaties - Bijlage: %1$d locaties - Bijlage: %1$d locaties - Bijlage: %1$d contacten - Bijlage: 1 contact - Bijlage: %1$d contacten - Bijlage: %1$d contacten - Bijlage: %1$d contacten - Bijlage: %1$d contacten - Bijlage: %1$d stickers - Bijlage: 1 sticker - Bijlage: %1$d stickers - Bijlage: %1$d stickers - Bijlage: %1$d stickers - Bijlage: %1$d stickers - %1$d doorgestuurde polls - Doorgestuurde poll - %1$d doorgestuurde polls - %1$d doorgestuurde polls - %1$d doorgestuurde polls - %1$d doorgestuurde polls - en %1$d anderen - en %1$d andere - en %1$d anderen - en %1$d anderen - en %1$d anderen - en %1$d anderen - %1$d foto\'s geselecteerd - %1$d foto geselecteerd - %1$d foto\'s geselecteerd - %1$d foto\'s geselecteerd - %1$d foto\'s geselecteerd - %1$d foto\'s geselecteerd - %1$d video\'s geselecteerd - %1$d video geselecteerd - %1$d video\'s geselecteerd - %1$d video\'s geselecteerd - %1$d video\'s geselecteerd - %1$d video\'s geselecteerd - %1$d media geselecteerd - %1$d media geselecteerd - %1$d media geselecteerd - %1$d media geselecteerd - %1$d media geselecteerd - %1$d media geselecteerd - %1$d personen gebruiken dit thema - %1$d persoon gebruikt dit thema - %1$d personen gebruiken dit thema - %1$d personen gebruiken dit thema - %1$d personen gebruiken dit thema - %1$d personen gebruiken dit thema - %1$d van %2$d resultaten - %1$d van %2$d resultaten - %1$d van %2$d resultaten - %1$d van %2$d resultaten - %1$d van %2$d resultaten - %1$d van %2$d resultaten - %1$d gebruikers - %1$d gebruiker - %1$d gebruikers - %1$d gebruikers - %1$d gebruikers - %1$d gebruikers - %1$d gebruikers - %1$d gebruiker - %1$d gebruikers - %1$d gebruikers - %1$d gebruikers - %1$d gebruikers - %1$d van %2$d geselecteerd - %1$d van %2$d geselecteerd - %1$d van %2$d geselecteerd - %1$d van %2$d geselecteerd - %1$d van %2$d geselecteerd - %1$d van %2$d geselecteerd - %1$d antwoorden bekijken - %1$d antwoord bekijken - %1$d antwoorden bekijken - %1$d antwoorden bekijken - %1$d antwoorden bekijken - %1$d antwoorden bekijken - %1$d antwoorden - %1$d antwoord - %1$d antwoorden - %1$d antwoorden - %1$d antwoorden - %1$d antwoorden - %1$d Opmerkingen - %1$d Opmerking - %1$d Opmerkingen - %1$d Opmerkingen - %1$d Opmerkingen - %1$d Opmerkingen - %1$d opmerkingen - %1$d opmerking - %1$d opmerkingen - %1$d opmerkingen - %1$d opmerkingen - %1$d opmerkingen - opmerkingen - opmerking - opmerkingen - opmerkingen - opmerkingen - opmerkingen - %1$d vastgezette berichten - %1$d vastgezet bericht - %1$d vastgezette berichten - %1$d vastgezette berichten - %1$d vastgezette berichten - %1$d vastgezette berichten - %s people can join via this link - %s person can join via this link - %s people can join via this link - %s people can join via this link - %s people can join via this link - %s people can join via this link - %1$d chats pinned - Chat pinned - %1$d chats pinned - %1$d chats pinned - %1$d chats pinned - %1$d chats pinned - %1$d chats unpinned - Chat unpinned - %1$d chats unpinned - %1$d chats unpinned - %1$d chats unpinned - %1$d chats unpinned - - Groep - Kanaal - Geheime chat - Gestuurd %s - Ontvangen %s - Gepland om %s - Ga terug - Navigatiemenu openen - Menu openen - Menu sluiten - Open in foto weergave - %2$s door %1$s - Meer opties - Wissel naar nachtthema - Wissel naar dagthema - Afspelen - Pauzeren - Download - Download annuleren - Bestand openen - Berichtopties - Selectiemodus starten - Emoji, stickers, en GIF\'s - Media toevoegen - Stil versturen - Meldingen aan - Botcommando\'s - Botkeyboard - Keyboard weergeven - Spraakbericht opnemen - Videobericht opnemen - Chat openen - Profielfoto - Profielfoto wijzigen - Sortering wijzigen - Accounts weergeven - Accounts verbergen - Naar bericht gaan - Antwoord annuleren - Doorsturen annuleren - Bewerken annuleren - Antwoord aan - Doorsturen van - Bewerken - Applicatie vergrendelen - Applicatie ontgrendelen - Backspace - Vorige - Herhalen, uit - Afspeellijst, herhalen - Herhalen, één keer - Audiospeler sluiten - 2X zo snel - Delen van live-locatie stoppen - Instantcamera - Sluiter - Camera wisselen - Flits, uit - Flits, automatisch - Flits, aan - Stickerbundel - GIF\'s - Stickers - Paneel uitklappen - Paneel inklappen - Gebruikersopties - Draaien - Spiegel - Fotobewerker - Aanpassingen - Fotoviewer - Naar onderen gaan - Naar volgende vermelding - Microfoon dempen - Titel - Titel - Mijn locatie - Melden als mensen die hun locatie delen in de buurt zijn - Videokwaliteit - Beelverhouding - Nog een foto nemen - Gezien - Niet gezien - Versturen - Fout bij versturen - Niet afgespeeld - Volgende zoekresultaat - Vorig zoekresultaat - Filter op gebruiker - Neem een foto - Video opnemen - Veeg omlaag voor archief - Laat los voor archief - Kleiner formaat - Betere kwaliteit - %1$s van %2$s - %1$s van %2$s gedownload - %1$s van %2$s geüpload - %1$d keer bekeken - %1$d keer bekeken - %1$d keer bekeken - %1$d keer bekeken - %1$d keer bekeken - %1$d foto versturen - %1$d foto\'s versturen - %1$d foto\'s versturen - %1$d foto\'s versturen - %1$d foto\'s versturen - %1$d bestand versturen - %1$d bestanden versturen - %1$d bestanden versturen - %1$d bestanden versturen - %1$d bestanden versturen - %1$d audiobestand versturen - %1$d audiobestanden versturen - %1$d audiobestanden versturen - %1$d audiobestanden versturen - %1$d audiobestanden versturen - Delen in %1$d chat - Delen in %1$d chats - Delen in %1$d chats - Delen in %1$d chats - Delen in %1$d chats - Juist antwoord - Uitleg - Beeld-in-beeld-modus - De microfoon staat aan - De microfoon staat uit - Overgeschakeld naar de voorcamera - Overgeschakeld naar de achtercamera - De camera staat aan - De camera staat uit - Vastgezette berichtenlijst - Volledig scherm weergeven - Volledig scherm verlaten + dd MMM yyyy + dd MMM yyyy + dd MMMM + dd MMMM yyyy MMMM yyyy dd MMM yyyy, h:mm a dd MMM yyyy, HH:mm @@ -4452,8 +1057,6 @@ dd MMM yyyy, HH:mm dd MMM, h:mm a dd MMM, HH:mm - LLLL yyyy - LLLL dd MMM dd-MM-yy dd-MM-yyyy @@ -4466,20 +1069,20 @@ %1$s om %2$s d MMM d MMM yyyy - \'Stuur vandaag om\' HH:mm - \'Stuur op\' d MMM \'om\' HH:mm + \'Vandaag verzenden om\' HH:mm + \'Verzenden op\' d MMM \'om\' HH:mm \'Stuur op\' d MMM yyyy \'om\' HH:mm - \'Start today at\' HH:mm - \'Start on\' MMM d \'at\' HH:mm - \'Start on\' MMM d yyyy \'at\' HH:mm - \'Starts today at\' HH:mm - \'Starts on\' MMM d \'at\' HH:mm - \'Starts on\' MMM d yyyy \'at\' HH:mm - \'Today,\' HH:mm - MMM d\',\' HH:mm - MMM d yyyy\',\' HH:mm + \'Begint vandaag om\' HH:mm + \'Begin op\' MMM d \'om\' HH:mm + \'Begint op\' d MMM yyyy \'om\' HH:mm + \'Begint vandaag om\' HH:mm + \'Begint op\' d MMM \'op\' HH:mm + \'Begint op\' d MMM yyyy \'at\' HH:mm + \'Vandaag,\' HH:mm + d MMM\',\' HH:mm + d MMM yyyy\',\' HH:mm \'Herinner vandaag om HH:mm \'Herinner op\' d MMM \'om\' HH:mm \'Herinner op\' d MMM yyyy \'om\' HH:mm Menu - + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/values-pt-rBR/strings.xml b/TMessagesProj/src/main/res/values-pt-rBR/strings.xml index 63cbbb9fb4..440d06c374 100644 --- a/TMessagesProj/src/main/res/values-pt-rBR/strings.xml +++ b/TMessagesProj/src/main/res/values-pt-rBR/strings.xml @@ -9,7 +9,10 @@ Continuar em Português Seu Número - Por favor, confirme o código do seu país e digite o seu número de telefone. + Por favor, confirme o código do\nseu país e digite o seu\nnúmero de telefone. + País + Seu número + Número de telefone Escolha um país Código do país inválido Esta conta já está conectada a partir deste aplicativo. @@ -20,13 +23,23 @@ Contatos deste dispositivo serão adicionados à sua conta. Ative para sincronizar continuamente contatos deste dispositivos com a sua conta. Contatos deste dispositivo foram adicionados à sua conta. + Este é o número correto? + Formato incorreto + O número inserido é muito curto para **%1$s**:\n\n**%2$s**\n\nPor favor, insira o número correto com o código do país. + Editar número + Se você não recebeu o código por SMS ou chamada, por favor confira suas **configurações de dados móveis** e número de telefone:\n\n%1$s\n\nVocê pode tentar com outro número ou falar com o Suporte do Telegram. Toque em **Ajuda** para enviar os detalhes técnicos que nos ajudarão a identificar o problema. + Ajuda + Editar número Verificar Número Enviamos um SMS com um código de ativação para **%1$s**. - Enviamos o código para o app do **Telegram** em seu outro dispositivo. + Enviamos o código para o app **Telegram** no seu outro dispositivo. + Enviamos o código para o **app do Telegram** de %1$s no seu outro dispositivo. Confira suas mensagens no Telegram + Obtenha o código para %1$s na seção Anonymous Numbers do Fragment. Inserir código - Estamos ligando para o seu telefone **%1$s**.\n\nNão atenda, o Telegram processará tudo automaticamente. + Abrir Fragment + Estamos ligando para o seu telefone **%1$s**.\n\nNão atenda. O Telegram processará tudo automaticamente. Estamos ligando no seu **%1$s** para ditar o código. O Telegram te ligará em %1$d:%2$02d Vamos te enviar um SMS em %1$d:%2$02d @@ -34,284 +47,42 @@ Enviando SMS... Código Número incorreto? + Código incorreto. Por favor, tente de novo. Não recebeu o código? - Enviar o código por SMS - Cancelar Exclusão da Conta - Alguém com acesso ao número **%1$s** solicitou excluir a sua conta do Telegram e redefinir a sua senha de Verificação em Duas Etapas.\n\nSe não foi você, digite o código que acabamos de enviar via SMS. Você também pode cancelar isso *alterando o seu número de telefone*. + Toque para enviar um SMS + Obter código via Fragment + Cancelar redefinição da conta + Alguém com acesso ao número **%1$s** solicitou apagar a sua conta do Telegram e redefinir a sua senha de Verificação em Duas Etapas.\n\nSe não foi você, digite o código que acabamos de enviar via SMS. Você também pode cancelar isso *alterando o seu número de telefone*. Apagar conta Como a conta %1$s está ativa e protegida por uma senha, ela será apagada em 1 semana. Esse tempo é necessário por questões de segurança.\n\nVocê pode cancelar esse processo a qualquer momento. Você poderá redefinir a sua conta em: - As suas tentativas recentes de redefinir esta conta foram canceladas pelo usuário ativo. Por favor, tente novamente em 7 dias. - APAGAR CONTA + As suas tentativas recentes de redefinir esta conta foram canceladas pelo usuário ativo. Por favor, tente de novo em 7 dias. O link expirou ou está inválido. + Sucesso! O processo de exclusão da sua conta %1$s foi cancelado. Você pode fechar esta janela agora. Seu código de login é **%1$s**. Digite ele no app do Telegram no qual você está tentando fazer o login.\n\nNão informe esse código para ninguém. + Você pode pedir um SMS em %1$d:%2$02d + Você pode pedir um novo SMS em %1$d:%2$02d + Obter o código via SMS + Você pode pedir uma ligação em %1$d:%2$02d + Ligue-me para ditar o código + Obter código por ligação + Código do país + Login com o Google Seu Nome Digite seu nome e coloque uma foto de perfil. Nome (obrigatório) + Primeiro nome Sobrenome (opcional) + Sobrenome Cancelar registro - - Você transferiu com sucesso %1$s para %2$s por %3$s - Você transferiu com sucesso %1$s para %2$s - Finalizar - Métodos de entrega - Desculpe, não é possível entregar neste endereço. - Dados de Entrega - Endereço de entrega - Endereço 1 (Rua) - Endereço 2 (Rua) - Cidade - Estado - País - Código postal - Destinatário - Nome Completo - Gorjeta - Gorjeta (Opcional) - Número de Telefone - Email - Salvar Dados de Entrega - Você pode salvar seus dados de entrega para uso futuro. - Dados de pagamento - Cartão de pagamento - Número do Cartão - Código de Segurança (CVV) - MM/AA - Endereço de cobrança - Nome e Sobrenome - Salvar Dados de Pagamento - Você pode salvar os dados de pagamento para uso futuro. Isso será salvo diretamente no provedor de pagamento, o Telegram não tem acesso aos dados do seu cartão de crédito. - Por favor, *ative a Verificação em Duas Etapas* para ativar isso. - Revisão da Transação - Transferir **%1$s** para o bot %2$s por **%3$s**? - Total - FATURA - FATURA DE TESTES - PAGAR %1$s - Método de pagamento - Novo cartão - Provedor de pagamento - Nome - Número de telefone - Endereço de contato - Método de Entrega - Recibo - Escolher um cartão diferente - Seu cartão %1$s está no arquivo. Para pagar com este cartão, insira sua senha da Verificação em Duas Etapas. - Desculpe, o pagamento foi cancelado pelo bot. - Desculpe, o pagamento foi recusado. - Não foi possível encontrar o servidor de pagamento. Verifique sua conexão e tente novamente. - Atenção - Nem o Telegram, nem %1$s terão acesso ao número do seu cartão de crédito. Os detalhes do cartão de crédito serão tratados apenas pelo sistema de pagamentos, %2$s.\n\nPagamentos irão diretamente para o desenvolvedor de %1$s. O Telegram não pode prover qualquer garantia, então proceda por sua conta e risco. Em caso de problemas, contate o desenvolvedor de %1$s ou o seu banco. - Senha & Email - Senha - Insira uma senha - Re-insira sua senha - Por favor, crie uma senha para proteger suas informações de pagamento. Você precisará digitá-la ao fazer login. - Recuperar Email - Seu endereço de email - Por favor, adicione um email válido. Essa é a única maneira de recuperar uma senha esquecida. - O telefone será passado para %1$s como informação de faturamento. - O endereço de email será passado ao %1$s como informação de faturamento. - Telefone e email serão passados ao %1$s como informação de faturamento. - Você pagou **%1$s** por **%2$s**. - - Nova conversa - Modo Noturno Automático desligado - Configurações - Contatos - Novo Grupo - ontem - Nenhum resultado. - Boas-vindas ao Telegram - Visualizado recentemente - ESCONDER - Comece a conversar ao tocar no botão de lápis no canto inferior direito. - Comece a conversar ao tocar em um dos seus contatos abaixo. - Aguardando rede... - Conectando... - Conectado - Ping: %1$d ms - Verificando... - Disponível - Indisponível - Conectando ao proxy - Conectar Proxy - Atualizando... - Novo Chat Secreto - Esperando %s se conectar... - Chat secreto cancelado - Trocando chaves de criptografia... - %s entrou no chat secreto - Você entrou no chat secreto - Limpar histórico - Limpar histórico - Limpar Histórico - Ativar Autoexcluir - Autoexcluirá em %1$s - Autoexcluir mensagens aqui - Autoexcluir mensagens - Apaga automaticamente novas mensagens após um certo tempo para você e %1$s. - Apaga automaticamente novas mensagens após um certo tempo para os membros deste grupo. - Apaga automaticamente novas mensagens após um certo tempo para os inscritos deste canal. - Confirmar - 24 horas - 7 dias - Apaga automaticamente novas mensagens enviadas neste chat após um certo tempo. - Desativado - Definir neste chat - Mensagens neste chat serão apagadas\nautomaticamente %1$s após o envio. - Novas mensagens neste chat serão apagadas automaticamente após %1$s. - Exclusão automática desativada. - Autoexcluir mensagens - Timer do autoexcluir - Histórico apagado. - Silenciar - Ativar Som - Chat apagado - Grupo apagado. - Canal apagado. - Arquivo fixado. - Deslize o arquivo para a esquerda para ocultar. - Arquivo ocultado. - Deslize para baixo para ver o arquivo. - Chat arquivado. - Chats arquivados. - Oculte o arquivo ao arrastá-lo para a esquerda. - DESFAZER - Apagar do cache - Apagar e sair - Ocultar - Fixar - Fixar - Desafixar - Arquivar - Arquivo - Desarquivar - Chats Arquivados - Apagar chat - Conta Excluída - Selecione um Chat - Selecionar Chats - Encaminhar para... - Foto Autodestrutiva - Vídeo Autodestrutivo - GIF Autodestrutivo - %1$s está usando uma versão mais antiga do Telegram, por isso fotos secretas serão mostradas em modo de compatibilidade.\n\nAssim que %2$s atualizar o Telegram, fotos com timers de 1 minuto ou menos passarão a funcionar no modo ‘Toque e segure para ver’, e você será notificado caso a outra pessoa salve a tela. - Mensagens - Buscar - Silenciar notificações - Silenciar por %1$s - Restaurar Som - Em %1$s - Desativar - HASHTAGS - Recente - Pessoas - Remover sugestão - Deseja remover **%1$s** das sugestões? - Remover %1$s das sugestões? - Prévia do link - Rascunho - O histórico foi apagado. - por %1$s - %1$s por %2$s - Layout incorreto? - Enviar Sticker - Enviar GIF - Ver Pacote - Fixar no topo - Desculpe, você só pode fixar %1$s ao topo na lista principal. Mais chats podem ser fixados nas Pastas de Chat e no seu Arquivo. - Desculpe, você não pode fixar mais chats ao topo. - Desafixar do topo - Marcar como não lido - Marcar como lido - Marcar tudo como lido - Ocultar acima da lista - Fixar na lista - Negrito - Itálico - Mono - Tachado - Sublinhado - Regular - O **Telegram** precisa acessar seus contatos para que você possa se comunicar com seus amigos em todos os seus dispositivos. Seus contatos serão continuamente sincronizados na nuvem fortemente criptografada do Telegram. - AGORA NÃO - CONTINUAR - Seus contatos no Telegram - Este é o seu Arquivo - Os chats com notificações ativadas são desarquivados quando novas notificações chegam. - Chats silenciados - Os chats silenciados ficam arquivados quando novas mensagens chegam. - Chats fixados - Você pode fixar uma quantidade ilimitada de chats arquivados no topo. - Toque e segure neste botão para agendar a mensagem ou enviar sem som. - Ocultar novos chats? - Parece que você está recebendo muitas mensagens de pessoas que não estão na sua agenda. Quer **silenciar** e **arquivar** essas conversas automaticamente? - ABRIR CONFIGURAÇÕES - Abrir Perfil - Abrir Canal - Abrir Grupo - Enviar Mensagem - Mencionar - Notificações silenciadas - Notificações silenciadas por %1$s - Notificações restauradas - %1$d mensagens apagadas - Mensagem apagada - %1$d mensagens apagadas - %1$d mensagens apagadas - %1$d mensagens apagadas - %1$d mensagens apagadas - Sem Resultados - Sem Resultados - Tente uma nova busca. - Músicas de todos os seus chats aparecerão aqui. - Arquivos de todos os seus chats aparecerão aqui. - Links de todos os seus chats aparecerão aqui. - Voz de todos os seus chats aparecerão aqui. - Mídias de todos os seus chats aparecerão aqui. - Chats - Mensagem fixada - Mensagem desafixada - Toque no lápis para iniciar um novo chat - Crie um Novo Grupo para Importar - Importar Mensagens - Erro na Importação - Formato inválido de arquivo. - Não é possível importar o histórico para o chat selecionado. - Formato desconhecido de arquivo. - Você deve ser admin no grupo para importar mensagens. - O formato do arquivo é referente a um grupo, mas você selecionou um usuário. - O formato do arquivo é referente a um usuário, mas você selecionou um grupo. - Não foi possível importar as mensagens devido às configurações de privacidade. - IMPORTAR - Deseja importar as mensagens de **%1$s** para o chat com **%2$s**?\n\nAs mensagens serão importadas para o dia de hoje mas também incluirão os carimbos de data e hora originais. Ambos os lados verão as mensagens. - Deseja importar as mensagens para o chat com **%1$s**?\n\nAs mensagens serão importadas para o dia de hoje mas também incluirão os carimbos de data e hora originais. Ambos os lados verão as mensagens. - Deseja importar as mensagens de **%1$s** para o grupo **%2$s**?\n\nAs mensagens serão importadas para o dia de hoje mas também incluirão os carimbos de data e hora originais. Todos os membros verão as mensagens. - Deseja importar as mensagens para o grupo **%1$s**?\n\nAs mensagens serão importadas para o dia de hoje mas também incluirão os carimbos de data e hora originais. Todos os membros verão as mensagens. - Você precisa ter o contato salvo e a outra pessoa ter o seu para importar mensagens em chats privados. - Você deve ser admin no grupo para importar mensagens. - A mensagem foi importada de outro aplicativo. Não podemos garantir que seja real. - Importando mensagens e mídias... **%d%%** - Importando chat - Por favor, mantenha o Telegram aberto\naté que a importação seja concluída. - %1$s de %2$s - Pronto - Chat importado com sucesso! - Libere espaço no seu dispositivo importando mais chats para o Telegram. - Importando mensagens e mídias... - Importando stickers... - Importar mensagens e mídias para... - Ou escolha um dos seus contatos + Dados do perfil Editar Widget Exibe atalhos dos seus chats mais importantes para acesso rápido.\n\nSe ninguém for selecionado, seus contatos mais frequentes serão exibidos neste widget. Exibe a última mensagem dos chats que você escolher.\n\nSe nenhum chat for selecionado, seus chats mais recentes serão exibidos neste widget. - Aviso: a sua senha será **ignorada** para widgets. - Sua senha **não afetará** widgets adicionados à tela inicial. + Aviso: seus widgets mostrarão todas as mensagens recentes, mas sua senha será necessária para abrir o app e responder. Buscar por chats... Prévia do widget toque para editar o widget @@ -319,890 +90,14 @@ Chats Atalhos A conta foi removida. - - Promover a administrador - Editar permissões de admin - Nenhum usuário removido - Apagar Grupo - Sair do grupo - Apagar Grupo - Você perderá todas as mensagens neste grupo. - Você pode adicionar administradores para ajudar você a gerenciar seu grupo. Toque e segure para removê-los. - Espere! Apagar este grupo removerá todos os membros e todas as mensagens serão perdidas. Apagar o grupo mesmo assim? - Apagar o grupo para todos - Apagar para todos inscritos - Grupo criado - un1 adicionou você ao grupo - Tem certeza de que deseja sair do grupo? - Tem certeza de que deseja sair do grupo **%1$s**? - Desculpe, você não pode adicionar esse usuário a grupos. - Desculpe, este grupo está lotado. - Desculpe, se uma pessoa não faz mais parte de um grupo, você precisa estar nos contatos do Telegram dela para conseguir adicioná-la de volta ao grupo.\n\nNote que ainda é possível que essa pessoa entre usando um link de convite do grupo desde que não esteja na lista de Usuários Removidos. - Desculpe, há muitos administradores neste grupo. - Desculpe, o usuário tem muitos grupos ou canais públicos. Por favor, peça que ele mude algum desses para privado primeiro. - Desculpe, o usuário tem muitos grupos baseados em localização. Por favor, peça que ele apague ou transfira um primeiro. - Desculpe, você já tem muitos grupos com base em localização. Por favor, apague um dos seus grupos existentes primeiro. - Desculpe, há bots demais neste grupo. - un1 fixou \"%1$s\" - un1 fixou uma mensagem - un1 fixou uma enquete - un1 fixou um quiz - un1 fixou uma foto - un1 fixou um vídeo - un1 fixou um arquivo - un1 fixou um sticker - "un1 fixou uma mensagem de voz " - un1 fixou uma mensagem de vídeo - un1 fixou um contato - un1 fixou %1$s - un1 fixou um mapa - un1 fixou uma localização em tempo real - un1 fixou um GIF - un1 fixou um arquivo de áudio - Este grupo foi convertido em supergrupo - %1$s foi convertido em supergrupo - Os usuários removidos por admins do grupo não podem entrar novamente usando links de convite. - Os usuários removidos do canal pelos admins não podem entrar novamente usando links de convite. - Novo Canal - Nome do canal - Adicionar pessoas ao canal - Se você definir um link permanente, outras pessoas poderão encontrar e participar do seu canal.\n\nVocê pode usar a-z, 0-9 e underline.\nO tamanho mínimo é de 5 caracteres. - Se você definir um link público, outras pessoas poderão encontrar e participar do seu grupo.\n\nVocê pode usar a-z, 0-9 e underline.\nO tamanho mínimo é de 5 caracteres. - Atenção - link - Pessoas podem entrar em seu canal com esse link. Você pode desativar o link quando quiser. - Pessoas podem entrar em seu grupo com esse link. Você pode desativar o link quando quiser. - Descrição (opcional) - Descrição - Você pode adicionar uma descrição opcional em seu canal. - Você alterou algumas configurações neste grupo. Gostaria de aplicar? - Você alterou algumas configurações neste canal. Gostaria de aplicar? - Canal Público - Grupo Público - Grupo Baseado em Localização - Canais públicos podem ser encontrados na busca. Qualquer um pode entrar. - Grupos públicos podem ser encontrados na busca, o histórico é disponível para todos e qualquer um pode entrar. - Canal Privado - Grupo Privado - Só é possível entrar em canais privados por meio de um link de convite. - Só é possível entrar em grupos privados por meio de um link de convite. - Link público - Link de Convite - Adicionar Membros - Adicionar Inscritos - Sair do Canal - Sair do Canal - Configurações - ENTRAR - Transmitir - Transmitir sem som - O que é um Canal? - Canais são uma ferramenta de transmissão um-para-vários de suas mensagens para audiências ilimitadas. - Criar Canal - Desculpe, esse nome já está em uso. - Desculpe, esse nome é inválido. - Nome do canal deve ter pelo menos 5 caracteres. - O nome não pode exceder 32 caracteres. - Nome do canal não pode iniciar com número. - Nome do grupo deve ter pelo menos 5 caracteres. - Nome do grupo não pode iniciar com número. - Verificando nome... - %1$s está disponível. - Membros - Adicionar ao grupo - Adicionar ao canal - Apagar desta lista - Inscritos - Usuários Removidos - Permissões - O que os membros do grupo podem fazer? - Adicionar Exceção - Buscar Exceções - Usuários removidos - Contatos neste canal - Contatos no grupo - Seus contatos - Bots - Outros membros - Outros inscritos - entrou em %1$s - Usuários restringidos - Administradores - Apagar Canal - Apagar Canal - Espere! Apagar esse canal removerá todos os inscritos e todas as mensagens serão perdidas. Apagar assim mesmo? - Tem certeza de que deseja sair do canal? - Tem certeza de que deseja sair do canal **%1$s**? - Você perderá todas as mensagens desse canal. - Editar - Escolha um link - Por favor, escolha um link para o seu canal público, assim as pessoas poderão encontrá-lo na busca e compartilhar com outros.\n\nSe não estiver interessado, sugerimos que crie um canal privado. - Canal criado - Foto do canal alterada - Vídeo do canal alterado - Foto do canal removida - Nome do canal alterado para un2 - Você reservou muitos links públicos. Experimente remover o link público de um dos seus grupos ou canais antigos, ou criar de forma privada. - Dono - Admin - Admin - SILENCIAR - RESTAURAR SOM - Adicionar Admin - Remover Usuário - Desbanir - Toque e segure no usuário para remover o banimento. - Convidar via Link - Dispensar admin - Editar permissões - Somente admins do canal podem ver esta lista. - Qualquer pessoa que tenha o Telegram instalado poderá participar do seu canal seguindo esse link. - Você pode adicionar administradores para ajudar você a gerenciar o seu canal. Aperte e segure para removê-los. - Deseja entrar no canal \'%1$s\'? - Desculpe, este chat não está mais acessível. - Desculpe, você foi banido por um administrador e não pode acessar este chat. - Infelizmente você foi banido de participar de grupos públicos. - Desculpe, este chat não está mais acessível. - Adicionar %1$s ao canal? - Desculpe, se uma pessoa não faz mais parte de um canal, você precisa estar nos contatos do Telegram dela para adicioná-la de volta ao canal.\n\nNote que ela ainda poderá entrar usando um link de convite do canal, desde que não esteja na lista de Usuários Removidos. - Desculpe, você não pode adicionar esse usuário em canais. - Desculpe, há muitos administradores neste canal. - Desculpe, há bots demais neste canal. - Desculpe, você só pode adicionar os primeiros 200 inscritos ao canal. Note que um número ilimitado de pessoas podem entrar via link do canal. - Muitos grupos e canais - Desculpe, você faz parte de muitos grupos e canais. Por favor, saia de alguns antes de criar outro. - Desculpe, você faz parte de muitos grupos e canais. Por favor, saia de alguns antes de entrar em outro. - un1 adicionou você ao canal - Você entrou neste canal - Você entrou neste grupo - Remover do canal - Desculpe, você não pode enviar mensagens para esse canal. - %1$s adicionou você ao canal %2$s - Canal %1$s atualizou a foto - O canal %1$s atualizou o vídeo dele - %1$s postou uma mensagem - %1$s postou uma foto - %1$s postou um vídeo - %1$s postou um contato %2$s - %1$s postou uma enquete %2$s - %1$s postou o quiz \"%2$s\" - %1$s postou uma localização - %1$@ postou uma localização em tempo real - %1$s postou um arquivo - %1$s postou um GIF - %1$s postou %2$s - %1$s postou um álbum - %1$s postou uma mensagem de voz - %1$s postou uma mensagem de vídeo - %1$s postou um arquivo de áudio - %1$s postou um sticker - %1$s postou um %2$s sticker - Quem pode adicionar membros? - Todos os Membros - Somente Admins - Os inscritos serão notificados sobre o post. - A notificação do post será silenciosa. - Assinar as Mensagens - O nome do admin que postou é exibido na mensagem. - Permissões de Admin - Título personalizado - Um título personalizado que será mostrado para todos os membros em vez de \'%1$s\'. - O que esse admin pode fazer? - Alterar Info. do Canal - Alterar Info. do Grupo - Postar Mensagens - Editar Mensagens de Outros - Apagar Mensagens de Outros - Apagar Mensagens - Adicionar Novos Admins - Permanecer Anônimo - Dispensar admin - Transferir Posse do Grupo - Transferir Posse do Canal - Verificação de Segurança - Você pode transferir este grupo para **%1$s** somente se tiver: - Você pode transferir este canal para **%1$s** somente se tiver: - Ativado a **Verificação em Duas Etapas** há mais de **7 dias**. - Conectado a este dispositivo há mais de **24 horas**. - Por favor, volte mais tarde. - Definir Senha - Isso transferirá os direitos de **dono** de **%1$s** para **%2$s**. - Alterar Dono - **%1$s** agora tem a posse do grupo. - **%1$s** agora tem a posse do canal. - Banir Usuários - Adicionar Usuários - Convidar Usuários via Link - Fixar Mensagens - Promovido por %1$s - Você não tem permissão para editar os direitos desse admin. - Você não pode editar essa permissão. - Esta permissão não está disponível em grupos públicos. - Removido por %1$s - Permissões do Usuário - Esta opção está desativada para todos os membros nas Permissões do Grupo - O que este usuário pode fazer? - Ler Mensagens - Enviar Mensagens - Enviar Mídias - Enviar Enquetes - Enviar Stickers e GIFs - Prévia de Links - Mudar Info do Chat - Fixar Mensagens - Adicionar Usuários - não pode ler - não pode enviar mensagens - sem mídia - sem enquetes - sem stickers & GIFs - sem prévia de links - não pode mudar a Info - sem fixar - não pode adicionar usuários - Duração - Para sempre - Banir e remover do grupo - Aplicar Alterações? - Você alterou as permissões deste usuário em **%1$s**. Aplicar alterações? - Personalizado - Gerenciar Grupo - Gerenciar Canal - Gerenciar grupo - Gerenciar canal - Histórico do chat para novos membros - Definir Nova Foto - Definir Foto ou Vídeo - Visível - Novos membros verão mensagens que foram enviadas antes de eles entrarem. - Oculto - Novos membros não verão mensagens anteriores. - Novos membros não verão mais de 100 mensagens anteriores. - Entrar no Canal - Entrar no Grupo - Tipo de Grupo - Tipo de Canal - Tipo de Grupo - Tipo de Canal - Configurações do Grupo - Configurações do Canal - Privado - Público - Privado - Público - Link - Toque para adicionar um link permanente - Escolher Foto - Escolha uma foto ou vídeo - Definir nova foto - Tirar foto - Gravar vídeo - Enviar da Galeria - Selecionar da Galeria - Buscar na Internet - Estatísticas - Bots só podem ser adicionados como admins. - Bots só podem ser adicionados aos canais como admins. - TORNAR ADMIN - %1$s será removido dos admins se você restringir. - Conversa - Ver conversa - Vincule um grupo para comentários - Canal Vinculado - Selecione um grupo para armazenar os comentários do seu canal. - Tudo que você postar no canal será encaminhado para este grupo. - **%1$s** foi selecionado como o grupo usado para armazenar os comentários do seu canal. - Este grupo está vinculado como o grupo de conversa para %1$s. - Todas as novas mensagens postadas neste canal serão encaminhadas ao grupo. - Criar Grupo - Desvincular Grupo - Desvincular Canal - Desvincular - VINCULAR GRUPO - Deseja definir %1$s como o grupo de conversa para %2$s? - Deseja definir **%1$s** como o grupo de conversa para **%2$s**?\n\nQualquer pessoa deste grupo poderá ver mensagens no canal. - Deseja definir **%1$s** como o grupo de conversa para **%2$s**?\n\nQualquer pessoa do canal poderá ver mensagens neste grupo. - \"Histórico do chat para novos membros\" mudará para Visível. - Deseja mesmo desvincular **%1$s** deste grupo? - Deseja mesmo desvincular **%1$s** deste canal? - CONVERSAR - canal - Modo Lento - Não - %1$ds - %1$dm - %1$dh - Escolha quanto tempo cada membro deverá esperar antes de enviar uma próxima mensagem. - Os membros poderão enviar apenas uma mensagem a cada %1$s. - O Modo Lento está ativado. Você não pode enviar mais de uma mensagem por vez. - O Modo Lento está ativado. Você não pode selecionar mais itens. - Desculpe, este texto é muito longo para ser enviado em uma só mensagem.\n\nO Modo Lento está ativado. Você não pode enviar mais de uma mensagem por vez. - **%1$s** promovido a admin - **%1$s** removido de **%2$s** - - Nova Enquete - Novo Quiz - Enquete - Pergunta - Faça uma pergunta - Opções de resposta - Respostas do quiz - Resultados da Enquete - Votação Anônima - Modo Quiz - Selecione uma opção primeiro - Recolher - Expandir - Desculpe, enquetes com votos visíveis não podem ser encaminhadas para canais. - Desculpe, as faturas não podem ser encaminhadas para chats secretos. - Desculpe, enquetes não podem ser encaminhadas para chats secretos. - Desculpe, os jogos não podem ser enviados para chats secretos. - Desculpe, as faturas não podem ser enviadas para chats secretos. - Múltiplas Respostas - Toque para escolher a resposta certa - Enquetes no Modo Quiz só têm uma resposta certa. Os usuários não podem remover a resposta deles. - Adicionar uma opção... - Você pode adicionar %1$s. - Você adicionou a quantidade máxima de opções. - Enquete Anônima - Resposta errada! - Você não escolheu a opção certa. - Muito bem! - Você escolheu a resposta certa. - Enquete - Quiz - VOTAR - VER RESULTADOS - Quiz Anônimo - Parar Enquete - Parar enquete? - Ninguém mais poderá votar se você encerrar a enquete agora. Não é possível desfazer essa ação. - Parar Quiz - Parar quiz? - Ninguém mais poderá enviar respostas se você parar o quiz agora. Não é possível desfazer essa ação. - Descartar enquete? - Deseja descartar essa enquete? - Remover Voto - Resultados Finais - Sem votos - Ninguém respondeu\n - %1$d votos - %1$d voto - %1$d votos - %1$d votos - %1$d votos - %1$d votos - %1$d respostas - %1$d resposta - %1$d respostas - %1$d respostas - %1$d respostas - %1$d respostas - Mostrar Mais (%1$d) - Mostrar Mais (%1$d) - Mostrar Mais (%1$d) - Mostrar Mais (%1$d) - Mostrar Mais (%1$d) - Mostrar Mais (%1$d) - mais %1$d opções - mais %1$d opção - mais %1$d opções - mais %1$d opções - mais %1$d opções - mais %1$d opções - Opção - - Ações Recentes - Todas as ações - ações selecionadas - Todos os admins - **Nenhuma ação ainda**\n\nOs membros e admins do grupo\nainda não tomaram nenhuma ação\nnas últimas 48 horas. - **Nenhuma ação ainda**\n\nOs admins do canal não fizeram nenhuma ação de serviço nas últimas 48 horas. - **Nenhuma ação encontrada**\n\nNenhuma ação recente corresponde à sua busca. - Nenhuma ação recente que contenha \"**%1$s**\" foi encontrada. - O que são as Ações Recentes? - Essa é uma lista das ações de serviço notáveis tomadas pelos membros e admins do grupo nas últimas 48 horas. - Essa é uma lista de todas as ações de serviço tomadas pelos admins do canal nas últimas 48 horas. - un1 renomeou o grupo para \"%1$s\" - un1 renomeou o canal para \"%1$s\" - un1 saiu do grupo - un1 saiu do canal - un1 adicionou un2 - un1 entrou no grupo - baniu %1$s - removeu o ban de %1$s - un1 entrou no canal - un1 definiu uma nova foto do grupo - un1 definiu uma nova foto do canal - un1 definiu um novo vídeo para o grupo - un1 definiu um novo vídeo para o canal - un1 removeu a foto do grupo - un1 removeu foto do canal - un1 editou esta mensagem: - un1 editou a legenda: - un1 editou a mídia: - un1 editou a mídia e a legenda: - Mensagem original - Legenda original: - Vazio - un1 fixou esta mensagem: - un1 desafixou esta mensagem: - un1 encerrou a enquete: - un1 parou o quiz: - un1 apagou esta mensagem: - un1 alterou o local do grupo para \"%1$s\" - un1 removeu a localização do grupo - transferiu a posse para %1$s - un1 alterou o pacote de sticker do grupo - un1 removeu o pacote de sticker do grupo - un1 definiu un2 como o grupo de conversa deste canal. - un1 removeu o grupo de conversa un2 - un1 vinculou este grupo ao un2 - un1 desvinculou este grupo de un2 - un1 alterou o link do grupo: - un1 alterou o link do canal: - un1 removeu o link do grupo - un1 removeu o link do canal - Link anterior - un1 editou a descrição do grupo - un1 editou a descrição do canal - Descrição anterior - un1 tornou o histórico do grupo visível para novos membros - un1 ocultou o histórico do grupo para novos membros - un1 ativou o convite ao grupo - un1 desativou o convite ao grupo - un1 ativou as assinaturas - un1 desativou as assinaturas - alterou as permissões de %1$s\n\nDuração: %2$s - alterou as permissões padrão - Enviar Stickers & GIFs - Enviar mídias - Alterar info - Adicionar usuários - Fixar mensagens - Enviar enquetes - Enviar mensagem - Prévia de links - Ler Mensagens - alterou os privilégios de %1$s - promoveu %1$s - Alterar Info. do Canal - Editar Info. do grupo - Postar mensagens - Editar mensagens - Apagar mensagens - Adicionar admins - Permanecer Anônimo - Banir usuários - Gerenciar chats de voz - Adicionar usuários - Título: %1$s - Título - Fixar mensagens - Todas as ações - Novas exceções - Permissões de administrador - Novos membros - Info. do grupo - Info. do canal - Mensagens apagadas - Mensagens editadas - Mensagens fixadas - Pessoas que saíram - Chats de voz - Links de convite - un1 definiu o timer do modo lento para %1$s - un1 desativou o modo lento - un1 iniciou um chat de voz - un1 encerrou o chat de voz - un1 silenciou un2 no chat de voz - un1 tirou o silêncio de un2 no chat de voz - un1 permitiu que novos participantes do chat de voz falem - un1 silenciou novos participantes do chat de voz - - Nova Lista de Transmissão - Digite o nome da lista - Você criou uma lista de transmissão - Adicionar destinatário - Remover da lista de transmissão - - Sem arquivos de áudio - A sua biblioteca de músicas está vazia. - Nenhum resultado encontrado - Não há nenhuma música que corresponda a **%1$s** em sua biblioteca. - Nenhum resultado para **%1$s**. - Música - Artista desconhecido - Título desconhecido - Repetir faixa - Repetir lista - Misturar lista - Ordem reversa - - Selecionar Arquivo - Buscar Arquivos Recentes - %1$s livres de %2$s - Erro desconhecido - Erro de acesso - Tamanho do arquivo não deve ser maior que %1$s - Armazenamento não está montado - Transferência USB ativa - Armazenamento Interno - Armazenamento Externo - Raiz do Sistema - Cartão SD - Pasta - Arquivos recentes - Arquivos A-Z - Nenhum resultado - Nada que corresponda com **%1$s** na pasta de arquivos atual. - Esta pasta está vazia. - Para enviar imagens sem compressão - Para enviar músicas - Acessar pasta do aplicativo - Acessar seu sistema de arquivos - Acessar seu armazenamento externo - Buscar música - - Stickers do Grupo - Escolher de seus stickers - Você pode escolher um pacote de sticker que estará disponível para todos os membros enquanto estiverem no grupo. - ESCOLHER PACOTE DE STICKER - pacote de sticker - Você pode criar seus próprios pacotes de sticker usando o bot @stickers. - Nenhum pacote de sticker encontrado - Tente novamente ou escolha da lista abaixo - - invisível - suporte - escrevendo... - está escrevendo... - estão escrevendo... - %1$s está escrevendo... - %1$s estão escrevendo... - %1$s está gravando voz... - %1$s está gravando msg. de vídeo... - %1$s está enviando um áudio... - %1$s está enviando uma foto... - LEITURA RÁPIDA - VER GRUPO - VER PAPEL DE PAREDE - VER TEMA - VER CANAL - VER MENSAGEM - O tema noturno será ativado automaticamente à noite. - Referência - %1$s está jogando... - %1$s está enviando um vídeo... - %1$s está enviando um arquivo... - gravando voz... - gravando msg. de vídeo... - enviando áudio... - enviando uma foto... - jogando... - enviando um vídeo... - enviando um arquivo... - Tem alguma dúvida\nsobre o Telegram? - Galeria - Localização - Vídeo - Arquivo - Câmera - Ainda não há mensagens aqui... - Não há mensagens agendadas aqui ainda... - Mensagem encaminhada - De - De %1$s - de: - Nada recente - Mensagem - Mensagem - Agendar mensagem - COMPARTILHAR MEU NÚMERO - Compartilhar meu contato - Add Contato - %s te convidou para um chat secreto. - Você convidou %s para um chat secreto. - Chats Secretos: - Criptografia de ponta a ponta - Sem rastros nos servidores - Têm timer de autodestruição - Encaminhamento desativado - você foi removido - Você saiu deste grupo - Apagar este grupo - Apagar este chat - Apagar este chat - Apagar chats - DESLIZE PARA CANCELAR - Salvar em downloads - Salvar em GIFs - Apagar GIF desta seção? - Salvar em músicas - Compartilhar - Aplicar arquivo de localização - Aplicar tema - Anexo não suportado - Timer de autodestruição - notificações de serviço - Obtendo informações... - ABRIR EM... - Abrir em... - Enviar %1$s - Enviar %1$s - Enviar arquivo - Enviar arquivos - Abrir Link - Deseja abrir %1$s? - Entrar em %1$s como %2$s - Permitir que **%1$s** me envie mensagens - Cancelar o envio - Permitir que %1$s passe seu nome no Telegram e ID (não o seu número de telefone) para páginas que você abrir com esse bot? - GRUPO SEM RELAÇÃO COM O LOCAL? - Denunciar grupo sem relação - Por favor, nos diga se este grupo não está relacionado com este local:\n\n**%1$s** - Por favor, nos diga se este grupo não está relacionado com este local. - DENUNCIAR SPAM - Denunciar spam - Bloquear %1$s - BLOQUEAR - DENUNCIAR SPAM E SAIR - ADICIONAR CONTATO - ADD %1$s A CONTATOS - VER CONTATO - Deseja bloquear as mensagens e chamadas de **%1$s** no Telegram? - Deseja bloquear as mensagens de **%1$s**? - Tem certeza de que deseja denunciar este usuário por spam? - Tem certeza de que deseja denunciar este grupo por spam? - Tem certeza de que deseja denunciar este canal por spam? - Desculpe, você só pode enviar mensagens para contatos mútuos no momento. - Desculpe. No momento, você só pode adicionar contatos mútuos a grupos. - Desculpe, no momento você está restringido de postar em grupos públicos. - Mais informações - Enviar para... - Escrever um comentário... - Toque aqui para acessar os GIFs salvos - Fixar - Notificar todos os membros - Fixar para %1$s também - Desafixar - Fixar mensagem - Desafixar mensagem - Deseja fixar uma mensagem mais antiga enquanto deixa a mais recente fixada? - Fixar a mensagem no grupo? - Deseja fixar essa mensagem no canal? - Deseja fixar essa mensagem no topo do chat? - Desafixar essa mensagem? - Banir usuário - Denunciar spam - Apagar tudo de %1$s - Limpar emojis recentes - Carinhas e pessoas - Animais e natureza - Comidas e bebidas - Atividades - Viagem e lugares - Objetos - Símbolos - Bandeiras - Selecionar mensagens - DENUNCIAR MENSAGENS - DENUNCIAR %1$s - Denunciar - Denúncia enviada. - Denunciar Spam - Denunciar Fake - Denunciar Pornografia - Denunciar Abuso Infantil - Denunciar Violência - Por favor, insira detalhes adicionais relevantes à sua denúncia. - Detalhes adicionais... - Enviar Denúncia - Os moderadores do Telegram avaliarão a sua denúncia.\nObrigado! - Spam - Conta Falsa - Violência - Pornografia - Abuso Infantil - Outro - Descrição - Mensagem fixada - Mensagem anterior - Enquete fixada - editada - Editar Mensagem - Editar Legenda - Toque para editar a mídia - Editar a foto - Editar o vídeo - Trocar foto - Trocar vídeo - Trocar mídia - Trocar arquivo - Substituir arquivo de áudio - Desça para ver os bots - %1$s - Desculpe, o tempo para editar expirou. - Adicionar à tela inicial - Buscar membros - encaminhe aqui para salvar\n - Mensagens Salvas - Encaminhe aqui para salvar. - Você - Você criou um **grupo**. - Grupos podem ter: - Até 200.000 membros - "Histórico persistente do chat " - Links públicos, como t.me/nome - Admins com permissões diferentes - Salve mensagens aqui ao encaminhar - Salve mídias e arquivos aqui ao enviar - Acesse de qualquer dispositivo - Use a busca para encontrar as coisas - Sua nuvem de armazenamento - Ir para Data - Apagar para %1$s - Apagar para todos os membros - O texto foi copiado. - Segure para gravar áudio. - Segure para gravar áudio. Toque para vídeo. - Segure para gravar vídeo. Toque para áudio. - Descartar Mensagem de Voz - Deseja mesmo parar de gravar e descartar a sua mensagem de voz? - Descartar Mensagem de Vídeo - Tem certeza de que deseja parar de gravar e descartar sua mensagem de vídeo? - Descartar - Os admins do grupo restringiram você de enviar mídias aqui até %1$s - Os admins do grupo restringiram você de usar conteúdo inline aqui até %1$s. - Os admins do grupo restringiram você de enviar stickers aqui até %1$s - Os admins deste grupo restringiram você de enviar GIFs até %1$s. - Os admins do grupo restringiram você de escrever aqui até %1$s - Os admins do grupo restringiram você de enviar mídias aqui. - Os admins do grupo restringiram você de usar conteúdo inline aqui. - Os admins do grupo restringiram você de enviar stickers aqui. - Os admins deste grupo restringiram você de enviar GIFs. - Os admins do grupo restringiram você de escrever aqui. - Não é permitido enviar mídias neste grupo. - Não é permitido enviar conteúdo inline neste grupo. - Não é permitido enviar stickers neste grupo. - GIFs não são permitidos neste grupo. - Não é permitido enviar mensagens neste grupo. - admin - A instalação de APKs está restrita neste aplicativo. Você pode ativar nas configurações do sistema. - Mensagens não lidas - Buscar pacotes de sticker - Buscar stickers populares - Buscar emoji - URL - Provedor de Prévia de Mapas - Provedor da prévia de mapas - Telegram - Google - Yandex - Sem prévias - Instalar Google Maps? - FRAUDE - FALSO - via - A mensagem não existe. - Modo Lento ativado. Poderá enviar\nsua próxima mensagem em %1$s. - Toque para foto, segure para vídeo - Toque para ver em lista. - Enviar sem som - Enviar como nova foto - Trocar foto - Enviar Agora - Reagendar - Hoje - Agendar - Agendar mensagem - Mensagens Agendadas - Enviar quando %1$s ficar online - Lembretes - Criar Lembrete - Agendado para %1$s - Agendado para quando estiver online - Desculpe, você não pode agendar mais de 100 mensagens. - Essa ação vai estar disponível após a publicação da mensagem. - A enquete vai estar disponível após a publicação da mensagem. - Os resultados estarão disponíveis após a publicação da mensagem. - 🗓 Lembrete - 1 resultado - A qualidade do vídeo é muito baixa para mudar a compressão. - Número do cartão copiado. - Copiar - Envie o emoji do **:dado:** em qualquer chat para rolar um dado. - Envie o emoji do **:dardo:** e tente a sorte. - Envie um emoji de %1$s e tente a sorte. - ENVIAR - COVID-19 - A.U.P. - Esta mensagem fornece um aviso de utilidade pública em relação à pandemia atual de COVID-19. Saiba mais sobre esta iniciativa em https://telegram.org/blog/coronavirus. - Teste A.U.P. - Notificação – COVID-19 - Esta mensagem fornece um aviso de utilidade pública em relação à pandemia atual de COVID-19. Saiba mais sobre esta iniciativa em https://telegram.org/blog/coronavirus. - Notificação Importante - Esta é uma notificação importante. - Ocultar chat - Deseja realmente ocultar esse chat? - Ocultar - Envie uma mensagem ou toque no sticker para dizer olá e mostrar que você quer conversar. - Envie uma mensagem ou toque no aceno abaixo. - %1$s está a %2$s - %1$s está a %2$s - O chat foi movido para a lista principal. - d - s - m - h - S - para mensagens privadas e grupos - Transferir Posse do Bot - Isso vai transferir todos os direitos de **dono** do bot para o usuário selecionado. - Alterar Dono - Você pode transferir este bot somente se tiver: - Deixe um comentário - Comentários - Comentar - Respostas - Nenhum comentário ainda... - Nenhuma resposta ainda... - Ver no chat - Envio anônimo - Tópico iniciado - Ver Tópico - Escolher data - Este chat te ajuda a acompanhar as respostas aos comentários que você fez nos canais. - Desculpe, esse post foi removido do grupo de conversa. - DESAFIXAR TUDO - OCULTAR MENSAGENS FIXADAS - Mensagens fixadas ocultadas - As mensagens fixadas só aparecerão de novo se uma nova mensagem for fixada. - importada - O arquivo é muito grande para importar. - Falha ao enviar arquivo. - O áudio irá tocar na velocidade normal. - O áudio irá tocar duas vezes mais rápido. - Mensagem copiada. - Entregue - Lida - Link de convite enviado para **Mensagens Salvas**. - Link de convite enviado para **%1$s**. - Link de convite enviado para **%1$s**. - Link de convite enviado para **%1$s**. - Mensagem encaminhada para as **Mensagens Salvas**. - Mensagens encaminhadas para as **Mensagens Salvas**. - Mensagem encaminhada para **%1$s**. - Mensagens encaminhadas para **%1$s**. - Mensagem encaminhada para **%1$s**. - Mensagens encaminhadas para **%1$s**. - Mensagem encaminhada para **%1$s**. - Mensagens encaminhadas para **%1$s**. - Papel de parede enviado para as **Mensagens Salvas**. - Papel de parede compartilhado com **%1$s**. - Papel de parede compartilhado com **%1$s**. - Papel de parede compartilhado com **%1$s**. + %1$s te enviou um Código de Presente de %2$s de Telegram Premium + %1$s te enviou um sorteio de %2$sx assinaturas do Premium de \n%3$sm + %1$s postou um sorteio de %2$s assinaturas do Premium de %3$s meses + %1$s enviou um sorteio de %3$sx assinaturas Premium de %4$sm no grupo %2$s + %1$s fixou um sorteio + %1$s reagiu %2$s ao seu sorteio + %1$s reagiu %3$s no grupo %2$s ao seu sorteio "%1$s alterou o timer de autodestruição para %2$s " Você alterou o timer de autodestruição para %1$s %1$s desativou o timer de autodestruição @@ -1224,7 +119,7 @@ %1$s te enviou uma enquete %2$s %1$s te enviou o quiz \"%2$s\" %1$s te enviou uma localização - %1$s te enviou uma localização em tempo real + %1$s te enviou uma localização ao vivo %1$s te convidou para jogar %2$s %1$s marcou %3$s no jogo %2$s %1$s te enviou um arquivo @@ -1242,7 +137,7 @@ %1$s enviou o quiz \"%3$s\" ao grupo %2$s %1$s compartilhou um contato %3$s no grupo %2$s %1$s enviou uma localização para o grupo %2$s - %1$s compartilhou a localização em tempo real com o grupo %2$s + %1$s compartilhou a localização ao vivo com o grupo %2$s %1$s convidou o grupo %2$s para jogar %3$s %1$s marcou %4$s no jogo %3$s no grupo %2$s %1$s enviou um arquivo para o grupo %2$s @@ -1253,15 +148,26 @@ %1$s enviou um arquivo de áudio ao grupo %2$s %1$s enviou um sticker ao grupo %2$s %1$s enviou um %3$s sticker ao grupo %2$s + %1$s foi cobrado %2$s + %1$d ⭐️ mídia + %1$d ⭐️ mídias + %2$s te enviou um post pago por %1$d estrela + %2$s te enviou um post pago por %1$d estrelas + %2$s postou um post pago por %1$d estrela + %2$s postou um post pago por %1$d estrelas + %2$s fixou um post pago que custa %1$d estrela + %2$s fixou um post pago que custa %1$d estrelas + %2$s postou um post pago no grupo %3$s por %1$d estrela + %2$s postou um post pago no grupo %3$s por %1$d estrelas %1$s te convidou para o grupo %2$s %1$s renomeou o grupo %2$s %1$s alterou a foto do grupo para %2$s - %1$s alterou o vídeo do grupo para %2$s + %1$s alterou a foto do grupo para %2$s %1$s convidou %3$s para o grupo %2$s - %1$s convidou %3$s para um chat de voz em %2$s - %1$s convidou você para um chat de voz em %2$s - %1$s iniciou um chat de voz em %2$s - %1$s encerrou um chat de voz em %2$s + %1$s convidou %3$s para um chat de vídeo em %2$s + %1$s convidou você para um chat de vídeo em %2$s + %1$s iniciou um chat de vídeo em %2$s + %1$s encerrou um chat de vídeo em %2$s %1$s retornou ao grupo %2$s %1$s entrou no grupo %2$s %1$s removeu %3$s do grupo %2$s @@ -1279,9 +185,8 @@ Usuário Nova mensagem Responder - Responder em %1$s - Responder %1$s - Dados em segundo plano restringidos. + Responder + Responder %1$s %2$s %1$s fixou \"%2$s\" no grupo %3$s %1$s fixou uma mensagem no grupo %2$s @@ -1298,7 +203,7 @@ %1$s fixou uma mensagem de vídeo no grupo %2$s %1$s fixou um contato %3$s no grupo %2$s %1$s fixou um mapa no grupo %2$s - %1$s fixou uma localização em tempo real no grupo %2$s + %1$s fixou uma localização ao vivo no grupo %2$s %1$s fixou um GIF no grupo %2$s %1$s fixou um arquivo de áudio no grupo %2$s %1$s fixou um recibo no grupo %2$s @@ -1318,7 +223,7 @@ %1$s fixou uma mensagem de vídeo %1$s fixou um contato %2$s %1$s fixou um mapa - %1$s fixou uma localização em tempo real + %1$s fixou uma localização ao vivo %1$s fixou um GIF %1$s fixou um arquivo de áudio %1$s fixou \"%2$s\" @@ -1343,12 +248,10 @@ Telegram Selecione um Contato - Selecionar Contatos - COMPARTILHAR CONTATO Compartilhar Contato Adicionar Contato Ainda não há contatos. - Ei, eu tô usando o Telegram para conversar. Baixa também: %1$s + Eu uso o Telegram para conversar. Baixa também: %1$s às ontem às às %1$s @@ -1357,17 +260,19 @@ online visto visto - visto por último %1$s - visto por último %1$s + visto %1$s + visto %1$s Convidar Amigos Buscar amigos Busca global + Mostrar mais + Mostrar menos visto recentemente visto na última semana visto no último mês visto há muito tempo Nova Mensagem - Selecione os contatos para convidá-los ao Telegram + Selecione os contatos para convidar ao Telegram CONVIDAR PARA O TELEGRAM Compartilhar o Telegram... Atualizar contatos? @@ -1383,391 +288,30 @@ Novo contato O número de telefone **%1$s** não está nos seus contatos. Deseja adicionar? Adicionar contato - - Adicionar pessoas... - Você poderá adicionar mais membros depois de criar o grupo. - Seu grupo atingiu o limite de **200.000** membros.\n\nVocê pode aumentar esse limite convertendo o grupo em um **grupo de transmissão** em que apenas admins podem postar. Tem interesse? - Limite atingido - SABER MAIS - Grupo de Transmissão - Converter em Grupo de Transmissão - Grupos de transmissão podem ter mais de 200.000 membros, mas apenas admins podem enviar mensagens. - Só admins podem enviar mensagens neste grupo. - Seu grupo agora pode ter mais de 200.000 membros. - Digite o nome do grupo - Nome do grupo - até %1$s - Desculpe, esse grupo está lotado. - Desculpe, parece que esse chat não existe. - Esse canal é privado. Por favor, inscreva-se para continuar visualizando o conteúdo. - Esse grupo é privado. Por favor, entre para continuar visualizando o conteúdo. - Entrar no Canal - Entrar no Grupo - ENTRAR - Link copiado. - Link copiado.\nEle só funciona para membros deste chat. - Este link só funcionará para os membros do chat. - Desculpe, você não faz parte da conversa em que essa mensagem foi postada e infelizmente não pode acessá-la. - Telefone copiado. - Email copiado. - Convidar para o Grupo via Link - Link de Convite - Links de Convite - Deseja mesmo desativar o link de convite? Se fizer isso, ninguém conseguirá usá-lo. - O link de convite anterior foi desativado. Um novo link foi gerado. - Desativar - Revogar Link - Tem certeza de que deseja desativar o link **%1$s**?\n\nO grupo \"**%2$s**\" se tornará privado. - Tem certeza de que deseja desativar o link **%1$s**?\n\nO canal \"**%2$s**\" se tornará privado. - Copiar Link - Compartilhar Link - Qualquer pessoa que tiver o Telegram instalado poderá participar do seu grupo usando esse link. - Buscar por pessoas... - Buscar por usuários e grupos... - Grupos de Transmissão - Sem limite no número de membros. - Apenas admins podem enviar mensagens. - Não pode ser revertido para grupo regular. - Converter em Grupo de Transmissão - Manter como grupo regular - Tem certeza? - Membros regulares do grupo (não admins) perderão\n**permanentemente** o direito de postar mensagens\nno grupo.\n\nEssa ação **não pode** ser desfeita. - CONVERTER - Se mudar de ideia, altere nas Configurações do seu grupo > Permissões. - - Membros - Mídia Compartilhada - Configurações - Adicionar Inscrito - Adicionar Membro - Adicionar admins - BANIR DO GRUPO - Apagar e sair do grupo - Apagar e Sair do Grupo - Notificações - Alterar permissões - Remover do grupo - Converter em Supergrupo - Converter em Supergrupo - Converter em supergrupo - Atenção - Essa ação é irreversível. Não é possível voltar de um supergrupo para um grupo normal. - **Limite de membros atingido.**\n\nPara mais espaço e funções adicionais, converta em supergrupo:\n\n• Supergrupos podem ter até %1$s\n• Novos membros podem ver todo o histórico do chat\n• Mensagens apagadas somem para todos os membros\n• Admins podem adicionar uma descrição no grupo\n• O criador pode definir um link público para o grupo - **Em supergrupos:**\n\n• Novos membros podem ver todo o histórico do chat\n• Mensagens apagadas somem para todos os membros\n• Admins podem adicionar uma descrição no grupo\n• O criador pode definir um link público para o grupo - **Nota:** essa ação não pode ser desfeita. - - Compartilhar contato - Adicionar contato - Adicionar Contato - Convidar para o Telegram - %1$s ainda não está no Telegram. Gostaria de fazer um convite? - Convidar - BLOQUEAR - SIM E APAGAR RESPOSTAS - Bloquear usuário - Bloquear usuário - Bloquear - Deseja bloquear as mensagens e chamadas de **%1$s** no Telegram? - Deseja bloquear as mensagens e chamadas de **%1$s** no Telegram? - Usuário bloqueado - Usuário desbloqueado - Editar contato - Apagar contato - Casa - Celular - Trabalho - Outro - Principal - Trabalho - Nascimento - Cargo - Novo Contato - Novo Contato - Adicionar ao Contato Existente - Bio - Adicione algumas palavras sobre você - Nenhuma - Você pode adicionar algumas linhas sobre você. Qualquer um que abrir seu perfil verá esse texto. - Iniciar Chat Secreto - Grupos em Comum - Grupos em Comum - Nenhum grupo em comum - Ocorreu um erro. - Chave Criptográfica - Timer de autodestruição - Se você definir um timer, a foto irá se autodestruir após ser vista. - Se você definir um timer, o vídeo irá se autodestruir após ser visto. - Desativado - Essa imagem e texto foram derivados da chave criptográfica para este chat secreto com **%1$s**.\n\nSe você vê o mesmo no dispositivo de **%2$s**, a criptografia de ponta a ponta está garantida. - https://telegram.org/faq/pt-br#chats-secretos - Desconhecido - Desconhecido - Número oculto - O número de telefone ficará visível assim que %1$s te adicionar como contato. - Quando você tocar em **PRONTO**, o seu número ficará visível para %1$s. - Compartilhar meu número com %1$s - %1$s agora está em seus Contatos. - Info - Telefone - Conteúdo compartilhado - Fotos e vídeos - Links - Arquivos de áudio - Enviar Mensagem - Denunciar - %1$d links de convite - %1$d link de convite - %1$d links de convite - %1$d links de convite - %1$d links de convite - %1$d links de convite - Nome de usuário copiado. - Hashtag copiada. - Bio copiada. - %s removido dos seus contatos - - Nome de Usuário - Seu nome de usuário - Desculpe, esse usuário já existe. - Desculpe, esse usuário é inválido. - O nome de usuário deve ter pelo menos 5 caracteres. - O nome de usuário não pode exceder 32 caracteres. - Nomes de usuário não podem começar com um número. - Você pode escolher um nome de usuário no **Telegram**. Se escolher, as pessoas poderão te encontrar pelo nome de usuário e entrar em contato sem precisar do seu número de telefone.\n\nVocê pode usar **a–z**, **0–9** e underline.\nO tamanho mínimo é de **5** caracteres. - Este link abre um chat com você:\n%1$s - Verificando nome de usuário... - %1$s está disponível. - Nenhum - Ocorreu um erro. - - Stickers e Máscaras - Stickers Animados em Loop - Stickers animados serão reproduzidos em chats de forma contínua. - Stickers animados - Adicionar Stickers - ADICIONAR %1$s - REMOVER %1$s - Adicionar Máscaras - Adicionar aos Stickers - Adicionar aos Favoritos - Sticker adicionado aos Favoritos - Sticker removido dos Favoritos - O sticker foi removido dos Recentes - Usados Recentemente - Favoritos - Stickers do Grupo - Mais Stickers - Apagar dos Favoritos - Remover dos Recentes - Adicionar Máscaras - Stickers não encontrados - Stickers removidos - %1$s removido dos seus stickers. - Máscaras removidas - %1$s não está mais em suas máscaras. - Stickers arquivados. - %1$s foi movido para o seu arquivo. - Máscaras arquivadas. - %1$s foi movido para o seu arquivo. - Novos stickers adicionados - %1$s foi adicionado aos seus stickers. - Novas máscaras adicionadas - %1$s foi adicionado às suas máscaras. - Arquivar - Compartilhar - Copiar link - Reordenar - Remover - Mova os stickers para reordenar. - Nenhum sticker - Nenhum sticker encontrado - Nenhum GIF encontrado - Nenhum emoji encontrado - Nenhuma máscara - Sugestões de Emoji - O **Telegram** permite que você encontre emojis por milhares de palavras-chave, mas sempre há algo faltando. Se você quiser sugerir uma nova substituição de emoji, você pode nos ajudar visitando: - https://translations.telegram.org/%1$s/emoji - Máscaras - Você pode adicionar máscaras em fotos que você envia. Para isso, abra o editor de fotos antes de enviar uma foto. - Stickers Populares - GIFs Populares - Sugerir stickers por emoji - Todos os Pacotes - Meus Pacotes - Nenhum - Esses são os stickers em alta no Telegram. Você pode adicionar stickers personalizados usando o bot @stickers. - Artistas têm as boas-vindas para adicionar seus próprios pacotes usando o bot @stickers. - Stickers Arquivados - Máscaras Arquivadas - Nenhum sticker arquivado - Nenhuma máscara arquivada - Você pode ter 200 pacotes de sticker. Pacotes não usados são arquivados quando você adiciona mais. - Você pode ter até 200 pacotes de máscaras. Pacotes não usados são arquivados quando você adiciona mais. - ENVIAR STICKER - Stickers arquivados - Alguns dos seus pacotes de sticker antigos foram arquivados. Você pode reativá-los nas Configurações de Sticker. - Máscaras arquivadas - Alguns dos seus pacotes de máscaras antigos foram arquivados. Você pode reativá-los nas Configurações de Máscaras. - Apagar %1$s - Tem certeza de que deseja apagar os pacotes de sticker selecionados? - Arquivar %1$s - Tem certeza de que deseja arquivar os pacotes de sticker selecionados? - IMPORTAR %1$s - Processing stickers... - REMOVER DA IMPORTAÇÃO - Remove from import - Escreva o nome - Por favor, escolha um nome para o seu pacote. - Você pode usar a-z, 0-9 e underline. - Desculpe, esse link é inválido. - O link deve ter pelo menos 5 caracteres. - O link não deve ter mais de 32 caracteres. - Verificando link... - Link disponível. - Desculpe, esse link não está disponível. - Importando stickers - Stickers importados com sucesso! - Importe mais stickers para o Telegram e compartilhe com os amigos. - - Tema - Modo Noturno Automático - Desativado - Desativado - Programado - Adaptativo - Programar - Padrão do Sistema - Usar Nascer e Pôr do Sol - Atualizar Localização - O cálculo do nascer e pôr do sol obtém uma única vez a sua localização aproximada. Note que essa localização é armazenada somente em seu dispositivo.\n\nPôr do sol: %1$s\nNascer do Sol: %2$s - De - Até - Tema noturno preferido - Porcentagem do brilho - Alterna para o seu tema noturno preferido quando a luz ambiente estiver abaixo de %1$d%%. - Escuro - Azul Escuro - Dia - Noite - Ártico - Clássico - Apagar tema - Tem certeza de que deseja apagar esse tema? - Arquivo de tema incorreto - Toque em **Criar** se você deseja compartilhar o seu tema com outras pessoas ou personalizar cada cor manualmente.\n\nPor favor, digite o nome do tema: - Insira o nome do tema - FECHAR EDITOR - SALVAR TEMA - Novo tema de cores - Tema de cores - Tema de cor alterado. - Você pode alterar de volta nas *Configurações de Chats*. - Temas padrão - Temas personalizados - Criar link - Link do Tema - Arredondamento dos Cantos - Visão da Lista de Chats - Duas linhas - Três linhas - CRIAR TEMA - APLICAR - Prévia do Tema - Selecionar cor - Tema de Cores - Mostrar Todos os Temas - Tema não encontrado - Desculpe, esse tema de cores não é compatível com o seu dispositivo ainda. - Criar tema - Novo Tema - Editar Tema - Toque no ícone da paleta para visualizar a lista de elementos de cada tela - e editá-los. - Você pode criar seu próprio tema alterando as cores dentro do aplicativo.\n\nVocê sempre pode voltar para o tema padrão do Telegram aqui. - Você pode usar a-z, 0-9 e underline.\nO tamanho mínimo é de 5 caracteres. - O seu tema será atualizado para todos sempre que você atualizar ele. Qualquer um pode instalar usando este link:\n%1$s - Qualquer pessoa pode instalar o seu tema usando este link. Quando você alterar o tema, ele será atualizado para todos os usuários que o instalaram.\n\nO tema terá como base o tema e o papel de parede selecionados atualmente. - Você pode alterar o link do seu tema.\n\nOs links de temas devem ter mais de 5 caracteres e podem usar a-z, 0-9 e underlines. - Desculpe, o nome do tema é inválido. - Desculpe, este link é inválido. - O link tem que ter no mínimo 5 caracteres. - O link não pode ter mais de 64 caracteres. - Desculpe, o link não pode começar com um número. - Verificando link... - Desculpe, este link já está sendo usado. - %1$s está disponível. - Link - Nome - Pedro Santos - Me faz lembrar de um provérbio chinês... - Agostinho - É isso aí! - Miguel Lopes - 🤷‍♂️ Sticker - Paul Newman - Tem alguma ideia? - Piratas - Arrrrr! - Catarina Lourenço - Olá! - José Carlos - Estes não são os andróides que você procura. - Adler Toberg - Alguém falou manteiga de amendoim? - Reinhardt - Reinhardt, precisamos encontrar músicas novas. 🎶 - Só pode ser brincadeira. - Ahh, vocês hoje em dia com essas músicas eletrônicas! Ouçam os clássicos, como Hasselhoff! - Lúcio - Manda ver, eu vivo pra isso! - True Survivor - David Hasselhoff - Bob Harris - Bom dia! 👋 - Bom dia - Você sabe que horas são? - É manhã em *Tóquio* 😎 - Usar um tema diferente - Você também pode usar um tema personalizado existente como base para o seu tema. - Escolha um tema - Exportar - Criar - Cor de Destaque - Papel de Parede - Minhas Mensagens - REDEFINIR TUDO - REDEFINIR - Deseja mesmo alterar o papel de parede das conversas para uma cor? - Deseja usar o papel de parede selecionado atualmente ou redefinir para o padrão deste tema? - Compartilhar tema - Editar cores - Redefinir padrão - Redefinir configurações - Deseja realmente redefinir as configurações de cor e tamanho do texto? - Apagar tema - Abrir no editor - Salvar alterações? - Deseja aplicar as novas cores que você escolheu? Todas as configurações de notificação foram redefinidas Redefinir todas as notificações Deseja redefinir todas as configurações de notificação para o padrão? + Redefinir para o padrão + Redefinir notificações + Deseja mesmo redefinir as configurações de notificação para o padrão? Tamanho do texto das mensagens Fazer uma Pergunta Adicionar uma explicação - Os participantes do quiz vão ler este texto se escolherem a opção incorreta. Útil para fins educacionais. + Participantes do quiz irão ler esse texto após escolherem a opção incorreta – útil para fins educacionais. Ativar Animações no App Configurações de Chats Dispositivos Ajuda Depuração Conta - Desbloquear - Toque e segure no usuário para desbloquear + Desbloquear usuário Nenhum usuário bloqueado - Notificações de mensagens - Mostrar notificações - Prévia da Mensagem - Notificações de grupo + Mostrar Notificações + Prévias de Mensagens + Mostrar Nome do Autor + Exceções Automáticas + Ativa automaticamente notificações de stories dos seus 5 usuários mais frequentes. Som Notificações no aplicativo Sons no Aplicativo @@ -1776,12 +320,12 @@ Prévias no Aplicativo "Redefinir " "Redefinir Notificações " - Desfaz todas as configurações de notificação para todos os seus chats. + Desfaz todas as configurações de notificação personalizadas para os seus contatos, grupos e canais. Notificações e Sons Notificações Personalizadas Notificações popup Novas mensagens desse contato aparecerão em sua tela quando você não estiver no Telegram. - LED de notificação + Luz Cor Azul Vermelho @@ -1789,27 +333,23 @@ Verde Ciano Branco - Sépia - Escuro Rosa Tamanho da Fonte Tipo de Fonte Violeta Laranja - O LED é uma pequena luz piscante em alguns dispositivos, utilizada para indicar novas mensagens. - Nas prioridades mais altas as notificações irão funcionar mesmo que o seu celular esteja no modo Não Perturbe. + Luz piscante em alguns dispositivos usada para indicar novas mensagens. + Você receberá notificações de alta prioridade mesmo no modo Não Perturbe. Geral Silenciado Não silenciado Ativadas Desativadas Desativadas até %1$s - Padrão (ativadas) - Padrão (desativadas) Ativar Desativar Usuários Bloqueados - Usuários bloqueados não conseguem entrar em contato com você e não veem o seu Visto por Último. + Os usuários bloqueados não podem te enviar mensagens ou adicionar a grupos. Eles não verão suas fotos de perfil, stories, seu online e nem o visto pela última vez. Bloquear Usuário CHATS CONTATOS @@ -1821,6 +361,9 @@ Desfoque Movimento Alterar Papel de Parede + Trocar Cor do Nome + Aparência + Aparência Papel de Parede Redefinir Papéis de Parede Remove todos os papéis de parede enviados e restaura os pré-instalados. @@ -1830,21 +373,18 @@ Prévia do Papel de Parede Dica! Alguns papéis de parede ficam melhores com o efeito de \'Desfoque\'. Valeu! - Deslize para os lados para ver mais cores - Salmão é um peixe, não uma cor. Lúcio Bom dia! 👋 Você sabe que horas são? É manhã em Tóquio 😎 Toque em \'Definir\' para aplicar a imagem. - Aprecie a vista. - DEFINIR PAPEL DE PAREDE + Está ótimo Buscar por cor - Buscar Papéis de Parede + Buscar imagens Cor: - Brilho - Código hex da cor Cores + As cores se movem quando você envia mensagens + Animado Textura Escolha a textura Intensidade @@ -1860,24 +400,30 @@ Preto Cinza Branco - Selecionar uma cor - Enviar imagem - Selecionar imagem + Selecione uma Cor carregando imagem completa... Definir uma cor Mensagens - Enviar usando Enter + Enviar com Enter Eventos Contato entrou para o Telegram Mensagens Fixadas + Traduzir Mensagens + Mostrar o Botão Traduzir + Traduzir Chats Inteiros + Não Traduzir + %1$d Idioma + %1$d Idiomas + Escolher idiomas + O botão \'Traduzir\' aparecerá quando você tocar uma vez em uma mensagem de texto. + O Google pode ter acesso ao texto das mensagens que você traduzir. Idioma Personalizado Alterar idioma? Você irá aplicar um pacote de idioma (**%1$s**) que está %2$d%% concluído.\n\nIsso irá traduzir toda a interface. Você pode sugerir alterações na [plataforma de tradução].\n\nSe desejar, altere seu idioma novamente a qualquer momento nas Configurações. Você irá aplicar um pacote de idioma (**%1$s**) que está %2$d%% concluído.\n\nIsso irá traduzir toda a interface. Você pode sugerir alterações na [plataforma de tradução].\n\nVocê pode alterar o idioma a qualquer momento nas Configurações. Dados insuficientes - Idiomas não oficiais - Esse idioma não existe. + Idioma não encontrado. Você já está usando esse pacote de idiomas (**%1$s**). Você pode alterar seu idioma a qualquer momento em Configurações. Infelizmente esse pacote de idiomas personalizado (**%1$s**) não contém dados para o Telegram no Android. Por favor, note que o Suporte do Telegram é feito por voluntários. Tentaremos responder o mais rápido possível, mas pode levar um tempo.\n\nDê uma olhada na página de Perguntas Frequentes]]>: há dicas e soluções para a maioria dos problemas]]>. @@ -1891,8 +437,10 @@ https://telegram.org/faq/pt-br Política de Privacidade Termos de Serviço - Ao se cadastrar,\nvocê concorda com os *Termos de Serviço*. + Ao registrar-se, você aceita\nos *Termos de Serviço*. https://telegram.org/privacy + https://telegram.org/tos + https://telegram.org/tos/mini-apps Apagar pacote de idioma Deseja mesmo apagar o pacote de idioma %1$s? Arquivo de localização incorreto @@ -1904,14 +452,14 @@ Importar Contatos Primeiro nome Último nome - Cor do LED de notificação - Notificações Pop-up + Cor da Luz + Notificação Popup Sem pop-up Somente com a tela ligada Somente com a tela desligada - Sempre mostrar pop-up + Sempre mostrar Contador no Ícone - Ativado + Mostrar Contador Incluir Chats Silenciados Contar Mensagens Não Lidas Curta @@ -1944,37 +492,45 @@ Tamanho máximo do arquivo Pré-carregar próxima faixa Baixa a próxima faixa enquanto você escuta um arquivo de áudio. - Pré-carregar vídeos grandes + Pré-Carregar Vídeos Grandes Baixa os primeiros segundos (1-2 MB) de vídeos maiores que %1$s para reprodução instantânea. Ative esta opção se você quiser que mídias sejam baixadas automaticamente ao usar os dados móveis. Ative esta opção se você quiser que mídias sejam baixadas automaticamente quando em roaming. - Ative esta opção se você quiser que mídias sejam baixadas automaticamente ao usar a conexão Wi-Fi. + Ative esta opção se quiser que mídias sejam baixadas automaticamente ao usar a conexão Wi-Fi. Nos Dados Móveis Em Roaming No Wi-Fi Uso de dados Tipos de mídia As mensagens de voz serão sempre baixadas de forma automática porque são bastante leves. - Sem mídia + Desativado Sem GIFs + Download Automático + Você pode alterar suas configurações de download automático para reduzir o uso de dados móveis. + Você pode alterar suas configurações de download automático para reduzir o uso de dados quando conectado ao Wi-Fi. + Você pode alterar suas configurações de download automático para reduzir o uso de dados em roaming. Apagar Configurações de Download Redefinir configurações Tem certeza de que deseja apagar as configurações de download automático? Ao usar dados móveis - Quando conectado ao Wi-Fi + Quando conectado à Wi-Fi Quando em roaming GIFs Vídeos "Use os botões de volume para ativar o som. " O usuário ocultou a conta + Esta conta foi ocultada pelo usuário Reproduzir automaticamente Levantar para Falar + Grava mensagens de voz ao levar o telefone à orelha. + Levantar Para Ouvir + O som muda para o auricular ao levar o telefone à orelha. Salvar na Galeria Silenciado - Editar nome + Editar Nome + Trocar cor do perfil Personalizar Personalizado - Ativar Notificações Personalizadas Prioridade Assim como em Configurações Baixa @@ -1987,9 +543,10 @@ As pessoas poderão ver o seu novo número se tiverem ele salvo na agenda ou se as suas configurações de privacidade permitirem. Você pode alterar isso em Configurações > Privacidade e Segurança > Número de Telefone. Alterar Número Alterar número + Manter %1$s Novo Número - Vamos enviar um SMS com um código de confirmação para o seu novo número. - O número %1$s já possui uma conta no Telegram. Por favor, apague a outra conta antes de migrar para o novo número. + Seu novo número receberá um código de confirmação via chamada ou SMS. + O número %1$s já possui uma conta no Telegram. Por favor, apague a outra conta antes de usar esse número. Outro Desativada Ativado @@ -2011,23 +568,18 @@ Tem certeza de que deseja apagar todas as exceções? Nova Exceção Esta seção irá listar todos os chats que possuem configurações que não são padrão.\n\nVocê pode personalizar notificações para um chat abrindo o perfil do mesmo e escolhendo \'Notificações\'. - Nenhum %1$d / %2$s - Desativado - Frequência do Alerta de Som - %1$s em %2$s + Desativar Prévia de Links A prévia de links será gerada nos servidores do Telegram. Não armazenamos dados sobre os links que você envia. - Chats secretos - Navegador Interno - Abre links externos dentro do aplicativo. + Chats Secretos Compartilhamento Direto Mostra chats recentes no menu compartilhar. Emoji Emoji Grande - Usar emoji padrão do sistema Telegram para Android %1$s Menu de Depuração + Segure de novo para ver o menu de depuração Enviar Logs Enviar os Últimos Logs Limpar Logs @@ -2036,26 +588,44 @@ Importar Contatos Recarregar Contatos Redefinir Chats - Ler Todos os Chats - Pausar música ao gravar - Não pausar música ao gravar - Ativar teclado suave - Desativar teclado suave + Marcar todos os chats como lidos + Checar por atualização Ativar câmera no app - Desativar câmera no app + Desativar a Câmera No App Restaurar Contatos Importados Limpar cache de mídias enviadas Configurações de chamada + Limpar cache do WebView + Limpar cookies do WebView + Ativar depuração WebView + Desativar depuração WebView + Depuração ativada! + Depuração desativada! Você pode alterar o idioma depois nas Configurações. Escolha o seu idioma Outro + Colar + Virar + Toque no objeto para recortar + Recortar + Recortar Objeto + Desfazer Recorte + Desfazer + Adicionar Borda + Apagar + Restaurar + editar Colar Configurações de Proxy Detalhes do Proxy Proxy Conexões + Proxy adicionado. Adicionar Proxy Apagar Proxy? + Apagar Proxy + Tem certeza de que deseja apagar este proxy? + Tem certeza de que deseja apagar esses proxies? Usar Proxy Servidor Senha @@ -2065,54 +635,54 @@ Proxy SOCKS5 Proxy MTProto O proxy que você está usando não está configurado corretamente e será desabilitado. Por favor, encontre outro. - Proxy patrocinado - Esse canal é mostrado pelo seu servidor proxy. Para remover esse canal de sua lista de conversas, desative o proxy nas Configurações do Telegram. + Patrocinador do Proxy + Esse canal é mostrado pelo seu servidor proxy. Para remover esse canal de sua lista de conversas, desative o proxy em Configurações do Telegram > Dados e Armazenamento. Configurações de proxy SOCKS5. Configurações de proxy MTProto. Este proxy pode mostrar um canal patrocinado em sua lista de conversas. Isso não revela nada do seu tráfego no Telegram. - Usar proxy para chamadas + Usar Proxy Para Chamadas Servidores proxy podem diminuir a qualidade de suas chamadas. Ativar Atenção Seu dispositivo está quase sem espaço. Para esvaziar um pouco, você pode configurar o Telegram para manter apenas mídias recentes. - Remover mídias após - Nunca remover + Seu dispositivo está quase sem espaço livre. Você pode usar as configurações de cache para remover mídias desnecessárias – e baixar novamente os arquivos se precisar deles. + Gerenciar Cache Contatos Chats Privados - Conversas em Grupo + Grupos Canais Limitar por Tamanho até %1$s Streaming Streaming de Música e Vídeo - Alguns vídeos não podem ser transmitidos por stream. Ex.: todos os vídeos enviados via Android utilizando o Telegram 4.7 ou inferior. + Quando possível, o Telegram tocará vídeos e músicas imediatamente, sem esperar que os arquivos baixem completamente. Toque para alterar o número de telefone - Aparência - Stickers e Máscaras - Escolha esquemas de cores personalizados. Mostrar notificações de Todas as Contas - Desative essa opção se quiser receber notificações apenas da conta que você está usando no momento. + Desative esta opção se quiser receber notificações apenas da conta que você está usando no momento. Notificações de chats Chats Privados Grupos Canais + Stories + Reações Por favor note que **%1$s** são listados como exceções e não serão afetados por essa alteração. Por favor note que **%1$s** está listado como uma exceção e não será afetado por essa alteração. Ver Exceções - Notificações de grupos - Notificações de chats privados - Notificações de canais Toque para alterar Opções alternativas Adicionar outra conta Conecte outras contas do Telegram e alterne facilmente entre elas. Definir Senha de Bloqueio - Bloqueie o aplicativo com uma senha para que outras pessoas não possam abri-lo. + Bloqueie o app com uma senha; outras pessoas não poderão abrir. Limpar Cache + Limpar Selecionados Libere espaço em disco no seu dispositivo; sua mídia ficará na nuvem. + Limpando cache... + Por favor, fique nesta tela até o Telegram terminar a limpeza do seu cache. Alterar Número de Telefone Mova sua conta, chats e mídias para um novo número. + Seu número de telefone foi alterado para %1$s. Contatar Suporte Conte-nos sobre quaisquer problemas; sair geralmente não ajuda. Sair @@ -2130,35 +700,39 @@ Milhas Ler Código QR Escanear Código QR - Token inválido ou já expirado. Token de autenticação não encontrado Autenticação concluída https://desktop.telegram.org/ + https://web.telegram.org/ Baixe o Telegram em *desktop.telegram.org* no seu computador. Use o Telegram Desktop para obter o código QR. Escaneie o código QR para conectar à sua conta. - Esse código pode ser usado para permitir que alguém faça login em sua conta do Telegram.\n\nPara confirmar o login no Telegram, acesse Configurações > Dispositivos > Ler Código QR e escaneie o código. - O Telegram precisa de acesso à sua câmera para que você possa escanear códigos QR. + Esse código pode ser usado para permitir que alguém entre na sua conta do Telegram.\n\nPara confirmar o login no Telegram, acesse Configurações > Dispositivos > Ler Código QR e escaneie o código. + O **Telegram** precisa de acesso à câmera para você escanear Códigos QR. Toque em Configurações > Permissões, e ative a **Câmera**. Definir Foto do Perfil Atualizar o Telegram Versão %1$s • %2$s - Baixando %1$d%%... + Baixando... %1$d%% Atualizar Agora Baixar Agora Lembrar mais tarde **O que há de novo?**\n\n• Correções de bugs e melhorias. Link Primário O link não está mais ativo - Cancelar Encaminhamento - Selecionar outro chat - Deseja cancelar o encaminhamento ou enviar as mensagens para um chat diferente? + O que deseja fazer com %1$s do seu chat com **%2$s**? + O que deseja fazer com %1$s de **%2$s**? + Mostrar Nomes dos Autores + Ocultar Nomes dos Autores + Mostrar Nome do Autor + Ocultar Nome do Autor Ação ao deslizar na lista de chats + Escolha qual ação realizar quando você arrastar para a esquerda na lista de chats. Fixar Lido Arquivar Silenciar Apagar - Mudar Pasta + Trocar Pasta Ativar som Silenciar Apagar @@ -2169,624 +743,13 @@ Cancelar Bio atualizada. Nome atualizado. - Título do canal atualizado. + Nome do canal atualizado. Descrição do canal atualizada. - - Base de Dados Local - Limpar base de dados local - Deseja mesmo limpar as mensagens em cache? - Limpar o banco de dados local apagará todos os textos das mensagens em cache e compactará a base de dados para economizar espaço. O Telegram precisa de alguns dados para trabalhar, então o tamanho do banco não vai chegar a zero.\n\nEssa operação pode demorar alguns minutos para ser concluída. - Limpar Cache - Limpar - Calculando... - Documentos - Fotos - Mensagens voz e vídeo - Vídeos - Músicas - GIFs - Outros arquivos - Vazio - Manter Mídias - Fotos, vídeos e outros arquivos da nuvem que você **não acessou** durante esse período serão removidos deste dispositivo para economizar espaço em disco.\n\nTodas as mídias permanecerão na nuvem do Telegram e poderão ser baixadas novamente conforme necessário. - Sempre - Mensagens de voz - Mensagens de vídeo - - Telegram Passport - Informação Solicitada - Informação Fornecida - O que é o Telegram Passport? - Com o Telegram Passport, você pode se inscrever facilmente em sites e serviços que exigem verificação de identidade.\n\nSuas informações, dados pessoais e documentos são protegidos por criptografia de ponta a ponta. Ninguém, nem mesmo o Telegram, pode acessá-los sem sua permissão.\n\nVocê pode visitar nossas *Perguntas Frequentes* para saber mais. - https://telegram.org/faq/pt-br#passport - Por favor, crie uma senha para proteger seus dados pessoais com criptografia de ponta a ponta.\n\nEssa senha também será necessária sempre que você fizer login no Telegram em um novo dispositivo. - Criar uma senha - Apagar Passport - Apagar o Telegram passport - Deseja mesmo apagar seu Telegram Passaport? - Por favor, use apenas caracteres latinos. - Envie scans de uma tradução em Inglês certificada do seu passaporte. - Envie scans de uma tradução em Inglês certificada do seu passaporte interno. - Envie scans de uma tradução em Inglês certificada de sua carteira de motorista. - Envie scans de uma tradução em Inglês certificada de sua carteira de identidade. - Envie a digitalização de uma fatura de serviço - Envie a digitalização do seu extrato bancário - Envie a digitalização do seu contrato de aluguel - Envie um scan da página de registro do passaporte. - Envie uma digitalização do seu registro temporário. - Para confirmar seu endereço, envie uma digitalização ou foto do documento selecionado (todas as páginas). - Envie scans de uma tradução em Inglês certificada de sua conta de serviço. - Envie scans de uma tradução em Inglês certificada do seu extrato bancário. - Envie scans de uma tradução em Inglês certificada do seu contrato de aluguel. - Envie scans de uma tradução em Inglês certificada da página de registro do seu passaporte. - Envie scans de uma tradução em Inglês certificada do seu registro temporário. - Envie scans de uma tradução em Inglês certificada do documento selecionado. - Adicionar Fatura de Serviço - Adicionar Extrato Bancário - Adicionar Contrato de Aluguel - Endereço - Endereço Residencial - Informe o seu endereço - Enviar comprovante de endereço - Endereço - Rua - Rua - CEP - Cidade - Estado - País - Número de Telefone - Apagar número de telefone? - Digite seu número de telefone - Usar %1$s - Usa o mesmo número de telefone do Telegram. - Usa o mesmo email que no Telegram. - Ou insira um novo número de telefone - Nota: você receberá um código de confirmação no número de telefone que você fornecer. - Email - Apagar email? - Insira seu endereço de email - Aviso: você receberá um código de confirmação no endereço de email fornecido. - Código - Digite o código de confirmação que acabamos de enviar para %1$s. - Por favor, digite sua senha para acessar seus dados pessoais. - %1$s solicita acesso aos seus dados pessoais para que você assine os serviços deles. - Digite a senha do Telegram para descriptografar seus dados. - Você aceita a *Política de Privacidade de %1$s* e permite que @%2$s te envie mensagens. - Você está enviando seus documentos diretamente para %1$s e permitindo que %2$s envie mensagens para você. - AUTORIZAR - Adicionar Passaporte - Adicionar Passaporte Interno - Registro do Passaporte - Registro Temporário - Adicionar Carteira de Identidade - Adicionar Carteira de Motorista - Dados Pessoais - Preencha seus dados pessoais - Documento de Identidade - Envie um scan de seu passaporte ou outro documento de identificação - Envie um scan do seu passaporte - Envie um scan do seu passaporte interno - Envie um scan de sua carteira de identidade - Envie um scan da sua carteira de motorista - Dados Pessoais - Detalhes do Documento - Nome - Nome do meio - Sobrenome - Nome (latin) - Nome do meio (latin) - Último nome (latin) - Nome (%1$s) - Nome do meio (%1$s) - Último nome (%1$s) - Selecione o Gênero - Masculino - Feminino - Data de Nascimento - Gênero - Número do Documento - Validade - Nacionalidade - Residência - Selfie - Documentos Obrigatórios - Envie uma selfie segurando o documento - Tradução - Frente - Envie uma foto da frente do documento - Verso - Envie uma foto do verso do documento - Página Principal - Envie uma foto da página principal do documento - Selecione a Data de Validade - Não Expira - Nenhum - Selecione a Data de Nascimento - Apagar selfie? - O documento deve conter sua fotografia, nome e último nome, data de nascimento, número do documento, país de emissão e data de validade. - Deseja mesmo descartar todas as informações inseridas? - Descartar - Scans - Apagar Documento - Apagar - Deseja apagar esse scan? - Deseja apagar essa selfie? - Deseja apagar esse documento? - Tem certeza de que deseja apagar seus dados pessoais? - Deseja apagar os dados de endereço? - Apagar dados pessoais - Apagar dados de endereço - Apagar digitalização? - Enviar Scans - Enviar Scans Adicionais - Você não pode enviar mais do que %1$s arquivos. - Você pode enviar apenas arquivos de imagem. - Escaneie Seu Passaporte - Escaneie a zona legível por máquina do seu passaporte ou carteira de identidade para preencher os seus dados automaticamente. - Adicionar um Documento - Você ainda não tem documentos - Você pode adicionar seu número de telefone, endereço de email, documento de identidade ou endereço residencial. - Toque para corrigir erros. - %1$s ou %2$s - Seu nome - Seu nome em %1$s - Seu nome no idioma do seu país de residência (%1$s). - Por favor, confirme se este nome está correto:\n\n%1$s %2$s %3$s - Árabe - Azerbaijanês - Búlgaro - Bangla - Checo - Dinamarquês - Alemão - Divehi - Butanês - Grego - Espanhol - Estoniano - Persa - Francês - Hebraico - Croata - Húngaro - Armênio - Indonésio - Islandês - Italiano - Japonês - Georgiano - Khmer - Coreano - Lao - Lituano - Letão - Macedônio - Mongol - Malaio - Birmanês - Nepalês - Holandês - Polonês - Português - Romeno - Russo - Eslovaco - Esloveno - Tailandês - Turcomano - Turco - Ucraniano - Uzbeque - Vietnamita - - Sessões Ativas - Este dispositivo - Nenhuma outra sessão ativa - Você pode entrar no Telegram em outros celulares, tablets e computadores usando o mesmo número de telefone. Todos os seus dados serão sincronizados. - Sessões ativas - Controle as suas sessões de outros dispositivos. - Toque em uma sessão para terminar. - Terminar essa sessão? - Deseja terminar essa sessão? - Sai de todos os dispositivos, exceto este. - Terminar sessões - Terminar sessão - Terminar - Tem certeza de que deseja terminar todas as outras sessões? - Terminar todas as outras sessões - app não oficial - Nenhum login ativo. - Em sites compatíveis, você pode fazer o login com o Telegram. - Sites conectados - Entrou com o Telegram - Toque para desconectar de sua conta do Telegram. - Deseja mesmo desconectar %1$s? - Desconectar website - Desconectar websites - Desconectar - Bloquear %1$s - Desconectar Todos os Sites - Tem certeza de que deseja desconectar de todos os sites em que você logou usando o Telegram? - Em sites compatíveis, você pode fazer o login com o Telegram. - Tentativas incompletas de login - Os dispositivos acima não possuem acesso às suas mensagens. O código foi inserido corretamente, mas a senha não. - - Pastas - Configuração - Configurar Pastas - Criar Nova Pasta - Crie pastas para diferentes grupos de chats e alterne rapidamente entre elas. - Pastas Recomendadas - Todos - Todos - Reordenar - Editar pasta - Editar pastas - Contatos - Não Contatos - Grupos - Canais - Ignorar Silenciados - Ignorar Lidos - Editar - Apagar - Ignorar Arquivados - Não lidos - Remover Pasta - Silenciados - Lidos - Arquivados - Incluir Chats - Ignorar Chats - Incluir Chats - Ignorar Chats - Tipos de chat - Chats - Chats Incluídos - Chats Ignorados - Escolha os chats e os tipos de chat que aparecerão nesta pasta. - Escolha os chats e os tipos de chat que não aparecerão nesta pasta. - Chats Secretos - Bots - Adicionando chats - Aguarde um momento enquanto preenchemos esta pasta para você... - Pasta vazia - Não há nenhum chat nesta\npasta no momento. - Nova Pasta - Sem Chats - Contato - Não Contatos - Adicionar Exceção - Nome da pasta - Deseja mesmo remover a pasta? As suas conversas não serão apagadas. - Aplicar Alterações? - Você editou essa pasta. Aplicar alterações? - Criar Pasta? - Você não concluiu a criação da pasta ainda. Criar agora? - Criar - Mostrar Mais %1$d Chats - Mostrar Mais %1$d Chat - Mostrar Mais %1$d Chats - Mostrar Mais %1$d Chats - Mostrar Mais %1$d Chats - Mostrar Mais %1$d Chats - Remover exceção - Remover exceção - Deseja mesmo remover \"%1$s\" da lista de sempre ignorados? - Deseja mesmo remover \"%1$s\" da lista de sempre ignorados? - Deseja mesmo remover \"%1$s\" da lista de sempre ignorados? - Deseja mesmo remover \"%1$s\" da lista de sempre incluídos? - Deseja mesmo remover \"%1$s\" da lista de sempre incluídos? - Deseja mesmo remover \"%1$s\" da lista de sempre incluídos? - Pastas de chat - Abra *Configurações > Pastas* para organizar os seus chats em pastas. - Importante - Não lido - Adicionar à pasta - Remover da pasta - Escolha a pasta - **%1$s** adicionado a **%2$s** - **%1$s** adicionado a **%2$s** - **%1$s** adicionado a **%2$s** - **%1$s** removido de **%2$s** - **%1$s** removido de **%2$s** - **%1$s** removido de **%2$s** - Limite atingido - Desculpe, você não pode ignorar mais que 100 chats numa pasta. - - Senha de Bloqueio - Alterar Senha - Quando você define uma senha de bloqueio, o ícone de cadeado aparece na página de chats. Toque nele para bloquear e desbloquear o aplicativo.\n\nNota: se você esquecer a sua senha, terá de apagar e reinstalar o app. Todos os chats secretos serão perdidos. - PIN - Senha - Insira sua senha atual - Insira uma senha - Insira sua nova senha - Digite a sua senha. - Re-insira a sua nova senha - As senhas não são iguais - Bloqueio Automático - Solicita a senha se você ficar ausente por um tempo. - em %1$s - Desativado - Desbloquear com Impressão Digital - Por favor, confirme a sua digital. - Toque no sensor. - Digital não reconhecida, tente de novo. - Mostrar Conteúdo no Multitarefas - Se desativado, você não poderá fazer capturas de tela no aplicativo – porém, o conteúdo dos seus chats não será mostrado no multitarefas. - Isso ocultará o conteúdo de seus chats ou lista de chats do multitarefas, mas você não poderá tirar capturas de tela no Telegram.\n\nPode ser necessário reiniciar o aplicativo para que isso entre em vigor. - Muitas tentativas.\nPor favor, tente de novo em %1$s. - - janeiro - fevereiro - março - abril - maio - junho - julho - agosto - setembro - outubro - novembro - dezembro - Arquivos - Mídias - Mídia Compartilhada - Grupos - Links - Músicas - Voz - GIFs - Arquivos Compartilhados - Conteúdo Compartilhado - Links Compartilhados - Músicas Compartilhadas - Compartilhe fotos e vídeos neste chat e use qualquer um de seus dispositivos para acessá-las. - Compartilhe músicas neste chat e acesse-as de qualquer um de seus dispositivos. - Compartilhe arquivos e documentos nessa conversa e acesse-os de qualquer um de seus dispositivos. - Compartilhe links neste chat e os acesse de qualquer um de seus dispositivos - Compartilhe mensagens de voz nesta conversa e acesse de qualquer um de seus dispositivos. - Fotos e vídeos deste chat serão mostrados aqui. - Músicas deste chat serão mostradas aqui. - Arquivos e documentos deste chat serão mostradas aqui. - Links compartilhados desse chat serão mostrados aqui. - Mensagens de voz desta conversa serão mostradas aqui. - Os GIFs deste chat serão mostrados aqui. - - Mapa - Satélite - Híbrido - %1$s m de distância - %1$s km de distância - %1$s pés de distância - %1$s milhas de distância - %1$s pés - %1$s mi - mi - km - %1$s m - %1$s km - %1$s m de você - %1$s km de você - %1$s pés de você - %1$s milhas de você - Direções - Nenhum lugar encontrado. - Não há nada relacionado com **%1$s** perto de você. - Enviar Minha Localização Atual - Compartilhar em Tempo Real... - Enviar Localização em Tempo Real - Parar Compartilhamento - Parar compartilhamento - Deseja parar de compartilhar a sua localização em tempo real com **%1$s**? - Deseja parar de compartilhar a sua localização em tempo real com **%1$s**? - Deseja parar de compartilhar a sua localização em tempo real? - Atualizada enquanto você se move - Enviar localização selecionada - Localização - Local - Precisão de %1$s - %1$s de distância - Ou escolha um lugar - Toque para enviar este local - Localizações em Tempo Real - Localiz. em Tempo Real - por 15 minutos - por 1 hora - por 8 horas - atualizado - atualizado %1$s - atualizado agora - Você e %1$s - %1$s com %2$s - %1$s com %2$s - %1$s com %2$s - PARAR TODOS - Compartilhando a Localização com %1$s - Escolha por quanto tempo %1$s verá sua localização precisa. - Escolha por quanto tempo as pessoas nesse chat irão ver a sua localização em tempo real. - Ativar GPS - Por favor, ative seu GPS para acessar as funções com base em localização. - Ficar Visível - Mostrar o Seu Perfil? - Pessoas próximas poderão ver seu perfil e te enviar mensagens. Isso pode ajudar a encontrar novos amigos, mas também pode chamar muita atenção. Você pode parar de compartilhar o seu perfil a qualquer momento.\n\nSeu número de telefone ficará oculto. - Parar de Me Mostrar - Pessoas Próximas - Encontrar Pessoas Próximas - Adicione rapidamente pessoas próximas que estejam visualizando esta seção e descubra grupos locais.\n\nPor favor, ative o acesso à localização para ativar este recurso. - Pessoas próximas - Permitir Acesso - Adicione rapidamente pessoas próximas que estejam visualizando esta seção e descubra grupos locais.\n\nPor favor, ative os serviços de localização para ativar este recurso. - Ativar - Grupos próximos - Troque informações de contato com pessoas próximas e faça novos amigos. - Buscando por pessoas nas proximidades... - Criar um Grupo Local - Iniciar Grupo - Qualquer pessoa próxima a este local (vizinhos, colegas de trabalho ou de classe, participantes do evento, visitantes de um local) verá seu grupo na seção Pessoas Próximas. - Se você iniciar um grupo não relacionado com este local, poderá ficar restrito e não poderá criar novos grupos baseados em localização. - Definir Localização - Definir esta localização - As pessoas poderão encontrar seu grupo na seção \"Pessoas Próximas\". - Lugares por aqui - Alerta de proximidade - Notificar quando %1$s estiver a %2$s - Notificar quando alguém estiver a %1$s - Você já está mais perto que %1$s - Compartilhar Localização - Compartilhar - Para o alerta funcionar, compartilhe a sua localização em tempo real neste chat. - Alertar quando %1$s estiver perto - Alertar quando outros participantes estiverem perto - Alerta de proximidade ativado - Vamos te notificar quando %1$s estiver a %2$s de você. - Vamos te notificar quando alguém estiver a %1$s de você. - Alerta de proximidade cancelado - - Exibir em lista - Exibir em grade - Mostrar todas as mídias - Mostrar stickers - Mostrar todos os arquivos - Mostrar todos os GIFs - Toque para baixar - Abrir Arquivo... - Mostrar na conversa - Parar download - Salvar na galeria - %1$d de %2$d - **%1$d** de %2$d - Galeria - Todas as fotos - Todas as mídias - Todos os vídeos - Ainda não há fotos. - Por favor, baixe a mídia primeiro. - Por favor, aguarde o download completo do vídeo. - Vídeo não otimizado para streaming. Talvez você precise baixá-lo inteiro para assistir. - O app não conseguiu reproduzir o vídeo. Deseja abrir em um player externo? - Sem buscas recentes - Imagens - GIFs - Nenhum GIF recente - BUSCAR IMAGENS - BUSCA GLOBAL - BUSCAR GIFS - Buscar na Internet - Procurar GIFs - Toque para permitir o acesso à sua Câmera - Toque para permitir o acesso à sua Galeria - Recortar imagem - Realçar - Luzes - Contraste - Exposição - Calor - Saturação - Vinheta - Sombras - Granulado - Nitidez - Fade - Suavizar Pele - SOMBRAS - LUZES - TUDO - VERMELHO - VERDE - AZUL - Desativado - Linear - Radial - Apagar foto - Tem certeza de que deseja apagar esta foto? - Apagar vídeo - Tem certeza de que deseja apagar este vídeo? - Apagar GIF - Tem certeza de que deseja apagar esse GIF? - Deseja mesmo apagar essa foto para todos? - Deseja mesmo apagar esse vídeo para todos? - Deseja mesmo apagar esse GIF para todos? - Descartar mudanças? - Deseja mesmo descartar todas as alterações? - Limpar histórico de busca? - Deseja limpar o seu histórico de busca? - Limpar histórico de busca - Histórico de busca - Deseja mesmo remover \"%1$s\" do seu histórico de busca? - Deseja mesmo remover \"%1$s\" do seu histórico de busca? - Remover - Limpar - Adicionar legenda... - Legenda da Foto - Legenda do Vídeo - Legenda do GIF - Legenda - Apagar - Editar - Caneta - Marcador - Neon - Seta - Duplicar - Delineado - Regular - Fundo - Reiniciar - Original - Quadrado - Mostrar mídias em mensagens separadas - Mostrar mídias em uma só mensagem - Enviar sem agrupar - Enviar sem compressão - Escolha a capa para o seu vídeo de perfil - Usar no perfil - Abrir no editor - Esta é a foto principal do seu perfil agora. - Este é o vídeo principal do seu perfil agora. - Esta é a foto principal do canal agora. - Este é o vídeo principal do canal agora. - Esta é a foto principal do grupo agora. - Este é o vídeo principal do grupo agora. - Foto salva na galeria - Vídeo salvo na galeria - Foto salva em downloads - Vídeo salvo em downloads - GIF salvo em downloads - Arquivo salvo nas músicas - Arquivo salvo em downloads - %1$d arquivos salvos em downloads - Arquivo salvo em downloads - %1$d arquivos salvos em downloads - %1$d arquivos salvos em downloads - %1$d arquivos salvos em downloads - %1$d arquivos salvos em downloads - %1$d fotos salvas na galeria - Foto salva na galeria - %1$d fotos salvas na galeria - %1$d fotos salvas na galeria - %1$d fotos salvas na galeria - %1$d fotos salvas na galeria - %1$d vídeos salvos na galeria - Vídeo salvo na galeria - %1$d vídeos salvos na galeria - %1$d vídeos salvos na galeria - %1$d vídeos salvos na galeria - %1$d vídeos salvos na galeria - %1$d arquivos salvos nas músicas - Arquivo salvo nas músicas - %1$d arquivos salvos nas músicas - %1$d arquivos salvos nas músicas - %1$d arquivos salvos nas músicas - %1$d arquivos salvos nas músicas - %1$d itens salvos na galeria - Um item salvo na galeria - %1$d itens salvos na galeria - %1$d itens salvos na galeria - %1$d itens salvos na galeria - %1$d itens salvos na galeria + %1$s ainda é o seu número? + Mantenha seu número atualizado para garantir que você sempre consiga fazer login no Telegram. **Saiba mais.** + https://telegram.org/faq/pt-br#p-tenho-um-numero-novo-o-que-devo-fazer + Sim + Não Verificação em Duas Etapas Verificação em Duas Etapas @@ -2797,21 +760,36 @@ Configurar Senha Mostrar senha Configurar senha adicional - Você pode configurar uma senha que será solicitada quando você entrar em um novo dispositivo, após o código SMS. + É possível configurar uma senha que será solicitada quando você entrar em um novo dispositivo, após o código recebido por SMS. Sua senha + Sua senha + Sua conta está protegida pela Verificação em Duas Etapas.\nVocê ainda lembra da sua senha? + Sim, com certeza + Não tenho certeza Ativada Desativada + Insira a senha Digite a sua senha + Verificar Senha + Você ainda lembra da sua senha? + Perfeito! + Você lembra da sua senha. + Você inseriu uma senha incorreta. + Voltar às Configurações Por favor, digite sua senha para finalizar a transferência. - Insira uma senha + Digite sua senha para coletar. Insira uma nova senha - Digite a sua nova senha Digite a sua senha novamente + Nova Senha + Agora você pode definir uma nova senha que será usada para fazer login na sua conta. + Insira a nova senha + Repita a nova senha Email de recuperação Email de Recuperação + Você pode definir um email de recuperação para redefinir a sua senha e restaurar acesso à sua conta do Telegram. Seu email - Ver Código do Email - Por favor, confirme o seu endereço de email digitando o código que você acabou de receber em %1$s. + Seu novo e-mail + Seu e-mail foi alterado. Por favor, adicione seu email válido. Essa é a única forma de recuperar uma senha esquecida. Pular Atenção @@ -2819,215 +797,104 @@ Quase lá! Por favor, verifique o seu email para completar a configuração da Verificação em Duas Etapas (não esqueça da pasta spam). Tudo certo! - A sua senha para a verificação em duas etapas está ativada. A sua senha de Verificação em Duas Etapas foi alterada. Seu email de recuperação para a Verificação em Duas Etapas está ativo. Seu email de recuperação da Verificação em Duas Etapas foi alterado. Alterar senha - Desativar senha + Desativar Senha Definir Email de Recuperação Alterar email de recuperação Desativar senha Tem certeza de que deseja desativar a sua senha? - Deseja mesmo desistir de configurar a verificação em duas etapas? + Deseja mesmo desistir de configurar a Verificação em Duas Etapas? Deseja mesmo desistir de configurar o email de recuperação? + Cancelar redefinição de senha? Se você solicitar uma nova redefinição mais tarde, levará mais 7 dias. + SIM + NÃO + Cancelar redefinição Desistir da configuração - Atenção! Todos os dados salvos no seu Telegram Passport serão perdidos! + Todos os dados salvos no seu Telegram Passport serão perdidos. Dica da senha + Você pode criar uma dica opcional para sua senha. Dica Crie uma dica para sua senha + Cria uma dica para a sua senha. As senhas não são iguais + Repita a senha Desistir da configuração - Interromper - Desistir de configurar o email de recup. + Cancelar Configuração + Desistir de Configurar E-mail Desistir Desativar Para completar a Configuração da Verificação em Duas Etapas, verifique o seu email (verifique também a pasta de spam) e digite o código que te enviamos. - Para completar a configuração do email de recuperação, verifique %1$s (não se esqueça da pasta de spam) e digite o código que te enviamos. A dica deve ser diferente da sua senha - Endereço de email inválido. Por favor, verifique se você digitou corretamente e tente de novo. + Endereço de e-mail inválido. Por favor, tente de novo. Desculpe Como você não indicou um email de recuperação quando configurou a sua senha, as únicas opções restantes são lembrar a senha ou apagar a sua conta. + Como você não forneceu um e-mail de recuperação ao configurar sua senha, as opções restantes são lembrar sua senha ou esperar 7 dias até que sua senha seja redefinida. + Deseja mesmo redefinir a sua senha de Verificação em Duas Etapas? + Sua senha de Verificação em Duas Etapas foi redefinida. Redefinir Conta + REDEFINIR SENHA + Você pode redefinir a senha em %1$s. + Redefinir senha Código de recuperação - O código de recuperação foi enviado para o email fornecido:\n\n%1$s - Por favor, verifique o seu email e digite o código de 6 dígitos que te enviamos. + Enviamos um código de recuperação para o e-mail fornecido:\n\n%1$s + Verifique seu email e digite o código de 6 dígitos que enviamos para desativar sua senha da nuvem. Problemas ao acessar %1$s? Problemas ao acessar o seu email? Se você não puder acessar o seu email, as suas únicas opções são lembrar a senha ou apagar a sua conta. + Se você não tem acesso ao seu e-mail de recuperação, as suas opções restantes são lembrar a sua senha ou aguardar 7 dias até que ela seja redefinida. + Não é possível acessar %1$s? + Você solicitou recentemente uma redefinição de senha, mas isso foi cancelado. Aguarde %1$s antes de solicitar novamente. APAGAR MINHA CONTA - Se você prosseguir e apagar a sua conta, você perderá todos os seus chats e mensagens, assim como todas as suas mídias e arquivos compartilhados. Aviso - Essa ação não pode ser desfeita.\n\nSe você apagar a sua conta, todas as suas mensagens e chats serão apagados. + Esta ação não pode ser desfeita. Você perderá todos os seus chats, mensagens, mídia e arquivos do Telegram se continuar redefinindo sua conta. Apagar conta Senha Você ativou a Verificação em Duas Etapas e a sua conta está protegida com uma senha adicional. + A Verificação em Duas Etapas está ativada. A sua conta está protegida com uma senha adicional. Esqueceu a senha? Recuperação de Senha Código Senha desativada - Reenviar código - Código de verificação + Reenviar Código + Código de Verificação Digite o código O código de verificação foi enviado para o seu email. Você ativou a Verificação em Duas Etapas.\nVocê precisará da senha que configurou aqui para fazer o login em sua conta do Telegram. - - Dados e Armazenamento - Uso de disco e de rede - Uso do Armazenamento - Uso de Dados - Armazenar Em - Móvel - Wi-Fi - Roaming - Mensagens e outros dados - Enviados - Recebidos - Bytes enviados - Bytes recebidos - Arquivos - Chamadas - Chamadas Efetuadas - Chamadas Recebidas - Tempo total - Total - Redefinir Estatísticas - Uso da rede desde %1$s - Redefinir estatísticas - Deseja redefinir as estatísticas de uso? - - Privacidade e Segurança - Privacidade - Último Acesso e Online - Fotos de Perfil - Quem pode ver minhas fotos e vídeos de perfil? - Você pode restringir quem pode ver sua foto de perfil com precisão granular. - Você pode adicionar usuários ou grupos inteiros como exceções que substituirão as configurações acima. - Número de Telefone - Quem pode ver meu número? - Quem pode me encontrar pelo meu número? - Usuários que já tiverem o seu número salvo nos contatos também irão ver no Telegram. - Usuários que adicionarem o seu número aos contatos deles irão te ver no Telegram apenas se estiverem nos seus contatos também. - Você pode adicionar usuários ou grupos inteiros como exceções que substituirão as configurações acima. - Mensagens Encaminhadas - Link para sua conta - É um link se permitido pelas configurações abaixo - Não é um link para sua conta - Quem pode adicionar um link para minha conta ao encaminhar minhas mensagens? - As mensagens que você enviar não terão um link para a sua conta quando outras pessoas encaminharem. - Você pode adicionar usuários ou grupos inteiros como exceções que substituirão as configurações acima. - Reinhardt, precisamos encontrar músicas novas. - Ponta a Ponta - Ponta a Ponta em Chamadas - Usar Ponta a Ponta com - Bots e sites - Limpar Dados de Pagamento e Entrega - Limpar informações de pagamento - Tem certeza de que deseja limpar as suas informações de pagamento e entrega? - Apagar seus dados de entrega e instruir todos os provedores de pagamento a remover seus cartões salvos? Note que o Telegram nunca armazena seus dados do cartão. - Dados de pagamento apagados. - Dados de entrega apagados. - Dados de pagamento e entrega apagados. - Sites em que você logou usando o Telegram. - Dados de entrega - Dados de pagamento - Apagar Todos os Rascunhos da Nuvem - Todos - Meus Contatos - Ninguém - Todos (-%1$d) - Contatos (+%1$d) - Contatos (-%1$d) - Contatos (-%1$d, +%2$d) - Ninguém (+%1$d) - Todos - Meus Contatos - Ninguém - Todos (-%1$d) - Meus Contatos (+%1$d) - Meus Contatos (-%1$d) - Meus Contatos (-%1$d, +%2$d) - Ninguém (+%1$d) - Segurança - Autodestruição da conta - Novos chats de usuários desconhecidos - Arquivar e Silenciar - Automaticamente arquiva e silencia novas conversas, grupos e canais de não contatos. - Apagar minha conta - Apagar minha conta se inativa por - Se inativa por - Se você não acessar sua conta ao menos uma vez nesse período, sua conta será apagada junto com todas as suas mensagens e contatos. - Quem pode ver o seu Último Acesso? - Definir exceções - Adicionar às exceções - Você não poderá ver o Último Acesso ou status online das pessoas com quem você não compartilha o seu. Em vez disso, você verá horários aproximados (recentemente; há uma semana; há um mês). - Você alterou algumas configurações de privacidade. Gostaria de aplicar? - Sempre Mostrar Para - Nunca Mostrar Para - Você pode adicionar usuários ou grupos inteiros como exceções que substituirão as configurações acima. - Sempre Mostrar - Nunca Mostrar - Adicionar Usuários - Desculpe, muitas solicitações. Impossível alterar os ajustes de privacidade agora, por favor aguarde. - Toque e segure no usuário para remover. - Grupos e Canais - Quem pode me adicionar em grupos? - Você pode restringir quem pode te adicionar em grupos ou canais com precisão. - Sempre Permitir - Nunca Permitir - Esses usuários poderão ou não te adicionar em grupos e canais, dependendo de suas configurações. - Altera quem pode te adicionar em grupos ou canais. - Desculpe, você não pode adicionar esse usuário a grupos devido às configurações de privacidade dele. - Desculpe, você não pode adicionar esse usuário a canais devido às configurações de privacidade dele. - Desculpe, você não pode criar um grupo com esses usuários devido às configurações de privacidade deles. - Desativar a conexão de ponta a ponta irá transmitir as chamadas através dos servidores do Telegram para evitar que o seu endereço de IP seja revelado, mas poderá diminuir a qualidade do áudio e do vídeo. - Apagar Contatos Sincronizados - Sugerir Contatos Frequentes - Exibe as pessoas com quem você mais conversa no topo da seção de busca para acesso rápido. - Desativar sugestões - Isso apagará todos os dados sobre as pessoas com quem você conversa frequentemente, e também os bots inline que você provavelmente usaria. - Adicionar Usuários ou Grupos - Exceções - Ninguém - Apagar contatos - Fazer isso removerá seus contatos dos servidores do Telegram.\n\nSe a opção \"**Sincronizar Contatos**\" estiver ativada, os contatos serão sincronizados novamente. - - Enviando vídeo... - Enviando GIF... - - bot - Compartilhar - Adicionar ao grupo - Configurações - Ajuda - tem acesso às mensagens - não tem acesso às mensagens - O que este bot pode fazer? - COMEÇAR - REINICIAR - Parar bot - Reiniciar bot + Escolha um email de login + Você receberá os códigos de login do Telegram por e-mail e não por SMS. Insira um e-mail ao qual você tenha acesso. + Insira o Novo E-mail + Verifique seu e-mail %1$s (não se esqueça da pasta de spam) e digite o código que acabamos de enviar. + Verifique Seu E-mail + Digite o código que enviamos para seu e-mail %1$s. + Verifique Seu Novo E-mail + Insira o código que enviamos para seu novo e-mail %1$s. + ou Pronto Abrir Salvar Cancelar + Diminuir Fechar Alterar Adicionar + Adicionado Editar Enviar Ligar Videochamada Copiar + Restringir + Banir + Renomear Apagar Iniciar - Apagar e parar Encaminhar Tentar novamente - Da Câmera - Da Galeria - Remover foto + Remover Foto Aplicar OK Parar @@ -3036,9 +903,7 @@ Criar Link CORTAR Atualizar aplicativo - ATUALIZAR AGORA ATUALIZAR - DEPOIS Aceitar Concordo Rejeitar @@ -3048,10 +913,10 @@ Negar e Apagar Próximo Ativar + Relatar Falso Positivo Você entrou no grupo via link de convite un1 apagou o link de convite un2 - un1 criou o link de convite un2 un1 editou o link de convite un2 para un3 un1 alterou o volume de un2 para %1$d%% un1 revogou o link de convite un2 @@ -3063,12 +928,16 @@ un1 desativou o timer de exclusão automática Você desativou o timer de exclusão automática un1 entrou no grupo via link de convite + un1 entrou no grupo via link de convite de pasta + un1 entrou no canal via link de convite + un1 entrou no canal via um link de convite de pasta. un1 removeu un2 + un1 reembolsou %1$s un1 saiu do grupo un1 adicionou un2 un1 removeu a foto do grupo un1 alterou a foto do grupo - un1 alterou o vídeo do grupo + un1 alterou a foto do grupo un1 alterou o nome do grupo para un2 un1 criou o grupo Você removeu un2 @@ -3080,7 +949,7 @@ un1 marcou %1$s em un2 Você removeu a foto do grupo Você alterou a foto do grupo - Você alterou o vídeo do grupo + Você alterou a foto do grupo Você alterou o nome do grupo para un2 Você criou o grupo un1 removeu você @@ -3093,15 +962,20 @@ un1 está agora a %1$s de un2 un1 convidou você para este grupo un1 convidou você para este canal - un1 iniciou um chat de voz - Você iniciou um chat de voz - Chat de voz iniciado - Chat de voz agendado para %1$s - Chat de voz encerrado (%s) - un1 convidou un2 para o chat de voz - Você convidou un2 para o chat de voz - un1 convidou você para o chat de voz - Você permitiu que o bot te envie mensagens ao fazer o login em %1$s. + un1 iniciou um chat de vídeo + Você iniciou um chat de vídeo + Chat de vídeo agendado para %1$s + Transmissão ao vivo iniciada + Transmissão ao vivo agendada para %1$s + Transmissão ao vivo encerrada (%s) + un1 encerrou o chat de vídeo (%s) + Você encerrou o chat de vídeo (%s) + un1 convidou un2 para o chat de vídeo + Você convidou un2 para o chat de vídeo + un1 convidou você para o chat de vídeo + Você permitiu que o bot te envie mensagens ao fazer o login em %1$s + Você permitiu que o bot te envie mensagens ao fazer login em \"%1$s\". + Você permitiu que este bot enviasse mensagens para você no app web dele. %1$s recebeu os seguintes documentos: %2$s Dados pessoais Endereço @@ -3116,56 +990,64 @@ Contrato de Aluguel Número de Telefone Endereço de Email - Esta mensagem não é compatível com a sua versão do Telegram. Atualize o aplicativo para visualizar: https://telegram.org/update + Esta mensagem não é compatível com a sua versão do Telegram. Por favor, atualize para a versão mais recente. + Sua versão está atualizada. Foto Vídeo Foto Autodestrutiva Vídeo Autodestrutivo - A foto expirou - O vídeo expirou + Foto expirada + Vídeo expirado + Mensagem de Vídeo Expirada + Voz expirada GIF Localização - Localização em Tempo Real + Localização Ao Vivo Contato + Respostas Arquivo Sticker Mensagem de voz Mensagem de vídeo + Mensagem de Voz de Uso Único + Mensagem de Vídeo de Uso Único Jogar Você Você fez uma captura de tela! un1 realizou uma captura da tela! - - Limite Atingido - Chats inativos - canal, inativo por %1$s - %1$s, inativo por %2$s - Sair de %1$s - Muitos grupos e canais - Desculpe, você faz parte de muitos\ngrupos e canais.\nPor favor, saia de alguns antes de\nentrar em um novo. - Desculpe, você faz parte de muitos grupos e canais. Por favor, saia de alguns antes de criar outro. - Desculpe, você faz parte de muitos grupos e canais.\nPor motivos técnicos, você precisa sair de alguns antes de alterar essa configuração em seus grupos. - Desculpe, o usuário escolhido é membro de muitos grupos e canais. Por favor, peça que ele saia de algum primeiro. + Álbum + Desculpe, você não pode fixar mais de %d tópicos ao topo. Aviso! Esta ação **apagará todas as mensagens** neste chat para **ambos** os participantes. + Aviso! Isto **apagará todas as mensagens** deste canal. Atenção! Isso **apagará todas as mensagens** nesse chat. Apagar Tudo - Parar de carregar? + Parar de carregar? + Deseja cancelar o carregamento? Atualize o Telegram Desculpe, seu Telegram está desatualizado e não consegue atender a este pedido. Por favor, atualize o Telegram. Número de telefone inválido. Por favor, verifique o número e tente de novo. Por favor, entre com sua conta do Telegram para usar o Telegram Passport. Este número de telefone está banido. - Código expirado. Por favor, tente entrar novamente. + Código expirado. Por favor, comece de novo. + Código incorreto + Impossível Terminar + Por segurança, você não pode alterar seu número de telefone usando um dispositivo que conectou recentemente. Use uma conexão anterior ou aguarde algumas horas. + Esse domínio de e-mail não é permitido. + Código do e-mail inválido. + Endereço de e-mail inválido. + E-mail de Login + O endereço de e-mail será usado sempre que você fizer login na sua conta do Telegram a partir de um novo dispositivo. + Trocar E-mail Muitas tentativas. Por favor, tente depois. - Muitas tentativas. Por favor, tente novamente em %1$s. + Muitas tentativas. Por favor, tente de novo em %1$s. Código inválido. Por favor, tente de novo. Desculpe, você apagou e recriou a sua conta muitas vezes recentemente. Aguarde alguns dias antes de tentar novamente. - Nome inválido + O nome não é permitido, por favor tente outro. Desculpe, este sobrenome não pode ser usado Carregando... Você não possui um reprodutor de vídeo, instale um para continuar - Por favor, envie um email descrevendo o problema para sms@telegram.org. + Por favor, envie um email descrevendo o problema para reports@stel.com. Você não possui um aplicativo que suporte o tipo de arquivo \'%1$s\', por favor instale um para continuar Esse usuário ainda não tem o Telegram, deseja enviar um convite? Tem certeza? @@ -3173,31 +1055,31 @@ Deseja adicionar **%1$s** ao grupo **%2$s**? Número de mensagens antigas para encaminhar: Adicionar %1$s ao grupo? - Adicionar %1$s - Adicionar membro + Adicionar membro + Adicionar %1$d membros Deseja mesmo adicionar %1$s ao **%2$s**? - Deseja mesmo adicionar %1$s ao **%2$s**? - Mostrar últimas 100 mensagens para os novos membros + Tem certeza de que deseja adicionar o membro a **%2$s**? + Tem certeza de que deseja adicionar %1$d membros a **%2$s**? + Mostrar últimas 100 mensagens para novos membros Mostrar últimas 100 mensagens para **%1$s** Deseja enviar essa mensagem para **%1$s**? Deseja enviar esse jogo para **%1$s**? Deseja enviar esse contato para **%1$s**? - Tem certeza de que desejar sair?\n\nNote que você pode usar o Telegram em todos os seus dispositivos ao mesmo tempo.\n\nLembre-se, sair apaga todos os seus Chats Secretos. + Tem certeza de que desejar sair?\n\nIsso apagará todos os seus Chats Secretos.\n\nVocê pode usar o Telegram em todos os seus dispositivos ao mesmo tempo e várias contas no mesmo app. Apagar %1$s Limpar %1$s Limpar cache para %1$s - Tem certeza de que deseja apagar os chats selecionados? - Tem certeza de que deseja limpar o histórico dos chats selecionados? + Tem certeza de que deseja apagar esses chats? + Tem certeza de que deseja limpar o histórico desses chats? Apagar todo os textos e mídias armazenadas em cache dos chats selecionados? Tem certeza de que deseja apagar e sair do grupo? Deseja apagar e sair do canal? Tem certeza de que deseja apagar e sair do grupo **%1$s**? - Tem certeza de que deseja apagar esse chat? - Tem certeza de que deseja apagar o chat com **%1$s**? + Deseja apagar permanentemente essa conversa? + Apagar permanentemente o chat com **%1$s**? Tem certeza de que deseja apagar o chat com **%1$s** e bloquear? Tem certeza de que deseja apagar as **Mensagens Salvas**? Tem certeza de que deseja apagar o histórico do chat secreto com **%1$s**? - Tem certeza de que deseja apagar o histórico do chat **%1$s**? Apagar rascunhos da nuvem Deseja mesmo apagar todos os seus rascunhos da nuvem? Compartilhar a Sua Localização? @@ -3207,6 +1089,8 @@ Este bot gostaria de saber a sua localização sempre que você o usar. Isso pode ser utilizado para mostrar resultados baseados em localização. Compartilhar seu número de telefone? O bot saberá seu número de telefone. Isso pode ser útil para a integração com outros serviços. + **%s** saberá seu número de telefone. Isso pode ser útil para integração com outros serviços. + Isso também desbloqueará o bot. Deseja compartilhar o seu número de telefone %1$s com **%2$s**? Tem certeza de que deseja compartilhar seu número de telefone? Deseja mesmo bloquear **%1$s**? @@ -3214,22 +1098,27 @@ Tem certeza de que deseja apagar esse contato? Chat secreto Tem certeza de que deseja iniciar um chat secreto? - Tem certeza de que deseja cancelar o registro? + Tem certeza de que deseja parar o registro? Deseja parar o processo de verificação? Tem certeza de que deseja limpar o histórico do chat com **%1$s**? - Tem certeza de que deseja limpar o histórico do chat secreto com **%1$s**? + Isso apagará todas as mensagens para você e **%1$s**. Tem certeza? Tem certeza de que deseja limpar o histórico do chat em **%1$s**? + Deseja limpar o histórico do canal em **%1$s**? Tem certeza de que deseja apagar todas as mensagens neste chat? - Tem certeza de que deseja limpar as **Mensagens Salvas**? + Tem certeza de que deseja limpar as **Mensagens Salvas**? Não é possível desfazer isso. Apagar todos os textos e mídias em cache desse canal? Apagar todo o texto e mídia em cache desse grupo? Apagar %1$s + Apagar %1$s Apagar mensagem + Apagar mensagem Você também pode apagar %1$s das caixas de entrada de outros membros do grupo marcando \"Apagar para todos os membros\". Você também pode apagar %1$s enviadas das caixas de entrada de outros membros do grupo marcando \"Apagar minhas mensagens\". Você também pode apagar %1$s que você enviou da caixa de entrada de **%2$s** marcando \"Apagar minhas mensagens\". + Tem certeza que deseja apagar essa mensagem das Mensagens Salvas? Tem certeza de que deseja apagar essa mensagem? Tem certeza de que deseja apagar essas mensagens? + Tem certeza que deseja apagar essas mensagens? Tem certeza de que deseja apagar essa mensagem para todos? Tem certeza de que deseja apagar essas mensagens para todos? Apagar Minhas Mensagens @@ -3239,7 +1128,9 @@ Deseja enviar essa mensagem para **%1$s**? Deseja enviar esse jogo para **%1$s**? Deseja enviar esse contato para **%1$s**? - Não existe conta no Telegram com esse nome de usuário. + Nome de usuário não encontrado. + Não há conta do Telegram com esse número de telefone. + Nenhuma pasta encontrada. Esse bot não pode entrar em grupos. Ativar a prévia estendida de links em Chats Secretos? Note que a prévia é gerada nos servidores do Telegram. Os bots inline são fornecidos por desenvolvedores terceiros. Para o bot funcionar, os símbolos que você digita depois do nome de usuário do bot são enviados para o respectivo desenvolvedor. @@ -3250,120 +1141,57 @@ Por favor, permita que o Telegram receba chamadas. Assim podemos confirmar o seu número de telefone automaticamente. Você não tem permissão para isso. Desculpe, você bloqueou este usuário ou bot e por isso não pode adicioná-lo a grupos. Desbloqueie para prosseguir. - ENTRAR NO GRUPO - Desculpe, você não pode adicionar o usuário como admin porque ele não está no grupo e você não tem permissão para adicioná-lo. - Você não pode adicionar esse usuário como admin porque ele está na lista de Usuários Removidos e você não pode desbaní-lo. - Desculpe, você não pode adicionar esse usuário porque ele está na lista de Usuários Removidos e você não pode removê-lo de lá. + Você não pode adicionar esse usuário como admin porque ele não é membro deste grupo e você não tem permissão para adicioná-lo. + Você não pode adicionar esse usuário como admin porque ele está na lista de Usuários Removidos e você não tem permissão para desbani-lo. + Desculpe, você não pode adicionar essa pessoa, pois ela está na lista de Usuários Removidos e você não pode removê-la de lá. Você não pode banir esse usuário porque ele é um admin do grupo e você não possui permissão para rebaixá-lo. - Desculpe, os admins do grupo te restringiram do envio de stickers. - Desculpe, os admins do grupo te restringiram do envio de mídias. - Desculpe, os admins deste grupo restringiram você de enviar enquetes. + Admins do grupo restringiram você de enviar stickers. + Desculpe, os admins deste grupo restringiram você de enviar mídias. + Desculpe, os admins deste grupo restringiram você de enviar fotos. + Desculpe, os admins deste grupo restringiram você de enviar vídeos. + Admins do grupo restringiram você de enviar enquetes. + Desculpe, os admins deste grupo restringiram você de enviar mensagens de voz. + Desculpe, os admins deste grupo restringiram você de enviar mensagens de vídeo. + Desculpe, os admins deste grupo restringiram você de enviar documentos. + Desculpe, os admins deste grupo restringiram você de enviar músicas. Desculpe, o envio de stickers não é permitido neste grupo. + Desculpe, o envio de fotos não é permitido neste grupo. + Desculpe, o envio de vídeos não é permitido neste grupo. Desculpe, o envio de mídia não é permitido neste grupo. - Desculpe, o envio de enquetes não é permitido neste grupo. - Sentimos muito, mas isso significa que você não pode se cadastrar no Telegram.\n\nAo contrário de outros, não utilizamos seus dados para segmentação de anúncios ou outros fins comerciais. O Telegram armazena apenas as informações necessárias para funcionar como um serviço em nuvem rico em recursos. Você pode ajustar como usamos seus dados (ex. apagar contatos sincronizados) nas configurações de Privacidade e Segurança.\n\nSe de forma geral você não concorda com os requisitos modestos do Telegram, não poderemos oferecer nosso serviço. + Desculpe, não é permitido postar enquetes neste grupo. + Desculpe, o envio de mensagem de voz não é permitido neste grupo. + Desculpe, o envio de mensagens de vídeos não é permitido neste grupo. + Desculpe, o envio de documentos não é permitido neste grupo. + Desculpe, o envio de músicas não é permitido neste grupo. + Desculpe, você não pode enviar mensagens de voz para esta pessoa devido às configurações de privacidade dela. + Desculpe, você não pode enviar mensagens de vídeo para esta pessoa devido às configurações de privacidade dela. + Não pode encaminhar + Sentimos muito, mas isso significa que você não pode se cadastrar no Telegram.\n\nAo contrário de outros apps, não utilizamos seus dados para segmentação de anúncios ou outros fins comerciais. O Telegram armazena apenas as informações necessárias para funcionar como um serviço em nuvem rico em recursos. Você pode ajustar como usamos seus dados (ex. apagar contatos sincronizados) nas configurações de Privacidade e Segurança.\n\nSe de forma geral você não concorda com os requisitos modestos do Telegram, não poderemos oferecer nosso serviço. Confirmação de Idade Política de Privacidade e Termos de Serviço Toque em Concordo para confirmar que você tem mais de %1$s anos. - Sentimos muito, mas isso significa que devemos nos separar aqui. Ao contrário de outros, não utilizamos seus dados para segmentação de anúncios ou outros fins comerciais. O Telegram armazena apenas as informações necessárias para funcionar como um serviço em nuvem rico em recursos. Você pode ajustar como usamos seus dados nas configurações de Privacidade e Segurança.\n\nSe de forma geral você não concorda com os requisitos modestos do Telegram, não será possível te fornecer nossos serviços. Você pode apagar sua conta agora ou dar uma olhada e apagá-la mais tarde se achar que não está satisfeito com o modo como usamos seus dados. - Atenção, isso apagará irreversivelmente sua conta do Telegram, juntamente com todos os dados armazenados na nuvem do Telegram.\n\nImportante: em vez de perder tudo, você pode Cancelar agora e exportar seus dados antes de apagar a conta. (Para fazer isso, abra o Telegram Desktop atualizado e vá em Configurações > Exportar Dados do Telegram.) + Infelizmente, não há outras opções. Ao contrário de outros aplicativos, o Telegram não usa dados do usuário para direcionamento de anúncios ou outros fins comerciais. O Telegram armazena apenas as informações necessárias para funcionar como um serviço de nuvem rico em recursos. Você pode ajustar como seus dados são usados nas configurações de Privacidade e Segurança.\n\nSe você não se sentir confortável com as necessidades modestas do Telegram, não será possível fornecermos a você esse serviço. + Atenção, isso apagará irreversivelmente sua conta do Telegram e todos os dados armazenados na nuvem do Telegram.\n\nImportante: em vez de perder tudo, você pode Cancelar agora e exportar seus dados primeiro. (Para fazer isso, abra o Telegram Desktop atualizado e vá em Configurações > Exportar Dados do Telegram.) - Para que você se conecte aos seus amigos em todos os dispositivos, seus contatos serão sincronizados continuamente com os servidores fortemente criptografados do Telegram. - O Telegram precisa de acesso ao armazenamento para que você possa enviar e salvar fotos, vídeos, músicas e outras mídias. - O Telegram precisa de acesso ao microfone para que você possa enviar mensagens de voz. - Telegram precisa acessar seu microfone para que você possa gravar vídeos. - O Telegram precisa de acesso à câmera para que você possa tirar fotos e vídeos. Por favor, ative a permissão nas Configurações. + O **Telegram** precisa de acesso ao armazenamento para enviar e salvar fotos, vídeos, músicas e outros documentos. Toque em Configurações > Permissões e ative **Arquivos e mídia**. + O **Telegram** precisa de acesso ao seu microfone para enviar mensagens de voz. Toque em Configurações > Permissões, e ative **Microfone**. + O **Telegram** precisa de acesso ao seu microfone para você enviar mensagens de voz. Toque em Configurações > Permissões, e ative **Microfone**. + O **Telegram** precisa de acesso à câmera para tirar fotos e gravar vídeos. Toque em Configurações > Permissões, e ative **Câmera**. + O **Telegram** precisa de acesso ao seu microfone e à câmera para enviar mensagens de vídeo. Toque em Configurações > Permissões, e ative **Microfone** e **Câmera**. Telegram precisa acessar sua localização para que você possa compartilhar com seus amigos. - O Telegram precisa acessar sua localização + O Telegram precisa acessar sua localização para você poder adicionar o widget de tempo aos seus stories. + O **Telegram** precisa acessar a localização para você compartilhar com seus amigos. Toque em Configurações > Permissões e ative **Localização**. + O **Telegram** precisa acessar a sua localização para você obter direções. Toque em Configurações > Permissões e ative **Localização**. + O **Telegram** precisa acessar os seus contatos para você poder compartilhar com os seus amigos. Toque em Configurações > Permissões e ative **Contatos**. + O **Telegram** precisa de acesso ao armazenamento para enviar a foto de perfil. Toque em Configurações > Permissões e ative **Arquivos e mídia**. + O **Telegram** precisa de acesso aos arquivos de música para adicioná-los ao seu story. Toque em Configurações > Permissões e ative **Música e Áudio**. Para reproduzir vídeos no modo PiP, o Telegram precisa de acesso para aparecer sobre outros apps. O modo flutuante permite usar o recurso \"Aperte para Falar\" e também ver quem está falando até mesmo quando você estiver fora do Telegram. - CONFIGURAÇÕES + Configurações Por favor, permita que o Telegram seja mostrado na tela de bloqueio para que as chamadas possam funcionar corretamente. - Para enviar a sua localização em tempo real neste chat, o Telegram precisa de acesso contínuo à sua localização, inclusive enquanto o app estiver em segundo plano.\n\nO Telegram acessará a sua localização somente pela duração que você escolher e você pode parar de compartilhar a qualquer momento. Não usaremos a sua localização para nenhum outro motivo além de compartilhar neste chat. + Para enviar a sua localização ao vivo neste chat, o Telegram precisa de acesso contínuo à sua localização, inclusive enquanto o app estiver em segundo plano.\n\nO Telegram acessará a sua localização somente pela duração que você escolher e você pode parar de compartilhar a qualquer momento. Não usaremos a sua localização para nenhum outro motivo além de compartilhar neste chat. Picture-in-Picture - Chat de voz flutuante - - Crescimento - Inscritos - Interações - Visualizações por origem - Novos inscritos por origem - Idiomas - Posts recentes - Reduzir zoom - Interações da Leitura Rápida - Carregando estatísticas... - Por favor, aguarde um momento enquanto geramos os gráficos. - Visualizações por horas (UTC) - Deslize para cima e grave automaticamente - Notificações - Armazenamento - Livre • %s - Limpar o Cache do Telegram - Visão Geral - Visualizações por Post - Compartilhamentos por Post - Notificações Ativadas - Limpar Base de Dados Local - Cache do Telegram • %s - %s Base de Dados Local - %s liberados no seu dispositivo! - %s Outros Apps - Membros do grupo - Novos membros por origem - Idioma principal dos membros - Mensagens - Ações - Membros - Mensagens - Membros que visualizam - Membros que postam - %1$d caracteres - %1$d caractere - %1$d caracteres - %1$d caracteres - %1$d caracteres - %1$d caracteres - %1$d exclusões - %1$d exclusão - %1$d exclusões - %1$d exclusões - %1$d exclusões - %1$d exclusões - %1$d bans - %1$d ban - %1$d bans - %1$d bans - %1$d bans - %1$d bans - %1$d restrições - %1$d restrição - %1$d restrições - %1$d restrições - %1$d restrições - %1$d restrições - %1$d convites - %1$d convite - %1$d convites - %1$d convites - %1$d convites - %1$d convites - Top admins - Top membros - Top promotores - %s por mensagem - Dias da semana - Ver Mensagens - Ver Perfil - Hoje - Ontem - Visualizações - Compartil. Públicos - Compartil. Privados - Ver Estatísticas - Ver Estatísticas do Canal - Estatísticas da Mensagem - Abrir Mensagem + Chat de vídeo flutuante Telegram Rápido @@ -3372,1079 +1200,21 @@ Poderoso Baseado em Nuvem O aplicativo de mensagem mais **rápido** do mundo.\nÉ **gratuito** e **seguro**. - O **Telegram** envia mensagens mais rápido que qualquer outro aplicativo. - O **Telegram** será grátis para sempre.\nSem anúncios. Sem tarifas. + O **Telegram** entrega mensagens mais rápido que qualquer outro app. + O **Telegram** oferece espaço em\nnuvem ilimitado e gratuito para\nchats e mídias. O **Telegram** mantém suas mensagens\nseguras contra ataques de hackers. - O **Telegram** não tem limites no tamanho das suas mídias e chats. - O **Telegram** permite que você acesse suas mensagens\nem vários dispositivos. + O **Telegram** não tem limites no\ntamanho das suas mídias e chats. + O **Telegram** permite que você\nacesse suas mensagens\nem vários dispositivos. Comece a Conversar - - Configurações de Conta - Usar menos dados - Recebendo chamada - Conectando - Trocando chaves criptográficas - Aguardando - Solicitando - Desligando - Chamada encerrada - Falha ao conectar - Tocando - Linha ocupada - Chamada via Telegram - Videochamada via Telegram - Chamada via Telegram em andamento - Chat de Voz Acontecendo - Encerrar - Outra chamada em andamento - Encerrar chamada com **%1$s** e começar outra com **%2$s**? - Encerrar a chamada com **%1$s** e iniciar um chat de voz em **%2$s**? - Outro chat de voz acontecendo - Sair do chat de voz em **%1$s** e começar outro em **%2$s**? - Sair do chat de voz em **%1$s** e ligar para **%2$s**? - Chamadas - Toque - Você pode personalizar o toque usado quando esse contato te ligar no Telegram. - Chamadas - Apagar todas as chamadas - Apagar chamadas - Apagar para todos - Deseja apagar todas as chamadas recentes? - Deseja apagar as chamadas selecionadas das recentes? - Chamadas de ponta a ponta serão (ou não) estabelecidas com esses usuários, ignorando as opções do topo. - Usar ponta a ponta com - Quem pode me ligar? - Você pode restringir quem pode te ligar. - Esses usuários poderão ou não te ligar dependendo de suas configurações. - Nunca - Em redes móveis - Sempre - Apenas em roaming - Atender - Rejeitar - Você está offline. Por favor, conecte-se à Internet para poder realizar chamadas. - Você está offline no momento. Por favor, conecte-se à Internet para participar de chats de voz. - Você está com o modo avião ativado. Desative-o ou conecte-se ao Wi-Fi para realizar chamadas. - O modo avião está ativado. Por favor, desative o modo ou conecte-se à rede Wi-Fi para participar de chats de voz. - Desconectado - Modo Avião - Configurações - Chamada efetuada - Chamada recebida - Videochamada efetuada - Videochamada recebida - Chamada perdida - Chamada cancelada - Chamada recusada - Videochamada perdida - Videochamada cancelada - Videochamada recusada - %1$s (%2$s) - Sem chamadas recentes - Chamadas de voz e vídeo recentes\naparecerão aqui. - O aplicativo de **%1$s** está usando um protocolo incompatível. O aplicativo desse usuário precisa ser atualizado para que você possa chamá-lo. - O aplicativo de **%1$s** não faz chamadas e precisa ser atualizado para isso. - Desculpe, a versão do Telegram de **%1$s** é antiga e não faz videochamadas. - Fazer chamada de voz - Como estava a qualidade da sua chamada no Telegram? - O Telegram precisa acessar seu microfone para poder fazer chamadas. - O Telegram precisa de acesso ao seu microfone e à câmera para que você possa fazer videochamadas. - O Telegram precisa de acesso à sua câmera para você fazer chamadas de vídeo. - Adicionar um comentário opcional - Ligar de Volta - Ligar Novamente - Padrão - Deseja apagar essa entrada do registro de chamadas? - Chamada via Telegram - Videochamada via Telegram - Auricular - Headset - Viva-voz - Telefone - Bluetooth - Dispositivos de Saída - VOLTAR À CHAMADA - Desculpe, você não pode realizar essa chamada por conta das configurações de privacidade de %1$s. - Se os emojis na tela de %1$s são os mesmos, esta chamada é 100%% segura. - Avaliar Chamada - O que aconteceu de errado? - Incluir informação técnica - Não revela o conteúdo do chat e nos ajudará a corrigir o problema mais rápido. - Agradecemos por ajudar a tornar as chamadas do Telegram melhores. - respondendo como %s - Responder com Texto - Essas respostas rápidas estarão disponíveis quando você responder a uma chamada com uma mensagem. Altere-as para dizer o que você quiser. - Não posso falar agora, está tudo certo? - Já te ligo de volta - Vou te ligar mais tarde - Não posso falar agora, me liga depois? - Mensagem Customizada... - Permitir Personalização - Chamada via Telegram para %s - Videochamada via Telegram para %s - Não é possível realizar chamadas no momento. - Ouvi minha própria voz - Ouvi barulho no fundo - A outra pessoa ficou sumindo - Fala distorcida - Não consegui ouvir a outra pessoa - A outra pessoa não conseguiu me ouvir - Chamada encerrada do nada - Vídeo distorcido - Vídeo quadriculado - Toque aqui para ligar a sua câmera - Ativar Som - ou segure e fale - Você está Ao Vivo - Silenciado pelo admin - Silenciado - Você está no Modo Ouvinte - toque se deseja falar - Você pediu para falar - Avisamos aos locutores - Silenciar - Iniciar Vídeo - Parar Vídeo - Viva-voz - Virar - Alternar para videochamada? - ALTERNAR - O microfone de %s está desligado - A câmera de %s está desligada - Aceitar - Recusar - Ligar - Vídeo - Fazer chamada para **%1$s**? - Chamada de Voz - Fazer videochamada para **%1$s**? - Videochamada - Reconectando - Iniciar Chat de Voz - Chat de Voz - Iniciar um chat de voz neste grupo? - Deseja iniciar um Chat de Voz neste canal? - Gerenciar Chats de Voz - Entrar - %1$s pessoas conversando - %1$s pessoa falando - %1$s pessoas conversando - %1$s pessoas conversando - %1$s pessoas conversando - %1$s pessoas conversando - falando - %1$d%% falando - escutando - quer falar - convidado - Sair - Encerrar - Silenciar microfone - Deseja mesmo silenciar **%1$s** neste chat de voz? - Remover participante - Deseja remover %1$s do Chat de Voz e banir de %2$s? - **%1$s** foi removido do grupo. - **%1$s** agora pode falar. - **%1$s** não está mais silenciado para você. - **%1$s** está silenciado neste chat. - **%1$s** agora está silenciado neste chat para você. - Silenciar - Novos membros podem falar - Silenciar novos membros - Convidar via link - Encerrar chat de voz - Cancelar chat de voz - Conectando... - Sair do chat de voz - Deseja mesmo sair deste chat de voz? - Encerrar chat de voz - Deseja mesmo encerrar este chat de voz? - Encerrar chat de voz - VER CHAT DE VOZ - Chat de Voz - Chat de Voz Agendado - Abrir chat de voz - O usuário selecionado já está no chat de voz. - Desculpe, admins anônimos não podem participar de chats de voz. - Desculpe, este chat de voz está cheio. - un1 convidou un2 para o chat de voz - Entrar no chat de voz - Olá! Junte-se ao nosso chat de voz: %1$s - Convidar Membros - Compartilhar Link de Convite - Remover - Abrir Perfil - Abrir Canal - Abrir Grupo - Permitir falar - Buscar membros para convidar... - Copiar Link de Convite - O link de convite foi copiado. - Ativar Som - Chat de voz encerrado. Começar um novo? - Adicionar Membro - Deseja adicionar **%1$s** a **%2$s**? - Você convidou **%1$s** para o chat de voz. - Adicionar - Volume - Silenciar para mim - Silenciado para mim - Não silenciar para mim - Toque para entrar - Iniciar gravação - Parar gravação - Iniciar Chat de Voz como... - Entrar no Chat de Voz como... - Aparecer como... - Escolha se deseja aparecer como a sua conta pessoal ou o seu canal. - Escolha se deseja aparecer como sua conta pessoal, este grupo ou um dos seus canais. - Continuar como %1$s - Editar título do chat de voz - Editar permissões - Participantes deste chat de voz agora irão te ver como **%1$s** - Título do chat de voz - Pode falar - Apenas ouvir - COPIAR LINK DE LOCUTOR - COPIAR LINK DE OUVINTE - Agora você pode falar. - Agora você pode falar em **%1$s**. - Parar gravação - Deseja parar de gravar este Chat de Voz? - Iniciar gravação - Iniciar a gravação do chat e salvar em um arquivo de áudio?\n\nOs participantes irão ver que o chat está sendo gravado. - Título da Gravação - Áudio salvo nas **Mensagens Salvas**. - Gravação do chat de voz iniciada. - O Chat de Voz está sendo gravado - conta pessoal - Cancelar pedido para falar - ENTRAR COMO LOCUTOR - ENTRAR COMO OUVINTE - Entrar no Chat de Voz - Deseja mesmo aparecer neste Chat de Voz como sua conta pessoal? - Som do chat de voz desativado. - Som do chat de voz reativado. - Os membros deste grupo serão notificados assim que você iniciar o chat de voz. - Os inscritos deste canal serão notificados assim que você iniciar o chat de voz. - Você aparecerá como: - Iniciar Chat de Voz - Agendar Chat de Voz - Iniciar Agora - Definir Lembrete - Cancelar Lembrete - Os membros do grupo serão notificados que o chat de voz começará em %1$s. - Os inscritos do canal serão notificados que o chat de voz começará em %1$s. - Começa em - Atrasado há - Convidar - Vamos notificar você quando começar. - **%1$s** entrou no chat de voz. - **%1$s** entrou no chat de voz. - Chats de voz ativos - Chamadas recentes - Compartilhar tela - Não compartilhar tela - você - Abrir Chat - Alterar Foto - Adicionar Bio - Editar Nome - Bio - Você pode escrever algumas linhas sobre você. Todos poderão ver esse texto. - Toque para adicionar uma Bio - Editar Bio - Adicionar descrição - Editar descrição - toque para adicionar foto ou bio - toque para adicionar bio - toque para adicionar foto - toque para adicionar descrição - Toque para adicionar foto ou descrição - Editar título - Título - Definir Nova Foto - Câmera - Prévia do Vídeo - O vídeo da sua câmera será compartilhado com outros membros deste chat de voz - Compartilhar Câmera - Prévia - Fixar - Desafixar - Áudio - Selecione a saída de áudio - Vídeo Pausado - Você está compartilhando\na sua tela - Você está compartilhando a sua tela - PARAR DE COMPARTILHAR - Supressão de ruído - Ativado - Desativado - Vídeo disponível apenas\npara os primeiros %1$s participantes - - Gerenciar Links de Convite - Você pode criar links de convite adicionais que funcionam por tempo limitado ou quantidade de usos. - Qualquer pessoa no Telegram poderá entrar no seu grupo usando este link. - Qualquer pessoa no Telegram poderá se inscrever no seu canal usando este link. - Editar link - Salvar Link - Sem limite - Limitar por período de tempo - Limitar quantidade de usos - Novo Link - Definir duração personalizada - Limite personalizado - Você pode fazer o link expirar após um certo tempo. - Você pode fazer o link expirar depois de ter sido usado por um certo número de vezes. - Ninguém entrou ainda - Expirado - Obter Código QR - Link criado por - Convidar por Código QR - Enviar Código QR - Revogado - O link expira %s - Expirar após - Definir Limite de Tempo - Links Revogados - Apagar Link - Link Revogado - Este link não está mais ativo - O limite de tempo deste link expirou. - Este link atingiu o limite de usos. - Criar Novo Link - Apagar Todos os Links Revogados - Ninguém entrou - Limite atingido - Todos no Telegram podem escanear esse código para entrar no seu grupo. - Isso irá apagar o link. - Isso irá apagar todos os links revogados. - Você pode gerar links de convite que irão expirar depois de usados. - Links de convite criados por esse admin - Links criados por outros admins - Link de convite para esse admin - Todos no Telegram podem escanear esse código para entrar no seu canal. - Qualquer pessoa que tiver o Telegram instalado poderá se inscrever no seu canal usando esse link. - O link expira em %s - Link público - Esse link de convite expirou. - Copiar - Compartilhar - O link de convite foi revogado. - Link Expirado Mensagem para %1$s Chamar %1$s por voz Chamar %1$s por vídeo - - un1 estão falando - un1 está falando - un1 estão falando - un1 estão falando - un1 estão falando - un1 estão falando - Apagar %1$d papéis de parede - Apagar papel de parede - Apagar %1$d papéis de parede - Apagar %1$d papéis de parede - Apagar %1$d papéis de parede - Apagar %1$d papéis de parede - %1$d destinatários - %1$d destinatário - %1$d destinatários - %1$d destinatários - %1$d destinatários - %1$d destinatários - %1$d online - %1$d online - %1$d online - %1$d online - %1$d online - %1$d online - "%1$d contatos no Telegram " - "%1$d contato no Telegram " - "%1$d contatos no Telegram " - "%1$d contatos no Telegram " - "%1$d contatos no Telegram " - "%1$d contatos no Telegram " - Ei, eu e mais %1$d dos nossos contatos estamos usando o Telegram para conversar. Baixa também: %2$s - Ei, eu e mais %1$d dos nossos contatos estamos usando o Telegram para conversar. Baixa também: %2$s - Ei, eu e mais %1$d dos nossos contatos estamos usando o Telegram para conversar. Baixa também: %2$s - Ei, eu e mais %1$d dos nossos contatos estamos usando o Telegram para conversar. Baixa também: %2$s - Ei, eu e mais %1$d dos nossos contatos estamos usando o Telegram para conversar. Baixa também: %2$s - Ei, eu e mais %1$d dos nossos contatos estamos usando o Telegram para conversar. Baixa também: %2$s - %1$d pessoas entraram - %1$d pessoa entrou - %1$d pessoas entraram - %1$d pessoas entraram - %1$d pessoas entraram - %1$d pessoas entraram - %1$d restantes - %1$d restantes - %1$d restante - %1$d restantes - %1$d restantes - %1$d restantes - %1$d podem entrar - %1$d podem entrar - %1$d pode entrar - %1$d podem entrar - %1$d podem entrar - %1$d podem entrar - %1$d dias restantes - %1$d dias restantes - %1$d dia restante - %1$d dias restantes - %1$d dias restantes - %1$d dias restantes - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d chat - %1$d chats - %1$d chats - %1$d chats - %1$d chats - %1$d canais - %1$d canal - %1$d canais - %1$d canais - %1$d canais - %1$d canais - %1$d grupos - %1$d grupo - %1$d grupos - %1$d grupos - %1$d grupos - %1$d grupos - %1$d membros - %1$d membro - %1$d membros - %1$d membros - %1$d membros - %1$d membros - %1$d participantes - %1$d participante - %1$d participantes - %1$d participantes - %1$d participantes - %1$d participantes - e mais %1$d escrevendo - e mais %1$d escrevendo - e mais %1$d escrevendo - e mais %1$d escrevendo - e mais %1$d escrevendo - e mais %1$d escrevendo - %1$s e mais %2$d escrevendo - %1$s e mais %2$d escrevendo - %1$s e mais %2$d escrevendo - %1$s e mais %2$d escrevendo - %1$s e mais %2$d escrevendo - %1$s e mais %2$d escrevendo - %1$d novas mensagens - %1$d nova mensagem - %1$d novas mensagens - %1$d novas mensagens - %1$d novas mensagens - %1$d novas mensagens - %1$d mensagens desafixadas - Mensagem desafixada - %1$d mensagens desafixadas - %1$d mensagens desafixadas - %1$d mensagens desafixadas - %1$d mensagens desafixadas - %1$d mensagens - %1$d mensagem - %1$d mensagens - %1$d mensagens - %1$d mensagens - %1$d mensagens - %1$d itens - %1$d item - %1$d itens - %1$d itens - %1$d itens - %1$d itens - de %1$d chats - de %1$d chat - de %1$d chats - de %1$d chats - de %1$d chats - de %1$d chats - %1$d segundos - %1$d segundo - %1$d segundos - %1$d segundos - %1$d segundos - %1$d segundos - %1$d minutos - %1$d minuto - %1$d minutos - %1$d minutos - %1$d minutos - %1$d minutos - %1$d horas - %1$d hora - %1$d horas - %1$d horas - %1$d horas - %1$d horas - %1$d dias - %1$d dia - %1$d dias - %1$d dias - %1$d dias - %1$d dias - %1$d segundos - %1$d segundo - %1$d segundos - %1$d segundos - %1$d segundos - %1$d segundos - %1$d minutos - %1$d minuto - %1$d minutos - %1$d minutos - %1$d minutos - %1$d minutos - %1$d horas - %1$d hora - %1$d horas - %1$d horas - %1$d horas - %1$d horas - %1$d dias - %1$d dia - %1$d dias - %1$d dias - %1$d dias - %1$d dias - %1$d semanas - %1$d semana - %1$d semanas - %1$d semanas - %1$d semanas - %1$d semanas - %1$d meses - %1$d mês - %1$d meses - %1$d meses - %1$d meses - %1$d meses - %1$d anos - %1$d ano - %1$d anos - %1$d anos - %1$d anos - %1$d anos - %1$d usuários - %1$d usuário - %1$d usuários - %1$d usuários - %1$d usuários - %1$d usuários - %1$d vezes - %1$d vez - %1$d vezes - %1$d vezes - %1$d vezes - %1$d vezes - %1$d metros - %1$d metro - %1$d metros - %1$d metros - %1$d metros - %1$d metros - %1$d stickers - %1$d sticker - %1$d stickers - %1$d stickers - %1$d stickers - %1$d stickers - %1$d máscaras - %1$d máscara - %1$d máscaras - %1$d máscaras - %1$d máscaras - %1$d máscaras - %1$d inscritos - %1$d inscrito - %1$d inscritos - %1$d inscritos - %1$d inscritos - %1$d inscritos - %1$d exceções - %1$d exceção - %1$d exceções - %1$d exceções - %1$d exceções - %1$d exceções - %1$d usuários removidos - %1$d usuário removido - %1$d usuários removidos - %1$d usuários removidos - %1$d usuários removidos - %1$d usuários removidos - %1$d pontos - %1$d ponto - %1$d pontos - %1$d pontos - %1$d pontos - %1$d pontos - atualizado há %1$d min - atualizado há %1$d min - atualizado há %1$d min - atualizado há %1$d min - atualizado há %1$d min - atualizado há %1$d min - **%1$d** segundos - **%1$d** segundo - **%1$d** segundos - **%1$d** segundos - **%1$d** segundos - **%1$d** segundos - **%1$d** minutos - **%1$d** minuto - **%1$d** minutos - **%1$d** minutos - **%1$d** minutos - **%1$d** minutos - **%1$d** horas - **%1$d** hora - **%1$d** horas - **%1$d** horas - **%1$d** horas - **%1$d** horas - **%1$d** dias - **%1$d** dia - **%1$d** dias - **%1$d** dias - **%1$d** dias - **%1$d** dias - %1$s visualizações - %1$s visualização - %1$s visualizações - %1$s visualizações - %1$s visualizações - %1$s visualizações - %1$s compartilhamentos - %1$s compartilhamento - %1$s compartilhamentos - %1$s compartilhamentos - %1$s compartilhamentos - %1$s compartilhamentos - %1$s compartilhamentos públicos - %1$s compartilhamento público - %1$s compartilhamentos públicos - %1$s compartilhamentos públicos - %1$s compartilhamentos públicos - %1$s compartilhamentos públicos - %1$s compartilhados - %1$s compartilhado - %1$s compartilhados - %1$s compartilhados - %1$s compartilhados - %1$s compartilhados - %1$s pacotes de sticker - %1$s pacote de sticker - %1$s pacotes de sticker - %1$s pacotes de sticker - %1$s pacotes de sticker - %1$s pacotes de sticker - - %1$d mensagens encaminhadas - Mensagem encaminhada - %1$d mensagens encaminhadas - %1$d mensagens encaminhadas - %1$d mensagens encaminhadas - %1$d mensagens encaminhadas - %1$d fotos - %1$d foto - %1$d fotos - %1$d fotos - %1$d fotos - %1$d fotos - %1$d vídeos - %1$d vídeo - %1$d vídeos - %1$d vídeos - %1$d vídeos - %1$d vídeos - %1$d arquivos - %1$d arquivo - %1$d arquivos - %1$d arquivos - %1$d arquivos - %1$d arquivos - %1$d músicas - %1$d música - %1$d músicas - %1$d músicas - %1$d músicas - %1$d músicas - %1$d grupos em comum - %1$d grupo em comum - %1$d grupos em comum - %1$d grupos em comum - %1$d grupos em comum - %1$d grupos em comum - %1$d mídias - %1$d mídia - %1$d mídias - %1$d mídias - %1$d mídias - %1$d mídias - %1$d mensagens de voz - %1$d mensagem de voz - %1$d mensagens de voz - %1$d mensagens de voz - %1$d mensagens de voz - %1$d mensagens de voz - %1$d links - %1$d link - %1$d links - %1$d links - %1$d links - %1$d links - %1$d GIFs - %1$d GIF - %1$d GIFs - %1$d GIFs - %1$d GIFs - %1$d GIFs - %1$d usuários bloqueados - %1$d usuário bloqueado - %1$d usuários bloqueados - %1$d usuários bloqueados - %1$d usuários bloqueados - %1$d usuários bloqueados - %1$d arquivos encaminhados - Arquivo encaminhado - %1$d arquivos encaminhados - %1$d arquivos encaminhados - %1$d arquivos encaminhados - %1$d arquivos encaminhados - %1$d fotos encaminhadas - Foto encaminhada - %1$d fotos encaminhadas - %1$d fotos encaminhadas - %1$d fotos encaminhadas - %1$d fotos encaminhadas - %1$d vídeos encaminhados - Vídeo encaminhado - %1$d vídeos encaminhados - %1$d vídeos encaminhados - %1$d vídeos encaminhados - %1$d vídeos encaminhados - %1$d arquivos de áudio encaminhados - Arquivo de áudio encaminhado - %1$d arquivos de áudio encaminhados - %1$d arquivos de áudio encaminhados - %1$d arquivos de áudio encaminhados - %1$d arquivos de áudio encaminhados - %1$d mensagens de voz encaminhadas - Mensagem de voz encaminhada - %1$d mensagens de voz encaminhadas - %1$d mensagens de voz encaminhadas - %1$d mensagens de voz encaminhadas - %1$d mensagens de voz encaminhadas - %1$d mensagens de vídeo encaminhadas - Mensagem de vídeo encaminhada - %1$d mensagens de vídeo encaminhadas - %1$d mensagens de vídeo encaminhadas - %1$d mensagens de vídeo encaminhadas - %1$d mensagens de vídeo encaminhadas - %1$d localizações encaminhadas - Localização encaminhada - %1$d localizações encaminhadas - %1$d localizações encaminhadas - %1$d localizações encaminhadas - %1$d localizações encaminhadas - %1$d contatos encaminhados - Contato encaminhado - %1$d contatos encaminhados - %1$d contatos encaminhados - %1$d contatos encaminhados - %1$d contatos encaminhados - %1$d stickers encaminhados - Sticker encaminhado - %1$d stickers encaminhados - %1$d stickers encaminhados - %1$d stickers encaminhados - %1$d stickers encaminhados - %1$d enquetes encaminhadas - Enquete encaminhada - %1$d enquetes encaminhadas - %1$d enquetes encaminhadas - %1$d enquetes encaminhadas - %1$d enquetes encaminhadas - e %1$d outros - e %1$d outro - e %1$d outros - e %1$d outros - e %1$d outros - e %1$d outros - %1$d fotos selecionadas - %1$d foto selecionada - %1$d fotos selecionadas - %1$d fotos selecionadas - %1$d fotos selecionadas - %1$d fotos selecionadas - %1$d vídeos selecionados - %1$d vídeo selecionado - %1$d vídeos selecionados - %1$d vídeos selecionados - %1$d vídeos selecionados - %1$d vídeos selecionados - %1$d mídias selecionadas - %1$d mídia selecionada - %1$d mídias selecionadas - %1$d mídias selecionadas - %1$d mídias selecionadas - %1$d mídias selecionadas - %1$d pessoas usando este tema - %1$d pessoa usando este tema - %1$d pessoas usando este tema - %1$d pessoas usando este tema - %1$d pessoas usando este tema - %1$d pessoas usando este tema - %1$d de %2$d resultados - %1$d de %2$d resultados - %1$d de %2$d resultados - %1$d de %2$d resultados - %1$d de %2$d resultados - %1$d de %2$d resultados - %1$d usuários - %1$d usuário - %1$d usuários - %1$d usuários - %1$d usuários - %1$d usuários - %1$d usuários - %1$d usuário - %1$d usuários - %1$d usuários - %1$d usuários - %1$d usuários - %1$d de %2$d selecionados - %1$d de %2$d selecionado - %1$d de %2$d selecionados - %1$d de %2$d selecionados - %1$d de %2$d selecionados - %1$d de %2$d selecionados - Ver %1$d Respostas - Ver %1$d Resposta - Ver %1$d Respostas - Ver %1$d Respostas - Ver %1$d Respostas - Ver %1$d Respostas - %1$d Respostas - %1$d Resposta - %1$d Respostas - %1$d Respostas - %1$d Respostas - %1$d Respostas - %1$d Comentários - %1$d Comentário - %1$d Comentários - %1$d Comentários - %1$d Comentários - %1$d Comentários - %1$d comentários - %1$d comentário - %1$d comentários - %1$d comentários - %1$d comentários - %1$d comentários - comentários - comentário - comentários - comentários - comentários - comentários - %1$d Mensagens Fixadas - Mensagem Fixada - %1$d Mensagens Fixadas - %1$d Mensagens Fixadas - %1$d Mensagens Fixadas - %1$d Mensagens Fixadas - %s pessoas podem entrar usando este link - %s pessoa pode entrar usando este link - %s pessoas podem entrar usando este link - %s pessoas podem entrar usando este link - %s pessoas podem entrar usando este link - %s pessoas podem entrar usando este link - %1$d chats fixados - Chat fixado - %1$d chats fixados - %1$d chats fixados - %1$d chats fixados - %1$d chats fixados - %1$d chats desafixados - Chat desafixado - %1$d chats desafixados - %1$d chats desafixados - %1$d chats desafixados - %1$d chats desafixados - - Grupo - Canal - Chat secreto - Enviado %s - Recebido %s - Agendado para %s - Voltar - Abrir menu de navegação - Abrir menu - Fechar menu - Abrir no visualizador de fotos - %2$s por %1$s - Mais opções - Trocar para o tema noturno - Trocar para o tema diurno - Reproduzir - Pausar - Download - Cancelar download - Abrir arquivo - Opções da mensagem - Entrar no modo de seleção - Emojis, figurinhas e GIFs - Anexar mídia - Enviar silenciosamente - Enviar notificações - Comandos do robô - Teclado do robô - Mostrar teclado - Gravar mensagem de voz - Gravar mensagem de vídeo - Abrir chat - Foto de perfil - Alterar foto do perfil - Alterar classificação - Mostrar contas - Ocultar contas - Ir para mensagem - Cancelar resposta - Cancelar encaminhamento - Cancelar edição - Respondendo para - Encaminhando de - Edição - Bloquear aplicativo - Desbloquear aplicativo - Apagar - Anterior - Repetir, desligado - Repetir, playlist - Repetir, uma - Fechar reprodutor de áudio - Velocidade de reprodução em 2X (2 vezes) - Parar de compartilhar localização em tempo real - Câmera instantânea - Obturador - Alternar câmera - Flash, Off - Flash, Auto - Flash, On - Pacote de sticker - GIFs - Stickers - Expandir painel - Colapsar painel - Opções do usuário - Girar - Espelhar - Editor de fotos - Ajustes - Visualizador de fotos - Ir para o final - Ir para a próxima menção - Silenciar microfone - Título - Cabeçalho - Minha localização - Notificar quando pessoas que compartilham a localização estiverem perto - Qualidade do vídeo - Proporção da imagem - Tirar mais uma foto - Lido - Não lido - Enviando - Erro no envio - Não reproduzido - Próximo resultado de busca - Resultado anterior de busca - Filtrar por usuário - Tirar uma foto - Gravar vídeo - Deslize mais para ver o arquivo - Solte para ver o arquivo - Tamanho menor - Qualidade maior - %1$s de %2$s - Baixados %1$s de %2$s - Enviados %1$s de %2$s - Visualizado %1$d vez - Visualizado %1$d vezes - Visualizado %1$d vezes - Visualizado %1$d vezes - Visualizado %1$d vezes - Enviar %1$d foto - Enviar %1$d fotos - Enviar %1$d fotos - Enviar %1$d fotos - Enviar %1$d fotos - Enviar %1$d arquivo - Enviar %1$d arquivos - Enviar %1$d arquivos - Enviar %1$d arquivos - Enviar %1$d arquivos - Enviar %1$d áudio - Enviar %1$d áudios - Enviar %1$d áudios - Enviar %1$d áudios - Enviar %1$d áudios - Encaminhar em %1$d chat - Encaminhar em %1$d chats - Encaminhar em %1$d chats - Encaminhar em %1$d chats - Encaminhar em %1$d chats - Resposta correta - Explicação - Modo de Janela Flutuante - Microfone ligado - Microfone desligado - Alternou para a câmera frontal - Alternou para a câmera traseira - Câmera ligada - Câmera desligada - Lista de mensagens fixadas - Ir para a tela cheia - Sair da tela cheia + dd \'de\' MMM \'de\' yyyy + dd \'de\' MMM \'de\' yyyy + dd \'de\' MMMM + dd \'de\' MMMM \'de\' yyyy MMMM \'de\' yyyy dd \'de\' MMM \'de\' yyyy, h:mm a dd \'de\' MMM \'de\' yyyy, HH:mm @@ -4452,8 +1222,6 @@ dd \'de\' MMM \'de\' yyyy, HH:mm dd \'de\' MMM, h:mm a dd \'de\' MMM, HH:mm - LLLL \'de\' yyyy - LLLL dd \'de\' MMM dd.MM.yy dd.MM.yyyy @@ -4470,11 +1238,11 @@ \'Enviar em\' d \'de\' MMM \'às\' HH:mm \'Enviar em\' d \'de\' MMM \'de\' yyyy \'às\' HH:mm \'Começa hoje às\' HH:mm - \'Começa em\' d \'de\' MMM \'às\' HH:mm - \'Começa em\' d \'de\' MMM \'de\' yyyy \'às\' HH:mm + \'Começará em\' d \'de\' MMM \'às\' HH:mm + \'Começará em\' d \'de\' MMM \'de\' yyyy \'às\' HH:mm \'Começa hoje às\' HH:mm - \'Começa em\' d \'de\' MMM \'às\' HH:mm - \'Começa em\' d \'de\' MMM \'de\' yyyy \'às\' HH:mm + \'Começará em\' d \'de\' MMM \'às\' HH:mm + \'Começará em\' d \'de\' MMM \'de\' yyyy \'às\' HH:mm \'Hoje,\' HH:mm d \'de\' MMM\',\' HH:mm d \'de\' MMM \'de\' yyyy\',\' HH:mm @@ -4482,4 +1250,4 @@ \'Lembrar em\' d \'de\' MMM \'às\' HH:mm \'Lembrar em\' d \'de\' MMM \'de\' yyyy \'às\' HH:mm Menu - + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/values-ru/strings.xml b/TMessagesProj/src/main/res/values-ru/strings.xml new file mode 100644 index 0000000000..24c5629206 --- /dev/null +++ b/TMessagesProj/src/main/res/values-ru/strings.xml @@ -0,0 +1,266 @@ + + + Telegram + Telegram Beta + Русский + Английский + Russian + ru + Продолжить на русском + + Ваш телефон + Проверьте код страны и введите свой номер телефона. + Страна + Номер телефона + Номер телефона + Выберите страну + Некорректный код страны + Вы уже зашли в этот аккаунт. + Переключиться + Синхронизировать контакты + Контакты с этого устройства будут импортироваться для этого аккаунта. + Контакты с этого устройства не будут импортироваться для этого аккаунта. + Контакты с этого устройства будут импортироваться в Ваш аккаунт. + Включите, чтобы добавлять контакты с этого устройства к Вашему аккаунту. + Контакты с этого устройства были добавлены к Вашему аккаунту. + Правильно ли указан номер? + Некорректный формат + Указанный номер слишком короткий для региона **%1$s**:\n\n**%2$s**\n\nУбедитесь, что правильно указываете номер. Он должен начинаться с кода страны. + Изменить номер + Если Вы не получили звонок или SMS с кодом, проверьте настройки сотовой связи и указанный Вами номер:\n\n**%1$s**\n\nЕсли это не помогло, Вы можете указать другой номер телефона или связаться с командой поддержки Telegram. Чтобы сообщить нам о проблеме и отправить техническую информацию для диагностики, нажмите **Помощь**. + Помощь + Другой номер + + Проверка телефона + Мы отправили SMS с кодом проверки на Ваш телефон **%1$s**. + Мы отправили код в приложение **Telegram** на другом Вашем устройстве. + Мы отправили код через **Telegram** на другое устройство, где авторизован %1$s. + Проверьте сообщения в Telegram + Получите код для %1$s в разделе Anonymous Numbers платформы Fragment. + Введите код + Перейти к Fragment + Наш робот звонит на номер **%1$s**.\n\nОтвечать на звонок не требуется, Telegram автоматически получит код для входа. + Мы звоним Вам по номеру **%1$s**, чтобы продиктовать код. + Telegram позвонит Вам через %1$d:%2$02d + Мы отправим Вам SMS через %1$d:%2$02d + Звоним вам... + Отправка SMS... + Код + Неправильный номер? + Неверный код. Попробуйте ещё раз. + Не получили код? + Отправить код через SMS + Получить код на платформе Fragment + Отмена сброса аккаунта + Кто-то с доступом к **%1$s** запросил удаление Вашего аккаунта Telegram и сброс пароля двухэтапной аутентификации.\n\nЕсли это были не Вы, введите код из SMS, отправленного на Ваш номер. Вы также можете отменить удаление, *изменив номер телефона*. + Сброс аккаунта + Поскольку аккаунт **%1$s** используется и защищён паролем, в целях безопасности мы удалим его только через неделю.\n\nВы можете передумать и остановить отсчёт в любой момент. + Вы сможете сбросить свой аккаунт через: + Ваши недавние попытки сбросить аккаунт были отменены его активным пользователем. Попробовать снова можно через 7 дней. + СБРОСИТЬ АККАУНТ + Ссылка неверна или устарела. + Готово + Удаление аккаунта %1$s отменено. Это окно можно закрыть. + Ваш код для входа: **%1$s**. Укажите его в приложении Telegram, в котором хотите зайти в свой аккаунт.\n\nНикому не передавайте этот код. + Вы сможете запросить SMS через %1$d:%2$02d + Вы сможете повторно запросить SMS через %1$d:%2$02d + Получить SMS с кодом + Вы можете запросить звонок с кодом через %1$d:%2$02d + Получить звонок с кодом + Получить звонок с кодом + Код страны + Войти через аккаунт Google + + Ваше имя + Пожалуйста, добавьте имя и фотографию. + Имя (обязательно) + Имя + Фамилия (необязательно) + Фамилия + Отмена регистрации + Информация о себе + + Облачный пароль + Облачный пароль + Пароль установлен + Этот пароль потребуется вводить при авторизации с нового устройства в дополнение к коду из SMS. + Вернуться к настройкам + Вернуться к паспорту + Задать пароль + Показать пароль + Установить дополнительный пароль + Вы можете установить пароль, который будет запрашиваться при входе с нового устройства в дополнение к коду из SMS. + Пароль + Пароль + Ваша учётная запись защищена двухэтапной аутентификацией.\nВы помните свой пароль? + Помню, спасибо + Хочу убедиться + Вкл. + Выкл. + Введите пароль + Введите пароль + Проверить пароль + Вы помните свой пароль? + Отлично! + Вы помните свой пароль. + Вы ввели неверный пароль. + Назад к настройкам + Введите пароль, чтобы подтвердить передачу прав. + Для получения вознаграждения введите пароль. + Введите пароль + Введите новый пароль + Введите новый пароль + Повторите пароль + Новый пароль + Теперь Вы можете установить новый пароль для входа в Вашу учётную запись. + Введите новый пароль + Повторите новый пароль + Электронная почта + Электронная почта + Вы можете задать адрес электронной почты для сброса пароля и восстановления доступа к своему аккаунту в Telegram. + Адрес электронной почты + Ваш новый адрес + Электронная почта изменена. + Код из письма + Пожалуйста, введите код, который мы отправили на %1$s, чтобы подтвердить свой адрес электронной почты. + Пожалуйста, добавьте настоящий адрес электронной почты. Это единственный способ восстановить забытый пароль. + Пропустить + Внимание + Это важно.\n\nЕсли Вы забудете пароль, Вы навсегда потеряете доступ к своему аккаунту. Восстановить его будет невозможно. + Почти готово! + Пожалуйста, проверьте почту (не забудьте о папке со спамом), чтобы завершить установку облачного пароля. + Готово! + Ваш облачный пароль установлен. + Ваш облачный пароль изменён. + Адрес для восстановления облачного пароля активирован. + Почта для восстановления облачного пароля изменена. + Сменить пароль + Отключить пароль + Указать адрес электронной почты + Сменить адрес электронной почты + Отключить пароль + Вы точно хотите отключить пароль? + Вы точно хотите прервать настройку облачного пароля? + Вы точно хотите прервать настройку почты для восстановления пароля? + Отменить сброс пароля? Если Вы запросите сброс пароля позже, процедура снова займёт 7 дней. + ДА + НЕТ + Отменить сброс + Прервать установку + Все данные, сохранённые в Вашем Telegram Passport, будут потеряны. + Подсказка + Если хотите, укажите подсказку для пароля. + Подсказка + Введите подсказку для пароля + Задайте подсказку для пароля. + Пароли не совпадают + Повторите пароль + Прервать настройку облачного пароля + Отменить настройку + Прервать настройку почты + Прервать + Отключить + Чтобы завершить установку облачного пароля, проверьте почту (не забудьте о папке со спамом) и введите код, который получили в письме. + Чтобы подтвердить почту для восстановления пароля, проверьте %1$s (не забудьте о папке со спамом) и введите код, который получили в письме. + Подсказка не должна совпадать с паролем + Некорректный адрес электронной почты. Попробуйте ещё раз. + Сожалеем + Так как Вы не указали адрес электронной почты для восстановления пароля, то оставшиеся варианты — вспомнить пароль или сбросить аккаунт. + Так как Вы не указали адрес электронной почты для восстановления пароля, то оставшиеся варианты — вспомнить пароль или подождать 7 дней, чтобы сбросить его. + Сбросить пароль для двухэтапной аутентификации? + Пароль для двухэтапной аутентификации был сброшен. + СБРОС АККАУНТА + СБРОС ПАРОЛЯ + %1$s до возможности сбросить пароль + Сбросить пароль + Код для восстановления + Мы отправили код восстановления на указанный Вами адрес электронной почты:\n\n%1$s + Пожалуйста, проверьте почту и введите 6-значный код, который мы на неё отправили. + Нет доступа к %1$s? + Нет доступа к электронной почте? + Если Вы не можете восстановить доступ к Вашей электронной почте, то оставшиеся варианты — вспомнить пароль или сбросить аккаунт. + Если у Вас нет доступа к почте для восстановления пароля, то оставшиеся варианты — вспомнить пароль или подождать 7 дней, чтобы сбросить его. + Нет доступа к %1$s? + Вы недавно запрашивали сброс пароля, но запрос был отменён. Новый запрос можно будет сделать через %1$s. + СБРОСИТЬ МОЙ АККАУНТ + Если Вы сбросите аккаунт, все чаты, сообщения и файлы будут утеряны. + Внимание + Это действие необратимо. Если Вы сбросите свой аккаунт, все сообщения, чаты и файлы будут удалены. + Сбросить аккаунт + Пароль + Вы включили двухэтапную аутентификацию. Теперь Ваш аккаунт защищён дополнительным облачным паролем. + Ваш аккаунт дополнительно защищён облачным паролем. + Забыли пароль? + Восстановление пароля + Код + Пароль отключён + Отправить ещё раз + Код подтверждения + Ввести код + На Ваш email отправлен код подтверждения. + Установлен облачный пароль.\nВам нужно будет вводить его для входа в свой аккаунт в Telegram. + Укажите почту для входа + Вы будете получать коды для входа в Telegram на адрес электронной почты, а не через SMS. Пожалуйста, введите адрес, к которому у Вас есть доступ. + Укажите новый адрес + Проверьте почту %1$s (не забудьте о папке со спамом) и введите код, который получили в письме. + Проверьте почту + Введите код, который пришёл на электронную почту %1$s. + Проверьте новую почту + Введите код, который пришёл на указанный Вами адрес %1$s. + или + + Telegram + Быстрый + Бесплатный + Безопасный + Мощный + Облачный + Самый **быстрый** мессенджер в мире.\n**Бесплатный** и **безопасный**. + **Telegram** доставляет сообщения быстрее\nлюбого другого приложения. + **Telegram** предоставляет бесплатное безлимитное облачное хранилище для чатов и медиа.\n + **Telegram** защищает Вашу переписку от злоумышленников. + **Telegram** не ограничивает размер\n Ваших медиафайлов и чатов. + В **Telegram** можно переписываться с любого количества устройств. + Начать общение + + dd MMM yyyy + dd MMM yyyy + dd MMMM + dd MMMM yyyy + MMMM yyyy + dd MMM yyyy, h:mm a + dd MMM yyyy, HH:mm + dd MMM yyyy, h:mm a + dd MMM yyyy, HH:mm + dd MMM, h:mm a + dd MMM, HH:mm + MMM yyyy + MMM + dd MMM + dd.MM.yy + dd.MM.yyyy + d MMMM + d MMMM yyyy + EEE + EEEE + HH:mm + h:mm a + %1$s в %2$s + d MMM + d MMM yyyy + \'Отправить сегодня в\' HH:mm + \'Отправить\' d MMM \'в\' HH:mm + \'Отправить\' d MMM yyyy \'в\' HH:mm + \'Начать сегодня в\' HH:mm + \'Начать\' d MMM \'в\' HH:mm + \'Начать\' d MMM yyyy \'в\' HH:mm + \'Начнётся сегодня в\' HH:mm + \'Начнётся\' d MMM \'в\' HH:mm + \'Начнётся\' d MMM yyyy \'в\' HH:mm + \'Сегодня в\' HH:mm + d MMM HH:mm + d MMM yyyy HH:mm + \'Отправить сегодня в\' HH:mm + \'Отправить\' d MMM \'в\' HH:mm + \'Напомнить\' d MMM yyyy \'в\' HH:mm + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/values-uk/strings.xml b/TMessagesProj/src/main/res/values-uk/strings.xml new file mode 100644 index 0000000000..d46834430e --- /dev/null +++ b/TMessagesProj/src/main/res/values-uk/strings.xml @@ -0,0 +1,279 @@ + + + Telegram + Telegram Beta + Українська + Англійська + Ukrainian + uk + Продовжити українською + + Ваш номер + Перевірте код країни і введіть\nсвій номер телефону. + Країна + Ваш номер телефону + Номер телефону + Виберіть країну + Некоректний код країни + Цей акаунт уже додано до застосунку. + Перемкнутися + Синхронізувати контакти + Контакти з цього пристрою будуть додані до цього акаунта. + Контакти з цього пристрою не будуть додані до вашого акаунта. + Контакти з цього пристрою будуть додані до вашого акаунта. + Увімкніть для постійної синхронізації контактів цього пристрою з вашим акаунтом. + Контакти з цього пристрою додані до вашого акаунта. + Це ваш номер телефону? + Неправильний формат + Вказаний номер є занадто коротким для **%1$s**:\n\n**%2$s**\n\nВведіть номер телефону повністю, разом із кодом країни. + Змінити номер + Якщо ви не одержали коду в SMS або виклику, перевірте **налаштування мобільної мережі** та номер телефону:\n\n**%1$s**\n\nЯкщо це не допоможе, вам залишиться спробувати інший номер телефону або звʼязатися з підтримкою Telegram. Натисніть **Допомога**, щоб надіслати нам технічну інформацію і ми могли зʼясувати проблему. + Допомога + Змінити номер + + Підтвердження номера + Ми надіслали SMS із кодом активації на ваш телефон **%1$s**. + Ми надіслали код до **Telegram** на іншому вашому пристрої. + Ми надіслали код до **Telegram** для %1$s на іншому вашому пристрої. + Перевірте повідомлення в Telegram + Отримайте код для %1$s у розділі «Anonymous Numbers» на Fragment. + Введіть код + Відкрити Fragment + Ми телефонуємо на ваш номер **%1$s**.\n\nВідповідати на виклик не потрібно, Telegram автоматично зробить усе сам. + Ми телефонуємо на номер **%1$s**, щоб продиктувати код. + Telegram зателефонує вам за %1$d:%2$02d + Ми надішлемо вам SMS за %1$d:%2$02d + Телефонуємо вам... + Надсилаємо SMS... + Код + Помилковий номер? + Неправильний код, спробуйте ще раз. + Не одержали коду? + Отримати код в SMS + Отримати код на платформі Fragment + Скасувати скидання акаунта + Хтось з доступом до **%1$s ** запросив видалення вашого акаунта Telegram і скидання хмарного пароля.\n\nЯкщо це були не ви, введіть код з SMS, надісланого на ваш номер. Ви також можете скасувати видалення, *змінивши номер телефону*. + Скинути акаунт + "Акаунт **%1$s** активний та захищений паролем, тому з міркувань безпеки ми видалимо його лише через тиждень.\n\nВи можете скасувати цей процес будь-коли. " + Ви зможете скинути акаунт через: + Ваші недавні спроби скинути акаунт скасовано активним користувачем. Спробуйте через 7 днів. + СКИНУТИ АКАУНТ + Посилання недійсне або застаріле. + Успіх! + Процес видалення вашого акаунта %1$s було скасовано. Зараз ви можете закрити це вікно. + Ваш код для входу – **%1$s**. Введіть його у програмі Telegram, через яку ви хочете увійти.\n\nНе повідомляйте цей код нікому. + Ви зможете зробити запит на SMS за %1$d:%2$02d + Ви зможете зробити запит на SMS за %1$d:%2$02d + Отримати код в SMS-повідомленні + Ви зможете зробити запит на виклик за %1$d:%2$02d + Продиктувати код у виклику + Отримати код у виклику + Код країни + Увійти через Google + + Ваше імʼя + Вкажіть своє імʼя та додайте фото для профілю. + Імʼя (обовʼязково) + Імʼя + Прізвище (за бажанням) + Прізвище + Скасувати реєстрацію + Інформація про профіль + + Редагувати віджет + Цей віджет показує ярлики для швидкого доступу до вибраних чатів.\n\nЯкщо нічого не вибрано, відображаються останні активні контакти. + Цей віджет показує останні повідомлення з вибраних чатів.\n\nЯкщо нічого не вибрано, відображаються останні активні чати. + Увага: код блокування застосунку **не впливає** на віджети. + Код блокування застосунку **не впливає** на віджети, додані на головний екран. + Пошук чатів... + Попередній перегляд + редагувати віджет + редагувати + Чати + Ярлики + Акаунт не авторизований. + + Двоетапна перевірка + Двоетапна перевірка + Пароль встановлено! + Цей пароль запитуватиметься при вході з нового пристрою додатково до SMS-коду. + Повернутися в Налаштування + Повернутися до Passport + Встановити пароль + Показати пароль + Встановити додатковий пароль + Ви можете встановити пароль, який потрібно буде вводити при вході з нового пристрою на додачу до SMS-коду. + Ваш пароль + Ваш пароль + Ваш акаунт захищений двоетапною перевіркою. Ви памʼятаєте свій пароль? + Так, памʼятаю + Не впевнений(-на) + Увімкнено + Вимкнено + Введіть пароль + Введіть пароль + Перевірити пароль + Ви ще памʼятаєте свій пароль? + Чудово! + Ви памʼятаєте свій пароль. + Ви ввели неправильний пароль. + Назад до Налаштувань + Введіть свій пароль, щоб завершити передачу прав власності. + Для отримання необхідно ввести пароль. + Введіть пароль + Введіть новий пароль + Введіть новий пароль + Введіть свій пароль ще раз + Новий пароль + Тепер ви можете встановити новий пароль для входу в акаунт. + Введіть новий пароль + Введіть новий пароль ще раз + Е-пошта для відновлення + Е-пошта для відновлення + Ви можете встановити е-пошту, за допомогою якої ви зможете скинути пароль і відновити доступ до Telegram-акаунта. + Ваша е-пошта + Ваша нова е-пошта + Вашу адресу е-пошти змінено. + Код з листа + Щоб підтвердити свою е-пошту %1$s, введіть код, який ми щойно на неї надіслали. + Додайте свою дійсну адресу е-пошти. Це єдиний спосіб відновити забутий пароль. + Пропустити + Попередження + Ні, серйозно.\n\nЯкщо ви забудете пароль, ви втратите доступ до акаунта Telegram. Його буде неможливо відновити. + Майже готово! + Щоб активувати двоетапну перевірку, введіть код з листа, який ми вам надіслали. Не забудьте перевірити теку зі спамом. + Успіх! + Ваш пароль для двоетапної перевірки тепер активовано. + Пароль двоетапної перевірки змінено. + Адреса е-пошти для скидання пароля двоетапної перевірки тепер активна. + Е-пошту для відновлення пароля двоетапної перевірки змінено. + Змінити пароль + Вимкнути пароль + Додати е-пошту для відновлення + Змінити е-пошту для відновлення + Вимкнути пароль + Ви дійсно хочете вимкнути пароль? + Ви дійсно хочете скасувати встановлення двоетапної перевірки? + Ви дійсно хочете скасувати додавання е-пошти для відновлення? + Скасувати скидання пароля? Якщо в майбутньому вам треба буде його скинути, це триватиме ще 7 днів. + ТАК + НІ + Скасувати скидання + Перервати увімкнення + Усі дані, збережені в Telegram Passport, буде втрачено. + Підказка пароля + За бажанням ви можете додати підказку до пароля. + Підказка + Створіть підказку для свого пароля + Створіть підказку для свого пароля. + Паролі не збігаються + Введіть пароль ще раз + Скасувати встановлення двоетапної перевірки + Скасувати встановлення + Перервати додавання е-пошти для відновлення + Перервати + Вимкнути + Щоб активувати двоетапну перевірку, введіть код з листа, який ми вам надіслали. Не забудьте перевірити теку зі спамом. + Щоб завершити встановлення е-пошти для відновлення, перевірте %1$s і введіть код, який ми вам надіслали. Не забудьте перевірити теку зі спамом. + Підказка має відрізнятися від вашого пароля + Недопустима адреса е-пошти, спробуйте ще раз. + На жаль + Оскільки ви не встановили адресу е-пошти для відновлення пароля, вам залишилося або згадати пароль, або скинути акаунт. + Оскільки при встановленні пароля ви не вказали е-пошту для відновлення, вам залишається або згадати пароль, або зачекати 7 днів, після чого ваш пароль буде скинуто. + Ви дійсно хочете скинути пароль двоетапної перевірки? + Пароль двоетапної перевірки скинуто. + СКИНУТИ АКАУНТ + СКИНУТИ ПАРОЛЬ + Ви зможете скинути пароль через %1$s. + Скинути пароль + Код для відновлення + Ми надіслали код відновлення на вказану вами е-пошту:\n\n%1$s + Перевірте електронну пошту та введіть 6-значний код, який ми надіслали вам. + Не маєте доступу до е-пошти %1$s? + Не маєте доступу до е-пошти? + Якщо ви не можете відновити доступ до своєї е-пошти, вам залишилось або згадати пароль, або скинути акаунт. + Якщо ви не маєте доступу до е-пошти для відновлення, ви можете спробувати пригадати пароль або ж зачекати 7 днів, після чого ваш пароль буде скинуто. + Не маєте доступу до %1$s? + Ви нещодавно запитували скидання пароля, але запит був скасований. Будь ласка, зачекайте %1$s, перш ніж зробити новий запит. + СКИНУТИ МІЙ АКАУНТ + Ви втратите всі чати, повідомлення, фото, відео й файли в Telegram, якщо ви продовжите скидання акаунта. + Попередження + Це незворотна дія. Ви втратите всі чати, повідомлення, фото, відео й файли в Telegram, якщо продовжите скидання акаунта. + Скинути акаунт + Пароль + Ви вмикали двоетапну перевірку. Ваш акаунт захищений додатковим паролем. + У вас увімкнено двоетапну перевірку. Ваш акаунт захищений додатковим паролем. + Забули пароль? + Відновлення пароля + Код + Пароль деактивовано + Надіслати код ще раз + Код підтвердження + Введіть код + На вашу е-пошту надіслано код підтвердження. + Увімкнено двоетапну перевірку.\nДля входу в акаунт Telegram вам знадобиться встановлений тут пароль. + Вкажіть е-пошту для входу + Ви отримуватимете коди для входу в Telegram на е-пошту, а не через SMS. Будь ласка, додайте адресу, до якої ви маєте доступ. + Вкажіть нову е-пошту + "Перевірте свою е-пошту %1$s і введіть код, який ми вам щойно надіслали. Не забудьте перевірити теку зі спамом. " + Перевірте вашу е-пошту + Введіть код, який ми щойно надіслали на вашу е-пошту %1$s. + Перевірте свою нову е-пошту + Введіть код, який ми щойно надіслали на вашу нову е-пошту %1$s. + або + + Telegram + Швидкий + Безплатний + Захищений + Потужний + Хмарний + **Найшвидший** месенджер у світі.\n**Безплатний** і **захищений**. + **Telegram** доставляє повідомлення\nшвидше за всі інші застосунки. + У **Telegram** можна безплатно зберігати\nскільки завгодно повідомлень і медіафайлів. + **Telegram** оберігає ваші повідомлення\nвід хакерських атак. + **Telegram** не обмежує вас\nу розмірі чатів і медіа. + **Telegram** надає вам доступ до\nповідомлень з безлічі пристроїв. + Почати спілкування + + dd MMM yyyy + dd MMM yyyy + dd MMMM + dd MMMM yyyy + MMMM yyyy + dd MMM yyyy, h:mm a + dd MMM yyyy, HH:mm + dd MMM yyyy, h:mm a + dd MMM yyyy, HH:mm + dd MMM, h:mm a + dd MMM, HH:mm + LLLL yyyy + LLLL + dd MMM + dd.MM.yy + dd.MM.yyyy + d MMMM + d MMMM yyyy + EEE + EEEE + HH:mm + h:mm a + %1$s, %2$s + d MMM + d MMM yyyy + \'Надіслати сьогодні,\' HH:mm + \'Надіслати\' d MMM\',\' HH:mm + \'Надіслати\' d MMM yyyy\',\' HH:mm + \'Почнеться сьогодні,\' HH:mm + \'Почнеться\' d MMM\',\' HH:mm + \'Почнеться\' d MMM yyyy\',\' HH:mm + \'Почнеться сьогодні,\' HH:mm + \'Почнеться\' d MMM\',\' HH:mm + \'Почнеться\' d MMM yyyy\',\' HH:mm + \'Сьогодні,\' HH:mm + d MMM\',\' HH:mm + d MMM yyyy\',\' HH:mm + \'Нагадати сьогодні,\' HH:mm + \'Нагадати\' d MMM\',\' HH:mm + \'Нагадати\' d MMM yyyy\',\' HH:mm + \ 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 1d65cfec3c..dacea30224 100644 --- a/TMessagesProj/src/main/res/values/strings.xml +++ b/TMessagesProj/src/main/res/values/strings.xml @@ -57,7 +57,6 @@ 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: Your recent attempts to reset this account have been cancelled by its active user. Please try again in 7 days. - RESET ACCOUNT Link is invalid or expired. Success The deletion process was cancelled for your account %1$s. You may close this window now. @@ -201,8 +200,6 @@ 1 month 1 week 1 day - 1 hour - After 3 weeks After 1 month After 1 week After 1 day @@ -213,22 +210,15 @@ Messages in this chat are automatically\ndeleted %1$s after they are sent. New messages in this chat will be automatically deleted in %1$s. Auto-delete is now disabled. - Set auto-delete timer Auto-delete timer History cleared. Chats deleted. Delete contact Are you sure you want to delete this contact? Delete %d contact - Delete %d contacts - Delete %d contacts - Delete %d contacts Delete %d contacts Are you sure you want to delete these contacts? %d contact deleted. - %d contacts deleted. - %d contacts deleted. - %d contacts deleted. %d contacts deleted. Mute Unmute @@ -268,7 +258,6 @@ Secret Photo Secret Video Secret GIF - %1$s is using an older version of Telegram, so secret photos will be shown in compatibility mode.\n\nOnce %2$s updates Telegram, 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 @@ -290,6 +279,7 @@ by %1$s %1$s by %2$s Wrong layout? + Automatically generated layout Send Sticker Send GIF Send Emoji @@ -300,7 +290,6 @@ Emoji status removed. View Pack Pin to top - Sorry, you can only pin %1$s to the top in the main list. More chats can be pinned in Chat Folders. Sorry, you can\'t pin any more chats to the top. Unpin from top Mark as unread @@ -325,6 +314,7 @@ Learn when you are mentioned in groups Mute specific chats and types of chats Continue + Open Settings Your contacts on Telegram Connecting your contacts... This is your Archive @@ -346,14 +336,8 @@ Search Messages Notifications muted Notifications muted for %d chat - Notifications muted for %d chats - Notifications muted for %d chats - Notifications muted for %d chats Notifications muted for %d chats Notifications unmuted for %d chat - Notifications unmuted for %d chats - Notifications unmuted for %d chats - Notifications unmuted for %d chats Notifications unmuted for %d chats Notifications muted for %1$s Notifications unmuted @@ -363,11 +347,7 @@ Notify About\nStories Disabled notifications for **%s** stories. You will receive a notification whenever **%s** posts a new story. - %1$d messages deleted Message deleted - %1$d messages deleted - %1$d messages deleted - %1$d messages deleted %1$d messages deleted No Results No Results @@ -426,7 +406,6 @@ Display shortcuts to your most important chats for quick access.\n\nIf nobody is selected, your most frequent contacts will be shown in this widget. Display the latest message from the chats you choose.\n\nIf no specific chats are selected, your most recent chats will be shown in this widget. Note: Your passcode will be **ignored** for widgets. - Your passcode **will not affect** widgets added to homescreen. Search for chats... Preview of the widget tap to edit widget @@ -437,13 +416,10 @@ Promote to admin Edit admin rights - No removed users Delete Group Leave group Delete group - You will lose all messages in this group. You can add administrators to help you manage your group. Tap and hold to remove them. - Wait! Deleting this group will remove all members and all messages will be lost. Delete the group anyway? Delete the group for all members Delete for all subscribers Group created @@ -483,7 +459,6 @@ Add contacts to your channel If you set a permanent link, other people will be able to find and join your channel.\n\nYou can use a-z, 0-9 and underscores.\nMinimum length is 5 characters. If you set a permanent link, other people will be able to find and join your group.\n\nYou can use a-z, 0-9 and underscores.\nMinimum length is 5 characters. - Warning link People can join your channel by following this link. You can revoke the link any time. People can join your group by following this link. You can revoke the link any time. @@ -565,6 +540,9 @@ Telegram Premium for %1$s View + Congratulations! + You won a prize in a giveaway organized by **un1**.\n\nYour prize is **%d Star**. + You won a prize in a giveaway organized by **un1**.\n\nYour prize is **%d Stars**. Channel photo changed Channel video changed Channel photo removed @@ -577,8 +555,6 @@ UNMUTE Add Admin Remove User - Unban - Tap and hold on user to unban. Do Not Restrict Boosters Turn this on to always allow users who boosted your group to send messages and media. Choose how many boosts a user must give to the group to bypass restrictions on sending messages. @@ -595,7 +571,6 @@ Only channel administrators can see this list. Anyone on Telegram 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. Sorry, this channel is private. Can\'t access the chat @@ -637,9 +612,6 @@ %1$s posted an audio file %1$s posted a sticker %1$s posted a %2$s sticker - Who can add members? - All Members - Only Admins Members will be notified when you post Members will receive a silent notification Sign Messages @@ -686,24 +658,13 @@ Removed by %1$s User Permissions What can this user do? - What can %1$s selected users do? What can %1$s selected user do? - What can %1$s selected users do? - What can %1$s selected users do? - What can %1$s selected users do? What can %1$s selected users do? - Read Messages Send Messages Send Polls Send Text Messages Send Media Send Polls - Send Photos - Send Videos - Send Music - Send Files - Send Voice Messages - Send Video Messages Send Stickers & GIFs Embed Links Change Chat Info @@ -734,9 +695,6 @@ Custom What can this bot do? Manage Group - Manage Channel - Manage group - Manage channel Chat history for new members Set New Photo Set Photo or Video @@ -782,7 +740,6 @@ Are you sure you want to add this bot as an admin to the group **%1$s**? Bots can only be added as administrators. Sorry, bots can only be added to channels as administrators. - MAKE ADMIN %1$s will be removed from admins if you restrict them. Discussion View discussion @@ -804,7 +761,6 @@ \"Chat history for new members\" will be switched to Visible. Are you sure you want to unlink **%1$s** from this group? Are you sure you want to unlink **%1$s** from this channel? - DISCUSS channel Slow Mode Off @@ -866,29 +822,13 @@ Final Results No votes Nobody answered - %1$d votes %1$d vote - %1$d votes - %1$d votes - %1$d votes %1$d votes - %1$d answers %1$d answer - %1$d answers - %1$d answers - %1$d answers %1$d answers - Show More (%1$d) Show More (%1$d) - Show More (%1$d) - Show More (%1$d) - Show More (%1$d) Show More (%1$d) - %1$d more options %1$d more option - %1$d more options - %1$d more options - %1$d more options %1$d more options Option @@ -898,8 +838,6 @@ All admins **No actions here yet**\n\nThe group\'s members and admins have not taken any service actions in the last **48** hours. **No actions here yet**\n\nThe channel\'s admins have not taken any service actions in the last **48** hours. - **No actions found**\n\nNo recent actions that match your query\nhave been found. - No recent actions that contain \'**%1$s**\' have been found. What is the Recent Actions? This is a list of all service actions taken by the group\'s members and admins in the last 48 hours. This is a list of all service actions taken by the channel\'s admins in the last 48 hours. @@ -964,6 +902,7 @@ un1 disabled group invites un1 enabled signatures un1 disabled signatures + un1 renewed subscription un1 enabled authors\' profiles un1 disabled authors\' profiles changed permissions for %1$s\n\nDuration: %2$s @@ -1067,7 +1006,6 @@ New Broadcast List Enter list name You created a broadcast list - Add recipient Remove from broadcast list No audio files @@ -1084,24 +1022,16 @@ Reverse order Select File - Search Recent Files Free %1$s of %2$s Unknown error Unknown error: %s Access error - File size shouldn\'t be greater than %1$s - Storage not mounted - USB transfer active Internal Storage External Storage - System Root SD Card Folder Recent files Files A-Z - No results found - There are no matches with **%1$s** in current directory. - This folder is empty. To send images without compression To send music files Browse the app\'s folder @@ -1110,16 +1040,12 @@ Search music Group Stickers - Choose from your stickers You can choose a sticker set that will be available to all group members when they are chatting in this group. CHOOSE STICKER SET Choose sticker set Choose emoji pack - stickerset You can create your own custom sticker sets using the @stickers bot. You can create your own custom emoji packs using the @stickers bot. - No such sticker set found - Try again or choose from the list below Set as Group Sticker Set Remove Group Sticker Set Set as Group Emoji Pack @@ -1150,8 +1076,8 @@ VIEW MESSAGE OPEN BOT Instant View + Instant View sponsored - recommended Sponsored Recommended Ad @@ -1163,8 +1089,6 @@ Unlike other apps, Telegram 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. Telegram 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, Telegram 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 LEARN MORE https://telegram.org Telegram Ads are very different from ads on other platforms. Ads such as this one: @@ -1179,7 +1103,6 @@ **Learn More >** Understood https://ads.telegram.org - The dark theme will turn automatically during night time Reference %1$s is playing a game... %1$s is selecting location to share... @@ -1200,12 +1123,9 @@ Got a question\nabout Telegram? Gallery Location - Video File - Camera No messages here yet... No scheduled messages here yet... - Forwarded message From From %1$s from: @@ -1213,7 +1133,6 @@ Message Message Message in %1$s - Schedule message SHARE MY PHONE NUMBER Share my contact Add to contacts @@ -1234,7 +1153,6 @@ Cancel Save to downloads Save to GIFs - Delete GIF? Save to music Share Apply localization file @@ -1245,8 +1163,6 @@ Getting Link Info... OPEN IN... Open in... - Send %1$s - Upload %1$s Send as file Send as files Open Link @@ -1308,11 +1224,7 @@ Translation failed. Delete all from %1$s Delete all from users - Delete %1$d Messages? Delete %1$d Message? - Delete %1$d Messages? - Delete %1$d Messages? - Delete %1$d Messages? Delete %1$d Messages? Additional actions Fully ban users @@ -1321,23 +1233,11 @@ Partially restrict this user Proceed Messages Deleted - %1$d users reported for spam. %1$d user reported for spam. - %1$d users reported for spam. - %1$d users reported for spam. - %1$d users reported for spam. %1$d users reported for spam. - %1$d users banned. %1$d user banned. - %1$d users banned. - %1$d users banned. - %1$d users banned. %1$d users banned. - %1$d users restricted. %1$d user restricted. - %1$d users restricted. - %1$d users restricted. - %1$d users restricted. %1$d users restricted. Clear recent emoji Do you want to clear all your recent emoji? @@ -1355,6 +1255,7 @@ REPORT MESSAGES REPORT %1$s Report + Report Report sent Report Spam Report Fake @@ -1375,7 +1276,6 @@ more Pinned Message Previous Message - Pinned poll edited Edit Message Edit Caption @@ -1387,7 +1287,6 @@ Replace media Replace file Replace audio file - Scroll down for bots %1$s Sorry, editing time expired. Add to Home screen @@ -1487,7 +1386,6 @@ Message doesn\'t exist Slow Mode is enabled. You can send\nyour next message in %1$s Tap for photo, hold for video - Tap to view as a list. Send without sound Send as a new photo Replace photo @@ -1516,20 +1414,14 @@ Send a **:darts:** emoji to try your luck. Send a %1$s emoji to try your luck. SEND - PSA PSA - This message provides you with a public service announcement in relation to the ungoing Covid-19 pandemic. Learn more about this initiative at https://telegram.org/blog/coronavirus PSA info test - Covid-19 Notification - This message provides you with a public service announcement in relation to the ungoing Covid-19 pandemic. Learn more about this initiative at https://telegram.org/blog/coronavirus Important Notification This is an important notification. Hide chat Are you sure you want to hide the selected chat? Hide - Send a message or tap on the greeting below to show that you are ready to chat Send a message or tap the greeting below. - %1$s is in %2$s %1$s is %2$s The chat was moved to your main list. d @@ -1538,7 +1430,6 @@ m h w - to private messages and groups Transfer Bot Ownership This will transfer the **full owner** rights for the bot to the selected user. Change Owner @@ -1564,7 +1455,6 @@ Importing file is too large. Failed to upload file. Audio will play at normal speed. - Audio will play at 1.5x speed. Audio will play at %1$sx speed. Audio will play two times faster. Message copied to clipboard. @@ -1580,34 +1470,28 @@ Messages forwarded to **%1$s**. Message forwarded to **%1$s**. Messages forwarded to **%1$s**. - Message forwarded to **%1$s**. - Messages forwarded to **%1$s**. Message forwarded to **a chat**. - Message forwarded to **%1$d chats**. - Message forwarded to **%1$d chats**. - Message forwarded to **%1$d chats**. Message forwarded to **%1$d chats**. Messages forwarded to **a chat**. - Messages forwarded to **%1$d chats**. - Messages forwarded to **%1$d chats**. - Messages forwarded to **%1$d chats**. Messages forwarded to **%1$d chats**. Background shared to **Saved Messages**. Background shared to **%1$s**. Background shared to **%1$s**. Background shared to **%1$s**. - You (sender’s name hidden) - You (senders’ names hidden) Sender names removed - %s: %s From %s No words recognized. Rate transcription %1$s sent you a Gift Code for %2$s of Telegram Premium %1$s sent you a giveaway of %2$sx %3$sm Premium subscriptions + %1$s sent you a giveaway of %3$s stars %2$s %1$s posted a giveaway of %2$sx %3$sm Premium subscriptions + %1$s posted a giveaway of %3$s stars %2$s %1$s sent a giveaway of %3$sx %4$sm Premium subscriptions to the group %2$s + %1$s sent a giveaway of %4$s stars %3$s to the group %2$s + among %d winner + among %d winners %1$s pinned a giveaway %1$s reacted %2$s to your giveaway %1$s reacted %3$s in group %2$s to your giveaway @@ -1700,7 +1584,6 @@ Reply Reply to %1$s Reply to %1$s - Background data restricted. %1$s %2$s %1$s pinned \"%2$s\" in the group %3$s %1$s pinned a message in the group %2$s @@ -1762,8 +1645,6 @@ Telegram Select Contact - Select Contacts - SHARE CONTACT Share Contact Add Contact No contacts yet @@ -1799,7 +1680,6 @@ Phone number You have no contacts on Telegram yet Invite friends to try Telegram - Find people nearby to chat with Search people by username New contact Phone number **%1$s** is not in your contacts list. Do you want to add it? @@ -1842,6 +1722,7 @@ Are you sure you want to revoke the link **%1$s**?\n\nThe group \"**%2$s**\" will become private. Are you sure you want to revoke the link **%1$s**?\n\nThe channel \"**%2$s**\" will become private. Copy Link + Copy E-Mail Copy Number Share Link Share Links @@ -1864,21 +1745,12 @@ Settings Add subscriber Add Member - Set admins BAN FROM THE GROUP Delete and leave group Delete and Leave Group Notifications Change permissions Remove from group - Upgrade to Supergroup - Convert to Supergroup - Convert to supergroup - Warning - This action is irreversible. It is not possible to downgrade a supergroup to a regular group. - **Members limit reached.**\n\nTo go over the limit and get additional features, upgrade to a supergroup:\n\n• Supergroups can get up to %1$s\n• New members can see the full message history\n• Deleted messages will disappear for all members\n• Admins can add a description to the group\n• Creator can set a public link for the group - **In supergroups:**\n\n• New members can see the full message history\n• Deleted messages will disappear for all members\n• Admins can add a description to the group\n• Creator can set a public link for the group - **Note:** this action can\'t be undone. Share contact Add to contacts @@ -1913,17 +1785,12 @@ Add to Existing Contact Bio Add a few words about yourself - None You can add a few lines about yourself. Anyone who opens your profile will see this text. Start Secret Chat - Groups in Common - Groups in common No common groups An error occurred. Encryption Key Self-Destruct Timer - 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 telegram.org https://telegram.org/faq#secret-chats @@ -1937,16 +1804,10 @@ Info Phone Shared content - Photos and videos Links - Audio files Send Message Report - %1$d invite links %1$d invite link - %1$d invite links - %1$d invite links - %1$d invite links %1$d invite links Emoji copied to clipboard. Username copied to clipboard. @@ -1957,7 +1818,6 @@ Username also %1$s - Your Username username Sorry, this username is already taken. This link is already taken.\nHowever, it is currently available for purchase. **Learn more…** @@ -1978,49 +1838,23 @@ Settings Loop Animated Stickers Animated stickers will play in chat continuously. - Animated Stickers Add Stickers Add %1$s - Remove %1$s Add sticker - Add %1$d stickers - Add %1$d stickers - Add %1$d stickers Add %1$d stickers Remove sticker - Remove %1$d stickers - Remove %1$d stickers - Remove %1$d stickers Remove %1$d stickers Add emoji - Add %1$d emoji - Add %1$d emoji - Add %1$d emoji Add %1$d emoji Add emoji pack - Add %1$d emoji packs - Add %1$d emoji packs - Add %1$d emoji packs Add %1$d emoji packs Remove emoji - Remove %1$d emoji - Remove %1$d emoji - Remove %1$d emoji Remove %1$d emoji Remove emoji pack - Remove %1$d emoji packs - Remove %1$d emoji packs - Remove %1$d emoji packs Remove %1$d emoji packs Add mask - Add %1$d masks - Add %1$d masks - Add %1$d masks Add %1$d masks Remove mask - Remove %1$d masks - Remove %1$d masks - Remove %1$d masks Remove %1$d masks Edit Sticker Edit Stickers @@ -2060,11 +1894,7 @@ %1$s is no longer in your masks. Emoji removed. %1$s is no longer in your emoji packs. - %1$d emoji packs is no longer in your emoji. %1$d emoji pack is no longer in your emoji. - %1$d emoji packs are no longer in your emoji. - %1$d emoji packs are no longer in your emoji. - %1$d emoji packs are no longer in your emoji. %1$d emoji packs are no longer in your emoji. Stickers archived. %1$s has been moved to your archive. @@ -2078,11 +1908,7 @@ %1$s has been added to your masks. Emoji added. %1$s has been added to your emoji packs. - %1$d emoji pack has been added to your emoji. %1$d emoji pack has been added to your emoji. - %1$d emoji packs have been added to your emoji. - %1$d emoji packs have been added to your emoji. - %1$d emoji packs have been added to your emoji. %1$d emoji packs have been added to your emoji. Delete for everyone Check **@stickers** bot for more options @@ -2099,7 +1925,6 @@ No emoji found No reactions found No effects found - No masks yet Emoji suggestions **Telegram** 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 @@ -2116,7 +1941,6 @@ None Suggest Animated Emoji Each time you enter an emoji you can replace it with an alternative animated emoji. - These stickers are currently trending on Telegram. You can add custom stickers via the @stickers bot. Artists are welcome to add their own sticker sets using our @stickers bot. Artists are welcome to add their own emoji packs using our @stickers bot. Archived Stickers @@ -2124,7 +1948,6 @@ Archived Emoji Packs No archived stickers No archived masks - No archived emoji packs You can add up to 200 sticker sets.\nUnused sets are archived when you add more. You can add up to 200 emoji packs.\nUnused packs are archived when you add more. You can have up to 200 sets of masks.\nUnused sets are archived when you add more. @@ -2171,7 +1994,6 @@ Brightness threshold Switch to your preferred night theme when ambient lighting falls below %1$d%%. Dark - Dark Blue Day Night Arctic @@ -2187,10 +2009,7 @@ Color theme Color theme changed. You can change it back in *Chat Settings*. - Built-in themes - Custom themes Set link - Theme Link Message corners Chat list view Two lines @@ -2199,8 +2018,6 @@ Apply Theme Preview Select color - Color Themes - Show all Themes Theme not found Sorry, this color theme doesn’t support your device yet. Create new theme @@ -2238,7 +2055,6 @@ These are not the droids you are looking for. Adler Toberg Did someone say peanut butter? - Reinhardt Reinhardt, we need to find you some new tunes 🎶. I can\'t even take you seriously right now. Ah, you kids today with techno music! You should enjoy the classics, like Hasselhoff! @@ -2259,8 +2075,6 @@ Accent Color Background My Messages - RESET ALL - RESET Are you sure you want to change your chat wallpaper to a color? Do you want to use your currently selected background or reset it to the default for this theme? Share theme @@ -2290,21 +2104,20 @@ Debug Account Unblock - Tap and hold on user to unblock. No blocked users yet - Message notifications Show notifications Message Preview Show Senders Name Automatic Exceptions Automatically enable story notifications from 5 users you contact most frequently. - Group notifications Sound In-app notifications In-App Sounds In-App Vibrate Vibrate In-App Preview + In-App Pop on Screen + Show pop-up notifications while in app. Reset Reset All Notifications Undo all custom notification settings for all your contacts, groups and channels. @@ -2320,8 +2133,6 @@ Green Cyan White - Sepia - Dark Pink Font Size Font Type @@ -2335,8 +2146,6 @@ On Off Off until %1$s - Default (On) - Default (Off) Turn On Turn Off Blocked Users @@ -2364,20 +2173,15 @@ Wallpaper Hint: some background images look better when blurred. Woo-hoo! Thanks - Swipe left or right to see more colors. - Salmon is a fish, not a color. Bob Harris Good morning! 👋 Do you know what time it is? It\'s morning in Tokyo 😎 Press \'Set\' to apply the background. Enjoy the view. - SET BACKGROUND Search by color Search Backgrounds Color: - Brightness - Hex color code Colors Colors will move when you send messages Animate @@ -2397,8 +2201,6 @@ Gray White Select a color - Upload image - Select image loading full image... Set a color Messages @@ -2409,13 +2211,8 @@ Translate Messages Show Translate Button Translate Entire Chat - Subscribe to **Telegram Premium** to translate all chat messages at once. Do Not Translate - %1$d Languages %1$d Language - %1$d Languages - %1$d Languages - %1$d Languages %1$d Languages Choose languages The ‘Translate’ button will appear when you make a single tap on a text message. @@ -2426,7 +2223,6 @@ You are about to apply a language pack (**%1$s**) that is %2$d%% complete.\n\nThis will translate the entire interface. You can suggest corrections via the [translation platform].\n\nYou can change your language back at any time in Settings. You are about to apply a custom language pack (**%1$s**) that is %2$d%% complete.\n\nThis will translate the entire interface. You can suggest corrections via the [translation platform].\n\nYou can change your language back at any time in Settings. Insufficient data - 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 Telegram Android. @@ -2535,7 +2331,6 @@ Change profile color Customize Custom - Enable Custom Notifications Importance Same as in Settings Low @@ -2573,11 +2368,8 @@ Are you sure you want to delete all exceptions? New Exception This section will list all chats with non-default notification settings.\n\nYou can customize notifications for a chat by opening its profile and choosing \'Notifications\'. - None %1$d / %2$s Disabled - Sound Alert Frequency - %1$s within %2$s Link Previews Link previews will be generated on Telegram servers. We do not store data about the links you send. Secret chats @@ -2585,7 +2377,6 @@ Show recent chats in Android share menu Emoji Large Emoji - Use system default emoji Telegram for Android %1$s Debug Menu Long press again for debug menu @@ -2599,10 +2390,6 @@ Reset Dialogs Read all Chats Check app update - Enable pause music on record - Disable pause music on record - Enable smooth keyboard - Disable smooth keyboard Enable in-app camera Disable in-app camera Reset Imported Contacts @@ -2660,8 +2447,6 @@ Your device is almost out of disk space. To free some space, you can set up Telegram to cache only recent media. Your device is almost out of disk space. You can use cache settings to remove unnecessary media — and re-download files if you need them again. Manage Cache - Remove media after - Never remove Contacts Private Chats Group Chats @@ -2672,9 +2457,6 @@ Stream Videos and Audio Files Some videos can\'t be streamed – e.g., all videos that were sent from Android using Telegram 4.7 and earlier versions.\n Tap to change phone number - Appearance - Stickers and Masks - Choose custom color schemes Show notifications for All Accounts Turn this off if you want to receive notifications only from your active account. @@ -2687,10 +2469,6 @@ Please note that **%1$s** are listed as exceptions and won\'t be affected by this change. Please note that **%1$s** is listed as an exception and won\'t be affected by this change. View Exceptions - Notifications for groups - Notifications for private chats - Notifications for channels - Story Notifications Tap to change Alternative options Add another account @@ -2722,7 +2500,6 @@ Miles Scan QR Code Scan QR Code - Token invalid or already expired. No auth token found Auth successfull https://getdesktop.telegram.org/ @@ -2733,7 +2510,6 @@ 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. Set Profile Photo - Set Profile Video Update Telegram Version %1$s • %2$s Downloading %1$d%%... @@ -2743,7 +2519,6 @@ **What\'s new?**\n\n• Bug fixes and improvements. Permanent Link is no longer active - Forward to another chat What would you like to do with %1$s from your chat with **%2$s**? What would you like to do with %1$s from **%2$s**? Show senders\’ names @@ -2793,16 +2568,11 @@ Voice messages Videos Music - GIFs - Other files Other - Empty Keep Media Auto-remove cached media Photos, videos and other files from cloud chats that you have **not accessed** during this period will be removed from this device to save disk space. Forever - Voice messages - Video messages Telegram Passport Requested Information @@ -2938,7 +2708,6 @@ Add a Document You have no documents yet You can add your phone number, email address, identity document or residential address. - Tap to correct errors. %1$s or %2$s Your name Your name in %1$s @@ -2993,11 +2762,7 @@ Active Sessions Current session - No other active sessions - You can log in to Telegram 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? Are you sure you want to terminate this session? Logs out all devices except for this one. Terminate sessions @@ -3005,9 +2770,6 @@ Terminate Are you sure you want to terminate all other sessions? Terminate All Other Sessions - unofficial app - No active logins. - You can log in on websites that support signing in with Telegram. Connected websites Logged in with Telegram Tap to disconnect from your Telegram account. @@ -3023,8 +2785,6 @@ The devices above have no access to your messages. The code was entered correctly, but no correct password was given. Folders - Setup - Set Up Folders Create New Folder Create folders for different groups of chats and quickly switch between them. Recommended Folders @@ -3039,12 +2799,8 @@ Non Contacts Groups Channels - Exclude Muted - Exclude Read Edit Delete - Exclude Archived - Unread Delete Folder Muted Read @@ -3059,7 +2815,6 @@ Excluded Chats Choose chats and types of chats that will appear in this folder. Choose chats and types of chats that will not appear in this folder. - Secret Chats Bots Adding chats Please wait a few moments while we fill this folder for you... @@ -3071,7 +2826,6 @@ No Chats Contact Non-Contact - Add Exception Folder name Are you sure you want to delete this folder? Are you sure you want to delete this folder? This will also deactivate all the invite links used to share this folder. @@ -3080,11 +2834,7 @@ Create Folder? You have not finished creating the folder yet. Create now? Create - Show %1$d More Chats Show %1$d More Chat - Show %1$d More Chats - Show %1$d More Chats - Show %1$d More Chats Show %1$d More Chats Remove exception Remove exception @@ -3116,7 +2866,6 @@ When you set up a passcode, a lock icon will apear on the chats page. Tap it to lock and unlock the app. Enable passcode Re-enter your passcode - Set Passcode Switch to password Switch to PIN Passcodes don\'t match. Please try again. @@ -3128,22 +2877,13 @@ Turn Passcode Off Are you sure you want to turn off passcode? Turn Off - PIN - Password - Enter your current passcode - Enter a passcode Enter your new passcode Enter your Telegram passcode - Re-enter your new passcode - Passcodes do not match Auto-lock Require passcode if away for a time. in %1$s Disabled Unlock with Fingerprint - Confirm fingerprint to continue - Touch sensor - Fingerprint not recognized. Try again. Show App Content in Task Switcher App Content in Task Switcher Show Content @@ -3171,10 +2911,7 @@ Music Voice GIFs - Shared Files Shared Content - Shared Links - Shared Music Similar Channels Share photos and videos in this chat and access them on any of your devices. Share music in this chat and access it on any of your devices. @@ -3197,8 +2934,6 @@ %1$s mi away %1$s ft %1$s mi - mi - km %1$s m %1$s km %1$s m from you @@ -3226,7 +2961,6 @@ Location Place Accurate to %1$s - %1$s away Or choose a venue Location on map Tap to send this location @@ -3249,29 +2983,8 @@ For how long do you want to extend sharing your location? Choose for how long %1$s will see your accurate location. Choose for how long people in this chat will see your live location. - Enable GPS Please enable your GPS to access location-based features. - Make Myself Visible - Show Your Profile? - Users nearby will be able to view your profile and send you messages. This may help you find new friends, but could also attract excessive attention. You can stop sharing your profile at any time.\n\nYour phone number will remain hidden. - Stop Showing Me - People Nearby - Add People Nearby - Quickly add people nearby who are viewing this section and discover local group chats.\n\nPlease switch on location access to enable this feature. - People nearby - Allow Access - Quickly add people nearby who are also viewing this section and discover local group chats.\n\nPlease turn on location services to enable this feature. - Turn On - Groups nearby - Exchange contact info with people nearby and find new friends. - Looking for users around you... - Create a Local Group - Start Group - Anyone close to this location (neighbors, co-workers, fellow students, event attendees, visitors of a venue) will be able to see your group in the People Nearby section. - If you start an unrelated group at this location, you may lose the ability to create location-based groups. - Set Location Set this location - People will be able to find your group in the \"People Nearby\" section. Places in this area Open in Maps Proximity alert @@ -3315,7 +3028,6 @@ Stop downloading Save to gallery %1$d of %2$d - **%1$d** of %2$d %1$d message %1$d messages %2$s result @@ -3334,9 +3046,7 @@ No recent searches Images GIFs - No recent GIFs FIND IMAGES - WEB SEARCH FIND GIFS Search web Search GIFs @@ -3388,25 +3098,14 @@ Remove Clear Add a caption... - Photo Caption - Video Caption - GIF Caption Caption Delete Edit - Pen - Marker - Neon Arrow Duplicate - Outlined - Regular - Framed Reset Original Square - Show media as separate messages - Group media into one message Send without grouping Send without compression Choose a cover for your profile video @@ -3426,35 +3125,15 @@ GIF saved to **downloads**. File saved to music File saved to **downloads**. - %1$d files saved to **downloads**. File saved to **downloads**. - %1$d files saved to **downloads**. - %1$d files saved to **downloads**. - %1$d files saved to **downloads**. %1$d files saved to **downloads**. - %1$d photos saved to gallery Photo saved to gallery - %1$d photos saved to gallery - %1$d photos saved to gallery - %1$d photos saved to gallery %1$d photos saved to gallery - %1$d videos saved to gallery Video saved to gallery - %1$d videos saved to gallery - %1$d videos saved to gallery - %1$d videos saved to gallery %1$d videos saved to gallery - %1$d files saved to music File saved to music - %1$d files saved to music - %1$d files saved to music - %1$d files saved to music %1$d files saved to music - %1$d items saved to gallery An item saved to gallery - %1$d items saved to gallery - %1$d items saved to gallery - %1$d items saved to gallery %1$d items saved to gallery Two-Step Verification @@ -3484,9 +3163,7 @@ Back to Settings Please enter your password to complete the transfer. Please enter your password to withdraw. - Enter a password Enter a new password - Enter your new password Re-enter your password New Password You can now set a new password that will be used to log into your account. @@ -3498,8 +3175,6 @@ Your email Your new email Your email has been changed. - Your Email Code - Please confirm your email address by entering the code you just received on %1$s. Please add your valid email. It is the only way to recover a forgotten password. Skip Warning @@ -3507,7 +3182,6 @@ Almost there! Please check your email (don\'t forget the spam folder) to complete Two-Step Verification setup. Success! - Your password for Two-Step Verification is now active. Your password for Two-Step Verification has been changed. Your recovery email for Two-Step Verification is now active. Your recovery email for Two-Step Verification is changed. @@ -3538,7 +3212,6 @@ Abort Disable To complete Two-Step Verification Setup, check your email (don\'t forget the spam folder) and enter the code we just sent you. - To complete reсoverу email setup, check %1$s (don\'t forget the spam folder) and enter the code we just sent you. Hint must be different from your password Invalid email address. Please check that you\'ve entered it correctly and try again. Sorry @@ -3560,7 +3233,6 @@ Unable to access %1$s? You recently requested a password reset that was canceled. Please wait %1$s before making a new request. RESET MY ACCOUNT - You will lose all your chats and messages, along with any media and files you shared, if you proceed with resetting your account. Warning This action can\'t be undone.\n\nIf you reset your account, all your messages and chats will be deleted. Reset account @@ -3606,19 +3278,9 @@ Received Bytes sent Bytes received - Files sent - Files received - **%s** files sent **%s** file sent - **%s** files sent - **%s** files sent - **%s** files sent **%s** files sent - **%s** files received **%s** file received - **%s** files received - **%s** files received - **%s** files received **%s** files received Files Calls @@ -3626,17 +3288,9 @@ Incoming calls Internal calls notifications You can change ringtone sound in Telegram -> Settings -> Notifications and Sounds. - %1$d outgoing calls %1$d outgoing call - %1$d outgoing calls - %1$d outgoing calls - %1$d outgoing calls %1$d outgoing calls - %1$d incoming calls %1$d incoming call - %1$d incoming calls - %1$d incoming calls - %1$d incoming calls %1$d incoming calls Total time Total @@ -3744,7 +3398,6 @@ Never Share Add Users Sorry, too many requests. Unable to change privacy settings now, please wait. - Tap and hold on user to delete. Invites You can restrict which users are allowed to add you to groups and channels. Who can add me to group chats? @@ -3755,13 +3408,6 @@ Change who can add you to groups and channels. Sorry, you can\'t add this user to groups because of user\'s privacy settings. Sorry, you can\'t add this user to channels because of user\'s privacy settings. - Can\'t add this user - Can\'t add some users - Can\'t add these users - Sorry, you can\'t add **%1$s** to groups because of **%1$s**\'s privacy settings. - Sorry, you can\'t add **%1$s** and **%2$s** to groups because of their privacy settings. - 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 Telegram servers to avoid revealing your IP address, but may slightly decrease audio quality. Delete Synced Contacts @@ -3780,7 +3426,6 @@ bot Share - Add to group Settings Help has access to messages @@ -3788,10 +3433,7 @@ What can this bot do? START RESTART - Stop bot Restart bot - Open page - **%1$s** would like to open its web app to proceed.\n\nIt will be able to access your **IP address** and basic device info. Add to Menu This bot can\'t be opened in chats with bots. This bot can\'t be opened in chats with users. @@ -3799,7 +3441,6 @@ This bot can\'t be opened in channels. This link does not lead to a bot. Remove bot - Message Preview Choose a file Settings Open bot @@ -3835,11 +3476,8 @@ Rename Delete Start - Delete and stop Forward Retry - From camera - From gallery Remove photo Set OK @@ -3849,9 +3487,7 @@ Create Link CROP Update app - UPDATE NOW UPDATE - LATER Accept Agree Decline @@ -3865,7 +3501,6 @@ You joined the group via invite link un1 deleted invite link un2 - un1 created invite link un2 un1 edited invite link un2 to un3 un1 changed un2 volume to %1$d%% un1 revoked invite link un2 @@ -4015,19 +3650,11 @@ Do you want to add **%1$s** to the group **%2$s**? Number of last messages to forward: Add %1$s to the group? - Add %1$s Add member - Add %1$d members - Add %1$d members - Add %1$d members Add %1$d members - Add member Are you sure you want to add %1$s to **%2$s**? Are you sure you want to add member to **%2$s**? - Are you sure you want to add %1$d members to **%2$s**? - Are you sure you want to add %1$d members to **%2$s**? Are you sure you want to add %1$d members to **%2$s**? - Are you sure you want to add %1$s to **%2$s**? Show the last 100 messages to the new members Show the last 100 messages to **%1$s** Do you want to send this message to **%1$s**? @@ -4048,7 +3675,6 @@ Are you sure you want to delete the chat with **%1$s** and block them? Are you sure you want to delete **Saved Messages**? Are you sure you want to delete the secret chat with **%1$s**? - Are you sure you want to delete the chat **%1$s**? Delete cloud drafts Are you sure you want to delete all cloud drafts? Share your location? @@ -4110,7 +3736,6 @@ Please allow Telegram 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 Sorry, you can\'t add this user as an admin because they are not a member of this group and you are not allowed to add them. Sorry, you can\'t add this user as an admin because they are in the Removed Users list and you can\'t unban them. Sorry, you can\'t add this user because they are in the Removed Users list and you can\'t unban them. @@ -4143,17 +3768,15 @@ 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. Telegram 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 Telegram\'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 Telegram account along with all the data you store in the Telegram 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 Telegram Desktop and go to Settings > Export Telegram 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. **Telegram** needs microphone access so that you can send voice messages. Tap Settings -> Permissions, and turn **Microphone** on. + **Telegram** needs bluetooth access to record video from your headset microphone. Tap Settings -> Permissions, and turn **Bluetooth** on. **Telegram** needs microphone access so that you can send voice messages. Tap Settings -> Permissions, and turn **Microphone** on. **Telegram** needs camera access so that you can take photos and videos. Tap Settings -> Permissions, and turn **Camera** on. **Telegram** needs camera and microphone access so that you can send video messages. Tap Settings -> Permissions, and turn **Microphone** and **Camera** on. Telegram needs access to your location so that you can share it with your friends. Telegram needs access to your location so that you can add your current weather widget to a story. - Telegram needs access to your location. **Telegram** needs access to location so that you can share it with your friends. Tap Settings -> Permissions, and turn **Location** on. - **Telegram** needs access to location so that you can find people nearby. Tap Settings -> Permissions, and turn **Location** on. **Telegram** needs access to location so that you can get directions. Tap Settings -> Permissions, and turn **Location** on. **Telegram** needs access to contacts so that you can share them with your friends. Tap Settings -> Permissions, and turn **Contacts** on. **Telegram** needs storage access so you can upload profile picture. Tap Settings -> Permissions, and turn **Files and media** on. @@ -4162,13 +3785,13 @@ Overlay mode lets you use push-to-talk and see who is talking even when you are outside of Telegram. SETTINGS Please allow Telegram to be shown on the lock screen so that calls can work properly. + Please allow Telegram to be shown on the lock screen so that calls can work properly. To share your live location in this chat, Telegram 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 Growth Followers - Interactions Views and Shares Reactions Story Views and Shares @@ -4185,7 +3808,6 @@ Views by hours Slide up to lock recording Notifications - Device storage %s Free Clear Telegram Cache Overview @@ -4210,35 +3832,15 @@ Messages Viewing Members Posting Members - %1$d symbols %1$d symbol - %1$d symbols - %1$d symbols - %1$d symbols %1$d symbols - %1$d deletions %1$d deletion - %1$d deletions - %1$d deletions - %1$d deletions %1$d deletions - %1$d bans %1$d ban - %1$d bans - %1$d bans - %1$d bans %1$d bans - %1$d restrictions %1$d restriction - %1$d restrictions - %1$d restrictions - %1$d restrictions %1$d restrictions - %1$d invitations %1$d invitation - %1$d invitations - %1$d invitations - %1$d invitations %1$d invitations Top admins Top members @@ -4252,7 +3854,6 @@ Views Public Shares Private Shares - View Stats View Statistics View Channel Stats Message Statistic @@ -4274,12 +3875,10 @@ Account Settings Use less data for calls - Incoming call Connecting Exchanging encryption keys Waiting Requesting - Hanging up Call ended Failed to connect Ringing @@ -4349,7 +3948,6 @@ Call Back Call Again Default - Do you want to delete this entry from the calls log? Telegram Call Telegram Video Call Telegram Voice Call @@ -4369,14 +3967,12 @@ Doesn\'t reveal chat contents and helps us fix the issue sooner. Thank you for helping make Telegram calls better. 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 Telegram 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 Telegram Call to %s Telegram Video Call to %s @@ -4396,7 +3992,6 @@ You\'re Live Muted by admin Muted - You are in Listen Only Mode tap if you want to speak You asked to speak We let the speakers know @@ -4412,7 +4007,6 @@ Accept Decline Retry - Video Are you sure you want to call **%1$s**? Voice Call Are you sure you want to video call **%1$s**? @@ -4422,15 +4016,9 @@ Voice Chat Start Live stream Live Stream - Do you want to start a voice chat in this group? - Do you want to start a live stream in this channel? Manage Live Streams Join - %1$s members talking %1$s member talking - %1$s members talking - %1$s members talking - %1$s members talking %1$s members talking speaking %1$d%% speaking @@ -4441,7 +4029,6 @@ Minimize Leave End - Mute microphone Remove participant Do you want to remove %1$s from the voice chat and ban them in %2$s? Do you want to remove %1$s from the live stream and ban them in %2$s? @@ -4490,7 +4077,6 @@ Remove Open Profile Open Channel - Open Group Allow to speak Search members to invite... Copy Invite Link @@ -4501,7 +4087,6 @@ You invited **%1$s** to the voice chat. You invited **%1$s** to the live stream. Add - Volume Mute for me Muted for me Unmute for me @@ -4537,7 +4122,6 @@ Do you want to start recording this chat and save the result into a video file?\n\nOther members will see that the chat is being recorded. Do you want to start recording this live stream and save the result into a video file?\n\nOther members will see that the stream is being recorded. Do you want to start recording this chat and save the result into a video file? - Do you want to start recording this live stream and save the result into a video file? Recording Title Audio saved to **Saved Messages**. Video saved to **Saved Messages**. @@ -4586,9 +4170,7 @@ Add Photo Add Bio Edit Name - Bio You can add a few lines about yourself. Everyone will see this text. - Tap to add a Bio Edit Bio Add description Edit description @@ -4601,9 +4183,6 @@ Title Set New Photo Camera - Video Preview - Share Camera Video - Preview Pin Unpin Audio @@ -4679,7 +4258,6 @@ Everyone on Telegram 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. Invite links created by this admin Invite links created by other admins Invite link for this admin @@ -4699,18 +4277,10 @@ Voice call %1$s Video call %1$s - Revoke %d links Revoke link - Revoke %d links - Revoke %d links - Revoke %d links Revoke %d links - Leave %d communities Leave community - Leave %d communities - Leave %d communities - Leave %d communities Leave %d communities Do you want remove this document from Downloads? @@ -4722,11 +4292,7 @@ Proceed without a password? If you do not set a password, you will only be able to log into your account via SMS once every %1$s day. Proceed without a password? If you do not set a password, you will only be able to log into your account via SMS once every %1$s days. - Messages for %1$s days deleted Messages for %1$s day deleted - Messages for %1$s days deleted - Messages for %1$s days deleted - Messages for %1$s days deleted Messages for %1$s days deleted Delete %1$s day @@ -4736,710 +4302,242 @@ un1 are speaking Delete background Delete %1$d backgrounds - %1$d recipients %1$d recipient - %1$d recipients - %1$d recipients - %1$d recipients %1$d recipients - %1$d online %1$d online - %1$d online - %1$d online - %1$d online %1$d online - %1$d contacts on Telegram %1$d contact on Telegram - %1$d contacts on Telegram - %1$d contacts on Telegram - %1$d contacts on Telegram %1$d contacts on Telegram - Hey, I\'m using Telegram to chat – and so are %1$d of our other contacts. Join us! Download it here: %2$s Hey, I\'m using Telegram to chat – and so are %1$d of our other contact. Join us! Download it here: %2$s - Hey, I\'m using Telegram to chat – and so are %1$d of our other contacts. Join us! Download it here: %2$s - Hey, I\'m using Telegram to chat – and so are %1$d of our other contacts. Join us! Download it here: %2$s - Hey, I\'m using Telegram to chat – and so are %1$d of our other contacts. Join us! Download it here: %2$s Hey, I\'m using Telegram 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 - %1$d people joined - %1$d people joined %1$d people joined - %1$d remaining - %1$d remaining %1$d remaining - %1$d remaining - %1$d remaining - %1$d remaining - %1$d can join - %1$d can join + %1$d remaining %1$d can join - %1$d can join - %1$d can join - %1$d can join - %1$d days left - %1$d days left + %1$d can join %1$d day left - %1$d days left - %1$d days left - %1$d days left - %1$d chats + %1$d days left %1$d chat - %1$d chats - %1$d chats - %1$d chats %1$d chats - %1$d chats %1$d chat - %1$d chats - %1$d chats - %1$d chats %1$d chats - %1$d chats %1$d chat - %1$d chats - %1$d chats - %1$d chats %1$d chats - %1$d chats %1$d chat - %1$d chats - %1$d chats - %1$d chats %1$d chats - %1$d chats %1$d chat - %1$d chats - %1$d chats - %1$d chats %1$d chats - %1$d channels %1$d channel - %1$d channels - %1$d channels - %1$d channels %1$d channels - %1$d groups %1$d group - %1$d groups - %1$d groups - %1$d groups %1$d groups - %1$d members %1$d member - %1$d members - %1$d members - %1$d members %1$d members - %1$d participants %1$d participant - %1$d participants - %1$d participants - %1$d participants %1$d participants - %1$d watching %1$d watching - %1$d watching - %1$d watching - %1$d watching %1$d watching - and %1$d more are typing and %1$d more are typing - and %1$d more are typing - and %1$d more are typing - and %1$d more are typing and %1$d more are typing - %1$s and %2$d more are typing %1$s and %2$d more are typing - %1$s and %2$d more are typing - %1$s and %2$d more are typing - %1$s and %2$d more are typing %1$s and %2$d more are typing - %1$d new messages %1$d new message - %1$d new messages - %1$d new messages - %1$d new messages %1$d new messages - %1$d messages unpinned Message unpinned - %1$d messages unpinned - %1$d messages unpinned - %1$d messages unpinned %1$d messages unpinned - %1$d messages %1$d message - %1$d messages - %1$d messages - %1$d messages %1$d messages - **%1$d** messages **%1$d** message - **%1$d** messages - **%1$d** messages - **%1$d** messages **%1$d** messages - %1$d items %1$d item - %1$d items - %1$d items - %1$d items %1$d items - from %1$d chats from %1$d chat - from %1$d chats - from %1$d chats - from %1$d chats from %1$d chats - %1$d seconds %1$d second - %1$d seconds - %1$d seconds - %1$d seconds %1$d seconds - %1$d minutes %1$d minute - %1$d minutes - %1$d minutes - %1$d minutes %1$d minutes - %1$d hours %1$d hour - %1$d hours - %1$d hours - %1$d hours %1$d hours - %1$d days %1$d day - %1$d days - %1$d days - %1$d days %1$d days - %1$d seconds %1$d second - %1$d seconds - %1$d seconds - %1$d seconds %1$d seconds - %1$d minutes %1$d minute - %1$d minutes - %1$d minutes - %1$d minutes %1$d minutes - %1$d hours %1$d hour - %1$d hours - %1$d hours - %1$d hours %1$d hours - %1$d days %1$d day - %1$d days - %1$d days - %1$d days %1$d days - %1$d weeks %1$d week - %1$d weeks - %1$d weeks - %1$d weeks %1$d weeks - %1$d months %1$d month - %1$d months - %1$d months - %1$d months %1$d months - %1$d-month %1$d-month - %1$d-months - %1$d-months - %1$d-months %1$d-months - %1$d-month %1$d-month - %1$d-month - %1$d-month - %1$d-month %1$d-month **%1$d** month - **%1$d** months - **%1$d** months - **%1$d** months **%1$d** months - **%1$d** years **%1$d** year - **%1$d** years - **%1$d** years - **%1$d** years **%1$d** years - %1$d years %1$d year - %1$d years - %1$d years - %1$d years %1$d years - %1$d users %1$d user - %1$d users - %1$d users - %1$d users %1$d users - %1$d times %1$d time - %1$d times - %1$d times - %1$d times %1$d times - %1$d meters %1$d meter - %1$d meters - %1$d meters - %1$d meters %1$d meters - %1$d stickers %1$d sticker - %1$d stickers - %1$d stickers - %1$d stickers %1$d stickers - %1$d masks %1$d mask - %1$d masks - %1$d masks - %1$d masks %1$d masks - %1$d emoji %1$d emoji - %1$d emoji - %1$d emoji - %1$d emoji %1$d emoji - %1$d Emoji %1$d Emoji - %1$d Emoji - %1$d Emoji - %1$d Emoji %1$d Emoji - %1$d Emoji Packs %1$d Emoji Pack - %1$d Emoji Packs - %1$d Emoji Packs - %1$d Emoji Packs %1$d Emoji Packs - %1$d subscribers %1$d subscriber - %1$d subscribers - %1$d subscribers - %1$d subscribers %1$d subscribers - %1$d exceptions %1$d exception - %1$d exceptions - %1$d exceptions - %1$d exceptions %1$d exceptions - %1$d automatic exceptions %1$d automatic exception - %1$d automatic exceptions - %1$d automatic exceptions - %1$d automatic exceptions %1$d automatic exceptions - %1$d removed users %1$d removed user - %1$d removed users - %1$d removed users - %1$d removed users %1$d removed users - %1$d %1$d - %1$d - %1$d - %1$d %1$d - updated %1$d minutes ago updated %1$d minute ago - updated %1$d minutes ago - updated %1$d minutes ago - updated %1$d minutes ago updated %1$d minutes ago now today yesterday - %dm %dm - %dm - %dm - %dm %dm - %dh %dh - %dh - %dh - %dh %dh - %1$d minutes ago %1$d minute ago - %1$d minutes ago - %1$d minutes ago - %1$d minutes ago %1$d minutes ago - **%1$d** seconds **%1$d** second - **%1$d** seconds - **%1$d** seconds - **%1$d** seconds **%1$d** seconds - **%1$d** minutes **%1$d** minute - **%1$d** minutes - **%1$d** minutes - **%1$d** minutes **%1$d** minutes - **%1$d** hours **%1$d** hour - **%1$d** hours - **%1$d** hours - **%1$d** hours **%1$d** hours - **%1$d** days **%1$d** day - **%1$d** days - **%1$d** days - **%1$d** days **%1$d** days - %1$s views %1$s view - %1$s views - %1$s views - %1$s views %1$s views - %1$s shares %1$s share - %1$s shares - %1$s shares - %1$s shares %1$s shares - %1$s public shares %1$s public share - %1$s public shares - %1$s public shares - %1$s public shares %1$s public shares - %1$s shared %1$s shared - %1$s shared - %1$s shared - %1$s shared %1$s shared - %1$s sticker sets %1$s sticker set - %1$s sticker sets - %1$s sticker sets - %1$s sticker sets %1$s sticker sets - %1$d forwarded messages Forwarded message - %1$d forwarded messages - %1$d forwarded messages - %1$d forwarded messages %1$d forwarded messages - Forward %1$d messages Forward message - Forward %1$d messages - Forward %1$d messages - Forward %1$d messages Forward %1$d messages - %1$d photos %1$d photo - %1$d photos - %1$d photos - %1$d photos %1$d photos - %1$d videos %1$d video - %1$d videos - %1$d videos - %1$d videos %1$d videos - %1$d files %1$d file - %1$d files - %1$d files - %1$d files %1$d files - %1$d music files %1$d music file - %1$d music files - %1$d music files - %1$d music files %1$d music files - %1$d groups in common %1$d group in common - %1$d groups in common - %1$d groups in common - %1$d groups in common %1$d groups in common - %1$d media %1$d media - %1$d media - %1$d media - %1$d media %1$d media - %1$d voice messages %1$d voice message - %1$d voice messages - %1$d voice messages - %1$d voice messages %1$d voice messages - %1$d links %1$d link - %1$d links - %1$d links - %1$d links %1$d links - %1$d GIFs %1$d GIF - %1$d GIFs - %1$d GIFs - %1$d GIFs %1$d GIFs - %1$d blocked users %1$d blocked user - %1$d blocked users - %1$d blocked users - %1$d blocked users %1$d blocked users - %1$d forwarded files Forwarded file - %1$d forwarded files - %1$d forwarded files - %1$d forwarded files %1$d forwarded files - %1$d forwarded photos Forwarded photo - %1$d forwarded photos - %1$d forwarded photos - %1$d forwarded photos %1$d forwarded photos - Forward %1$d files Forward file - Forward %1$d files - Forward %1$d files - Forward %1$d files - Forward %1$d files - Forward %1$d photos Forward photo - Forward %1$d photos - Forward %1$d photos - Forward %1$d photos Forward %1$d photos - Forward %1$d videos Forward video - Forward %1$d videos - Forward %1$d videos - Forward %1$d videos Forward %1$d videos - Forward %1$d audio files Forward audio file - Forward %1$d audio files - Forward %1$d audio files - Forward %1$d audio files Forward %1$d audio files - Forward %1$d voice messages Forward voice message - Forward %1$d voice messages - Forward %1$d voice messages - Forward %1$d voice messages Forward %1$d voice messages - Forward %1$d video messages Forward video message - Forward %1$d video messages - Forward %1$d video messages - Forward %1$d video messages Forward %1$d video messages - Forward %1$d locations Forward location - Forward %1$d locations - Forward %1$d locations - Forward %1$d locations Forward %1$d locations - Forward %1$d contacts Forward contact - Forward %1$d contacts - Forward %1$d contacts - Forward %1$d contacts Forward %1$d contacts - Forward %1$d stickers Forward sticker - Forward %1$d stickers - Forward %1$d stickers - Forward %1$d stickers Forward %1$d stickers - Forward %1$d polls Forward poll - Forward %1$d polls - Forward %1$d polls - Forward %1$d polls Forward %1$d polls - %1$d forwarded videos Forwarded video - %1$d forwarded videos - %1$d forwarded videos - %1$d forwarded videos %1$d forwarded videos - %1$d forwarded audio files Forwarded audio file - %1$d forwarded audio files - %1$d forwarded audio files - %1$d forwarded audio files %1$d forwarded audio files - %1$d forwarded voice messages Forwarded voice message - %1$d forwarded voice messages - %1$d forwarded voice messages - %1$d forwarded voice messages %1$d forwarded voice messages - %1$d forwarded video messages Forwarded video message - %1$d forwarded video messages - %1$d forwarded video messages - %1$d forwarded video messages %1$d forwarded video messages - %1$d forwarded locations Forwarded location - %1$d forwarded locations - %1$d forwarded locations - %1$d forwarded locations %1$d forwarded locations - %1$d forwarded contacts Forwarded contact - %1$d forwarded contacts - %1$d forwarded contacts - %1$d forwarded contacts %1$d forwarded contacts - %1$d forwarded stickers Forwarded sticker - %1$d forwarded stickers - %1$d forwarded stickers - %1$d forwarded stickers %1$d forwarded stickers - %1$d forwarded polls Forwarded poll - %1$d forwarded polls - %1$d forwarded polls - %1$d forwarded polls %1$d forwarded polls - and %1$d others and %1$d other - and %1$d others - and %1$d others - and %1$d others and %1$d others - %1$d photos selected %1$d photo selected - %1$d photos selected - %1$d photos selected - %1$d photos selected %1$d photos selected - %1$d videos selected %1$d video selected - %1$d videos selected - %1$d videos selected - %1$d videos selected %1$d videos selected - %1$d media selected %1$d media selected - %1$d media selected - %1$d media selected - %1$d media selected %1$d media selected - %1$d people are using this theme %1$d person is using this theme - %1$d people are using this theme - %1$d people are using this theme - %1$d people are using this theme %1$d people are using this theme - %1$d of %2$d results %1$d of %2$d results - %1$d of %2$d results - %1$d of %2$d results - %1$d of %2$d results %1$d of %2$d results - %1$d users %1$d user - %1$d users - %1$d users - %1$d users %1$d users - %1$d users %1$d user - %1$d users - %1$d users - %1$d users %1$d users - %1$d of %2$d selected %1$d of %2$d selected - %1$d of %2$d selected - %1$d of %2$d selected - %1$d of %2$d selected %1$d of %2$d selected - View %1$d Replies View %1$d Reply - View %1$d Replies - View %1$d Replies - View %1$d Replies View %1$d Replies - %1$d Replies %1$d Reply - %1$d Replies - %1$d Replies - %1$d Replies %1$d Replies - %1$d Comments %1$d Comment - %1$d Comments - %1$d Comments - %1$d Comments %1$d Comments - %1$d comments %1$d comment - %1$d comments - %1$d comments - %1$d comments %1$d comments - comments comment - comments - comments - comments comments - %1$d Pinned Messages Pinned Message - %1$d Pinned Messages - %1$d Pinned Messages - %1$d Pinned Messages %1$d Pinned Messages - %s people can join via this link - %s people can join via this link - %s peoples can join via this link - %s peoples can join via this link - %s peoples can join via this link - %s peoples can join via this link - %1$d Dialogs pinned + %s person can join via this link + %s people can join via this link Dialog pinned - %1$d Dialogs pinned - %1$d Dialogs pinned - %1$d Dialogs pinned %1$d Dialogs pinned - %1$d Dialogs unpinned Dialog unpinned - %1$d Dialogs unpinned - %1$d Dialogs unpinned - %1$d Dialogs unpinned %1$d Dialogs unpinned Forward media Would you like to forward... @@ -5447,25 +4545,15 @@ Would you like to save... This photo This media - All %1$d photos - All %1$d photos + All %1$d photo All %1$d photos - All %1$d media - All %1$d media + All %1$d media All %1$d media - %1$d Seen Seen - %1$d Seen - %1$d Seen - %1$d Seen %1$d Seen - %1$d Played Played - %1$d Played - %1$d Played - %1$d Played %1$d Played Group @@ -5507,7 +4595,6 @@ Send notifications Bot commands Bot keyboard - Show keyboard Record voice message Record video message Open chat @@ -5525,7 +4612,6 @@ Forwarding from Editing Lock application - Unlock application Backspace Fingerprint Previous @@ -5558,14 +4644,12 @@ Go to bottom Go to next mention Go to next unread reactions - Mute microphone Title Heading My location Notify when in range Video quality Aspect ratio - Take one more picture Seen Not seen Sending @@ -5587,42 +4671,21 @@ Downloaded %1$s of %2$s Uploaded %1$s of %2$s Viewed %1$d time - Viewed %1$d times - Viewed %1$d times - Viewed %1$d times Viewed %1$d times Has %1$d reply - Has %1$d replies - Has %1$d replies - Has %1$d replies Has %1$d replies %1$s has seen %1$s reacted with %2$s You reacted with %1$s %1$d person reacted with %2$s - %1$d people reacted with %2$s - %1$d people reacted with %2$s - %1$d people reacted with %2$s %1$d people reacted with %2$s Send %1$d photo - Send %1$d photos - Send %1$d photos - Send %1$d photos Send %1$d photos Send %1$d file - Send %1$d files - Send %1$d files - Send %1$d files Send %1$d files Send %1$d audio file - Send %1$d audio files - Send %1$d audio files - Send %1$d audio files Send %1$d audio files Share in %1$d chat - Share in %1$d chats - Share in %1$d chats - Share in %1$d chats Share in %1$d chats Correct answer Incorrect answer @@ -5641,14 +4704,8 @@ Bot menu Verified %1$d mention - %1$d mentions - %1$d mentions - %1$d mentions %1$d mentions %1$d unread chat - %1$d unread chats - %1$d unread chats - %1$d unread chats %1$d unread chats With new reaction Choose speed @@ -5665,8 +4722,6 @@ MMM dd yyyy, HH:mm MMM dd, h:mm a MMM dd, HH:mm - LLLL yyyy - LLLL MMM dd dd.MM.yy dd.MM.yyyy @@ -5727,7 +4782,6 @@ Hide caption Tap here for forwarding options Tap here for reply options - Change colors Set Wallpaper Select theme Apply Theme @@ -5749,7 +4803,6 @@ Optimizing Telegram... 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 **oo** watching %1$s %1$s is **oo** watching %2$s Theme will be also applied for **%s**. @@ -5776,11 +4829,7 @@ No join requests %1$s, %2$s %1$s, %2$s and %3$s - %1$s, %2$s and %3$d other members %1$s, %2$s and %3$d other member - %1$s, %2$s and %3$d other members - %1$s, %2$s and %3$d other members - %1$s, %2$s and %3$d other members %1$s, %2$s and %3$d other members Request to Join Group Request to Join Channel @@ -5791,17 +4840,9 @@ You will be added to the channel once its admins approve your request. Member Requests Subscribe Requests - %1$d requested to join %1$d requested to join - %1$d requested to join - %1$d requested to join - %1$d requested to join %1$d requested to join - %1$d users requested to join %1$d user requested to join - %1$d users requested to join - %1$d users requested to join - %1$d users requested to join %1$d users requested to join You have no pending requests\nto join your group. Add to Group @@ -5846,14 +4887,8 @@ This story contains **%s** This message contains emoji from %s pack. This message contains emoji from **%d Packs**. - This message contains emoji from **%d Packs**. - This message contains emoji from **%d Packs**. - This message contains emoji from **%d Packs**. This reactions contains emoji from %s pack. This reactions contains emoji from **%d Packs**. - This reactions contains emoji from **%d Packs**. - This reactions contains emoji from **%d Packs**. - This reactions contains emoji from **%d Packs**. This reaction is an emoji from %s pack. Send message as... VIEW POST @@ -5866,10 +4901,7 @@ Turn this on if you expect users to join your group before being able to send messages. Approve new members Turn this on if you want users to join the group only after they are approved by an admin. - Please allow **Telegram** to manage all files to open in-app file browser - Telegram needs permission to manage all files to migrate old cache files to Scoped Storage Allow - Use Another App Application Location based on the IP address IP address @@ -5885,7 +4917,6 @@ Migrate old folder to Scoped Storage Select this day No messages for this day - Don\'t ask again Select Days Clear History for these days un1 enabled forwarding from this group @@ -5905,7 +4936,6 @@ Accept Calls Yes, i\'m sure Warning - No, let me set a password **%1$s** is an admin of **%2$s**, a group you requested to join. **%1$s** is an admin of **%2$s**, a channel you requested to join. Chat with channel\'s admin @@ -5915,25 +4945,14 @@ You received this message because you requested to join **%1$s** on %2$s un1 sent this message: Get code on this phone - Migration Move Files Now Migrate Files to Scoped Storage Due to a change made by **Google**, we need to move the files you downloaded using **Telegram** to a new folder.\n\nThis may take a few moments. You can continue using the app while the files are moved. Migrating files - - %1$d reactions - %1$d reactions %1$d reaction - %1$d reactions - %1$d reactions - %1$d reactions - %1$s Reacted - %1$s Reacted + %1$d reactions %1$s Reacted - %1$s Reacted - %1$s Reacted - %1$s Reacted - + %1$s Reacted Reactions Off %1$s/%2$s @@ -6011,11 +5030,7 @@ Telegram lets you store all documents you send and receive in the cloud and save storage space on your device. Clear Download List No recent downloads - If you do not set a password, you will only be able to log into your account via SMS once every %1$s days. Do you want to proceed without a password? If you do not set a password, you will only be able to log into your account via SMS once every %1$s day. Do you want to proceed without a password? - If you do not set a password, you will only be able to log into your account via SMS once every %1$s days. Do you want to proceed without a password? - If you do not set a password, you will only be able to log into your account via SMS once every %1$s days. Do you want to proceed without a password? - If you do not set a password, you will only be able to log into your account via SMS once every %1$s days. Do you want to proceed without a password? If you do not set a password, you will only be able to log into your account via SMS once every %1$s days. Do you want to proceed without a password? Your password was successfully deactivated Create a Password @@ -6033,7 +5048,6 @@ Disable Auto-delete after %s After %s - Choose time for auto-delete Choose time Enable sound Disable sound @@ -6060,11 +5074,7 @@ Sound added Unmute Auto-delete after... - Delete %d tones Delete %d tone - Delete %d tones - Delete %d tones - Delete %d tones Delete %d tones Notifications frequency in @@ -6073,7 +5083,6 @@ This action is disabled for all members. Please change it in Group Permissions. This action is enabled for all members. Please change it in Group Permissions. **%1$s** requests to be added as an option to your attachments menu so you can access it from any chat. - Do you want to start app **%1$s** from bot **%2$s**?\n\nIt will be able to access your **IP address** and basic device info. This bot can\'t be added to the attachment menu. This bot is already in your attachment menu. This will remove **%1$s** shortcuts from all menus. @@ -6098,11 +5107,7 @@ Size must be under %s Kb. File must be mp3 or ogg format. You can use this sound as a notification tone in your **custom notification settings**. - Do you want to delete **%d notification sounds**? Do you want to delete notification sound? - Do you want to delete **%d notification sounds**? - Do you want to delete **%d notification sounds**? - Do you want to delete **%d notification sounds**? Do you want to delete **%d notification sounds**? Custom Sound Clear for all @@ -6280,7 +5285,6 @@ About Telegram Premium Additional Reactions Unlock a wider range of reactions on messages by subscribing to Telegram Premium. - Additional App Icons Unlock a wider range of app icons by subscribing to Telegram Premium. I accept the *Terms of Service* of %1$s. Are you sure you want to revoke these links?\n\nThe groups will become private. @@ -6288,7 +5292,6 @@ Do you want to clear all your recent stickers? All other sessions terminated. All websites disconnected. - Can\'t add user This bot can\'t be opened in the chat with itself. Unlock this sticker and many more by subscribing to Telegram Premium. Sorry, you can\'t pin more than %1$d chats to the top. Unpin some that are currently pinned or subscribe to **Telegram Premium** to double the limit to **%2$d** chats. @@ -6299,7 +5302,6 @@ Sorry, you can\'t pin more than %1$d chats to the top. Unpin some that are currently pinned. We are working to let you increase this limit in the future. Recently active communities Are you sure you want to leave the selected chats?]]> - Additional animated reactions on messages, available only to Premium subscribers. Tools to set the default folder, auto-archive and hide new chats from non-contacts. Subscribers of Telegram Premium can set the default folder, auto-archive and hide new chats from non-contacts. **%s** is a subscriber of Telegram Premium. @@ -6374,10 +5376,7 @@ Headset Headset (if connected) Using a headset microphone may reduce background noise but will slightly decrease audio quality. - Enable alternative navigation - Disable alternative navigation Reacted with %s to your message - Search reactions Not available Set username @@ -6431,20 +5430,13 @@ Are you sure you want delete these topics? Are you sure you want delete %s? Delete topic - Delete topics - Delete topics - Delete topics Delete topics Topics Add Chat History - Search icons No icons found Select topic There is **%d topic** that is listed as exception. - There are **%d topics** that are listed as exceptions. - There are **%d topics** that are listed as exceptions. - There are **%d topics** that are listed as exceptions. There are **%d topics** that are listed as exceptions. In %s Topic closed @@ -6459,15 +5451,11 @@ Almost done Send first message to start the topic %s, %d exception - %s, %d exceptions - %s, %d exceptions - %s, %d exceptions %s, %d exceptions Enable floating debug Disable floating debug Cleared local database. - Toggle stiffness controls - Clear Send Message As... peers + Clear Send Message As… peers Switch sharing alert dialogs mode (%1$s) Normal Less @@ -6480,16 +5468,10 @@ Pin this message in the topic? Swipe left on a message to reply Only groups with more than **%1$d member** can have topics enabled. - Only groups with more than **%1$d members** can have topics enabled. - Only groups with more than **%1$d members** can have topics enabled. Only groups with more than **%1$d members** can have topics enabled. Only groups with more than **%1$d member** can have Anti-Spam enabled. - Only groups with more than **%1$d members** can have Anti-Spam enabled. - Only groups with more than **%1$d members** can have Anti-Spam enabled. Only groups with more than **%1$d members** can have Anti-Spam enabled. Only groups with more than **%1$d member** can hide members. - Only groups with more than **%1$d members** can hide members. - Only groups with more than **%1$d members** can hide members. Only groups with more than **%1$d members** can hide members. Topics are currently unavailable in groups connected to channels. topic creator @@ -6499,8 +5481,6 @@ Topic icon changed %1$s changed topic icon to %2$s Topic deleted. - Topics deleted - Topics deleted Topics deleted Topic renamed %s was created @@ -6516,8 +5496,6 @@ Select Topic Icon Increase Speed Make the caption shorter or subscribe to *Telegram Premium* to double the limit to **%1$s** character. - Make the caption shorter or subscribe to *Telegram Premium* to double the limit to **%1$s** characters. - Make the caption shorter or subscribe to *Telegram Premium* to double the limit to **%1$s** characters. Make the caption shorter or subscribe to *Telegram Premium* to double the limit to **%1$s** characters. All Chats Share Alert @@ -6525,10 +5503,8 @@ Message Skeletons Light overlay alpha Saturation - Alternative navigation General Test Backend - Device usage by chats This video has invalid URL. An error occurred while trying to play this video. Video not found. @@ -6544,7 +5520,6 @@ to disable the self-destruct timer Messages in all new chats you start will be automatically deleted after **%s.** Self-destruct timer disabled for all new chats. - Automatically delete messages for everyone after a period of time in all new chats you start. Self-destruct timer for **%1$s** has been enabled in %2$s. Self-destruct timer has been disabled in %s. You can also set your default **self-destruct timer** for all chats in Settings. @@ -6617,9 +5592,6 @@ Invite To Telegram You allowed this bot to message you when you added it to your attachment menu You shared un1 with un2 - You shared a user with un2 - You shared a chat with un2 - You shared a channel with un2 You shared a user with un2 You shared a users with un2 You shared a chat with un2 @@ -6631,7 +5603,6 @@ Update Public Photo Reset Photo Are you sure you want to reset to the original photo from %s? - public photo Set Public Photo Are you sure you want to delete your public photo? photo set by you @@ -6642,9 +5613,6 @@ Channels Add an exception %d exception - %d exceptions - %d exceptions - %d exceptions %d exceptions This photo will be shown to those who are restricted from viewing your main photo. Set Photo @@ -6674,10 +5642,7 @@ Deselect Open File Play File - Lite Mode (Beta) Power Usage - Enable lite mode - This mode turns off all visual effects in the app. It is recommended only for those devices that are low on CPU and memory. Delete All Proxies Are you sure you want to delete all proxies? Send as %1$s @@ -6705,9 +5670,7 @@ Bot should be in the channel. Bot should be in the group. You should be the owner of the channel. - You should not be the owner of the channel. You should be the owner of the group. - You should not be the owner of the group. The group should have topics turned on. The group should have topics turned off. You should have these admin rights: @@ -6803,41 +5766,24 @@ Autoplay GIFs Enable Smooth Transitions You can disable animated transitions between different sections of the apps. - Save Power on Low Battery - Automatically switch to low power usage when your devices is in Battery Saving Mode. Dynamic Pack Order Automatically place recently used sticker packs at the front of the panel. Dynamic Order Off Sticker packs will no longer be placed first every time you use a sticker. **%s** restrict adding them to groups. You can send them an invite link as message instead. **%d user** restrict adding them to groups. You can send them an invite link as message instead. - **%d users** restrict adding them to groups. You can send them an invite link as message instead. - **%d users** restrict adding them to groups. You can send them an invite link as message instead. - **%d users** restrict adding them to groups. You can send them an invite link as message instead. **%d users** restrict adding them to groups. You can send them an invite link as message instead. **%s** restrict adding them to channels. You can send them an invite link as message instead. **%d user** restrict adding them to channels. You can send them an invite link as message instead. - **%d users** restrict adding them to channels. You can send them an invite link as message instead. - **%d users** restrict adding them to channels. You can send them an invite link as message instead. - **%d users** restrict adding them to channels. You can send them an invite link as message instead. **%d users** restrict adding them to channels. You can send them an invite link as message instead. **%s** can only be invited via link. However admin of this group restricts you from sharing invite links. **%d user** can only be invited via link. However admin of this group restricts you from sharing invite links. - **%d users** can only be invited via link. However admin of this group restricts you from sharing invite links. - **%d users** can only be invited via link. However admin of this group restricts you from sharing invite links. - **%d users** can only be invited via link. However admin of this group restricts you from sharing invite links. **%d users** can only be invited via link. However admin of this group restricts you from sharing invite links. **%s** can only be invited via link. However admin of this channel restricts you from sharing invite links. **%d user** can only be invited via link. However admin of this channel restricts you from sharing invite links. - **%d users** can only be invited via link. However admin of this channel restricts you from sharing invite links. - **%d users** can only be invited via link. However admin of this channel restricts you from sharing invite links. - **%d users** can only be invited via link. However admin of this channel restricts you from sharing invite links. **%d users** can only be invited via link. However admin of this channel restricts you from sharing invite links. Invitation link sent to **%s** Invitation link sent to %d user - Invitation link sent to %d users - Invitation link sent to %d users - Invitation link sent to %d users Invitation link sent to %d users Send Invite Link Skip @@ -6848,7 +5794,6 @@ %1$s free, slow speed\ %1$s free, slow speed %2$s enabled when below %s%% - %s%% Rate up Rate down Pause music while playing media @@ -6877,7 +5822,6 @@ Media and Sound Other Settings Manage stickers, emoji and reactions - Share Folder Invite Links Share folder @@ -6886,20 +5830,11 @@ Create more links to set up different access levels for different people. Name this link Includes %d chat - Includes %d chats - Includes %d chats - Includes %d chats Includes %d chats Anyone with this link can add **%2$s** folder and the **%1$d** chat selected below. - Anyone with this link can add **%2$s** folder and the **%1$d** chats selected below. - Anyone with this link can add **%2$s** folder and the **%1$d** chats selected below. - Anyone with this link can add **%2$s** folder and the **%1$d** chats selected below. Anyone with this link can add **%2$s** folder and the **%1$d** chats selected below. There are no chats in this folder that you can share with others. %d chat selected - %d chats selected - %d chats selected - %d chats selected %d chats selected These chats cannot be shared No chats selected @@ -6929,8 +5864,7 @@ You can only have %1$d shareable folders.\nUpgrade to **Telegram Premium** to increase this limit to **%2$d**. You can only have %1$d shareable folders. Try deleting some shareable folder. You can only have %1$d shareable folders. We are working to let you increase this limit in the future. - Set Background From Gallery - Setting new wallpaper... + Setting new wallpaper… You set a new wallpaper for this chat Channel set a new wallpaper Group set a new wallpaper @@ -6949,29 +5883,17 @@ Do you also want to quit the chats included in this folder? You have already added the folder **%s** and all its chats. Do you want to join **%1$d chat** and add them to the folder **%2$s**? - Do you want to join **%1$d chats** and add them to the folder **%2$s**? - Do you want to join **%1$d chats** and add them to the folder **%2$s**? - Do you want to join **%1$d chats** and add them to the folder **%2$s**? Do you want to join **%1$d chats** and add them to the folder **%2$s**? Do you want to add a new chat folder **%s** and join its group and channels? Remove Folder Remove Folder and Chats Add %s Join chat - Join chats - Join chats - Join chats Join chats Do not join any chats %d chat to quit - %d chats to quit - %d chats to quit - %d chats to quit %d chats to quit %d chat to join - %d chats to join - %d chats to join - %d chats to join %d chats to join Chats you already joined You can deselect the chats you don’t want to join. @@ -6982,39 +5904,21 @@ Deselect All Folder **%s** Added You also joined %d chat. - You also joined %d chats. - You also joined %d chats. - You also joined %d chats. You also joined %d chats. Folder **%s** Updated You have joined %d new chat. - You have joined %d new chats. - You have joined %d new chats. - You have joined %d new chats. You have joined %d new chats. You have added %d new chat. - You have added %d new chats. - You have added %d new chats. - You have added %d new chats. You have added %d new chats. Folder **%s** deleted. Folder %s Deleted You also left %d chat. - You also left %d chats. - You also left %d chats. - You also left %d chats. You also left %d chats. Link Name saved. View Chat List You can join **%d new chat** - You can join **%d new chats** - You can join **%d new chats** - You can join **%d new chats** You can join **%d new chats** Tap here to view it - Tap here to view them - Tap here to view them - Tap here to view them Tap here to view them Share Folder %s Share access to some of this folder’s groups and channels with others. @@ -7022,14 +5926,8 @@ Create Invite Link Create a New Invite Link Chat added to folder - %d chats added to folder - %d chats added to folder - %d chats added to folder %d chats added to folder Chat removed from folder - %d chats removed from folder - %d chats removed from folder - %d chats removed from folder %d chats removed from folder It will not affect chatlist of the links of this folder. You don’t have access to share any of these chats. @@ -7049,16 +5947,13 @@ Send When Online Choose Wallpaper from Gallery Choose a New Wallpaper - Choose Color as a Wallpaper Theme will also be applied for %s - Background dimming Apply the wallpaper in this chat Du Rove\'s Channel Breaking News Details to follow shortly.\nStay tuned! %s will be able to apply this wallpaper All subscribers will see this wallpaper - APPLY FOR THIS CHAT Remove Wallpaper Set a Color as Wallpaper Bot Name @@ -7081,30 +5976,17 @@ Reply privately... Comment story... My Story - %d Stories %d Story - %d Stories - %d Stories - %d Stories %d Stories - %d new stories %d new story - %d new stories - %d new stories - %d new stories %d new stories Delete Story Are you sure you want to delete this story? Delete Stories - Are you sure you want to delete %d stories? Are you sure you want to delete %d story? - Are you sure you want to delete %d stories? - Are you sure you want to delete %d stories? - Are you sure you want to delete %d stories? Are you sure you want to delete %d stories? Uploading edit… No views yet - No views yet… No views available Uploading story error My Story @@ -7124,71 +6006,36 @@ Reaction sent. My Profile Saved - %d saved stories %d saved story - %d saved stories - %d saved stories - %d saved stories %d saved stories Stories Archive Archive Only you can see archived stories unless you choose to save them to your profile. Only admins can see archived stories unless you choose to post them to channel profile. Only admins of the group can see archived stories unless they are posted to the group page. - %d archived stories %d archived story - %d archived stories - %d archived stories %d archived stories - %d public stories %d public story - %d public stories - %d public stories - %d public stories %d public stories - %d Selected %d Selected - %d Selected - %d Selected - %d Selected %d Selected Photo Video None - %d recipients %d recipient - %d recipients - %d recipients - %d recipients %d recipients Everyone - Everyone (-%d) Everyone (-%d) - Everyone (-%d) - Everyone (-%d) - Everyone (-%d) Everyone (-%d) Close Friends Contacts - %d contacts %d contact - %d contacts - %d contacts - %d contacts %d contacts - Contacts (-%d) Contacts (-%d) - Contacts (-%d) - Contacts (-%d) - Contacts (-%d) Contacts (-%d) Share story Edit Privacy Settings - Choose who can view your story Choose who can view your story - Choose who can view your story - Choose who can view your story - Choose who can view your story Choose who can view your story Choose who can view your story Close Friends @@ -7201,7 +6048,7 @@ Choose recipients Hide my stories from Select people - Everyone except... + Everyone except… Exclude contacts Hide My Stories From %s Do Not Hide My Stories From %s @@ -7216,38 +6063,23 @@ edit list Selected Contacts edit list - %d people %d person - %d people - %d people - %d people %d people except %s - except %d people except %d person - except %d people - except %d people - except %d people except %d people Set who can view your story Pinch to zoom Swipe to zoom - Add a caption… Save Image Save Video Save to Profile Archive Story - Archive Stories Archive Story - Archive Stories - Archive Stories - Archive Stories Archive Stories Edit Story Edit Preview Who can see - Everyone - Close Friends Failed to process video file. Preparing video… Preparing sticker… @@ -7259,34 +6091,20 @@ No stories yet… Upload a new story to view it here. Save to profile - %d stories saved to your profile %d story saved to your profile - %d stories saved to your profile - %d stories saved to your profile - %d stories saved to your profile %d stories saved to your profile Saved stories can be viewed by others on your profile until you remove them. - %d stories are hidden from your profile %d story is hidden from your profile - %d stories are hidden from your profile - %d stories are hidden from your profile - %d stories are hidden from your profile %d stories are hidden from your profile + %d story + %d stories Open Link This story is shown to everyone. This story is shown to your close friends. This story is shown to all your contacts. - This story is shown to your contacts (excluding %d). This story is shown to your contacts (excluding %d). - This story is shown to your contacts (excluding %d). - This story is shown to your contacts (excluding %d). - This story is shown to your contacts (excluding %d). This story is shown to your contacts (excluding %d). - This story is shown to %d contacts. This story is shown to %d contact. - This story is shown to %d contacts. - This story is shown to %d contacts. - This story is shown to %d contacts. This story is shown to %d contacts. This story is pinned to your profile. Story saved to the channel’s profile @@ -7309,11 +6127,7 @@ Stories of **%s** were moved to **Chats**. Story shared Add Story - %d Drafts %d Draft - %d Drafts - %d Drafts - %d Drafts %d Drafts Sound is now muted. Sound is now not muted. @@ -7326,40 +6140,22 @@ %s shared a story Stories View Story - Subscribe to **Telegram Premium** to make your stories disappear after %d hours. Subscribe to **Telegram Premium** to make your stories disappear after %d hour. - Subscribe to **Telegram Premium** to make your stories disappear after %d hours. - Subscribe to **Telegram Premium** to make your stories disappear after %d hours. - Subscribe to **Telegram Premium** to make your stories disappear after %d hours. Subscribe to **Telegram Premium** to make your stories disappear after %d hours. This story is not supported by your version of Telegram. You can’t reply to this story Story forwarded to **%s**. Story forwarded to **Saved Messages** Story forwarded to **a chat**. - Story forwarded to **%1$d chats**. - Story forwarded to **%1$d chats**. - Story forwarded to **%1$d chats**. Story forwarded to **%1$d chats**. This story is no longer available - %d stories were posted %d story was posted - %d stories were posted - %d stories were posted - %d stories were posted %d stories were posted posted a story - posted %d stories posted a story - posted %d stories - posted %d stories - posted %d stories posted %d stories posted by %1$s and %2$s posted by %1$s, %2$s and %3$s - posted by %2$s, %3$s and %1$d more - posted by %2$s, %3$s and %1$d more - posted by %2$s, %3$s and %1$d more posted by %2$s, %3$s and %1$d more mentioned you in a story Story unavailable @@ -7387,29 +6183,16 @@ Repost Allow Screenshots **Select people** who won’t see your stories. - **%d people** won’t see your stories. **%d person** won’t see your stories. - **%d people** won’t see your stories. - **%d people** won’t see your stories. - **%d people** won’t see your stories. **%d people** won’t see your stories. Keep on My Page - Keep this story on your page even after it expires in %d hours. Privacy settings will apply. Keep this story on your page even after it expires in %d hour. Privacy settings will apply. - Keep this story on your page even after it expires in %d hours. Privacy settings will apply. - Keep this story on your page even after it expires in %d hours. Privacy settings will apply. - Keep this story on your page even after it expires in %d hours. Privacy settings will apply. Keep this story on your page even after it expires in %d hours. Privacy settings will apply. Post to Channel Page Post to Group Page - Keep this story on the group page even after it expires in %d hours. Keep this story on the group page even after it expires in %d hour. Keep this story on the group page even after it expires in %d hours. - Keep this story on the channel page even after it expires in %d hours. Keep this story on the channel page even after it expires in %d hour. - Keep this story on the channel page even after it expires in %d hours. - Keep this story on the channel page even after it expires in %d hours. - Keep this story on the channel page even after it expires in %d hours. Keep this story on the channel page even after it expires in %d hours. Downloading and taking screenshots will be enabled for this story. Downloading, sharing and taking screenshots will be enabled for this story. @@ -7437,25 +6220,12 @@ Drag to delete Release to delete Add text - This story contains stickers from **%d packs**. This story contains stickers from **%d pack**. - This story contains stickers from **%d packs**. - This story contains stickers from **%d packs**. - This story contains stickers from **%d packs**. This story contains stickers from **%d packs**. This story contains stickers from %s. - This story contains emoji from **%d packs**. - This story contains emoji from **%d pack**. - This story contains emoji from **%d packs**. - This story contains emoji from **%d packs**. - This story contains emoji from **%d packs**. This story contains emoji from **%d packs**. This story contains emoji from %s. - This story contains emoji and stickers from **%d packs**. This story contains emoji and stickers from **%d pack**. - This story contains emoji and stickers from **%d packs**. - This story contains emoji and stickers from **%d packs**. - This story contains emoji and stickers from **%d packs**. This story contains emoji and stickers from **%d packs**. This story contains emoji and stickers from %s. Tap here to disable the second camera @@ -7486,11 +6256,7 @@ Dual camera is enabled at your peril :( Unfortunately, the Dual camera mode is not supported on your device. - You can’t post more than **%d stories** in **24 hours**. You can’t post more than **%d story** in **24 hours**. - You can’t post more than **%d stories** in **24 hours**. - You can’t post more than **%d stories** in **24 hours**. - You can’t post more than **%d stories** in **24 hours**. You can’t post more than **%d stories** in **24 hours**. Posting stories is currently available only to subscribers of **Telegram Premium**. Hide Stories @@ -7597,7 +6363,6 @@ You can post **%1$d** stories in a month.\nSubscribe to **Telegram Premium** to increase this limit to **%2$d**. Sorry, you can’t post more than **%1$d** stories in a month. Deselect All - ADD LOCATION Location Audio Photo @@ -7608,7 +6373,6 @@ Remove Video Publish story as Who can view your story - Style Archived Stories Save to Posts Remove from Posts @@ -7634,8 +6398,8 @@ What are boosts? Every **Telegram Premium** subscriber can boost your group **%d** time and help you unlock more features by using this link: Every **Telegram Premium** subscriber can boost your group **%d** times and help you unlock more features by using this link: - Boost your channel by gifting your subscribers\n**Telegram Premium**. - Boost your group by gifting your members\n**Telegram Premium**. + Boost your channel by giving away prizes to your subscribers. + Boost your group by giving away prizes to your members. Get boosts > You can review the list of features and terms of use for Telegram Premium **here**. You are participating in this giveaway. @@ -7644,6 +6408,8 @@ Congratulations! You\'ve received a gift\nfrom **%s**. You\'ve received a gift. + You\'ve received a prize of %1$d Star from %2$s! + You\'ve received a prize of %1$d Stars from %2$s! Your gift is a **Telegram Premium**\nsubscription for %s. Unclaimed Prize You have an unclaimed prize from a giveaway by **%s**. @@ -7654,15 +6420,24 @@ Save Recipients %s just started a giveaway of Telegram Premium subscriptions to its followers. %s just started a giveaway of Telegram Premium subscriptions to its members. + %2$s just started a giveaway of %1$d Star to its followers. + %2$s just started a giveaway of %1$d Stars to its followers. + %2$s just started a giveaway of %1$d Star to its members. + %2$s just started a giveaway of %1$d Stars to its members. Delete announcement Deleting this message won\'t cancel the giveaway - the winners will still be selected on **%s**.\n\nOnce deleted, the Giveaway Announcement cannot be restored. - %d winners of the giveaway were randomly selected by Telegram and received private messages with giftcodes. %d winner of the giveaway were randomly selected by Telegram and received private message with giftcode. %d winners of the giveaway were randomly selected by Telegram and received private messages with giftcodes. + %1$d winner of the giveaway were randomly selected by Telegram. + %1$d winners of the giveaway were randomly selected by Telegram. %d undistributed link codes were forwarded to channel administrators. %d undistributed links codes were forwarded to channel administrators. %d undistributed link codes were forwarded to group administrators. %d undistributed links codes were forwarded to group administrators. + %d undistributed stars were forwarded to channel administrators. + %d undistributed stars were forwarded to channel administrators. + %d undistributed stars were forwarded to group administrators. + %d undistributed stars were forwarded to group administrators. %s boosted the group %2$s boosted the group %1$d times %s boosted the channel @@ -7671,28 +6446,18 @@ You boosted the group %1$d times You boosted the channel You boosted the channel %1$d times - %d boost %d boost - %d boosts - %d boosts - %d boosts %d boosts %2$s subscription - %2$s subscriptions - %2$s subscriptions - %2$s subscriptions %2$s subscriptions + %1$d Star + %1$d Stars %1$d Telegram Premium - %1$d Telegram Premium - %1$d Telegram Premium - %1$d Telegram Premium %1$d Telegram Premium Get Boosts via Gifts Use Link Share this link with your subsсribers to get more boosts. Share this link with your members to get more boosts. - Get more boosts for your channel by gifting Premium to your subscribers. - Get more boosts for your group by gifting Premium to your subscribers. Start Giveaway Boosts for Groups Boosts for Channels @@ -7700,34 +6465,24 @@ Subscribers of your channel can **boost** it so that it **levels up** and gets **exclusive features**. Select a giveaway you already paid for to set it up. Add Group or Channel + Telegram Premium + Telegram Stars Create Giveaway - Show %1$d More Gifted Boosts Show %1$d More Gifted Boosts - Show %1$d More Gifted Boosts - Show %1$d More Gifted Boosts - Show %1$d More Gifted Boosts Show %1$d More Gifted Boosts - %1$d Gifts %1$d Gift - %1$d Gifts - %1$d Gifts - %1$d Gifts %1$d Gifts - %1$d Boosts %1$d Boost - %1$d Boosts - %1$d Boosts - %1$d Boosts %1$d Boosts - Show %1$d More Boosts Show %1$d More Boost - Show %1$d More Boosts - Show %1$d More Boosts - Show %1$d More Boosts Show %1$d More Boosts Unclaimed To be distributed + %d Star + %d Stars %1$dm + expires on %s + boost expires on %s Giveaway Giveaway results Channel started a giveaway @@ -7740,21 +6495,22 @@ winners are chosen randomly Award Specific Users this channel will receive %d boost - this channel will receive %d boosts - this channel will receive %d boosts - this channel will receive %d boosts this channel will receive %d boosts this group will receive %d boost - this group will receive %d boosts - this group will receive %d boosts - this group will receive %d boosts this group will receive %d boosts Date and Time Boosts via Gifts Used Gift Link Gift Link Get more boosts for your channel by gifting Premium to your subscribers. + Get more boosts for your channel by gifting Premium to your subscribers. + Get more boosts and subscribers for your channel by giving away prizes. + Get more boosts and subscribers for your channel by giving away prizes. Get more boosts for your group by gifting Premium to your members. + Get more boosts for your group by gifting Premium to your subscribers. + To boost **%1$s**, get more boosts by gifting **Telegram Premium** to a friend. + To boost **%2$s**, get **%1$d** more boost by gifting **Telegram Premium** to a friend. + To boost **%2$s**, get **%1$d** more boosts by gifting **Telegram Premium** to a friend. This link was used to activate\na **Telegram Premium** subscription. This link allows you to activate\na **Telegram Premium** subscription. This link allows **%1$s** to activate a **Telegram Premium** subscription. @@ -7776,25 +6532,26 @@ Prepaid giveaways Prepaid giveaway %1$d subscription for %2$s - %1$d subscriptions for %2$s - %1$d subscriptions for %2$s - %1$d subscriptions for %2$s %1$d subscriptions for %2$s + %1$d star + %1$d stars select recipients from all countries from %1$s from %1$s, %2$s from %1$s, %2$s, %3$s - from %1$d countries from %1$d country - from %1$d countries - from %1$d countries - from %1$d countries from %1$d countries You can also **send this link** to a friend as a gift. You can also **send this link** to anyone as a gift. This link was used on %s. Quantity of prizes + Number of winners + Choose how many winners you want to distribute stars among. + Stars to distribute + %d per user + %d per user + Choose how many stars to give away and how many boosts to receive for 1 year. Choose how many Premium subscriptions to give away and boosts to receive. Groups and channels included Choose groups and channels the users need to join to take part in the giveaway. @@ -7803,12 +6560,16 @@ Choose if you want to limit the giveaway only to those who joined the group after the giveaway started or to users from specific countries. Date when giveaway ends Choose when %d subscriber of your channel will be randomly selected to receive Telegram Premium. - Choose when %d subscribers of your channel will be randomly selected to receive Telegram Premium. - Choose when %d subscribers of your channel will be randomly selected to receive Telegram Premium. - Choose when %d subscribers of your channel will be randomly selected to receive Telegram Premium. Choose when %d subscribers of your channel will be randomly selected to receive Telegram Premium. Choose when %d members of your group will be randomly selected to receive Telegram Premium. Choose when %d members of your group will be randomly selected to receive Telegram Premium. + Choose when %1$d subscriber of your channel will be randomly selected to receive %2$s. + Choose when %1$d subscribers of your channel will be randomly selected to receive %2$s. + Choose when %1$d members of your group will be randomly selected to receive %2$s. + Choose when %1$d members of your group will be randomly selected to receive %2$s. + %1$d Star + %1$d Stars + Choose Randomly Check your channels’ **Statistics** to see how this giveaway boosted your channel. Check your channels’ **Statistics** to see how gifts boosted your channel. Check your groups’ **Statistics** to see how this giveaway boosted your group. @@ -7822,75 +6583,52 @@ Show Winners Choose whether to make the list of winners public when the giveaway ends. Turn this on if you want to give the winners your own prizes in addition to Premium subscriptions. + Turn this on if you want to give the winners your own prizes in addition to Stars. All prizes: **%1$d** %2$s with Telegram Premium subscriptions for %3$s. All prizes: **%1$d** %2$s with Telegram Premium subscriptions for %3$s. All prizes: **%1$d** Telegram Premium subscriptions for %2$s. All prizes: **%1$d** Telegram Premium subscriptions for %2$s. + All prizes: **%2$d** %3$s with **%1$d Star**. + All prizes: **%2$d** %3$s with **%1$d Stars**. + All prizes: **%1$d Star**. + All prizes: **%1$d Stars**. This giveaway is sponsored by the admins of **%2$s**, who acquired **%3$s Telegram Premium** subscription for %4$s for its followers. - This giveaway is sponsored by the admins of **%2$s**, who acquired **%3$s Telegram Premium** subscriptions for %4$s for its followers. - This giveaway is sponsored by the admins of **%2$s**, who acquired **%3$s Telegram Premium** subscriptions for %4$s for its followers. - This giveaway is sponsored by the admins of **%2$s**, who acquired **%3$s Telegram Premium** subscriptions for %4$s for its followers. This giveaway is sponsored by the admins of **%2$s**, who acquired **%3$s Telegram Premium** subscriptions for %4$s for its followers. + This giveaway is sponsored by the admins of **%2$s**, who acquired **%1$d Star** for its followers. + This giveaway is sponsored by the admins of **%2$s**, who acquired **%1$d Stars** for its followers. This giveaway is sponsored by the admins of **%2$s**, who acquired **%3$s Telegram Premium** subscription for %4$s for its members. This giveaway is sponsored by the admins of **%2$s**, who acquired **%3$s Telegram Premium** subscriptions for %4$s for its members. + This giveaway is sponsored by the admins of **%2$s**, who acquired **%1$d Star** for its members. + This giveaway is sponsored by the admins of **%2$s**, who acquired **%1$d Stars** for its members. **%2$s** also included **%1$d** **%3$s** in the prizes. Admins of the channel are responsible for delivering these prizes. **%2$s** also included **%1$d** **%3$s** in the prizes. Admins of the channel are responsible for delivering these prizes. On **%2$s**, Telegram will automatically select **%3$s** random user that joined **%4$s**. - On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s**. - On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s**. - On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s**. On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s**. On **%2$s**, Telegram will automatically select **%3$s** random user that joined **%4$s** %5$s. - On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s** %5$s. - On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s** %5$s. - On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s** %5$s. On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s** %5$s. On **%2$s**, Telegram automatically selected **%3$s** random user that joined **%4$s** %5$s. - On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s** %5$s. - On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s** %5$s. - On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s** %5$s. On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s** %5$s. and **%1$d** other listed channel - and **%1$d** other listed channels - and **%1$d** other listed channels - and **%1$d** other listed channels and **%1$d** other listed channels On **%2$s**, Telegram will automatically select **%3$s** random user that joined **%4$s** %5$s. - On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s** %5$s. - On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s** %5$s. - On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s** %5$s. On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s** %5$s. On **%2$s**, Telegram automatically selected **%3$s** random user that joined **%4$s** %5$s. - On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s** %5$s. - On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s** %5$s. - On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s** %5$s. On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s** %5$s. and **%1$d** other listed channel after **%2$s** on **%3$s** - and **%1$d** other listed channels after **%2$s** on **%3$s** - and **%1$d** other listed channels after **%2$s** on **%3$s** - and **%1$d** other listed channels after **%2$s** on **%3$s** and **%1$d** other listed channels after **%2$s** on **%3$s** On **%2$s**, Telegram will automatically select **%3$s** random user that joined **%4$s** after **%5$s** on **%6$s**. - On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s** after **%5$s** on **%6$s**. - On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s** after **%5$s** on **%6$s**. - On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s** after **%5$s** on **%6$s**. On **%2$s**, Telegram will automatically select **%3$s** random users that joined **%4$s** after **%5$s** on **%6$s**. This giveaway was sponsored by the admins of **%2$s**, who acquired **%3$s Telegram Premium** subscription for %4$s for its followers. - This giveaway was sponsored by the admins of **%2$s**, who acquired **%3$s Telegram Premium** subscriptions for %4$s for its followers. - This giveaway was sponsored by the admins of **%2$s**, who acquired **%3$s Telegram Premium** subscriptions for %4$s for its followers. - This giveaway was sponsored by the admins of **%2$s**, who acquired **%3$s Telegram Premium** subscriptions for %4$s for its followers. This giveaway was sponsored by the admins of **%2$s**, who acquired **%3$s Telegram Premium** subscriptions for %4$s for its followers. This giveaway was sponsored by the admins of **%2$s**, who acquired **%3$s Telegram Premium** subscription for %4$s for its members. This giveaway was sponsored by the admins of **%2$s**, who acquired **%3$s Telegram Premium** subscriptions for %4$s for its members. + This giveaway was sponsored by the admins of **%2$s**, who acquired **%1$d Star** for its followers. + This giveaway was sponsored by the admins of **%2$s**, who acquired **%1$d Stars** for its followers. + This giveaway was sponsored by the admins of **%2$s**, who acquired **%1$d Star** for its members. + This giveaway was sponsored by the admins of **%2$s**, who acquired **%1$d Stars** for its members. On **%2$s**, Telegram automatically selected **%3$s** random user that joined **%4$s**. - On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s**. - On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s**. - On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s**. On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s**. On **%2$s**, Telegram automatically selected **%3$s** random user that joined **%4$s** after **%5$s** on **%6$s**. - On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s** after **%5$s** on **%6$s**. - On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s** after **%5$s** on **%6$s**. - On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s** after **%5$s** on **%6$s**. On **%2$s**, Telegram automatically selected **%3$s** random users that joined **%4$s** after **%5$s** on **%6$s**. Reduce Quantity Giveaway ended @@ -7903,40 +6641,22 @@ View my prize The channel cancelled the prizes by reversing the payment for them. **%1$d** of the winners already used their gift links. - **%1$d** of the winners already used their gift links. - **%1$d** of the winners already used their gift links. - **%1$d** of the winners already used their gift links. **%1$d** of the winners already used their gift links. You can’t purchase **%1$d** %2$s subscription in the app. Do you want to reduce the prize quantity to **%3$d**? - You can’t purchase **%1$d** %2$s subscriptions in the app. Do you want to reduce the prize quantity to **%3$d**? - You can’t purchase **%1$d** %2$s subscriptions in the app. Do you want to reduce the prize quantity to **%3$d**? - You can’t purchase **%1$d** %2$s subscriptions in the app. Do you want to reduce the prize quantity to **%3$d**? You can’t purchase **%1$d** %2$s subscriptions in the app. Do you want to reduce the prize quantity to **%3$d**? You can’t purchase **%1$d** subscription in the app. Only **%2$s** available. - You can’t purchase **%1$d** subscriptions in the app. Only **%2$s** available. - You can’t purchase **%1$d** subscriptions in the app. Only **%2$s** available. - You can’t purchase **%1$d** subscriptions in the app. Only **%2$s** available. You can’t purchase **%1$d** subscriptions in the app. Only **%2$s** available. Select up to %1$d group or channel Select up to %1$d groups or channels Select up to %1$d country - Select up to %1$d countries - Select up to %1$d countries - Select up to %1$d countries Select up to %1$d countries You have changed the list of users. Apply changes? You have changed the list of channels. Apply changes? You have changed the list of countries. Apply changes? You are participating in this giveaway, because you have joined channel **%1$s**. You are participating in this giveaway, because you have joined channel **%2$s** (and **%1$d** other listed channel). - You are participating in this giveaway, because you have joined channel **%2$s** (and **%1$d** other listed channels). - You are participating in this giveaway, because you have joined channel **%2$s** (and **%1$d** other listed channels). - You are participating in this giveaway, because you have joined channel **%2$s** (and **%1$d** other listed channels). You are participating in this giveaway, because you have joined channel **%2$s** (and **%1$d** other listed channels). To take part in this giveaway please join channel **%2$s** (and **%1$d** other listed channel) before **%3$s**. - To take part in this giveaway please join channel **%2$s** (and **%1$d** other listed channels) before **%3$s**. - To take part in this giveaway please join channel **%2$s** (and **%1$d** other listed channels) before **%3$s**. - To take part in this giveaway please join channel **%2$s** (and **%1$d** other listed channels) before **%3$s**. To take part in this giveaway please join channel **%2$s** (and **%1$d** other listed channels) before **%3$s**. To take part in this giveaway please join channel **%1$s** before **%2$s**. You are not eligible to participate in this giveaway, because you joined this channel on **%1$s**, which is before the contest started. @@ -7949,14 +6669,8 @@ You can select up to %1$d group or channel. You can select up to %1$d groups or channels. You can select maximum %1$d country. - You can select maximum %1$d countries. - You can select maximum %1$d countries. - You can select maximum %1$d countries. You can select maximum %1$d countries. Wait until the boost is available or get **%1$d** more boost by gifting a **Telegram Premium** subscription. - Wait until the boost is available or get **%1$d** more boosts by gifting a **Telegram Premium** subscription. - Wait until the boost is available or get **%1$d** more boosts by gifting a **Telegram Premium** subscription. - Wait until the boost is available or get **%1$d** more boosts by gifting a **Telegram Premium** subscription. Wait until the boost is available or get **%1$d** more boosts by gifting a **Telegram Premium** subscription. Boost Again Boost Group @@ -7967,24 +6681,13 @@ Are you sure you want to start the giveaway now? More Boosts Needed %1$d boost reassigned from %2$s - %1$d boosts reassigned from %2$s - %1$d boosts reassigned from %2$s - %1$d boosts reassigned from %2$s %1$d boosts reassigned from %2$s - %d other channels %d other channel - %d other channels - %d other channels - %d other channels %d other channels - To boost **%1$s**, get more boosts by gifting **Telegram Premium** to a friend. - To boost **%2$s**, get **%1$d** more boost by gifting **Telegram Premium** to a friend. - To boost **%2$s**, get **%1$d** more boosts by gifting **Telegram Premium** to a friend. Reassign Boosts To boost **%2$s**, reassign a previous boost or %3$s to a friend to get **%1$d** additional boost. To boost **%2$s**, reassign a previous boost or %3$s to a friend to get **%1$d** additional boosts. **gift Telegram Premium** - Send gifts **to your friends!** Give Telegram Premium for Christmas. You can gift Telegram Premium later in Settings Remove your boost from @@ -7999,20 +6702,20 @@ **Winner** **Winners** All winners received gift links in private messages. + All winners received a total of %d Star. + All winners received a total of %d Stars. **And %1$d more!** **And %1$d more!** %1$d winner of the **Giveaway** was randomly selected by Telegram. %1$d winners of the **Giveaway** were randomly selected by Telegram. **%1$d** Telegram Premium - **%1$d** Telegram Premium - **%1$d** Telegram Premium - **%1$d** Telegram Premium **%1$d** Telegram Premium Subscription for %2$s. - Subscriptions for %2$s. - Subscriptions for %2$s. - Subscriptions for %2$s. Subscriptions for %2$s. + **%1$d Star** will be distributed + **%1$d Stars** will be distributed + to the **%1$d** winner. + among **%1$d** winners. **Participants** All subscribers of the channel: All subscribers of the channels: @@ -8058,7 +6761,6 @@ BOOST Enable stories for the channel Enable stories for the group - Enable stories for channel Additional Features By gaining **boosts**, your group reaches higher levels and unlocks more features. By gaining **boosts**, your channel reaches higher levels and unlocks more features. @@ -8094,12 +6796,8 @@ Your channel needs to reach **Level %d** to change channel wallpaper to custom photo.\n\nAsk your **Premium** subscribers to boost your channel with this link: Your channel needs %s to enable posting stories.\n\nAsk your **Premium** subscribers to boost your channel with this link: Your channel needs %1$s to be able post **%2$s** per day.\n\nAsk your Premium subscribers to boost your channel with this link: - This channel need %s to enable stories. Help make it possible! - This channel need %1$s to be able post **%2$s** per day. Help make it possible! - This channel need %s more boosts to enable stories. **%1$s** needs %2$s to unlock new features. Your channel needs to reach **Level %d** to switch off ads.\n\nAsk your **Premium** subscribers to boost your channel with this link: - Help upgrade channel This channel reached **Level 1** and can now post stories. This channel reached **Level %1$d** and can now post **%2$s** per day. Your group needs to reach **Level %d** to change group color to selected.\n\nAsk your **Premium** members to boost your group with this link: @@ -8112,11 +6810,7 @@ Your group needs to reach **Level %d** to change group wallpaper to custom photo.\n\nAsk your **Premium** members to boost your group with this link: Your group needs %s to enable posting stories.\n\nAsk your **Premium** members to boost your group with this link: Your group needs %1$s to be able post **%2$s** per day.\n\nAsk your Premium members to boost your group with this link: - This group need %s to enable stories. Help make it possible! - This group need %1$s to be able post **%2$s** per day. Help make it possible! - This group need %s more boosts to enable stories. **%1$s** needs %2$s to unlock new features. - Help upgrade group This group reached **Level 1** and can now post stories. This group reached **Level %1$d** and can now post **%2$s** per day. **%2$s** boosted the group **%1$d** time. @@ -8124,20 +6818,10 @@ Boost **%1$s** to help it unlock new features and get a booster **badge** for your messages. No users currently boost your channel No users currently boost your group - Can’t boost with gifted Premium! - Because your **Telegram Premium** subscription was gifted to you, you can’t use it boost channels. Maximum Level Reached - **%d** more boost **%d** more boost - **%d** more boosts - **%d** more boosts - **%d** more boosts **%d** more boosts - **%d** story **%d** story - **%d** stories - **%d** stories - **%d** stories **%d** stories Increase Story Limit Unlock Colors @@ -8148,8 +6832,8 @@ Unlock Link Icons Unlock Profile Icons Slide left or right to seek - Quote to... - Reply to... + Quote to… + Reply to… Reply to %s Reply to quote by %s Update Quote @@ -8159,8 +6843,6 @@ Quote Selected Part Reply to Another Chat Reply in Another Chat - Remove Quote - Remove Reply Quote updated **%s** updated the message you are quoting. Edit your quote to make it up-to-date. This reply is from a private chat. @@ -8188,17 +6870,12 @@ Do Not Reply Do Not Quote Do Not Preview - Your Name Color You can choose a color to tint your name, the links you send, and replies to your messages. - Color Preview - Color Preview Your name and replies to your messages will be shown in the selected color. Reply to your message Link Preview Your selected color will also tint the link preview. Apply Color and Icon - Subscribe to **Telegram Premium** to choose a custom color for your name. - Subscribe to **Telegram Premium** to choose a custom color for your profile. Add Icons to Replies Add Icons to Profile Choose a color and an icon for your profile @@ -8302,7 +6979,6 @@ Custom Channel Background Custom Group Background Custom Emoji Pack - Real-Time Translations Voice-to-Text Conversion Switch Off Ads Level %d Unlocks: @@ -8342,8 +7018,6 @@ Author Hidden Delete all your notes Are you sure you want to delete all your notes? - Delete all your saved messages - Are you sure you want to delete all your saved messages? Unsave messages Unsave messages from %d chats Are you sure you want to unsave messages from %s? @@ -8407,7 +7081,6 @@ **%s** restricted messaging to only Premium users. Get Premium Only Premium users can message %s.\n**Learn more...** - Only Premium users can reply to %s.\n**Learn more...** Unlock Messaging **%1$s** restricted who can message them in Privacy Settings. Subscribe to **Telegram Premium** to message **%2$s**. Subscribe to Telegram Premium @@ -8516,7 +7189,6 @@ opens in %d days local time my time - You have changed the business working hours. Apply changes? Chatbots Add a bot to your account to help you automatically process and respond to the messages you receive. **Learn more >** https://core.telegram.org/bots/api @@ -8535,7 +7207,6 @@ Bot permissions Reply to Messages The bot can only reply on your behalf in chats that were active during the last 24h. - Remove Bot Oops This bot doesn’t support **Telegram Business** yet. Greeting Message @@ -8640,18 +7311,13 @@ Link Name Preset message saved. Invalid link to chat - Share link to chat Delete chat link Are you sure you want to delete this chat link? Chat link deleted. Discard changes You have unsaved changes to preset message, do you want to discard it? no clicks - %d clicks %d click - %d clicks - %d clicks - %d clicks %d clicks Time Zone Detect automatically @@ -8690,7 +7356,6 @@ https://telegram.org/tos/content-creator-rewards Stars and TON from your total balance become available for spending on ads and rewards 21 and 3 days respectively after they are earned. https://telegram.org/tos/content-creator-rewards - https://telegram.org/tos/content-creator-rewards https://telegram.org/tos/content-creator-rewards In the coming weeks you will be able to collect your reward using Fragment, a third-party platform used by advertisers to pay ads. **Learn more >** Transaction history @@ -8758,7 +7423,6 @@ Add Only your contacts can see your birthday. **Change >** Choose who can see your birthday in **Settings.** - **Remove date of birth.** Date of Birth Save Change Opening Hours @@ -8980,6 +7644,7 @@ Buy **Stars** to send paid reactions to **%s** and other channels. Buy **Stars** to keep your channel subscriptions. Buy **Stars** to keep your channel subscriptions. + Buy **Stars** to keep your subscriptions active for the next 12 months. Move Caption Up Move Caption Down Add Fact Check @@ -9039,8 +7704,6 @@ Stars from your total balance become available for spending on ads and rewards 21 days after they are earned. You can withdraw Stars using Fragment, or use Stars to advertise your bot. **Learn more >** https://telegram.org/privacy - Withdraw via Fragment - Withdraw all via Fragment Withdraw all Withdraw ⭐️%d Withdraw ⭐️%d @@ -9067,6 +7730,8 @@ Edit price %d Star %d Stars + %d Star + %d Stars Media Post Paid Content @@ -9107,10 +7772,14 @@ Use Stars to unlock content and services on Telegram. View Received Gift + Received Prize Sent Gift Stars Gift Sent! **%1$d Star** sent as gift to %2$s. **%1$d Stars** sent as gift to %2$s. + Giveaway Started! + Winners will receive a total of **%1$d Star**. + Winners will receive a total of **%1$d Stars**. Webpage Oops... Failed to load page. @@ -9127,7 +7796,6 @@ Clear recent searches? Do you want to clear your recent search queries? Search Engine - Search and auto-complete in browser search bar Open in Telegram Open in... Apps @@ -9160,11 +7828,7 @@ Delete Preview Are you sure you want to delete this preview? Delete Previews - Are you sure you want to delete %d previews? Are you sure you want to delete %d preview? - Are you sure you want to delete %d previews? - Are you sure you want to delete %d previews? - Are you sure you want to delete %d previews? Are you sure you want to delete %d previews? %d preview deleted %d previews deleted @@ -9226,7 +7890,6 @@ Are you sure you want to clear browser history since %s? Never open in the in-app browser Add Website - Remove Clear List Telegram will always open links from these websites in the external browser. Add Website @@ -9296,7 +7959,8 @@ Your subscription expired on %s. Join Channel You left channel, but you can still get back until %s. - ⭐️%1$d Stars needed for %2$s + ⭐️%1$d Star needed for %2$s + ⭐️%1$d Stars needed for %2$s Insufficient funds to cover your subscription. Subscriber appx. %1$s per month @@ -9305,6 +7969,7 @@ Renews per month Stars sent! + Stars sent anonymously! You reacted with **%d** star. You reacted with **%d** stars. Undo @@ -9326,6 +7991,11 @@ You can create additional invite links that have limited time, number of users or require a paid subscription. You can create additional invite links that have limited time and number of users. To + From + To + Gift + Reason + Giveaway Monthly subscription fee My subscriptions Show More @@ -9338,4 +8008,13 @@ You will still have access to the channel until **%s**. Subscription renewed You renewed your subscription to **%s**. + Star Reactions were disabled on **%s**. + %d Star + %d Stars + From + Gift + Reason + Giveaway + Date + Until \ No newline at end of file diff --git a/TMessagesProj/src/main/res/values/strings_nekox.xml b/TMessagesProj/src/main/res/values/strings_nekox.xml index ac7b12410c..6f2fb43f24 100644 --- a/TMessagesProj/src/main/res/values/strings_nekox.xml +++ b/TMessagesProj/src/main/res/values/strings_nekox.xml @@ -283,4 +283,17 @@ Send reaction Disable Hide reactions while selecting + + Upgrade Group + Show keyboard + Warning + This action is irreversible. It is not possible to downgrade a supergroup to a regular group. + Photos and videos + Stickers and Masks + unofficial app + File size shouldn\'t be greater than %1$s + This folder is empty. + Search Recent Files + There are no matches with **%1$s** in current directory. + Use system default emoji diff --git a/TMessagesProj/src/main/res/values/styles.xml b/TMessagesProj/src/main/res/values/styles.xml index 09dfadf8f8..aa1eb8b190 100644 --- a/TMessagesProj/src/main/res/values/styles.xml +++ b/TMessagesProj/src/main/res/values/styles.xml @@ -194,14 +194,6 @@ @drawable/widget_avatar_7 - -