Program: 91127
Project: 91127
Buggy source:
@Override public void onReceive(Context context,Intent intent){
  String from, to;
  double amount;
switch (intent.getAction()) {
case ChangellyService.INFO_CURRENCIES:
    Log.d(TAG,"String_Node_Str");
  ArrayList<String> currenciesRes=intent.getStringArrayListExtra(ChangellyService.CURRENCIES);
if (currenciesRes != null) {
  Log.d(TAG,"String_Node_Str" + currenciesRes);
  Collections.sort(currenciesRes);
  List<CurrencyAdapter.Item> itemList=new ArrayList<>();
  itemList.add(new CurrencyAdapter.Item(null,CurrencyAdapter.VIEW_TYPE_PADDING));
  for (  String curr : currenciesRes) {
    if (!curr.equalsIgnoreCase("String_Node_Str")) {
      itemList.add(new CurrencyAdapter.Item(curr.toUpperCase(),CurrencyAdapter.VIEW_TYPE_ITEM));
    }
  }
  itemList.add(new CurrencyAdapter.Item(null,CurrencyAdapter.VIEW_TYPE_PADDING));
  currencyAdapter.setItems(itemList);
  setLayout(ChangellyUITypes.Main);
}
break;
case ChangellyService.INFO_MIN_AMOUNT:
from=intent.getStringExtra(ChangellyService.FROM);
to=intent.getStringExtra(ChangellyService.TO);
amount=intent.getDoubleExtra(ChangellyService.AMOUNT,0);
CurrencyAdapter.Item item=currencyAdapter.getItem(currencySelector.getSelectedItem());
if (item != null && from != null && to != null && to.equalsIgnoreCase(ChangellyService.BTC) && from.equalsIgnoreCase(item.currency)) {
Log.d(TAG,"String_Node_Str" + amount + "String_Node_Str"+ from);
minAmount=amount;
tvMinAmountValue.setText(getString(R.string.exchange_minimum_amount,decimalFormat.format(minAmount),item.currency));
}
break;
case ChangellyService.INFO_EXCH_AMOUNT:
from=intent.getStringExtra(ChangellyService.FROM);
to=intent.getStringExtra(ChangellyService.TO);
amount=intent.getDoubleExtra(ChangellyService.AMOUNT,0);
item=currencyAdapter.getItem(currencySelector.getSelectedItem());
if (item != null && from != null && to != null) {
Log.d(TAG,"String_Node_Str" + amount + "String_Node_Str"+ to);
avoidTextChangeEvent=true;
if (to.equalsIgnoreCase(ChangellyService.BTC) && from.equalsIgnoreCase(item.currency)) {
toValue.setText(decimalFormat.format(amount));
}
 else if (from.equalsIgnoreCase(ChangellyService.BTC) && to.equalsIgnoreCase(item.currency)) {
fromValue.setText(decimalFormat.format(amount));
}
avoidTextChangeEvent=false;
}
break;
case INFO_ERROR:
Toast.makeText(ChangellyActivity.this,"String_Node_Str",Toast.LENGTH_LONG).show();
break;
}
}

Fixed version (ground truth):
@Override public void onReceive(Context context,Intent intent){
  String from, to;
  double amount;
switch (intent.getAction()) {
case ChangellyService.INFO_CURRENCIES:
    Log.d(TAG,"String_Node_Str");
  ArrayList<String> currenciesRes=intent.getStringArrayListExtra(ChangellyService.CURRENCIES);
if (currenciesRes != null) {
  Log.d(TAG,"String_Node_Str" + currenciesRes);
  Collections.sort(currenciesRes);
  List<CurrencyAdapter.Item> itemList=new ArrayList<>();
  itemList.add(new CurrencyAdapter.Item(null,CurrencyAdapter.VIEW_TYPE_PADDING));
  for (  String curr : currenciesRes) {
    if (!curr.equalsIgnoreCase("String_Node_Str")) {
      itemList.add(new CurrencyAdapter.Item(curr.toUpperCase(),CurrencyAdapter.VIEW_TYPE_ITEM));
    }
  }
  itemList.add(new CurrencyAdapter.Item(null,CurrencyAdapter.VIEW_TYPE_PADDING));
  currencyAdapter.setItems(itemList);
  setLayout(ChangellyUITypes.Main);
}
break;
case ChangellyService.INFO_MIN_AMOUNT:
from=intent.getStringExtra(ChangellyService.FROM);
to=intent.getStringExtra(ChangellyService.TO);
amount=intent.getDoubleExtra(ChangellyService.AMOUNT,0);
CurrencyAdapter.Item item=currencyAdapter.getItem(currencySelector.getSelectedItem());
if (item != null && from != null && to != null && to.equalsIgnoreCase(ChangellyService.BTC) && from.equalsIgnoreCase(item.currency)) {
Log.d(TAG,"String_Node_Str" + amount + "String_Node_Str"+ from);
minAmount=amount;
tvMinAmountValue.setText(getString(R.string.exchange_minimum_amount,decimalFormat.format(minAmount),item.currency));
}
break;
case ChangellyService.INFO_EXCH_AMOUNT:
from=intent.getStringExtra(ChangellyService.FROM);
to=intent.getStringExtra(ChangellyService.TO);
double fromAmount=intent.getDoubleExtra(ChangellyService.FROM_AMOUNT,0);
amount=intent.getDoubleExtra(ChangellyService.AMOUNT,0);
item=currencyAdapter.getItem(currencySelector.getSelectedItem());
if (item != null && from != null && to != null) {
Log.d(TAG,"String_Node_Str" + amount + "String_Node_Str"+ to);
avoidTextChangeEvent=true;
try {
if (to.equalsIgnoreCase(ChangellyService.BTC) && from.equalsIgnoreCase(item.currency) && fromAmount == Double.parseDouble(fromValue.getText().toString())) {
toValue.setText(decimalFormat.format(amount));
}
 else if (from.equalsIgnoreCase(ChangellyService.BTC) && to.equalsIgnoreCase(item.currency) && fromAmount == Double.parseDouble(toValue.getText().toString())) {
fromValue.setText(decimalFormat.format(amount));
}
isValueForOfferOk(true);
}
 catch (NumberFormatException ignore) {
}
avoidTextChangeEvent=false;
}
break;
case INFO_ERROR:
Toast.makeText(ChangellyActivity.this,"String_Node_Str",Toast.LENGTH_LONG).show();
break;
}
}