/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.facebook.share.internal;
import android.os.Parcel;
import android.os.Parcelable;
import com.facebook.share.model.ShareContent;
// This class is used specifically for backwards support in unity for various feed parameters
// Currently this content is only supported if you set the mode to Feed when sharing.
public class ShareFeedContent
extends ShareContent<ShareFeedContent, ShareFeedContent.Builder> {
private final String toId;
private final String link;
private final String linkName;
private final String linkCaption;
private final String linkDescription;
private final String picture;
private final String mediaSource;
private ShareFeedContent(final Builder builder) {
super(builder);
this.toId = builder.toId;
this.link = builder.link;
this.linkName = builder.linkName;
this.linkCaption = builder.linkCaption;
this.linkDescription = builder.linkDescription;
this.picture = builder.picture;
this.mediaSource = builder.mediaSource;
}
ShareFeedContent(final Parcel in) {
super(in);
this.toId = in.readString();
this.link = in.readString();
this.linkName = in.readString();
this.linkCaption = in.readString();
this.linkDescription = in.readString();
this.picture = in.readString();
this.mediaSource = in.readString();
}
public String getToId() {
return toId;
}
public String getLink() {
return link;
}
public String getLinkName() {
return linkName;
}
public String getLinkCaption() {
return linkCaption;
}
public String getLinkDescription() {
return linkDescription;
}
public String getPicture() {
return picture;
}
public String getMediaSource() {
return mediaSource;
}
public int describeContents() {
return 0;
}
public void writeToParcel(final Parcel out, final int flags) {
super.writeToParcel(out, flags);
out.writeString(this.toId);
out.writeString(this.link);
out.writeString(this.linkName);
out.writeString(this.linkCaption);
out.writeString(this.linkDescription);
out.writeString(this.picture);
out.writeString(this.mediaSource);
}
@SuppressWarnings("unused")
public static final Parcelable.Creator<ShareFeedContent> CREATOR =
new Parcelable.Creator<ShareFeedContent>() {
public ShareFeedContent createFromParcel(final Parcel in) {
return new ShareFeedContent(in);
}
public ShareFeedContent[] newArray(final int size) {
return new ShareFeedContent[size];
}
};
/**
* Builder for the {@link ShareFeedContent} interface.
*/
public static final class Builder
extends ShareContent.Builder<ShareFeedContent, Builder> {
private String toId;
private String link;
private String linkName;
private String linkCaption;
private String linkDescription;
private String picture;
private String mediaSource;
public ShareFeedContent.Builder setToId(String toId) {
this.toId = toId;
return this;
}
public ShareFeedContent.Builder setLink(String link) {
this.link = link;
return this;
}
public ShareFeedContent.Builder setLinkName(String linkName) {
this.linkName = linkName;
return this;
}
public ShareFeedContent.Builder setLinkCaption(String linkCaption) {
this.linkCaption = linkCaption;
return this;
}
public ShareFeedContent.Builder setLinkDescription(String linkDescription) {
this.linkDescription = linkDescription;
return this;
}
public ShareFeedContent.Builder setPicture(String picture) {
this.picture = picture;
return this;
}
public ShareFeedContent.Builder setMediaSource(String mediaSource) {
this.mediaSource = mediaSource;
return this;
}
@Override
public ShareFeedContent build() {
return new ShareFeedContent(this);
}
@Override
public Builder readFrom(final ShareFeedContent model) {
if (model == null) {
return this;
}
return super
.readFrom(model)
.setToId(model.getToId())
.setLink(model.getLink())
.setLinkName(model.getLinkName())
.setLinkCaption(model.getLinkCaption())
.setLinkDescription(model.getLinkDescription())
.setPicture(model.getPicture())
.setMediaSource(model.getMediaSource())
;
}
}
}