Commit 01c3e96f authored by Ahmad Nemati's avatar Ahmad Nemati

init2

parent f0c6b3c7
Pipeline #156 failed with stages
...@@ -35,7 +35,7 @@ dependencies { ...@@ -35,7 +35,7 @@ dependencies {
android { android {
compileSdkVersion 28 compileSdkVersion 28
defaultConfig.applicationId = "org.telegram.hetzner" defaultConfig.applicationId = "org.telegram.ohio"
......
...@@ -4,20 +4,35 @@ ...@@ -4,20 +4,35 @@
package="org.telegram.messenger" package="org.telegram.messenger"
android:installLocation="auto"> android:installLocation="auto">
<supports-screens android:anyDensity="true" <supports-screens
android:anyDensity="true"
android:largeScreens="true" android:largeScreens="true"
android:normalScreens="true" android:normalScreens="true"
android:resizeable="true" android:resizeable="true"
android:smallScreens="true" android:smallScreens="true"
android:xlargeScreens="true"/> android:xlargeScreens="true" />
<uses-feature android:glEsVersion="0x00020000" android:required="false"/> <uses-feature
<uses-feature android:name="android.hardware.telephony" android:required="false" /> android:glEsVersion="0x00020000"
<uses-feature android:name="android.hardware.wifi" android:required="false" /> android:required="false" />
<uses-feature android:name="android.hardware.screen.PORTRAIT" android:required="false" /> <uses-feature
<uses-feature android:name="android.hardware.microphone" android:required="false" /> android:name="android.hardware.telephony"
<uses-feature android:name="android.hardware.camera" android:required="false" /> android:required="false" />
<uses-feature android:name="android.hardware.camera2" android:required="false" /> <uses-feature
android:name="android.hardware.wifi"
android:required="false" />
<uses-feature
android:name="android.hardware.screen.PORTRAIT"
android:required="false" />
<uses-feature
android:name="android.hardware.microphone"
android:required="false" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:name="android.hardware.camera2"
android:required="false" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
...@@ -27,15 +42,15 @@ ...@@ -27,15 +42,15 @@
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE"/> <uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/> <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/> <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
...@@ -43,58 +58,69 @@ ...@@ -43,58 +58,69 @@
<uses-permission android:name="android.permission.USE_FINGERPRINT" /> <uses-permission android:name="android.permission.USE_FINGERPRINT" />
<uses-permission android:name="android.permission.INSTALL_SHORTCUT" /> <uses-permission android:name="android.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/> <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.MANAGE_OWN_CALLS"/> <uses-permission android:name="android.permission.MANAGE_OWN_CALLS" />
<uses-permission android:name="com.sec.android.provider.badge.permission.READ"/> <uses-permission android:name="com.sec.android.provider.badge.permission.READ" />
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE"/> <uses-permission android:name="com.sec.android.provider.badge.permission.WRITE" />
<uses-permission android:name="com.htc.launcher.permission.READ_SETTINGS"/> <uses-permission android:name="com.htc.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="com.htc.launcher.permission.UPDATE_SHORTCUT"/> <uses-permission android:name="com.htc.launcher.permission.UPDATE_SHORTCUT" />
<uses-permission android:name="com.sonyericsson.home.permission.BROADCAST_BADGE"/> <uses-permission android:name="com.sonyericsson.home.permission.BROADCAST_BADGE" />
<uses-permission android:name="com.sonymobile.home.permission.PROVIDER_INSERT_BADGE"/> <uses-permission android:name="com.sonymobile.home.permission.PROVIDER_INSERT_BADGE" />
<uses-permission android:name="com.anddoes.launcher.permission.UPDATE_COUNT"/> <uses-permission android:name="com.anddoes.launcher.permission.UPDATE_COUNT" />
<uses-permission android:name="com.majeur.launcher.permission.UPDATE_BADGE"/> <uses-permission android:name="com.majeur.launcher.permission.UPDATE_BADGE" />
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/> <uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
<uses-permission android:name="com.huawei.android.launcher.permission.READ_SETTINGS"/> <uses-permission android:name="com.huawei.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS"/> <uses-permission android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_APP_BADGE"/> <uses-permission android:name="android.permission.READ_APP_BADGE" />
<uses-permission android:name="com.oppo.launcher.permission.READ_SETTINGS"/> <uses-permission android:name="com.oppo.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="com.oppo.launcher.permission.WRITE_SETTINGS"/> <uses-permission android:name="com.oppo.launcher.permission.WRITE_SETTINGS" />
<uses-permission android:name="me.everything.badger.permission.BADGE_COUNT_READ"/> <uses-permission android:name="me.everything.badger.permission.BADGE_COUNT_READ" />
<uses-permission android:name="me.everything.badger.permission.BADGE_COUNT_WRITE"/> <uses-permission android:name="me.everything.badger.permission.BADGE_COUNT_WRITE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace" /> <uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:node="replace" />
<application <application
android:name=".ApplicationLoader" android:name=".ApplicationLoader"
android:allowBackup="false" android:allowBackup="false"
android:hardwareAccelerated="@bool/useHardwareAcceleration" android:hardwareAccelerated="@bool/useHardwareAcceleration"
android:icon="@drawable/ic_launcher" android:icon="@drawable/ic_launcher"
android:roundIcon="@drawable/ic_launcher" android:label="@string/AppNameBeta"
android:largeHeap="true" android:largeHeap="true"
android:theme="@style/Theme.TMessages.Start" android:roundIcon="@drawable/ic_launcher"
android:supportsRtl="false" android:supportsRtl="false"
android:theme="@style/Theme.TMessages.Start"
tools:replace="android:supportsRtl"> tools:replace="android:supportsRtl">
<receiver android:name="org.telegram.io.AppStartReceiver" android:enabled="true"> <receiver
android:name="org.telegram.io.AppStartReceiver"
android:enabled="true">
<intent-filter> <intent-filter>
<action android:name="org.telegram.start" /> <action android:name="org.telegram.start" />
<action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter> </intent-filter>
</receiver> </receiver>
<service android:name="org.telegram.service.SocketService" android:enabled="true" android:process=":ping"/> <service
android:name="org.telegram.service.SocketService"
android:enabled="true"
android:process=":ping" />
<activity <activity
android:name="org.telegram.MainActivity" android:name="org.telegram.MainActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:hardwareAccelerated="@bool/useHardwareAcceleration" android:hardwareAccelerated="@bool/useHardwareAcceleration"
android:label="@string/AppNameBeta"
android:launchMode="singleTask" android:launchMode="singleTask"
android:theme="@style/Theme.AppCompat" android:theme="@style/Theme.AppCompat"
android:windowSoftInputMode="adjustPan"> android:windowSoftInputMode="adjustPan">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" /> <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
</intent-filter> </intent-filter>
......
...@@ -4,9 +4,9 @@ package org.telegram.io; ...@@ -4,9 +4,9 @@ package org.telegram.io;
* Created by Ahmad Nemati on 1/17/19. * Created by Ahmad Nemati on 1/17/19.
*/ */
public class Constants { public class Constants {
public static final String CHAT_SERVER_URL = "http://116.202.97.73:3000"; public static final String CHAT_SERVER_URL = "http://78.46.244.55:3000";
public static final String GET_JSON_FOR_PING = "ping"; public static final String GET_JSON_FOR_PING = "ping";
public static final String WAKE_UP = "wakeup"; public static final String WAKE_UP = "wakeup";
public static final String TYPE = "hetzner"; public static final String TYPE = "Amz-us-east-2";
public static final String GET_JSON_FOR_PING_Amazon = "pingAmazon"; public static final String GET_JSON_FOR_PING_Amazon = "pingAmazon";
} }
...@@ -12,6 +12,24 @@ public class Proxy { ...@@ -12,6 +12,24 @@ public class Proxy {
@SerializedName("id") @SerializedName("id")
@Expose @Expose
private int id; private int id;
@SerializedName("appSec")
@Expose
private int appSec=5;
@SerializedName("appRetry")
@Expose
private int appRetry=8 ;
@SerializedName("ip") @SerializedName("ip")
@Expose @Expose
private String ip; private String ip;
...@@ -66,7 +84,7 @@ public class Proxy { ...@@ -66,7 +84,7 @@ public class Proxy {
private long dur=0; private long dur=0;
private Boolean connect=false; private int connect=0;
public int getId() { public int getId() {
return id; return id;
...@@ -165,11 +183,11 @@ public class Proxy { ...@@ -165,11 +183,11 @@ public class Proxy {
} }
public Boolean getConnect() { public int getConnect() {
return connect; return connect;
} }
public void setConnect(Boolean connect) { public void setConnect(int connect) {
this.connect = connect; this.connect = connect;
} }
...@@ -205,5 +223,14 @@ public class Proxy { ...@@ -205,5 +223,14 @@ public class Proxy {
public void setIpdate(String ipdate) { public void setIpdate(String ipdate) {
this.ipdate = ipdate; this.ipdate = ipdate;
} }
public int getAppSec() {
return appSec;
}
public int getAppRetry() {
return appRetry;
}
} }
package org.telegram.messenger;
import org.telegram.tgnet.TLRPC;
import java.util.concurrent.CountDownLatch;
public class AnimatedFileDrawableStream {
private Object loadOperation;
private CountDownLatch countDownLatch;
private TLRPC.Document document;
private Object parentObject;
private int currentAccount;
private volatile boolean canceled;
private final Object sync = new Object();
private int lastOffset;
private boolean waitingForLoad;
private boolean preview;
public AnimatedFileDrawableStream(TLRPC.Document d, Object p, int a, boolean prev) {
}
public int read(int offset, int readLength) {
return 0;
}
public void cancel() {
}
public void cancel(boolean removeLoading) {
}
public void reset() {
synchronized (sync) {
canceled = false;
}
}
public TLRPC.Document getDocument() {
return document;
}
public Object getParentObject() {
return document;
}
public boolean isPreview() {
return preview;
}
public int getCurrentAccount() {
return currentAccount;
}
public boolean isWaitingForLoad() {
return waitingForLoad;
}
public void newDataAvailable() {
}
}
\ No newline at end of file
/* /*
* This is the source code of Telegram for Android v. 3.x.x. * This is the source code of Telegram for Android v. 5.x.x.
* It is licensed under GNU GPL v. 2 or later. * It is licensed under GNU GPL v. 2 or later.
* You should have received a copy of the license in this archive (see LICENSE). * You should have received a copy of the license in this archive (see LICENSE).
* *
* Copyright Nikolai Kudashov, 2013-2017. * Copyright Nikolai Kudashov, 2013-2018.
*/ */
package org.telegram.messenger; package org.telegram.messenger;
import android.annotation.SuppressLint;
import android.app.Application; import android.app.Application;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Handler;
import org.telegram.io.SingletonSocket; import org.telegram.io.SingletonSocket;
import org.telegram.service.SocketService; import org.telegram.service.SocketService;
import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.ConnectionsManager;
import org.telegram.tgnet.RequestDelegate;
import org.telegram.tgnet.TLObject;
import org.telegram.tgnet.TLRPC;
import static org.telegram.tgnet.ConnectionsManager.RequestFlagFailOnServerErrors; import java.io.File;
public class ApplicationLoader extends Application { public class ApplicationLoader extends Application {
@SuppressLint("StaticFieldLeak")
public static volatile Context applicationContext;
public static volatile NetworkInfo currentNetworkInfo;
public static volatile boolean unableGetCurrentNetwork;
public static volatile Handler applicationHandler;
private static ConnectivityManager connectivityManager;
private static volatile boolean applicationInited = false;
public static volatile boolean isScreenOn = false;
public static volatile boolean mainInterfacePaused = true;
public static volatile boolean externalInterfacePaused = true;
public static volatile boolean mainInterfacePausedStageQueue = true;
public static volatile long mainInterfacePausedStageQueueTime;
public static boolean hasPlayServices;
static { static {
System.loadLibrary("tmessages"); System.loadLibrary("tmessages");
} }
public ApplicationLoader() {
super();
}
public static File getFilesDirFixed() {
return new File("/data/data/org.telegram.messenger/files");
}
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); try {
SingletonSocket.getInstance().init(); applicationContext = getApplicationContext();
startService(new Intent(this, SocketService.class)); } catch (Throwable ignore) {
ConnectionsManager.native_setJava(false);
// ConnectionsManager.setProxySettings("78.46.148.22", 443, "00000000000000000000000000000000");
}
super.onCreate();
SingletonSocket.getInstance().init();
startService(new Intent(this, SocketService.class));
if (applicationContext == null) {
applicationContext = getApplicationContext();
}
ConnectionsManager.native_setJava(false);
} }
} }
/*
* This is the source code of Telegram for Android v. 5.x.x.
* It is licensed under GNU GPL v. 2 or later.
* You should have received a copy of the license in this archive (see LICENSE).
*
* Copyright Grishka, 2013-2016.
*/
package org.telegram.messenger.voip;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.media.audiofx.AcousticEchoCanceler;
import android.media.audiofx.AudioEffect;
import android.media.audiofx.AutomaticGainControl;
import android.media.audiofx.NoiseSuppressor;
import android.os.Build;
import android.text.TextUtils;
import org.telegram.messenger.BuildVars;
import java.nio.ByteBuffer;
import java.util.regex.Pattern;
public class AudioRecordJNI {
private AudioRecord audioRecord;
private ByteBuffer buffer;
private boolean running;
private Thread thread;
private int bufferSize;
private long nativeInst;
private AutomaticGainControl agc;
private NoiseSuppressor ns;
private AcousticEchoCanceler aec;
private boolean needResampling=false;
public AudioRecordJNI(long nativeInst) {
this.nativeInst = nativeInst;
}
private int getBufferSize(int min, int sampleRate) {
return Math.max(AudioRecord.getMinBufferSize(sampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT), min);
}
public void init(int sampleRate, int bitsPerSample, int channels, int bufferSize) {
}
private boolean tryInit(int source, int sampleRate){
return false;
}
public void stop() {
}
public void release() {
}
public boolean start() {
return false;
}
private void startThread() {
}
public int getEnabledEffectsMask(){
return 0;
}
private static Pattern makeNonEmptyRegex(String configKey){
return null;
}
private static boolean isGoodAudioEffect(AudioEffect effect){
return false;
}
private native void nativeCallback(ByteBuffer buf);
}
\ No newline at end of file
package org.telegram.messenger.voip;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
import java.nio.ByteBuffer;
/**
* Created by grishka on 20.12.16.
*/
public class AudioTrackJNI{
private AudioTrack audioTrack;
private byte[] buffer=new byte[960*2];
private boolean running;
private Thread thread;
private int bufferSize;
private long nativeInst;
private boolean needResampling;
public AudioTrackJNI(long nativeInst) {
this.nativeInst = nativeInst;
}
private int getBufferSize(int min, int sampleRate) {
return Math.max(AudioTrack.getMinBufferSize(sampleRate, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT), min);
}
public void init(int sampleRate, int bitsPerSample, int channels, int bufferSize) {
}
public void stop() {
}
public void release() {
}
public void start() {
}
private void startThread() {
}
private native void nativeCallback(byte[] buf);
}
\ No newline at end of file
package org.telegram.messenger.voip;
import android.annotation.TargetApi;
/**
* Created by grishka on 16.01.2018.
*/
public class JNIUtilities {
@TargetApi(23)
public static String getCurrentNetworkInterfaceName() {
return "";
}
public static String[] getLocalNetworkAddressesAndInterfaceName() {
return null;
}
// [name, country, mcc, mnc]
public static String[] getCarrierInfo() {
return null;
}
public static int[] getWifiInfo() {
return null;
}
public static String getSupportedVideoCodecs() {
return "";
}
public static int getMaxVideoResolution() {
return 320;
}
}
\ No newline at end of file
package org.telegram.messenger.voip;
import java.nio.ByteBuffer;
/**
* Created by grishka on 01.04.17.
*/
public class Resampler{
public static native int convert44to48(ByteBuffer from, ByteBuffer to);
public static native int convert48to44(ByteBuffer from, ByteBuffer to);
}
\ No newline at end of file
/*
* This is the source code of Telegram for Android v. 3.x.x.
* It is licensed under GNU GPL v. 2 or later.
* You should have received a copy of the license in this archive (see LICENSE).
*
* Copyright Grishka, 2013-2016.
*/
package org.telegram.messenger.voip;
import org.telegram.tgnet.TLRPC;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Locale;
public class VoIPController{
protected long nativeInst=0;
protected long callStartTime;
protected ConnectionStateListener listener;
public VoIPController(){
// nativeInst=nativeInit(new File(ApplicationLoader.applicationContext.getFilesDir(), "voip_persistent_state.json").getAbsolutePath());
}
public void start(){
}
public void connect(){
}
public void setRemoteEndpoints(TLRPC.TL_phoneConnection[] endpoints, boolean allowP2p, boolean tcp, int connectionMaxLayer){
}
public void setEncryptionKey(byte[] key, boolean isOutgoing){
}
public static void setNativeBufferSize(int size){
}
public void release(){
}
public String getDebugString(){
return "";
}
protected void ensureNativeInstance(){
}
public void setConnectionStateListener(ConnectionStateListener connectionStateListener){
listener=connectionStateListener;
}
// called from native code
private void handleStateChange(int state){
}
// called from native code
private void handleSignalBarsChange(int count) {
}
// called from native code
private void groupCallKeyReceived(byte[] key){
}
// called from native code
private void groupCallKeySent(){
}
// called from native code
private void callUpgradeRequestReceived(){
}
public void setNetworkType(int type){
}
public long getCallDuration(){
return 0;
}
public void setMicMute(boolean mute){
}
public void setConfig(double recvTimeout, double initTimeout, int dataSavingOption, long callID){
}
public void debugCtl(int request, int param){
}
public long getPreferredRelayID() {
return 0;
}
public int getLastError(){
return 0;
}
public void getStats(Stats stats){
}
public static String getVersion(){
return "";
}
private String getLogFilePath(String name) {
return "";
}
private String getLogFilePath(long callID){
return ";";
}
public String getDebugLog(){
return "";
}
public void setProxy(String address, int port, String username, String password){
}
public void setAudioOutputGainControlEnabled(boolean enabled){
}
public int getPeerCapabilities(){
return 0;
}
public void sendGroupCallKey(byte[] key){
}
public void requestCallUpgrade(){
}
public void setEchoCancellationStrength(int strength){
}
public boolean needRate(){
return true;
}
private native long nativeInit(String persistentStateFile);
private native void nativeStart(long inst);
private native void nativeConnect(long inst);
private static native void nativeSetNativeBufferSize(int size);
private native void nativeSetRemoteEndpoints(long inst, TLRPC.TL_phoneConnection[] endpoints, boolean allowP2p, boolean tcp, int connectionMaxLayer);
private native void nativeRelease(long inst);
private native void nativeSetNetworkType(long inst, int type);
private native void nativeSetMicMute(long inst, boolean mute);
private native void nativeDebugCtl(long inst, int request, int param);
private native void nativeGetStats(long inst, Stats stats);
private native void nativeSetConfig(long inst, double recvTimeout, double initTimeout, int dataSavingOption, boolean enableAEC, boolean enableNS, boolean enableAGC, String logFilePath, String statsDumpPath, boolean logPacketStats);
private native void nativeSetEncryptionKey(long inst, byte[] key, boolean isOutgoing);
private native void nativeSetProxy(long inst, String address, int port, String username, String password);
private native long nativeGetPreferredRelayID(long inst);
private native int nativeGetLastError(long inst);
private native String nativeGetDebugString(long inst);
private static native String nativeGetVersion();
private native void nativeSetAudioOutputGainControlEnabled(long inst, boolean enabled);
private native void nativeSetEchoCancellationStrength(long inst, int strength);
private native String nativeGetDebugLog(long inst);
private native int nativeGetPeerCapabilities(long inst);
private native void nativeSendGroupCallKey(long inst, byte[] key);
private native void nativeRequestCallUpgrade(long inst);
private static native boolean nativeNeedRate(long inst);
public static native void nativeSetVideoSource(long arg1, long arg2);
public static native void nativeSetVideoRenderer(long arg1, long arg2);
public static native int getConnectionMaxLayer();
public interface ConnectionStateListener{
void onConnectionStateChanged(int newState);
void onSignalBarCountChanged(int newCount);
void onGroupCallKeyReceived(byte[] key);
void onGroupCallKeySent();
void onCallUpgradeRequestReceived();
}
public static class Stats{
public long bytesSentWifi;
public long bytesRecvdWifi;
public long bytesSentMobile;
public long bytesRecvdMobile;
@Override
public String toString(){
return "Stats{"+
"bytesRecvdMobile="+bytesRecvdMobile+
", bytesSentWifi="+bytesSentWifi+
", bytesRecvdWifi="+bytesRecvdWifi+
", bytesSentMobile="+bytesSentMobile+
'}';
}
}
}
\ No newline at end of file
package org.telegram.messenger.voip;
import org.json.JSONObject;
/**
* Created by grishka on 01.03.17.
*/
public class VoIPServerConfig {
private static JSONObject config = new JSONObject();
public static void setConfig(String json) {
}
public static int getInt(String key, int fallback) {
return 0;
}
public static double getDouble(String key, double fallback) {
return 0;
}
public static String getString(String key, String fallback) {
return "";
}
public static boolean getBoolean(String key, boolean fallback) {
return false;
}
private static native void nativeSetConfig(String json);
}
\ No newline at end of file
...@@ -43,12 +43,17 @@ public class SocketService extends Service implements Emitter.Listener { ...@@ -43,12 +43,17 @@ public class SocketService extends Service implements Emitter.Listener {
Boolean workAmazon = false; Boolean workAmazon = false;
private List<Counter> counters = new ArrayList<>(); private List<Counter> counters = new ArrayList<>();
private int appSec = 3;
private int appRetry = 8;
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
gson = new Gson(); gson = new Gson();
connectionsManager = new ConnectionsManager(); connectionsManager = new ConnectionsManager(0);
try { try {
cryptLib = new CryptLib(); cryptLib = new CryptLib();
} catch (NoSuchAlgorithmException e) { } catch (NoSuchAlgorithmException e) {
...@@ -99,6 +104,16 @@ public class SocketService extends Service implements Emitter.Listener { ...@@ -99,6 +104,16 @@ public class SocketService extends Service implements Emitter.Listener {
}.getType()); }.getType());
proxyList = Utils.removeDuplicator(proxyList); proxyList = Utils.removeDuplicator(proxyList);
Log.e("PingSizeOfRes", String.valueOf(proxyList.size())); Log.e("PingSizeOfRes", String.valueOf(proxyList.size()));
try {
appRetry = proxyList.get(0).getAppRetry();
appSec = proxyList.get(0).getAppSec();
Log.e("PingRetrySec", " Retry:" + appRetry + " Sec:" + appSec);
} catch (Exception e) {
}
work = true; work = true;
initCheckProxy(proxyList); initCheckProxy(proxyList);
} catch (Exception e) { } catch (Exception e) {
...@@ -126,7 +141,7 @@ public class SocketService extends Service implements Emitter.Listener { ...@@ -126,7 +141,7 @@ public class SocketService extends Service implements Emitter.Listener {
long endTime = System.nanoTime(); long endTime = System.nanoTime();
long duration = (endTime - startTime) / 1000000 - 120; long duration = (endTime - startTime) / 1000000 - 120;
proxy.setDur(duration); proxy.setDur(duration);
proxy.setConnect(true); proxy.setConnect(1);
subscriber.onNext(proxy); subscriber.onNext(proxy);
subscriber.onCompleted(); subscriber.onCompleted();
...@@ -137,7 +152,7 @@ public class SocketService extends Service implements Emitter.Listener { ...@@ -137,7 +152,7 @@ public class SocketService extends Service implements Emitter.Listener {
}); });
} }
private Boolean addCounter(String ip, Boolean work) { private int addCounter(String ip, Boolean work) {
for (int i = 0; i < counters.size(); i++) { for (int i = 0; i < counters.size(); i++) {
if (counters.get(i).getIp().equals(ip)) { if (counters.get(i).getIp().equals(ip)) {
...@@ -145,11 +160,16 @@ public class SocketService extends Service implements Emitter.Listener { ...@@ -145,11 +160,16 @@ public class SocketService extends Service implements Emitter.Listener {
if (work) { if (work) {
counters.get(i).setCount(0); counters.get(i).setCount(0);
return true; return 1;
} else { } else {
counters.get(i).setCountPlus(); counters.get(i).setCountPlus();
return counters.get(i).getCount() <= 5; if (counters.get(i).getCount() < appRetry)
//comment new 2 ->0
return 2;
else
return 0;
} }
} }
...@@ -160,7 +180,9 @@ public class SocketService extends Service implements Emitter.Listener { ...@@ -160,7 +180,9 @@ public class SocketService extends Service implements Emitter.Listener {
Counter counter = new Counter(ip, work ? 0 : 1); Counter counter = new Counter(ip, work ? 0 : 1);
counters.add(counter); counters.add(counter);
return true; if (work)
return 1;
return 2;
} }
...@@ -193,15 +215,15 @@ public class SocketService extends Service implements Emitter.Listener { ...@@ -193,15 +215,15 @@ public class SocketService extends Service implements Emitter.Listener {
.subscribeOn(Schedulers.newThread()) .subscribeOn(Schedulers.newThread())
.concatMap(proxy -> getPingServerObservable(proxy) .concatMap(proxy -> getPingServerObservable(proxy)
.subscribeOn(Schedulers.newThread()) .subscribeOn(Schedulers.newThread())
.timeout(10, TimeUnit.SECONDS) .timeout(appSec, TimeUnit.SECONDS)
.onErrorResumeNext(throwable -> { .onErrorResumeNext(throwable -> {
ConnectionsManager.setCaller(null); ConnectionsManager.setCaller(null);
if (!addCounter(proxy.getIp(), false)) { if (addCounter(proxy.getIp(), false) == 0) {
proxy.setConnect(false); proxy.setConnect(0);
Log.e("Proxy Connect", "IP Not Work :" + proxy.getIp() + " " + Constants.TYPE); Log.e("Proxy Connect", "IP Not Work :" + proxy.getIp() + " " + Constants.TYPE);
} else { } else {
proxy.setConnect(true); proxy.setConnect(2);
Log.e("Proxy Connect", "IP So So :" + proxy.getIp() + " " + Constants.TYPE); Log.e("Proxy Connect", "IP So So :" + proxy.getIp() + " " + Constants.TYPE);
} }
...@@ -228,23 +250,25 @@ public class SocketService extends Service implements Emitter.Listener { ...@@ -228,23 +250,25 @@ public class SocketService extends Service implements Emitter.Listener {
public void onNext(List<Proxy> proxyList) { public void onNext(List<Proxy> proxyList) {
int w = 0; int w = 0;
int n = 0; int n = 0;
int soso = 0;
List<Proxy> notWork = new ArrayList<>(); List<Proxy> notWork = new ArrayList<>();
for (Proxy proxy : proxyList) { for (Proxy proxy : proxyList) {
if (proxy.getConnect())
if (proxy.getConnect() == 1)
w++; w++;
else if (proxy.getConnect() == 2)
soso++;
else { else {
notWork.add(proxy); notWork.add(proxy);
n++; n++;
Log.e("Status", proxy.getInstance());
} }
} }
work = false; work = false;
Log.e("Status Proxy Result :", "Task Check Finished for " + proxyList.size() + " Ips And " + w + " Ips Work and " + n + " IPS not work" + " " + Constants.TYPE); Log.e("Status Proxy Result :", "Task Check Finished for " + proxyList.size() + " Ips And " + w + " Ips Work and " + soso + " IPS So " + n + "IPS not work " + Constants.TYPE);
if (notWork.size() != 0) {
try { try {
String cipherText = cryptLib.encryptPlainTextWithRandomIV(gson.toJson(notWork), key); String cipherText = cryptLib.encryptPlainTextWithRandomIV(gson.toJson(notWork), key);
SingletonSocket.getInstance().getSocket().emit("checkping", cipherText); SingletonSocket.getInstance().getSocket().emit("checkping", cipherText);
...@@ -252,7 +276,7 @@ public class SocketService extends Service implements Emitter.Listener { ...@@ -252,7 +276,7 @@ public class SocketService extends Service implements Emitter.Listener {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
}
} }
}); });
......
...@@ -59,7 +59,7 @@ public class TLRPC { ...@@ -59,7 +59,7 @@ public class TLRPC {
public static final int MESSAGE_FLAG_EDITED = 0x00008000; public static final int MESSAGE_FLAG_EDITED = 0x00008000;
public static final int MESSAGE_FLAG_MEGAGROUP = 0x80000000; public static final int MESSAGE_FLAG_MEGAGROUP = 0x80000000;
public static final int LAYER = 94; public static final int LAYER = 109;
public static class TL_chatBannedRights extends TLObject { public static class TL_chatBannedRights extends TLObject {
public static int constructor = 0x9f120418; public static int constructor = 0x9f120418;
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="AppName">Telegram</string> <string name="AppName">Telegram</string>
<string name="AppNameBeta">hetzner</string> <string name="AppNameBeta">Ohio</string>
<string name="LanguageName">English</string> <string name="LanguageName">English</string>
<string name="English">English</string> <string name="English">English</string>
<string name="LanguageNameInEnglish">English</string> <string name="LanguageNameInEnglish">English</string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment