diff --git a/pom.xml b/pom.xml
index 9c43fdd..ea67400 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,8 +12,7 @@
11
11
- 4.0.2
- 5.7.0
+ 4.0.3
@@ -85,7 +84,7 @@
org.junit.jupiter
junit-jupiter-api
- ${junit-jupiter.version}
+ 5.8.0-M1
test
@@ -97,7 +96,7 @@
org.junit.jupiter
junit-jupiter-engine
- ${junit-jupiter.version}
+ 5.8.0-M1
test
@@ -128,28 +127,28 @@
org.apache.logging.log4j
log4j-core
- 2.12.1
+ 2.14.1
org.apache.logging.log4j
log4j-slf4j-impl
- 2.12.1
+ 2.14.1
org.warp
common-utils
- 1.1.2
+ 1.1.3
io.netty
netty-tcnative-boringssl-static
- 2.0.30.Final
+ 2.0.39.Final
it.tdlight
tdlight-java
- [4.171.83,)
+ [4.171.112,)
it.cavallium
@@ -159,18 +158,18 @@
javax.annotation
javax.annotation-api
- 1.2
+ 1.3.2
it.unimi.dsi
fastutil
- 8.3.1
+ 8.5.4
- com.google.code.gson
- gson
- 2.8.6
+ com.squareup.moshi
+ moshi
+ 1.12.0
@@ -259,12 +258,12 @@
org.junit.platform
junit-platform-surefire-provider
- 1.2.0
+ 1.3.2
org.junit.jupiter
junit-jupiter-engine
- 5.7.0
+ 5.8.0-M1
diff --git a/src/main/java/it/tdlight/tdlibsession/TdGson.java b/src/main/java/it/tdlight/tdlibsession/TdGson.java
deleted file mode 100644
index f5b6dd5..0000000
--- a/src/main/java/it/tdlight/tdlibsession/TdGson.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package it.tdlight.tdlibsession;
-
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonDeserializationContext;
-import com.google.gson.JsonDeserializer;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParseException;
-import com.google.gson.JsonPrimitive;
-import com.google.gson.JsonSerializationContext;
-import com.google.gson.JsonSerializer;
-import it.tdlight.jni.TdApi;
-import java.lang.reflect.Modifier;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-
-public class TdGson {
-
- private static final TdApiGenericSerializer> tdApiGenericSerializerInstance = new TdApiGenericSerializer<>();
- private static final ArrayList> abstractClassesSerializers = new ArrayList<>();
-
- static {
- for (Class> declaredClass : TdApi.class.getDeclaredClasses()) {
- var modifiers = declaredClass.getModifiers();
- if (Modifier.isAbstract(modifiers) && Modifier.isPublic(modifiers) && Modifier
- .isStatic(modifiers)) {
- abstractClassesSerializers.add(declaredClass);
- }
- }
- }
-
- public static GsonBuilder registerAdapters(GsonBuilder gsonBuilder) {
- for (Class> abstractClassesSerializer : abstractClassesSerializers) {
- gsonBuilder.registerTypeAdapter(abstractClassesSerializer, tdApiGenericSerializerInstance);
- }
- return gsonBuilder;
- }
-
- public static class TdApiGenericSerializer implements JsonSerializer, JsonDeserializer {
-
- @Override
- public JsonElement serialize(T src, Type typeOfSrc, JsonSerializationContext context) {
- JsonObject result = new JsonObject();
- result.add("type", new JsonPrimitive(src.getClass().getSimpleName()));
- result.add("properties", context.serialize(src, src.getClass()));
-
- return result;
- }
-
- @Override
- public T deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
- throws JsonParseException {
- JsonObject jsonObject = json.getAsJsonObject();
- String type = jsonObject.get("type").getAsString().replaceAll("[^a-zA-Z0-9]", "");
- JsonElement element = jsonObject.get("properties");
-
- try {
- return context
- .deserialize(element, Class.forName(TdApi.class.getCanonicalName() + "$" + type));
- } catch (ClassNotFoundException cnfe) {
- throw new JsonParseException("Unknown element type: " + type, cnfe);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/src/main/java/it/tdlight/tdlibsession/td/easy/AsyncTdEasy.java b/src/main/java/it/tdlight/tdlibsession/td/easy/AsyncTdEasy.java
index 9bf1968..35076c6 100644
--- a/src/main/java/it/tdlight/tdlibsession/td/easy/AsyncTdEasy.java
+++ b/src/main/java/it/tdlight/tdlibsession/td/easy/AsyncTdEasy.java
@@ -73,7 +73,6 @@ public class AsyncTdEasy {
this.logName = logName;
this.logger = LoggerFactory.getLogger("AsyncTdEasy " + logName);
- // todo: use Duration.ZERO instead of 10ms interval
this.incomingUpdates = td.receive()
.flatMapSequential(this::preprocessUpdates)
.flatMapSequential(update -> Mono.from(this.getState()).single().map(state -> new AsyncTdUpdateObj(state, update)))
@@ -303,13 +302,6 @@ public class AsyncTdEasy {
return td.execute(request, true);
}
- /**
- * Set if skip updates or not
- */
- public Mono setSkipUpdates(boolean skipUpdates) { //todo: do this
- return null;
- }
-
/**
* Closes the client gracefully by sending {@link TdApi.Close}.
*/
@@ -349,22 +341,6 @@ public class AsyncTdEasy {
.then();
}
- /**
- *
- * @param timeout Timeout in seconds when reading data
- */
- public void setReadTimeout(int timeout) {
- //todo: do this
- }
-
- /**
- *
- * @param timeout Timeout in seconds when listening methods or connecting
- */
- public void setMethodTimeout(int timeout) {
- //todo: do this
- }
-
private Mono catchErrors(Object obj) {
return Mono.fromCallable(() -> {
if (obj.getConstructor() == Error.CONSTRUCTOR) {
diff --git a/src/main/java/it/tdlight/utils/MonoUtils.java b/src/main/java/it/tdlight/utils/MonoUtils.java
index af3ec0b..1311e16 100644
--- a/src/main/java/it/tdlight/utils/MonoUtils.java
+++ b/src/main/java/it/tdlight/utils/MonoUtils.java
@@ -244,14 +244,17 @@ public class MonoUtils {
}));
}
+ @NotNull
public static Mono toMono(Single single) {
return Mono.from(single.toFlowable());
}
+ @NotNull
public static Mono toMono(Maybe single) {
return Mono.from(single.toFlowable());
}
+ @NotNull
public static Mono toMono(Completable completable) {
return Mono.from(completable.toFlowable());
}
diff --git a/src/main/java/it/tdlight/utils/TdMoshiPolymorphic.java b/src/main/java/it/tdlight/utils/TdMoshiPolymorphic.java
new file mode 100644
index 0000000..ca83fcf
--- /dev/null
+++ b/src/main/java/it/tdlight/utils/TdMoshiPolymorphic.java
@@ -0,0 +1,49 @@
+package it.tdlight.utils;
+
+import com.squareup.moshi.JsonAdapter;
+import it.tdlight.jni.TdApi;
+import it.tdlight.jni.TdApi.Object;
+import java.lang.reflect.Modifier;
+import java.util.HashSet;
+import java.util.Set;
+import org.warp.commonutils.moshi.MoshiPolymorphic;
+
+public class TdMoshiPolymorphic extends MoshiPolymorphic