owenclave / app/src/main/java/io/nekohasekai/sagernet/fmt/olcrtc/OLCRTCBean.java

github - dev - back to tree - upstream
package io.nekohasekai.sagernet.fmt.olcrtc; import androidx.annotation.NonNull; import com.esotericsoftware.kryo.io.ByteBufferInput; import com.esotericsoftware.kryo.io.ByteBufferOutput; import org.jetbrains.annotations.NotNull; import io.nekohasekai.sagernet.fmt.AbstractBean; import io.nekohasekai.sagernet.fmt.KryoConverters; public class OLCRTCBean extends AbstractBean { public String authProvider; public String transport; public String roomId; public String encryptionKey; public String dnsServer; public String socksHost; public Integer socksPort; @Override public void initializeDefaultValues() { super.initializeDefaultValues(); if (authProvider == null) authProvider = "jitsi"; if (transport == null) transport = "datachannel"; if (roomId == null) roomId = ""; if (encryptionKey == null) encryptionKey = ""; if (dnsServer == null) dnsServer = "8.8.8.8:53"; if (socksHost == null) socksHost = "127.0.0.1"; if (socksPort == null) socksPort = 8808; } @Override public void serialize(ByteBufferOutput output) { output.writeInt(1); super.serialize(output); output.writeString(authProvider); output.writeString(transport); output.writeString(roomId); output.writeString(encryptionKey); output.writeString(dnsServer); output.writeString(socksHost); output.writeInt(socksPort); } @Override public void deserialize(ByteBufferInput input) { int version = input.readInt(); super.deserialize(input); authProvider = input.readString(); transport = input.readString(); roomId = input.readString(); encryptionKey = input.readString(); dnsServer = input.readString(); socksHost = input.readString(); socksPort = input.readInt(); } @Override public String displayName() { if (name != null && !name.isEmpty()) return name; return "olcrtc/" + authProvider; } @Override public String displayAddress() { return authProvider + " | " + transport + " | " + roomId; } @NotNull @Override public OLCRTCBean clone() { return KryoConverters.deserialize(new OLCRTCBean(), KryoConverters.serialize(this)); } public static final Creator CREATOR = new CREATOR<>() { @NonNull @Override public OLCRTCBean newInstance() { return new OLCRTCBean(); } @Override public OLCRTCBean[] newArray(int size) { return new OLCRTCBean[size]; } }; }