Skip to content

Commit 8c68390

Browse files
committed
upstream: bump version to v11.2.3
Signed-off-by: qwq233 <qwq233@qwq2333.top>
2 parents f928f20 + 9b78d43 commit 8c68390

File tree

192 files changed

+14118
-5682
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

192 files changed

+14118
-5682
lines changed

TMessagesProj/jni/TgNetWrapper.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ jint getTimeDifference(JNIEnv *env, jclass c, jint instanceNum) {
100100
void sendRequest(JNIEnv *env, jclass c, jint instanceNum, jlong object, jint flags, jint datacenterId, jint connectionType, jboolean immediate, jint token) {
101101
TL_api_request *request = new TL_api_request();
102102
request->request = (NativeByteBuffer *) (intptr_t) object;
103-
ConnectionsManager::getInstance(instanceNum).sendRequest(request, ([instanceNum, token](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId) {
103+
ConnectionsManager::getInstance(instanceNum).sendRequest(request, ([instanceNum, token](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId, int32_t dcId) {
104104
TL_api_response *resp = (TL_api_response *) response;
105105
jlong ptr = 0;
106106
jint errorCode = 0;
@@ -117,7 +117,7 @@ void sendRequest(JNIEnv *env, jclass c, jint instanceNum, jlong object, jint fla
117117
errorText = jniEnv[instanceNum]->NewStringUTF("UTF-8 ERROR");
118118
}
119119
}
120-
jniEnv[instanceNum]->CallStaticVoidMethod(jclass_ConnectionsManager, jclass_ConnectionsManager_onRequestComplete, instanceNum, token, ptr, errorCode, errorText, networkType, responseTime, msgId);
120+
jniEnv[instanceNum]->CallStaticVoidMethod(jclass_ConnectionsManager, jclass_ConnectionsManager_onRequestComplete, instanceNum, token, ptr, errorCode, errorText, networkType, responseTime, msgId, dcId);
121121
if (errorText != nullptr) {
122122
jniEnv[instanceNum]->DeleteLocalRef(errorText);
123123
}
@@ -594,7 +594,7 @@ extern "C" int registerNativeTgNetFunctions(JavaVM *vm, JNIEnv *env) {
594594
if (jclass_ConnectionsManager_onRequestClear == 0) {
595595
return JNI_FALSE;
596596
}
597-
jclass_ConnectionsManager_onRequestComplete = env->GetStaticMethodID(jclass_ConnectionsManager, "onRequestComplete", "(IIJILjava/lang/String;IJJ)V");
597+
jclass_ConnectionsManager_onRequestComplete = env->GetStaticMethodID(jclass_ConnectionsManager, "onRequestComplete", "(IIJILjava/lang/String;IJJI)V");
598598
if (jclass_ConnectionsManager_onRequestComplete == 0) {
599599
return JNI_FALSE;
600600
}

TMessagesProj/jni/tgnet/ConnectionsManager.cpp

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,8 @@ void ConnectionsManager::cleanUp(bool resetKeys, int32_t datacenterId) {
633633
auto error = new TL_error();
634634
error->code = -1000;
635635
error->text = "";
636-
request->onComplete(nullptr, error, 0, 0, request->messageId);
636+
int32_t dcId = request->datacenterId != DEFAULT_DATACENTER_ID ? request->datacenterId : currentDatacenterId;
637+
request->onComplete(nullptr, error, 0, 0, request->messageId, dcId);
637638
delete error;
638639
}
639640
iter = requestsQueue.erase(iter);
@@ -655,7 +656,8 @@ void ConnectionsManager::cleanUp(bool resetKeys, int32_t datacenterId) {
655656
auto error = new TL_error();
656657
error->code = -1000;
657658
error->text = "";
658-
request->onComplete(nullptr, error, 0, 0, request->messageId);
659+
int32_t dcId = request->datacenterId != DEFAULT_DATACENTER_ID ? request->datacenterId : currentDatacenterId;
660+
request->onComplete(nullptr, error, 0, 0, request->messageId, dcId);
659661
delete error;
660662
}
661663
DEBUG_D("1) erase request %d 0x%" PRIx64, request->requestToken, request->messageId);
@@ -1214,7 +1216,8 @@ void ConnectionsManager::processServerResponse(TLObject *message, int64_t messag
12141216
for (auto iter = runningRequests.begin(); iter != runningRequests.end(); iter++) {
12151217
Request *request = iter->get();
12161218
if (request->respondsToMessageId(requestMid)) {
1217-
request->onComplete(response, nullptr, connection->currentNetworkType, timeMessage, requestMid);
1219+
int32_t dcId = request->datacenterId != DEFAULT_DATACENTER_ID ? request->datacenterId : currentDatacenterId;
1220+
request->onComplete(response, nullptr, connection->currentNetworkType, timeMessage, requestMid, dcId);
12181221
request->completed = true;
12191222
DEBUG_D("4) erase request %d 0x%" PRIx64, request->requestToken, request->messageId);
12201223
runningRequests.erase(iter);
@@ -1459,12 +1462,13 @@ void ConnectionsManager::processServerResponse(TLObject *message, int64_t messag
14591462
}
14601463

14611464
if (!discardResponse) {
1465+
int32_t dcId = request->datacenterId != DEFAULT_DATACENTER_ID ? request->datacenterId : currentDatacenterId;
14621466
if (implicitError != nullptr || error2 != nullptr) {
14631467
isError = true;
1464-
request->onComplete(nullptr, implicitError != nullptr ? implicitError : error2, connection->currentNetworkType, timeMessage, request->messageId);
1468+
request->onComplete(nullptr, implicitError != nullptr ? implicitError : error2, connection->currentNetworkType, timeMessage, request->messageId, dcId);
14651469
delete error2;
14661470
} else {
1467-
request->onComplete(response->result.get(), nullptr, connection->currentNetworkType, timeMessage, request->messageId);
1471+
request->onComplete(response->result.get(), nullptr, connection->currentNetworkType, timeMessage, request->messageId, dcId);
14681472
}
14691473
}
14701474

@@ -2113,7 +2117,7 @@ bool ConnectionsManager::cancelRequestInternal(int32_t token, int64_t messageId,
21132117
auto dropAnswer = new TL_rpc_drop_answer();
21142118
dropAnswer->req_msg_id = request->messageId;
21152119
if (onCancelled != nullptr) {
2116-
sendRequest(dropAnswer, ([onCancelled](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId) -> void {
2120+
sendRequest(dropAnswer, ([onCancelled](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId, int32_t dcId) -> void {
21172121
if (onCancelled != nullptr) {
21182122
onCancelled();
21192123
}
@@ -2170,7 +2174,8 @@ void ConnectionsManager::failNotRunningRequest(int32_t token) {
21702174
auto error = new TL_error();
21712175
error->code = -2000;
21722176
error->text = "CANCELLED_REQUEST";
2173-
request->onComplete(nullptr, error, 0, 0, request->messageId);
2177+
int32_t dcId = request->datacenterId != DEFAULT_DATACENTER_ID ? request->datacenterId : currentDatacenterId;
2178+
request->onComplete(nullptr, error, 0, 0, request->messageId, dcId);
21742179

21752180
request->cancelled = true;
21762181
if (LOGS_ENABLED) DEBUG_D("cancelled queued rpc request %p - %s", request->rawRequest, typeid(*request->rawRequest).name());
@@ -2313,7 +2318,7 @@ void ConnectionsManager::requestSaltsForDatacenter(Datacenter *datacenter, bool
23132318
requestingSaltsForDc.push_back(id);
23142319
auto request = new TL_get_future_salts();
23152320
request->num = 32;
2316-
sendRequest(request, [&, datacenter, id, media](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId) {
2321+
sendRequest(request, [&, datacenter, id, media](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId, int32_t dcId) {
23172322
auto iter = std::find(requestingSaltsForDc.begin(), requestingSaltsForDc.end(), id);
23182323
if (iter != requestingSaltsForDc.end()) {
23192324
requestingSaltsForDc.erase(iter);
@@ -2348,7 +2353,7 @@ void ConnectionsManager::registerForInternalPushUpdates() {
23482353
request->token_type = 7;
23492354
request->token = to_string_uint64((uint64_t) pushSessionId);
23502355

2351-
sendRequest(request, [&](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId) {
2356+
sendRequest(request, [&](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId, int32_t dcId) {
23522357
if (error == nullptr) {
23532358
registeredForInternalPush = true;
23542359
if (LOGS_ENABLED) DEBUG_D("registered for internal push");
@@ -2571,7 +2576,8 @@ void ConnectionsManager::processRequestQueue(uint32_t connectionTypes, uint32_t
25712576
auto error = new TL_error();
25722577
error->code = -123;
25732578
error->text = "RETRY_LIMIT";
2574-
request->onComplete(nullptr, error, connection->currentNetworkType, 0, request->messageId);
2579+
int32_t dcId = request->datacenterId != DEFAULT_DATACENTER_ID ? request->datacenterId : currentDatacenterId;
2580+
request->onComplete(nullptr, error, connection->currentNetworkType, 0, request->messageId, dcId);
25752581
delete error;
25762582
DEBUG_D("12) erase request %d 0x%" PRIx64, request->requestToken, request->messageId);
25772583
iter = runningRequests.erase(iter);
@@ -3282,7 +3288,7 @@ void ConnectionsManager::updateDcSettings(uint32_t dcNum, bool workaround, bool
32823288
}
32833289

32843290
auto request = new TL_help_getConfig();
3285-
sendRequest(request, [&, workaround](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId) {
3291+
sendRequest(request, [&, workaround](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId, int32_t dcId) {
32863292
if ((!workaround && !updatingDcSettings) || (workaround && !updatingDcSettingsWorkaround)) {
32873293
return;
32883294
}
@@ -3431,7 +3437,7 @@ void ConnectionsManager::authorizeOnMovingDatacenter() {
34313437
auto request = new TL_auth_importAuthorization();
34323438
request->id = currentUserId;
34333439
request->bytes = std::move(movingAuthorization);
3434-
sendRequest(request, [&](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId) {
3440+
sendRequest(request, [&](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId, int32_t dcId) {
34353441
if (error == nullptr) {
34363442
authorizedOnMovingDatacenter();
34373443
} else {

TMessagesProj/jni/tgnet/Datacenter.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1447,14 +1447,14 @@ void Datacenter::exportAuthorization() {
14471447
auto request = new TL_auth_exportAuthorization();
14481448
request->dc_id = datacenterId;
14491449
if (LOGS_ENABLED) DEBUG_D("dc%u begin export authorization", datacenterId);
1450-
ConnectionsManager::getInstance(instanceNum).sendRequest(request, [&](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId) {
1450+
ConnectionsManager::getInstance(instanceNum).sendRequest(request, [&](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId, int32_t dcId) {
14511451
if (error == nullptr) {
14521452
auto res = (TL_auth_exportedAuthorization *) response;
14531453
auto request2 = new TL_auth_importAuthorization();
14541454
request2->bytes = std::move(res->bytes);
14551455
request2->id = res->id;
14561456
if (LOGS_ENABLED) DEBUG_D("dc%u begin import authorization", datacenterId);
1457-
ConnectionsManager::getInstance(instanceNum).sendRequest(request2, [&](TLObject *response2, TL_error *error2, int32_t networkType, int64_t responseTime, int64_t msgId) {
1457+
ConnectionsManager::getInstance(instanceNum).sendRequest(request2, [&](TLObject *response2, TL_error *error2, int32_t networkType, int64_t responseTime, int64_t msgId, int32_t dcId) {
14581458
if (error2 == nullptr) {
14591459
authorized = true;
14601460
ConnectionsManager::getInstance(instanceNum).onDatacenterExportAuthorizationComplete(this);

TMessagesProj/jni/tgnet/Defines.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class NativeByteBuffer;
4747
class Handshake;
4848
class ConnectionSocket;
4949

50-
typedef std::function<void(TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId)> onCompleteFunc;
50+
typedef std::function<void(TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId, int32_t dcId)> onCompleteFunc;
5151
typedef std::function<void()> onQuickAckFunc;
5252
typedef std::function<void()> onWriteToSocketFunc;
5353
typedef std::function<void()> onRequestClearFunc;

TMessagesProj/jni/tgnet/Handshake.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -873,7 +873,7 @@ void Handshake::processHandshakeResponse_serverDHParamsAnswer(TLObject *message,
873873
request->encrypted_message = currentDatacenter->createRequestsData(array, nullptr, connection, true);
874874
};
875875

876-
authKeyPendingRequestId = ConnectionsManager::getInstance(currentDatacenter->instanceNum).sendRequest(request, [&](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId) {
876+
authKeyPendingRequestId = ConnectionsManager::getInstance(currentDatacenter->instanceNum).sendRequest(request, [&](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId, int32_t dcId) {
877877
authKeyPendingMessageId = 0;
878878
authKeyPendingRequestId = 0;
879879
if (response != nullptr && typeid(*response) == typeid(TL_boolTrue)) {
@@ -989,7 +989,7 @@ void Handshake::loadCdnConfig(Datacenter *datacenter) {
989989
loadingCdnKeys = true;
990990
auto request = new TL_help_getCdnConfig();
991991

992-
ConnectionsManager::getInstance(datacenter->instanceNum).sendRequest(request, [&, datacenter](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId) {
992+
ConnectionsManager::getInstance(datacenter->instanceNum).sendRequest(request, [&, datacenter](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId, int32_t dcId) {
993993
if (response != nullptr) {
994994
auto config = (TL_cdnConfig *) response;
995995
size_t count = config->public_keys.size();

TMessagesProj/jni/tgnet/Request.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ void Request::clear(bool time) {
5252
}
5353
}
5454

55-
void Request::onComplete(TLObject *result, TL_error *error, int32_t networkType, int64_t responseTime, int64_t requestMsgId) {
55+
void Request::onComplete(TLObject *result, TL_error *error, int32_t networkType, int64_t responseTime, int64_t requestMsgId, int32_t dcId) {
5656
if (onCompleteRequestCallback != nullptr && (result != nullptr || error != nullptr)) {
5757
completedSent = true;
58-
onCompleteRequestCallback(result, error, networkType, responseTime, requestMsgId);
58+
onCompleteRequestCallback(result, error, networkType, responseTime, requestMsgId, dcId);
5959
}
6060
}
6161

TMessagesProj/jni/tgnet/Request.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class Request {
6666
void addRespondMessageId(int64_t id);
6767
bool respondsToMessageId(int64_t id);
6868
void clear(bool time);
69-
void onComplete(TLObject *result, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msg_id);
69+
void onComplete(TLObject *result, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msg_id, int32_t dcId);
7070
void onQuickAck();
7171
void onWriteToSocket();
7272
bool isMediaRequest();

TMessagesProj/proguard-rules-beta.pro

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
-keep class org.telegram.tgnet.** { *; }

TMessagesProj/src/main/AndroidManifest.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@
4646
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
4747
<uses-permission android:name="android.permission.INTERNET" />
4848
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
49+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
50+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
51+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />
52+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA" />
53+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />
54+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
4955
<uses-permission android:name="android.permission.RECORD_AUDIO" />
5056
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
5157
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
@@ -476,6 +482,14 @@
476482
</intent-filter>
477483
</receiver>
478484

485+
<receiver
486+
android:name=".CopyCodeReceiver"
487+
android:exported="false">
488+
<intent-filter>
489+
<action android:name="org.telegram.messenger.ACTION_COPY_CODE"/>
490+
</intent-filter>
491+
</receiver>
492+
479493
<receiver
480494
android:name=".NotificationsDisabledReceiver"
481495
android:exported="false">

TMessagesProj/src/main/assets/darkblue.attheme

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,3 +446,4 @@ iv_backgroundGray=-14737633
446446
iv_navigationBackground=-16777216
447447
table_background=177390847
448448
table_border=436207615
449+
dialogCardShadow=1073741824

TMessagesProj/src/main/assets/night.attheme

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,3 +471,4 @@ iv_backgroundGray=-14737633
471471
iv_navigationBackground=-16777216
472472
table_background=177390847
473473
table_border=436207615
474+
dialogCardShadow=1073741824

0 commit comments

Comments
 (0)