Buggy code:
public static final String TOKEN_OVERRIDE_ANIM = "finishAnim" ; private static final String LAST_AUTOSYNC_ATTEMPT = "last-autosync" ; @ Autowired ExceptionService exceptionService ; @ Autowired protected TaskService taskService ; @ Autowired MetadataService metadataService ; @ Autowired Database database ; @ Autowired AddOnService addOnService ; @ Autowired UpgradeService upgradeService ; @ Autowired ActFmPreferenceService actFmPreferenceService ; private final TaskContextActionExposer [ ] contextItemExposers = new TaskContextActionExposer [ ] { new ReminderDebugContextActions . MakeNotification ( ) , new ReminderDebugContextActions . WhenReminder ( ) } ; protected TaskAdapter taskAdapter = null ; protected TaskListActivity . DetailReceiver detailReceiver = new TaskListActivity . DetailReceiver ( ) ; protected TaskListActivity . RefreshReceiver refreshReceiver = new TaskListActivity . RefreshReceiver ( ) ; protected TaskListActivity . SyncActionReceiver syncActionReceiver = new TaskListActivity . SyncActionReceiver ( ) ; protected final AtomicReference < String > sqlQueryTemplate = new AtomicReference < String > ( ) ; protected Filter filter ; protected int sortFlags ; protected int sortSort ; protected boolean overrideFinishAnim ; private ImageButton voiceAddButton ; private ImageButton quickAddButton ; private EditText quickAddBox ; private Timer backgroundTimer ; private final LinkedHashSet < SyncAction > syncActions = new LinkedHashSet < SyncAction > ( ) ; private boolean isFilter ; private final TaskListContextMenuExtensionLoader contextMenuExtensionLoader = new TaskListContextMenuExtensionLoader ( ) ; private VoiceInputAssistant voiceInputAssistant ; protected View getListBody ( ViewGroup root ) { } @ Override protected void onCreate ( Bundle savedInstanceState ) { } @ Override protected void onNewIntent ( Intent intent ) { } protected void addSyncRefreshMenuItem ( Menu menu ) { } @ Override public boolean onPrepareOptionsMenu ( Menu menu ) { } protected void setUpUiComponents ( ) { ( ( android . widget . ImageView ) ( findViewById ( R . id . back ) ) ) . setOnClickListener ( new OnClickListener ( ) { public void onClick ( View v ) { Preferences . setBoolean ( p_showed_lists_help , true ) ; showFilterListActivity ( ) ; } } ) ; findViewById ( sort_settings ) . setOnClickListener ( new OnClickListener ( ) { @ Override public void onClick ( View v ) { StatisticsService . reportEvent ( TLA_MENU_SORT ) ; AlertDialog dialog = SortSelectionActivity . createDialog ( TaskListActivity . this , TaskListActivity . this , sortFlags , sortSort ) ; dialog . show ( ) ; } } ) ; getListView ( ) . setOnKeyListener ( new OnKeyListener ( ) { @ Override public boolean onKey ( View view , int keyCode , KeyEvent event ) { if ( ( ( event . getAction ( ) ) != ( KeyEvent . ACTION_UP ) ) || ( view == null ) ) return false ; boolean filterOn = getListView ( ) . isTextFilterEnabled ( ) ; View selected = getListView ( ) . getSelectedView ( ) ; if ( ( ( ( ! filterOn ) && ( ( event . getUnicodeChar ( ) ) >= '1' ) ) && ( ( event . getUnicodeChar ( ) ) <= '4' ) ) && ( selected != null ) ) { int importance = ( event . getNumber ( ) ) - '1' ; Task task = ( ( ViewHolder ) ( selected . getTag ( ) ) ) . task ; task . setValue ( IMPORTANCE , importance ) ; taskService . save ( task ) ; taskAdapter . setFieldContentsAndVisibility ( selected ) ; } else if ( ( ! filterOn ) && ( ( event . getUnicodeChar ( ) ) != 0 ) ) { getListView ( ) . setTextFilterEnabled ( true ) ; getListView ( ) . setFilterText ( Character . toString ( ( ( char ) ( event . getUnicodeChar ( ) ) ) ) ) ; } else if ( filterOn && ( TextUtils . isEmpty ( getListView ( ) . getTextFilter ( ) ) ) ) { getListView ( ) . setTextFilterEnabled ( false ) ; } return false ; } } ) ; quickAddBox = ( ( EditText ) ( findViewById ( quickAddText ) ) ) ; quickAddBox . setOnEditorActionListener ( new OnEditorActionListener ( ) { @ Override public boolean onEditorAction ( TextView view , int actionId , KeyEvent event ) { <START_BUG> if ( ( actionId == ( EditorInfo . IME_NULL ) ) && ( ( quickAddBox . getText ( ) . length ( ) ) > 0 ) ) { <END_BUG> quickAddTask ( quickAddBox . getText ( ) . toString ( ) , true ) ; return true ; } return false ; } } ) ; quickAddButton = ( ( ImageButton ) ( findViewById ( R . id . quickAddButton ) ) ) ; quickAddButton . setOnClickListener ( new OnClickListener ( ) { public void onClick ( View v ) { Task task = quickAddTask ( quickAddBox . getText ( ) . toString ( ) , true ) ; if ( ( task != null ) && ( ( task . getValue ( TITLE ) . length ( ) ) == 0 ) ) { Intent intent = getOnClickQuickAddIntent ( task ) ; startActivityForResult ( intent , TaskListActivity . ACTIVITY_EDIT_TASK ) ; transitionForTaskEdit ( ) ; } } } ) ; voiceAddButton = ( ( ImageButton ) ( findViewById ( R . id . voiceAddButton ) ) ) ; int prompt = string . voice_edit_title_prompt ; if ( Preferences . getBoolean ( p_voiceInputCreatesTask , false ) ) prompt = string . voice_create_prompt ; voiceInputAssistant = new VoiceInputAssistant ( this , voiceAddButton , quickAddBox ) ; voiceInputAssistant . configureMicrophoneButton ( prompt ) ; quickAddButton . setOnLongClickListener ( new OnLongClickListener ( ) { @ Override public boolean onLongClick ( View v ) { Task task = quickAddTask ( quickAddBox . getText ( ) . toString ( ) , false ) ; if ( task == null ) return true ; Intent intent = getOnLongClickQuickAddIntent ( task ) ; startActivityForResult ( intent , TaskListActivity . ACTIVITY_EDIT_TASK ) ; transitionForTaskEdit ( ) ; return true ; } } ) ; try { GestureService . registerGestureDetector ( this , gestures , R . raw . gestures , this ) ; }

Fix:
if ( ( actionId == ( EditorInfo . IME_NULL ) ) && ( ! ( TextUtils . isEmpty ( quickAddBox . getText ( ) . toString ( ) . trim ( ) ) ) ) ) {