@Override public boolean equals(Object o) { if (o instanceof MediaRouteSelector) { MediaRouteSelector other = (MediaRouteSelector) o; ensureControlCategories(); other.ensureControlCategories(); return mControlCategories.equals(other.mControlCategories); } return false; }
/** * Adds the contents of an existing media route selector to the builder. * * @param selector The media route selector whose contents are to be added. * @return The builder instance for chaining. */ public Builder addSelector(MediaRouteSelector selector) { if (selector == null) { throw new IllegalArgumentException("selector must not be null"); } addControlCategories(selector.getControlCategories()); return this; }
/** * Returns true if this selector contains all of the capabilities described by the specified * selector. * * @param selector The selector to be examined. * @return True if this selector contains all of the capabilities described by the specified * selector. */ public boolean contains(MediaRouteSelector selector) { if (selector != null) { ensureControlCategories(); selector.ensureControlCategories(); return mControlCategories.containsAll(selector.mControlCategories); } return false; }
@Override public void onDetachedFromWindow() { mAttachedToWindow = false; if (!mSelector.isEmpty()) { mRouter.removeCallback(mCallback); } super.onDetachedFromWindow(); }
/** * Sets the media route selector for filtering the routes that the user can select using the media * route chooser dialog. * * @param selector The selector, must not be null. */ public void setRouteSelector(MediaRouteSelector selector) { if (selector == null) { throw new IllegalArgumentException("selector must not be null"); } if (!mSelector.equals(selector)) { if (mAttachedToWindow) { if (!mSelector.isEmpty()) { mRouter.removeCallback(mCallback); } if (!selector.isEmpty()) { mRouter.addCallback(selector, mCallback); } } mSelector = selector; refreshRoute(); } }
/** * Creates a media route selector descriptor builder whose initial contents are copied from an * existing selector. */ public Builder(MediaRouteSelector selector) { if (selector == null) { throw new IllegalArgumentException("selector must not be null"); } selector.ensureControlCategories(); if (!selector.mControlCategories.isEmpty()) { mControlCategories = new ArrayList<String>(selector.mControlCategories); } }
@Override public void onAttachedToWindow() { super.onAttachedToWindow(); mAttachedToWindow = true; if (!mSelector.isEmpty()) { mRouter.addCallback(mSelector, mCallback); } refreshRoute(); }