.class public Lz/i; .super Ljava/lang/Object; .source "ViewPorts.java" # direct methods .method public constructor ()V .locals 0 .line 1 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static a(Landroid/graphics/Rect;ZLandroid/util/Rational;IIILjava/util/Map;)Ljava/util/Map; .locals 8 .param p0 # Landroid/graphics/Rect; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .param p2 # Landroid/util/Rational; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .param p3 # I .annotation build Landroidx/annotation/IntRange; from = 0x0L to = 0x167L .end annotation .end param .param p6 # Ljava/util/Map; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation build Landroidx/annotation/NonNull; .end annotation .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } names = { "fullSensorRect", "isFrontCamera", "viewPortAspectRatio", "outputRotationDegrees", "scaleType", "layoutDirection", "useCaseSizes" } .end annotation .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroid/graphics/Rect;", "Z", "Landroid/util/Rational;", "III", "Ljava/util/Map<", "Landroidx/camera/core/UseCase;", "Landroid/util/Size;", ">;)", "Ljava/util/Map<", "Landroidx/camera/core/UseCase;", "Landroid/graphics/Rect;", ">;" } .end annotation .line 1 invoke-virtual {p0}, Landroid/graphics/Rect;->width()I move-result v0 if-lez v0, :cond_0 invoke-virtual {p0}, Landroid/graphics/Rect;->height()I move-result v0 if-lez v0, :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 const-string v1, "Cannot compute viewport crop rects zero sized sensor rect." .line 2 invoke-static {v0, v1}, Lr1/o;->b(ZLjava/lang/Object;)V .line 3 new-instance v0, Landroid/graphics/RectF; invoke-direct {v0, p0}, Landroid/graphics/RectF;->(Landroid/graphics/Rect;)V .line 4 new-instance v1, Ljava/util/HashMap; invoke-direct {v1}, Ljava/util/HashMap;->()V .line 5 new-instance v2, Landroid/graphics/RectF; invoke-direct {v2, p0}, Landroid/graphics/RectF;->(Landroid/graphics/Rect;)V .line 6 invoke-interface {p6}, Ljava/util/Map;->entrySet()Ljava/util/Set; move-result-object p0 invoke-interface {p0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object p0 :goto_1 invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z move-result p6 if-eqz p6, :cond_1 invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object p6 check-cast p6, Ljava/util/Map$Entry; .line 7 new-instance v3, Landroid/graphics/Matrix; invoke-direct {v3}, Landroid/graphics/Matrix;->()V .line 8 new-instance v4, Landroid/graphics/RectF; invoke-interface {p6}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v5 check-cast v5, Landroid/util/Size; invoke-virtual {v5}, Landroid/util/Size;->getWidth()I move-result v5 int-to-float v5, v5 .line 9 invoke-interface {p6}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v6 check-cast v6, Landroid/util/Size; invoke-virtual {v6}, Landroid/util/Size;->getHeight()I move-result v6 int-to-float v6, v6 const/4 v7, 0x0 invoke-direct {v4, v7, v7, v5, v6}, Landroid/graphics/RectF;->(FFFF)V .line 10 sget-object v5, Landroid/graphics/Matrix$ScaleToFit;->CENTER:Landroid/graphics/Matrix$ScaleToFit; invoke-virtual {v3, v4, v0, v5}, Landroid/graphics/Matrix;->setRectToRect(Landroid/graphics/RectF;Landroid/graphics/RectF;Landroid/graphics/Matrix$ScaleToFit;)Z .line 11 invoke-interface {p6}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object p6 check-cast p6, Landroidx/camera/core/UseCase; invoke-virtual {v1, p6, v3}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .line 12 new-instance p6, Landroid/graphics/RectF; invoke-direct {p6}, Landroid/graphics/RectF;->()V .line 13 invoke-virtual {v3, p6, v4}, Landroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z .line 14 invoke-virtual {v2, p6}, Landroid/graphics/RectF;->intersect(Landroid/graphics/RectF;)Z goto :goto_1 .line 15 :cond_1 invoke-static {p3, p2}, Landroidx/camera/core/internal/utils/ImageUtil;->c(ILandroid/util/Rational;)Landroid/util/Rational; move-result-object v3 move v4, p4 move v5, p1 move v6, p5 move v7, p3 .line 16 invoke-static/range {v2 .. v7}, Lz/i;->g(Landroid/graphics/RectF;Landroid/util/Rational;IZII)Landroid/graphics/RectF; move-result-object p0 .line 17 new-instance p1, Ljava/util/HashMap; invoke-direct {p1}, Ljava/util/HashMap;->()V .line 18 new-instance p2, Landroid/graphics/RectF; invoke-direct {p2}, Landroid/graphics/RectF;->()V .line 19 new-instance p3, Landroid/graphics/Matrix; invoke-direct {p3}, Landroid/graphics/Matrix;->()V .line 20 invoke-virtual {v1}, Ljava/util/HashMap;->entrySet()Ljava/util/Set; move-result-object p4 invoke-interface {p4}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object p4 :goto_2 invoke-interface {p4}, Ljava/util/Iterator;->hasNext()Z move-result p5 if-eqz p5, :cond_2 invoke-interface {p4}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object p5 check-cast p5, Ljava/util/Map$Entry; .line 21 invoke-interface {p5}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object p6 check-cast p6, Landroid/graphics/Matrix; invoke-virtual {p6, p3}, Landroid/graphics/Matrix;->invert(Landroid/graphics/Matrix;)Z .line 22 invoke-virtual {p3, p2, p0}, Landroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z .line 23 new-instance p6, Landroid/graphics/Rect; invoke-direct {p6}, Landroid/graphics/Rect;->()V .line 24 invoke-virtual {p2, p6}, Landroid/graphics/RectF;->round(Landroid/graphics/Rect;)V .line 25 invoke-interface {p5}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object p5 check-cast p5, Landroidx/camera/core/UseCase; invoke-virtual {p1, p5, p6}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_2 :cond_2 return-object p1 .end method .method public static b(ZILandroid/graphics/RectF;Landroid/graphics/RectF;)Landroid/graphics/RectF; .locals 6 .param p1 # I .annotation build Landroidx/annotation/IntRange; from = 0x0L to = 0x167L .end annotation .end param .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0, 0x0, 0x0 } names = { "isMirrored", "rotationDegrees", "containerRect", "cropRect" } .end annotation const/4 v0, 0x1 const/4 v1, 0x0 if-nez p1, :cond_0 if-nez p0, :cond_0 move v2, v0 goto :goto_0 :cond_0 move v2, v1 :goto_0 const/16 v3, 0x5a if-ne p1, v3, :cond_1 if-eqz p0, :cond_1 move v4, v0 goto :goto_1 :cond_1 move v4, v1 :goto_1 if-nez v2, :cond_f if-eqz v4, :cond_2 goto/16 :goto_b :cond_2 if-nez p1, :cond_3 if-eqz p0, :cond_3 move v2, v0 goto :goto_2 :cond_3 move v2, v1 :goto_2 const/16 v4, 0x10e if-ne p1, v4, :cond_4 if-nez p0, :cond_4 move v5, v0 goto :goto_3 :cond_4 move v5, v1 :goto_3 if-nez v2, :cond_e if-eqz v5, :cond_5 goto/16 :goto_a :cond_5 if-ne p1, v3, :cond_6 if-nez p0, :cond_6 move v2, v0 goto :goto_4 :cond_6 move v2, v1 :goto_4 const/16 v3, 0xb4 if-ne p1, v3, :cond_7 if-eqz p0, :cond_7 move v5, v0 goto :goto_5 :cond_7 move v5, v1 :goto_5 if-nez v2, :cond_d if-eqz v5, :cond_8 goto :goto_9 :cond_8 if-ne p1, v3, :cond_9 if-nez p0, :cond_9 move v2, v0 goto :goto_6 :cond_9 move v2, v1 :goto_6 if-ne p1, v4, :cond_a if-eqz p0, :cond_a goto :goto_7 :cond_a move v0, v1 :goto_7 if-nez v2, :cond_c if-eqz v0, :cond_b goto :goto_8 .line 1 :cond_b new-instance p2, Ljava/lang/IllegalArgumentException; new-instance p3, Ljava/lang/StringBuilder; invoke-direct {p3}, Ljava/lang/StringBuilder;->()V const-string v0, "Invalid argument: mirrored " invoke-virtual {p3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p3, p0}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder; const-string p0, " rotation " invoke-virtual {p3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-direct {p2, p0}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p2 .line 2 :cond_c :goto_8 invoke-virtual {p2}, Landroid/graphics/RectF;->centerY()F move-result p0 invoke-static {p3, p0}, Lz/i;->d(Landroid/graphics/RectF;F)Landroid/graphics/RectF; move-result-object p0 .line 3 invoke-virtual {p2}, Landroid/graphics/RectF;->centerX()F move-result p1 .line 4 invoke-static {p0, p1}, Lz/i;->c(Landroid/graphics/RectF;F)Landroid/graphics/RectF; move-result-object p0 return-object p0 .line 5 :cond_d :goto_9 invoke-virtual {p2}, Landroid/graphics/RectF;->centerY()F move-result p0 invoke-static {p3, p0}, Lz/i;->d(Landroid/graphics/RectF;F)Landroid/graphics/RectF; move-result-object p0 return-object p0 .line 6 :cond_e :goto_a invoke-virtual {p2}, Landroid/graphics/RectF;->centerX()F move-result p0 invoke-static {p3, p0}, Lz/i;->c(Landroid/graphics/RectF;F)Landroid/graphics/RectF; move-result-object p0 return-object p0 :cond_f :goto_b return-object p3 .end method .method public static c(Landroid/graphics/RectF;F)Landroid/graphics/RectF; .locals 4 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0 } names = { "original", "flipLineX" } .end annotation .line 1 new-instance v0, Landroid/graphics/RectF; iget v1, p0, Landroid/graphics/RectF;->right:F .line 2 invoke-static {v1, p1}, Lz/i;->e(FF)F move-result v1 iget v2, p0, Landroid/graphics/RectF;->top:F iget v3, p0, Landroid/graphics/RectF;->left:F .line 3 invoke-static {v3, p1}, Lz/i;->e(FF)F move-result p1 iget p0, p0, Landroid/graphics/RectF;->bottom:F invoke-direct {v0, v1, v2, p1, p0}, Landroid/graphics/RectF;->(FFFF)V return-object v0 .end method .method public static d(Landroid/graphics/RectF;F)Landroid/graphics/RectF; .locals 4 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0 } names = { "original", "flipLineY" } .end annotation .line 1 new-instance v0, Landroid/graphics/RectF; iget v1, p0, Landroid/graphics/RectF;->left:F iget v2, p0, Landroid/graphics/RectF;->bottom:F .line 2 invoke-static {v2, p1}, Lz/i;->f(FF)F move-result v2 iget v3, p0, Landroid/graphics/RectF;->right:F iget p0, p0, Landroid/graphics/RectF;->top:F .line 3 invoke-static {p0, p1}, Lz/i;->f(FF)F move-result p0 invoke-direct {v0, v1, v2, v3, p0}, Landroid/graphics/RectF;->(FFFF)V return-object v0 .end method .method public static e(FF)F .locals 0 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0 } names = { "x", "flipLineX" } .end annotation add-float/2addr p1, p1 sub-float/2addr p1, p0 return p1 .end method .method public static f(FF)F .locals 0 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0 } names = { "y", "flipLineY" } .end annotation add-float/2addr p1, p1 sub-float/2addr p1, p0 return p1 .end method .method public static g(Landroid/graphics/RectF;Landroid/util/Rational;IZII)Landroid/graphics/RectF; .locals 4 .param p0 # Landroid/graphics/RectF; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .param p1 # Landroid/util/Rational; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .param p5 # I .annotation build Landroidx/annotation/IntRange; from = 0x0L to = 0x167L .end annotation .end param .annotation build Landroid/annotation/SuppressLint; value = { "SwitchIntDef" } .end annotation .annotation build Landroidx/annotation/NonNull; .end annotation .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } names = { "fittingRect", "containerAspectRatio", "scaleType", "isFrontCamera", "layoutDirection", "rotationDegrees" } .end annotation const/4 v0, 0x3 if-ne p2, v0, :cond_0 return-object p0 .line 1 :cond_0 new-instance v0, Landroid/graphics/Matrix; invoke-direct {v0}, Landroid/graphics/Matrix;->()V .line 2 new-instance v1, Landroid/graphics/RectF; invoke-virtual {p1}, Landroid/util/Rational;->getNumerator()I move-result v2 int-to-float v2, v2 .line 3 invoke-virtual {p1}, Landroid/util/Rational;->getDenominator()I move-result p1 int-to-float p1, p1 const/4 v3, 0x0 invoke-direct {v1, v3, v3, v2, p1}, Landroid/graphics/RectF;->(FFFF)V if-eqz p2, :cond_3 const/4 p1, 0x1 if-eq p2, p1, :cond_2 const/4 p1, 0x2 if-ne p2, p1, :cond_1 .line 4 sget-object p1, Landroid/graphics/Matrix$ScaleToFit;->END:Landroid/graphics/Matrix$ScaleToFit; invoke-virtual {v0, v1, p0, p1}, Landroid/graphics/Matrix;->setRectToRect(Landroid/graphics/RectF;Landroid/graphics/RectF;Landroid/graphics/Matrix$ScaleToFit;)Z goto :goto_0 .line 5 :cond_1 new-instance p0, Ljava/lang/IllegalStateException; const-string p1, "Unexpected scale type: " invoke-static {p1, p2}, Landroid/support/v4/media/b;->a(Ljava/lang/String;I)Ljava/lang/String; move-result-object p1 invoke-direct {p0, p1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p0 .line 6 :cond_2 sget-object p1, Landroid/graphics/Matrix$ScaleToFit;->CENTER:Landroid/graphics/Matrix$ScaleToFit; invoke-virtual {v0, v1, p0, p1}, Landroid/graphics/Matrix;->setRectToRect(Landroid/graphics/RectF;Landroid/graphics/RectF;Landroid/graphics/Matrix$ScaleToFit;)Z goto :goto_0 .line 7 :cond_3 sget-object p1, Landroid/graphics/Matrix$ScaleToFit;->START:Landroid/graphics/Matrix$ScaleToFit; invoke-virtual {v0, v1, p0, p1}, Landroid/graphics/Matrix;->setRectToRect(Landroid/graphics/RectF;Landroid/graphics/RectF;Landroid/graphics/Matrix$ScaleToFit;)Z .line 8 :goto_0 new-instance p1, Landroid/graphics/RectF; invoke-direct {p1}, Landroid/graphics/RectF;->()V .line 9 invoke-virtual {v0, p1, v1}, Landroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z .line 10 invoke-static {p3, p4}, Lz/i;->h(ZI)Z move-result p2 .line 11 invoke-static {p2, p5, p0, p1}, Lz/i;->b(ZILandroid/graphics/RectF;Landroid/graphics/RectF;)Landroid/graphics/RectF; move-result-object p0 return-object p0 .end method .method public static h(ZI)Z .locals 1 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0 } names = { "isFrontCamera", "layoutDirection" } .end annotation const/4 v0, 0x1 if-ne p1, v0, :cond_0 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 xor-int/2addr p0, v0 return p0 .end method