3838@ RestrictTo (Scope .LIBRARY )
3939public class BadgeUtils {
4040
41+ public static final boolean USE_COMPAT_PARENT = VERSION .SDK_INT < VERSION_CODES .JELLY_BEAN_MR2 ;
42+
4143 private BadgeUtils () {
4244 // Private constructor to prevent unwanted construction.
4345 }
@@ -68,10 +70,10 @@ public static void updateBadgeBounds(
6870 * ancestor of the anchor.
6971 */
7072 public static void attachBadgeDrawable (
71- BadgeDrawable badgeDrawable , View anchor , FrameLayout preApi18BadgeParent ) {
72- setBadgeDrawableBounds (badgeDrawable , anchor , preApi18BadgeParent );
73- if (VERSION . SDK_INT < VERSION_CODES . JELLY_BEAN_MR2 ) {
74- preApi18BadgeParent .setForeground (badgeDrawable );
73+ BadgeDrawable badgeDrawable , View anchor , FrameLayout compatBadgeParent ) {
74+ setBadgeDrawableBounds (badgeDrawable , anchor , compatBadgeParent );
75+ if (USE_COMPAT_PARENT ) {
76+ compatBadgeParent .setForeground (badgeDrawable );
7577 } else {
7678 anchor .getOverlay ().add (badgeDrawable );
7779 }
@@ -84,12 +86,12 @@ public static void attachBadgeDrawable(
8486 * an ancestor of the anchor.
8587 */
8688 public static void detachBadgeDrawable (
87- @ Nullable BadgeDrawable badgeDrawable , View anchor , FrameLayout preApi18BadgeParent ) {
89+ @ Nullable BadgeDrawable badgeDrawable , View anchor , FrameLayout compatBadgeParent ) {
8890 if (badgeDrawable == null ) {
8991 return ;
9092 }
91- if (VERSION . SDK_INT < VERSION_CODES . JELLY_BEAN_MR2 ) {
92- preApi18BadgeParent .setForeground (null );
93+ if (USE_COMPAT_PARENT ) {
94+ compatBadgeParent .setForeground (null );
9395 } else {
9496 anchor .getOverlay ().remove (badgeDrawable );
9597 }
@@ -100,15 +102,12 @@ public static void detachBadgeDrawable(
100102 * anchor's FrameLayout ancestor (pre-API 18).
101103 */
102104 public static void setBadgeDrawableBounds (
103- BadgeDrawable badgeDrawable , View anchor , FrameLayout preApi18BadgeParent ) {
105+ BadgeDrawable badgeDrawable , View anchor , FrameLayout compatBadgeParent ) {
104106 Rect badgeBounds = new Rect ();
105- if (VERSION .SDK_INT < VERSION_CODES .JELLY_BEAN_MR2 ) {
106- preApi18BadgeParent .getDrawingRect (badgeBounds );
107- } else {
108- anchor .getDrawingRect (badgeBounds );
109- }
107+ View badgeParent = USE_COMPAT_PARENT ? compatBadgeParent : anchor ;
108+ badgeParent .getDrawingRect (badgeBounds );
110109 badgeDrawable .setBounds (badgeBounds );
111- badgeDrawable .updateBadgeCoordinates (anchor , preApi18BadgeParent );
110+ badgeDrawable .updateBadgeCoordinates (anchor , compatBadgeParent );
112111 }
113112
114113 /**
0 commit comments