Make Russian the default README and strengthen phone blur
- README.md is now Russian (default page on GitHub); English moved to README.en.md, both cross-linked; drop README.ru.md - Increase BlurredTextSpan radius to 7dp and draw the blurred glyphs multiple times so the number becomes an unreadable smudge
This commit is contained in:
parent
d1bd2d7b2d
commit
14f4107450
4 changed files with 113 additions and 109 deletions
74
README.en.md
Normal file
74
README.en.md
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
# FoxiGram
|
||||||
|
|
||||||
|
[Русский](README.md) · **English**
|
||||||
|
|
||||||
|
An unofficial Telegram client based on Nekogram, with a built-in VLESS+Reality
|
||||||
|
proxy client (Xray) for bundled, one-tap proxy access.
|
||||||
|
|
||||||
|
## Download
|
||||||
|
|
||||||
|
Latest builds are on the releases page:
|
||||||
|
|
||||||
|
**https://github.com/instant992/FoxiGram/releases**
|
||||||
|
|
||||||
|
Download `FoxiGram-<version>-<code>-arm64-v8a.apk` from the newest release and
|
||||||
|
install it on your device (you may need to allow installs from unknown
|
||||||
|
sources).
|
||||||
|
|
||||||
|
You can also open the download link straight from the app:
|
||||||
|
**Settings → Foxi → Download FoxiGram**.
|
||||||
|
|
||||||
|
## Built-in proxy servers
|
||||||
|
|
||||||
|
Server credentials are intentionally kept out of this repository.
|
||||||
|
|
||||||
|
- The real servers live in
|
||||||
|
`TMessagesProj/src/main/java/org/telegram/messenger/XrayServers.java`,
|
||||||
|
which is git-ignored.
|
||||||
|
- A template is provided at `XrayServers.java.template`.
|
||||||
|
|
||||||
|
To configure your own bundled proxies:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd TMessagesProj/src/main/java/org/telegram/messenger/
|
||||||
|
cp XrayServers.java.template XrayServers.java
|
||||||
|
# then edit XrayServers.java and fill in your VLESS+Reality server data
|
||||||
|
```
|
||||||
|
|
||||||
|
Leaving the addresses empty disables the bundled proxies — the app still builds
|
||||||
|
and runs, you just won't see the pre-configured entries in the proxy list.
|
||||||
|
|
||||||
|
## Native Xray library (libxray.so)
|
||||||
|
|
||||||
|
The proxy core is a small Go wrapper around xray-core, built as a JNI shared
|
||||||
|
library. The source is in `libxray/`. The compiled `libxray.so` is git-ignored
|
||||||
|
and must be built locally.
|
||||||
|
|
||||||
|
Build for Android arm64 (requires Go and the Android NDK):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd libxray
|
||||||
|
go mod tidy
|
||||||
|
set CGO_ENABLED=1
|
||||||
|
set GOOS=android
|
||||||
|
set GOARCH=arm64
|
||||||
|
set CC=<NDK>/toolchains/llvm/prebuilt/<host>/bin/aarch64-linux-android21-clang
|
||||||
|
go build -buildmode=c-shared -o ../TMessagesProj/src/main/jniLibs/arm64-v8a/libxray.so .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Building the app
|
||||||
|
|
||||||
|
Standard Gradle build:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./gradlew :TMessagesProj_App:assembleRelease -Pandroid.injected.build.abi.filter=arm64-v8a
|
||||||
|
```
|
||||||
|
|
||||||
|
The output APK is named `FoxiGram-<version>-<code>-<abi>.apk`.
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- `google-services.json`, signing keystores, and `local.properties` are not
|
||||||
|
committed. Provide your own for release builds.
|
||||||
|
- This is a fork for personal use. Based on Nekogram, which is based on
|
||||||
|
Telegram for Android.
|
||||||
65
README.md
65
README.md
|
|
@ -1,50 +1,51 @@
|
||||||
# FoxiGram
|
# FoxiGram
|
||||||
|
|
||||||
**English** · [Русский](README.ru.md)
|
**Русский** · [English](README.en.md)
|
||||||
|
|
||||||
An unofficial Telegram client based on Nekogram, with a built-in VLESS+Reality
|
Неофициальный клиент Telegram на базе Nekogram со встроенным
|
||||||
proxy client (Xray) for bundled, one-tap proxy access.
|
прокси-клиентом VLESS+Reality (Xray) для доступа к прокси в одно касание.
|
||||||
|
|
||||||
## Download
|
## Скачать
|
||||||
|
|
||||||
Latest builds are on the releases page:
|
Свежие версии — на странице релизов:
|
||||||
|
|
||||||
**https://github.com/instant992/FoxiGram/releases**
|
**https://github.com/instant992/FoxiGram/releases**
|
||||||
|
|
||||||
Download `FoxiGram-<version>-<code>-arm64-v8a.apk` from the newest release and
|
Скачайте файл `FoxiGram-<версия>-<код>-arm64-v8a.apk` из последнего релиза и
|
||||||
install it on your device (you may need to allow installs from unknown
|
установите его на устройстве (для этого может понадобиться разрешить установку
|
||||||
sources).
|
из неизвестных источников).
|
||||||
|
|
||||||
You can also open the download link straight from the app:
|
Ссылку на скачивание также можно открыть прямо из приложения:
|
||||||
**Settings → Foxi → Download FoxiGram**.
|
**Настройки → Foxi → Скачать FoxiGram**.
|
||||||
|
|
||||||
## Built-in proxy servers
|
## Встроенные прокси-серверы
|
||||||
|
|
||||||
Server credentials are intentionally kept out of this repository.
|
Данные серверов намеренно не хранятся в этом репозитории.
|
||||||
|
|
||||||
- The real servers live in
|
- Реальные серверы лежат в файле
|
||||||
`TMessagesProj/src/main/java/org/telegram/messenger/XrayServers.java`,
|
`TMessagesProj/src/main/java/org/telegram/messenger/XrayServers.java`,
|
||||||
which is git-ignored.
|
который исключён из git.
|
||||||
- A template is provided at `XrayServers.java.template`.
|
- Шаблон находится в `XrayServers.java.template`.
|
||||||
|
|
||||||
To configure your own bundled proxies:
|
Чтобы настроить свои встроенные прокси:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd TMessagesProj/src/main/java/org/telegram/messenger/
|
cd TMessagesProj/src/main/java/org/telegram/messenger/
|
||||||
cp XrayServers.java.template XrayServers.java
|
cp XrayServers.java.template XrayServers.java
|
||||||
# then edit XrayServers.java and fill in your VLESS+Reality server data
|
# затем отредактируйте XrayServers.java и впишите данные своих серверов VLESS+Reality
|
||||||
```
|
```
|
||||||
|
|
||||||
Leaving the addresses empty disables the bundled proxies — the app still builds
|
Если оставить адреса пустыми, встроенные прокси отключатся — приложение всё
|
||||||
and runs, you just won't see the pre-configured entries in the proxy list.
|
равно соберётся и будет работать, просто в списке прокси не будет
|
||||||
|
предзаданных записей.
|
||||||
|
|
||||||
## Native Xray library (libxray.so)
|
## Нативная библиотека Xray (libxray.so)
|
||||||
|
|
||||||
The proxy core is a small Go wrapper around xray-core, built as a JNI shared
|
Ядро прокси — небольшая Go-обёртка над xray-core, собранная как разделяемая
|
||||||
library. The source is in `libxray/`. The compiled `libxray.so` is git-ignored
|
JNI-библиотека. Исходники в `libxray/`. Скомпилированный `libxray.so` исключён
|
||||||
and must be built locally.
|
из git и собирается локально.
|
||||||
|
|
||||||
Build for Android arm64 (requires Go and the Android NDK):
|
Сборка под Android arm64 (нужны Go и Android NDK):
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd libxray
|
cd libxray
|
||||||
|
|
@ -56,19 +57,19 @@ set CC=<NDK>/toolchains/llvm/prebuilt/<host>/bin/aarch64-linux-android21-clang
|
||||||
go build -buildmode=c-shared -o ../TMessagesProj/src/main/jniLibs/arm64-v8a/libxray.so .
|
go build -buildmode=c-shared -o ../TMessagesProj/src/main/jniLibs/arm64-v8a/libxray.so .
|
||||||
```
|
```
|
||||||
|
|
||||||
## Building the app
|
## Сборка приложения
|
||||||
|
|
||||||
Standard Gradle build:
|
Обычная сборка через Gradle:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
./gradlew :TMessagesProj_App:assembleRelease -Pandroid.injected.build.abi.filter=arm64-v8a
|
./gradlew :TMessagesProj_App:assembleRelease -Pandroid.injected.build.abi.filter=arm64-v8a
|
||||||
```
|
```
|
||||||
|
|
||||||
The output APK is named `FoxiGram-<version>-<code>-<abi>.apk`.
|
Итоговый APK называется `FoxiGram-<версия>-<код>-<abi>.apk`.
|
||||||
|
|
||||||
## Notes
|
## Примечания
|
||||||
|
|
||||||
- `google-services.json`, signing keystores, and `local.properties` are not
|
- `google-services.json`, ключи подписи и `local.properties` не хранятся в
|
||||||
committed. Provide your own for release builds.
|
репозитории. Для релизной сборки подставьте свои.
|
||||||
- This is a fork for personal use. Based on Nekogram, which is based on
|
- Это форк для личного использования. Основан на Nekogram, который основан на
|
||||||
Telegram for Android.
|
Telegram для Android.
|
||||||
|
|
|
||||||
75
README.ru.md
75
README.ru.md
|
|
@ -1,75 +0,0 @@
|
||||||
# FoxiGram
|
|
||||||
|
|
||||||
[English](README.md) · **Русский**
|
|
||||||
|
|
||||||
Неофициальный клиент Telegram на базе Nekogram со встроенным
|
|
||||||
прокси-клиентом VLESS+Reality (Xray) для доступа к прокси в одно касание.
|
|
||||||
|
|
||||||
## Скачать
|
|
||||||
|
|
||||||
Свежие версии — на странице релизов:
|
|
||||||
|
|
||||||
**https://github.com/instant992/FoxiGram/releases**
|
|
||||||
|
|
||||||
Скачайте файл `FoxiGram-<версия>-<код>-arm64-v8a.apk` из последнего релиза и
|
|
||||||
установите его на устройстве (для этого может понадобиться разрешить установку
|
|
||||||
из неизвестных источников).
|
|
||||||
|
|
||||||
Ссылку на скачивание также можно открыть прямо из приложения:
|
|
||||||
**Настройки → Foxi → Скачать FoxiGram**.
|
|
||||||
|
|
||||||
## Встроенные прокси-серверы
|
|
||||||
|
|
||||||
Данные серверов намеренно не хранятся в этом репозитории.
|
|
||||||
|
|
||||||
- Реальные серверы лежат в файле
|
|
||||||
`TMessagesProj/src/main/java/org/telegram/messenger/XrayServers.java`,
|
|
||||||
который исключён из git.
|
|
||||||
- Шаблон находится в `XrayServers.java.template`.
|
|
||||||
|
|
||||||
Чтобы настроить свои встроенные прокси:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cd TMessagesProj/src/main/java/org/telegram/messenger/
|
|
||||||
cp XrayServers.java.template XrayServers.java
|
|
||||||
# затем отредактируйте XrayServers.java и впишите данные своих серверов VLESS+Reality
|
|
||||||
```
|
|
||||||
|
|
||||||
Если оставить адреса пустыми, встроенные прокси отключатся — приложение всё
|
|
||||||
равно соберётся и будет работать, просто в списке прокси не будет
|
|
||||||
предзаданных записей.
|
|
||||||
|
|
||||||
## Нативная библиотека Xray (libxray.so)
|
|
||||||
|
|
||||||
Ядро прокси — небольшая Go-обёртка над xray-core, собранная как разделяемая
|
|
||||||
JNI-библиотека. Исходники в `libxray/`. Скомпилированный `libxray.so` исключён
|
|
||||||
из git и собирается локально.
|
|
||||||
|
|
||||||
Сборка под Android arm64 (нужны Go и Android NDK):
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cd libxray
|
|
||||||
go mod tidy
|
|
||||||
set CGO_ENABLED=1
|
|
||||||
set GOOS=android
|
|
||||||
set GOARCH=arm64
|
|
||||||
set CC=<NDK>/toolchains/llvm/prebuilt/<host>/bin/aarch64-linux-android21-clang
|
|
||||||
go build -buildmode=c-shared -o ../TMessagesProj/src/main/jniLibs/arm64-v8a/libxray.so .
|
|
||||||
```
|
|
||||||
|
|
||||||
## Сборка приложения
|
|
||||||
|
|
||||||
Обычная сборка через Gradle:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
./gradlew :TMessagesProj_App:assembleRelease -Pandroid.injected.build.abi.filter=arm64-v8a
|
|
||||||
```
|
|
||||||
|
|
||||||
Итоговый APK называется `FoxiGram-<версия>-<код>-<abi>.apk`.
|
|
||||||
|
|
||||||
## Примечания
|
|
||||||
|
|
||||||
- `google-services.json`, ключи подписи и `local.properties` не хранятся в
|
|
||||||
репозитории. Для релизной сборки подставьте свои.
|
|
||||||
- Это форк для личного использования. Основан на Nekogram, который основан на
|
|
||||||
Telegram для Android.
|
|
||||||
|
|
@ -31,7 +31,7 @@ public class BlurredTextSpan extends ReplacementSpan {
|
||||||
private int cachePad;
|
private int cachePad;
|
||||||
|
|
||||||
public BlurredTextSpan(String text) {
|
public BlurredTextSpan(String text) {
|
||||||
this(text, AndroidUtilities.dp(3.5f));
|
this(text, AndroidUtilities.dp(7f));
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlurredTextSpan(String text, float blurRadius) {
|
public BlurredTextSpan(String text, float blurRadius) {
|
||||||
|
|
@ -104,6 +104,10 @@ public class BlurredTextSpan extends ReplacementSpan {
|
||||||
p.setColor(color);
|
p.setColor(color);
|
||||||
p.setTypeface(paint.getTypeface());
|
p.setTypeface(paint.getTypeface());
|
||||||
p.setMaskFilter(new BlurMaskFilter(blurRadius, BlurMaskFilter.Blur.NORMAL));
|
p.setMaskFilter(new BlurMaskFilter(blurRadius, BlurMaskFilter.Blur.NORMAL));
|
||||||
|
// A strong blur fades the glyphs to near-transparency; draw the blurred
|
||||||
|
// text several times so it stays a dense, unreadable smudge.
|
||||||
|
for (int i = 0; i < 4; i++) {
|
||||||
c.drawText(text, pad, cacheBaseline, p);
|
c.drawText(text, pad, cacheBaseline, p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue