package net.toload.main.hd.candidate; import net.toload.main.hd.R; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.LinearLayout; public class CandidateInInputViewContainer extends LinearLayout implements OnTouchListener { private final boolean DEBUG = false; private final String TAG = "CandidanteInputViewContainer"; private View mButtonRight; private View mButtonRightLayout; private CandidateView mCandidates; public CandidateInInputViewContainer(Context context, AttributeSet attrs) { super(context, attrs); if(DEBUG) Log.i(TAG,"CandidateInInputViewContainer() constructor"); } public void initViews() { if(DEBUG) Log.i(TAG,"initViews()"); if (mCandidates == null) { mButtonRightLayout = findViewById(R.id.candidate_right_parent); mButtonRight = findViewById(R.id.candidate_right); if (mButtonRight != null) { mButtonRight.setOnTouchListener(this); } mCandidates = (CandidateView) findViewById(R.id.candidatesView); } } @Override public void requestLayout() { if(DEBUG) Log.i(TAG,"requestLayout()"); if (mCandidates != null) { int availableWidth = mCandidates.getWidth(); int neededWidth = mCandidates.computeHorizontalScrollRange(); boolean rightVisible = availableWidth < neededWidth; if(mCandidates.isCandidateExpanded()) rightVisible = false; if (mButtonRightLayout != null) { mButtonRightLayout.setVisibility(rightVisible ? VISIBLE : GONE); } } super.requestLayout(); } public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { if (v == mButtonRight) { mCandidates.showCandidatePopup(); } } return false; } }