Program: 55006
Project: 55006
Buggy source:
/** 
 * Will pop up a dialog to let the user input a new frequency. Note: A frequency can be entered either in Hz or in MHz. If the input value is a number smaller than the maximum frequency of the source in MHz, then it is interpreted as a frequency in MHz. Otherwise it will be handled as frequency in Hz.
 */
private void tuneToFrequency(){
  if (source == null)   return;
  final double maxFreqMHz=source.getMaxFrequency() / 1000000f;
  final EditText et_input=new EditText(this);
  et_input.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
  new AlertDialog.Builder(this).setTitle("String_Node_Str").setMessage("String_Node_Str" + source.getFrequency() / 1000000f + "String_Node_Str" + maxFreqMHz + "String_Node_Str").setView(et_input).setPositiveButton("String_Node_Str",new DialogInterface.OnClickListener(){
    public void onClick(    DialogInterface dialog,    int whichButton){
      try {
        double newFreq=Double.valueOf(et_input.getText().toString());
        if (newFreq < maxFreqMHz)         newFreq=newFreq * 1000000;
        if (newFreq <= source.getMaxFrequency() && newFreq >= source.getMinFrequency()) {
          source.setFrequency((long)newFreq);
          analyzerSurface.setVirtualFrequency((long)newFreq);
        }
 else {
          Toast.makeText(MainActivity.this,"String_Node_Str" + (long)newFreq + "String_Node_Str",Toast.LENGTH_LONG).show();
        }
      }
 catch (      NumberFormatException e) {
        Log.e(LOGTAG,"String_Node_Str" + e.getMessage());
      }
    }
  }
).setNegativeButton("String_Node_Str",new DialogInterface.OnClickListener(){
    public void onClick(    DialogInterface dialog,    int whichButton){
    }
  }
).show();
}

Fixed version (ground truth):
/** 
 * Will pop up a dialog to let the user input a new frequency. Note: A frequency can be entered either in Hz or in MHz. If the input value is a number smaller than the maximum frequency of the source in MHz, then it is interpreted as a frequency in MHz. Otherwise it will be handled as frequency in Hz.
 */
private void tuneToFrequency(){
  if (source == null)   return;
  final double maxFreqMHz=source.getMaxFrequency() / 1000000f;
  final EditText et_input=new EditText(this);
  et_input.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
  new AlertDialog.Builder(this).setTitle("String_Node_Str").setMessage("String_Node_Str" + source.getFrequency() / 1000000f + "String_Node_Str" + maxFreqMHz + "String_Node_Str").setView(et_input).setPositiveButton("String_Node_Str",new DialogInterface.OnClickListener(){
    public void onClick(    DialogInterface dialog,    int whichButton){
      try {
        double newFreq=Double.valueOf(et_input.getText().toString());
        if (newFreq < maxFreqMHz)         newFreq=newFreq * 1000000;
        if (newFreq <= source.getMaxFrequency() && newFreq >= source.getMinFrequency()) {
          source.setFrequency((long)newFreq);
          analyzerSurface.setVirtualFrequency((long)newFreq);
          if (demodulationMode != Demodulator.DEMODULATION_OFF)           analyzerSurface.setDemodulationEnabled(true);
        }
 else {
          Toast.makeText(MainActivity.this,"String_Node_Str" + (long)newFreq + "String_Node_Str",Toast.LENGTH_LONG).show();
        }
      }
 catch (      NumberFormatException e) {
        Log.e(LOGTAG,"String_Node_Str" + e.getMessage());
      }
    }
  }
).setNegativeButton("String_Node_Str",new DialogInterface.OnClickListener(){
    public void onClick(    DialogInterface dialog,    int whichButton){
    }
  }
).show();
}