LocationSharingService.smali
.class public Lim/tpelyyftgw/messenger/LocationSharingService;
.super Landroid/app/Service;
.source "LocationSharingService.java"
# interfaces
.implements Lim/tpelyyftgw/messenger/NotificationCenter$NotificationCenterDelegate;
# instance fields
.field private builder:Landroidx/core/app/NotificationCompat$Builder;
.field private handler:Landroid/os/Handler;
.field private runnable:Ljava/lang/Runnable;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 3
.line 25
invoke-direct {p0}, Landroid/app/Service;-><init>()V
.line 26
invoke-static {}, Lim/tpelyyftgw/messenger/NotificationCenter;->getGlobalInstance()Lim/tpelyyftgw/messenger/NotificationCenter;
move-result-object v0
sget v1, Lim/tpelyyftgw/messenger/NotificationCenter;->liveLocationsChanged:I
invoke-virtual {v0, p0, v1}, Lim/tpelyyftgw/messenger/NotificationCenter;->addObserver(Ljava/lang/Object;I)V
.line 27
return-void
.end method
.method private getInfos()Ljava/util/ArrayList;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/ArrayList<",
"Lim/tpelyyftgw/messenger/LocationController$SharingLocationInfo;",
">;"
}
.end annotation
.line 75
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 76
.local v0, "infos":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lim/tpelyyftgw/messenger/LocationController$SharingLocationInfo;>;"
const/4 v1, 0x0
.local v1, "a":I
:goto_6
const/4 v2, 0x3
if-ge v1, v2, :cond_1b
.line 77
invoke-static {v1}, Lim/tpelyyftgw/messenger/LocationController;->getInstance(I)Lim/tpelyyftgw/messenger/LocationController;
move-result-object v2
iget-object v2, v2, Lim/tpelyyftgw/messenger/LocationController;->sharingLocationsUI:Ljava/util/ArrayList;
.line 78
.local v2, "arrayList":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lim/tpelyyftgw/messenger/LocationController$SharingLocationInfo;>;"
invoke-virtual {v2}, Ljava/util/ArrayList;->isEmpty()Z
move-result v3
if-nez v3, :cond_18
.line 79
invoke-virtual {v0, v2}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z
.line 76
.end local v2 # "arrayList":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lim/tpelyyftgw/messenger/LocationController$SharingLocationInfo;>;"
:cond_18
add-int/lit8 v1, v1, 0x1
goto :goto_6
.line 82
.end local v1 # "a":I
:cond_1b
return-object v0
.end method
.method static synthetic lambda$null$0()V
.registers 2
.line 36
const/4 v0, 0x0
.local v0, "a":I
:goto_1
const/4 v1, 0x3
if-ge v0, v1, :cond_e
.line 37
invoke-static {v0}, Lim/tpelyyftgw/messenger/LocationController;->getInstance(I)Lim/tpelyyftgw/messenger/LocationController;
move-result-object v1
invoke-virtual {v1}, Lim/tpelyyftgw/messenger/LocationController;->update()V
.line 36
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 39
.end local v0 # "a":I
:cond_e
return-void
.end method
.method private updateNotification(Z)V
.registers 10
.param p1, "post" # Z
.line 86
iget-object v0, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->builder:Landroidx/core/app/NotificationCompat$Builder;
if-nez v0, :cond_5
.line 87
return-void
.line 90
:cond_5
invoke-direct {p0}, Lim/tpelyyftgw/messenger/LocationSharingService;->getInfos()Ljava/util/ArrayList;
move-result-object v0
.line 91
.local v0, "infos":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lim/tpelyyftgw/messenger/LocationController$SharingLocationInfo;>;"
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v1
const/4 v2, 0x0
const/4 v3, 0x1
if-ne v1, v3, :cond_4c
.line 92
invoke-virtual {v0, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lim/tpelyyftgw/messenger/LocationController$SharingLocationInfo;
.line 93
.local v1, "info":Lim/tpelyyftgw/messenger/LocationController$SharingLocationInfo;
iget-object v4, v1, Lim/tpelyyftgw/messenger/LocationController$SharingLocationInfo;->messageObject:Lim/tpelyyftgw/messenger/MessageObject;
invoke-virtual {v4}, Lim/tpelyyftgw/messenger/MessageObject;->getDialogId()J
move-result-wide v4
long-to-int v5, v4
.line 94
.local v5, "lower_id":I
iget-object v4, v1, Lim/tpelyyftgw/messenger/LocationController$SharingLocationInfo;->messageObject:Lim/tpelyyftgw/messenger/MessageObject;
iget v4, v4, Lim/tpelyyftgw/messenger/MessageObject;->currentAccount:I
.line 95
.local v4, "currentAccount":I
if-lez v5, :cond_35
.line 96
invoke-static {v4}, Lim/tpelyyftgw/messenger/MessagesController;->getInstance(I)Lim/tpelyyftgw/messenger/MessagesController;
move-result-object v6
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v7
invoke-virtual {v6, v7}, Lim/tpelyyftgw/messenger/MessagesController;->getUser(Ljava/lang/Integer;)Lim/tpelyyftgw/tgnet/TLRPC$User;
move-result-object v6
.line 97
.local v6, "user":Lim/tpelyyftgw/tgnet/TLRPC$User;
invoke-static {v6}, Lim/tpelyyftgw/messenger/UserObject;->getFirstName(Lim/tpelyyftgw/tgnet/TLRPC$User;)Ljava/lang/String;
move-result-object v6
.line 98
.local v6, "param":Ljava/lang/String;
goto :goto_4b
.line 99
.end local v6 # "param":Ljava/lang/String;
:cond_35
invoke-static {v4}, Lim/tpelyyftgw/messenger/MessagesController;->getInstance(I)Lim/tpelyyftgw/messenger/MessagesController;
move-result-object v6
neg-int v7, v5
invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v7
invoke-virtual {v6, v7}, Lim/tpelyyftgw/messenger/MessagesController;->getChat(Ljava/lang/Integer;)Lim/tpelyyftgw/tgnet/TLRPC$Chat;
move-result-object v6
.line 100
.local v6, "chat":Lim/tpelyyftgw/tgnet/TLRPC$Chat;
if-eqz v6, :cond_48
.line 101
iget-object v7, v6, Lim/tpelyyftgw/tgnet/TLRPC$Chat;->title:Ljava/lang/String;
move-object v6, v7
.local v7, "param":Ljava/lang/String;
goto :goto_4b
.line 103
.end local v7 # "param":Ljava/lang/String;
:cond_48
const-string v7, ""
move-object v6, v7
.line 106
.end local v1 # "info":Lim/tpelyyftgw/messenger/LocationController$SharingLocationInfo;
.end local v4 # "currentAccount":I
.end local v5 # "lower_id":I
.local v6, "param":Ljava/lang/String;
:goto_4b
goto :goto_56
.line 107
.end local v6 # "param":Ljava/lang/String;
:cond_4c
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v1
const-string v4, "Chats"
invoke-static {v4, v1}, Lim/tpelyyftgw/messenger/LocaleController;->formatPluralString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v6
.line 109
.restart local v6 # "param":Ljava/lang/String;
:goto_56
const v1, 0x7f0f01b6
const-string v4, "AttachLiveLocationIsSharing"
invoke-static {v4, v1}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v1
const/4 v4, 0x2
new-array v4, v4, [Ljava/lang/Object;
const v5, 0x7f0f01b5
const-string v7, "AttachLiveLocation"
invoke-static {v7, v5}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v5
aput-object v5, v4, v2
aput-object v6, v4, v3
invoke-static {v1, v4}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
.line 110
.local v1, "str":Ljava/lang/String;
iget-object v2, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->builder:Landroidx/core/app/NotificationCompat$Builder;
invoke-virtual {v2, v1}, Landroidx/core/app/NotificationCompat$Builder;->setTicker(Ljava/lang/CharSequence;)Landroidx/core/app/NotificationCompat$Builder;
.line 111
iget-object v2, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->builder:Landroidx/core/app/NotificationCompat$Builder;
invoke-virtual {v2, v1}, Landroidx/core/app/NotificationCompat$Builder;->setContentText(Ljava/lang/CharSequence;)Landroidx/core/app/NotificationCompat$Builder;
.line 112
if-eqz p1, :cond_8f
.line 113
sget-object v2, Lim/tpelyyftgw/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context;
invoke-static {v2}, Landroidx/core/app/NotificationManagerCompat;->from(Landroid/content/Context;)Landroidx/core/app/NotificationManagerCompat;
move-result-object v2
const/4 v3, 0x6
iget-object v4, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->builder:Landroidx/core/app/NotificationCompat$Builder;
invoke-virtual {v4}, Landroidx/core/app/NotificationCompat$Builder;->build()Landroid/app/Notification;
move-result-object v4
invoke-virtual {v2, v3, v4}, Landroidx/core/app/NotificationManagerCompat;->notify(ILandroid/app/Notification;)V
.line 115
:cond_8f
return-void
.end method
# virtual methods
.method public varargs didReceivedNotification(II[Ljava/lang/Object;)V
.registers 6
.param p1, "id" # I
.param p2, "account" # I
.param p3, "args" # [Ljava/lang/Object;
.line 60
sget v0, Lim/tpelyyftgw/messenger/NotificationCenter;->liveLocationsChanged:I
if-ne p1, v0, :cond_10
.line 61
iget-object v0, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->handler:Landroid/os/Handler;
if-eqz v0, :cond_10
.line 62
new-instance v1, Lim/tpelyyftgw/messenger/-$$Lambda$LocationSharingService$LU8vp1LEmhCyIJ1v8xtqGqMZAwo;
invoke-direct {v1, p0}, Lim/tpelyyftgw/messenger/-$$Lambda$LocationSharingService$LU8vp1LEmhCyIJ1v8xtqGqMZAwo;-><init>(Lim/tpelyyftgw/messenger/LocationSharingService;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 72
:cond_10
return-void
.end method
.method public synthetic lambda$didReceivedNotification$2$LocationSharingService()V
.registers 3
.line 63
invoke-direct {p0}, Lim/tpelyyftgw/messenger/LocationSharingService;->getInfos()Ljava/util/ArrayList;
move-result-object v0
.line 64
.local v0, "infos":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lim/tpelyyftgw/messenger/LocationController$SharingLocationInfo;>;"
invoke-virtual {v0}, Ljava/util/ArrayList;->isEmpty()Z
move-result v1
if-eqz v1, :cond_e
.line 65
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/LocationSharingService;->stopSelf()V
goto :goto_12
.line 67
:cond_e
const/4 v1, 0x1
invoke-direct {p0, v1}, Lim/tpelyyftgw/messenger/LocationSharingService;->updateNotification(Z)V
.line 69
:goto_12
return-void
.end method
.method public synthetic lambda$onCreate$1$LocationSharingService()V
.registers 5
.line 34
iget-object v0, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->handler:Landroid/os/Handler;
iget-object v1, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->runnable:Ljava/lang/Runnable;
const-wide/16 v2, 0x3e8
invoke-virtual {v0, v1, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
.line 35
sget-object v0, Lim/tpelyyftgw/messenger/Utilities;->stageQueue:Lim/tpelyyftgw/messenger/DispatchQueue;
sget-object v1, Lim/tpelyyftgw/messenger/-$$Lambda$LocationSharingService$1h6zGCW561u00ijPwdboQbp7-lY;->INSTANCE:Lim/tpelyyftgw/messenger/-$$Lambda$LocationSharingService$1h6zGCW561u00ijPwdboQbp7-lY;
invoke-virtual {v0, v1}, Lim/tpelyyftgw/messenger/DispatchQueue;->postRunnable(Ljava/lang/Runnable;)V
.line 40
return-void
.end method
.method public onBind(Landroid/content/Intent;)Landroid/os/IBinder;
.registers 3
.param p1, "arg2" # Landroid/content/Intent;
.line 45
const/4 v0, 0x0
return-object v0
.end method
.method public onCreate()V
.registers 5
.line 31
invoke-super {p0}, Landroid/app/Service;->onCreate()V
.line 32
new-instance v0, Landroid/os/Handler;
invoke-direct {v0}, Landroid/os/Handler;-><init>()V
iput-object v0, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->handler:Landroid/os/Handler;
.line 33
new-instance v0, Lim/tpelyyftgw/messenger/-$$Lambda$LocationSharingService$vbIrep1v5XY9w5Q3cOjEvyiHKiA;
invoke-direct {v0, p0}, Lim/tpelyyftgw/messenger/-$$Lambda$LocationSharingService$vbIrep1v5XY9w5Q3cOjEvyiHKiA;-><init>(Lim/tpelyyftgw/messenger/LocationSharingService;)V
iput-object v0, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->runnable:Ljava/lang/Runnable;
.line 41
iget-object v1, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->handler:Landroid/os/Handler;
const-wide/16 v2, 0x3e8
invoke-virtual {v1, v0, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
.line 42
return-void
.end method
.method public onDestroy()V
.registers 3
.line 49
invoke-super {p0}, Landroid/app/Service;->onDestroy()V
.line 50
iget-object v0, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->handler:Landroid/os/Handler;
if-eqz v0, :cond_c
.line 51
iget-object v1, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->runnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
.line 53
:cond_c
const/4 v0, 0x1
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/LocationSharingService;->stopForeground(Z)V
.line 54
sget-object v0, Lim/tpelyyftgw/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context;
invoke-static {v0}, Landroidx/core/app/NotificationManagerCompat;->from(Landroid/content/Context;)Landroidx/core/app/NotificationManagerCompat;
move-result-object v0
const/4 v1, 0x6
invoke-virtual {v0, v1}, Landroidx/core/app/NotificationManagerCompat;->cancel(I)V
.line 55
invoke-static {}, Lim/tpelyyftgw/messenger/NotificationCenter;->getGlobalInstance()Lim/tpelyyftgw/messenger/NotificationCenter;
move-result-object v0
sget v1, Lim/tpelyyftgw/messenger/NotificationCenter;->liveLocationsChanged:I
invoke-virtual {v0, p0, v1}, Lim/tpelyyftgw/messenger/NotificationCenter;->removeObserver(Ljava/lang/Object;I)V
.line 56
return-void
.end method
.method public onStartCommand(Landroid/content/Intent;II)I
.registers 13
.param p1, "intent" # Landroid/content/Intent;
.param p2, "flags" # I
.param p3, "startId" # I
.line 118
invoke-direct {p0}, Lim/tpelyyftgw/messenger/LocationSharingService;->getInfos()Ljava/util/ArrayList;
move-result-object v0
invoke-virtual {v0}, Ljava/util/ArrayList;->isEmpty()Z
move-result v0
if-eqz v0, :cond_d
.line 119
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/LocationSharingService;->stopSelf()V
.line 121
:cond_d
iget-object v0, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->builder:Landroidx/core/app/NotificationCompat$Builder;
const/4 v1, 0x2
const/4 v2, 0x0
if-nez v0, :cond_80
.line 122
new-instance v0, Landroid/content/Intent;
sget-object v3, Lim/tpelyyftgw/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context;
const-class v4, Lim/tpelyyftgw/ui/LaunchActivity;
invoke-direct {v0, v3, v4}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 123
.local v0, "intent2":Landroid/content/Intent;
const-string v3, "org.tmessages.openlocations"
invoke-virtual {v0, v3}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
.line 124
const-string v3, "android.intent.category.LAUNCHER"
invoke-virtual {v0, v3}, Landroid/content/Intent;->addCategory(Ljava/lang/String;)Landroid/content/Intent;
.line 125
sget-object v3, Lim/tpelyyftgw/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context;
invoke-static {v3, v2, v0, v2}, Landroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v3
.line 127
.local v3, "contentIntent":Landroid/app/PendingIntent;
new-instance v4, Landroidx/core/app/NotificationCompat$Builder;
sget-object v5, Lim/tpelyyftgw/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context;
invoke-direct {v4, v5}, Landroidx/core/app/NotificationCompat$Builder;-><init>(Landroid/content/Context;)V
iput-object v4, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->builder:Landroidx/core/app/NotificationCompat$Builder;
.line 128
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v5
invoke-virtual {v4, v5, v6}, Landroidx/core/app/NotificationCompat$Builder;->setWhen(J)Landroidx/core/app/NotificationCompat$Builder;
.line 129
iget-object v4, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->builder:Landroidx/core/app/NotificationCompat$Builder;
const v5, 0x7f0801e8
invoke-virtual {v4, v5}, Landroidx/core/app/NotificationCompat$Builder;->setSmallIcon(I)Landroidx/core/app/NotificationCompat$Builder;
.line 130
iget-object v4, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->builder:Landroidx/core/app/NotificationCompat$Builder;
invoke-virtual {v4, v3}, Landroidx/core/app/NotificationCompat$Builder;->setContentIntent(Landroid/app/PendingIntent;)Landroidx/core/app/NotificationCompat$Builder;
.line 131
invoke-static {}, Lim/tpelyyftgw/messenger/NotificationsController;->checkOtherNotificationsChannel()V
.line 132
iget-object v4, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->builder:Landroidx/core/app/NotificationCompat$Builder;
sget-object v5, Lim/tpelyyftgw/messenger/NotificationsController;->OTHER_NOTIFICATIONS_CHANNEL:Ljava/lang/String;
invoke-virtual {v4, v5}, Landroidx/core/app/NotificationCompat$Builder;->setChannelId(Ljava/lang/String;)Landroidx/core/app/NotificationCompat$Builder;
.line 133
iget-object v4, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->builder:Landroidx/core/app/NotificationCompat$Builder;
const v5, 0x7f0f0141
const-string v6, "AppName"
invoke-static {v6, v5}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Landroidx/core/app/NotificationCompat$Builder;->setContentTitle(Ljava/lang/CharSequence;)Landroidx/core/app/NotificationCompat$Builder;
.line 134
new-instance v4, Landroid/content/Intent;
sget-object v5, Lim/tpelyyftgw/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context;
const-class v6, Lim/tpelyyftgw/messenger/StopLiveLocationReceiver;
invoke-direct {v4, v5, v6}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 135
.local v4, "stopIntent":Landroid/content/Intent;
iget-object v5, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->builder:Landroidx/core/app/NotificationCompat$Builder;
const v6, 0x7f0f1007
const-string v7, "StopLiveLocation"
invoke-static {v7, v6}, Lim/tpelyyftgw/messenger/LocaleController;->getString(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v6
sget-object v7, Lim/tpelyyftgw/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context;
const/high16 v8, 0x8000000
invoke-static {v7, v1, v4, v8}, Landroid/app/PendingIntent;->getBroadcast(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v7
invoke-virtual {v5, v2, v6, v7}, Landroidx/core/app/NotificationCompat$Builder;->addAction(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)Landroidx/core/app/NotificationCompat$Builder;
.line 138
.end local v0 # "intent2":Landroid/content/Intent;
.end local v3 # "contentIntent":Landroid/app/PendingIntent;
.end local v4 # "stopIntent":Landroid/content/Intent;
:cond_80
invoke-direct {p0, v2}, Lim/tpelyyftgw/messenger/LocationSharingService;->updateNotification(Z)V
.line 139
const/4 v0, 0x6
iget-object v2, p0, Lim/tpelyyftgw/messenger/LocationSharingService;->builder:Landroidx/core/app/NotificationCompat$Builder;
invoke-virtual {v2}, Landroidx/core/app/NotificationCompat$Builder;->build()Landroid/app/Notification;
move-result-object v2
invoke-virtual {p0, v0, v2}, Lim/tpelyyftgw/messenger/LocationSharingService;->startForeground(ILandroid/app/Notification;)V
.line 140
return v1
.end method