private void addStatementInputPatches(boolean isShadow,int i,int xFrom,int xToAbove,int xToBelow,InputView inputView,ViewPoint inputLayoutOrigin){
  int xOffset=xFrom + inputView.getFieldLayoutWidth();
  mHelper.setPointMaybeFlip(mInputConnectorOffsets.get(i),xOffset + mPatchManager.mStatementInputPadding,inputLayoutOrigin.y + mPatchManager.mStatementTopThickness);
  final NinePatchDrawable statementTopDrawable=getColoredPatchDrawable(isShadow ? R.drawable.statementinput_top_shadow : R.drawable.statementinput_top);
  final NinePatchDrawable statementTopBorderDrawable=mPatchManager.getPatchDrawable(R.drawable.statementinput_top_border);
  final NinePatchDrawable statementConnectionHighlight=mPatchManager.getPatchDrawable(R.drawable.statementinput_top_connection);
  mHelper.setRtlAwareBounds(tempRect,mBlockViewSize.x,xOffset,inputLayoutOrigin.y,xToAbove,inputLayoutOrigin.y + statementTopDrawable.getIntrinsicHeight());
  statementTopDrawable.setBounds(tempRect);
  statementTopBorderDrawable.setBounds(tempRect);
  statementConnectionHighlight.setBounds(tempRect);
  mBlockPatches.add(statementTopDrawable);
  mBlockBorderPatches.add(statementTopBorderDrawable);
  mInputConnectionHighlightPatches.set(i,statementConnectionHighlight);
  final NinePatchDrawable statementBottomDrawable=getColoredPatchDrawable(isShadow ? R.drawable.statementinput_bottom_shadow : R.drawable.statementinput_bottom);
  final NinePatchDrawable statementBottomBorderDrawable=mPatchManager.getPatchDrawable(R.drawable.statementinput_bottom_border);
  final int connectorHeight=Math.max(inputView.getTotalChildHeight(),inputView.getMeasuredHeight());
  mHelper.setRtlAwareBounds(tempRect,mBlockViewSize.x,xOffset,inputLayoutOrigin.y + statementTopDrawable.getIntrinsicHeight(),xToBelow,inputLayoutOrigin.y + connectorHeight);
  statementBottomDrawable.setBounds(tempRect);
  statementBottomBorderDrawable.setBounds(tempRect);
  mBlockPatches.add(statementBottomDrawable);
  mBlockBorderPatches.add(statementBottomBorderDrawable);
}

private void addStatementInputPatches ( boolean isShadow , int i , int xFrom , int xToAbove , int xToBelow , InputView inputView , ViewPoint inputLayoutOrigin ) { int xOffset = xFrom + inputView . getFieldLayoutWidth ( ) ; mHelper . setPointMaybeFlip ( mInputConnectorOffsets . get ( i ) , xOffset + mPatchManager . mStatementInputPadding , inputLayoutOrigin . y + mPatchManager . mStatementTopThickness ) ; final NinePatchDrawable statementTopDrawable = getColoredPatchDrawable ( isShadow ? R . drawable . statementinput_top_shadow : R . drawable . statementinput_top ) ; final NinePatchDrawable statementTopBorderDrawable = mPatchManager . getPatchDrawable ( R . drawable . statementinput_top_border ) ; final NinePatchDrawable statementConnectionHighlight = mPatchManager . getPatchDrawable ( R . drawable . statementinput_top_connection ) ; mHelper . setRtlAwareBounds ( tempRect , mBlockViewSize . x , xOffset , inputLayoutOrigin . y , xToAbove , inputLayoutOrigin . y + statementTopDrawable . getIntrinsicHeight ( ) ) ; statementTopDrawable . setBounds ( tempRect ) ; statementTopBorderDrawable . setBounds ( tempRect ) ; statementConnectionHighlight . setBounds ( tempRect ) ; mBlockPatches . add ( statementTopDrawable ) ; mBlockBorderPatches . add ( statementTopBorderDrawable ) ; mInputConnectionHighlightPatches . set ( i , statementConnectionHighlight ) ; final NinePatchDrawable statementBottomDrawable = getColoredPatchDrawable ( isShadow ? R . drawable . statementinput_bottom_shadow : R . drawable . statementinput_bottom ) ; final NinePatchDrawable statementBottomBorderDrawable = mPatchManager . getPatchDrawable ( R . drawable . statementinput_bottom_border ) ; final int connectorHeight = Math . max ( inputView . getTotalChildHeight ( ) , inputView . getMeasuredHeight ( ) ) ; mHelper . setRtlAwareBounds ( tempRect , mBlockViewSize . x , xOffset , inputLayoutOrigin . y + statementTopDrawable . getIntrinsicHeight ( ) , xToBelow , inputLayoutOrigin . y + connectorHeight ) ; statementBottomDrawable . setBounds ( tempRect ) ; statementBottomBorderDrawable . setBounds ( tempRect ) ; mBlockPatches . add ( statementBottomDrawable ) ; mBlockBorderPatches . add ( statementBottomBorderDrawable ) ; }
add patches ( top and bottom ) for a statement input connector .
