Program: 142159
Project: 142159
Buggy source:
private void showView(View next,AnimationType from,boolean animateLastView){
switch (from) {
case RIGHT:
    mInAnimation=AnimationUtils.loadAnimation(this,R.anim.push_left_in);
  mOutAnimation=AnimationUtils.loadAnimation(this,R.anim.push_left_out);
break;
case LEFT:
mInAnimation=AnimationUtils.loadAnimation(this,R.anim.push_right_in);
mOutAnimation=AnimationUtils.loadAnimation(this,R.anim.push_right_out);
break;
case FADE:
mInAnimation=AnimationUtils.loadAnimation(this,R.anim.fade_in);
mOutAnimation=AnimationUtils.loadAnimation(this,R.anim.fade_out);
break;
}
if (mCurrentView != null) {
if (animateLastView) {
mCurrentView.startAnimation(mOutAnimation);
}
mViewPane.removeView(mCurrentView);
}
mInAnimation.setAnimationListener(this);
RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
mCurrentView=next;
mViewPane.addView(mCurrentView,lp);
mCurrentView.startAnimation(mInAnimation);
FrameLayout header=(FrameLayout)findViewById(R.id.form_entry_header);
TextView groupLabel=((TextView)header.findViewById(R.id.form_entry_group_label));
header.setVisibility(View.GONE);
groupLabel.setVisibility(View.GONE);
if (mCurrentView instanceof ODKView) {
((ODKView)mCurrentView).setFocus(this);
SpannableStringBuilder groupLabelText=((ODKView)mCurrentView).getGroupLabel();
if (groupLabelText != null && !groupLabelText.toString().trim().equals("String_Node_Str")) {
groupLabel.setText(groupLabelText);
header.setVisibility(View.VISIBLE);
groupLabel.setVisibility(View.VISIBLE);
}
}
 else {
InputMethodManager inputManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(mCurrentView.getWindowToken(),0);
}
}

Fixed version (ground truth):
private void showView(View next,AnimationType from,boolean animateLastView){
switch (from) {
case RIGHT:
    mInAnimation=AnimationUtils.loadAnimation(this,R.anim.push_left_in);
  mOutAnimation=AnimationUtils.loadAnimation(this,R.anim.push_left_out);
break;
case LEFT:
mInAnimation=AnimationUtils.loadAnimation(this,R.anim.push_right_in);
mOutAnimation=AnimationUtils.loadAnimation(this,R.anim.push_right_out);
break;
case FADE:
mInAnimation=AnimationUtils.loadAnimation(this,R.anim.fade_in);
mOutAnimation=AnimationUtils.loadAnimation(this,R.anim.fade_out);
break;
}
if (mCurrentView != null) {
if (animateLastView) {
mCurrentView.startAnimation(mOutAnimation);
}
mViewPane.removeView(mCurrentView);
}
mInAnimation.setAnimationListener(this);
RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
mCurrentView=next;
mViewPane.addView(mCurrentView,lp);
mCurrentView.startAnimation(mInAnimation);
FrameLayout header=(FrameLayout)findViewById(R.id.form_entry_header);
TextView groupLabel=((TextView)header.findViewById(R.id.form_entry_group_label));
this.mGroupNativeVisibility=false;
this.updateGroupViewVisibility();
if (mCurrentView instanceof ODKView) {
((ODKView)mCurrentView).setFocus(this);
SpannableStringBuilder groupLabelText=((ODKView)mCurrentView).getGroupLabel();
if (groupLabelText != null && !groupLabelText.toString().trim().equals("String_Node_Str")) {
groupLabel.setText(groupLabelText);
this.mGroupNativeVisibility=true;
updateGroupViewVisibility();
}
}
 else {
InputMethodManager inputManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(mCurrentView.getWindowToken(),0);
}
}