PopupWindowCompatApi21.smali 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. .class Landroid/support/v4/widget/PopupWindowCompatApi21;
  2. .super Ljava/lang/Object;
  3. .source "PopupWindowCompatApi21.java"
  4. # static fields
  5. .field private static final TAG:Ljava/lang/String; = "PopupWindowCompatApi21"
  6. .field private static sOverlapAnchorField:Ljava/lang/reflect/Field;
  7. # direct methods
  8. .method static constructor <clinit>()V
  9. .locals 3
  10. .prologue
  11. .line 32
  12. :try_start_0
  13. const-class v1, Landroid/widget/PopupWindow;
  14. const-string v2, "mOverlapAnchor"
  15. invoke-virtual {v1, v2}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
  16. move-result-object v1
  17. sput-object v1, Landroid/support/v4/widget/PopupWindowCompatApi21;->sOverlapAnchorField:Ljava/lang/reflect/Field;
  18. .line 33
  19. sget-object v1, Landroid/support/v4/widget/PopupWindowCompatApi21;->sOverlapAnchorField:Ljava/lang/reflect/Field;
  20. const/4 v2, 0x1
  21. invoke-virtual {v1, v2}, Ljava/lang/reflect/Field;->setAccessible(Z)V
  22. :try_end_0
  23. .catch Ljava/lang/NoSuchFieldException; {:try_start_0 .. :try_end_0} :catch_0
  24. .line 37
  25. .local v0, "e":Ljava/lang/NoSuchFieldException;
  26. :goto_0
  27. return-void
  28. .line 34
  29. .end local v0 # "e":Ljava/lang/NoSuchFieldException;
  30. :catch_0
  31. move-exception v0
  32. .line 35
  33. .restart local v0 # "e":Ljava/lang/NoSuchFieldException;
  34. const-string v1, "PopupWindowCompatApi21"
  35. const-string v2, "Could not fetch mOverlapAnchor field from PopupWindow"
  36. invoke-static {v1, v2, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  37. goto :goto_0
  38. .end method
  39. .method constructor <init>()V
  40. .locals 0
  41. .prologue
  42. .line 24
  43. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  44. return-void
  45. .end method
  46. .method static getOverlapAnchor(Landroid/widget/PopupWindow;)Z
  47. .locals 3
  48. .param p0, "popupWindow" # Landroid/widget/PopupWindow;
  49. .prologue
  50. .line 50
  51. sget-object v1, Landroid/support/v4/widget/PopupWindowCompatApi21;->sOverlapAnchorField:Ljava/lang/reflect/Field;
  52. if-eqz v1, :cond_0
  53. .line 52
  54. :try_start_0
  55. sget-object v1, Landroid/support/v4/widget/PopupWindowCompatApi21;->sOverlapAnchorField:Ljava/lang/reflect/Field;
  56. invoke-virtual {v1, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
  57. move-result-object v1
  58. check-cast v1, Ljava/lang/Boolean;
  59. invoke-virtual {v1}, Ljava/lang/Boolean;->booleanValue()Z
  60. :try_end_0
  61. .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_0
  62. move-result v1
  63. .line 57
  64. :goto_0
  65. return v1
  66. .line 53
  67. :catch_0
  68. move-exception v0
  69. .line 54
  70. .local v0, "e":Ljava/lang/IllegalAccessException;
  71. const-string v1, "PopupWindowCompatApi21"
  72. const-string v2, "Could not get overlap anchor field in PopupWindow"
  73. invoke-static {v1, v2, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  74. .line 57
  75. .end local v0 # "e":Ljava/lang/IllegalAccessException;
  76. :cond_0
  77. const/4 v1, 0x0
  78. goto :goto_0
  79. .end method
  80. .method static setOverlapAnchor(Landroid/widget/PopupWindow;Z)V
  81. .locals 3
  82. .param p0, "popupWindow" # Landroid/widget/PopupWindow;
  83. .param p1, "overlapAnchor" # Z
  84. .prologue
  85. .line 40
  86. sget-object v1, Landroid/support/v4/widget/PopupWindowCompatApi21;->sOverlapAnchorField:Ljava/lang/reflect/Field;
  87. if-eqz v1, :cond_0
  88. .line 42
  89. :try_start_0
  90. sget-object v1, Landroid/support/v4/widget/PopupWindowCompatApi21;->sOverlapAnchorField:Ljava/lang/reflect/Field;
  91. invoke-static {p1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
  92. move-result-object v2
  93. invoke-virtual {v1, p0, v2}, Ljava/lang/reflect/Field;->set(Ljava/lang/Object;Ljava/lang/Object;)V
  94. :try_end_0
  95. .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_0
  96. .line 47
  97. :cond_0
  98. :goto_0
  99. return-void
  100. .line 43
  101. :catch_0
  102. move-exception v0
  103. .line 44
  104. .local v0, "e":Ljava/lang/IllegalAccessException;
  105. const-string v1, "PopupWindowCompatApi21"
  106. const-string v2, "Could not set overlap anchor field in PopupWindow"
  107. invoke-static {v1, v2, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  108. goto :goto_0
  109. .end method