SdkVisibilityCheckScheduler.smali
.class Lcom/taboola/android/api/SdkVisibilityCheckScheduler;
.super Ljava/lang/Object;
.source "SdkVisibilityCheckScheduler.java"
# static fields
.field private static final AFTER_SCROLL_CHECK_DELAY_MS:I = 0x12c
.field private static final RESCHEDULE_SCROLL_CHECK_STEP_MS:I = 0x64
.field private static final STATIC_VISIBILITY_CHECK_STEP_MS:I = 0x190
.field private static final STATIC_VISIBILITY_CHECK_TIMEOUT_MS:I = 0x1388
.field private static final TAG:Ljava/lang/String;
# instance fields
.field private isRunning:Z
.field private isViewInScrollableParent:Z
.field private mLastScrollCheckRescheduleTimestamp:J
.field private mPerformOnScrollCheckRunnable:Ljava/lang/Runnable;
.field private final mPublisherId:Ljava/lang/String;
.field private mStartStaticMonitoringTimestamp:J
.field private mVisibilityMonitoringHandler:Landroid/os/Handler;
.field private observedView:Landroid/view/View;
.field private onScrollChangedListener:Landroid/view/ViewTreeObserver$OnScrollChangedListener;
.field private performStaticCheckRunnable:Ljava/lang/Runnable;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 17
const-class v0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->TAG:Ljava/lang/String;
return-void
.end method
.method constructor <init>(Landroid/view/View;Ljava/lang/String;)V
.registers 5
.line 36
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
.line 29
iput-boolean v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->isRunning:Z
.line 32
iput-boolean v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->isViewInScrollableParent:Z
const-wide/16 v0, 0x0
.line 33
iput-wide v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->mLastScrollCheckRescheduleTimestamp:J
.line 87
new-instance v0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler$1;
invoke-direct {v0, p0}, Lcom/taboola/android/api/SdkVisibilityCheckScheduler$1;-><init>(Lcom/taboola/android/api/SdkVisibilityCheckScheduler;)V
iput-object v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->onScrollChangedListener:Landroid/view/ViewTreeObserver$OnScrollChangedListener;
.line 104
new-instance v0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler$2;
invoke-direct {v0, p0}, Lcom/taboola/android/api/SdkVisibilityCheckScheduler$2;-><init>(Lcom/taboola/android/api/SdkVisibilityCheckScheduler;)V
iput-object v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->mPerformOnScrollCheckRunnable:Ljava/lang/Runnable;
.line 111
new-instance v0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler$3;
invoke-direct {v0, p0}, Lcom/taboola/android/api/SdkVisibilityCheckScheduler$3;-><init>(Lcom/taboola/android/api/SdkVisibilityCheckScheduler;)V
iput-object v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->performStaticCheckRunnable:Ljava/lang/Runnable;
.line 37
iput-object p2, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->mPublisherId:Ljava/lang/String;
.line 38
iput-object p1, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->observedView:Landroid/view/View;
.line 39
invoke-static {p2}, Lcom/taboola/android/api/TaboolaApi;->getInstance(Ljava/lang/String;)Lcom/taboola/android/api/TBPublisherApi;
move-result-object p1
invoke-virtual {p1}, Lcom/taboola/android/api/TBPublisherApi;->getVisibilityMonitoringHandler()Landroid/os/Handler;
move-result-object p1
iput-object p1, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->mVisibilityMonitoringHandler:Landroid/os/Handler;
return-void
.end method
.method static synthetic access$000(Lcom/taboola/android/api/SdkVisibilityCheckScheduler;)J
.registers 3
.line 16
iget-wide v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->mLastScrollCheckRescheduleTimestamp:J
return-wide v0
.end method
.method static synthetic access$002(Lcom/taboola/android/api/SdkVisibilityCheckScheduler;J)J
.registers 3
.line 16
iput-wide p1, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->mLastScrollCheckRescheduleTimestamp:J
return-wide p1
.end method
.method static synthetic access$100(Lcom/taboola/android/api/SdkVisibilityCheckScheduler;)Z
.registers 1
.line 16
iget-boolean p0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->isViewInScrollableParent:Z
return p0
.end method
.method static synthetic access$102(Lcom/taboola/android/api/SdkVisibilityCheckScheduler;Z)Z
.registers 2
.line 16
iput-boolean p1, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->isViewInScrollableParent:Z
return p1
.end method
.method static synthetic access$200(Lcom/taboola/android/api/SdkVisibilityCheckScheduler;)Ljava/lang/Runnable;
.registers 1
.line 16
iget-object p0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->mPerformOnScrollCheckRunnable:Ljava/lang/Runnable;
return-object p0
.end method
.method static synthetic access$300(Lcom/taboola/android/api/SdkVisibilityCheckScheduler;)Landroid/os/Handler;
.registers 1
.line 16
iget-object p0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->mVisibilityMonitoringHandler:Landroid/os/Handler;
return-object p0
.end method
.method static synthetic access$400(Lcom/taboola/android/api/SdkVisibilityCheckScheduler;)Landroid/view/View;
.registers 1
.line 16
iget-object p0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->observedView:Landroid/view/View;
return-object p0
.end method
.method static synthetic access$500(Lcom/taboola/android/api/SdkVisibilityCheckScheduler;Landroid/view/View;)V
.registers 2
.line 16
invoke-direct {p0, p1}, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->performCheckOnView(Landroid/view/View;)V
return-void
.end method
.method static synthetic access$600(Lcom/taboola/android/api/SdkVisibilityCheckScheduler;)J
.registers 3
.line 16
iget-wide v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->mStartStaticMonitoringTimestamp:J
return-wide v0
.end method
.method static synthetic access$700(Lcom/taboola/android/api/SdkVisibilityCheckScheduler;)Ljava/lang/Runnable;
.registers 1
.line 16
iget-object p0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->performStaticCheckRunnable:Ljava/lang/Runnable;
return-object p0
.end method
.method private performCheckOnView(Landroid/view/View;)V
.registers 4
.line 78
iget-object v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->observedView:Landroid/view/View;
if-eqz v0, :cond_17
.line 79
instance-of v1, p1, Lcom/taboola/android/api/TBImageView;
if-eqz v1, :cond_e
.line 80
check-cast v0, Lcom/taboola/android/api/TBImageView;
invoke-virtual {v0}, Lcom/taboola/android/api/TBImageView;->checkVisibility()V
goto :goto_17
.line 81
:cond_e
instance-of p1, p1, Lcom/taboola/android/api/TBTextView;
if-eqz p1, :cond_17
.line 82
check-cast v0, Lcom/taboola/android/api/TBTextView;
invoke-virtual {v0}, Lcom/taboola/android/api/TBTextView;->checkVisibility()V
:cond_17
:goto_17
return-void
.end method
.method private startScrollMonitoring()V
.registers 3
.line 69
iget-object v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->observedView:Landroid/view/View;
invoke-virtual {v0}, Landroid/view/View;->getViewTreeObserver()Landroid/view/ViewTreeObserver;
move-result-object v0
iget-object v1, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->onScrollChangedListener:Landroid/view/ViewTreeObserver$OnScrollChangedListener;
invoke-virtual {v0, v1}, Landroid/view/ViewTreeObserver;->addOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V
return-void
.end method
.method private startStaticMonitoring()V
.registers 5
.line 59
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
iput-wide v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->mStartStaticMonitoringTimestamp:J
.line 60
iget-object v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->mVisibilityMonitoringHandler:Landroid/os/Handler;
iget-object v1, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->performStaticCheckRunnable:Ljava/lang/Runnable;
const-wide/16 v2, 0x190
invoke-virtual {v0, v1, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
return-void
.end method
.method private stopScrollMonitoring()V
.registers 3
.line 73
iget-object v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->observedView:Landroid/view/View;
invoke-virtual {v0}, Landroid/view/View;->getViewTreeObserver()Landroid/view/ViewTreeObserver;
move-result-object v0
iget-object v1, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->onScrollChangedListener:Landroid/view/ViewTreeObserver$OnScrollChangedListener;
invoke-virtual {v0, v1}, Landroid/view/ViewTreeObserver;->removeOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V
.line 74
iget-object v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->mVisibilityMonitoringHandler:Landroid/os/Handler;
iget-object v1, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->mPerformOnScrollCheckRunnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
return-void
.end method
.method private stopStaticMonitoring()V
.registers 3
.line 65
iget-object v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->mVisibilityMonitoringHandler:Landroid/os/Handler;
iget-object v1, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->performStaticCheckRunnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
return-void
.end method
# virtual methods
.method declared-synchronized startVisibilityMonitoring()V
.registers 2
monitor-enter p0
.line 43
:try_start_1
iget-boolean v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->isRunning:Z
if-nez v0, :cond_e
const/4 v0, 0x1
.line 44
iput-boolean v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->isRunning:Z
.line 45
invoke-direct {p0}, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->startStaticMonitoring()V
.line 46
invoke-direct {p0}, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->startScrollMonitoring()V
:try_end_e
.catchall {:try_start_1 .. :try_end_e} :catchall_10
.line 48
:cond_e
monitor-exit p0
return-void
:catchall_10
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized stopVisibilityMonitoring()V
.registers 2
monitor-enter p0
.line 51
:try_start_1
iget-boolean v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->isRunning:Z
if-eqz v0, :cond_e
const/4 v0, 0x0
.line 52
iput-boolean v0, p0, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->isRunning:Z
.line 53
invoke-direct {p0}, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->stopScrollMonitoring()V
.line 54
invoke-direct {p0}, Lcom/taboola/android/api/SdkVisibilityCheckScheduler;->stopStaticMonitoring()V
:try_end_e
.catchall {:try_start_1 .. :try_end_e} :catchall_10
.line 56
:cond_e
monitor-exit p0
return-void
:catchall_10
move-exception v0
monitor-exit p0
throw v0
.end method