android.databinding.InverseBindingListener Java Examples

The following examples show how to use android.databinding.InverseBindingListener. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: CheckBoxBindingAdapterUtils.java    From xDrip with GNU General Public License v3.0 6 votes vote down vote up
@BindingAdapter(value = {"onCheckedChanged", "checkedAttrChanged"},
        requireAll = false)
public static void setListeners(CompoundButton view, final OnCheckedChangeListener listener,
                                final InverseBindingListener attrChange) {
    if (attrChange == null) {
        view.setOnCheckedChangeListener(listener);
    } else {
        view.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (listener != null) {
                    listener.onCheckedChanged(buttonView, isChecked);
                }
                attrChange.onChange();
            }
        });
    }
}
 
Example #2
Source File: CheckBoxBindingAdapterUtils.java    From xDrip-plus with GNU General Public License v3.0 6 votes vote down vote up
@BindingAdapter(value = {"onCheckedChanged", "checkedAttrChanged"},
        requireAll = false)
public static void setListeners(CompoundButton view, final OnCheckedChangeListener listener,
                                final InverseBindingListener attrChange) {
    if (attrChange == null) {
        view.setOnCheckedChangeListener(listener);
    } else {
        view.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (listener != null) {
                    listener.onCheckedChanged(buttonView, isChecked);
                }
                attrChange.onChange();
            }
        });
    }
}
 
Example #3
Source File: BindingConfig.java    From Android-MVVMFramework with Apache License 2.0 6 votes vote down vote up
@BindingAdapter(value = {"onRefreshListener", "refreshingAttrChanged"}, requireAll = false)
public static void setOnRefreshListener(final SwipeRefreshLayout view,
                                        final SwipeRefreshLayout.OnRefreshListener listener,
                                        final InverseBindingListener refreshingAttrChanged) {

    SwipeRefreshLayout.OnRefreshListener newValue = new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            if (listener != null) {
                if (refreshingAttrChanged != null) {
                    refreshingAttrChanged.onChange();
                }
                listener.onRefresh();
            }
        }
    };

    SwipeRefreshLayout.OnRefreshListener oldValue = ListenerUtil.trackListener(view, newValue, R.id.onRefreshListener);
    if (oldValue != null) {
        view.setOnRefreshListener(null);
    }
    view.setOnRefreshListener(newValue);
}
 
Example #4
Source File: BindingConfig.java    From Android-MVVMFramework with Apache License 2.0 6 votes vote down vote up
@BindingAdapter(value = {"onRefreshListener", "refreshingAttrChanged"}, requireAll = false)
public static void setOnRefreshListener(final SwipeRefreshLayout view,
                                        final SwipeRefreshLayout.OnRefreshListener listener,
                                        final InverseBindingListener refreshingAttrChanged) {

    SwipeRefreshLayout.OnRefreshListener newValue = new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            if (listener != null) {
                if (refreshingAttrChanged != null) {
                    refreshingAttrChanged.onChange();
                }
                listener.onRefresh();
            }
        }
    };

    SwipeRefreshLayout.OnRefreshListener oldValue = ListenerUtil.trackListener(view, newValue, R.id.onRefreshListener);
    if (oldValue != null) {
        view.setOnRefreshListener(null);
    }
    view.setOnRefreshListener(newValue);
}
 
Example #5
Source File: HuePickerBindingAdapters.java    From spline with Apache License 2.0 5 votes vote down vote up
/**
 * This is how you implement 2-way data binding of a custom attribute if you want to maintain
 * a custom listener interface - OnHueChangeListener, in this case - while also leveraging
 * the synthetic attributes hueAttrChanged (the InverseBindingListener). For an example of
 * how to implement custom 2-way binding with just the synthetic AttrChanged attribute's
 * InverseBindingListener, see DocumentView or LayerListView's currentLayer 2-way binding
 * (along with the InverseBindingMethod declarations in DocumentViewModelBindingAdapters).
 *
 * @param view                   The view we're 2-way binding to.
 * @param onHueChangeListener    The OnHueChangeListener bound by the developer on the view
 *                               in question.
 * @param inverseBindingListener Synthetic attribute representing an InverseBindingListener
 *                               for changes to the hue attribute.
 */
@BindingAdapter(value = {"onHueChange", "hueAttrChanged"}, requireAll = false)
public static void setListeners(HuePicker view,
                                final HuePicker.OnHueChangeListener onHueChangeListener,
                                final InverseBindingListener inverseBindingListener) {
    HuePicker.OnHueChangeListener newListener;
    if (inverseBindingListener == null) {
        // If the synthetic listener param is null, just keep track of the listener set in
        // the binding
        newListener = onHueChangeListener;
    } else {
        // Otherwise define a new listener to wraps both listeners and invoke them at the
        // right time within the new listener if they are non-null
        newListener = new HuePicker.OnHueChangeListener() {
            @Override
            public void onHueChange(HuePicker huePicker, float hue) {
                if (onHueChangeListener != null) {
                    onHueChangeListener.onHueChange(huePicker, hue);
                }
                inverseBindingListener.onChange();
            }
        };
    }

    // Use track listener to record listener we're adding and return any old listeners
    // registered through this method so that on rebind we don't add duplicate listeners
    HuePicker.OnHueChangeListener oldListener = ListenerUtil.trackListener(view, newListener,
            R.id.hueChangeListener);

    // Remove the old listener we set using this BindingAdapter, if there is one
    if (oldListener != null) {
        view.removeHueChangeListener(oldListener);
    }

    // Add our new listener
    if (newListener != null) {
        view.addHueChangeListener(newListener);
    }
}
 
Example #6
Source File: LayerListView.java    From spline with Apache License 2.0 4 votes vote down vote up
public void setCurrentLayerAttrChanged(InverseBindingListener listener) {
    mAdapter.setCurrentLayerAttrChanged(listener);
}
 
Example #7
Source File: DocumentView.java    From spline with Apache License 2.0 4 votes vote down vote up
public void setCurrentLayerAttrChanged(InverseBindingListener listener) {
    mCurrentLayerAttrChangedListener = listener;
}
 
Example #8
Source File: DocumentView.java    From spline with Apache License 2.0 4 votes vote down vote up
public void setViewportXAttrChanged(InverseBindingListener listener) {
    mViewportXAttrChangedListener = listener;
}
 
Example #9
Source File: DocumentView.java    From spline with Apache License 2.0 4 votes vote down vote up
public void setViewportYAttrChanged(InverseBindingListener listener) {
    mViewportYAttrChangedListener = listener;
}
 
Example #10
Source File: DocumentView.java    From spline with Apache License 2.0 4 votes vote down vote up
public void setViewportWidthAttrChanged(InverseBindingListener listener) {
    mViewportWidthAttrChangedListener = listener;
}
 
Example #11
Source File: DocumentView.java    From spline with Apache License 2.0 4 votes vote down vote up
public void setViewportHeightAttrChanged(InverseBindingListener listener) {
    mViewportHeightAttrChangedListener = listener;
}
 
Example #12
Source File: SaturationValuePicker.java    From spline with Apache License 2.0 4 votes vote down vote up
public void setSaturationAttrChanged(InverseBindingListener listener) {
    mSaturationAttrChangedListener = listener;
}
 
Example #13
Source File: SaturationValuePicker.java    From spline with Apache License 2.0 4 votes vote down vote up
public void setValueAttrChanged(InverseBindingListener listener) {
    mValueAttrChangedListener = listener;
}
 
Example #14
Source File: RulerView.java    From spline with Apache License 2.0 4 votes vote down vote up
public void setViewportStartAttrChanged(InverseBindingListener listener) {
    mViewportStartAttrChangedListener = listener;
}
 
Example #15
Source File: RulerView.java    From spline with Apache License 2.0 4 votes vote down vote up
public void setHighlightStartAttrChanged(InverseBindingListener listener) {
    mHighlightStartAttrChangedListener = listener;
}
 
Example #16
Source File: LayerListAdapter.java    From spline with Apache License 2.0 4 votes vote down vote up
public void setCurrentLayerAttrChanged(InverseBindingListener currentLayerAttrChanged) {
    mCurrentLayerAttrChangedListener = currentLayerAttrChanged;
}