Path: blob/master/Compiled_apk/smali/androidx/customview/widget/FocusStrategy.smali
2463 views
.class Landroidx/customview/widget/FocusStrategy; .super Ljava/lang/Object; .source "FocusStrategy.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Landroidx/customview/widget/FocusStrategy$CollectionAdapter;, Landroidx/customview/widget/FocusStrategy$BoundsAdapter;, Landroidx/customview/widget/FocusStrategy$SequentialComparator; } .end annotation # direct methods .method private constructor <init>()V .locals 0 .line 454 invoke-direct {p0}, Ljava/lang/Object;-><init>()V .line 455 return-void .end method .method private static beamBeats(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z .locals 6 .param p0, "direction" # I .param p1, "source" # Landroid/graphics/Rect; .param p2, "rect1" # Landroid/graphics/Rect; .param p3, "rect2" # Landroid/graphics/Rect; .line 243 invoke-static {p0, p1, p2}, Landroidx/customview/widget/FocusStrategy;->beamsOverlap(ILandroid/graphics/Rect;Landroid/graphics/Rect;)Z move-result v0 .line 244 .local v0, "rect1InSrcBeam":Z invoke-static {p0, p1, p3}, Landroidx/customview/widget/FocusStrategy;->beamsOverlap(ILandroid/graphics/Rect;Landroid/graphics/Rect;)Z move-result v1 .line 247 .local v1, "rect2InSrcBeam":Z const/4 v2, 0x0 if-nez v1, :cond_5 if-nez v0, :cond_0 goto :goto_1 .line 257 :cond_0 invoke-static {p0, p1, p3}, Landroidx/customview/widget/FocusStrategy;->isToDirectionOf(ILandroid/graphics/Rect;Landroid/graphics/Rect;)Z move-result v3 const/4 v4, 0x1 if-nez v3, :cond_1 .line 258 return v4 .line 263 :cond_1 const/16 v3, 0x11 if-eq p0, v3, :cond_4 const/16 v3, 0x42 if-ne p0, v3, :cond_2 goto :goto_0 .line 271 :cond_2 invoke-static {p0, p1, p2}, Landroidx/customview/widget/FocusStrategy;->majorAxisDistance(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I move-result v3 .line 272 invoke-static {p0, p1, p3}, Landroidx/customview/widget/FocusStrategy;->majorAxisDistanceToFarEdge(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I move-result v5 if-ge v3, v5, :cond_3 const/4 v2, 0x1 :cond_3 return v2 .line 264 :cond_4 :goto_0 return v4 .line 248 :cond_5 :goto_1 return v2 .end method .method private static beamsOverlap(ILandroid/graphics/Rect;Landroid/graphics/Rect;)Z .locals 4 .param p0, "direction" # I .param p1, "rect1" # Landroid/graphics/Rect; .param p2, "rect2" # Landroid/graphics/Rect; .line 326 const/16 v0, 0x11 const/4 v1, 0x1 const/4 v2, 0x0 if-eq p0, v0, :cond_3 const/16 v0, 0x21 if-eq p0, v0, :cond_1 const/16 v0, 0x42 if-eq p0, v0, :cond_3 const/16 v0, 0x82 if-ne p0, v0, :cond_0 goto :goto_0 .line 334 :cond_0 new-instance v0, Ljava/lang/IllegalArgumentException; const-string v1, "direction must be one of {FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}." invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V throw v0 .line 332 :cond_1 :goto_0 iget v0, p2, Landroid/graphics/Rect;->right:I iget v3, p1, Landroid/graphics/Rect;->left:I if-lt v0, v3, :cond_2 iget v0, p2, Landroid/graphics/Rect;->left:I iget v3, p1, Landroid/graphics/Rect;->right:I if-gt v0, v3, :cond_2 goto :goto_1 :cond_2 const/4 v1, 0x0 :goto_1 return v1 .line 329 :cond_3 iget v0, p2, Landroid/graphics/Rect;->bottom:I iget v3, p1, Landroid/graphics/Rect;->top:I if-lt v0, v3, :cond_4 iget v0, p2, Landroid/graphics/Rect;->top:I iget v3, p1, Landroid/graphics/Rect;->bottom:I if-gt v0, v3, :cond_4 goto :goto_2 :cond_4 const/4 v1, 0x0 :goto_2 return v1 .end method .method public static findNextFocusInAbsoluteDirection(Ljava/lang/Object;Landroidx/customview/widget/FocusStrategy$CollectionAdapter;Landroidx/customview/widget/FocusStrategy$BoundsAdapter;Ljava/lang/Object;Landroid/graphics/Rect;I)Ljava/lang/Object; .locals 7 .param p4, "focusedRect" # Landroid/graphics/Rect; .param p5, "direction" # I .annotation system Ldalvik/annotation/Signature; value = { "<", "L:Ljava/lang/Object;", "T:", "Ljava/lang/Object;", ">(T", "L;", "Landroidx/customview/widget/FocusStrategy$CollectionAdapter<", "T", "L;", "TT;>;", "Landroidx/customview/widget/FocusStrategy$BoundsAdapter<", "TT;>;TT;", "Landroid/graphics/Rect;", "I)TT;" } .end annotation .line 145 .local p0, "focusables":Ljava/lang/Object;, "TL;" .local p1, "collectionAdapter":Landroidx/customview/widget/FocusStrategy$CollectionAdapter;, "Landroidx/customview/widget/FocusStrategy$CollectionAdapter<TL;TT;>;" .local p2, "adapter":Landroidx/customview/widget/FocusStrategy$BoundsAdapter;, "Landroidx/customview/widget/FocusStrategy$BoundsAdapter<TT;>;" .local p3, "focused":Ljava/lang/Object;, "TT;" new-instance v0, Landroid/graphics/Rect; invoke-direct {v0, p4}, Landroid/graphics/Rect;-><init>(Landroid/graphics/Rect;)V .line 147 .local v0, "bestCandidateRect":Landroid/graphics/Rect; const/16 v1, 0x11 const/4 v2, 0x0 if-eq p5, v1, :cond_3 const/16 v1, 0x21 if-eq p5, v1, :cond_2 const/16 v1, 0x42 if-eq p5, v1, :cond_1 const/16 v1, 0x82 if-ne p5, v1, :cond_0 .line 158 invoke-virtual {p4}, Landroid/graphics/Rect;->height()I move-result v1 add-int/lit8 v1, v1, 0x1 neg-int v1, v1 invoke-virtual {v0, v2, v1}, Landroid/graphics/Rect;->offset(II)V .line 159 goto :goto_0 .line 161 :cond_0 new-instance v1, Ljava/lang/IllegalArgumentException; const-string v2, "direction must be one of {FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}." invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V throw v1 .line 152 :cond_1 invoke-virtual {p4}, Landroid/graphics/Rect;->width()I move-result v1 add-int/lit8 v1, v1, 0x1 neg-int v1, v1 invoke-virtual {v0, v1, v2}, Landroid/graphics/Rect;->offset(II)V .line 153 goto :goto_0 .line 155 :cond_2 invoke-virtual {p4}, Landroid/graphics/Rect;->height()I move-result v1 add-int/lit8 v1, v1, 0x1 invoke-virtual {v0, v2, v1}, Landroid/graphics/Rect;->offset(II)V .line 156 goto :goto_0 .line 149 :cond_3 invoke-virtual {p4}, Landroid/graphics/Rect;->width()I move-result v1 add-int/lit8 v1, v1, 0x1 invoke-virtual {v0, v1, v2}, Landroid/graphics/Rect;->offset(II)V .line 150 nop .line 165 :goto_0 const/4 v1, 0x0 .line 167 .local v1, "closest":Ljava/lang/Object;, "TT;" invoke-interface {p1, p0}, Landroidx/customview/widget/FocusStrategy$CollectionAdapter;->size(Ljava/lang/Object;)I move-result v2 .line 168 .local v2, "count":I new-instance v3, Landroid/graphics/Rect; invoke-direct {v3}, Landroid/graphics/Rect;-><init>()V .line 169 .local v3, "focusableRect":Landroid/graphics/Rect; const/4 v4, 0x0 .local v4, "i":I :goto_1 if-ge v4, v2, :cond_6 .line 170 invoke-interface {p1, p0, v4}, Landroidx/customview/widget/FocusStrategy$CollectionAdapter;->get(Ljava/lang/Object;I)Ljava/lang/Object; move-result-object v5 .line 171 .local v5, "focusable":Ljava/lang/Object;, "TT;" if-ne v5, p3, :cond_4 .line 172 goto :goto_2 .line 176 :cond_4 invoke-interface {p2, v5, v3}, Landroidx/customview/widget/FocusStrategy$BoundsAdapter;->obtainBounds(Ljava/lang/Object;Landroid/graphics/Rect;)V .line 177 invoke-static {p5, p4, v3, v0}, Landroidx/customview/widget/FocusStrategy;->isBetterCandidate(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z move-result v6 if-eqz v6, :cond_5 .line 178 invoke-virtual {v0, v3}, Landroid/graphics/Rect;->set(Landroid/graphics/Rect;)V .line 179 move-object v1, v5 .line 169 .end local v5 # "focusable":Ljava/lang/Object;, "TT;" :cond_5 :goto_2 add-int/lit8 v4, v4, 0x1 goto :goto_1 .line 183 .end local v4 # "i":I :cond_6 return-object v1 .end method .method public static findNextFocusInRelativeDirection(Ljava/lang/Object;Landroidx/customview/widget/FocusStrategy$CollectionAdapter;Landroidx/customview/widget/FocusStrategy$BoundsAdapter;Ljava/lang/Object;IZZ)Ljava/lang/Object; .locals 5 .param p4, "direction" # I .param p5, "isLayoutRtl" # Z .param p6, "wrap" # Z .annotation system Ldalvik/annotation/Signature; value = { "<", "L:Ljava/lang/Object;", "T:", "Ljava/lang/Object;", ">(T", "L;", "Landroidx/customview/widget/FocusStrategy$CollectionAdapter<", "T", "L;", "TT;>;", "Landroidx/customview/widget/FocusStrategy$BoundsAdapter<", "TT;>;TT;IZZ)TT;" } .end annotation .line 40 .local p0, "focusables":Ljava/lang/Object;, "TL;" .local p1, "collectionAdapter":Landroidx/customview/widget/FocusStrategy$CollectionAdapter;, "Landroidx/customview/widget/FocusStrategy$CollectionAdapter<TL;TT;>;" .local p2, "adapter":Landroidx/customview/widget/FocusStrategy$BoundsAdapter;, "Landroidx/customview/widget/FocusStrategy$BoundsAdapter<TT;>;" .local p3, "focused":Ljava/lang/Object;, "TT;" invoke-interface {p1, p0}, Landroidx/customview/widget/FocusStrategy$CollectionAdapter;->size(Ljava/lang/Object;)I move-result v0 .line 41 .local v0, "count":I new-instance v1, Ljava/util/ArrayList; invoke-direct {v1, v0}, Ljava/util/ArrayList;-><init>(I)V .line 42 .local v1, "sortedFocusables":Ljava/util/ArrayList;, "Ljava/util/ArrayList<TT;>;" const/4 v2, 0x0 .local v2, "i":I :goto_0 if-ge v2, v0, :cond_0 .line 43 invoke-interface {p1, p0, v2}, Landroidx/customview/widget/FocusStrategy$CollectionAdapter;->get(Ljava/lang/Object;I)Ljava/lang/Object; move-result-object v3 invoke-virtual {v1, v3}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z .line 42 add-int/lit8 v2, v2, 0x1 goto :goto_0 .line 46 .end local v2 # "i":I :cond_0 new-instance v2, Landroidx/customview/widget/FocusStrategy$SequentialComparator; invoke-direct {v2, p5, p2}, Landroidx/customview/widget/FocusStrategy$SequentialComparator;-><init>(ZLandroidx/customview/widget/FocusStrategy$BoundsAdapter;)V .line 47 .local v2, "comparator":Landroidx/customview/widget/FocusStrategy$SequentialComparator;, "Landroidx/customview/widget/FocusStrategy$SequentialComparator<TT;>;" invoke-static {v1, v2}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V .line 49 const/4 v3, 0x1 if-eq p4, v3, :cond_2 const/4 v3, 0x2 if-ne p4, v3, :cond_1 .line 51 invoke-static {p3, v1, p6}, Landroidx/customview/widget/FocusStrategy;->getNextFocusable(Ljava/lang/Object;Ljava/util/ArrayList;Z)Ljava/lang/Object; move-result-object v3 return-object v3 .line 55 :cond_1 new-instance v3, Ljava/lang/IllegalArgumentException; const-string v4, "direction must be one of {FOCUS_FORWARD, FOCUS_BACKWARD}." invoke-direct {v3, v4}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V throw v3 .line 53 :cond_2 invoke-static {p3, v1, p6}, Landroidx/customview/widget/FocusStrategy;->getPreviousFocusable(Ljava/lang/Object;Ljava/util/ArrayList;Z)Ljava/lang/Object; move-result-object v3 return-object v3 .end method .method private static getNextFocusable(Ljava/lang/Object;Ljava/util/ArrayList;Z)Ljava/lang/Object; .locals 3 .param p2, "wrap" # Z .annotation system Ldalvik/annotation/Signature; value = { "<T:", "Ljava/lang/Object;", ">(TT;", "Ljava/util/ArrayList<", "TT;>;Z)TT;" } .end annotation .line 61 .local p0, "focused":Ljava/lang/Object;, "TT;" .local p1, "focusables":Ljava/util/ArrayList;, "Ljava/util/ArrayList<TT;>;" invoke-virtual {p1}, Ljava/util/ArrayList;->size()I move-result v0 .line 65 .local v0, "count":I if-nez p0, :cond_0 const/4 v1, -0x1 goto :goto_0 :cond_0 invoke-virtual {p1, p0}, Ljava/util/ArrayList;->lastIndexOf(Ljava/lang/Object;)I move-result v1 :goto_0 add-int/lit8 v1, v1, 0x1 .line 66 .local v1, "position":I if-ge v1, v0, :cond_1 .line 67 invoke-virtual {p1, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; move-result-object v2 return-object v2 .line 68 :cond_1 if-eqz p2, :cond_2 if-lez v0, :cond_2 .line 69 const/4 v2, 0x0 invoke-virtual {p1, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; move-result-object v2 return-object v2 .line 71 :cond_2 const/4 v2, 0x0 return-object v2 .end method .method private static getPreviousFocusable(Ljava/lang/Object;Ljava/util/ArrayList;Z)Ljava/lang/Object; .locals 3 .param p2, "wrap" # Z .annotation system Ldalvik/annotation/Signature; value = { "<T:", "Ljava/lang/Object;", ">(TT;", "Ljava/util/ArrayList<", "TT;>;Z)TT;" } .end annotation .line 76 .local p0, "focused":Ljava/lang/Object;, "TT;" .local p1, "focusables":Ljava/util/ArrayList;, "Ljava/util/ArrayList<TT;>;" invoke-virtual {p1}, Ljava/util/ArrayList;->size()I move-result v0 .line 80 .local v0, "count":I if-nez p0, :cond_0 move v1, v0 goto :goto_0 :cond_0 invoke-virtual {p1, p0}, Ljava/util/ArrayList;->indexOf(Ljava/lang/Object;)I move-result v1 :goto_0 add-int/lit8 v1, v1, -0x1 .line 81 .local v1, "position":I if-ltz v1, :cond_1 .line 82 invoke-virtual {p1, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; move-result-object v2 return-object v2 .line 83 :cond_1 if-eqz p2, :cond_2 if-lez v0, :cond_2 .line 84 add-int/lit8 v2, v0, -0x1 invoke-virtual {p1, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; move-result-object v2 return-object v2 .line 86 :cond_2 const/4 v2, 0x0 return-object v2 .end method .method private static getWeightedDistanceFor(II)I .locals 2 .param p0, "majorAxisDistance" # I .param p1, "minorAxisDistance" # I .line 283 mul-int/lit8 v0, p0, 0xd mul-int v0, v0, p0 mul-int v1, p1, p1 add-int/2addr v0, v1 return v0 .end method .method private static isBetterCandidate(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z .locals 5 .param p0, "direction" # I .param p1, "source" # Landroid/graphics/Rect; .param p2, "candidate" # Landroid/graphics/Rect; .param p3, "currentBest" # Landroid/graphics/Rect; .line 203 invoke-static {p1, p2, p0}, Landroidx/customview/widget/FocusStrategy;->isCandidate(Landroid/graphics/Rect;Landroid/graphics/Rect;I)Z move-result v0 const/4 v1, 0x0 if-nez v0, :cond_0 .line 204 return v1 .line 209 :cond_0 invoke-static {p1, p3, p0}, Landroidx/customview/widget/FocusStrategy;->isCandidate(Landroid/graphics/Rect;Landroid/graphics/Rect;I)Z move-result v0 const/4 v2, 0x1 if-nez v0, :cond_1 .line 210 return v2 .line 214 :cond_1 invoke-static {p0, p1, p2, p3}, Landroidx/customview/widget/FocusStrategy;->beamBeats(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z move-result v0 if-eqz v0, :cond_2 .line 215 return v2 .line 219 :cond_2 invoke-static {p0, p1, p3, p2}, Landroidx/customview/widget/FocusStrategy;->beamBeats(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z move-result v0 if-eqz v0, :cond_3 .line 220 return v1 .line 225 :cond_3 nop .line 226 invoke-static {p0, p1, p2}, Landroidx/customview/widget/FocusStrategy;->majorAxisDistance(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I move-result v0 .line 227 invoke-static {p0, p1, p2}, Landroidx/customview/widget/FocusStrategy;->minorAxisDistance(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I move-result v3 .line 225 invoke-static {v0, v3}, Landroidx/customview/widget/FocusStrategy;->getWeightedDistanceFor(II)I move-result v0 .line 228 .local v0, "candidateDist":I nop .line 229 invoke-static {p0, p1, p3}, Landroidx/customview/widget/FocusStrategy;->majorAxisDistance(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I move-result v3 .line 230 invoke-static {p0, p1, p3}, Landroidx/customview/widget/FocusStrategy;->minorAxisDistance(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I move-result v4 .line 228 invoke-static {v3, v4}, Landroidx/customview/widget/FocusStrategy;->getWeightedDistanceFor(II)I move-result v3 .line 231 .local v3, "currentBestDist":I if-ge v0, v3, :cond_4 const/4 v1, 0x1 :cond_4 return v1 .end method .method private static isCandidate(Landroid/graphics/Rect;Landroid/graphics/Rect;I)Z .locals 4 .param p0, "srcRect" # Landroid/graphics/Rect; .param p1, "destRect" # Landroid/graphics/Rect; .param p2, "direction" # I .line 297 const/16 v0, 0x11 const/4 v1, 0x1 const/4 v2, 0x0 if-eq p2, v0, :cond_9 const/16 v0, 0x21 if-eq p2, v0, :cond_6 const/16 v0, 0x42 if-eq p2, v0, :cond_3 const/16 v0, 0x82 if-ne p2, v0, :cond_2 .line 308 iget v0, p0, Landroid/graphics/Rect;->top:I iget v3, p1, Landroid/graphics/Rect;->top:I if-lt v0, v3, :cond_0 iget v0, p0, Landroid/graphics/Rect;->bottom:I iget v3, p1, Landroid/graphics/Rect;->top:I if-gt v0, v3, :cond_1 :cond_0 iget v0, p0, Landroid/graphics/Rect;->bottom:I iget v3, p1, Landroid/graphics/Rect;->bottom:I if-ge v0, v3, :cond_1 goto :goto_0 :cond_1 const/4 v1, 0x0 :goto_0 return v1 .line 311 :cond_2 new-instance v0, Ljava/lang/IllegalArgumentException; const-string v1, "direction must be one of {FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}." invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V throw v0 .line 302 :cond_3 iget v0, p0, Landroid/graphics/Rect;->left:I iget v3, p1, Landroid/graphics/Rect;->left:I if-lt v0, v3, :cond_4 iget v0, p0, Landroid/graphics/Rect;->right:I iget v3, p1, Landroid/graphics/Rect;->left:I if-gt v0, v3, :cond_5 :cond_4 iget v0, p0, Landroid/graphics/Rect;->right:I iget v3, p1, Landroid/graphics/Rect;->right:I if-ge v0, v3, :cond_5 goto :goto_1 :cond_5 const/4 v1, 0x0 :goto_1 return v1 .line 305 :cond_6 iget v0, p0, Landroid/graphics/Rect;->bottom:I iget v3, p1, Landroid/graphics/Rect;->bottom:I if-gt v0, v3, :cond_7 iget v0, p0, Landroid/graphics/Rect;->top:I iget v3, p1, Landroid/graphics/Rect;->bottom:I if-lt v0, v3, :cond_8 :cond_7 iget v0, p0, Landroid/graphics/Rect;->top:I iget v3, p1, Landroid/graphics/Rect;->top:I if-le v0, v3, :cond_8 goto :goto_2 :cond_8 const/4 v1, 0x0 :goto_2 return v1 .line 299 :cond_9 iget v0, p0, Landroid/graphics/Rect;->right:I iget v3, p1, Landroid/graphics/Rect;->right:I if-gt v0, v3, :cond_a iget v0, p0, Landroid/graphics/Rect;->left:I iget v3, p1, Landroid/graphics/Rect;->right:I if-lt v0, v3, :cond_b :cond_a iget v0, p0, Landroid/graphics/Rect;->left:I iget v3, p1, Landroid/graphics/Rect;->left:I if-le v0, v3, :cond_b goto :goto_3 :cond_b const/4 v1, 0x0 :goto_3 return v1 .end method .method private static isToDirectionOf(ILandroid/graphics/Rect;Landroid/graphics/Rect;)Z .locals 4 .param p0, "direction" # I .param p1, "src" # Landroid/graphics/Rect; .param p2, "dest" # Landroid/graphics/Rect; .line 343 const/16 v0, 0x11 const/4 v1, 0x1 const/4 v2, 0x0 if-eq p0, v0, :cond_6 const/16 v0, 0x21 if-eq p0, v0, :cond_4 const/16 v0, 0x42 if-eq p0, v0, :cond_2 const/16 v0, 0x82 if-ne p0, v0, :cond_1 .line 351 iget v0, p1, Landroid/graphics/Rect;->bottom:I iget v3, p2, Landroid/graphics/Rect;->top:I if-gt v0, v3, :cond_0 goto :goto_0 :cond_0 const/4 v1, 0x0 :goto_0 return v1 .line 353 :cond_1 new-instance v0, Ljava/lang/IllegalArgumentException; const-string v1, "direction must be one of {FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}." invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V throw v0 .line 347 :cond_2 iget v0, p1, Landroid/graphics/Rect;->right:I iget v3, p2, Landroid/graphics/Rect;->left:I if-gt v0, v3, :cond_3 goto :goto_1 :cond_3 const/4 v1, 0x0 :goto_1 return v1 .line 349 :cond_4 iget v0, p1, Landroid/graphics/Rect;->top:I iget v3, p2, Landroid/graphics/Rect;->bottom:I if-lt v0, v3, :cond_5 goto :goto_2 :cond_5 const/4 v1, 0x0 :goto_2 return v1 .line 345 :cond_6 iget v0, p1, Landroid/graphics/Rect;->left:I iget v3, p2, Landroid/graphics/Rect;->right:I if-lt v0, v3, :cond_7 goto :goto_3 :cond_7 const/4 v1, 0x0 :goto_3 return v1 .end method .method private static majorAxisDistance(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I .locals 2 .param p0, "direction" # I .param p1, "source" # Landroid/graphics/Rect; .param p2, "dest" # Landroid/graphics/Rect; .line 365 invoke-static {p0, p1, p2}, Landroidx/customview/widget/FocusStrategy;->majorAxisDistanceRaw(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I move-result v0 const/4 v1, 0x0 invoke-static {v1, v0}, Ljava/lang/Math;->max(II)I move-result v0 return v0 .end method .method private static majorAxisDistanceRaw(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I .locals 2 .param p0, "direction" # I .param p1, "source" # Landroid/graphics/Rect; .param p2, "dest" # Landroid/graphics/Rect; .line 370 const/16 v0, 0x11 if-eq p0, v0, :cond_3 const/16 v0, 0x21 if-eq p0, v0, :cond_2 const/16 v0, 0x42 if-eq p0, v0, :cond_1 const/16 v0, 0x82 if-ne p0, v0, :cond_0 .line 378 iget v0, p2, Landroid/graphics/Rect;->top:I iget v1, p1, Landroid/graphics/Rect;->bottom:I sub-int/2addr v0, v1 return v0 .line 380 :cond_0 new-instance v0, Ljava/lang/IllegalArgumentException; const-string v1, "direction must be one of {FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}." invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V throw v0 .line 374 :cond_1 iget v0, p2, Landroid/graphics/Rect;->left:I iget v1, p1, Landroid/graphics/Rect;->right:I sub-int/2addr v0, v1 return v0 .line 376 :cond_2 iget v0, p1, Landroid/graphics/Rect;->top:I iget v1, p2, Landroid/graphics/Rect;->bottom:I sub-int/2addr v0, v1 return v0 .line 372 :cond_3 iget v0, p1, Landroid/graphics/Rect;->left:I iget v1, p2, Landroid/graphics/Rect;->right:I sub-int/2addr v0, v1 return v0 .end method .method private static majorAxisDistanceToFarEdge(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I .locals 2 .param p0, "direction" # I .param p1, "source" # Landroid/graphics/Rect; .param p2, "dest" # Landroid/graphics/Rect; .line 392 invoke-static {p0, p1, p2}, Landroidx/customview/widget/FocusStrategy;->majorAxisDistanceToFarEdgeRaw(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I move-result v0 const/4 v1, 0x1 invoke-static {v1, v0}, Ljava/lang/Math;->max(II)I move-result v0 return v0 .end method .method private static majorAxisDistanceToFarEdgeRaw(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I .locals 2 .param p0, "direction" # I .param p1, "source" # Landroid/graphics/Rect; .param p2, "dest" # Landroid/graphics/Rect; .line 398 const/16 v0, 0x11 if-eq p0, v0, :cond_3 const/16 v0, 0x21 if-eq p0, v0, :cond_2 const/16 v0, 0x42 if-eq p0, v0, :cond_1 const/16 v0, 0x82 if-ne p0, v0, :cond_0 .line 406 iget v0, p2, Landroid/graphics/Rect;->bottom:I iget v1, p1, Landroid/graphics/Rect;->bottom:I sub-int/2addr v0, v1 return v0 .line 408 :cond_0 new-instance v0, Ljava/lang/IllegalArgumentException; const-string v1, "direction must be one of {FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}." invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V throw v0 .line 402 :cond_1 iget v0, p2, Landroid/graphics/Rect;->right:I iget v1, p1, Landroid/graphics/Rect;->right:I sub-int/2addr v0, v1 return v0 .line 404 :cond_2 iget v0, p1, Landroid/graphics/Rect;->top:I iget v1, p2, Landroid/graphics/Rect;->top:I sub-int/2addr v0, v1 return v0 .line 400 :cond_3 iget v0, p1, Landroid/graphics/Rect;->left:I iget v1, p2, Landroid/graphics/Rect;->left:I sub-int/2addr v0, v1 return v0 .end method .method private static minorAxisDistance(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I .locals 3 .param p0, "direction" # I .param p1, "source" # Landroid/graphics/Rect; .param p2, "dest" # Landroid/graphics/Rect; .line 423 const/16 v0, 0x11 if-eq p0, v0, :cond_2 const/16 v0, 0x21 if-eq p0, v0, :cond_1 const/16 v0, 0x42 if-eq p0, v0, :cond_2 const/16 v0, 0x82 if-ne p0, v0, :cond_0 goto :goto_0 .line 435 :cond_0 new-instance v0, Ljava/lang/IllegalArgumentException; const-string v1, "direction must be one of {FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}." invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V throw v0 .line 432 :cond_1 :goto_0 iget v0, p1, Landroid/graphics/Rect;->left:I .line 433 invoke-virtual {p1}, Landroid/graphics/Rect;->width()I move-result v1 div-int/lit8 v1, v1, 0x2 add-int/2addr v0, v1 iget v1, p2, Landroid/graphics/Rect;->left:I invoke-virtual {p2}, Landroid/graphics/Rect;->width()I move-result v2 div-int/lit8 v2, v2, 0x2 add-int/2addr v1, v2 sub-int/2addr v0, v1 .line 432 invoke-static {v0}, Ljava/lang/Math;->abs(I)I move-result v0 return v0 .line 427 :cond_2 iget v0, p1, Landroid/graphics/Rect;->top:I .line 428 invoke-virtual {p1}, Landroid/graphics/Rect;->height()I move-result v1 div-int/lit8 v1, v1, 0x2 add-int/2addr v0, v1 iget v1, p2, Landroid/graphics/Rect;->top:I invoke-virtual {p2}, Landroid/graphics/Rect;->height()I move-result v2 div-int/lit8 v2, v2, 0x2 add-int/2addr v1, v2 sub-int/2addr v0, v1 .line 427 invoke-static {v0}, Ljava/lang/Math;->abs(I)I move-result v0 return v0 .end method