Skip to content

Commit d62d2ed

Browse files
committed
update to 10.9.1 (4464)
1 parent 4a8efef commit d62d2ed

File tree

300 files changed

+21007
-4174
lines changed

Some content is hidden

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

300 files changed

+21007
-4174
lines changed

TMessagesProj/jni/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ target_include_directories(breakpad PUBLIC
425425
#voip
426426
include(${CMAKE_HOME_DIRECTORY}/voip/CMakeLists.txt)
427427

428-
set(NATIVE_LIB "tmessages.47")
428+
set(NATIVE_LIB "tmessages.48")
429429

430430
#tmessages
431431
add_library(${NATIVE_LIB} SHARED

TMessagesProj/jni/TgNetWrapper.cpp

Lines changed: 29 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,15 @@
88
#include "tgnet/FileLog.h"
99

1010
JavaVM *java;
11-
jclass jclass_RequestDelegateInternal;
12-
jmethodID jclass_RequestDelegateInternal_run;
1311

1412
jclass jclass_RequestTimeDelegate;
1513
jmethodID jclass_RequestTimeDelegate_run;
1614

17-
jclass jclass_QuickAckDelegate;
18-
jmethodID jclass_QuickAckDelegate_run;
19-
20-
jclass jclass_WriteToSocketDelegate;
21-
jmethodID jclass_WriteToSocketDelegate_run;
22-
2315
jclass jclass_ConnectionsManager;
16+
jmethodID jclass_ConnectionsManager_onRequestClear;
17+
jmethodID jclass_ConnectionsManager_onRequestComplete;
18+
jmethodID jclass_ConnectionsManager_onRequestQuickAck;
19+
jmethodID jclass_ConnectionsManager_onRequestWriteToSocket;
2420
jmethodID jclass_ConnectionsManager_onUnparsedMessageReceived;
2521
jmethodID jclass_ConnectionsManager_onUpdate;
2622
jmethodID jclass_ConnectionsManager_onSessionCreated;
@@ -93,22 +89,10 @@ jint getTimeDifference(JNIEnv *env, jclass c, jint instanceNum) {
9389
return ConnectionsManager::getInstance(instanceNum).getTimeDifference();
9490
}
9591

96-
void sendRequest(JNIEnv *env, jclass c, jint instanceNum, jlong object, jobject onComplete, jobject onQuickAck, jobject onWriteToSocket, jint flags, jint datacenterId, jint connetionType, jboolean immediate, jint token) {
92+
void sendRequest(JNIEnv *env, jclass c, jint instanceNum, jlong object, jint flags, jint datacenterId, jint connectionType, jboolean immediate, jint token) {
9793
TL_api_request *request = new TL_api_request();
9894
request->request = (NativeByteBuffer *) (intptr_t) object;
99-
if (onComplete != nullptr) {
100-
DEBUG_REF("sendRequest onComplete");
101-
onComplete = env->NewGlobalRef(onComplete);
102-
}
103-
if (onQuickAck != nullptr) {
104-
DEBUG_REF("sendRequest onQuickAck");
105-
onQuickAck = env->NewGlobalRef(onQuickAck);
106-
}
107-
if (onWriteToSocket != nullptr) {
108-
DEBUG_REF("sendRequest onWriteToSocket");
109-
onWriteToSocket = env->NewGlobalRef(onWriteToSocket);
110-
}
111-
ConnectionsManager::getInstance(instanceNum).sendRequest(request, ([onComplete, instanceNum](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId) {
95+
ConnectionsManager::getInstance(instanceNum).sendRequest(request, ([instanceNum, token](TLObject *response, TL_error *error, int32_t networkType, int64_t responseTime, int64_t msgId) {
11296
TL_api_response *resp = (TL_api_response *) response;
11397
jlong ptr = 0;
11498
jint errorCode = 0;
@@ -125,25 +109,23 @@ void sendRequest(JNIEnv *env, jclass c, jint instanceNum, jlong object, jobject
125109
errorText = jniEnv[instanceNum]->NewStringUTF("UTF-8 ERROR");
126110
}
127111
}
128-
if (onComplete != nullptr) {
129-
jniEnv[instanceNum]->CallVoidMethod(onComplete, jclass_RequestDelegateInternal_run, ptr, errorCode, errorText, networkType, responseTime, msgId);
130-
}
112+
jniEnv[instanceNum]->CallStaticVoidMethod(jclass_ConnectionsManager, jclass_ConnectionsManager_onRequestComplete, instanceNum, token, ptr, errorCode, errorText, networkType, responseTime, msgId);
131113
if (errorText != nullptr) {
132114
jniEnv[instanceNum]->DeleteLocalRef(errorText);
133115
}
134-
}), ([onQuickAck, instanceNum] {
135-
if (onQuickAck != nullptr) {
136-
jniEnv[instanceNum]->CallVoidMethod(onQuickAck, jclass_QuickAckDelegate_run);
137-
}
138-
}), ([onWriteToSocket, instanceNum] {
139-
if (onWriteToSocket != nullptr) {
140-
jniEnv[instanceNum]->CallVoidMethod(onWriteToSocket, jclass_WriteToSocketDelegate_run);
141-
}
142-
}), (uint32_t) flags, (uint32_t) datacenterId, (ConnectionType) connetionType, immediate, token, onComplete, onQuickAck, onWriteToSocket);
116+
}), ([instanceNum, token] {
117+
jniEnv[instanceNum]->CallStaticVoidMethod(jclass_ConnectionsManager, jclass_ConnectionsManager_onRequestQuickAck, instanceNum, token);
118+
}), ([instanceNum, token] {
119+
jniEnv[instanceNum]->CallStaticVoidMethod(jclass_ConnectionsManager, jclass_ConnectionsManager_onRequestWriteToSocket, instanceNum, token);
120+
}), ([instanceNum, token] {
121+
jniEnv[instanceNum]->CallStaticVoidMethod(jclass_ConnectionsManager, jclass_ConnectionsManager_onRequestClear, instanceNum, token, false);
122+
}), (uint32_t) flags, (uint32_t) datacenterId, (ConnectionType) connectionType, immediate, token);
143123
}
144124

145125
void cancelRequest(JNIEnv *env, jclass c, jint instanceNum, jint token, jboolean notifyServer) {
146-
return ConnectionsManager::getInstance(instanceNum).cancelRequest(token, notifyServer);
126+
return ConnectionsManager::getInstance(instanceNum).cancelRequest(token, notifyServer, ([instanceNum, token]() -> void {
127+
jniEnv[instanceNum]->CallStaticVoidMethod(jclass_ConnectionsManager, jclass_ConnectionsManager_onRequestClear, instanceNum, token, true);
128+
}));
147129
}
148130

149131
void failNotRunningRequest(JNIEnv *env, jclass c, jint instanceNum, jint token) {
@@ -452,7 +434,7 @@ static JNINativeMethod ConnectionsManagerMethods[] = {
452434
{"native_getCurrentDatacenterId", "(I)I", (void *) getCurrentDatacenterId},
453435
{"native_isTestBackend", "(I)I", (void *) isTestBackend},
454436
{"native_getTimeDifference", "(I)I", (void *) getTimeDifference},
455-
{"native_sendRequest", "(IJLorg/telegram/tgnet/RequestDelegateInternal;Lorg/telegram/tgnet/QuickAckDelegate;Lorg/telegram/tgnet/WriteToSocketDelegate;IIIZI)V", (void *) sendRequest},
437+
{"native_sendRequest", "(IJIIIZI)V", (void *) sendRequest},
456438
{"native_cancelRequest", "(IIZ)V", (void *) cancelRequest},
457439
{"native_cleanUp", "(IZ)V", (void *) cleanUp},
458440
{"native_cancelRequestsForGuid", "(II)V", (void *) cancelRequestsForGuid},
@@ -503,16 +485,6 @@ extern "C" int registerNativeTgNetFunctions(JavaVM *vm, JNIEnv *env) {
503485
return JNI_FALSE;
504486
}
505487

506-
DEBUG_REF("RequestDelegateInternal class");
507-
jclass_RequestDelegateInternal = (jclass) env->NewGlobalRef(env->FindClass("org/telegram/tgnet/RequestDelegateInternal"));
508-
if (jclass_RequestDelegateInternal == 0) {
509-
return JNI_FALSE;
510-
}
511-
jclass_RequestDelegateInternal_run = env->GetMethodID(jclass_RequestDelegateInternal, "run", "(JILjava/lang/String;IJJ)V");
512-
if (jclass_RequestDelegateInternal_run == 0) {
513-
return JNI_FALSE;
514-
}
515-
516488
DEBUG_REF("RequestTimeDelegate class");
517489
jclass_RequestTimeDelegate = (jclass) env->NewGlobalRef(env->FindClass("org/telegram/tgnet/RequestTimeDelegate"));
518490
if (jclass_RequestTimeDelegate == 0) {
@@ -523,28 +495,25 @@ extern "C" int registerNativeTgNetFunctions(JavaVM *vm, JNIEnv *env) {
523495
return JNI_FALSE;
524496
}
525497

526-
DEBUG_REF("QuickAckDelegate class");
527-
jclass_QuickAckDelegate = (jclass) env->NewGlobalRef(env->FindClass("org/telegram/tgnet/QuickAckDelegate"));
528-
if (jclass_RequestDelegateInternal == 0) {
498+
DEBUG_REF("ConnectionsManager class");
499+
jclass_ConnectionsManager = (jclass) env->NewGlobalRef(env->FindClass("org/telegram/tgnet/ConnectionsManager"));
500+
if (jclass_ConnectionsManager == 0) {
529501
return JNI_FALSE;
530502
}
531-
jclass_QuickAckDelegate_run = env->GetMethodID(jclass_QuickAckDelegate, "run", "()V");
532-
if (jclass_QuickAckDelegate_run == 0) {
503+
jclass_ConnectionsManager_onRequestClear = env->GetStaticMethodID(jclass_ConnectionsManager, "onRequestClear", "(IIZ)V");
504+
if (jclass_ConnectionsManager_onRequestClear == 0) {
533505
return JNI_FALSE;
534506
}
535-
536-
DEBUG_REF("WriteToSocketDelegate class");
537-
jclass_WriteToSocketDelegate = (jclass) env->NewGlobalRef(env->FindClass("org/telegram/tgnet/WriteToSocketDelegate"));
538-
if (jclass_WriteToSocketDelegate == 0) {
507+
jclass_ConnectionsManager_onRequestComplete = env->GetStaticMethodID(jclass_ConnectionsManager, "onRequestComplete", "(IIJILjava/lang/String;IJJ)V");
508+
if (jclass_ConnectionsManager_onRequestComplete == 0) {
539509
return JNI_FALSE;
540510
}
541-
jclass_WriteToSocketDelegate_run = env->GetMethodID(jclass_WriteToSocketDelegate, "run", "()V");
542-
if (jclass_WriteToSocketDelegate_run == 0) {
511+
jclass_ConnectionsManager_onRequestWriteToSocket = env->GetStaticMethodID(jclass_ConnectionsManager, "onRequestWriteToSocket", "(II)V");
512+
if (jclass_ConnectionsManager_onRequestWriteToSocket == 0) {
543513
return JNI_FALSE;
544514
}
545-
DEBUG_REF("ConnectionsManager class");
546-
jclass_ConnectionsManager = (jclass) env->NewGlobalRef(env->FindClass("org/telegram/tgnet/ConnectionsManager"));
547-
if (jclass_ConnectionsManager == 0) {
515+
jclass_ConnectionsManager_onRequestQuickAck = env->GetStaticMethodID(jclass_ConnectionsManager, "onRequestQuickAck", "(II)V");
516+
if (jclass_ConnectionsManager_onRequestQuickAck == 0) {
548517
return JNI_FALSE;
549518
}
550519
jclass_ConnectionsManager_onUnparsedMessageReceived = env->GetStaticMethodID(jclass_ConnectionsManager, "onUnparsedMessageReceived", "(JIJ)V");

0 commit comments

Comments
 (0)