VisibilityUtil.smali
.class public Lcom/taboola/android/utils/VisibilityUtil;
.super Ljava/lang/Object;
.source "VisibilityUtil.java"
# static fields
.field private static final TAG:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 14
const-class v0, Lcom/taboola/android/utils/VisibilityUtil;
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/taboola/android/utils/VisibilityUtil;->TAG:Ljava/lang/String;
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 12
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static convertCssPixelToPixel(I)I
.registers 2
.line 107
invoke-static {}, Landroid/content/res/Resources;->getSystem()Landroid/content/res/Resources;
move-result-object v0
invoke-virtual {v0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
move-result-object v0
iget v0, v0, Landroid/util/DisplayMetrics;->densityDpi:I
mul-int p0, p0, v0
div-int/lit16 p0, p0, 0xa0
return p0
.end method
.method public static convertToCssPixel(I)I
.registers 2
mul-int/lit16 p0, p0, 0xa0
.line 98
invoke-static {}, Landroid/content/res/Resources;->getSystem()Landroid/content/res/Resources;
move-result-object v0
invoke-virtual {v0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
move-result-object v0
iget v0, v0, Landroid/util/DisplayMetrics;->densityDpi:I
div-int/2addr p0, v0
return p0
.end method
.method private static createRectJSON(Landroid/graphics/Rect;)Lorg/json/JSONObject;
.registers 4
.line 75
:try_start_0
new-instance v0, Lorg/json/JSONObject;
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
const-string v1, "bottom"
.line 76
iget v2, p0, Landroid/graphics/Rect;->bottom:I
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
const-string v1, "height"
.line 77
invoke-virtual {p0}, Landroid/graphics/Rect;->height()I
move-result v2
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
const-string v1, "left"
.line 78
iget v2, p0, Landroid/graphics/Rect;->left:I
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
const-string v1, "right"
.line 79
iget v2, p0, Landroid/graphics/Rect;->right:I
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
const-string v1, "top"
.line 80
iget v2, p0, Landroid/graphics/Rect;->top:I
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
const-string v1, "width"
.line 81
invoke-virtual {p0}, Landroid/graphics/Rect;->width()I
move-result v2
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
const-string v1, "x"
.line 82
iget v2, p0, Landroid/graphics/Rect;->left:I
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
const-string v1, "y"
.line 83
iget p0, p0, Landroid/graphics/Rect;->top:I
invoke-virtual {v0, v1, p0}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
:try_end_41
.catch Lorg/json/JSONException; {:try_start_0 .. :try_end_41} :catch_42
return-object v0
:catch_42
move-exception p0
.line 87
sget-object v0, Lcom/taboola/android/utils/VisibilityUtil;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "createRectJSON :: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lorg/json/JSONException;->toString()Ljava/lang/String;
move-result-object p0
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v0, p0}, Lcom/taboola/android/utils/Logger;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 89
new-instance p0, Lorg/json/JSONObject;
invoke-direct {p0}, Lorg/json/JSONObject;-><init>()V
return-object p0
.end method
.method public static getScreenJsonRect()Lorg/json/JSONObject;
.registers 3
.line 58
invoke-static {}, Landroid/content/res/Resources;->getSystem()Landroid/content/res/Resources;
move-result-object v0
invoke-virtual {v0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
move-result-object v0
iget v0, v0, Landroid/util/DisplayMetrics;->heightPixels:I
invoke-static {v0}, Lcom/taboola/android/utils/VisibilityUtil;->convertToCssPixel(I)I
move-result v0
.line 59
invoke-static {}, Landroid/content/res/Resources;->getSystem()Landroid/content/res/Resources;
move-result-object v1
invoke-virtual {v1}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
move-result-object v1
iget v1, v1, Landroid/util/DisplayMetrics;->widthPixels:I
invoke-static {v1}, Lcom/taboola/android/utils/VisibilityUtil;->convertToCssPixel(I)I
move-result v1
.line 61
new-instance v2, Landroid/graphics/Rect;
invoke-direct {v2}, Landroid/graphics/Rect;-><init>()V
.line 62
iput v0, v2, Landroid/graphics/Rect;->bottom:I
.line 63
iput v1, v2, Landroid/graphics/Rect;->right:I
.line 64
invoke-static {v2}, Lcom/taboola/android/utils/VisibilityUtil;->createRectJSON(Landroid/graphics/Rect;)Lorg/json/JSONObject;
move-result-object v0
return-object v0
.end method
.method public static getViewJsonRect(Landroid/view/View;)Lorg/json/JSONObject;
.registers 6
.line 41
new-instance v0, Landroid/graphics/Rect;
invoke-direct {v0}, Landroid/graphics/Rect;-><init>()V
const/4 v1, 0x2
new-array v1, v1, [I
.line 43
invoke-virtual {p0, v1}, Landroid/view/View;->getLocationOnScreen([I)V
.line 44
invoke-virtual {p0}, Landroid/view/View;->getWidth()I
move-result v2
const/4 v3, 0x0
aget v4, v1, v3
add-int/2addr v2, v4
invoke-static {v2}, Lcom/taboola/android/utils/VisibilityUtil;->convertToCssPixel(I)I
move-result v2
iput v2, v0, Landroid/graphics/Rect;->right:I
.line 45
aget v2, v1, v3
invoke-static {v2}, Lcom/taboola/android/utils/VisibilityUtil;->convertToCssPixel(I)I
move-result v2
iput v2, v0, Landroid/graphics/Rect;->left:I
const/4 v2, 0x1
.line 46
aget v3, v1, v2
invoke-static {v3}, Lcom/taboola/android/utils/VisibilityUtil;->convertToCssPixel(I)I
move-result v3
iput v3, v0, Landroid/graphics/Rect;->top:I
.line 47
aget v1, v1, v2
invoke-virtual {p0}, Landroid/view/View;->getHeight()I
move-result p0
add-int/2addr v1, p0
invoke-static {v1}, Lcom/taboola/android/utils/VisibilityUtil;->convertToCssPixel(I)I
move-result p0
iput p0, v0, Landroid/graphics/Rect;->bottom:I
.line 49
invoke-static {v0}, Lcom/taboola/android/utils/VisibilityUtil;->createRectJSON(Landroid/graphics/Rect;)Lorg/json/JSONObject;
move-result-object p0
return-object p0
.end method
.method public static getVisiblePercent(Landroid/view/View;)I
.registers 7
.line 22
invoke-virtual {p0}, Landroid/view/View;->isShown()Z
move-result v0
if-eqz v0, :cond_44
.line 23
new-instance v0, Landroid/graphics/Rect;
invoke-direct {v0}, Landroid/graphics/Rect;-><init>()V
.line 24
invoke-virtual {p0, v0}, Landroid/view/View;->getGlobalVisibleRect(Landroid/graphics/Rect;)Z
move-result v1
if-eqz v1, :cond_44
.line 25
invoke-virtual {v0}, Landroid/graphics/Rect;->width()I
move-result v1
invoke-virtual {v0}, Landroid/graphics/Rect;->height()I
move-result v0
mul-int v1, v1, v0
int-to-double v0, v1
.line 26
invoke-virtual {p0}, Landroid/view/View;->getWidth()I
move-result v2
invoke-virtual {p0}, Landroid/view/View;->getHeight()I
move-result p0
mul-int v2, v2, p0
int-to-double v2, v2
const-wide/high16 v4, 0x4059000000000000L # 100.0
mul-double v0, v0, v4
div-double/2addr v0, v2
double-to-int p0, v0
.line 28
sget-object v0, Lcom/taboola/android/utils/VisibilityUtil;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "getVisiblePercent :: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lcom/taboola/android/utils/Logger;->d(Ljava/lang/String;Ljava/lang/String;)V
return p0
:cond_44
const/4 p0, -0x1
return p0
.end method