diff options
author | Adam Powell <adamp@google.com> | 2010-10-19 11:54:10 -0700 |
---|---|---|
committer | Adam Powell <adamp@google.com> | 2010-10-19 11:54:10 -0700 |
commit | 35f21fe0ffe0c6374fe253777020cf0ffdd1a4bd (patch) | |
tree | 15495276c76dda06826e326d22e1cd74b51e887d | |
parent | 8e5992ad66c601b5d528c4d0259bee881d7a35a8 (diff) | |
download | frameworks_base-35f21fe0ffe0c6374fe253777020cf0ffdd1a4bd.zip frameworks_base-35f21fe0ffe0c6374fe253777020cf0ffdd1a4bd.tar.gz frameworks_base-35f21fe0ffe0c6374fe253777020cf0ffdd1a4bd.tar.bz2 |
Fix bug 3109812 - NPE in ButtonGroup.dispatchDraw
Change-Id: Ie8d9b2c0862cc901ed9534e81465fe41ade1f9a0
-rw-r--r-- | core/java/android/widget/ButtonGroup.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/core/java/android/widget/ButtonGroup.java b/core/java/android/widget/ButtonGroup.java index ce3decb..6af1c7e 100644 --- a/core/java/android/widget/ButtonGroup.java +++ b/core/java/android/widget/ButtonGroup.java @@ -110,8 +110,13 @@ public class ButtonGroup extends LinearLayout { return; } mDivider = divider; - mDividerWidth = divider.getIntrinsicWidth(); - mDividerHeight = divider.getIntrinsicHeight(); + if (divider != null) { + mDividerWidth = divider.getIntrinsicWidth(); + mDividerHeight = divider.getIntrinsicHeight(); + } else { + mDividerWidth = 0; + mDividerHeight = 0; + } requestLayout(); } @@ -204,6 +209,11 @@ public class ButtonGroup extends LinearLayout { @Override public void dispatchDraw(Canvas canvas) { + if (mDivider == null) { + super.dispatchDraw(canvas); + return; + } + final boolean begin = (mShowDividers & SHOW_DIVIDER_BEGINNING) == SHOW_DIVIDER_BEGINNING; final boolean middle = (mShowDividers & SHOW_DIVIDER_MIDDLE) == SHOW_DIVIDER_MIDDLE; final boolean end = (mShowDividers & SHOW_DIVIDER_END) == SHOW_DIVIDER_END; |