Program: 91034
Project: 91034
Buggy source:
public View buildRecordView(ViewGroup parent,WalletAccount walletAccount,boolean isSelected,boolean hasFocus,View convertView){
  View rowView=convertView;
  if (rowView == null) {
    rowView=inflater.inflate(R.layout.record_row,parent,false);
  }
  if (!isSelected) {
    Utils.setAlpha(rowView,0.5f);
  }
 else {
    Utils.setAlpha(rowView,1f);
  }
  int textColor=resources.getColor(R.color.white);
  if (hasFocus) {
    rowView.setBackgroundColor(resources.getColor(R.color.selectedrecord));
  }
 else {
    rowView.setBackgroundColor(resources.getColor(R.color.transparent));
  }
  ImageView icon=(ImageView)rowView.findViewById(R.id.ivIcon);
  Drawable drawableForAccount=Utils.getDrawableForAccount(walletAccount,isSelected,resources);
  if (drawableForAccount == null) {
    icon.setVisibility(View.INVISIBLE);
  }
 else {
    icon.setVisibility(View.VISIBLE);
    icon.setImageDrawable(drawableForAccount);
  }
  TextView tvLabel=((TextView)rowView.findViewById(R.id.tvLabel));
  TextView tvWhatIsIt=((TextView)rowView.findViewById(R.id.tvWhatIsIt));
  String name=mbwManager.getMetadataStorage().getLabelByAccount(walletAccount.getId());
  WalletAccount linked=Utils.getLinkedAccount(walletAccount,mbwManager.getColuManager().getAccounts().values());
  if (linked != null && linked instanceof ColuAccount && ((ColuAccount)linked).getColuAsset().assetType == ColuAccount.ColuAssetType.RMC) {
    tvWhatIsIt.setOnClickListener(new View.OnClickListener(){
      @Override public void onClick(      View view){
        new AlertDialog.Builder(view.getContext()).setMessage(resources.getString(R.string.rmc_bitcoin_acc_what_is_it)).setPositiveButton(R.string.button_ok,null).create().show();
      }
    }
);
    tvWhatIsIt.setVisibility(View.VISIBLE);
  }
 else {
    tvWhatIsIt.setVisibility(View.GONE);
  }
  if (name.length() == 0) {
    rowView.findViewById(R.id.tvLabel).setVisibility(View.GONE);
  }
 else {
    tvLabel.setVisibility(View.VISIBLE);
    tvLabel.setText(Html.fromHtml(name));
    tvLabel.setTextColor(textColor);
  }
  String displayAddress;
  if (walletAccount.isActive()) {
    if (walletAccount instanceof Bip44PubOnlyAccount) {
      int numKeys=((Bip44Account)walletAccount).getPrivateKeyCount();
      if (numKeys > 1) {
        displayAddress=resources.getString(R.string.contains_addresses,Integer.toString(numKeys));
      }
 else {
        displayAddress=resources.getString(R.string.account_contains_one_address_info);
      }
    }
 else     if (walletAccount instanceof Bip44Account) {
      int numKeys=((Bip44Account)walletAccount).getPrivateKeyCount();
      if (numKeys > 1) {
        displayAddress=resources.getString(R.string.contains_keys,Integer.toString(numKeys));
      }
 else {
        displayAddress=resources.getString(R.string.account_contains_one_key_info);
      }
    }
 else {
      Optional<Address> receivingAddress=walletAccount.getReceivingAddress();
      if (receivingAddress.isPresent()) {
        if (name.length() == 0) {
          displayAddress=receivingAddress.get().toMultiLineString();
        }
 else {
          displayAddress=receivingAddress.get().getShortAddress();
        }
      }
 else {
        displayAddress="String_Node_Str";
      }
    }
  }
 else {
    displayAddress="String_Node_Str";
  }
  TextView tvAddress=rowView.findViewById(R.id.tvAddress);
  tvAddress.setText(displayAddress);
  tvAddress.setTextColor(textColor);
  rowView.setTag(walletAccount);
  TextView tvAccountType=rowView.findViewById(R.id.tvAccountType);
  if (walletAccount.isActive()) {
    CurrencyBasedBalance balance=walletAccount.getCurrencyBasedBalance();
    rowView.findViewById(R.id.tvBalance).setVisibility(View.VISIBLE);
    String balanceString=Utils.getFormattedValueWithUnit(balance.confirmed,mbwManager.getBitcoinDenomination());
    if (walletAccount instanceof ColuAccount) {
      balanceString=Utils.getColuFormattedValueWithUnit(walletAccount.getCurrencyBasedBalance().confirmed);
    }
    TextView tvBalance=rowView.findViewById(R.id.tvBalance);
    tvBalance.setText(balanceString);
    tvBalance.setTextColor(textColor);
    boolean showLegacyAccountWarning=showLegacyAccountWarning(walletAccount,mbwManager);
    rowView.findViewById(R.id.tvLegacyAccountWarning).setVisibility(showLegacyAccountWarning ? View.VISIBLE : View.GONE);
    boolean showBackupMissingWarning=showBackupMissingWarning(walletAccount,mbwManager);
    TextView backupMissing=rowView.findViewById(R.id.tvBackupMissingWarning);
    backupMissing.setVisibility(showBackupMissingWarning ? View.VISIBLE : View.GONE);
    if (mbwManager.getMetadataStorage().getOtherAccountBackupState(walletAccount.getId()) == MetadataStorage.BackupState.NOT_VERIFIED) {
      backupMissing.setText(R.string.backup_not_verified);
    }
 else {
      backupMissing.setText(R.string.backup_missing);
    }
    tvAccountType.setVisibility(View.GONE);
  }
 else {
    rowView.findViewById(R.id.tvBalance).setVisibility(View.GONE);
    rowView.findViewById(R.id.tvLegacyAccountWarning).setVisibility(View.GONE);
    rowView.findViewById(R.id.tvBackupMissingWarning).setVisibility(View.GONE);
    if (walletAccount.getType() == WalletAccount.Type.BCHBIP44 || walletAccount.getType() == WalletAccount.Type.BCHSINGLEADDRESS) {
      tvAccountType.setText(Html.fromHtml(tvAccountType.getResources().getString(R.string.bitcoin_cash)));
      tvAccountType.setVisibility(View.VISIBLE);
    }
 else {
      tvAccountType.setVisibility(View.GONE);
    }
  }
  if (walletAccount.getId().equals(mbwManager.getLocalTraderManager().getLocalTraderAccountId())) {
    rowView.findViewById(R.id.tvTraderKey).setVisibility(View.VISIBLE);
  }
 else {
    rowView.findViewById(R.id.tvTraderKey).setVisibility(View.GONE);
  }
  return rowView;
}

Fixed version (ground truth):
public View buildRecordView(ViewGroup parent,WalletAccount walletAccount,boolean isSelected,boolean hasFocus,View convertView){
  View rowView=convertView;
  if (rowView == null) {
    rowView=inflater.inflate(R.layout.record_row,parent,false);
  }
  if (!isSelected) {
    Utils.setAlpha(rowView,0.5f);
  }
 else {
    Utils.setAlpha(rowView,1f);
  }
  int textColor=resources.getColor(R.color.white);
  if (hasFocus) {
    rowView.setBackgroundColor(resources.getColor(R.color.selectedrecord));
  }
 else {
    rowView.setBackgroundColor(resources.getColor(R.color.transparent));
  }
  ImageView icon=(ImageView)rowView.findViewById(R.id.ivIcon);
  Drawable drawableForAccount=Utils.getDrawableForAccount(walletAccount,isSelected,resources);
  if (drawableForAccount == null) {
    icon.setVisibility(View.INVISIBLE);
  }
 else {
    icon.setVisibility(View.VISIBLE);
    icon.setImageDrawable(drawableForAccount);
  }
  TextView tvLabel=((TextView)rowView.findViewById(R.id.tvLabel));
  TextView tvWhatIsIt=((TextView)rowView.findViewById(R.id.tvWhatIsIt));
  String name=mbwManager.getMetadataStorage().getLabelByAccount(walletAccount.getId());
  WalletAccount linked=Utils.getLinkedAccount(walletAccount,mbwManager.getColuManager().getAccounts().values());
  if (linked != null && linked instanceof ColuAccount && ((ColuAccount)linked).getColuAsset().assetType == ColuAccount.ColuAssetType.RMC) {
    tvWhatIsIt.setOnClickListener(new View.OnClickListener(){
      @Override public void onClick(      View view){
        new AlertDialog.Builder(view.getContext()).setMessage(resources.getString(R.string.rmc_bitcoin_acc_what_is_it)).setPositiveButton(R.string.button_ok,null).create().show();
      }
    }
);
    tvWhatIsIt.setVisibility(View.VISIBLE);
  }
 else {
    tvWhatIsIt.setVisibility(View.GONE);
  }
  if (name.length() == 0) {
    rowView.findViewById(R.id.tvLabel).setVisibility(View.GONE);
  }
 else {
    tvLabel.setVisibility(View.VISIBLE);
    tvLabel.setText(Html.fromHtml(name));
    tvLabel.setTextColor(textColor);
  }
  String displayAddress;
  if (walletAccount.isActive()) {
    if (walletAccount instanceof Bip44PubOnlyAccount) {
      int numKeys=((Bip44Account)walletAccount).getPrivateKeyCount();
      if (numKeys > 1) {
        displayAddress=resources.getString(R.string.contains_addresses,Integer.toString(numKeys));
      }
 else {
        displayAddress=resources.getString(R.string.account_contains_one_address_info);
      }
    }
 else     if (walletAccount instanceof Bip44Account) {
      int numKeys=((Bip44Account)walletAccount).getPrivateKeyCount();
      if (numKeys > 1) {
        displayAddress=resources.getString(R.string.contains_keys,Integer.toString(numKeys));
      }
 else {
        displayAddress=resources.getString(R.string.account_contains_one_key_info);
      }
    }
 else {
      Optional<Address> receivingAddress=walletAccount.getReceivingAddress();
      if (receivingAddress.isPresent()) {
        if (name.length() == 0) {
          displayAddress=receivingAddress.get().toMultiLineString();
        }
 else {
          displayAddress=receivingAddress.get().getShortAddress();
        }
      }
 else {
        displayAddress="String_Node_Str";
      }
    }
  }
 else {
    displayAddress="String_Node_Str";
  }
  TextView tvAddress=rowView.findViewById(R.id.tvAddress);
  tvAddress.setText(displayAddress);
  tvAddress.setTextColor(textColor);
  rowView.setTag(walletAccount);
  TextView tvAccountType=rowView.findViewById(R.id.tvAccountType);
  if (walletAccount.isActive()) {
    CurrencyBasedBalance balance=walletAccount.getCurrencyBasedBalance();
    rowView.findViewById(R.id.tvBalance).setVisibility(View.VISIBLE);
    String balanceString=Utils.getFormattedValueWithUnit(balance.confirmed,mbwManager.getBitcoinDenomination());
    if (walletAccount instanceof ColuAccount) {
      balanceString=Utils.getColuFormattedValueWithUnit(walletAccount.getCurrencyBasedBalance().confirmed);
    }
    TextView tvBalance=rowView.findViewById(R.id.tvBalance);
    tvBalance.setText(balanceString);
    tvBalance.setTextColor(textColor);
    boolean showBackupMissingWarning=showBackupMissingWarning(walletAccount,mbwManager);
    TextView backupMissing=rowView.findViewById(R.id.tvBackupMissingWarning);
    backupMissing.setVisibility(showBackupMissingWarning ? View.VISIBLE : View.GONE);
    if (mbwManager.getMetadataStorage().getOtherAccountBackupState(walletAccount.getId()) == MetadataStorage.BackupState.NOT_VERIFIED) {
      backupMissing.setText(R.string.backup_not_verified);
    }
 else {
      backupMissing.setText(R.string.backup_missing);
    }
    tvAccountType.setVisibility(View.GONE);
  }
 else {
    rowView.findViewById(R.id.tvBalance).setVisibility(View.GONE);
    rowView.findViewById(R.id.tvBackupMissingWarning).setVisibility(View.GONE);
    if (walletAccount.getType() == WalletAccount.Type.BCHBIP44 || walletAccount.getType() == WalletAccount.Type.BCHSINGLEADDRESS) {
      tvAccountType.setText(Html.fromHtml(tvAccountType.getResources().getString(R.string.bitcoin_cash)));
      tvAccountType.setVisibility(View.VISIBLE);
    }
 else {
      tvAccountType.setVisibility(View.GONE);
    }
  }
  if (walletAccount.getId().equals(mbwManager.getLocalTraderManager().getLocalTraderAccountId())) {
    rowView.findViewById(R.id.tvTraderKey).setVisibility(View.VISIBLE);
  }
 else {
    rowView.findViewById(R.id.tvTraderKey).setVisibility(View.GONE);
  }
  return rowView;
}