Buggy code:
public class DanmakuGlobalConfig { public enum DanmakuConfigTag { FT_DANMAKU_VISIBILITY , FB_DANMAKU_VISIBILITY , L2R_DANMAKU_VISIBILITY , R2L_DANMAKU_VISIBILIY , SPECIAL_DANMAKU_VISIBILITY , TYPEFACE , TRANSPARENCY , SCALE_TEXTSIZE , MAXIMUM_NUMS_IN_SCREEN , DANMAKU_STYLE , DANMAKU_BOLD , COLOR_VALUE_WHITE_LIST , USER_ID_BLACK_LIST , USER_HASH_BLACK_LIST , SCROLL_SPEED_FACTOR , BLOCK_GUEST_DANMAKU , DUPLICATE_MERGING_ENABLED ; public boolean isVisibilityRelatedTag ( ) { } } public static DanmakuGlobalConfig DEFAULT = new DanmakuGlobalConfig ( ) ; public Typeface mFont = null ; public int transparency = AlphaValue . MAX ; public boolean isTranslucent = false ; public float scaleTextSize = 1.0F ; public boolean isTextScaled = false ; public boolean FTDanmakuVisibility = true ; public boolean FBDanmakuVisibility = true ; public boolean L2RDanmakuVisibility = true ; public boolean R2LDanmakuVisibility = true ; public boolean SecialDanmakuVisibility = true ; List < Integer > mFilterTypes = new ArrayList < Integer > ( ) ; public int maximumNumsInScreen = - 1 ; public float scrollSpeedFactor = 1.0F ; public int refreshRateMS = 15 ; public enum BorderType { NONE , SHADOW , STROKEN ; } public static final int DANMAKU_STYLE_DEFAULT = - 1 ; public static final int DANMAKU_STYLE_NONE = 0 ; public static final int DANMAKU_STYLE_SHADOW = 1 ; public static final int DANMAKU_STYLE_STROKEN = 2 ; public DanmakuGlobalConfig . BorderType shadowType = DanmakuGlobalConfig . BorderType . SHADOW ; public int shadowRadius = 3 ; List < Integer > mColorValueWhiteList = new ArrayList < Integer > ( ) ; List < Integer > mUserIdBlackList = new ArrayList < Integer > ( ) ; List < String > mUserHashBlackList = new ArrayList < String > ( ) ; private ArrayList < DanmakuGlobalConfig . ConfigChangedCallback > mCallbackList ; private boolean mBlockGuestDanmaku = false ; private boolean mDuplicateMergingEnable = false ; public DanmakuGlobalConfig setTypeface ( Typeface font ) { } public DanmakuGlobalConfig setDanmakuTransparency ( float p ) { } public DanmakuGlobalConfig setScaleTextSize ( float p ) { } public boolean getFTDanmakuVisibility ( ) { } public DanmakuGlobalConfig setFTDanmakuVisibility ( boolean visible ) { } private < T > void setFilterData ( String tag , T data ) { } private void setDanmakuVisible ( boolean visible , int type ) { } public boolean getFBDanmakuVisibility ( ) { } public DanmakuGlobalConfig setFBDanmakuVisibility ( boolean visible ) { } public boolean getL2RDanmakuVisibility ( ) { } public DanmakuGlobalConfig setL2RDanmakuVisibility ( boolean visible ) { } public boolean getR2LDanmakuVisibility ( ) { } public DanmakuGlobalConfig setR2LDanmakuVisibility ( boolean visible ) { } public boolean getSecialDanmakuVisibility ( ) { } public DanmakuGlobalConfig setSpecialDanmakuVisibility ( boolean visible ) { } public DanmakuGlobalConfig setMaximumVisibleSizeInScreen ( int maxSize ) { } public DanmakuGlobalConfig setDanmakuStyle ( int style , float size ) { } public DanmakuGlobalConfig setDanmakuBold ( boolean bold ) { } public DanmakuGlobalConfig setColorValueWhiteList ( Integer ... colors ) { } public List < Integer > getColorValueWhiteList ( ) { } public DanmakuGlobalConfig setUserHashBlackList ( String ... hashes ) { } public DanmakuGlobalConfig removeUserHashBlackList ( String ... hashes ) { } public DanmakuGlobalConfig addUserHashBlackList ( String ... hashes ) { } public List < String > getUserHashBlackList ( ) { } public DanmakuGlobalConfig setUserIdBlackList ( Integer ... ids ) { } public DanmakuGlobalConfig removeUserIdBlackList ( Integer ... ids ) { } public DanmakuGlobalConfig addUserIdBlackList ( Integer ... ids ) { } public List < Integer > getUserIdBlackList ( ) { } public DanmakuGlobalConfig blockGuestDanmaku ( boolean block ) { } public DanmakuGlobalConfig setScrollSpeedFactor ( float p ) { } public DanmakuGlobalConfig setDuplicateMergingEnabled ( boolean enable ) { } public boolean isDuplicateMergingEnabled ( ) { } public interface ConfigChangedCallback { <START_BUG> public void onDanmakuConfigChanged ( DanmakuGlobalConfig config , DanmakuGlobalConfig . DanmakuConfigTag tag , Object ... value ) ; <END_BUG> } public void registerConfigChangedCallback ( DanmakuGlobalConfig . ConfigChangedCallback listener ) { } public void unregisterConfigChangedCallback ( DanmakuGlobalConfig . ConfigChangedCallback listener ) { } private void notifyConfigureChanged ( DanmakuGlobalConfig . DanmakuConfigTag tag , Object ... values ) { } }

Fix:
public boolean onDanmakuConfigChanged ( DanmakuGlobalConfig config , DanmakuGlobalConfig . DanmakuConfigTag tag , Object ... value ) ;