mirror of https://github.com/NekoX-Dev/NekoX.git
Update README
This commit is contained in:
parent
ada851e69b
commit
56c53abcc4
34
README.md
34
README.md
|
@ -1,18 +1,18 @@
|
||||||
# NekoX
|
# NekoX
|
||||||
|
|
||||||
NekoX is an **open source** third-party Telegram client, based on Telegram-FOSS with features added.
|
NekoX is an **free and open source** third-party Telegram client, based on Telegram-FOSS with features added.
|
||||||
|
|
||||||
- [Google Play Store](https://play.google.com/store/apps/details?id=nekox.messenger)
|
- [Google Play Store](https://play.google.com/store/apps/details?id=nekox.messenger)
|
||||||
- [Update News Telegram](https://t.me/NekogramX)
|
- [Update News Telegram](https://t.me/NekogramX)
|
||||||
- [GitHub Feedback](https://github.com/NekoX-Dev/NekoX/issues)
|
- [GitHub Feedback](https://github.com/NekoX-Dev/NekoX/issues)
|
||||||
- [Group Chat (English / Chinese)](https://t.me/NekoXChat)
|
- [Group Chat (English / Chinese)](https://t.me/NekoXChat)
|
||||||
- [Group Chat (Persian)](https://t.me/NekogramX_Persian)
|
- [Group Chat (Persian)](https://t.me/NekogramX_Persian)
|
||||||
|
- [Group Chat (Indonesia)](https://t.me/NekoxID)
|
||||||
The play store version is outdated [due to](https://developer.android.com/distribute/best-practices/develop/target-sdk) the target api level 29 is not supported yet. Otherwise, the play version won't be able to read photos and files (like other 3rd apps do).
|
|
||||||
|
|
||||||
## NekoX Changes
|
## NekoX Changes
|
||||||
|
|
||||||
- Most of Nekogram's features
|
- Most of Nekogram's features
|
||||||
|
- Max account limit set to 32
|
||||||
- OpenCC Chinese Convert
|
- OpenCC Chinese Convert
|
||||||
- Built-in Vmess, Shadowsocks, SSR proxies support
|
- Built-in Vmess, Shadowsocks, SSR proxies support
|
||||||
- Built-in public proxy list / Proxy subscription support.
|
- Built-in public proxy list / Proxy subscription support.
|
||||||
|
@ -23,6 +23,7 @@ The play store version is outdated [due to](https://developer.android.com/distri
|
||||||
- Proxy automatic switcher
|
- Proxy automatic switcher
|
||||||
- Add stickers without sticker pack
|
- Add stickers without sticker pack
|
||||||
- Allow disable vibration
|
- Allow disable vibration
|
||||||
|
- Allow clicking on links in self profile
|
||||||
- Sticker set list backup / restore / share
|
- Sticker set list backup / restore / share
|
||||||
- Full InstantView translation support
|
- Full InstantView translation support
|
||||||
- Translation support for selected text on input and in messages
|
- Translation support for selected text on input and in messages
|
||||||
|
@ -30,8 +31,8 @@ The play store version is outdated [due to](https://developer.android.com/distri
|
||||||
- Dialog sorting is optional "Unread and can be prioritized for reminding" etc.
|
- Dialog sorting is optional "Unread and can be prioritized for reminding" etc.
|
||||||
- Allow to skip "regret within five seconds"
|
- Allow to skip "regret within five seconds"
|
||||||
- Unblock all users support
|
- Unblock all users support
|
||||||
- Login via QR code
|
- Login via qrcode
|
||||||
- Scan and confirm the login QR code directly
|
- Scan and confirm the login qrcode directly
|
||||||
- Allow clear application data
|
- Allow clear application data
|
||||||
- Option to not send comment first when forwarding
|
- Option to not send comment first when forwarding
|
||||||
- 0ption to use nekox chat input menu: replace record button with a menu which contains an switch to control link preview (enabled by default)
|
- 0ption to use nekox chat input menu: replace record button with a menu which contains an switch to control link preview (enabled by default)
|
||||||
|
@ -44,11 +45,17 @@ The play store version is outdated [due to](https://developer.android.com/distri
|
||||||
- Custom server (official, test DC or Manual input)
|
- Custom server (official, test DC or Manual input)
|
||||||
- Keep the original file name when downloading files
|
- Keep the original file name when downloading files
|
||||||
- View the data center you belong to when you don't have an avatar
|
- View the data center you belong to when you don't have an avatar
|
||||||
- Proxies, groups, channels, sticker packs are able to shared as QRCodes.
|
- Proxies, groups, channels, sticker packs are able to shared as qrcodes.
|
||||||
- Force English emoji keywords to be loaded
|
- Force English emoji keywords to be loaded
|
||||||
- Add "@Name" when long press @ user option
|
- Add "@Name" when long press @ user option
|
||||||
- Enhanced notification service, optional version without Google Services.
|
- Enhanced notification service, optional version without Google Services.
|
||||||
- Don't alert "Proxy unavailable" for non-current account
|
- Don't alert "Proxy unavailable" for non-current account
|
||||||
|
- Option to block others from starting a secret chat with you
|
||||||
|
- Allow create group without invite
|
||||||
|
- Option to upgrade group to supergroup
|
||||||
|
- Improved session dialog
|
||||||
|
- Improved link long click menu
|
||||||
|
- Text replacer
|
||||||
- Tgx style message unpin menu
|
- Tgx style message unpin menu
|
||||||
- Built-in Material Design themes / Telegram X style icons
|
- Built-in Material Design themes / Telegram X style icons
|
||||||
|
|
||||||
|
@ -64,7 +71,6 @@ Consider using a Linux VM or dual booting.**
|
||||||
It is recommended to use [AndroidStudio](https://developer.android.com/studio) to install. [here is how to install AndroidStudio](https://developer.android.com/studio/install).
|
It is recommended to use [AndroidStudio](https://developer.android.com/studio) to install. [here is how to install AndroidStudio](https://developer.android.com/studio/install).
|
||||||
|
|
||||||
2. Install golang ( >= 1.15.5 ).
|
2. Install golang ( >= 1.15.5 ).
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
apt install -y golang
|
apt install -y golang
|
||||||
```
|
```
|
||||||
|
@ -103,10 +109,24 @@ The full version comes with built-in proxy support for v2ray, shadowsocks, and s
|
||||||
|
|
||||||
Then it is recommended to use the `Mini` version.
|
Then it is recommended to use the `Mini` version.
|
||||||
|
|
||||||
|
#### I've encountered a bug!
|
||||||
|
|
||||||
|
First, make sure you have the latest version installed (check the channel, play store updates usually have a delay).
|
||||||
|
|
||||||
|
Then, if the issue appears on the official telegram as well, please submit it to the officials, ( but be careful not to show NekoX in the description and screenshots, the official developers don't like us! ).
|
||||||
|
|
||||||
|
Then, please *detail* your issue, create an issue or submit it to our [group](https://t.me/NekoXChat) with #bug.
|
||||||
|
|
||||||
|
If you experience a *crash*, you also need to click on the version number at the bottom of the settings and select "Enable Log" and send it to us.
|
||||||
|
|
||||||
#### How can I help with Localization?
|
#### How can I help with Localization?
|
||||||
|
|
||||||
Join the project at https://nekox.crowdin.com/nekox.
|
Join the project at https://nekox.crowdin.com/nekox.
|
||||||
|
|
||||||
|
##### My language is not in the translation platform / needs to be improved !
|
||||||
|
|
||||||
|
Same as submitting a bug, plus you need to submit your nekox.crowdin.com account.
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
|
|
@ -8627,7 +8627,7 @@ public class MessagesController extends BaseController implements NotificationCe
|
||||||
} else {
|
} else {
|
||||||
TLRPC.TL_contacts_resolveUsername req1 = new TLRPC.TL_contacts_resolveUsername();
|
TLRPC.TL_contacts_resolveUsername req1 = new TLRPC.TL_contacts_resolveUsername();
|
||||||
req1.username = username;
|
req1.username = username;
|
||||||
return getConnectionsManager().sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> {
|
return getConnectionsManager().sendRequest(req1, (response, error) -> AndroidUtilities.runOnUIThread(() -> {
|
||||||
if (error == null) {
|
if (error == null) {
|
||||||
TLRPC.TL_contacts_resolvedPeer res = (TLRPC.TL_contacts_resolvedPeer) response;
|
TLRPC.TL_contacts_resolvedPeer res = (TLRPC.TL_contacts_resolvedPeer) response;
|
||||||
putUsers(res.users, false);
|
putUsers(res.users, false);
|
||||||
|
|
|
@ -183,9 +183,9 @@ public class ConnectionsManager extends BaseController {
|
||||||
String fingerprint;
|
String fingerprint;
|
||||||
if (getUserConfig().official || !getUserConfig().isClientActivated()) {
|
if (getUserConfig().official || !getUserConfig().isClientActivated()) {
|
||||||
fingerprint = "49C1522548EBACD46CE322B6FD47F6092BB745D0F88082145CAF35E14DCC38E1";
|
fingerprint = "49C1522548EBACD46CE322B6FD47F6092BB745D0F88082145CAF35E14DCC38E1";
|
||||||
version = BuildConfig.OFFICIAL_VERSION_CODE;
|
version = BuildConfig.OFFICIAL_VERSION_CODE * 10 + 9;
|
||||||
appId = BuildVars.OFFICAL_APP_ID;
|
appId = BuildVars.OFFICAL_APP_ID;
|
||||||
appVersion = BuildConfig.OFFICIAL_VERSION + " (" + BuildConfig.OFFICIAL_VERSION_CODE * 10 + 9 + ")";
|
appVersion = BuildConfig.OFFICIAL_VERSION + " (" + (BuildConfig.OFFICIAL_VERSION_CODE * 10 + 9) + ")";
|
||||||
if (BuildVars.DEBUG_VERSION) {
|
if (BuildVars.DEBUG_VERSION) {
|
||||||
appVersion += " beta";
|
appVersion += " beta";
|
||||||
}
|
}
|
||||||
|
|
|
@ -12689,7 +12689,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (messArr.size() == 2 &&
|
if (messArr.size() <= 3 &&
|
||||||
obj.messageOwner.action instanceof TLRPC.TL_messageActionChatDeleteUser &&
|
obj.messageOwner.action instanceof TLRPC.TL_messageActionChatDeleteUser &&
|
||||||
obj.messageOwner.from_id instanceof TLRPC.TL_peerUser &&
|
obj.messageOwner.from_id instanceof TLRPC.TL_peerUser &&
|
||||||
obj.messageOwner.from_id.user_id == getUserConfig().getClientUserId()) {
|
obj.messageOwner.from_id.user_id == getUserConfig().getClientUserId()) {
|
||||||
|
@ -13289,7 +13289,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
} else if (id == NotificationCenter.didReceiveNewMessages) {
|
} else if (id == NotificationCenter.didReceiveNewMessages) {
|
||||||
long did = (Long) args[0];
|
long did = (Long) args[0];
|
||||||
ArrayList<MessageObject> arr = (ArrayList<MessageObject>) args[1];
|
ArrayList<MessageObject> arr = (ArrayList<MessageObject>) args[1];
|
||||||
if (arr.size() == 1) {
|
if (arr.size() <= 2) {
|
||||||
MessageObject fst = arr.get(0);
|
MessageObject fst = arr.get(0);
|
||||||
TLRPC.MessageAction action = fst.messageOwner.action;
|
TLRPC.MessageAction action = fst.messageOwner.action;
|
||||||
if (action instanceof TLRPC.TL_messageActionChatDeleteUser &&
|
if (action instanceof TLRPC.TL_messageActionChatDeleteUser &&
|
||||||
|
|
Loading…
Reference in New Issue