package com.Facebook;
import com.facebook.SessionDefaultAudience;
import com.facebook.SessionLoginBehavior;
import java.util.ArrayList;
import java.util.List;
public class SimpleFacebookConfiguration
{
private String mAppId;
private String mNamespace;
private List<String> mReadPermissions = null;
private List<String> mPublishPermissions = null;
private SessionDefaultAudience mDefaultAudience = null;
private SessionLoginBehavior mLoginBehavior = null;
private boolean mHasPublishPermissions = false;
private SimpleFacebookConfiguration(Builder builder)
{
this.mAppId = builder.mAppId;
this.mNamespace = builder.mNamespace;
this.mReadPermissions = builder.mReadPermissions;
this.mPublishPermissions = builder.mPublishPermissions;
this.mDefaultAudience = builder.mDefaultAudience;
this.mLoginBehavior = builder.mLoginBehavior;
if (this.mPublishPermissions.size() > 0)
{
this.mHasPublishPermissions = true;
}
}
/**
* Get facebook application id
*
* @return
*/
String getAppId()
{
return mAppId;
}
/**
* Get application namespace
*
* @return
*/
String getNamespace()
{
return mNamespace;
}
/**
* Get read permissions
*
* @return
*/
List<String> getReadPermissions()
{
return mReadPermissions;
}
/**
* Get publish permissions
*
* @return
*/
List<String> getPublishPermissions()
{
return mPublishPermissions;
}
/**
* Return <code>True</code> if 'PUBLISH' permissions are defined
*
* @return
*/
boolean hasPublishPermissions()
{
return mHasPublishPermissions;
}
/**
* Get session login behavior
*
* @return
*/
SessionLoginBehavior getSessionLoginBehavior()
{
return mLoginBehavior;
}
/**
* Get session default audience
*
* @return
*/
SessionDefaultAudience getSessionDefaultAudience()
{
return mDefaultAudience;
}
public static class Builder
{
private String mAppId = null;
private String mNamespace = null;
private List<String> mReadPermissions = new ArrayList<String>();
private List<String> mPublishPermissions = new ArrayList<String>();
private SessionDefaultAudience mDefaultAudience = SessionDefaultAudience.FRIENDS;
private SessionLoginBehavior mLoginBehavior = SessionLoginBehavior.SSO_WITH_FALLBACK;
public Builder()
{
}
/**
* Set facebook App Id. <br>
* The application id is located in the dashboard of the app in admin panel of facebook
*
* @param appId
*/
public Builder setAppId(String appId)
{
mAppId = appId;
return this;
}
/**
* Set application namespace
*
* @param namespace
* @return
*/
public Builder setNamespace(String namespace)
{
mNamespace = namespace;
return this;
}
/**
* Set the array of permissions you want to use in your application
*
* @param permissions
*/
public Builder setPermissions(Permissions[] permissions)
{
for (Permissions permission: permissions)
{
switch (permission.getType())
{
case READ:
mReadPermissions.add(permission.getValue());
break;
case PUBLISH:
mPublishPermissions.add(permission.getValue());
break;
default:
break;
}
}
return this;
}
/**
* @param defaultAudience The defaultAudience to set.
* @see com.facebook.SessionDefaultAudience
*/
public Builder setDefaultAudience(SessionDefaultAudience defaultAudience)
{
mDefaultAudience = defaultAudience;
return this;
}
/**
* @param loginBehavior The loginBehavior to set.
* @see com.facebook.SessionLoginBehavior
*/
public Builder setLoginBehavior(SessionLoginBehavior loginBehavior)
{
mLoginBehavior = loginBehavior;
return this;
}
/**
* Build the configuration for storage tool.
*
* @return
*/
public SimpleFacebookConfiguration build()
{
return new SimpleFacebookConfiguration(this);
}
}
public String toString()
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder
.append("[ ")
// app id
.append("mAppId:")
.append(mAppId)
.append(", ")
// namespace
.append("mNamespace:")
.append(mNamespace)
.append(", ")
// default audience
.append("mDefaultAudience:")
.append(mDefaultAudience.name())
.append(", ")
// login behavior
.append("mLoginBehavior:")
.append(mLoginBehavior.name())
.append(", ")
// read permissions
.append("mReadPermissions:")
.append(mReadPermissions.toString())
.append(", ")
// publish permissions
.append("mPublishPermissions:")
.append(mPublishPermissions.toString())
.append(" ]");
return stringBuilder.toString();
}
}