SessionLogger.smali
.class Lcom/facebook/appevents/internal/SessionLogger;
.super Ljava/lang/Object;
.source "SessionLogger.java"
# static fields
.field private static final INACTIVE_SECONDS_QUANTA:[J
.field private static final TAG:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 35
const-class v0, Lcom/facebook/appevents/internal/SessionLogger;
invoke-virtual {v0}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/facebook/appevents/internal/SessionLogger;->TAG:Ljava/lang/String;
const/16 v0, 0x13
new-array v0, v0, [J
.line 37
fill-array-data v0, :array_12
sput-object v0, Lcom/facebook/appevents/internal/SessionLogger;->INACTIVE_SECONDS_QUANTA:[J
return-void
:array_12
.array-data 8
0x493e0
0xdbba0
0x1b7740
0x36ee80
0x1499700
0x2932e00
0x5265c00
0xa4cb800
0xf731400
0x240c8400
0x48190800
0x6c258c00
0x90321000L
0x134fd9000L
0x1cf7c5800L
0x269fb2000L
0x30479e800L
0x39ef8b000L
0x757b12c00L
.end array-data
.end method
.method constructor <init>()V
.registers 1
.line 34
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static getQuantaIndex(J)I
.registers 6
const/4 v0, 0x0
.line 139
:goto_1
sget-object v1, Lcom/facebook/appevents/internal/SessionLogger;->INACTIVE_SECONDS_QUANTA:[J
array-length v2, v1
if-ge v0, v2, :cond_f
aget-wide v2, v1, v0
cmp-long v1, v2, p0
if-gez v1, :cond_f
add-int/lit8 v0, v0, 0x1
goto :goto_1
:cond_f
return v0
.end method
.method public static logActivateApp(Ljava/lang/String;Lcom/facebook/appevents/internal/SourceApplicationInfo;Ljava/lang/String;)V
.registers 5
if-eqz p1, :cond_7
.line 66
invoke-virtual {p1}, Lcom/facebook/appevents/internal/SourceApplicationInfo;->toString()Ljava/lang/String;
move-result-object p1
goto :goto_9
:cond_7
const-string p1, "Unclassified"
.line 69
:goto_9
new-instance v0, Landroid/os/Bundle;
invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
const-string v1, "fb_mobile_launch_source"
.line 70
invoke-virtual {v0, v1, p1}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
.line 73
new-instance p1, Lcom/facebook/appevents/InternalAppEventsLogger;
const/4 v1, 0x0
invoke-direct {p1, p0, p2, v1}, Lcom/facebook/appevents/InternalAppEventsLogger;-><init>(Ljava/lang/String;Ljava/lang/String;Lcom/facebook/AccessToken;)V
const-string p0, "fb_mobile_activate_app"
.line 77
invoke-virtual {p1, p0, v0}, Lcom/facebook/appevents/InternalAppEventsLogger;->logEvent(Ljava/lang/String;Landroid/os/Bundle;)V
.line 78
invoke-static {}, Lcom/facebook/appevents/InternalAppEventsLogger;->getFlushBehavior()Lcom/facebook/appevents/AppEventsLogger$FlushBehavior;
move-result-object p0
sget-object p2, Lcom/facebook/appevents/AppEventsLogger$FlushBehavior;->EXPLICIT_ONLY:Lcom/facebook/appevents/AppEventsLogger$FlushBehavior;
if-eq p0, p2, :cond_29
.line 79
invoke-virtual {p1}, Lcom/facebook/appevents/InternalAppEventsLogger;->flush()V
:cond_29
return-void
.end method
.method private static logClockSkewEvent()V
.registers 3
.line 133
sget-object v0, Lcom/facebook/LoggingBehavior;->APP_EVENTS:Lcom/facebook/LoggingBehavior;
sget-object v1, Lcom/facebook/appevents/internal/SessionLogger;->TAG:Ljava/lang/String;
const-string v2, "Clock skew detected"
invoke-static {v0, v1, v2}, Lcom/facebook/internal/Logger;->log(Lcom/facebook/LoggingBehavior;Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method public static logDeactivateApp(Ljava/lang/String;Lcom/facebook/appevents/internal/SessionInfo;Ljava/lang/String;)V
.registers 11
.line 89
invoke-virtual {p1}, Lcom/facebook/appevents/internal/SessionInfo;->getDiskRestoreTime()J
move-result-wide v0
invoke-virtual {p1}, Lcom/facebook/appevents/internal/SessionInfo;->getSessionLastEventTime()Ljava/lang/Long;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Long;->longValue()J
move-result-wide v2
sub-long/2addr v0, v2
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v0
.line 90
invoke-virtual {v0}, Ljava/lang/Long;->longValue()J
move-result-wide v1
const-wide/16 v3, 0x0
.line 91
invoke-static {v3, v4}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v5
cmp-long v6, v1, v3
if-gez v6, :cond_23
.line 92
invoke-static {}, Lcom/facebook/appevents/internal/SessionLogger;->logClockSkewEvent()V
move-object v0, v5
.line 95
:cond_23
invoke-virtual {p1}, Lcom/facebook/appevents/internal/SessionInfo;->getSessionLength()J
move-result-wide v1
invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v1
.line 96
invoke-virtual {v1}, Ljava/lang/Long;->longValue()J
move-result-wide v6
cmp-long v2, v6, v3
if-gez v2, :cond_37
.line 97
invoke-static {}, Lcom/facebook/appevents/internal/SessionLogger;->logClockSkewEvent()V
goto :goto_38
:cond_37
move-object v5, v1
.line 101
:goto_38
new-instance v1, Landroid/os/Bundle;
invoke-direct {v1}, Landroid/os/Bundle;-><init>()V
.line 104
invoke-virtual {p1}, Lcom/facebook/appevents/internal/SessionInfo;->getInterruptionCount()I
move-result v2
const-string v3, "fb_mobile_app_interruptions"
.line 102
invoke-virtual {v1, v3, v2}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
.line 105
sget-object v2, Ljava/util/Locale;->ROOT:Ljava/util/Locale;
const/4 v3, 0x1
new-array v3, v3, [Ljava/lang/Object;
const/4 v4, 0x0
.line 110
invoke-virtual {v0}, Ljava/lang/Long;->longValue()J
move-result-wide v6
invoke-static {v6, v7}, Lcom/facebook/appevents/internal/SessionLogger;->getQuantaIndex(J)I
move-result v0
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
aput-object v0, v3, v4
const-string v0, "session_quanta_%d"
.line 107
invoke-static {v2, v0, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
const-string v2, "fb_mobile_time_between_sessions"
.line 105
invoke-virtual {v1, v2, v0}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
.line 111
invoke-virtual {p1}, Lcom/facebook/appevents/internal/SessionInfo;->getSourceApplicationInfo()Lcom/facebook/appevents/internal/SourceApplicationInfo;
move-result-object v0
if-eqz v0, :cond_70
.line 113
invoke-virtual {v0}, Lcom/facebook/appevents/internal/SourceApplicationInfo;->toString()Ljava/lang/String;
move-result-object v0
goto :goto_72
:cond_70
const-string v0, "Unclassified"
:goto_72
const-string v2, "fb_mobile_launch_source"
.line 115
invoke-virtual {v1, v2, v0}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
.line 120
invoke-virtual {p1}, Lcom/facebook/appevents/internal/SessionInfo;->getSessionLastEventTime()Ljava/lang/Long;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Long;->longValue()J
move-result-wide v2
const-wide/16 v6, 0x3e8
div-long/2addr v2, v6
const-string p1, "_logTime"
.line 119
invoke-virtual {v1, p1, v2, v3}, Landroid/os/Bundle;->putLong(Ljava/lang/String;J)V
.line 122
new-instance p1, Lcom/facebook/appevents/InternalAppEventsLogger;
const/4 v0, 0x0
invoke-direct {p1, p0, p2, v0}, Lcom/facebook/appevents/InternalAppEventsLogger;-><init>(Ljava/lang/String;Ljava/lang/String;Lcom/facebook/AccessToken;)V
.line 128
invoke-virtual {v5}, Ljava/lang/Long;->longValue()J
move-result-wide v2
long-to-double v2, v2
const-wide v4, 0x408f400000000000L # 1000.0
div-double/2addr v2, v4
const-string p0, "fb_mobile_deactivate_app"
.line 126
invoke-virtual {p1, p0, v2, v3, v1}, Lcom/facebook/appevents/InternalAppEventsLogger;->logEvent(Ljava/lang/String;DLandroid/os/Bundle;)V
return-void
.end method