Program: 190967
Project: 190967
Buggy source:
@Override public void notifyListeners(SignalCallback callback){
  if (mConfig.readIconsFromXml) {
    generateIconGroup();
  }
  MobileIconGroup icons=getIcons();
  String contentDescription=getStringIfExists(getContentDescription());
  String dataContentDescription=getStringIfExists(icons.mDataContentDescription);
  final boolean dataDisabled=mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED && mCurrentState.userSetup;
  boolean showDataIcon=false;
  if (mContext.getResources().getBoolean(R.bool.show_roaming_and_network_icons)) {
    showDataIcon=mCurrentState.dataConnected;
  }
 else {
    showDataIcon=mCurrentState.dataConnected || mCurrentState.iconGroup == TelephonyIcons.ROAMING || isRoaming() || dataDisabled;
  }
  IconState statusIcon=new IconState(mCurrentState.enabled && !mCurrentState.airplaneMode,getCurrentIconId(),contentDescription);
  int qsTypeIcon=0;
  IconState qsIcon=null;
  String description=null;
  if (mCurrentState.dataSim) {
    qsTypeIcon=showDataIcon ? icons.mQsDataType : 0;
    qsIcon=new IconState(mCurrentState.enabled && !mCurrentState.isEmergency,getQsCurrentIconId(),contentDescription);
    description=mCurrentState.isEmergency ? null : mCurrentState.networkName;
  }
  boolean activityIn=mCurrentState.dataConnected && !mCurrentState.carrierNetworkChangeMode && mCurrentState.activityIn;
  boolean activityOut=mCurrentState.dataConnected && !mCurrentState.carrierNetworkChangeMode && mCurrentState.activityOut;
  if (!mContext.getResources().getBoolean(R.bool.show_roaming_and_network_icons)) {
    showDataIcon&=mCurrentState.isDefault || (mCurrentState.iconGroup == TelephonyIcons.ROAMING || isRoaming()) || dataDisabled;
  }
  showDataIcon&=(mStyle == STATUS_BAR_STYLE_ANDROID_DEFAULT || mStyle == STATUS_BAR_STYLE_EXTENDED);
  int typeIcon=showDataIcon ? icons.mDataType : 0;
  int dataActivityId=showMobileActivity() ? 0 : icons.mActivityId;
  int mobileActivityId=showMobileActivity() ? icons.mActivityId : 0;
  int dataNetworkTypeInRoamingId=0;
  if (mStyle == STATUS_BAR_STYLE_EXTENDED && isRoaming()) {
    dataNetworkTypeInRoamingId=mCurrentState.dataConnected ? typeIcon : 0;
    typeIcon=TelephonyIcons.ROAMING_ICON;
    qsTypeIcon=mCurrentState.dataConnected ? qsTypeIcon : 0;
  }
  if (callback instanceof SignalCallbackExtended) {
    ((SignalCallbackExtended)callback).setMobileDataIndicators(statusIcon,qsIcon,typeIcon,qsTypeIcon,activityIn,activityOut,dataActivityId,mobileActivityId,icons.mStackedDataIcon,icons.mStackedVoiceIcon,dataContentDescription,description,icons.mIsWide,mSubscriptionInfo.getSubscriptionId(),dataNetworkTypeInRoamingId,getEmbmsIconId(),getImsIconId(),isImsRegisteredInWifi());
  }
 else {
    callback.setMobileDataIndicators(statusIcon,qsIcon,typeIcon,qsTypeIcon,activityIn,activityOut,dataActivityId,mobileActivityId,icons.mStackedDataIcon,icons.mStackedVoiceIcon,dataContentDescription,description,icons.mIsWide,mSubscriptionInfo.getSubscriptionId());
  }
  CallbackHandler callbackHandler=(CallbackHandler)callback;
  callbackHandler.post(new Runnable(){
    @Override public void run(){
      mNetworkController.updateNetworkLabelView();
    }
  }
);
}

Fixed version (ground truth):
@Override public void notifyListeners(SignalCallback callback){
  if (mConfig.readIconsFromXml) {
    generateIconGroup();
  }
  MobileIconGroup icons=getIcons();
  String contentDescription=getStringIfExists(getContentDescription());
  String dataContentDescription=getStringIfExists(icons.mDataContentDescription);
  final boolean dataDisabled=mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED && mCurrentState.userSetup;
  boolean showDataIcon=false;
  if (mContext.getResources().getBoolean(R.bool.show_roaming_and_network_icons)) {
    showDataIcon=mCurrentState.dataConnected;
  }
 else {
    showDataIcon=mCurrentState.dataConnected || mCurrentState.iconGroup == TelephonyIcons.ROAMING || isRoaming() || dataDisabled;
  }
  IconState statusIcon=new IconState(mCurrentState.enabled && !mCurrentState.airplaneMode,getCurrentIconId(),contentDescription);
  int qsTypeIcon=0;
  IconState qsIcon=null;
  String description=null;
  if (mCurrentState.dataSim) {
    qsTypeIcon=showDataIcon ? icons.mQsDataType : 0;
    qsIcon=new IconState(mCurrentState.enabled && !mCurrentState.isEmergency,getQsCurrentIconId(),contentDescription);
    description=mCurrentState.isEmergency ? null : mCurrentState.networkName;
  }
  boolean activityIn=mCurrentState.dataConnected && !mCurrentState.carrierNetworkChangeMode && mCurrentState.activityIn;
  boolean activityOut=mCurrentState.dataConnected && !mCurrentState.carrierNetworkChangeMode && mCurrentState.activityOut;
  if (!mContext.getResources().getBoolean(R.bool.show_roaming_and_network_icons)) {
    showDataIcon&=mCurrentState.isDefault || (mCurrentState.iconGroup == TelephonyIcons.ROAMING || isRoaming()) || dataDisabled;
  }
  showDataIcon&=(mStyle == STATUS_BAR_STYLE_ANDROID_DEFAULT || mStyle == STATUS_BAR_STYLE_EXTENDED);
  int typeIcon=showDataIcon ? icons.mDataType : 0;
  int dataActivityId=showMobileActivity() ? 0 : icons.mActivityId;
  int mobileActivityId=showMobileActivity() ? icons.mActivityId : 0;
  int dataNetworkTypeInRoamingId=0;
  if (mStyle == STATUS_BAR_STYLE_EXTENDED && isRoaming()) {
    dataNetworkTypeInRoamingId=mCurrentState.dataConnected ? typeIcon : 0;
    typeIcon=TelephonyIcons.ROAMING_ICON;
    qsTypeIcon=mCurrentState.dataConnected ? qsTypeIcon : 0;
  }
  if (callback instanceof SignalCallbackExtended) {
    ((SignalCallbackExtended)callback).setMobileDataIndicators(statusIcon,qsIcon,typeIcon,qsTypeIcon,activityIn,activityOut,dataActivityId,mobileActivityId,icons.mStackedDataIcon,icons.mStackedVoiceIcon,dataContentDescription,description,icons.mIsWide,mSubscriptionInfo.getSubscriptionId(),dataNetworkTypeInRoamingId,getEmbmsIconId(),getImsIconId(),isImsRegisteredInWifi());
    CallbackHandler callbackHandler=(CallbackHandler)callback;
    callbackHandler.post(new Runnable(){
      @Override public void run(){
        mNetworkController.updateNetworkLabelView();
      }
    }
);
  }
 else {
    callback.setMobileDataIndicators(statusIcon,qsIcon,typeIcon,qsTypeIcon,activityIn,activityOut,dataActivityId,mobileActivityId,icons.mStackedDataIcon,icons.mStackedVoiceIcon,dataContentDescription,description,icons.mIsWide,mSubscriptionInfo.getSubscriptionId());
  }
}