class ConstraintTracker {

    public void addListener(ConstraintListener<T> listener) {
        if (mListeners.add(listener)) {
            if (mListeners.size() == 1) {
                mCurrentState = getInitialState();
                Log.d(TAG, String.format("%s: initial state = %s", getClass().getSimpleName(),
                        mCurrentState));
                startTracking();
            }
            listener.onConstraintChanged(mCurrentState);
        }
    }

      ConstraintTracker(Context context);

}