VoIPBaseService.smali
.class public abstract Lim/tpelyyftgw/messenger/voip/VoIPBaseService;
.super Landroid/app/Service;
.source "VoIPBaseService.java"
# interfaces
.implements Landroid/hardware/SensorEventListener;
.implements Landroid/media/AudioManager$OnAudioFocusChangeListener;
.implements Lim/tpelyyftgw/messenger/voip/VoIPController$ConnectionStateListener;
.implements Lim/tpelyyftgw/messenger/NotificationCenter$NotificationCenterDelegate;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;,
Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
}
.end annotation
# static fields
.field public static final ACTION_HEADSET_PLUG:Ljava/lang/String; = "android.intent.action.HEADSET_PLUG"
.field public static final AUDIO_ROUTE_BLUETOOTH:I = 0x2
.field public static final AUDIO_ROUTE_EARPIECE:I = 0x0
.field public static final AUDIO_ROUTE_SPEAKER:I = 0x1
.field public static final DISCARD_REASON_DISCONNECT:I = 0x2
.field public static final DISCARD_REASON_HANGUP:I = 0x1
.field public static final DISCARD_REASON_LINE_BUSY:I = 0x4
.field public static final DISCARD_REASON_MISSED:I = 0x3
.field protected static final ID_INCOMING_CALL_NOTIFICATION:I = 0xca
.field protected static final ID_ONGOING_CALL_NOTIFICATION:I = 0xc9
.field protected static final PROXIMITY_SCREEN_OFF_WAKE_LOCK:I = 0x20
.field public static final STATE_ENDED:I = 0xb
.field public static final STATE_ESTABLISHED:I = 0x3
.field public static final STATE_FAILED:I = 0x4
.field public static final STATE_RECONNECTING:I = 0x5
.field public static final STATE_WAIT_INIT:I = 0x1
.field public static final STATE_WAIT_INIT_ACK:I = 0x2
.field protected static final USE_CONNECTION_SERVICE:Z
.field protected static sharedInstance:Lim/tpelyyftgw/messenger/voip/VoIPBaseService;
# instance fields
.field protected afterSoundRunnable:Ljava/lang/Runnable;
.field protected audioConfigured:Z
.field protected audioRouteToSet:I
.field protected bluetoothScoActive:Z
.field protected btAdapter:Landroid/bluetooth/BluetoothAdapter;
.field protected callDiscardReason:I
.field protected connectingSoundRunnable:Ljava/lang/Runnable;
.field protected controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
.field protected controllerStarted:Z
.field protected cpuWakelock:Landroid/os/PowerManager$WakeLock;
.field protected currentAccount:I
.field protected currentState:I
.field protected didDeleteConnectionServiceContact:Z
.field protected haveAudioFocus:Z
.field protected isBtHeadsetConnected:Z
.field protected isHeadsetPlugged:Z
.field protected isOutgoing:Z
.field protected isProximityNear:Z
.field protected lastError:I
.field protected lastKnownDuration:J
.field protected lastNetInfo:Landroid/net/NetworkInfo;
.field private mHasEarpiece:Ljava/lang/Boolean;
.field protected micMute:Z
.field protected needPlayEndSound:Z
.field protected needSwitchToBluetoothAfterScoActivates:Z
.field protected ongoingCallNotification:Landroid/app/Notification;
.field protected playingSound:Z
.field protected prevStats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
.field protected proximityWakelock:Landroid/os/PowerManager$WakeLock;
.field protected receiver:Landroid/content/BroadcastReceiver;
.field protected ringtonePlayer:Landroid/media/MediaPlayer;
.field protected signalBarCount:I
.field protected soundPool:Landroid/media/SoundPool;
.field protected spBusyId:I
.field protected spConnectingId:I
.field protected spEndId:I
.field protected spFailedID:I
.field protected spPlayID:I
.field protected spRingbackID:I
.field protected speakerphoneStateToSet:Z
.field protected stateListeners:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;",
">;"
}
.end annotation
.end field
.field protected stats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
.field protected systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
.field protected timeoutRunnable:Ljava/lang/Runnable;
.field protected vibrator:Landroid/os/Vibrator;
.field private wasEstablished:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 120
invoke-static {}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isDeviceCompatibleWithConnectionServiceAPI()Z
move-result v0
sput-boolean v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
return-void
.end method
.method public constructor <init>()V
.registers 4
.line 97
invoke-direct {p0}, Landroid/app/Service;-><init>()V
.line 99
const/4 v0, -0x1
iput v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
.line 126
const/4 v0, 0x0
iput v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentState:I
.line 134
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
iput-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stateListeners:Ljava/util/ArrayList;
.line 149
new-instance v1, Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
invoke-direct {v1}, Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;-><init>()V
iput-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
.line 150
new-instance v1, Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
invoke-direct {v1}, Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;-><init>()V
iput-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->prevStats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
.line 152
new-instance v1, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$1;
invoke-direct {v1, p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$1;-><init>(Lim/tpelyyftgw/messenger/voip/VoIPBaseService;)V
iput-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->afterSoundRunnable:Ljava/lang/Runnable;
.line 163
const-wide/16 v1, 0x0
iput-wide v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->lastKnownDuration:J
.line 167
new-instance v1, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$2;
invoke-direct {v1, p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$2;-><init>(Lim/tpelyyftgw/messenger/voip/VoIPBaseService;)V
iput-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->receiver:Landroid/content/BroadcastReceiver;
.line 210
const/4 v1, 0x0
iput-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->mHasEarpiece:Ljava/lang/Boolean;
.line 214
const/4 v1, 0x2
iput v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->audioRouteToSet:I
.line 218
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->bluetoothScoActive:Z
.line 219
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->needSwitchToBluetoothAfterScoActivates:Z
.line 220
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->didDeleteConnectionServiceContact:Z
return-void
.end method
.method private acceptIncomingCallFromNotification()V
.registers 4
.line 1339
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->showNotification()V
.line 1340
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/4 v1, 0x0
const/16 v2, 0x17
if-lt v0, v2, :cond_32
const-string v0, "android.permission.RECORD_AUDIO"
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->checkSelfPermission(Ljava/lang/String;)I
move-result v0
if-eqz v0, :cond_32
.line 1342
:try_start_12
new-instance v0, Landroid/content/Intent;
const-class v2, Lim/tpelyyftgw/ui/VoIPPermissionActivity;
invoke-direct {v0, p0, v2}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
const/high16 v2, 0x10000000
invoke-virtual {v0, v2}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
move-result-object v0
invoke-static {p0, v1, v0, v1}, Landroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v0
invoke-virtual {v0}, Landroid/app/PendingIntent;->send()V
:try_end_26
.catch Ljava/lang/Exception; {:try_start_12 .. :try_end_26} :catch_27
.line 1347
goto :goto_31
.line 1343
:catch_27
move-exception v0
.line 1344
.local v0, "x":Ljava/lang/Exception;
sget-boolean v1, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v1, :cond_31
.line 1345
const-string v1, "Error starting permission activity"
invoke-static {v1, v0}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 1348
.end local v0 # "x":Ljava/lang/Exception;
:cond_31
:goto_31
return-void
.line 1350
:cond_32
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->acceptIncomingCall()V
.line 1352
:try_start_35
new-instance v0, Landroid/content/Intent;
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getUIActivityClass()Ljava/lang/Class;
move-result-object v2
invoke-direct {v0, p0, v2}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
const/high16 v2, 0x30000000
invoke-virtual {v0, v2}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
move-result-object v0
invoke-static {p0, v1, v0, v1}, Landroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v0
invoke-virtual {v0}, Landroid/app/PendingIntent;->send()V
:try_end_4b
.catch Ljava/lang/Exception; {:try_start_35 .. :try_end_4b} :catch_4c
.line 1357
goto :goto_56
.line 1353
:catch_4c
move-exception v0
.line 1354
.restart local v0 # "x":Ljava/lang/Exception;
sget-boolean v1, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v1, :cond_56
.line 1355
const-string v1, "Error starting incall activity"
invoke-static {v1, v0}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 1358
.end local v0 # "x":Ljava/lang/Exception;
:cond_56
:goto_56
return-void
.end method
.method static synthetic access$000(Lim/tpelyyftgw/messenger/voip/VoIPBaseService;)V
.registers 1
.param p0, "x0" # Lim/tpelyyftgw/messenger/voip/VoIPBaseService;
.line 97
invoke-direct {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->acceptIncomingCallFromNotification()V
return-void
.end method
.method public static getSharedInstance()Lim/tpelyyftgw/messenger/voip/VoIPBaseService;
.registers 1
.line 442
sget-object v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->sharedInstance:Lim/tpelyyftgw/messenger/voip/VoIPBaseService;
return-object v0
.end method
.method public static isAnyKindOfCallActive()Z
.registers 3
.line 1388
invoke-static {}, Lim/tpelyyftgw/messenger/voip/VoIPService;->getSharedInstance()Lim/tpelyyftgw/messenger/voip/VoIPService;
move-result-object v0
const/4 v1, 0x0
if-eqz v0, :cond_15
.line 1389
invoke-static {}, Lim/tpelyyftgw/messenger/voip/VoIPService;->getSharedInstance()Lim/tpelyyftgw/messenger/voip/VoIPService;
move-result-object v0
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPService;->getCallState()I
move-result v0
const/16 v2, 0xf
if-eq v0, v2, :cond_14
const/4 v1, 0x1
:cond_14
return v1
.line 1391
:cond_15
return v1
.end method
.method private static isDeviceCompatibleWithConnectionServiceAPI()Z
.registers 3
.line 1418
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/4 v1, 0x0
const/16 v2, 0x1a
if-ge v0, v2, :cond_8
.line 1419
return v1
.line 1422
:cond_8
sget-object v0, Landroid/os/Build;->PRODUCT:Ljava/lang/String;
const-string v2, "angler"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_67
sget-object v0, Landroid/os/Build;->PRODUCT:Ljava/lang/String;
.line 1423
const-string v2, "bullhead"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_67
sget-object v0, Landroid/os/Build;->PRODUCT:Ljava/lang/String;
.line 1424
const-string/jumbo v2, "sailfish"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_67
sget-object v0, Landroid/os/Build;->PRODUCT:Ljava/lang/String;
.line 1425
const-string v2, "marlin"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_67
sget-object v0, Landroid/os/Build;->PRODUCT:Ljava/lang/String;
.line 1426
const-string/jumbo v2, "walleye"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_67
sget-object v0, Landroid/os/Build;->PRODUCT:Ljava/lang/String;
.line 1427
const-string/jumbo v2, "taimen"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_67
sget-object v0, Landroid/os/Build;->PRODUCT:Ljava/lang/String;
.line 1428
const-string v2, "blueline"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_67
sget-object v0, Landroid/os/Build;->PRODUCT:Ljava/lang/String;
.line 1429
const-string v2, "crosshatch"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_67
.line 1430
invoke-static {}, Lim/tpelyyftgw/messenger/MessagesController;->getGlobalMainSettings()Landroid/content/SharedPreferences;
move-result-object v0
const-string v2, "dbg_force_connection_service"
invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z
move-result v0
if-eqz v0, :cond_68
:cond_67
const/4 v1, 0x1
.line 1422
:cond_68
return v1
.end method
# virtual methods
.method public abstract acceptIncomingCall()V
.end method
.method protected addAccountToTelecomManager()Landroid/telecom/PhoneAccountHandle;
.registers 7
.line 1404
const-string/jumbo v0, "telecom"
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/telecom/TelecomManager;
.line 1405
.local v0, "tm":Landroid/telecom/TelecomManager;
iget v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v1}, Lim/tpelyyftgw/messenger/UserConfig;->getInstance(I)Lim/tpelyyftgw/messenger/UserConfig;
move-result-object v1
invoke-virtual {v1}, Lim/tpelyyftgw/messenger/UserConfig;->getCurrentUser()Lim/tpelyyftgw/tgnet/TLRPC$User;
move-result-object v1
.line 1406
.local v1, "self":Lim/tpelyyftgw/tgnet/TLRPC$User;
new-instance v2, Landroid/telecom/PhoneAccountHandle;
new-instance v3, Landroid/content/ComponentName;
const-class v4, Lim/tpelyyftgw/messenger/voip/AppConnectionService;
invoke-direct {v3, p0, v4}, Landroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, ""
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v5, v1, Lim/tpelyyftgw/tgnet/TLRPC$User;->id:I
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-direct {v2, v3, v4}, Landroid/telecom/PhoneAccountHandle;-><init>(Landroid/content/ComponentName;Ljava/lang/String;)V
.line 1407
.local v2, "handle":Landroid/telecom/PhoneAccountHandle;
new-instance v3, Landroid/telecom/PhoneAccount$Builder;
iget-object v4, v1, Lim/tpelyyftgw/tgnet/TLRPC$User;->first_name:Ljava/lang/String;
iget-object v5, v1, Lim/tpelyyftgw/tgnet/TLRPC$User;->last_name:Ljava/lang/String;
invoke-static {v4, v5}, Lim/tpelyyftgw/messenger/ContactsController;->formatName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
invoke-direct {v3, v2, v4}, Landroid/telecom/PhoneAccount$Builder;-><init>(Landroid/telecom/PhoneAccountHandle;Ljava/lang/CharSequence;)V
.line 1408
const/16 v4, 0x800
invoke-virtual {v3, v4}, Landroid/telecom/PhoneAccount$Builder;->setCapabilities(I)Landroid/telecom/PhoneAccount$Builder;
move-result-object v3
.line 1409
const v4, 0x7f0d00cf
invoke-static {p0, v4}, Landroid/graphics/drawable/Icon;->createWithResource(Landroid/content/Context;I)Landroid/graphics/drawable/Icon;
move-result-object v4
invoke-virtual {v3, v4}, Landroid/telecom/PhoneAccount$Builder;->setIcon(Landroid/graphics/drawable/Icon;)Landroid/telecom/PhoneAccount$Builder;
move-result-object v3
.line 1410
const v4, -0xd35a20
invoke-virtual {v3, v4}, Landroid/telecom/PhoneAccount$Builder;->setHighlightColor(I)Landroid/telecom/PhoneAccount$Builder;
move-result-object v3
.line 1411
const-string/jumbo v4, "sip"
invoke-virtual {v3, v4}, Landroid/telecom/PhoneAccount$Builder;->addSupportedUriScheme(Ljava/lang/String;)Landroid/telecom/PhoneAccount$Builder;
move-result-object v3
.line 1412
invoke-virtual {v3}, Landroid/telecom/PhoneAccount$Builder;->build()Landroid/telecom/PhoneAccount;
move-result-object v3
.line 1413
.local v3, "account":Landroid/telecom/PhoneAccount;
invoke-virtual {v0, v3}, Landroid/telecom/TelecomManager;->registerPhoneAccount(Landroid/telecom/PhoneAccount;)V
.line 1414
return-object v2
.end method
.method protected callEnded()V
.registers 11
.line 1270
sget-boolean v0, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v0, :cond_21
.line 1271
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Call "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getCallID()J
move-result-wide v1
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string v1, " ended"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lim/tpelyyftgw/messenger/FileLog;->d(Ljava/lang/String;)V
.line 1273
:cond_21
const/16 v0, 0xb
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->dispatchStateChanged(I)V
.line 1274
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->needPlayEndSound:Z
const-wide/16 v1, 0x2bc
if-eqz v0, :cond_43
.line 1275
const/4 v0, 0x1
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->playingSound:Z
.line 1276
iget-object v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->soundPool:Landroid/media/SoundPool;
iget v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->spEndId:I
const/high16 v5, 0x3f800000 # 1.0f
const/high16 v6, 0x3f800000 # 1.0f
const/4 v7, 0x0
const/4 v8, 0x0
const/high16 v9, 0x3f800000 # 1.0f
invoke-virtual/range {v3 .. v9}, Landroid/media/SoundPool;->play(IFFIIF)I
.line 1277
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->afterSoundRunnable:Ljava/lang/Runnable;
invoke-static {v0, v1, v2}, Lim/tpelyyftgw/messenger/AndroidUtilities;->runOnUIThread(Ljava/lang/Runnable;J)V
.line 1279
:cond_43
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->timeoutRunnable:Ljava/lang/Runnable;
if-eqz v0, :cond_4d
.line 1280
invoke-static {v0}, Lim/tpelyyftgw/messenger/AndroidUtilities;->cancelRunOnUIThread(Ljava/lang/Runnable;)V
.line 1281
const/4 v0, 0x0
iput-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->timeoutRunnable:Ljava/lang/Runnable;
.line 1283
:cond_4d
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->needPlayEndSound:Z
if-eqz v0, :cond_52
goto :goto_54
:cond_52
const-wide/16 v1, 0x0
:goto_54
invoke-virtual {p0, v1, v2}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->endConnectionServiceCall(J)V
.line 1284
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stopSelf()V
.line 1285
return-void
.end method
.method protected callFailed()V
.registers 3
.line 966
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
if-eqz v0, :cond_d
iget-boolean v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controllerStarted:Z
if-eqz v1, :cond_d
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPController;->getLastError()I
move-result v0
goto :goto_e
:cond_d
const/4 v0, 0x0
:goto_e
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->callFailed(I)V
.line 967
return-void
.end method
.method protected callFailed(I)V
.registers 11
.param p1, "errorCode" # I
.line 1188
:try_start_0
new-instance v0, Ljava/lang/Exception;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Call "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getCallID()J
move-result-wide v2
invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string v2, " failed with error code "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
.end local p1 # "errorCode":I
throw v0
:try_end_23
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_23} :catch_23
.line 1189
.restart local p1 # "errorCode":I
:catch_23
move-exception v0
.line 1190
.local v0, "x":Ljava/lang/Exception;
invoke-static {v0}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 1192
.end local v0 # "x":Ljava/lang/Exception;
iput p1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->lastError:I
.line 1193
const/4 v0, 0x4
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->dispatchStateChanged(I)V
.line 1194
const/4 v0, -0x3
const/4 v1, 0x1
if-eq p1, v0, :cond_4b
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->soundPool:Landroid/media/SoundPool;
if-eqz v2, :cond_4b
.line 1195
iput-boolean v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->playingSound:Z
.line 1196
iget v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->spFailedID:I
const/high16 v4, 0x3f800000 # 1.0f
const/high16 v5, 0x3f800000 # 1.0f
const/4 v6, 0x0
const/4 v7, 0x0
const/high16 v8, 0x3f800000 # 1.0f
invoke-virtual/range {v2 .. v8}, Landroid/media/SoundPool;->play(IFFIIF)I
.line 1197
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->afterSoundRunnable:Ljava/lang/Runnable;
const-wide/16 v2, 0x3e8
invoke-static {v0, v2, v3}, Lim/tpelyyftgw/messenger/AndroidUtilities;->runOnUIThread(Ljava/lang/Runnable;J)V
.line 1199
:cond_4b
sget-boolean v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
if-eqz v0, :cond_63
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
if-eqz v0, :cond_63
.line 1200
new-instance v2, Landroid/telecom/DisconnectCause;
invoke-direct {v2, v1}, Landroid/telecom/DisconnectCause;-><init>(I)V
invoke-virtual {v0, v2}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->setDisconnected(Landroid/telecom/DisconnectCause;)V
.line 1201
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->destroy()V
.line 1202
const/4 v0, 0x0
iput-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
.line 1204
:cond_63
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stopSelf()V
.line 1205
return-void
.end method
.method callFailedFromConnectionService()V
.registers 2
.line 1208
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isOutgoing:Z
if-eqz v0, :cond_9
.line 1209
const/4 v0, -0x5
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->callFailed(I)V
goto :goto_c
.line 1211
:cond_9
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->hangUp()V
.line 1212
:goto_c
return-void
.end method
.method protected configureDeviceForCall()V
.registers 8
.line 755
const/4 v0, 0x1
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->needPlayEndSound:Z
.line 756
const-string v1, "audio"
invoke-virtual {p0, v1}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/media/AudioManager;
.line 757
.local v1, "am":Landroid/media/AudioManager;
sget-boolean v2, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
const/4 v3, 0x3
if-nez v2, :cond_60
.line 758
invoke-virtual {v1, v3}, Landroid/media/AudioManager;->setMode(I)V
.line 759
const/4 v2, 0x0
invoke-virtual {v1, p0, v2, v0}, Landroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;II)I
.line 760
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isBluetoothHeadsetConnected()Z
move-result v4
if-eqz v4, :cond_4f
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->hasEarpiece()Z
move-result v4
if-eqz v4, :cond_4f
.line 761
iget v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->audioRouteToSet:I
if-eqz v4, :cond_47
if-eq v4, v0, :cond_40
const/4 v5, 0x2
if-eq v4, v5, :cond_2d
goto :goto_4e
.line 763
:cond_2d
iget-boolean v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->bluetoothScoActive:Z
if-nez v4, :cond_39
.line 764
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->needSwitchToBluetoothAfterScoActivates:Z
.line 766
:try_start_33
invoke-virtual {v1}, Landroid/media/AudioManager;->startBluetoothSco()V
:try_end_36
.catchall {:try_start_33 .. :try_end_36} :catchall_37
.line 769
:goto_36
goto :goto_4e
.line 767
:catchall_37
move-exception v2
goto :goto_36
.line 771
:cond_39
invoke-virtual {v1, v0}, Landroid/media/AudioManager;->setBluetoothScoOn(Z)V
.line 772
invoke-virtual {v1, v2}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V
.line 774
goto :goto_4e
.line 780
:cond_40
invoke-virtual {v1, v2}, Landroid/media/AudioManager;->setBluetoothScoOn(Z)V
.line 781
invoke-virtual {v1, v0}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V
goto :goto_4e
.line 776
:cond_47
invoke-virtual {v1, v2}, Landroid/media/AudioManager;->setBluetoothScoOn(Z)V
.line 777
invoke-virtual {v1, v2}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V
.line 778
nop
.line 782
:goto_4e
goto :goto_60
.line 784
:cond_4f
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isBluetoothHeadsetConnected()Z
move-result v2
if-eqz v2, :cond_5b
.line 785
iget-boolean v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->speakerphoneStateToSet:Z
invoke-virtual {v1, v2}, Landroid/media/AudioManager;->setBluetoothScoOn(Z)V
goto :goto_60
.line 787
:cond_5b
iget-boolean v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->speakerphoneStateToSet:Z
invoke-virtual {v1, v2}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V
.line 809
:cond_60
:goto_60
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->updateOutputGainControlState()V
.line 810
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->audioConfigured:Z
.line 812
const-string/jumbo v0, "sensor"
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/SensorManager;
.line 813
.local v0, "sm":Landroid/hardware/SensorManager;
const/16 v2, 0x8
invoke-virtual {v0, v2}, Landroid/hardware/SensorManager;->getDefaultSensor(I)Landroid/hardware/Sensor;
move-result-object v2
.line 815
.local v2, "proximity":Landroid/hardware/Sensor;
if-eqz v2, :cond_97
.line 816
:try_start_76
const-string v4, "power"
invoke-virtual {p0, v4}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroid/os/PowerManager;
const/16 v5, 0x20
const-string v6, "hchat-voip-prx"
invoke-virtual {v4, v5, v6}, Landroid/os/PowerManager;->newWakeLock(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;
move-result-object v4
iput-object v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->proximityWakelock:Landroid/os/PowerManager$WakeLock;
.line 817
invoke-virtual {v0, p0, v2, v3}, Landroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;I)Z
:try_end_8b
.catch Ljava/lang/Exception; {:try_start_76 .. :try_end_8b} :catch_8c
goto :goto_97
.line 819
:catch_8c
move-exception v3
.line 820
.local v3, "x":Ljava/lang/Exception;
sget-boolean v4, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v4, :cond_98
.line 821
const-string v4, "Error initializing proximity sensor"
invoke-static {v4, v3}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_98
.line 823
.end local v3 # "x":Ljava/lang/Exception;
:cond_97
:goto_97
nop
.line 824
:cond_98
:goto_98
return-void
.end method
.method protected createController()Lim/tpelyyftgw/messenger/voip/VoIPController;
.registers 2
.line 648
new-instance v0, Lim/tpelyyftgw/messenger/voip/VoIPController;
invoke-direct {v0}, Lim/tpelyyftgw/messenger/voip/VoIPController;-><init>()V
return-object v0
.end method
.method public abstract declineIncomingCall()V
.end method
.method public abstract declineIncomingCall(ILjava/lang/Runnable;)V
.end method
.method public varargs didReceivedNotification(II[Ljava/lang/Object;)V
.registers 5
.param p1, "id" # I
.param p2, "account" # I
.param p3, "args" # [Ljava/lang/Object;
.line 1380
sget v0, Lim/tpelyyftgw/messenger/NotificationCenter;->appDidLogout:I
if-ne p1, v0, :cond_7
.line 1381
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->callEnded()V
.line 1383
:cond_7
return-void
.end method
.method protected dispatchStateChanged(I)V
.registers 5
.param p1, "state" # I
.line 720
sget-boolean v0, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v0, :cond_29
.line 721
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "== Call "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getCallID()J
move-result-wide v1
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string v1, " state changed to "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " =="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lim/tpelyyftgw/messenger/FileLog;->d(Ljava/lang/String;)V
.line 723
:cond_29
iput p1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentState:I
.line 724
sget-boolean v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
if-eqz v0, :cond_39
const/4 v0, 0x3
if-ne p1, v0, :cond_39
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
if-eqz v0, :cond_39
.line 725
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->setActive()V
.line 727
:cond_39
const/4 v0, 0x0
.local v0, "a":I
:goto_3a
iget-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stateListeners:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
if-ge v0, v1, :cond_50
.line 728
iget-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stateListeners:Ljava/util/ArrayList;
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
.line 729
.local v1, "l":Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
invoke-interface {v1, p1}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;->onStateChanged(I)V
.line 727
.end local v1 # "l":Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
add-int/lit8 v0, v0, 0x1
goto :goto_3a
.line 731
.end local v0 # "a":I
:cond_50
return-void
.end method
.method protected endConnectionServiceCall(J)V
.registers 7
.param p1, "delay" # J
.line 1288
sget-boolean v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
if-eqz v0, :cond_16
.line 1289
new-instance v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$8;
invoke-direct {v0, p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$8;-><init>(Lim/tpelyyftgw/messenger/voip/VoIPBaseService;)V
.line 1315
.local v0, "r":Ljava/lang/Runnable;
const-wide/16 v1, 0x0
cmp-long v3, p1, v1
if-lez v3, :cond_13
.line 1316
invoke-static {v0, p1, p2}, Lim/tpelyyftgw/messenger/AndroidUtilities;->runOnUIThread(Ljava/lang/Runnable;J)V
goto :goto_16
.line 1318
:cond_13
invoke-interface {v0}, Ljava/lang/Runnable;->run()V
.line 1320
.end local v0 # "r":Ljava/lang/Runnable;
:cond_16
:goto_16
return-void
.end method
.method public getAccount()I
.registers 2
.line 1375
iget v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
return v0
.end method
.method public getCallDuration()J
.registers 3
.line 436
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controllerStarted:Z
if-eqz v0, :cond_10
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
if-nez v0, :cond_9
goto :goto_10
.line 438
:cond_9
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPController;->getCallDuration()J
move-result-wide v0
iput-wide v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->lastKnownDuration:J
return-wide v0
.line 437
:cond_10
:goto_10
iget-wide v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->lastKnownDuration:J
return-wide v0
.end method
.method public abstract getCallID()J
.end method
.method public getCallState()I
.registers 2
.line 913
iget v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentState:I
return v0
.end method
.method public abstract getConnectionAndStartCall()Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
.end method
.method public getCurrentAudioRoute()I
.registers 6
.line 405
sget-boolean v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
const/4 v1, 0x0
const/4 v2, 0x1
const/4 v3, 0x2
if-eqz v0, :cond_2d
.line 406
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
if-eqz v0, :cond_2a
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->getCallAudioState()Landroid/telecom/CallAudioState;
move-result-object v0
if-eqz v0, :cond_2a
.line 407
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->getCallAudioState()Landroid/telecom/CallAudioState;
move-result-object v0
invoke-virtual {v0}, Landroid/telecom/CallAudioState;->getRoute()I
move-result v0
if-eq v0, v2, :cond_29
if-eq v0, v3, :cond_28
const/4 v3, 0x4
if-eq v0, v3, :cond_29
const/16 v1, 0x8
if-eq v0, v1, :cond_27
goto :goto_2a
.line 414
:cond_27
return v2
.line 409
:cond_28
return v3
.line 412
:cond_29
return v1
.line 417
:cond_2a
:goto_2a
iget v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->audioRouteToSet:I
return v0
.line 419
:cond_2d
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->audioConfigured:Z
if-eqz v0, :cond_48
.line 420
const-string v0, "audio"
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/media/AudioManager;
.line 421
.local v0, "am":Landroid/media/AudioManager;
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v4
if-eqz v4, :cond_40
.line 422
return v3
.line 423
:cond_40
invoke-virtual {v0}, Landroid/media/AudioManager;->isSpeakerphoneOn()Z
move-result v3
if-eqz v3, :cond_47
.line 424
return v2
.line 426
:cond_47
return v1
.line 428
.end local v0 # "am":Landroid/media/AudioManager;
:cond_48
iget v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->audioRouteToSet:I
return v0
.end method
.method public getDebugString()Ljava/lang/String;
.registers 2
.line 432
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPController;->getDebugString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getLastError()I
.registers 2
.line 909
iget v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->lastError:I
return v0
.end method
.method protected getRoundAvatarBitmap(Lim/tpelyyftgw/tgnet/TLObject;)Landroid/graphics/Bitmap;
.registers 10
.param p1, "userOrChat" # Lim/tpelyyftgw/tgnet/TLObject;
.line 970
const/4 v0, 0x0
.line 971
.local v0, "bitmap":Landroid/graphics/Bitmap;
instance-of v1, p1, Lim/tpelyyftgw/tgnet/TLRPC$User;
const-string v2, "50_50"
const/4 v3, 0x0
const/4 v4, 0x1
if-eqz v1, :cond_4d
.line 972
move-object v1, p1
check-cast v1, Lim/tpelyyftgw/tgnet/TLRPC$User;
.line 973
.local v1, "user":Lim/tpelyyftgw/tgnet/TLRPC$User;
iget-object v5, v1, Lim/tpelyyftgw/tgnet/TLRPC$User;->photo:Lim/tpelyyftgw/tgnet/TLRPC$UserProfilePhoto;
if-eqz v5, :cond_4c
iget-object v5, v1, Lim/tpelyyftgw/tgnet/TLRPC$User;->photo:Lim/tpelyyftgw/tgnet/TLRPC$UserProfilePhoto;
iget-object v5, v5, Lim/tpelyyftgw/tgnet/TLRPC$UserProfilePhoto;->photo_small:Lim/tpelyyftgw/tgnet/TLRPC$FileLocation;
if-eqz v5, :cond_4c
.line 974
invoke-static {}, Lim/tpelyyftgw/messenger/ImageLoader;->getInstance()Lim/tpelyyftgw/messenger/ImageLoader;
move-result-object v5
iget-object v6, v1, Lim/tpelyyftgw/tgnet/TLRPC$User;->photo:Lim/tpelyyftgw/tgnet/TLRPC$UserProfilePhoto;
iget-object v6, v6, Lim/tpelyyftgw/tgnet/TLRPC$UserProfilePhoto;->photo_small:Lim/tpelyyftgw/tgnet/TLRPC$FileLocation;
invoke-virtual {v5, v6, v3, v2}, Lim/tpelyyftgw/messenger/ImageLoader;->getImageFromMemory(Lim/tpelyyftgw/tgnet/TLObject;Ljava/lang/String;Ljava/lang/String;)Landroid/graphics/drawable/BitmapDrawable;
move-result-object v2
.line 975
.local v2, "img":Landroid/graphics/drawable/BitmapDrawable;
if-eqz v2, :cond_2f
.line 976
invoke-virtual {v2}, Landroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;
move-result-object v3
sget-object v5, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
invoke-virtual {v3, v5, v4}, Landroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
move-result-object v0
goto :goto_4c
.line 979
:cond_2f
:try_start_2f
new-instance v3, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v3}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 980
.local v3, "opts":Landroid/graphics/BitmapFactory$Options;
iput-boolean v4, v3, Landroid/graphics/BitmapFactory$Options;->inMutable:Z
.line 981
iget-object v5, v1, Lim/tpelyyftgw/tgnet/TLRPC$User;->photo:Lim/tpelyyftgw/tgnet/TLRPC$UserProfilePhoto;
iget-object v5, v5, Lim/tpelyyftgw/tgnet/TLRPC$UserProfilePhoto;->photo_small:Lim/tpelyyftgw/tgnet/TLRPC$FileLocation;
invoke-static {v5, v4}, Lim/tpelyyftgw/messenger/FileLoader;->getPathToAttach(Lim/tpelyyftgw/tgnet/TLObject;Z)Ljava/io/File;
move-result-object v5
invoke-virtual {v5}, Ljava/io/File;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v5, v3}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object v5
:try_end_46
.catchall {:try_start_2f .. :try_end_46} :catchall_48
move-object v0, v5
.line 984
.end local v3 # "opts":Landroid/graphics/BitmapFactory$Options;
goto :goto_4c
.line 982
:catchall_48
move-exception v3
.line 983
.local v3, "e":Ljava/lang/Throwable;
invoke-static {v3}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 987
.end local v1 # "user":Lim/tpelyyftgw/tgnet/TLRPC$User;
.end local v2 # "img":Landroid/graphics/drawable/BitmapDrawable;
.end local v3 # "e":Ljava/lang/Throwable;
:cond_4c
:goto_4c
goto :goto_90
.line 988
:cond_4d
move-object v1, p1
check-cast v1, Lim/tpelyyftgw/tgnet/TLRPC$Chat;
.line 989
.local v1, "chat":Lim/tpelyyftgw/tgnet/TLRPC$Chat;
iget-object v5, v1, Lim/tpelyyftgw/tgnet/TLRPC$Chat;->photo:Lim/tpelyyftgw/tgnet/TLRPC$ChatPhoto;
if-eqz v5, :cond_90
iget-object v5, v1, Lim/tpelyyftgw/tgnet/TLRPC$Chat;->photo:Lim/tpelyyftgw/tgnet/TLRPC$ChatPhoto;
iget-object v5, v5, Lim/tpelyyftgw/tgnet/TLRPC$ChatPhoto;->photo_small:Lim/tpelyyftgw/tgnet/TLRPC$FileLocation;
if-eqz v5, :cond_90
.line 990
invoke-static {}, Lim/tpelyyftgw/messenger/ImageLoader;->getInstance()Lim/tpelyyftgw/messenger/ImageLoader;
move-result-object v5
iget-object v6, v1, Lim/tpelyyftgw/tgnet/TLRPC$Chat;->photo:Lim/tpelyyftgw/tgnet/TLRPC$ChatPhoto;
iget-object v6, v6, Lim/tpelyyftgw/tgnet/TLRPC$ChatPhoto;->photo_small:Lim/tpelyyftgw/tgnet/TLRPC$FileLocation;
invoke-virtual {v5, v6, v3, v2}, Lim/tpelyyftgw/messenger/ImageLoader;->getImageFromMemory(Lim/tpelyyftgw/tgnet/TLObject;Ljava/lang/String;Ljava/lang/String;)Landroid/graphics/drawable/BitmapDrawable;
move-result-object v2
.line 991
.restart local v2 # "img":Landroid/graphics/drawable/BitmapDrawable;
if-eqz v2, :cond_73
.line 992
invoke-virtual {v2}, Landroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;
move-result-object v3
sget-object v5, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
invoke-virtual {v3, v5, v4}, Landroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
move-result-object v0
goto :goto_90
.line 995
:cond_73
:try_start_73
new-instance v3, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v3}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 996
.local v3, "opts":Landroid/graphics/BitmapFactory$Options;
iput-boolean v4, v3, Landroid/graphics/BitmapFactory$Options;->inMutable:Z
.line 997
iget-object v5, v1, Lim/tpelyyftgw/tgnet/TLRPC$Chat;->photo:Lim/tpelyyftgw/tgnet/TLRPC$ChatPhoto;
iget-object v5, v5, Lim/tpelyyftgw/tgnet/TLRPC$ChatPhoto;->photo_small:Lim/tpelyyftgw/tgnet/TLRPC$FileLocation;
invoke-static {v5, v4}, Lim/tpelyyftgw/messenger/FileLoader;->getPathToAttach(Lim/tpelyyftgw/tgnet/TLObject;Z)Ljava/io/File;
move-result-object v5
invoke-virtual {v5}, Ljava/io/File;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v5, v3}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object v5
:try_end_8a
.catchall {:try_start_73 .. :try_end_8a} :catchall_8c
move-object v0, v5
.line 1000
.end local v3 # "opts":Landroid/graphics/BitmapFactory$Options;
goto :goto_90
.line 998
:catchall_8c
move-exception v3
.line 999
.local v3, "e":Ljava/lang/Throwable;
invoke-static {v3}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 1004
.end local v1 # "chat":Lim/tpelyyftgw/tgnet/TLRPC$Chat;
.end local v2 # "img":Landroid/graphics/drawable/BitmapDrawable;
.end local v3 # "e":Ljava/lang/Throwable;
:cond_90
:goto_90
if-nez v0, :cond_ce
.line 1005
invoke-static {p0}, Lim/tpelyyftgw/ui/actionbar/Theme;->createDialogsResources(Landroid/content/Context;)V
.line 1007
instance-of v1, p1, Lim/tpelyyftgw/tgnet/TLRPC$User;
if-eqz v1, :cond_a2
.line 1008
new-instance v1, Lim/tpelyyftgw/ui/components/AvatarDrawable;
move-object v2, p1
check-cast v2, Lim/tpelyyftgw/tgnet/TLRPC$User;
invoke-direct {v1, v2}, Lim/tpelyyftgw/ui/components/AvatarDrawable;-><init>(Lim/tpelyyftgw/tgnet/TLRPC$User;)V
.local v1, "placeholder":Lim/tpelyyftgw/ui/components/AvatarDrawable;
goto :goto_aa
.line 1010
.end local v1 # "placeholder":Lim/tpelyyftgw/ui/components/AvatarDrawable;
:cond_a2
new-instance v1, Lim/tpelyyftgw/ui/components/AvatarDrawable;
move-object v2, p1
check-cast v2, Lim/tpelyyftgw/tgnet/TLRPC$Chat;
invoke-direct {v1, v2}, Lim/tpelyyftgw/ui/components/AvatarDrawable;-><init>(Lim/tpelyyftgw/tgnet/TLRPC$Chat;)V
.line 1011
.restart local v1 # "placeholder":Lim/tpelyyftgw/ui/components/AvatarDrawable;
:goto_aa
const/high16 v2, 0x42280000 # 42.0f
invoke-static {v2}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v3
invoke-static {v2}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v2
sget-object v5, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
invoke-static {v3, v2, v5}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v0
.line 1012
invoke-virtual {v0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v2
invoke-virtual {v0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v3
const/4 v5, 0x0
invoke-virtual {v1, v5, v5, v2, v3}, Lim/tpelyyftgw/ui/components/AvatarDrawable;->setBounds(IIII)V
.line 1013
new-instance v2, Landroid/graphics/Canvas;
invoke-direct {v2, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
invoke-virtual {v1, v2}, Lim/tpelyyftgw/ui/components/AvatarDrawable;->draw(Landroid/graphics/Canvas;)V
.line 1016
.end local v1 # "placeholder":Lim/tpelyyftgw/ui/components/AvatarDrawable;
:cond_ce
new-instance v1, Landroid/graphics/Canvas;
invoke-direct {v1, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 1017
.local v1, "canvas":Landroid/graphics/Canvas;
new-instance v2, Landroid/graphics/Path;
invoke-direct {v2}, Landroid/graphics/Path;-><init>()V
.line 1018
.local v2, "circlePath":Landroid/graphics/Path;
invoke-virtual {v0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v3
div-int/lit8 v3, v3, 0x2
int-to-float v3, v3
invoke-virtual {v0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v5
div-int/lit8 v5, v5, 0x2
int-to-float v5, v5
invoke-virtual {v0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v6
div-int/lit8 v6, v6, 0x2
int-to-float v6, v6
sget-object v7, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;
invoke-virtual {v2, v3, v5, v6, v7}, Landroid/graphics/Path;->addCircle(FFFLandroid/graphics/Path$Direction;)V
.line 1019
invoke-virtual {v2}, Landroid/graphics/Path;->toggleInverseFillType()V
.line 1020
new-instance v3, Landroid/graphics/Paint;
invoke-direct {v3, v4}, Landroid/graphics/Paint;-><init>(I)V
.line 1021
.local v3, "paint":Landroid/graphics/Paint;
new-instance v4, Landroid/graphics/PorterDuffXfermode;
sget-object v5, Landroid/graphics/PorterDuff$Mode;->CLEAR:Landroid/graphics/PorterDuff$Mode;
invoke-direct {v4, v5}, Landroid/graphics/PorterDuffXfermode;-><init>(Landroid/graphics/PorterDuff$Mode;)V
invoke-virtual {v3, v4}, Landroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;
.line 1022
invoke-virtual {v1, v2, v3}, Landroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
.line 1023
return-object v0
.end method
.method protected getStatsNetworkType()I
.registers 3
.line 261
const/4 v0, 0x1
.line 262
.local v0, "netType":I
iget-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->lastNetInfo:Landroid/net/NetworkInfo;
if-eqz v1, :cond_17
.line 263
invoke-virtual {v1}, Landroid/net/NetworkInfo;->getType()I
move-result v1
if-nez v1, :cond_17
.line 264
iget-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->lastNetInfo:Landroid/net/NetworkInfo;
invoke-virtual {v1}, Landroid/net/NetworkInfo;->isRoaming()Z
move-result v1
if-eqz v1, :cond_15
const/4 v1, 0x2
goto :goto_16
:cond_15
const/4 v1, 0x0
:goto_16
move v0, v1
.line 266
:cond_17
return v0
.end method
.method protected abstract getUIActivityClass()Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/lang/Class<",
"+",
"Landroid/app/Activity;",
">;"
}
.end annotation
.end method
.method public handleNotificationAction(Landroid/content/Intent;)V
.registers 5
.param p1, "intent" # Landroid/content/Intent;
.line 1327
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getPackageName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, ".END_CALL"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p1}, Landroid/content/Intent;->getAction()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
const/4 v1, 0x1
if-eqz v0, :cond_27
.line 1328
invoke-virtual {p0, v1}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stopForeground(Z)V
.line 1329
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->hangUp()V
goto :goto_71
.line 1330
:cond_27
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getPackageName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, ".DECLINE_CALL"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p1}, Landroid/content/Intent;->getAction()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_4f
.line 1331
invoke-virtual {p0, v1}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stopForeground(Z)V
.line 1332
const/4 v0, 0x4
const/4 v1, 0x0
invoke-virtual {p0, v0, v1}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->declineIncomingCall(ILjava/lang/Runnable;)V
goto :goto_71
.line 1333
:cond_4f
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getPackageName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, ".ANSWER_CALL"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p1}, Landroid/content/Intent;->getAction()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_71
.line 1334
invoke-direct {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->acceptIncomingCallFromNotification()V
.line 1336
:cond_71
:goto_71
return-void
.end method
.method public abstract hangUp()V
.end method
.method public abstract hangUp(Ljava/lang/Runnable;)V
.end method
.method public hasEarpiece()Z
.registers 8
.line 224
sget-boolean v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
const/4 v1, 0x0
const/4 v2, 0x1
if-eqz v0, :cond_20
.line 225
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
if-eqz v0, :cond_20
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->getCallAudioState()Landroid/telecom/CallAudioState;
move-result-object v0
if-eqz v0, :cond_20
.line 226
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->getCallAudioState()Landroid/telecom/CallAudioState;
move-result-object v0
invoke-virtual {v0}, Landroid/telecom/CallAudioState;->getSupportedRouteMask()I
move-result v0
.line 227
.local v0, "routeMask":I
and-int/lit8 v3, v0, 0x5
if-eqz v3, :cond_1f
const/4 v1, 0x1
:cond_1f
return v1
.line 230
.end local v0 # "routeMask":I
:cond_20
const-string v0, "phone"
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/telephony/TelephonyManager;
invoke-virtual {v0}, Landroid/telephony/TelephonyManager;->getPhoneType()I
move-result v0
if-eqz v0, :cond_2f
.line 231
return v2
.line 232
:cond_2f
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->mHasEarpiece:Ljava/lang/Boolean;
if-eqz v0, :cond_38
.line 233
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v0
return v0
.line 238
:cond_38
:try_start_38
const-string v0, "audio"
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/media/AudioManager;
.line 239
.local v0, "am":Landroid/media/AudioManager;
const-class v3, Landroid/media/AudioManager;
const-string v4, "getDevicesForStream"
new-array v5, v2, [Ljava/lang/Class;
sget-object v6, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v6, v5, v1
invoke-virtual {v3, v4, v5}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v3
.line 240
.local v3, "method":Ljava/lang/reflect/Method;
const-class v4, Landroid/media/AudioManager;
const-string v5, "DEVICE_OUT_EARPIECE"
invoke-virtual {v4, v5}, Ljava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v4
.line 241
.local v4, "field":Ljava/lang/reflect/Field;
const/4 v5, 0x0
invoke-virtual {v4, v5}, Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
move-result v5
.line 242
.local v5, "earpieceFlag":I
new-array v2, v2, [Ljava/lang/Object;
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v6
aput-object v6, v2, v1
invoke-virtual {v3, v0, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Integer;
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
.line 245
.local v1, "bitmaskResult":I
and-int v2, v1, v5
if-ne v2, v5, :cond_76
.line 246
sget-object v2, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
iput-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->mHasEarpiece:Ljava/lang/Boolean;
goto :goto_7a
.line 248
:cond_76
sget-object v2, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
iput-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->mHasEarpiece:Ljava/lang/Boolean;
:try_end_7a
.catchall {:try_start_38 .. :try_end_7a} :catchall_7b
.line 255
.end local v0 # "am":Landroid/media/AudioManager;
.end local v1 # "bitmaskResult":I
.end local v3 # "method":Ljava/lang/reflect/Method;
.end local v4 # "field":Ljava/lang/reflect/Field;
.end local v5 # "earpieceFlag":I
:goto_7a
goto :goto_89
.line 250
:catchall_7b
move-exception v0
.line 251
.local v0, "error":Ljava/lang/Throwable;
sget-boolean v1, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v1, :cond_85
.line 252
const-string v1, "Error while checking earpiece! "
invoke-static {v1, v0}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 254
:cond_85
sget-object v1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
iput-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->mHasEarpiece:Ljava/lang/Boolean;
.line 257
.end local v0 # "error":Ljava/lang/Throwable;
:goto_89
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->mHasEarpiece:Ljava/lang/Boolean;
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v0
return v0
.end method
.method protected initializeAccountRelatedThings()V
.registers 3
.line 652
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->updateServerConfig()V
.line 653
iget v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v0}, Lim/tpelyyftgw/messenger/NotificationCenter;->getInstance(I)Lim/tpelyyftgw/messenger/NotificationCenter;
move-result-object v0
sget v1, Lim/tpelyyftgw/messenger/NotificationCenter;->appDidLogout:I
invoke-virtual {v0, p0, v1}, Lim/tpelyyftgw/messenger/NotificationCenter;->addObserver(Ljava/lang/Object;I)V
.line 654
iget v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v0}, Lim/tpelyyftgw/tgnet/ConnectionsManager;->getInstance(I)Lim/tpelyyftgw/tgnet/ConnectionsManager;
move-result-object v0
const/4 v1, 0x0
invoke-virtual {v0, v1, v1}, Lim/tpelyyftgw/tgnet/ConnectionsManager;->setAppPaused(ZZ)V
.line 655
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->createController()Lim/tpelyyftgw/messenger/voip/VoIPController;
move-result-object v0
iput-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
.line 656
invoke-virtual {v0, p0}, Lim/tpelyyftgw/messenger/voip/VoIPController;->setConnectionStateListener(Lim/tpelyyftgw/messenger/voip/VoIPController$ConnectionStateListener;)V
.line 657
return-void
.end method
.method public isBluetoothHeadsetConnected()Z
.registers 2
.line 859
sget-boolean v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
if-eqz v0, :cond_20
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
if-eqz v0, :cond_20
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->getCallAudioState()Landroid/telecom/CallAudioState;
move-result-object v0
if-eqz v0, :cond_20
.line 860
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->getCallAudioState()Landroid/telecom/CallAudioState;
move-result-object v0
invoke-virtual {v0}, Landroid/telecom/CallAudioState;->getSupportedRouteMask()I
move-result v0
and-int/lit8 v0, v0, 0x2
if-eqz v0, :cond_1e
const/4 v0, 0x1
goto :goto_1f
:cond_1e
const/4 v0, 0x0
:goto_1f
return v0
.line 861
:cond_20
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isBtHeadsetConnected:Z
return v0
.end method
.method protected isFinished()Z
.registers 3
.line 1395
iget v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentState:I
const/16 v1, 0xb
if-eq v0, v1, :cond_c
const/4 v1, 0x4
if-ne v0, v1, :cond_a
goto :goto_c
:cond_a
const/4 v0, 0x0
goto :goto_d
:cond_c
:goto_c
const/4 v0, 0x1
:goto_d
return v0
.end method
.method public isMicMute()Z
.registers 2
.line 288
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->micMute:Z
return v0
.end method
.method public isOutgoing()Z
.registers 2
.line 1323
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isOutgoing:Z
return v0
.end method
.method protected isRinging()Z
.registers 2
.line 1399
const/4 v0, 0x0
return v0
.end method
.method public isSpeakerphoneOn()Z
.registers 5
.line 394
sget-boolean v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
if-eqz v0, :cond_2b
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
if-eqz v0, :cond_2b
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->getCallAudioState()Landroid/telecom/CallAudioState;
move-result-object v0
if-eqz v0, :cond_2b
.line 395
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->getCallAudioState()Landroid/telecom/CallAudioState;
move-result-object v0
invoke-virtual {v0}, Landroid/telecom/CallAudioState;->getRoute()I
move-result v0
.line 396
.local v0, "route":I
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->hasEarpiece()Z
move-result v1
const/4 v2, 0x1
const/4 v3, 0x0
if-eqz v1, :cond_25
const/16 v1, 0x8
if-ne v0, v1, :cond_29
goto :goto_28
:cond_25
const/4 v1, 0x2
if-ne v0, v1, :cond_29
:goto_28
goto :goto_2a
:cond_29
const/4 v2, 0x0
:goto_2a
return v2
.line 397
.end local v0 # "route":I
:cond_2b
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->audioConfigured:Z
if-eqz v0, :cond_4b
sget-boolean v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
if-nez v0, :cond_4b
.line 398
const-string v0, "audio"
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/media/AudioManager;
.line 399
.local v0, "am":Landroid/media/AudioManager;
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->hasEarpiece()Z
move-result v1
if-eqz v1, :cond_46
invoke-virtual {v0}, Landroid/media/AudioManager;->isSpeakerphoneOn()Z
move-result v1
goto :goto_4a
:cond_46
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v1
:goto_4a
return v1
.line 401
.end local v0 # "am":Landroid/media/AudioManager;
:cond_4b
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->speakerphoneStateToSet:Z
return v0
.end method
.method public onAccuracyChanged(Landroid/hardware/Sensor;I)V
.registers 3
.param p1, "sensor" # Landroid/hardware/Sensor;
.param p2, "accuracy" # I
.line 856
return-void
.end method
.method public onAudioFocusChange(I)V
.registers 3
.param p1, "focusChange" # I
.line 865
const/4 v0, 0x1
if-ne p1, v0, :cond_6
.line 866
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->haveAudioFocus:Z
goto :goto_9
.line 868
:cond_6
const/4 v0, 0x0
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->haveAudioFocus:Z
.line 870
:goto_9
return-void
.end method
.method public onConnectionStateChanged(I)V
.registers 11
.param p1, "newState" # I
.line 1216
const/4 v0, 0x4
if-ne p1, v0, :cond_7
.line 1217
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->callFailed()V
.line 1218
return-void
.line 1220
:cond_7
const/4 v0, 0x3
if-ne p1, v0, :cond_68
.line 1221
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->connectingSoundRunnable:Ljava/lang/Runnable;
if-eqz v0, :cond_14
.line 1222
invoke-static {v0}, Lim/tpelyyftgw/messenger/AndroidUtilities;->cancelRunOnUIThread(Ljava/lang/Runnable;)V
.line 1223
const/4 v0, 0x0
iput-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->connectingSoundRunnable:Ljava/lang/Runnable;
.line 1225
:cond_14
iget v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->spPlayID:I
const/4 v1, 0x0
if-eqz v0, :cond_20
.line 1226
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->soundPool:Landroid/media/SoundPool;
invoke-virtual {v2, v0}, Landroid/media/SoundPool;->stop(I)V
.line 1227
iput v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->spPlayID:I
.line 1229
:cond_20
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->wasEstablished:Z
if-nez v0, :cond_68
.line 1230
const/4 v0, 0x1
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->wasEstablished:Z
.line 1231
iget-boolean v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isProximityNear:Z
if-nez v2, :cond_3f
.line 1232
const-string/jumbo v2, "vibrator"
invoke-virtual {p0, v2}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroid/os/Vibrator;
.line 1233
.local v2, "vibrator":Landroid/os/Vibrator;
invoke-virtual {v2}, Landroid/os/Vibrator;->hasVibrator()Z
move-result v3
if-eqz v3, :cond_3f
.line 1234
const-wide/16 v3, 0x64
invoke-virtual {v2, v3, v4}, Landroid/os/Vibrator;->vibrate(J)V
.line 1236
.end local v2 # "vibrator":Landroid/os/Vibrator;
:cond_3f
new-instance v2, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$7;
invoke-direct {v2, p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$7;-><init>(Lim/tpelyyftgw/messenger/voip/VoIPBaseService;)V
const-wide/16 v3, 0x1388
invoke-static {v2, v3, v4}, Lim/tpelyyftgw/messenger/AndroidUtilities;->runOnUIThread(Ljava/lang/Runnable;J)V
.line 1246
iget-boolean v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isOutgoing:Z
if-eqz v2, :cond_5b
.line 1247
iget v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v2}, Lim/tpelyyftgw/messenger/StatsController;->getInstance(I)Lim/tpelyyftgw/messenger/StatsController;
move-result-object v2
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getStatsNetworkType()I
move-result v3
invoke-virtual {v2, v3, v1, v0}, Lim/tpelyyftgw/messenger/StatsController;->incrementSentItemsCount(III)V
goto :goto_68
.line 1249
:cond_5b
iget v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v2}, Lim/tpelyyftgw/messenger/StatsController;->getInstance(I)Lim/tpelyyftgw/messenger/StatsController;
move-result-object v2
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getStatsNetworkType()I
move-result v3
invoke-virtual {v2, v3, v1, v0}, Lim/tpelyyftgw/messenger/StatsController;->incrementReceivedItemsCount(III)V
.line 1252
:cond_68
:goto_68
const/4 v0, 0x5
if-ne p1, v0, :cond_86
.line 1253
iget v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->spPlayID:I
if-eqz v0, :cond_74
.line 1254
iget-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->soundPool:Landroid/media/SoundPool;
invoke-virtual {v1, v0}, Landroid/media/SoundPool;->stop(I)V
.line 1255
:cond_74
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->soundPool:Landroid/media/SoundPool;
iget v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->spConnectingId:I
const/high16 v4, 0x3f800000 # 1.0f
const/high16 v5, 0x3f800000 # 1.0f
const/4 v6, 0x0
const/4 v7, -0x1
const/high16 v8, 0x3f800000 # 1.0f
invoke-virtual/range {v2 .. v8}, Landroid/media/SoundPool;->play(IFFIIF)I
move-result v0
iput v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->spPlayID:I
.line 1257
:cond_86
invoke-virtual {p0, p1}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->dispatchStateChanged(I)V
.line 1258
return-void
.end method
.method protected onControllerPreRelease()V
.registers 1
.line 645
return-void
.end method
.method public onCreate()V
.registers 8
.line 661
invoke-super {p0}, Landroid/app/Service;->onCreate()V
.line 662
sget-boolean v0, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v0, :cond_c
.line 663
const-string v0, "=============== VoIPService STARTING ==============="
invoke-static {v0}, Lim/tpelyyftgw/messenger/FileLog;->d(Ljava/lang/String;)V
.line 665
:cond_c
const-string v0, "audio"
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/media/AudioManager;
.line 666
.local v0, "am":Landroid/media/AudioManager;
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x11
const/4 v3, 0x2
if-lt v1, v2, :cond_2f
const-string v1, "android.media.property.OUTPUT_FRAMES_PER_BUFFER"
invoke-virtual {v0, v1}, Landroid/media/AudioManager;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
if-eqz v2, :cond_2f
.line 667
invoke-virtual {v0, v1}, Landroid/media/AudioManager;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
.line 668
.local v1, "outFramesPerBuffer":I
invoke-static {v1}, Lim/tpelyyftgw/messenger/voip/VoIPController;->setNativeBufferSize(I)V
.line 669
.end local v1 # "outFramesPerBuffer":I
goto :goto_3b
.line 670
:cond_2f
const v1, 0xbb80
const/4 v2, 0x4
invoke-static {v1, v2, v3}, Landroid/media/AudioTrack;->getMinBufferSize(III)I
move-result v1
div-int/2addr v1, v3
invoke-static {v1}, Lim/tpelyyftgw/messenger/voip/VoIPController;->setNativeBufferSize(I)V
.line 673
:goto_3b
:try_start_3b
const-string v1, "power"
invoke-virtual {p0, v1}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/os/PowerManager;
const-string v2, "hchat-voip"
const/4 v4, 0x1
invoke-virtual {v1, v4, v2}, Landroid/os/PowerManager;->newWakeLock(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;
move-result-object v1
iput-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->cpuWakelock:Landroid/os/PowerManager$WakeLock;
.line 674
invoke-virtual {v1}, Landroid/os/PowerManager$WakeLock;->acquire()V
.line 676
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoAvailableOffCall()Z
move-result v1
if-eqz v1, :cond_5a
invoke-static {}, Landroid/bluetooth/BluetoothAdapter;->getDefaultAdapter()Landroid/bluetooth/BluetoothAdapter;
move-result-object v1
goto :goto_5b
:cond_5a
const/4 v1, 0x0
:goto_5b
iput-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->btAdapter:Landroid/bluetooth/BluetoothAdapter;
.line 678
new-instance v1, Landroid/content/IntentFilter;
invoke-direct {v1}, Landroid/content/IntentFilter;-><init>()V
.line 679
.local v1, "filter":Landroid/content/IntentFilter;
const-string v2, "android.net.conn.CONNECTIVITY_CHANGE"
invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 680
sget-boolean v2, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
if-nez v2, :cond_83
.line 681
const-string v2, "android.intent.action.HEADSET_PLUG"
invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 682
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->btAdapter:Landroid/bluetooth/BluetoothAdapter;
if-eqz v2, :cond_7e
.line 683
const-string v2, "android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED"
invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 684
const-string v2, "android.media.ACTION_SCO_AUDIO_STATE_UPDATED"
invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 686
:cond_7e
const-string v2, "android.intent.action.PHONE_STATE"
invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 688
:cond_83
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->receiver:Landroid/content/BroadcastReceiver;
invoke-virtual {p0, v2, v1}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
.line 690
new-instance v2, Landroid/media/SoundPool;
const/4 v5, 0x0
invoke-direct {v2, v4, v5, v5}, Landroid/media/SoundPool;-><init>(III)V
iput-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->soundPool:Landroid/media/SoundPool;
.line 691
const v6, 0x7f0e000e
invoke-virtual {v2, p0, v6, v4}, Landroid/media/SoundPool;->load(Landroid/content/Context;II)I
move-result v2
iput v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->spConnectingId:I
.line 692
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->soundPool:Landroid/media/SoundPool;
const v6, 0x7f0e0011
invoke-virtual {v2, p0, v6, v4}, Landroid/media/SoundPool;->load(Landroid/content/Context;II)I
move-result v2
iput v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->spRingbackID:I
.line 693
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->soundPool:Landroid/media/SoundPool;
const v6, 0x7f0e0010
invoke-virtual {v2, p0, v6, v4}, Landroid/media/SoundPool;->load(Landroid/content/Context;II)I
move-result v2
iput v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->spFailedID:I
.line 694
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->soundPool:Landroid/media/SoundPool;
const v6, 0x7f0e000f
invoke-virtual {v2, p0, v6, v4}, Landroid/media/SoundPool;->load(Landroid/content/Context;II)I
move-result v2
iput v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->spEndId:I
.line 695
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->soundPool:Landroid/media/SoundPool;
const v6, 0x7f0e000d
invoke-virtual {v2, p0, v6, v4}, Landroid/media/SoundPool;->load(Landroid/content/Context;II)I
move-result v2
iput v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->spBusyId:I
.line 697
new-instance v2, Landroid/content/ComponentName;
const-class v6, Lim/tpelyyftgw/messenger/voip/VoIPMediaButtonReceiver;
invoke-direct {v2, p0, v6}, Landroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
invoke-virtual {v0, v2}, Landroid/media/AudioManager;->registerMediaButtonEventReceiver(Landroid/content/ComponentName;)V
.line 699
sget-boolean v2, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
if-nez v2, :cond_102
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->btAdapter:Landroid/bluetooth/BluetoothAdapter;
if-eqz v2, :cond_102
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->btAdapter:Landroid/bluetooth/BluetoothAdapter;
invoke-virtual {v2}, Landroid/bluetooth/BluetoothAdapter;->isEnabled()Z
move-result v2
if-eqz v2, :cond_102
.line 700
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->btAdapter:Landroid/bluetooth/BluetoothAdapter;
invoke-virtual {v2, v4}, Landroid/bluetooth/BluetoothAdapter;->getProfileConnectionState(I)I
move-result v2
.line 701
.local v2, "headsetState":I
if-ne v2, v3, :cond_e8
goto :goto_e9
:cond_e8
const/4 v4, 0x0
:goto_e9
invoke-virtual {p0, v4}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->updateBluetoothHeadsetState(Z)V
.line 704
iget-object v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stateListeners:Ljava/util/ArrayList;
invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v3
:goto_f2
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-eqz v4, :cond_102
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
.line 705
.local v4, "l":Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
invoke-interface {v4}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;->onAudioSettingsChanged()V
:try_end_101
.catch Ljava/lang/Exception; {:try_start_3b .. :try_end_101} :catch_103
.end local v4 # "l":Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
goto :goto_f2
.line 713
.end local v1 # "filter":Landroid/content/IntentFilter;
.end local v2 # "headsetState":I
:cond_102
goto :goto_110
.line 708
:catch_103
move-exception v1
.line 709
.local v1, "x":Ljava/lang/Exception;
sget-boolean v2, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v2, :cond_10d
.line 710
const-string v2, "error initializing voip controller"
invoke-static {v2, v1}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 712
:cond_10d
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->callFailed()V
.line 714
.end local v1 # "x":Ljava/lang/Exception;
:goto_110
return-void
.end method
.method public onDestroy()V
.registers 11
.line 573
sget-boolean v0, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v0, :cond_9
.line 574
const-string v0, "=============== VoIPService STOPPING ==============="
invoke-static {v0}, Lim/tpelyyftgw/messenger/FileLog;->d(Ljava/lang/String;)V
.line 576
:cond_9
const/4 v0, 0x1
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stopForeground(Z)V
.line 577
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stopRinging()V
.line 578
iget v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v1}, Lim/tpelyyftgw/messenger/NotificationCenter;->getInstance(I)Lim/tpelyyftgw/messenger/NotificationCenter;
move-result-object v1
sget v2, Lim/tpelyyftgw/messenger/NotificationCenter;->appDidLogout:I
invoke-virtual {v1, p0, v2}, Lim/tpelyyftgw/messenger/NotificationCenter;->removeObserver(Ljava/lang/Object;I)V
.line 579
const-string/jumbo v1, "sensor"
invoke-virtual {p0, v1}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/hardware/SensorManager;
.line 580
.local v1, "sm":Landroid/hardware/SensorManager;
const/16 v2, 0x8
invoke-virtual {v1, v2}, Landroid/hardware/SensorManager;->getDefaultSensor(I)Landroid/hardware/Sensor;
move-result-object v2
.line 581
.local v2, "proximity":Landroid/hardware/Sensor;
if-eqz v2, :cond_2f
.line 582
invoke-virtual {v1, p0}, Landroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;)V
.line 584
:cond_2f
iget-object v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->proximityWakelock:Landroid/os/PowerManager$WakeLock;
if-eqz v3, :cond_3e
invoke-virtual {v3}, Landroid/os/PowerManager$WakeLock;->isHeld()Z
move-result v3
if-eqz v3, :cond_3e
.line 585
iget-object v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->proximityWakelock:Landroid/os/PowerManager$WakeLock;
invoke-virtual {v3}, Landroid/os/PowerManager$WakeLock;->release()V
.line 587
:cond_3e
iget-object v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->receiver:Landroid/content/BroadcastReceiver;
invoke-virtual {p0, v3}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
.line 588
iget-object v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->timeoutRunnable:Ljava/lang/Runnable;
const/4 v4, 0x0
if-eqz v3, :cond_4d
.line 589
invoke-static {v3}, Lim/tpelyyftgw/messenger/AndroidUtilities;->cancelRunOnUIThread(Ljava/lang/Runnable;)V
.line 590
iput-object v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->timeoutRunnable:Ljava/lang/Runnable;
.line 592
:cond_4d
invoke-super {p0}, Landroid/app/Service;->onDestroy()V
.line 593
sput-object v4, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->sharedInstance:Lim/tpelyyftgw/messenger/voip/VoIPBaseService;
.line 594
new-instance v3, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$5;
invoke-direct {v3, p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$5;-><init>(Lim/tpelyyftgw/messenger/voip/VoIPBaseService;)V
invoke-static {v3}, Lim/tpelyyftgw/messenger/AndroidUtilities;->runOnUIThread(Ljava/lang/Runnable;)V
.line 600
iget-object v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
if-eqz v3, :cond_8a
iget-boolean v5, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controllerStarted:Z
if-eqz v5, :cond_8a
.line 601
invoke-virtual {v3}, Lim/tpelyyftgw/messenger/voip/VoIPController;->getCallDuration()J
move-result-wide v5
iput-wide v5, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->lastKnownDuration:J
.line 602
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->updateStats()V
.line 603
iget v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v3}, Lim/tpelyyftgw/messenger/StatsController;->getInstance(I)Lim/tpelyyftgw/messenger/StatsController;
move-result-object v3
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getStatsNetworkType()I
move-result v5
iget-wide v6, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->lastKnownDuration:J
const-wide/16 v8, 0x3e8
div-long/2addr v6, v8
long-to-int v7, v6
rem-int/lit8 v7, v7, 0x5
invoke-virtual {v3, v5, v7}, Lim/tpelyyftgw/messenger/StatsController;->incrementTotalCallsTime(II)V
.line 604
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->onControllerPreRelease()V
.line 605
iget-object v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
invoke-virtual {v3}, Lim/tpelyyftgw/messenger/voip/VoIPController;->release()V
.line 606
iput-object v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
.line 608
:cond_8a
iget-object v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->cpuWakelock:Landroid/os/PowerManager$WakeLock;
invoke-virtual {v3}, Landroid/os/PowerManager$WakeLock;->release()V
.line 609
const-string v3, "audio"
invoke-virtual {p0, v3}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Landroid/media/AudioManager;
.line 610
.local v3, "am":Landroid/media/AudioManager;
sget-boolean v4, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
const/4 v5, 0x0
if-nez v4, :cond_bb
.line 611
iget-boolean v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isBtHeadsetConnected:Z
if-eqz v4, :cond_aa
iget-boolean v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->playingSound:Z
if-nez v4, :cond_aa
.line 612
invoke-virtual {v3}, Landroid/media/AudioManager;->stopBluetoothSco()V
.line 613
invoke-virtual {v3, v5}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V
.line 616
:cond_aa
:try_start_aa
invoke-virtual {v3, v5}, Landroid/media/AudioManager;->setMode(I)V
:try_end_ad
.catch Ljava/lang/SecurityException; {:try_start_aa .. :try_end_ad} :catch_ae
.line 621
goto :goto_b8
.line 617
:catch_ae
move-exception v4
.line 618
.local v4, "x":Ljava/lang/SecurityException;
sget-boolean v6, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v6, :cond_b8
.line 619
const-string v6, "Error setting audio more to normal"
invoke-static {v6, v4}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 622
.end local v4 # "x":Ljava/lang/SecurityException;
:cond_b8
:goto_b8
invoke-virtual {v3, p0}, Landroid/media/AudioManager;->abandonAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;)I
.line 624
:cond_bb
new-instance v4, Landroid/content/ComponentName;
const-class v6, Lim/tpelyyftgw/messenger/voip/VoIPMediaButtonReceiver;
invoke-direct {v4, p0, v6}, Landroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
invoke-virtual {v3, v4}, Landroid/media/AudioManager;->unregisterMediaButtonEventReceiver(Landroid/content/ComponentName;)V
.line 625
iget-boolean v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->haveAudioFocus:Z
if-eqz v4, :cond_cc
.line 626
invoke-virtual {v3, p0}, Landroid/media/AudioManager;->abandonAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;)I
.line 628
:cond_cc
iget-boolean v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->playingSound:Z
if-nez v4, :cond_d5
.line 629
iget-object v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->soundPool:Landroid/media/SoundPool;
invoke-virtual {v4}, Landroid/media/SoundPool;->release()V
.line 631
:cond_d5
sget-boolean v4, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
if-eqz v4, :cond_f1
.line 632
iget-boolean v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->didDeleteConnectionServiceContact:Z
if-nez v4, :cond_e6
.line 633
iget v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v4}, Lim/tpelyyftgw/messenger/ContactsController;->getInstance(I)Lim/tpelyyftgw/messenger/ContactsController;
move-result-object v4
invoke-virtual {v4}, Lim/tpelyyftgw/messenger/ContactsController;->deleteConnectionServiceContact()V
.line 634
:cond_e6
iget-object v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
if-eqz v4, :cond_f1
iget-boolean v6, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->playingSound:Z
if-nez v6, :cond_f1
.line 635
invoke-virtual {v4}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->destroy()V
.line 639
:cond_f1
iget v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v4}, Lim/tpelyyftgw/tgnet/ConnectionsManager;->getInstance(I)Lim/tpelyyftgw/tgnet/ConnectionsManager;
move-result-object v4
invoke-virtual {v4, v0, v5}, Lim/tpelyyftgw/tgnet/ConnectionsManager;->setAppPaused(ZZ)V
.line 640
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v4
sput-wide v4, Lim/tpelyyftgw/ui/components/voip/VoIPHelper;->lastCallTime:J
.line 641
return-void
.end method
.method public onSensorChanged(Landroid/hardware/SensorEvent;)V
.registers 7
.param p1, "event" # Landroid/hardware/SensorEvent;
.line 829
iget-object v0, p1, Landroid/hardware/SensorEvent;->sensor:Landroid/hardware/Sensor;
invoke-virtual {v0}, Landroid/hardware/Sensor;->getType()I
move-result v0
const/16 v1, 0x8
if-ne v0, v1, :cond_74
.line 830
const-string v0, "audio"
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/media/AudioManager;
.line 831
.local v0, "am":Landroid/media/AudioManager;
iget-boolean v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isHeadsetPlugged:Z
if-nez v1, :cond_73
invoke-virtual {v0}, Landroid/media/AudioManager;->isSpeakerphoneOn()Z
move-result v1
if-nez v1, :cond_73
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isBluetoothHeadsetConnected()Z
move-result v1
if-eqz v1, :cond_29
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v1
if-eqz v1, :cond_29
goto :goto_73
.line 834
:cond_29
iget-object v1, p1, Landroid/hardware/SensorEvent;->values:[F
const/4 v2, 0x0
aget v1, v1, v2
iget-object v3, p1, Landroid/hardware/SensorEvent;->sensor:Landroid/hardware/Sensor;
invoke-virtual {v3}, Landroid/hardware/Sensor;->getMaximumRange()F
move-result v3
const/high16 v4, 0x40400000 # 3.0f
invoke-static {v3, v4}, Ljava/lang/Math;->min(FF)F
move-result v3
const/4 v4, 0x1
cmpg-float v1, v1, v3
if-gez v1, :cond_40
const/4 v2, 0x1
:cond_40
move v1, v2
.line 835
.local v1, "newIsNear":Z
iget-boolean v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isProximityNear:Z
if-eq v1, v2, :cond_74
.line 836
sget-boolean v2, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v2, :cond_5e
.line 837
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v3, "proximity "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Lim/tpelyyftgw/messenger/FileLog;->d(Ljava/lang/String;)V
.line 839
:cond_5e
iput-boolean v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isProximityNear:Z
.line 841
if-eqz v1, :cond_68
.line 842
:try_start_62
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->proximityWakelock:Landroid/os/PowerManager$WakeLock;
invoke-virtual {v2}, Landroid/os/PowerManager$WakeLock;->acquire()V
goto :goto_6d
.line 844
:cond_68
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->proximityWakelock:Landroid/os/PowerManager$WakeLock;
invoke-virtual {v2, v4}, Landroid/os/PowerManager$WakeLock;->release(I)V
:try_end_6d
.catch Ljava/lang/Exception; {:try_start_62 .. :try_end_6d} :catch_6e
.line 848
:goto_6d
goto :goto_74
.line 846
:catch_6e
move-exception v2
.line 847
.local v2, "x":Ljava/lang/Exception;
invoke-static {v2}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
goto :goto_74
.line 832
.end local v1 # "newIsNear":Z
.end local v2 # "x":Ljava/lang/Exception;
:cond_73
:goto_73
return-void
.line 851
.end local v0 # "am":Landroid/media/AudioManager;
:cond_74
:goto_74
return-void
.end method
.method public onSignalBarCountChanged(I)V
.registers 4
.param p1, "newCount" # I
.line 1262
iput p1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->signalBarCount:I
.line 1263
const/4 v0, 0x0
.local v0, "a":I
:goto_3
iget-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stateListeners:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
if-ge v0, v1, :cond_19
.line 1264
iget-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stateListeners:Ljava/util/ArrayList;
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
.line 1265
.local v1, "l":Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
invoke-interface {v1, p1}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;->onSignalBarsCountChanged(I)V
.line 1263
.end local v1 # "l":Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
add-int/lit8 v0, v0, 0x1
goto :goto_3
.line 1267
.end local v0 # "a":I
:cond_19
return-void
.end method
.method public registerStateListener(Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;)V
.registers 3
.param p1, "l" # Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
.line 270
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stateListeners:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 271
iget v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentState:I
if-eqz v0, :cond_c
.line 272
invoke-interface {p1, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;->onStateChanged(I)V
.line 273
:cond_c
iget v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->signalBarCount:I
if-eqz v0, :cond_13
.line 274
invoke-interface {p1, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;->onSignalBarsCountChanged(I)V
.line 275
:cond_13
return-void
.end method
.method public setMicMute(Z)V
.registers 3
.param p1, "mute" # Z
.line 282
iput-boolean p1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->micMute:Z
.line 283
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
if-eqz v0, :cond_9
.line 284
invoke-virtual {v0, p1}, Lim/tpelyyftgw/messenger/voip/VoIPController;->setMicMute(Z)V
.line 285
:cond_9
return-void
.end method
.method protected showIncomingNotification(Ljava/lang/String;Ljava/lang/CharSequence;Lim/tpelyyftgw/tgnet/TLObject;Ljava/util/List;ILjava/lang/Class;)V
.registers 32
.param p1, "name" # Ljava/lang/String;
.param p2, "subText" # Ljava/lang/CharSequence;
.param p3, "userOrChat" # Lim/tpelyyftgw/tgnet/TLObject;
.param p5, "additionalMemberCount" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/lang/CharSequence;",
"Lim/tpelyyftgw/tgnet/TLObject;",
"Ljava/util/List<",
"Lim/tpelyyftgw/tgnet/TLRPC$User;",
">;I",
"Ljava/lang/Class<",
"+",
"Landroid/app/Activity;",
">;)V"
}
.end annotation
.line 1027
.local p4, "groupUsers":Ljava/util/List;, "Ljava/util/List<Lim/tpelyyftgw/tgnet/TLRPC$User;>;"
.local p6, "activityOnClick":Ljava/lang/Class;, "Ljava/lang/Class<+Landroid/app/Activity;>;"
move-object/from16 v0, p0
move-object/from16 v1, p1
move-object/from16 v2, p2
move-object/from16 v3, p3
new-instance v4, Landroid/content/Intent;
move-object/from16 v5, p6
invoke-direct {v4, v0, v5}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 1028
.local v4, "intent":Landroid/content/Intent;
const/high16 v6, 0x30000000
invoke-virtual {v4, v6}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
.line 1029
new-instance v6, Landroid/app/Notification$Builder;
invoke-direct {v6, v0}, Landroid/app/Notification$Builder;-><init>(Landroid/content/Context;)V
.line 1030
const v7, 0x7f0f123f
const-string v8, "VoipInCallBranding"
invoke-static {v8, v7}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v9
invoke-virtual {v6, v9}, Landroid/app/Notification$Builder;->setContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
move-result-object v6
.line 1031
invoke-virtual {v6, v1}, Landroid/app/Notification$Builder;->setContentText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
move-result-object v6
.line 1032
const v9, 0x7f0d01ad
invoke-virtual {v6, v9}, Landroid/app/Notification$Builder;->setSmallIcon(I)Landroid/app/Notification$Builder;
move-result-object v6
.line 1033
invoke-virtual {v6, v2}, Landroid/app/Notification$Builder;->setSubText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
move-result-object v6
.line 1034
const/4 v9, 0x0
invoke-static {v0, v9, v4, v9}, Landroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v10
invoke-virtual {v6, v10}, Landroid/app/Notification$Builder;->setContentIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;
move-result-object v6
.line 1035
.local v6, "builder":Landroid/app/Notification$Builder;
const-string v10, "content://im.tpelyyftgw.messenger.call_sound_provider/start_ringing"
invoke-static {v10}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v10
.line 1036
.local v10, "soundProviderUri":Landroid/net/Uri;
sget v11, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v14, 0x1a
if-lt v11, v14, :cond_139
.line 1037
invoke-static {}, Lim/tpelyyftgw/messenger/MessagesController;->getGlobalNotificationsSettings()Landroid/content/SharedPreferences;
move-result-object v11
.line 1038
.local v11, "nprefs":Landroid/content/SharedPreferences;
const-string v14, "calls_notification_channel"
invoke-interface {v11, v14, v9}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I
move-result v15
.line 1039
.local v15, "chanIndex":I
const-string v7, "notification"
invoke-virtual {v0, v7}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v7
check-cast v7, Landroid/app/NotificationManager;
.line 1040
.local v7, "nm":Landroid/app/NotificationManager;
new-instance v12, Ljava/lang/StringBuilder;
invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
const-string v13, "incoming_calls"
invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v12, v15}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v12
invoke-virtual {v7, v12}, Landroid/app/NotificationManager;->getNotificationChannel(Ljava/lang/String;)Landroid/app/NotificationChannel;
move-result-object v12
.line 1041
.local v12, "oldChannel":Landroid/app/NotificationChannel;
if-eqz v12, :cond_7a
.line 1042
invoke-virtual {v12}, Landroid/app/NotificationChannel;->getId()Ljava/lang/String;
move-result-object v13
invoke-virtual {v7, v13}, Landroid/app/NotificationManager;->deleteNotificationChannel(Ljava/lang/String;)V
.line 1043
:cond_7a
new-instance v13, Ljava/lang/StringBuilder;
invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
const-string v9, "incoming_calls2"
invoke-virtual {v13, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13, v15}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v13
invoke-virtual {v7, v13}, Landroid/app/NotificationManager;->getNotificationChannel(Ljava/lang/String;)Landroid/app/NotificationChannel;
move-result-object v13
.line 1044
.local v13, "existingChannel":Landroid/app/NotificationChannel;
const/16 v18, 0x1
.line 1045
.local v18, "needCreate":Z
const/4 v5, 0x4
if-eqz v13, :cond_df
.line 1046
move-object/from16 v19, v12
.end local v12 # "oldChannel":Landroid/app/NotificationChannel;
.local v19, "oldChannel":Landroid/app/NotificationChannel;
invoke-virtual {v13}, Landroid/app/NotificationChannel;->getImportance()I
move-result v12
if-lt v12, v5, :cond_b6
invoke-virtual {v13}, Landroid/app/NotificationChannel;->getSound()Landroid/net/Uri;
move-result-object v12
invoke-virtual {v10, v12}, Landroid/net/Uri;->equals(Ljava/lang/Object;)Z
move-result v12
if-eqz v12, :cond_b6
invoke-virtual {v13}, Landroid/app/NotificationChannel;->getVibrationPattern()[J
move-result-object v12
if-nez v12, :cond_b6
invoke-virtual {v13}, Landroid/app/NotificationChannel;->shouldVibrate()Z
move-result v12
if-eqz v12, :cond_b3
goto :goto_b6
.line 1053
:cond_b3
const/16 v18, 0x0
goto :goto_e1
.line 1047
:cond_b6
:goto_b6
sget-boolean v12, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v12, :cond_bf
.line 1048
const-string v12, "User messed up the notification channel; deleting it and creating a proper one"
invoke-static {v12}, Lim/tpelyyftgw/messenger/FileLog;->d(Ljava/lang/String;)V
.line 1049
:cond_bf
new-instance v12, Ljava/lang/StringBuilder;
invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v12, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v12, v15}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v12
invoke-virtual {v7, v12}, Landroid/app/NotificationManager;->deleteNotificationChannel(Ljava/lang/String;)V
.line 1050
add-int/lit8 v15, v15, 0x1
.line 1051
invoke-interface {v11}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object v12
invoke-interface {v12, v14, v15}, Landroid/content/SharedPreferences$Editor;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor;
move-result-object v12
invoke-interface {v12}, Landroid/content/SharedPreferences$Editor;->commit()Z
goto :goto_e1
.line 1045
.end local v19 # "oldChannel":Landroid/app/NotificationChannel;
.restart local v12 # "oldChannel":Landroid/app/NotificationChannel;
:cond_df
move-object/from16 v19, v12
.line 1056
.end local v12 # "oldChannel":Landroid/app/NotificationChannel;
.restart local v19 # "oldChannel":Landroid/app/NotificationChannel;
:goto_e1
if-eqz v18, :cond_122
.line 1057
new-instance v12, Landroid/media/AudioAttributes$Builder;
invoke-direct {v12}, Landroid/media/AudioAttributes$Builder;-><init>()V
const/4 v14, 0x6
.line 1058
invoke-virtual {v12, v14}, Landroid/media/AudioAttributes$Builder;->setUsage(I)Landroid/media/AudioAttributes$Builder;
move-result-object v12
.line 1059
invoke-virtual {v12}, Landroid/media/AudioAttributes$Builder;->build()Landroid/media/AudioAttributes;
move-result-object v12
.line 1060
.local v12, "attrs":Landroid/media/AudioAttributes;
new-instance v14, Landroid/app/NotificationChannel;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v15}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
move-object/from16 v21, v11
.end local v11 # "nprefs":Landroid/content/SharedPreferences;
.local v21, "nprefs":Landroid/content/SharedPreferences;
const v11, 0x7f0f0798
move-object/from16 v22, v13
.end local v13 # "existingChannel":Landroid/app/NotificationChannel;
.local v22, "existingChannel":Landroid/app/NotificationChannel;
const-string v13, "IncomingCalls"
invoke-static {v13, v11}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v11
const/4 v13, 0x4
invoke-direct {v14, v5, v11, v13}, Landroid/app/NotificationChannel;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;I)V
move-object v5, v14
.line 1061
.local v5, "chan":Landroid/app/NotificationChannel;
invoke-virtual {v5, v10, v12}, Landroid/app/NotificationChannel;->setSound(Landroid/net/Uri;Landroid/media/AudioAttributes;)V
.line 1062
const/4 v11, 0x0
invoke-virtual {v5, v11}, Landroid/app/NotificationChannel;->enableVibration(Z)V
.line 1063
invoke-virtual {v5, v11}, Landroid/app/NotificationChannel;->enableLights(Z)V
.line 1064
invoke-virtual {v7, v5}, Landroid/app/NotificationManager;->createNotificationChannel(Landroid/app/NotificationChannel;)V
goto :goto_126
.line 1056
.end local v5 # "chan":Landroid/app/NotificationChannel;
.end local v12 # "attrs":Landroid/media/AudioAttributes;
.end local v21 # "nprefs":Landroid/content/SharedPreferences;
.end local v22 # "existingChannel":Landroid/app/NotificationChannel;
.restart local v11 # "nprefs":Landroid/content/SharedPreferences;
.restart local v13 # "existingChannel":Landroid/app/NotificationChannel;
:cond_122
move-object/from16 v21, v11
move-object/from16 v22, v13
.line 1066
.end local v11 # "nprefs":Landroid/content/SharedPreferences;
.end local v13 # "existingChannel":Landroid/app/NotificationChannel;
.restart local v21 # "nprefs":Landroid/content/SharedPreferences;
.restart local v22 # "existingChannel":Landroid/app/NotificationChannel;
:goto_126
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v15}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-virtual {v6, v5}, Landroid/app/Notification$Builder;->setChannelId(Ljava/lang/String;)Landroid/app/Notification$Builder;
.end local v7 # "nm":Landroid/app/NotificationManager;
.end local v15 # "chanIndex":I
.end local v18 # "needCreate":Z
.end local v19 # "oldChannel":Landroid/app/NotificationChannel;
.end local v21 # "nprefs":Landroid/content/SharedPreferences;
.end local v22 # "existingChannel":Landroid/app/NotificationChannel;
goto :goto_144
.line 1067
:cond_139
sget v5, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v7, 0x15
if-lt v5, v7, :cond_144
.line 1068
const/4 v5, 0x2
invoke-virtual {v6, v10, v5}, Landroid/app/Notification$Builder;->setSound(Landroid/net/Uri;I)Landroid/app/Notification$Builder;
goto :goto_145
.line 1067
:cond_144
:goto_144
nop
.line 1070
:goto_145
new-instance v5, Landroid/content/Intent;
const-class v7, Lim/tpelyyftgw/messenger/voip/VoIPActionsReceiver;
invoke-direct {v5, v0, v7}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 1071
.local v5, "endIntent":Landroid/content/Intent;
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getPackageName()Ljava/lang/String;
move-result-object v9
invoke-virtual {v7, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v9, ".DECLINE_CALL"
invoke-virtual {v7, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
invoke-virtual {v5, v7}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
.line 1072
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getCallID()J
move-result-wide v11
const-string v7, "call_id"
invoke-virtual {v5, v7, v11, v12}, Landroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent;
.line 1073
const v9, 0x7f0f1237
const-string v11, "VoipDeclineCall"
invoke-static {v11, v9}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v12
.line 1074
.local v12, "endTitle":Ljava/lang/CharSequence;
sget v13, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v14, 0x18
if-lt v13, v14, :cond_196
.line 1075
new-instance v13, Landroid/text/SpannableString;
invoke-direct {v13, v12}, Landroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;)V
move-object v12, v13
.line 1076
move-object v13, v12
check-cast v13, Landroid/text/SpannableString;
new-instance v15, Landroid/text/style/ForegroundColorSpan;
const v9, -0xbbcca
invoke-direct {v15, v9}, Landroid/text/style/ForegroundColorSpan;-><init>(I)V
invoke-interface {v12}, Ljava/lang/CharSequence;->length()I
move-result v9
const/4 v14, 0x0
invoke-virtual {v13, v15, v14, v9, v14}, Landroid/text/SpannableString;->setSpan(Ljava/lang/Object;III)V
goto :goto_197
.line 1074
:cond_196
const/4 v14, 0x0
.line 1078
:goto_197
const/high16 v9, 0x10000000
invoke-static {v0, v14, v5, v9}, Landroid/app/PendingIntent;->getBroadcast(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v13
.line 1079
.local v13, "endPendingIntent":Landroid/app/PendingIntent;
const v14, 0x7f08017a
invoke-virtual {v6, v14, v12, v13}, Landroid/app/Notification$Builder;->addAction(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;
.line 1080
new-instance v14, Landroid/content/Intent;
const-class v15, Lim/tpelyyftgw/messenger/voip/VoIPActionsReceiver;
invoke-direct {v14, v0, v15}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 1081
.local v14, "answerIntent":Landroid/content/Intent;
new-instance v15, Ljava/lang/StringBuilder;
invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getPackageName()Ljava/lang/String;
move-result-object v9
invoke-virtual {v15, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v9, ".ANSWER_CALL"
invoke-virtual {v15, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
invoke-virtual {v14, v9}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
.line 1082
move-object v15, v10
.end local v10 # "soundProviderUri":Landroid/net/Uri;
.local v15, "soundProviderUri":Landroid/net/Uri;
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getCallID()J
move-result-wide v9
invoke-virtual {v14, v7, v9, v10}, Landroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent;
.line 1083
const v7, 0x7f0f122f
const-string v9, "VoipAnswerCall"
invoke-static {v9, v7}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v10
.line 1084
.local v10, "answerTitle":Ljava/lang/CharSequence;
sget v7, Landroid/os/Build$VERSION;->SDK_INT:I
move-object/from16 v22, v5
const/16 v5, 0x18
.end local v5 # "endIntent":Landroid/content/Intent;
.local v22, "endIntent":Landroid/content/Intent;
if-lt v7, v5, :cond_1fb
.line 1085
new-instance v5, Landroid/text/SpannableString;
invoke-direct {v5, v10}, Landroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;)V
move-object v10, v5
.line 1086
move-object v5, v10
check-cast v5, Landroid/text/SpannableString;
new-instance v7, Landroid/text/style/ForegroundColorSpan;
move-object/from16 v19, v12
.end local v12 # "endTitle":Ljava/lang/CharSequence;
.local v19, "endTitle":Ljava/lang/CharSequence;
const v12, -0xff5600
invoke-direct {v7, v12}, Landroid/text/style/ForegroundColorSpan;-><init>(I)V
invoke-interface {v10}, Ljava/lang/CharSequence;->length()I
move-result v12
move-object/from16 v23, v10
const/4 v10, 0x0
.end local v10 # "answerTitle":Ljava/lang/CharSequence;
.local v23, "answerTitle":Ljava/lang/CharSequence;
invoke-virtual {v5, v7, v10, v12, v10}, Landroid/text/SpannableString;->setSpan(Ljava/lang/Object;III)V
move-object/from16 v5, v23
goto :goto_1ff
.line 1084
.end local v19 # "endTitle":Ljava/lang/CharSequence;
.end local v23 # "answerTitle":Ljava/lang/CharSequence;
.restart local v10 # "answerTitle":Ljava/lang/CharSequence;
.restart local v12 # "endTitle":Ljava/lang/CharSequence;
:cond_1fb
move-object v5, v10
move-object/from16 v19, v12
const/4 v10, 0x0
.line 1088
.end local v10 # "answerTitle":Ljava/lang/CharSequence;
.end local v12 # "endTitle":Ljava/lang/CharSequence;
.local v5, "answerTitle":Ljava/lang/CharSequence;
.restart local v19 # "endTitle":Ljava/lang/CharSequence;
:goto_1ff
const/high16 v7, 0x10000000
invoke-static {v0, v10, v14, v7}, Landroid/app/PendingIntent;->getBroadcast(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v7
.line 1089
.local v7, "answerPendingIntent":Landroid/app/PendingIntent;
const v12, 0x7f080179
invoke-virtual {v6, v12, v5, v7}, Landroid/app/Notification$Builder;->addAction(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;
.line 1090
const/4 v12, 0x2
invoke-virtual {v6, v12}, Landroid/app/Notification$Builder;->setPriority(I)Landroid/app/Notification$Builder;
.line 1091
sget v12, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v10, 0x11
if-lt v12, v10, :cond_219
.line 1092
const/4 v10, 0x0
invoke-virtual {v6, v10}, Landroid/app/Notification$Builder;->setShowWhen(Z)Landroid/app/Notification$Builder;
.line 1094
:cond_219
sget v10, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v12, 0x15
if-lt v10, v12, :cond_267
.line 1095
const v10, -0xd35a20
invoke-virtual {v6, v10}, Landroid/app/Notification$Builder;->setColor(I)Landroid/app/Notification$Builder;
.line 1096
const/4 v10, 0x0
new-array v12, v10, [J
invoke-virtual {v6, v12}, Landroid/app/Notification$Builder;->setVibrate([J)Landroid/app/Notification$Builder;
.line 1097
const-string v12, "call"
invoke-virtual {v6, v12}, Landroid/app/Notification$Builder;->setCategory(Ljava/lang/String;)Landroid/app/Notification$Builder;
.line 1098
invoke-static {v0, v10, v4, v10}, Landroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v12
const/4 v10, 0x1
invoke-virtual {v6, v12, v10}, Landroid/app/Notification$Builder;->setFullScreenIntent(Landroid/app/PendingIntent;Z)Landroid/app/Notification$Builder;
.line 1099
instance-of v10, v3, Lim/tpelyyftgw/tgnet/TLRPC$User;
if-eqz v10, :cond_264
.line 1100
move-object v10, v3
check-cast v10, Lim/tpelyyftgw/tgnet/TLRPC$User;
.line 1101
.local v10, "user":Lim/tpelyyftgw/tgnet/TLRPC$User;
iget-object v12, v10, Lim/tpelyyftgw/tgnet/TLRPC$User;->phone:Ljava/lang/String;
invoke-static {v12}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v12
if-nez v12, :cond_261
.line 1102
new-instance v12, Ljava/lang/StringBuilder;
invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
move-object/from16 v20, v4
.end local v4 # "intent":Landroid/content/Intent;
.local v20, "intent":Landroid/content/Intent;
const-string/jumbo v4, "tel:"
invoke-virtual {v12, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v4, v10, Lim/tpelyyftgw/tgnet/TLRPC$User;->phone:Ljava/lang/String;
invoke-virtual {v12, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v6, v4}, Landroid/app/Notification$Builder;->addPerson(Ljava/lang/String;)Landroid/app/Notification$Builder;
goto :goto_269
.line 1101
.end local v20 # "intent":Landroid/content/Intent;
.restart local v4 # "intent":Landroid/content/Intent;
:cond_261
move-object/from16 v20, v4
.end local v4 # "intent":Landroid/content/Intent;
.restart local v20 # "intent":Landroid/content/Intent;
goto :goto_269
.line 1099
.end local v10 # "user":Lim/tpelyyftgw/tgnet/TLRPC$User;
.end local v20 # "intent":Landroid/content/Intent;
.restart local v4 # "intent":Landroid/content/Intent;
:cond_264
move-object/from16 v20, v4
.end local v4 # "intent":Landroid/content/Intent;
.restart local v20 # "intent":Landroid/content/Intent;
goto :goto_269
.line 1094
.end local v20 # "intent":Landroid/content/Intent;
.restart local v4 # "intent":Landroid/content/Intent;
:cond_267
move-object/from16 v20, v4
.line 1125
.end local v4 # "intent":Landroid/content/Intent;
.restart local v20 # "intent":Landroid/content/Intent;
:goto_269
invoke-virtual {v6}, Landroid/app/Notification$Builder;->getNotification()Landroid/app/Notification;
move-result-object v4
.line 1126
.local v4, "incomingNotification":Landroid/app/Notification;
sget v10, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v12, 0x15
if-lt v10, v12, :cond_366
.line 1127
new-instance v10, Landroid/widget/RemoteViews;
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getPackageName()Ljava/lang/String;
move-result-object v12
sget-boolean v17, Lim/tpelyyftgw/messenger/LocaleController;->isRTL:Z
if-eqz v17, :cond_286
const v17, 0x7f0c009e
move-object/from16 v23, v5
const v5, 0x7f0c009e
goto :goto_28e
:cond_286
const v17, 0x7f0c009d
move-object/from16 v23, v5
const v5, 0x7f0c009d
.end local v5 # "answerTitle":Ljava/lang/CharSequence;
.restart local v23 # "answerTitle":Ljava/lang/CharSequence;
:goto_28e
invoke-direct {v10, v12, v5}, Landroid/widget/RemoteViews;-><init>(Ljava/lang/String;I)V
move-object v5, v10
.line 1128
.local v5, "customView":Landroid/widget/RemoteViews;
const v10, 0x7f090318
invoke-virtual {v5, v10, v1}, Landroid/widget/RemoteViews;->setTextViewText(ILjava/lang/CharSequence;)V
.line 1129
const/4 v10, 0x1
.line 1130
.local v10, "subtitleVisible":Z
invoke-static/range {p2 .. p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v12
const v1, 0x7f09045d
if-eqz v12, :cond_2ea
.line 1131
const/16 v12, 0x8
invoke-virtual {v5, v1, v12}, Landroid/widget/RemoteViews;->setViewVisibility(II)V
.line 1132
const/4 v1, 0x0
.line 1133
.end local v10 # "subtitleVisible":Z
.local v1, "subtitleVisible":Z
invoke-static {}, Lim/tpelyyftgw/messenger/UserConfig;->getActivatedAccountsCount()I
move-result v10
const/4 v12, 0x1
if-le v10, v12, :cond_2d8
.line 1134
iget v8, v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v8}, Lim/tpelyyftgw/messenger/UserConfig;->getInstance(I)Lim/tpelyyftgw/messenger/UserConfig;
move-result-object v8
invoke-virtual {v8}, Lim/tpelyyftgw/messenger/UserConfig;->getCurrentUser()Lim/tpelyyftgw/tgnet/TLRPC$User;
move-result-object v8
.line 1135
.local v8, "self":Lim/tpelyyftgw/tgnet/TLRPC$User;
new-array v12, v12, [Ljava/lang/Object;
iget-object v10, v8, Lim/tpelyyftgw/tgnet/TLRPC$User;->first_name:Ljava/lang/String;
move/from16 v16, v1
.end local v1 # "subtitleVisible":Z
.local v16, "subtitleVisible":Z
iget-object v1, v8, Lim/tpelyyftgw/tgnet/TLRPC$User;->last_name:Ljava/lang/String;
invoke-static {v10, v1}, Lim/tpelyyftgw/messenger/ContactsController;->formatName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
const/4 v10, 0x0
aput-object v1, v12, v10
const-string v1, "VoipInCallBrandingWithName"
const v10, 0x7f0f1240
invoke-static {v1, v10, v12}, Lim/tpelyyftgw/messenger/LocaleController;->formatString(Ljava/lang/String;I[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
const v10, 0x7f0904a5
invoke-virtual {v5, v10, v1}, Landroid/widget/RemoteViews;->setTextViewText(ILjava/lang/CharSequence;)V
.line 1136
.end local v8 # "self":Lim/tpelyyftgw/tgnet/TLRPC$User;
goto :goto_2e7
.line 1137
.end local v16 # "subtitleVisible":Z
.restart local v1 # "subtitleVisible":Z
:cond_2d8
move/from16 v16, v1
const v10, 0x7f0904a5
.end local v1 # "subtitleVisible":Z
.restart local v16 # "subtitleVisible":Z
const v1, 0x7f0f123f
invoke-static {v8, v1}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v5, v10, v1}, Landroid/widget/RemoteViews;->setTextViewText(ILjava/lang/CharSequence;)V
.line 1149
:goto_2e7
move/from16 v1, v16
goto :goto_32e
.line 1140
.end local v16 # "subtitleVisible":Z
.restart local v10 # "subtitleVisible":Z
:cond_2ea
invoke-static {}, Lim/tpelyyftgw/messenger/UserConfig;->getActivatedAccountsCount()I
move-result v8
const/4 v12, 0x1
if-le v8, v12, :cond_31c
.line 1141
iget v8, v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v8}, Lim/tpelyyftgw/messenger/UserConfig;->getInstance(I)Lim/tpelyyftgw/messenger/UserConfig;
move-result-object v8
invoke-virtual {v8}, Lim/tpelyyftgw/messenger/UserConfig;->getCurrentUser()Lim/tpelyyftgw/tgnet/TLRPC$User;
move-result-object v8
.line 1142
.restart local v8 # "self":Lim/tpelyyftgw/tgnet/TLRPC$User;
new-array v12, v12, [Ljava/lang/Object;
iget-object v1, v8, Lim/tpelyyftgw/tgnet/TLRPC$User;->first_name:Ljava/lang/String;
move/from16 v24, v10
.end local v10 # "subtitleVisible":Z
.local v24, "subtitleVisible":Z
iget-object v10, v8, Lim/tpelyyftgw/tgnet/TLRPC$User;->last_name:Ljava/lang/String;
invoke-static {v1, v10}, Lim/tpelyyftgw/messenger/ContactsController;->formatName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
const/4 v10, 0x0
aput-object v1, v12, v10
const-string v1, "VoipAnsweringAsAccount"
const v10, 0x7f0f1230
invoke-static {v1, v10, v12}, Lim/tpelyyftgw/messenger/LocaleController;->formatString(Ljava/lang/String;I[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
const v10, 0x7f09045d
invoke-virtual {v5, v10, v1}, Landroid/widget/RemoteViews;->setTextViewText(ILjava/lang/CharSequence;)V
.line 1143
.end local v8 # "self":Lim/tpelyyftgw/tgnet/TLRPC$User;
move/from16 v10, v24
goto :goto_327
.line 1144
.end local v24 # "subtitleVisible":Z
.restart local v10 # "subtitleVisible":Z
:cond_31c
move/from16 v24, v10
const v10, 0x7f09045d
.end local v10 # "subtitleVisible":Z
.restart local v24 # "subtitleVisible":Z
const/16 v1, 0x8
invoke-virtual {v5, v10, v1}, Landroid/widget/RemoteViews;->setViewVisibility(II)V
.line 1145
const/4 v10, 0x0
.line 1147
.end local v24 # "subtitleVisible":Z
.restart local v10 # "subtitleVisible":Z
:goto_327
const v1, 0x7f0904a5
invoke-virtual {v5, v1, v2}, Landroid/widget/RemoteViews;->setTextViewText(ILjava/lang/CharSequence;)V
move v1, v10
.line 1149
.end local v10 # "subtitleVisible":Z
.restart local v1 # "subtitleVisible":Z
:goto_32e
invoke-virtual {v0, v3}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getRoundAvatarBitmap(Lim/tpelyyftgw/tgnet/TLObject;)Landroid/graphics/Bitmap;
move-result-object v8
.line 1150
.local v8, "avatar":Landroid/graphics/Bitmap;
const v10, 0x7f090076
const v12, 0x7f0f122f
invoke-static {v9, v12}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v9
invoke-virtual {v5, v10, v9}, Landroid/widget/RemoteViews;->setTextViewText(ILjava/lang/CharSequence;)V
.line 1151
const v9, 0x7f090118
const v10, 0x7f0f1237
invoke-static {v11, v10}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v10
invoke-virtual {v5, v9, v10}, Landroid/widget/RemoteViews;->setTextViewText(ILjava/lang/CharSequence;)V
.line 1152
const v9, 0x7f090351
invoke-virtual {v5, v9, v8}, Landroid/widget/RemoteViews;->setImageViewBitmap(ILandroid/graphics/Bitmap;)V
.line 1153
const v9, 0x7f090075
invoke-virtual {v5, v9, v7}, Landroid/widget/RemoteViews;->setOnClickPendingIntent(ILandroid/app/PendingIntent;)V
.line 1154
const v9, 0x7f090117
invoke-virtual {v5, v9, v13}, Landroid/widget/RemoteViews;->setOnClickPendingIntent(ILandroid/app/PendingIntent;)V
.line 1155
invoke-virtual {v6, v8}, Landroid/app/Notification$Builder;->setLargeIcon(Landroid/graphics/Bitmap;)Landroid/app/Notification$Builder;
.line 1181
iput-object v5, v4, Landroid/app/Notification;->bigContentView:Landroid/widget/RemoteViews;
iput-object v5, v4, Landroid/app/Notification;->headsUpContentView:Landroid/widget/RemoteViews;
goto :goto_368
.line 1126
.end local v1 # "subtitleVisible":Z
.end local v8 # "avatar":Landroid/graphics/Bitmap;
.end local v23 # "answerTitle":Ljava/lang/CharSequence;
.local v5, "answerTitle":Ljava/lang/CharSequence;
:cond_366
move-object/from16 v23, v5
.line 1183
.end local v5 # "answerTitle":Ljava/lang/CharSequence;
.restart local v23 # "answerTitle":Ljava/lang/CharSequence;
:goto_368
const/16 v1, 0xca
invoke-virtual {v0, v1, v4}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->startForeground(ILandroid/app/Notification;)V
.line 1184
return-void
.end method
.method protected abstract showNotification()V
.end method
.method protected showNotification(Ljava/lang/String;Lim/tpelyyftgw/tgnet/TLRPC$FileLocation;Ljava/lang/Class;)V
.registers 11
.param p1, "name" # Ljava/lang/String;
.param p2, "photo" # Lim/tpelyyftgw/tgnet/TLRPC$FileLocation;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Lim/tpelyyftgw/tgnet/TLRPC$FileLocation;",
"Ljava/lang/Class<",
"+",
"Landroid/app/Activity;",
">;)V"
}
.end annotation
.line 458
.local p3, "activity":Ljava/lang/Class;, "Ljava/lang/Class<+Landroid/app/Activity;>;"
new-instance v0, Landroid/content/Intent;
invoke-direct {v0, p0, p3}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 459
.local v0, "intent":Landroid/content/Intent;
const/high16 v1, 0x30000000
invoke-virtual {v0, v1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
.line 460
new-instance v1, Landroid/app/Notification$Builder;
invoke-direct {v1, p0}, Landroid/app/Notification$Builder;-><init>(Landroid/content/Context;)V
.line 461
const-string v2, "VoipOutgoingCall"
const v3, 0x7f0f124b
invoke-static {v2, v3}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Landroid/app/Notification$Builder;->setContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
move-result-object v1
.line 462
invoke-virtual {v1, p1}, Landroid/app/Notification$Builder;->setContentText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
move-result-object v1
.line 463
const v2, 0x7f0d01ad
invoke-virtual {v1, v2}, Landroid/app/Notification$Builder;->setSmallIcon(I)Landroid/app/Notification$Builder;
move-result-object v1
.line 464
const/4 v2, 0x0
invoke-static {p0, v2, v0, v2}, Landroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v3
invoke-virtual {v1, v3}, Landroid/app/Notification$Builder;->setContentIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;
move-result-object v1
.line 465
.local v1, "builder":Landroid/app/Notification$Builder;
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v4, 0x10
if-lt v3, v4, :cond_6e
.line 466
new-instance v3, Landroid/content/Intent;
const-class v4, Lim/tpelyyftgw/messenger/voip/VoIPActionsReceiver;
invoke-direct {v3, p0, v4}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 467
.local v3, "endIntent":Landroid/content/Intent;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getPackageName()Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v5, ".END_CALL"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
.line 468
const v4, 0x7f08017a
const v5, 0x7f0f1238
const-string v6, "VoipEndCall"
invoke-static {v6, v5}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v5
const/high16 v6, 0x8000000
invoke-static {p0, v2, v3, v6}, Landroid/app/PendingIntent;->getBroadcast(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v6
invoke-virtual {v1, v4, v5, v6}, Landroid/app/Notification$Builder;->addAction(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;
.line 469
const/4 v4, 0x2
invoke-virtual {v1, v4}, Landroid/app/Notification$Builder;->setPriority(I)Landroid/app/Notification$Builder;
.line 471
.end local v3 # "endIntent":Landroid/content/Intent;
:cond_6e
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v4, 0x11
if-lt v3, v4, :cond_77
.line 472
invoke-virtual {v1, v2}, Landroid/app/Notification$Builder;->setShowWhen(Z)Landroid/app/Notification$Builder;
.line 474
:cond_77
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v3, 0x15
if-lt v2, v3, :cond_83
.line 475
const v2, -0xd35a20
invoke-virtual {v1, v2}, Landroid/app/Notification$Builder;->setColor(I)Landroid/app/Notification$Builder;
.line 477
:cond_83
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v3, 0x1a
if-lt v2, v3, :cond_91
.line 478
invoke-static {}, Lim/tpelyyftgw/messenger/NotificationsController;->checkOtherNotificationsChannel()V
.line 479
sget-object v2, Lim/tpelyyftgw/messenger/NotificationsController;->OTHER_NOTIFICATIONS_CHANNEL:Ljava/lang/String;
invoke-virtual {v1, v2}, Landroid/app/Notification$Builder;->setChannelId(Ljava/lang/String;)Landroid/app/Notification$Builder;
.line 481
:cond_91
if-eqz p2, :cond_d9
.line 482
invoke-static {}, Lim/tpelyyftgw/messenger/ImageLoader;->getInstance()Lim/tpelyyftgw/messenger/ImageLoader;
move-result-object v2
const/4 v3, 0x0
const-string v4, "50_50"
invoke-virtual {v2, p2, v3, v4}, Lim/tpelyyftgw/messenger/ImageLoader;->getImageFromMemory(Lim/tpelyyftgw/tgnet/TLObject;Ljava/lang/String;Ljava/lang/String;)Landroid/graphics/drawable/BitmapDrawable;
move-result-object v2
.line 483
.local v2, "img":Landroid/graphics/drawable/BitmapDrawable;
if-eqz v2, :cond_a8
.line 484
invoke-virtual {v2}, Landroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;
move-result-object v3
invoke-virtual {v1, v3}, Landroid/app/Notification$Builder;->setLargeIcon(Landroid/graphics/Bitmap;)Landroid/app/Notification$Builder;
goto :goto_d9
.line 487
:cond_a8
const/high16 v3, 0x43200000 # 160.0f
const/high16 v4, 0x42480000 # 50.0f
:try_start_ac
invoke-static {v4}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v4
int-to-float v4, v4
div-float/2addr v3, v4
.line 488
.local v3, "scaleFactor":F
new-instance v4, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v4}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 489
.local v4, "options":Landroid/graphics/BitmapFactory$Options;
const/high16 v5, 0x3f800000 # 1.0f
const/4 v6, 0x1
cmpg-float v5, v3, v5
if-gez v5, :cond_c0
const/4 v5, 0x1
goto :goto_c1
:cond_c0
float-to-int v5, v3
:goto_c1
iput v5, v4, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
.line 490
invoke-static {p2, v6}, Lim/tpelyyftgw/messenger/FileLoader;->getPathToAttach(Lim/tpelyyftgw/tgnet/TLObject;Z)Ljava/io/File;
move-result-object v5
invoke-virtual {v5}, Ljava/io/File;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v5, v4}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object v5
.line 491
.local v5, "bitmap":Landroid/graphics/Bitmap;
if-eqz v5, :cond_d4
.line 492
invoke-virtual {v1, v5}, Landroid/app/Notification$Builder;->setLargeIcon(Landroid/graphics/Bitmap;)Landroid/app/Notification$Builder;
:try_end_d4
.catchall {:try_start_ac .. :try_end_d4} :catchall_d5
.line 496
.end local v3 # "scaleFactor":F
.end local v4 # "options":Landroid/graphics/BitmapFactory$Options;
.end local v5 # "bitmap":Landroid/graphics/Bitmap;
:cond_d4
goto :goto_d9
.line 494
:catchall_d5
move-exception v3
.line 495
.local v3, "e":Ljava/lang/Throwable;
invoke-static {v3}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 499
.end local v2 # "img":Landroid/graphics/drawable/BitmapDrawable;
.end local v3 # "e":Ljava/lang/Throwable;
:cond_d9
:goto_d9
invoke-virtual {v1}, Landroid/app/Notification$Builder;->getNotification()Landroid/app/Notification;
move-result-object v2
iput-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->ongoingCallNotification:Landroid/app/Notification;
.line 500
const/16 v3, 0xc9
invoke-virtual {p0, v3, v2}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->startForeground(ILandroid/app/Notification;)V
.line 501
return-void
.end method
.method protected abstract startRinging()V
.end method
.method public abstract startRingtoneAndVibration()V
.end method
.method protected startRingtoneAndVibration(I)V
.registers 15
.param p1, "chatID" # I
.line 504
const-string v0, "custom_"
iget v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v1}, Lim/tpelyyftgw/messenger/MessagesController;->getNotificationsSettings(I)Landroid/content/SharedPreferences;
move-result-object v1
.line 505
.local v1, "prefs":Landroid/content/SharedPreferences;
const-string v2, "audio"
invoke-virtual {p0, v2}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroid/media/AudioManager;
.line 506
.local v2, "am":Landroid/media/AudioManager;
invoke-virtual {v2}, Landroid/media/AudioManager;->getRingerMode()I
move-result v3
const/4 v4, 0x0
const/4 v5, 0x1
if-eqz v3, :cond_1a
const/4 v3, 0x1
goto :goto_1b
:cond_1a
const/4 v3, 0x0
.line 514
.local v3, "needRing":Z
:goto_1b
if-eqz v3, :cond_111
.line 515
sget-boolean v6, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
const/4 v7, 0x2
if-nez v6, :cond_25
.line 516
invoke-virtual {v2, p0, v7, v5}, Landroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;II)I
.line 518
:cond_25
new-instance v6, Landroid/media/MediaPlayer;
invoke-direct {v6}, Landroid/media/MediaPlayer;-><init>()V
iput-object v6, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->ringtonePlayer:Landroid/media/MediaPlayer;
.line 519
new-instance v8, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$4;
invoke-direct {v8, p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$4;-><init>(Lim/tpelyyftgw/messenger/voip/VoIPBaseService;)V
invoke-virtual {v6, v8}, Landroid/media/MediaPlayer;->setOnPreparedListener(Landroid/media/MediaPlayer$OnPreparedListener;)V
.line 525
iget-object v6, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->ringtonePlayer:Landroid/media/MediaPlayer;
invoke-virtual {v6, v5}, Landroid/media/MediaPlayer;->setLooping(Z)V
.line 526
iget-object v6, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->ringtonePlayer:Landroid/media/MediaPlayer;
invoke-virtual {v6, v7}, Landroid/media/MediaPlayer;->setAudioStreamType(I)V
.line 529
:try_start_3e
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-interface {v1, v6, v4}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z
move-result v6
if-eqz v6, :cond_72
.line 530
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v8, "ringtone_path_"
invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-static {v5}, Landroid/media/RingtoneManager;->getDefaultUri(I)Landroid/net/Uri;
move-result-object v8
invoke-virtual {v8}, Landroid/net/Uri;->toString()Ljava/lang/String;
move-result-object v8
invoke-interface {v1, v6, v8}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v6
.local v6, "notificationUri":Ljava/lang/String;
goto :goto_80
.line 532
.end local v6 # "notificationUri":Ljava/lang/String;
:cond_72
const-string v6, "CallsRingtonePath"
invoke-static {v5}, Landroid/media/RingtoneManager;->getDefaultUri(I)Landroid/net/Uri;
move-result-object v8
invoke-virtual {v8}, Landroid/net/Uri;->toString()Ljava/lang/String;
move-result-object v8
invoke-interface {v1, v6, v8}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v6
.line 533
.restart local v6 # "notificationUri":Ljava/lang/String;
:goto_80
iget-object v8, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->ringtonePlayer:Landroid/media/MediaPlayer;
invoke-static {v6}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v9
invoke-virtual {v8, p0, v9}, Landroid/media/MediaPlayer;->setDataSource(Landroid/content/Context;Landroid/net/Uri;)V
.line 534
iget-object v8, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->ringtonePlayer:Landroid/media/MediaPlayer;
invoke-virtual {v8}, Landroid/media/MediaPlayer;->prepareAsync()V
:try_end_8e
.catch Ljava/lang/Exception; {:try_start_3e .. :try_end_8e} :catch_8f
.line 541
.end local v6 # "notificationUri":Ljava/lang/String;
goto :goto_9d
.line 535
:catch_8f
move-exception v6
.line 536
.local v6, "e":Ljava/lang/Exception;
invoke-static {v6}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 537
iget-object v8, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->ringtonePlayer:Landroid/media/MediaPlayer;
if-eqz v8, :cond_9d
.line 538
invoke-virtual {v8}, Landroid/media/MediaPlayer;->release()V
.line 539
const/4 v8, 0x0
iput-object v8, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->ringtonePlayer:Landroid/media/MediaPlayer;
.line 543
.end local v6 # "e":Ljava/lang/Exception;
:cond_9d
:goto_9d
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-interface {v1, v0, v4}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z
move-result v0
if-eqz v0, :cond_c8
.line 544
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "calls_vibrate_"
invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-interface {v1, v0, v4}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I
move-result v0
.local v0, "vibrate":I
goto :goto_cf
.line 546
.end local v0 # "vibrate":I
:cond_c8
const-string/jumbo v0, "vibrate_calls"
invoke-interface {v1, v0, v4}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I
move-result v0
.line 547
.restart local v0 # "vibrate":I
:goto_cf
const/4 v6, 0x4
if-eq v0, v7, :cond_e0
if-eq v0, v6, :cond_e0
invoke-virtual {v2}, Landroid/media/AudioManager;->getRingerMode()I
move-result v8
if-eq v8, v5, :cond_e8
invoke-virtual {v2}, Landroid/media/AudioManager;->getRingerMode()I
move-result v8
if-eq v8, v7, :cond_e8
:cond_e0
if-ne v0, v6, :cond_111
.line 548
invoke-virtual {v2}, Landroid/media/AudioManager;->getRingerMode()I
move-result v6
if-ne v6, v5, :cond_111
.line 549
:cond_e8
const-string/jumbo v6, "vibrator"
invoke-virtual {p0, v6}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v6
check-cast v6, Landroid/os/Vibrator;
iput-object v6, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->vibrator:Landroid/os/Vibrator;
.line 550
const-wide/16 v8, 0x2bc
.line 551
.local v8, "duration":J
const-wide/16 v10, 0x2
const/4 v6, 0x3
if-ne v0, v5, :cond_fc
.line 552
div-long/2addr v8, v10
goto :goto_100
.line 553
:cond_fc
if-ne v0, v6, :cond_100
.line 554
mul-long v8, v8, v10
.line 555
:cond_100
:goto_100
iget-object v10, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->vibrator:Landroid/os/Vibrator;
new-array v6, v6, [J
const-wide/16 v11, 0x0
aput-wide v11, v6, v4
aput-wide v8, v6, v5
const-wide/16 v11, 0x1f4
aput-wide v11, v6, v7
invoke-virtual {v10, v6, v4}, Landroid/os/Vibrator;->vibrate([JI)V
.line 558
.end local v0 # "vibrate":I
.end local v8 # "duration":J
:cond_111
return-void
.end method
.method public stopRinging()V
.registers 3
.line 446
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->ringtonePlayer:Landroid/media/MediaPlayer;
const/4 v1, 0x0
if-eqz v0, :cond_f
.line 447
invoke-virtual {v0}, Landroid/media/MediaPlayer;->stop()V
.line 448
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->ringtonePlayer:Landroid/media/MediaPlayer;
invoke-virtual {v0}, Landroid/media/MediaPlayer;->release()V
.line 449
iput-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->ringtonePlayer:Landroid/media/MediaPlayer;
.line 451
:cond_f
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->vibrator:Landroid/os/Vibrator;
if-eqz v0, :cond_18
.line 452
invoke-virtual {v0}, Landroid/os/Vibrator;->cancel()V
.line 453
iput-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->vibrator:Landroid/os/Vibrator;
.line 455
:cond_18
return-void
.end method
.method public toggleSpeakerphoneOrShowRouteSheet(Landroid/app/Activity;)V
.registers 10
.param p1, "activity" # Landroid/app/Activity;
.line 292
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isBluetoothHeadsetConnected()Z
move-result v0
const/4 v1, 0x2
const/4 v2, 0x1
if-eqz v0, :cond_6c
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->hasEarpiece()Z
move-result v0
if-eqz v0, :cond_6c
.line 293
new-instance v0, Lim/tpelyyftgw/ui/actionbar/BottomSheet$Builder;
invoke-direct {v0, p1}, Lim/tpelyyftgw/ui/actionbar/BottomSheet$Builder;-><init>(Landroid/content/Context;)V
const/4 v3, 0x3
new-array v4, v3, [Ljava/lang/CharSequence;
const/4 v5, 0x0
const v6, 0x7f0f1231
.line 294
const-string v7, "VoipAudioRoutingBluetooth"
invoke-static {v7, v6}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v6
aput-object v6, v4, v5
const v5, 0x7f0f1232
.line 295
const-string v6, "VoipAudioRoutingEarpiece"
invoke-static {v6, v5}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v5
aput-object v5, v4, v2
const v2, 0x7f0f1233
.line 296
const-string v5, "VoipAudioRoutingSpeaker"
invoke-static {v5, v2}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v2
aput-object v2, v4, v1
new-array v1, v3, [I
fill-array-data v1, :array_ee
new-instance v2, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$3;
invoke-direct {v2, p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$3;-><init>(Lim/tpelyyftgw/messenger/voip/VoIPBaseService;)V
.line 294
invoke-virtual {v0, v4, v1, v2}, Lim/tpelyyftgw/ui/actionbar/BottomSheet$Builder;->setItems([Ljava/lang/CharSequence;[ILandroid/content/DialogInterface$OnClickListener;)Lim/tpelyyftgw/ui/actionbar/BottomSheet$Builder;
move-result-object v0
.line 363
.local v0, "bldr":Lim/tpelyyftgw/ui/actionbar/BottomSheet$Builder;
invoke-virtual {v0}, Lim/tpelyyftgw/ui/actionbar/BottomSheet$Builder;->create()Lim/tpelyyftgw/ui/actionbar/BottomSheet;
move-result-object v1
.line 364
.local v1, "sheet":Lim/tpelyyftgw/ui/actionbar/BottomSheet;
const v2, -0xd4d4d5
invoke-virtual {v1, v2}, Lim/tpelyyftgw/ui/actionbar/BottomSheet;->setBackgroundColor(I)V
.line 365
invoke-virtual {v1}, Lim/tpelyyftgw/ui/actionbar/BottomSheet;->show()V
.line 366
invoke-virtual {v1}, Lim/tpelyyftgw/ui/actionbar/BottomSheet;->getSheetContainer()Landroid/view/ViewGroup;
move-result-object v2
.line 367
.local v2, "container":Landroid/view/ViewGroup;
const/4 v3, 0x0
.local v3, "i":I
:goto_58
invoke-virtual {v2}, Landroid/view/ViewGroup;->getChildCount()I
move-result v4
if-ge v3, v4, :cond_6b
.line 368
invoke-virtual {v2, v3}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View;
move-result-object v4
check-cast v4, Lim/tpelyyftgw/ui/actionbar/BottomSheet$BottomSheetCell;
.line 369
.local v4, "cell":Lim/tpelyyftgw/ui/actionbar/BottomSheet$BottomSheetCell;
const/4 v5, -0x1
invoke-virtual {v4, v5}, Lim/tpelyyftgw/ui/actionbar/BottomSheet$BottomSheetCell;->setTextColor(I)V
.line 367
.end local v4 # "cell":Lim/tpelyyftgw/ui/actionbar/BottomSheet$BottomSheetCell;
add-int/lit8 v3, v3, 0x1
goto :goto_58
.line 371
.end local v3 # "i":I
:cond_6b
return-void
.line 373
.end local v0 # "bldr":Lim/tpelyyftgw/ui/actionbar/BottomSheet$Builder;
.end local v1 # "sheet":Lim/tpelyyftgw/ui/actionbar/BottomSheet;
.end local v2 # "container":Landroid/view/ViewGroup;
:cond_6c
sget-boolean v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
if-eqz v0, :cond_a7
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
if-eqz v0, :cond_a7
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->getCallAudioState()Landroid/telecom/CallAudioState;
move-result-object v0
if-eqz v0, :cond_a7
.line 374
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->hasEarpiece()Z
move-result v0
const/4 v2, 0x5
if-eqz v0, :cond_96
.line 375
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->getCallAudioState()Landroid/telecom/CallAudioState;
move-result-object v1
invoke-virtual {v1}, Landroid/telecom/CallAudioState;->getRoute()I
move-result v1
const/16 v3, 0x8
if-ne v1, v3, :cond_90
goto :goto_92
:cond_90
const/16 v2, 0x8
:goto_92
invoke-virtual {v0, v2}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->setAudioRoute(I)V
goto :goto_d7
.line 377
:cond_96
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->getCallAudioState()Landroid/telecom/CallAudioState;
move-result-object v3
invoke-virtual {v3}, Landroid/telecom/CallAudioState;->getRoute()I
move-result v3
if-ne v3, v1, :cond_a3
const/4 v1, 0x5
:cond_a3
invoke-virtual {v0, v1}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->setAudioRoute(I)V
goto :goto_d7
.line 378
:cond_a7
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->audioConfigured:Z
if-eqz v0, :cond_d2
sget-boolean v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
if-nez v0, :cond_d2
.line 379
const-string v0, "audio"
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/media/AudioManager;
.line 380
.local v0, "am":Landroid/media/AudioManager;
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->hasEarpiece()Z
move-result v1
if-eqz v1, :cond_c6
.line 381
invoke-virtual {v0}, Landroid/media/AudioManager;->isSpeakerphoneOn()Z
move-result v1
xor-int/2addr v1, v2
invoke-virtual {v0, v1}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V
goto :goto_ce
.line 383
:cond_c6
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v1
xor-int/2addr v1, v2
invoke-virtual {v0, v1}, Landroid/media/AudioManager;->setBluetoothScoOn(Z)V
.line 385
:goto_ce
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->updateOutputGainControlState()V
.line 386
.end local v0 # "am":Landroid/media/AudioManager;
goto :goto_d7
.line 387
:cond_d2
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->speakerphoneStateToSet:Z
xor-int/2addr v0, v2
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->speakerphoneStateToSet:Z
.line 389
:goto_d7
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stateListeners:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_dd
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_ed
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
.line 390
.local v1, "l":Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
invoke-interface {v1}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;->onAudioSettingsChanged()V
.end local v1 # "l":Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
goto :goto_dd
.line 391
:cond_ed
return-void
:array_ee
.array-data 4
0x7f08016c
0x7f0801a9
0x7f0801b8
.end array-data
.end method
.method public unregisterStateListener(Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;)V
.registers 3
.param p1, "l" # Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
.line 278
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stateListeners:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
.line 279
return-void
.end method
.method protected updateBluetoothHeadsetState(Z)V
.registers 6
.param p1, "connected" # Z
.line 873
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isBtHeadsetConnected:Z
if-ne p1, v0, :cond_5
.line 874
return-void
.line 875
:cond_5
sget-boolean v0, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v0, :cond_1e
.line 876
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v1, "updateBluetoothHeadsetState: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lim/tpelyyftgw/messenger/FileLog;->d(Ljava/lang/String;)V
.line 877
:cond_1e
iput-boolean p1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isBtHeadsetConnected:Z
.line 878
const-string v0, "audio"
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/media/AudioManager;
.line 879
.local v0, "am":Landroid/media/AudioManager;
const/4 v1, 0x0
if-eqz p1, :cond_61
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isRinging()Z
move-result v2
if-nez v2, :cond_61
iget v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentState:I
if-eqz v2, :cond_61
.line 880
iget-boolean v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->bluetoothScoActive:Z
const/4 v3, 0x1
if-eqz v2, :cond_4a
.line 881
sget-boolean v2, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v2, :cond_43
.line 882
const-string v2, "SCO already active, setting audio routing"
invoke-static {v2}, Lim/tpelyyftgw/messenger/FileLog;->d(Ljava/lang/String;)V
.line 883
:cond_43
invoke-virtual {v0, v1}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V
.line 884
invoke-virtual {v0, v3}, Landroid/media/AudioManager;->setBluetoothScoOn(Z)V
goto :goto_63
.line 886
:cond_4a
sget-boolean v1, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v1, :cond_54
.line 887
const-string/jumbo v1, "startBluetoothSco"
invoke-static {v1}, Lim/tpelyyftgw/messenger/FileLog;->d(Ljava/lang/String;)V
.line 888
:cond_54
iput-boolean v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->needSwitchToBluetoothAfterScoActivates:Z
.line 890
new-instance v1, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$6;
invoke-direct {v1, p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$6;-><init>(Lim/tpelyyftgw/messenger/voip/VoIPBaseService;Landroid/media/AudioManager;)V
const-wide/16 v2, 0x1f4
invoke-static {v1, v2, v3}, Lim/tpelyyftgw/messenger/AndroidUtilities;->runOnUIThread(Ljava/lang/Runnable;J)V
goto :goto_63
.line 902
:cond_61
iput-boolean v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->bluetoothScoActive:Z
.line 904
:goto_63
iget-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stateListeners:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_69
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_79
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
.line 905
.local v2, "l":Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
invoke-interface {v2}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;->onAudioSettingsChanged()V
.end local v2 # "l":Lim/tpelyyftgw/messenger/voip/VoIPBaseService$StateListener;
goto :goto_69
.line 906
:cond_79
return-void
.end method
.method protected updateNetworkType()V
.registers 6
.line 917
const-string v0, "connectivity"
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/net/ConnectivityManager;
.line 918
.local v0, "cm":Landroid/net/ConnectivityManager;
invoke-virtual {v0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
move-result-object v1
.line 919
.local v1, "info":Landroid/net/NetworkInfo;
iput-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->lastNetInfo:Landroid/net/NetworkInfo;
.line 920
const/4 v2, 0x0
.line 921
.local v2, "type":I
if-eqz v1, :cond_36
.line 922
invoke-virtual {v1}, Landroid/net/NetworkInfo;->getType()I
move-result v3
if-eqz v3, :cond_23
const/4 v4, 0x1
if-eq v3, v4, :cond_21
const/16 v4, 0x9
if-eq v3, v4, :cond_1f
goto :goto_36
.line 956
:cond_1f
const/4 v2, 0x7
goto :goto_36
.line 953
:cond_21
const/4 v2, 0x6
.line 954
goto :goto_36
.line 924
:cond_23
invoke-virtual {v1}, Landroid/net/NetworkInfo;->getSubtype()I
move-result v3
packed-switch v3, :pswitch_data_3e
.line 948
:pswitch_2a
const/16 v2, 0xb
.line 949
goto :goto_36
.line 945
:pswitch_2d
const/4 v2, 0x5
.line 946
goto :goto_36
.line 942
:pswitch_2f
const/4 v2, 0x4
.line 943
goto :goto_36
.line 934
:pswitch_31
const/4 v2, 0x3
.line 935
goto :goto_36
.line 930
:pswitch_33
const/4 v2, 0x2
.line 931
goto :goto_36
.line 926
:pswitch_35
const/4 v2, 0x1
.line 960
:cond_36
:goto_36
iget-object v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
if-eqz v3, :cond_3d
.line 961
invoke-virtual {v3, v2}, Lim/tpelyyftgw/messenger/voip/VoIPController;->setNetworkType(I)V
.line 963
:cond_3d
return-void
:pswitch_data_3e
.packed-switch 0x1
:pswitch_35
:pswitch_33
:pswitch_31
:pswitch_2a
:pswitch_31
:pswitch_2f
:pswitch_33
:pswitch_2f
:pswitch_2f
:pswitch_2f
:pswitch_2a
:pswitch_2f
:pswitch_2d
:pswitch_2a
:pswitch_2f
.end packed-switch
.end method
.method public updateOutputGainControlState()V
.registers 6
.line 1361
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
if-eqz v0, :cond_76
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controllerStarted:Z
if-nez v0, :cond_a
goto/16 :goto_76
.line 1363
:cond_a
sget-boolean v0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->USE_CONNECTION_SERVICE:Z
const/4 v1, 0x0
const/4 v2, 0x1
if-nez v0, :cond_58
.line 1364
const-string v0, "audio"
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/media/AudioManager;
.line 1365
.local v0, "am":Landroid/media/AudioManager;
iget-object v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->hasEarpiece()Z
move-result v4
if-eqz v4, :cond_32
invoke-virtual {v0}, Landroid/media/AudioManager;->isSpeakerphoneOn()Z
move-result v4
if-nez v4, :cond_32
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v4
if-nez v4, :cond_32
iget-boolean v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isHeadsetPlugged:Z
if-nez v4, :cond_32
const/4 v4, 0x1
goto :goto_33
:cond_32
const/4 v4, 0x0
:goto_33
invoke-virtual {v3, v4}, Lim/tpelyyftgw/messenger/voip/VoIPController;->setAudioOutputGainControlEnabled(Z)V
.line 1366
iget-object v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
iget-boolean v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isHeadsetPlugged:Z
if-nez v4, :cond_54
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->hasEarpiece()Z
move-result v4
if-eqz v4, :cond_53
invoke-virtual {v0}, Landroid/media/AudioManager;->isSpeakerphoneOn()Z
move-result v4
if-nez v4, :cond_53
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v4
if-nez v4, :cond_53
iget-boolean v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->isHeadsetPlugged:Z
if-nez v4, :cond_53
goto :goto_54
:cond_53
const/4 v1, 0x1
:cond_54
:goto_54
invoke-virtual {v3, v1}, Lim/tpelyyftgw/messenger/voip/VoIPController;->setEchoCancellationStrength(I)V
.line 1367
.end local v0 # "am":Landroid/media/AudioManager;
goto :goto_75
.line 1368
:cond_58
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->systemCallConnection:Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/voip/VoIPBaseService$CallConnection;->getCallAudioState()Landroid/telecom/CallAudioState;
move-result-object v0
invoke-virtual {v0}, Landroid/telecom/CallAudioState;->getRoute()I
move-result v0
if-ne v0, v2, :cond_66
const/4 v0, 0x1
goto :goto_67
:cond_66
const/4 v0, 0x0
.line 1369
.local v0, "isEarpiece":Z
:goto_67
iget-object v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
invoke-virtual {v3, v0}, Lim/tpelyyftgw/messenger/voip/VoIPController;->setAudioOutputGainControlEnabled(Z)V
.line 1370
iget-object v3, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
if-eqz v0, :cond_71
goto :goto_72
:cond_71
const/4 v1, 0x1
:goto_72
invoke-virtual {v3, v1}, Lim/tpelyyftgw/messenger/voip/VoIPController;->setEchoCancellationStrength(I)V
.line 1372
.end local v0 # "isEarpiece":Z
:goto_75
return-void
.line 1362
:cond_76
:goto_76
return-void
.end method
.method protected abstract updateServerConfig()V
.end method
.method protected updateStats()V
.registers 16
.line 734
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->controller:Lim/tpelyyftgw/messenger/voip/VoIPController;
iget-object v1, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
invoke-virtual {v0, v1}, Lim/tpelyyftgw/messenger/voip/VoIPController;->getStats(Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;)V
.line 735
iget-object v0, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
iget-wide v0, v0, Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;->bytesSentWifi:J
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->prevStats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
iget-wide v2, v2, Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;->bytesSentWifi:J
sub-long/2addr v0, v2
.line 736
.local v0, "wifiSentDiff":J
iget-object v2, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
iget-wide v2, v2, Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;->bytesRecvdWifi:J
iget-object v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->prevStats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
iget-wide v4, v4, Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;->bytesRecvdWifi:J
sub-long/2addr v2, v4
.line 737
.local v2, "wifiRecvdDiff":J
iget-object v4, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
iget-wide v4, v4, Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;->bytesSentMobile:J
iget-object v6, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->prevStats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
iget-wide v6, v6, Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;->bytesSentMobile:J
sub-long/2addr v4, v6
.line 738
.local v4, "mobileSentDiff":J
iget-object v6, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
iget-wide v6, v6, Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;->bytesRecvdMobile:J
iget-object v8, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->prevStats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
iget-wide v8, v8, Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;->bytesRecvdMobile:J
sub-long/2addr v6, v8
.line 739
.local v6, "mobileRecvdDiff":J
iget-object v8, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
.line 740
.local v8, "tmp":Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
iget-object v9, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->prevStats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
iput-object v9, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->stats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
.line 741
iput-object v8, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->prevStats:Lim/tpelyyftgw/messenger/voip/VoIPController$Stats;
.line 742
const/4 v9, 0x1
const-wide/16 v10, 0x0
const/4 v12, 0x0
cmp-long v13, v0, v10
if-lez v13, :cond_44
.line 743
iget v13, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v13}, Lim/tpelyyftgw/messenger/StatsController;->getInstance(I)Lim/tpelyyftgw/messenger/StatsController;
move-result-object v13
invoke-virtual {v13, v9, v12, v0, v1}, Lim/tpelyyftgw/messenger/StatsController;->incrementSentBytesCount(IIJ)V
.line 744
:cond_44
cmp-long v13, v2, v10
if-lez v13, :cond_51
.line 745
iget v13, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v13}, Lim/tpelyyftgw/messenger/StatsController;->getInstance(I)Lim/tpelyyftgw/messenger/StatsController;
move-result-object v13
invoke-virtual {v13, v9, v12, v2, v3}, Lim/tpelyyftgw/messenger/StatsController;->incrementReceivedBytesCount(IIJ)V
.line 746
:cond_51
const/4 v9, 0x2
cmp-long v13, v4, v10
if-lez v13, :cond_6c
.line 747
iget v13, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v13}, Lim/tpelyyftgw/messenger/StatsController;->getInstance(I)Lim/tpelyyftgw/messenger/StatsController;
move-result-object v13
iget-object v14, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->lastNetInfo:Landroid/net/NetworkInfo;
if-eqz v14, :cond_68
invoke-virtual {v14}, Landroid/net/NetworkInfo;->isRoaming()Z
move-result v14
if-eqz v14, :cond_68
const/4 v14, 0x2
goto :goto_69
:cond_68
const/4 v14, 0x0
:goto_69
invoke-virtual {v13, v14, v12, v4, v5}, Lim/tpelyyftgw/messenger/StatsController;->incrementSentBytesCount(IIJ)V
.line 749
:cond_6c
cmp-long v13, v6, v10
if-lez v13, :cond_85
.line 750
iget v10, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->currentAccount:I
invoke-static {v10}, Lim/tpelyyftgw/messenger/StatsController;->getInstance(I)Lim/tpelyyftgw/messenger/StatsController;
move-result-object v10
iget-object v11, p0, Lim/tpelyyftgw/messenger/voip/VoIPBaseService;->lastNetInfo:Landroid/net/NetworkInfo;
if-eqz v11, :cond_81
invoke-virtual {v11}, Landroid/net/NetworkInfo;->isRoaming()Z
move-result v11
if-eqz v11, :cond_81
goto :goto_82
:cond_81
const/4 v9, 0x0
:goto_82
invoke-virtual {v10, v9, v12, v6, v7}, Lim/tpelyyftgw/messenger/StatsController;->incrementReceivedBytesCount(IIJ)V
.line 752
:cond_85
return-void
.end method