private void addExternalValueInputPatch(boolean isShadow,int i,int xTo,InputView inputView,ViewPoint inputLayoutOrigin){
  mHelper.setPointMaybeFlip(mInputConnectorOffsets.get(i),xTo,inputLayoutOrigin.y);
  final NinePatchDrawable inputDrawable=getColoredPatchDrawable(isShadow ? R.drawable.value_input_external_shadow : R.drawable.value_input_external);
  final NinePatchDrawable inputBorderDrawable=mPatchManager.getPatchDrawable(R.drawable.value_input_external_border);
  final NinePatchDrawable connectionHighlightDrawable=mPatchManager.getPatchDrawable(R.drawable.value_input_external_connection);
  int patchLeft=xTo - inputDrawable.getIntrinsicWidth();
  int patchRight=xTo;
  int connectorTop=inputLayoutOrigin.y + mBlockTopPadding;
  int connectorBottom=inputLayoutOrigin.y + inputView.getMeasuredHeight();
  mHelper.setRtlAwareBounds(tempRect,mBlockViewSize.x,patchLeft,connectorTop,patchRight,connectorBottom);
  inputDrawable.setBounds(tempRect);
  inputBorderDrawable.setBounds(tempRect);
  connectionHighlightDrawable.setBounds(tempRect);
  mBlockPatches.add(inputDrawable);
  mBlockBorderPatches.add(inputBorderDrawable);
  mInputConnectionHighlightPatches.set(i,connectionHighlightDrawable);
  if (i > 0) {
    final NinePatchDrawable boundaryGapDrawable=getColoredPatchDrawable(R.drawable.dummy_input);
    final NinePatchDrawable boundaryGapBorderDrawable=mPatchManager.getPatchDrawable(R.drawable.dummy_input_border);
    mHelper.setRtlAwareBounds(tempRect,mBlockViewSize.x,patchLeft,inputLayoutOrigin.y,patchRight,connectorTop);
    boundaryGapDrawable.setBounds(tempRect);
    boundaryGapBorderDrawable.setBounds(tempRect);
    mBlockPatches.add(boundaryGapDrawable);
    mBlockBorderPatches.add(boundaryGapBorderDrawable);
  }
}

private void addExternalValueInputPatch ( boolean isShadow , int i , int xTo , InputView inputView , ViewPoint inputLayoutOrigin ) { mHelper . setPointMaybeFlip ( mInputConnectorOffsets . get ( i ) , xTo , inputLayoutOrigin . y ) ; final NinePatchDrawable inputDrawable = getColoredPatchDrawable ( isShadow ? R . drawable . value_input_external_shadow : R . drawable . value_input_external ) ; final NinePatchDrawable inputBorderDrawable = mPatchManager . getPatchDrawable ( R . drawable . value_input_external_border ) ; final NinePatchDrawable connectionHighlightDrawable = mPatchManager . getPatchDrawable ( R . drawable . value_input_external_connection ) ; int patchLeft = xTo - inputDrawable . getIntrinsicWidth ( ) ; int patchRight = xTo ; int connectorTop = inputLayoutOrigin . y + mBlockTopPadding ; int connectorBottom = inputLayoutOrigin . y + inputView . getMeasuredHeight ( ) ; mHelper . setRtlAwareBounds ( tempRect , mBlockViewSize . x , patchLeft , connectorTop , patchRight , connectorBottom ) ; inputDrawable . setBounds ( tempRect ) ; inputBorderDrawable . setBounds ( tempRect ) ; connectionHighlightDrawable . setBounds ( tempRect ) ; mBlockPatches . add ( inputDrawable ) ; mBlockBorderPatches . add ( inputBorderDrawable ) ; mInputConnectionHighlightPatches . set ( i , connectionHighlightDrawable ) ; if ( i > 0 ) { final NinePatchDrawable boundaryGapDrawable = getColoredPatchDrawable ( R . drawable . dummy_input ) ; final NinePatchDrawable boundaryGapBorderDrawable = mPatchManager . getPatchDrawable ( R . drawable . dummy_input_border ) ; mHelper . setRtlAwareBounds ( tempRect , mBlockViewSize . x , patchLeft , inputLayoutOrigin . y , patchRight , connectorTop ) ; boundaryGapDrawable . setBounds ( tempRect ) ; boundaryGapBorderDrawable . setBounds ( tempRect ) ; mBlockPatches . add ( boundaryGapDrawable ) ; mBlockBorderPatches . add ( boundaryGapBorderDrawable ) ; } }
add connector patch for external value inputs .
