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