.class public Lin/srain/cube/views/GridViewWithHeaderAndFooter; .super Landroid/widget/GridView; .source "GridViewWithHeaderAndFooter.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lin/srain/cube/views/GridViewWithHeaderAndFooter$ItemClickHandler;, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter;, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FullWidthFixedViewLayout;, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo; } .end annotation # static fields .field public static DEBUG:Z = false .field private static final LOG_TAG:Ljava/lang/String; = "GridViewHeaderAndFooter" # instance fields .field private mFooterViewInfos:Ljava/util/ArrayList; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/ArrayList<", "Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;", ">;" } .end annotation .end field .field private mHeaderViewInfos:Ljava/util/ArrayList; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/ArrayList<", "Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;", ">;" } .end annotation .end field .field private mItemClickHandler:Lin/srain/cube/views/GridViewWithHeaderAndFooter$ItemClickHandler; .field private mNumColumns:I .field private mOnItemClickListener:Landroid/widget/AdapterView$OnItemClickListener; .field private mOnItemLongClickListener:Landroid/widget/AdapterView$OnItemLongClickListener; .field private mOriginalAdapter:Landroid/widget/ListAdapter; .field private mRowHeight:I .field private mViewForMeasureRowHeight:Landroid/view/View; # direct methods .method static constructor ()V .registers 0 return-void .end method .method public constructor (Landroid/content/Context;)V .registers 3 .line 79 invoke-direct {p0, p1}, Landroid/widget/GridView;->(Landroid/content/Context;)V const/4 p1, -0x1 .line 64 iput p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mNumColumns:I const/4 v0, 0x0 .line 65 iput-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mViewForMeasureRowHeight:Landroid/view/View; .line 66 iput p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mRowHeight:I .line 70 new-instance p1, Ljava/util/ArrayList; invoke-direct {p1}, Ljava/util/ArrayList;->()V iput-object p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mHeaderViewInfos:Ljava/util/ArrayList; .line 71 new-instance p1, Ljava/util/ArrayList; invoke-direct {p1}, Ljava/util/ArrayList;->()V iput-object p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mFooterViewInfos:Ljava/util/ArrayList; .line 80 invoke-direct {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->initHeaderGridView()V return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V .registers 3 .line 84 invoke-direct {p0, p1, p2}, Landroid/widget/GridView;->(Landroid/content/Context;Landroid/util/AttributeSet;)V const/4 p1, -0x1 .line 64 iput p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mNumColumns:I const/4 p2, 0x0 .line 65 iput-object p2, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mViewForMeasureRowHeight:Landroid/view/View; .line 66 iput p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mRowHeight:I .line 70 new-instance p1, Ljava/util/ArrayList; invoke-direct {p1}, Ljava/util/ArrayList;->()V iput-object p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mHeaderViewInfos:Ljava/util/ArrayList; .line 71 new-instance p1, Ljava/util/ArrayList; invoke-direct {p1}, Ljava/util/ArrayList;->()V iput-object p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mFooterViewInfos:Ljava/util/ArrayList; .line 85 invoke-direct {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->initHeaderGridView()V return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;I)V .registers 4 .line 89 invoke-direct {p0, p1, p2, p3}, Landroid/widget/GridView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V const/4 p1, -0x1 .line 64 iput p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mNumColumns:I const/4 p2, 0x0 .line 65 iput-object p2, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mViewForMeasureRowHeight:Landroid/view/View; .line 66 iput p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mRowHeight:I .line 70 new-instance p1, Ljava/util/ArrayList; invoke-direct {p1}, Ljava/util/ArrayList;->()V iput-object p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mHeaderViewInfos:Ljava/util/ArrayList; .line 71 new-instance p1, Ljava/util/ArrayList; invoke-direct {p1}, Ljava/util/ArrayList;->()V iput-object p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mFooterViewInfos:Ljava/util/ArrayList; .line 90 invoke-direct {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->initHeaderGridView()V return-void .end method .method static synthetic access$200(Lin/srain/cube/views/GridViewWithHeaderAndFooter;)Landroid/widget/AdapterView$OnItemClickListener; .registers 1 .line 38 iget-object p0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mOnItemClickListener:Landroid/widget/AdapterView$OnItemClickListener; return-object p0 .end method .method static synthetic access$300(Lin/srain/cube/views/GridViewWithHeaderAndFooter;)I .registers 1 .line 38 invoke-direct {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getNumColumnsCompatible()I move-result p0 return p0 .end method .method static synthetic access$400(Lin/srain/cube/views/GridViewWithHeaderAndFooter;)Landroid/widget/AdapterView$OnItemLongClickListener; .registers 1 .line 38 iget-object p0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mOnItemLongClickListener:Landroid/widget/AdapterView$OnItemLongClickListener; return-object p0 .end method .method private getColumnWidthCompatible()I .registers 2 .line 284 invoke-super {p0}, Landroid/widget/GridView;->getColumnWidth()I move-result v0 return v0 .end method .method private getItemClickHandler()Lin/srain/cube/views/GridViewWithHeaderAndFooter$ItemClickHandler; .registers 3 .line 859 iget-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mItemClickHandler:Lin/srain/cube/views/GridViewWithHeaderAndFooter$ItemClickHandler; if-nez v0, :cond_c .line 860 new-instance v0, Lin/srain/cube/views/GridViewWithHeaderAndFooter$ItemClickHandler; const/4 v1, 0x0 invoke-direct {v0, p0, v1}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$ItemClickHandler;->(Lin/srain/cube/views/GridViewWithHeaderAndFooter;Lin/srain/cube/views/GridViewWithHeaderAndFooter$1;)V iput-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mItemClickHandler:Lin/srain/cube/views/GridViewWithHeaderAndFooter$ItemClickHandler; .line 862 :cond_c iget-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mItemClickHandler:Lin/srain/cube/views/GridViewWithHeaderAndFooter$ItemClickHandler; return-object v0 .end method .method private getNumColumnsCompatible()I .registers 2 .line 266 invoke-super {p0}, Landroid/widget/GridView;->getNumColumns()I move-result v0 return v0 .end method .method private initHeaderGridView()V .registers 1 return-void .end method .method private removeFixedViewInfo(Landroid/view/View;Ljava/util/ArrayList;)V .registers 6 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroid/view/View;", "Ljava/util/ArrayList<", "Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;", ">;)V" } .end annotation .line 253 invoke-virtual {p2}, Ljava/util/ArrayList;->size()I move-result v0 const/4 v1, 0x0 :goto_5 if-ge v1, v0, :cond_18 .line 255 invoke-virtual {p2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; move-result-object v2 check-cast v2, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo; .line 256 iget-object v2, v2, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;->view:Landroid/view/View; if-ne v2, p1, :cond_15 .line 257 invoke-virtual {p2, v1}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object; goto :goto_18 :cond_15 add-int/lit8 v1, v1, 0x1 goto :goto_5 :cond_18 :goto_18 return-void .end method # virtual methods .method public addFooterView(Landroid/view/View;)V .registers 4 const/4 v0, 0x0 const/4 v1, 0x1 .line 173 invoke-virtual {p0, p1, v0, v1}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->addFooterView(Landroid/view/View;Ljava/lang/Object;Z)V return-void .end method .method public addFooterView(Landroid/view/View;Ljava/lang/Object;Z)V .registers 11 .line 177 invoke-virtual {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getAdapter()Landroid/widget/ListAdapter; move-result-object v0 if-eqz v0, :cond_13 .line 178 instance-of v1, v0, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter; if-eqz v1, :cond_b goto :goto_13 .line 179 :cond_b new-instance p1, Ljava/lang/IllegalStateException; const-string p2, "Cannot add header view to grid -- setAdapter has already been called." invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p1 .line 183 :cond_13 :goto_13 invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; move-result-object v1 .line 185 new-instance v2, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo; const/4 v3, 0x0 invoke-direct {v2, v3}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;->(Lin/srain/cube/views/GridViewWithHeaderAndFooter$1;)V .line 186 new-instance v3, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FullWidthFixedViewLayout; invoke-virtual {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getContext()Landroid/content/Context; move-result-object v4 invoke-direct {v3, p0, v4}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FullWidthFixedViewLayout;->(Lin/srain/cube/views/GridViewWithHeaderAndFooter;Landroid/content/Context;)V if-eqz v1, :cond_40 .line 189 new-instance v4, Landroid/widget/FrameLayout$LayoutParams; iget v5, v1, Landroid/view/ViewGroup$LayoutParams;->width:I iget v6, v1, Landroid/view/ViewGroup$LayoutParams;->height:I invoke-direct {v4, v5, v6}, Landroid/widget/FrameLayout$LayoutParams;->(II)V invoke-virtual {p1, v4}, Landroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V .line 190 new-instance v4, Landroid/widget/AbsListView$LayoutParams; iget v5, v1, Landroid/view/ViewGroup$LayoutParams;->width:I iget v1, v1, Landroid/view/ViewGroup$LayoutParams;->height:I invoke-direct {v4, v5, v1}, Landroid/widget/AbsListView$LayoutParams;->(II)V invoke-virtual {v3, v4}, Landroid/widget/FrameLayout;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V .line 192 :cond_40 invoke-virtual {v3, p1}, Landroid/widget/FrameLayout;->addView(Landroid/view/View;)V .line 193 iput-object p1, v2, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;->view:Landroid/view/View; .line 194 iput-object v3, v2, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;->viewContainer:Landroid/view/ViewGroup; .line 195 iput-object p2, v2, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;->data:Ljava/lang/Object; .line 196 iput-boolean p3, v2, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;->isSelectable:Z .line 197 iget-object p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mFooterViewInfos:Ljava/util/ArrayList; invoke-virtual {p1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z if-eqz v0, :cond_57 .line 200 check-cast v0, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter; invoke-virtual {v0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter;->notifyDataSetChanged()V :cond_57 return-void .end method .method public addHeaderView(Landroid/view/View;)V .registers 4 const/4 v0, 0x0 const/4 v1, 0x1 .line 128 invoke-virtual {p0, p1, v0, v1}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->addHeaderView(Landroid/view/View;Ljava/lang/Object;Z)V return-void .end method .method public addHeaderView(Landroid/view/View;Ljava/lang/Object;Z)V .registers 11 .line 144 invoke-virtual {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getAdapter()Landroid/widget/ListAdapter; move-result-object v0 if-eqz v0, :cond_13 .line 145 instance-of v1, v0, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter; if-eqz v1, :cond_b goto :goto_13 .line 146 :cond_b new-instance p1, Ljava/lang/IllegalStateException; const-string p2, "Cannot add header view to grid -- setAdapter has already been called." invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p1 .line 150 :cond_13 :goto_13 invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; move-result-object v1 .line 152 new-instance v2, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo; const/4 v3, 0x0 invoke-direct {v2, v3}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;->(Lin/srain/cube/views/GridViewWithHeaderAndFooter$1;)V .line 153 new-instance v3, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FullWidthFixedViewLayout; invoke-virtual {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getContext()Landroid/content/Context; move-result-object v4 invoke-direct {v3, p0, v4}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FullWidthFixedViewLayout;->(Lin/srain/cube/views/GridViewWithHeaderAndFooter;Landroid/content/Context;)V if-eqz v1, :cond_40 .line 156 new-instance v4, Landroid/widget/FrameLayout$LayoutParams; iget v5, v1, Landroid/view/ViewGroup$LayoutParams;->width:I iget v6, v1, Landroid/view/ViewGroup$LayoutParams;->height:I invoke-direct {v4, v5, v6}, Landroid/widget/FrameLayout$LayoutParams;->(II)V invoke-virtual {p1, v4}, Landroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V .line 157 new-instance v4, Landroid/widget/AbsListView$LayoutParams; iget v5, v1, Landroid/view/ViewGroup$LayoutParams;->width:I iget v1, v1, Landroid/view/ViewGroup$LayoutParams;->height:I invoke-direct {v4, v5, v1}, Landroid/widget/AbsListView$LayoutParams;->(II)V invoke-virtual {v3, v4}, Landroid/widget/FrameLayout;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V .line 159 :cond_40 invoke-virtual {v3, p1}, Landroid/widget/FrameLayout;->addView(Landroid/view/View;)V .line 160 iput-object p1, v2, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;->view:Landroid/view/View; .line 161 iput-object v3, v2, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;->viewContainer:Landroid/view/ViewGroup; .line 162 iput-object p2, v2, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;->data:Ljava/lang/Object; .line 163 iput-boolean p3, v2, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;->isSelectable:Z .line 164 iget-object p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mHeaderViewInfos:Ljava/util/ArrayList; invoke-virtual {p1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z if-eqz v0, :cond_57 .line 168 check-cast v0, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter; invoke-virtual {v0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter;->notifyDataSetChanged()V :cond_57 return-void .end method .method public getFooterViewCount()I .registers 2 .line 209 iget-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mFooterViewInfos:Ljava/util/ArrayList; invoke-virtual {v0}, Ljava/util/ArrayList;->size()I move-result v0 return v0 .end method .method public getHeaderHeight(I)I .registers 3 if-ltz p1, :cond_11 .line 310 iget-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mHeaderViewInfos:Ljava/util/ArrayList; invoke-virtual {v0, p1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; move-result-object p1 check-cast p1, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo; iget-object p1, p1, Lin/srain/cube/views/GridViewWithHeaderAndFooter$FixedViewInfo;->view:Landroid/view/View; invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I move-result p1 return p1 :cond_11 const/4 p1, 0x0 return p1 .end method .method public getHeaderViewCount()I .registers 2 .line 205 iget-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mHeaderViewInfos:Ljava/util/ArrayList; invoke-virtual {v0}, Ljava/util/ArrayList;->size()I move-result v0 return v0 .end method .method public getHorizontalSpacing()I .registers 2 .line 347 :try_start_0 invoke-super {p0}, Landroid/widget/GridView;->getHorizontalSpacing()I move-result v0 :try_end_4 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_4} :catch_5 goto :goto_6 :catch_5 const/4 v0, 0x0 :goto_6 return v0 .end method .method public getOriginalAdapter()Landroid/widget/ListAdapter; .registers 2 .line 426 iget-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mOriginalAdapter:Landroid/widget/ListAdapter; return-object v0 .end method .method public getRowHeight()I .registers 7 .line 357 iget v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mRowHeight:I if-lez v0, :cond_5 return v0 .line 360 :cond_5 invoke-virtual {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getAdapter()Landroid/widget/ListAdapter; move-result-object v0 .line 361 invoke-direct {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getNumColumnsCompatible()I move-result v1 const/4 v2, -0x1 if-eqz v0, :cond_6e .line 364 invoke-interface {v0}, Landroid/widget/ListAdapter;->getCount()I move-result v0 iget-object v3, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mHeaderViewInfos:Ljava/util/ArrayList; invoke-virtual {v3}, Ljava/util/ArrayList;->size()I move-result v3 iget-object v4, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mFooterViewInfos:Ljava/util/ArrayList; invoke-virtual {v4}, Ljava/util/ArrayList;->size()I move-result v4 add-int/2addr v3, v4 mul-int/2addr v3, v1 if-gt v0, v3, :cond_25 goto :goto_6e .line 367 :cond_25 invoke-direct {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getColumnWidthCompatible()I move-result v0 .line 368 invoke-virtual {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getAdapter()Landroid/widget/ListAdapter; move-result-object v3 iget-object v4, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mHeaderViewInfos:Ljava/util/ArrayList; invoke-virtual {v4}, Ljava/util/ArrayList;->size()I move-result v4 mul-int/2addr v1, v4 iget-object v4, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mViewForMeasureRowHeight:Landroid/view/View; invoke-interface {v3, v1, v4, p0}, Landroid/widget/ListAdapter;->getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View; move-result-object v1 .line 369 invoke-virtual {v1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; move-result-object v3 check-cast v3, Landroid/widget/AbsListView$LayoutParams; const/4 v4, 0x0 if-nez v3, :cond_4c .line 371 new-instance v3, Landroid/widget/AbsListView$LayoutParams; const/4 v5, -0x2 invoke-direct {v3, v2, v5, v4}, Landroid/widget/AbsListView$LayoutParams;->(III)V .line 372 invoke-virtual {v1, v3}, Landroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V .line 374 :cond_4c invoke-static {v4, v4}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I move-result v2 iget v5, v3, Landroid/widget/AbsListView$LayoutParams;->height:I invoke-static {v2, v4, v5}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getChildMeasureSpec(III)I move-result v2 const/high16 v5, 0x40000000 # 2.0f .line 376 invoke-static {v0, v5}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I move-result v0 iget v3, v3, Landroid/widget/AbsListView$LayoutParams;->width:I invoke-static {v0, v4, v3}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getChildMeasureSpec(III)I move-result v0 .line 378 invoke-virtual {v1, v0, v2}, Landroid/view/View;->measure(II)V .line 379 iput-object v1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mViewForMeasureRowHeight:Landroid/view/View; .line 380 invoke-virtual {v1}, Landroid/view/View;->getMeasuredHeight()I move-result v0 iput v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mRowHeight:I return v0 :cond_6e :goto_6e return v2 .end method .method public getVerticalSpacing()I .registers 2 .line 327 :try_start_0 invoke-super {p0}, Landroid/widget/GridView;->getVerticalSpacing()I move-result v0 :try_end_4 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_4} :catch_5 goto :goto_6 :catch_5 const/4 v0, 0x0 :goto_6 return v0 .end method .method public invalidateRowHeight()V .registers 2 const/4 v0, -0x1 .line 305 iput v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mRowHeight:I return-void .end method .method protected onDetachedFromWindow()V .registers 2 .line 300 invoke-super {p0}, Landroid/widget/GridView;->onDetachedFromWindow()V const/4 v0, 0x0 .line 301 iput-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mViewForMeasureRowHeight:Landroid/view/View; return-void .end method .method protected onMeasure(II)V .registers 3 .line 95 invoke-super {p0, p1, p2}, Landroid/widget/GridView;->onMeasure(II)V .line 96 invoke-virtual {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getAdapter()Landroid/widget/ListAdapter; move-result-object p1 if-eqz p1, :cond_1d .line 97 instance-of p2, p1, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter; if-eqz p2, :cond_1d .line 98 check-cast p1, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter; invoke-direct {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getNumColumnsCompatible()I move-result p2 invoke-virtual {p1, p2}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter;->setNumColumns(I)V .line 99 invoke-virtual {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getRowHeight()I move-result p2 invoke-virtual {p1, p2}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter;->setRowHeight(I)V :cond_1d return-void .end method .method public removeFooterView(Landroid/view/View;)Z .registers 4 .line 240 iget-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mFooterViewInfos:Ljava/util/ArrayList; invoke-virtual {v0}, Ljava/util/ArrayList;->size()I move-result v0 const/4 v1, 0x0 if-lez v0, :cond_1d .line 242 invoke-virtual {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getAdapter()Landroid/widget/ListAdapter; move-result-object v0 if-eqz v0, :cond_18 .line 243 check-cast v0, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter; invoke-virtual {v0, p1}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter;->removeFooter(Landroid/view/View;)Z move-result v0 if-eqz v0, :cond_18 const/4 v1, 0x1 .line 246 :cond_18 iget-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mFooterViewInfos:Ljava/util/ArrayList; invoke-direct {p0, p1, v0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->removeFixedViewInfo(Landroid/view/View;Ljava/util/ArrayList;)V :cond_1d return v1 .end method .method public removeHeaderView(Landroid/view/View;)Z .registers 4 .line 220 iget-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mHeaderViewInfos:Ljava/util/ArrayList; invoke-virtual {v0}, Ljava/util/ArrayList;->size()I move-result v0 const/4 v1, 0x0 if-lez v0, :cond_1d .line 222 invoke-virtual {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getAdapter()Landroid/widget/ListAdapter; move-result-object v0 if-eqz v0, :cond_18 .line 223 check-cast v0, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter; invoke-virtual {v0, p1}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter;->removeHeader(Landroid/view/View;)Z move-result v0 if-eqz v0, :cond_18 const/4 v1, 0x1 .line 226 :cond_18 iget-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mHeaderViewInfos:Ljava/util/ArrayList; invoke-direct {p0, p1, v0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->removeFixedViewInfo(Landroid/view/View;Ljava/util/ArrayList;)V :cond_1d return v1 .end method .method public bridge synthetic setAdapter(Landroid/widget/Adapter;)V .registers 2 .line 38 check-cast p1, Landroid/widget/ListAdapter; invoke-virtual {p0, p1}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->setAdapter(Landroid/widget/ListAdapter;)V return-void .end method .method public setAdapter(Landroid/widget/ListAdapter;)V .registers 5 .line 406 iput-object p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mOriginalAdapter:Landroid/widget/ListAdapter; .line 407 iget-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mHeaderViewInfos:Ljava/util/ArrayList; invoke-virtual {v0}, Ljava/util/ArrayList;->size()I move-result v0 if-gtz v0, :cond_17 iget-object v0, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mFooterViewInfos:Ljava/util/ArrayList; invoke-virtual {v0}, Ljava/util/ArrayList;->size()I move-result v0 if-lez v0, :cond_13 goto :goto_17 .line 416 :cond_13 invoke-super {p0, p1}, Landroid/widget/GridView;->setAdapter(Landroid/widget/ListAdapter;)V goto :goto_34 .line 408 :cond_17 :goto_17 new-instance v0, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter; iget-object v1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mHeaderViewInfos:Ljava/util/ArrayList; iget-object v2, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mFooterViewInfos:Ljava/util/ArrayList; invoke-direct {v0, v1, v2, p1}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter;->(Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/widget/ListAdapter;)V .line 409 invoke-direct {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getNumColumnsCompatible()I move-result p1 const/4 v1, 0x1 if-le p1, v1, :cond_2a .line 411 invoke-virtual {v0, p1}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter;->setNumColumns(I)V .line 413 :cond_2a invoke-virtual {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getRowHeight()I move-result p1 invoke-virtual {v0, p1}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter;->setRowHeight(I)V .line 414 invoke-super {p0, v0}, Landroid/widget/GridView;->setAdapter(Landroid/widget/ListAdapter;)V :goto_34 return-void .end method .method public setClipChildren(Z)V .registers 2 return-void .end method .method public setClipChildrenSupper(Z)V .registers 2 const/4 p1, 0x0 .line 114 invoke-super {p0, p1}, Landroid/widget/GridView;->setClipChildren(Z)V return-void .end method .method public setNumColumns(I)V .registers 4 .line 461 invoke-super {p0, p1}, Landroid/widget/GridView;->setNumColumns(I)V .line 462 iput p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mNumColumns:I .line 463 invoke-virtual {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getAdapter()Landroid/widget/ListAdapter; move-result-object v0 if-eqz v0, :cond_14 .line 464 instance-of v1, v0, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter; if-eqz v1, :cond_14 .line 465 check-cast v0, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter; invoke-virtual {v0, p1}, Lin/srain/cube/views/GridViewWithHeaderAndFooter$HeaderViewGridAdapter;->setNumColumns(I)V :cond_14 return-void .end method .method public setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V .registers 2 .line 848 iput-object p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mOnItemClickListener:Landroid/widget/AdapterView$OnItemClickListener; .line 849 invoke-direct {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getItemClickHandler()Lin/srain/cube/views/GridViewWithHeaderAndFooter$ItemClickHandler; move-result-object p1 invoke-super {p0, p1}, Landroid/widget/GridView;->setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V return-void .end method .method public setOnItemLongClickListener(Landroid/widget/AdapterView$OnItemLongClickListener;)V .registers 2 .line 854 iput-object p1, p0, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->mOnItemLongClickListener:Landroid/widget/AdapterView$OnItemLongClickListener; .line 855 invoke-direct {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getItemClickHandler()Lin/srain/cube/views/GridViewWithHeaderAndFooter$ItemClickHandler; move-result-object p1 invoke-super {p0, p1}, Landroid/widget/GridView;->setOnItemLongClickListener(Landroid/widget/AdapterView$OnItemLongClickListener;)V return-void .end method .method public tryToScrollToBottomSmoothly()V .registers 3 .line 386 invoke-virtual {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getAdapter()Landroid/widget/ListAdapter; move-result-object v0 invoke-interface {v0}, Landroid/widget/ListAdapter;->getCount()I move-result v0 add-int/lit8 v0, v0, -0x1 const/4 v1, 0x0 .line 388 invoke-virtual {p0, v0, v1}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->smoothScrollToPositionFromTop(II)V return-void .end method .method public tryToScrollToBottomSmoothly(I)V .registers 4 .line 396 invoke-virtual {p0}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->getAdapter()Landroid/widget/ListAdapter; move-result-object v0 invoke-interface {v0}, Landroid/widget/ListAdapter;->getCount()I move-result v0 add-int/lit8 v0, v0, -0x1 const/4 v1, 0x0 .line 398 invoke-virtual {p0, v0, v1, p1}, Lin/srain/cube/views/GridViewWithHeaderAndFooter;->smoothScrollToPositionFromTop(III)V return-void .end method