Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
apk
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
apk
Commits
01c3e96f
Commit
01c3e96f
authored
Jan 17, 2023
by
Ahmad Nemati
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
init2
parent
f0c6b3c7
Pipeline
#156
failed with stages
Changes
20
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1076 additions
and
179 deletions
+1076
-179
build.gradle
TMessagesProj/build.gradle
+1
-1
AndroidManifest.xml
TMessagesProj/src/main/AndroidManifest.xml
+69
-43
Constants.java
TMessagesProj/src/main/java/org/telegram/io/Constants.java
+2
-2
Proxy.java
TMessagesProj/src/main/java/org/telegram/io/Proxy.java
+30
-3
AnimatedFileDrawableStream.java
...va/org/telegram/messenger/AnimatedFileDrawableStream.java
+66
-0
ApplicationLoader.java
...c/main/java/org/telegram/messenger/ApplicationLoader.java
+48
-13
AudioRecordJNI.java
...main/java/org/telegram/messenger/voip/AudioRecordJNI.java
+86
-0
AudioTrackJNI.java
.../main/java/org/telegram/messenger/voip/AudioTrackJNI.java
+51
-0
JNIUtilities.java
...c/main/java/org/telegram/messenger/voip/JNIUtilities.java
+37
-0
Resampler.java
.../src/main/java/org/telegram/messenger/voip/Resampler.java
+12
-0
VoIPController.java
...main/java/org/telegram/messenger/voip/VoIPController.java
+223
-0
VoIPServerConfig.java
...in/java/org/telegram/messenger/voip/VoIPServerConfig.java
+34
-0
SocketService.java
...roj/src/main/java/org/telegram/service/SocketService.java
+45
-21
ConnectionsManager.java
.../src/main/java/org/telegram/tgnet/ConnectionsManager.java
+370
-94
TLRPC.java
TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java
+1
-1
libtmessages.so
TMessagesProj/src/main/jniLibs/arm64-v8a/libtmessages.so
+0
-0
libtmessages.so
TMessagesProj/src/main/jniLibs/arm64/libtmessages.so
+0
-0
libtmessages.so
TMessagesProj/src/main/jniLibs/armeabi-v7a/libtmessages.so
+0
-0
libtmessages.so
TMessagesProj/src/main/jniLibs/x86_64/libtmessages.so
+0
-0
strings.xml
TMessagesProj/src/main/res/values/strings.xml
+1
-1
No files found.
TMessagesProj/build.gradle
View file @
01c3e96f
...
...
@@ -35,7 +35,7 @@ dependencies {
android
{
compileSdkVersion
28
defaultConfig
.
applicationId
=
"org.telegram.
hetzner
"
defaultConfig
.
applicationId
=
"org.telegram.
ohio
"
...
...
TMessagesProj/src/main/AndroidManifest.xml
View file @
01c3e96f
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
package=
"org.telegram.messenger"
android:installLocation=
"auto"
>
<supports-screens
android:anyDensity=
"true"
android:largeScreens=
"true"
android:normalScreens=
"true"
android:resizeable=
"true"
android:smallScreens=
"true"
android:xlargeScreens=
"true"
/>
<supports-screens
android:anyDensity=
"true"
android:largeScreens=
"true"
android:normalScreens=
"true"
android:resizeable=
"true"
android:smallScreens=
"true"
android:xlargeScreens=
"true"
/>
<uses-feature
android:glEsVersion=
"0x00020000"
android:required=
"false"
/>
<uses-feature
android:name=
"android.hardware.telephony"
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-feature
android:glEsVersion=
"0x00020000"
android:required=
"false"
/>
<uses-feature
android:name=
"android.hardware.telephony"
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.FOREGROUND_SERVICE"
/>
...
...
@@ -27,15 +42,15 @@
<uses-permission
android:name=
"android.permission.ACCESS_WIFI_STATE"
/>
<uses-permission
android:name=
"android.permission.RECEIVE_SMS"
/>
<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.READ_CONTACTS"
/>
<uses-permission
android:name=
"android.permission.WRITE_CONTACTS"
/>
<uses-permission
android:name=
"android.permission.MANAGE_ACCOUNTS"
/>
<uses-permission
android:name=
"android.permission.READ_PROFILE"
/>
<uses-permission
android:name=
"android.permission.WRITE_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.MANAGE_ACCOUNTS"
/>
<uses-permission
android:name=
"android.permission.READ_PROFILE"
/>
<uses-permission
android:name=
"android.permission.WRITE_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.VIBRATE"
/>
<uses-permission
android:name=
"android.permission.SYSTEM_ALERT_WINDOW"
/>
<uses-permission
android:name=
"android.permission.READ_PHONE_STATE"
/>
...
...
@@ -43,58 +58,69 @@
<uses-permission
android:name=
"android.permission.USE_FINGERPRINT"
/>
<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.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.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.WRITE"
/>
<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.sonyericsson.home.permission.BROADCAST_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.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.READ_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=
"com.oppo.launcher.permission.READ_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_WRITE"
/>
<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.htc.launcher.permission.READ_SETTINGS"
/>
<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.sonymobile.home.permission.PROVIDER_INSERT_BADGE"
/>
<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.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.WRITE_SETTINGS"
/>
<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.WRITE_SETTINGS"
/>
<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=
"android.permission.WRITE_EXTERNAL_STORAGE"
tools:node=
"replace"
/>
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
tools:node=
"replace"
/>
<application
android:name=
".ApplicationLoader"
android:allowBackup=
"false"
android:hardwareAccelerated=
"@bool/useHardwareAcceleration"
android:icon=
"@drawable/ic_launcher"
android:
roundIcon=
"@drawable/ic_launcher
"
android:
label=
"@string/AppNameBeta
"
android:largeHeap=
"true"
android:
theme=
"@style/Theme.TMessages.Start
"
android:
roundIcon=
"@drawable/ic_launcher
"
android:supportsRtl=
"false"
android:theme=
"@style/Theme.TMessages.Start"
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>
<action
android:name=
"org.telegram.start"
/>
<action
android:name=
"android.intent.action.BOOT_COMPLETED"
/>
</intent-filter>
</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
android:name=
"org.telegram.MainActivity"
android:configChanges=
"keyboard|keyboardHidden|orientation|screenSize"
android:hardwareAccelerated=
"@bool/useHardwareAcceleration"
android:label=
"@string/AppNameBeta"
android:launchMode=
"singleTask"
android:theme=
"@style/Theme.AppCompat"
android:windowSoftInputMode=
"adjustPan"
>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
<category
android:name=
"android.intent.category.LAUNCHER"
/>
<category
android:name=
"android.intent.category.MULTIWINDOW_LAUNCHER"
/>
</intent-filter>
...
...
TMessagesProj/src/main/java/org/telegram/io/Constants.java
View file @
01c3e96f
...
...
@@ -4,9 +4,9 @@ package org.telegram.io;
* Created by Ahmad Nemati on 1/17/19.
*/
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
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"
;
}
TMessagesProj/src/main/java/org/telegram/io/Proxy.java
View file @
01c3e96f
...
...
@@ -12,6 +12,24 @@ public class Proxy {
@SerializedName
(
"id"
)
@Expose
private
int
id
;
@SerializedName
(
"appSec"
)
@Expose
private
int
appSec
=
5
;
@SerializedName
(
"appRetry"
)
@Expose
private
int
appRetry
=
8
;
@SerializedName
(
"ip"
)
@Expose
private
String
ip
;
...
...
@@ -66,7 +84,7 @@ public class Proxy {
private
long
dur
=
0
;
private
Boolean
connect
=
false
;
private
int
connect
=
0
;
public
int
getId
()
{
return
id
;
...
...
@@ -165,11 +183,11 @@ public class Proxy {
}
public
Boolean
getConnect
()
{
public
int
getConnect
()
{
return
connect
;
}
public
void
setConnect
(
Boolean
connect
)
{
public
void
setConnect
(
int
connect
)
{
this
.
connect
=
connect
;
}
...
...
@@ -205,5 +223,14 @@ public class Proxy {
public
void
setIpdate
(
String
ipdate
)
{
this
.
ipdate
=
ipdate
;
}
public
int
getAppSec
()
{
return
appSec
;
}
public
int
getAppRetry
()
{
return
appRetry
;
}
}
TMessagesProj/src/main/java/org/telegram/messenger/AnimatedFileDrawableStream.java
0 → 100644
View file @
01c3e96f
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
TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java
View file @
01c3e96f
/*
* 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.
* You should have received a copy of the license in this archive (see LICENSE).
*
* Copyright Nikolai Kudashov, 2013-201
7
.
* Copyright Nikolai Kudashov, 2013-201
8
.
*/
package
org
.
telegram
.
messenger
;
import
android.annotation.SuppressLint
;
import
android.app.Application
;
import
android.content.Context
;
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.service.SocketService
;
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
{
@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
{
System
.
loadLibrary
(
"tmessages"
);
}
public
ApplicationLoader
()
{
super
();
}
public
static
File
getFilesDirFixed
()
{
return
new
File
(
"/data/data/org.telegram.messenger/files"
);
}
@Override
public
void
onCreate
()
{
super
.
onCreate
();
SingletonSocket
.
getInstance
().
init
();
startService
(
new
Intent
(
this
,
SocketService
.
class
));
ConnectionsManager
.
native_setJava
(
false
);
// ConnectionsManager.setProxySettings("78.46.148.22", 443, "00000000000000000000000000000000");
try
{
applicationContext
=
getApplicationContext
();
}
catch
(
Throwable
ignore
)
{
}
super
.
onCreate
();
SingletonSocket
.
getInstance
().
init
();
startService
(
new
Intent
(
this
,
SocketService
.
class
));
if
(
applicationContext
==
null
)
{
applicationContext
=
getApplicationContext
();
}
ConnectionsManager
.
native_setJava
(
false
);
}
}
TMessagesProj/src/main/java/org/telegram/messenger/voip/AudioRecordJNI.java
0 → 100644
View file @
01c3e96f
/*
* 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
TMessagesProj/src/main/java/org/telegram/messenger/voip/AudioTrackJNI.java
0 → 100644
View file @
01c3e96f
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
TMessagesProj/src/main/java/org/telegram/messenger/voip/JNIUtilities.java
0 → 100644
View file @
01c3e96f
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
TMessagesProj/src/main/java/org/telegram/messenger/voip/Resampler.java
0 → 100644
View file @
01c3e96f
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
TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPController.java
0 → 100644
View file @
01c3e96f
/*
* 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
TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPServerConfig.java
0 → 100644
View file @
01c3e96f
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
TMessagesProj/src/main/java/org/telegram/service/SocketService.java
View file @
01c3e96f
...
...
@@ -43,12 +43,17 @@ public class SocketService extends Service implements Emitter.Listener {
Boolean
workAmazon
=
false
;
private
List
<
Counter
>
counters
=
new
ArrayList
<>();
private
int
appSec
=
3
;
private
int
appRetry
=
8
;
@Override
public
void
onCreate
()
{
super
.
onCreate
();
gson
=
new
Gson
();
connectionsManager
=
new
ConnectionsManager
();
connectionsManager
=
new
ConnectionsManager
(
0
);
try
{
cryptLib
=
new
CryptLib
();
}
catch
(
NoSuchAlgorithmException
e
)
{
...
...
@@ -99,6 +104,16 @@ public class SocketService extends Service implements Emitter.Listener {
}.
getType
());
proxyList
=
Utils
.
removeDuplicator
(
proxyList
);
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
;
initCheckProxy
(
proxyList
);
}
catch
(
Exception
e
)
{
...
...
@@ -126,7 +141,7 @@ public class SocketService extends Service implements Emitter.Listener {
long
endTime
=
System
.
nanoTime
();
long
duration
=
(
endTime
-
startTime
)
/
1000000
-
120
;
proxy
.
setDur
(
duration
);
proxy
.
setConnect
(
true
);
proxy
.
setConnect
(
1
);
subscriber
.
onNext
(
proxy
);
subscriber
.
onCompleted
();
...
...
@@ -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
++)
{
if
(
counters
.
get
(
i
).
getIp
().
equals
(
ip
))
{
...
...
@@ -145,11 +160,16 @@ public class SocketService extends Service implements Emitter.Listener {
if
(
work
)
{
counters
.
get
(
i
).
setCount
(
0
);
return
true
;
return
1
;
}
else
{
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 {
Counter
counter
=
new
Counter
(
ip
,
work
?
0
:
1
);
counters
.
add
(
counter
);
return
true
;
if
(
work
)
return
1
;
return
2
;
}
...
...
@@ -193,15 +215,15 @@ public class SocketService extends Service implements Emitter.Listener {
.
subscribeOn
(
Schedulers
.
newThread
())
.
concatMap
(
proxy
->
getPingServerObservable
(
proxy
)
.
subscribeOn
(
Schedulers
.
newThread
())
.
timeout
(
10
,
TimeUnit
.
SECONDS
)
.
timeout
(
appSec
,
TimeUnit
.
SECONDS
)
.
onErrorResumeNext
(
throwable
->
{
ConnectionsManager
.
setCaller
(
null
);
if
(
!
addCounter
(
proxy
.
getIp
(),
false
)
)
{
proxy
.
setConnect
(
false
);
if
(
addCounter
(
proxy
.
getIp
(),
false
)
==
0
)
{
proxy
.
setConnect
(
0
);
Log
.
e
(
"Proxy Connect"
,
"IP Not Work :"
+
proxy
.
getIp
()
+
" "
+
Constants
.
TYPE
);
}
else
{
proxy
.
setConnect
(
true
);
proxy
.
setConnect
(
2
);
Log
.
e
(
"Proxy Connect"
,
"IP So So :"
+
proxy
.
getIp
()
+
" "
+
Constants
.
TYPE
);
}
...
...
@@ -228,32 +250,34 @@ public class SocketService extends Service implements Emitter.Listener {
public
void
onNext
(
List
<
Proxy
>
proxyList
)
{
int
w
=
0
;
int
n
=
0
;
int
soso
=
0
;
List
<
Proxy
>
notWork
=
new
ArrayList
<>();
for
(
Proxy
proxy
:
proxyList
)
{
if
(
proxy
.
getConnect
())
if
(
proxy
.
getConnect
()
==
1
)
w
++;
else
if
(
proxy
.
getConnect
()
==
2
)
soso
++;
else
{
notWork
.
add
(
proxy
);
n
++;
Log
.
e
(
"Status"
,
proxy
.
getInstance
());
}
}
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
);
if
(
notWork
.
size
()
!=
0
)
{
try
{
String
cipherText
=
cryptLib
.
encryptPlainTextWithRandomIV
(
gson
.
toJson
(
notWork
),
key
);
SingletonSocket
.
getInstance
().
getSocket
().
emit
(
"checkping"
,
cipherText
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
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
);
try
{
String
cipherText
=
cryptLib
.
encryptPlainTextWithRandomIV
(
gson
.
toJson
(
notWork
),
key
);
SingletonSocket
.
getInstance
().
getSocket
().
emit
(
"checkping"
,
cipherText
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
});
...
...
TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java
View file @
01c3e96f
This diff is collapsed.
Click to expand it.
TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java
View file @
01c3e96f
...
...
@@ -59,7 +59,7 @@ public class TLRPC {
public static final int MESSAGE_FLAG_EDITED = 0x00008000;
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 int constructor = 0x9f120418;
TMessagesProj/src/main/jniLibs/arm64-v8a/libtmessages.so
0 → 100644
View file @
01c3e96f
File added
TMessagesProj/src/main/jniLibs/arm64/libtmessages.so
0 → 100644
View file @
01c3e96f
File added
TMessagesProj/src/main/jniLibs/armeabi-v7a/libtmessages.so
View file @
01c3e96f
No preview for this file type
TMessagesProj/src/main/jniLibs/x86_64/libtmessages.so
0 → 100644
View file @
01c3e96f
TMessagesProj/src/main/res/values/strings.xml
View file @
01c3e96f
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string
name=
"AppName"
>
Telegram
</string>
<string
name=
"AppNameBeta"
>
hetzner
</string>
<string
name=
"AppNameBeta"
>
Ohio
</string>
<string
name=
"LanguageName"
>
English
</string>
<string
name=
"English"
>
English
</string>
<string
name=
"LanguageNameInEnglish"
>
English
</string>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment