package com.gt.gtsnssharinglibrarydemo;
import java.util.Date;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.facebook.Session;
import com.facebook.model.GraphUser;
import com.gt.snssharinglibrary.Config;
import com.gt.snssharinglibrary.Config.SHARING_TYPE;
import com.gt.snssharinglibrary.pojo.SNSShareDetail;
import com.gt.snssharinglibrary.service.SNSService;
import com.gt.snssharinglibrary.service.SNSServiceCallback;
import com.gt.snssharinglibrary.service.SNSServiceImpl.SNS_LOGIN_TYPE;
import com.gt.snssharinglibrary.service.facebook_2_0.FacebookSessionStore;
import com.gt.snssharinglibrary.service.impl.FacebookService30Impl;
import com.gt.snssharinglibrary.util.LogController;
public class Facebook30TestingActivity extends Activity implements
SNSServiceCallback {
private Handler handler = new Handler();
private SNSService facebookServiceImpl;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (facebookServiceImpl != null)
{
facebookServiceImpl.onActivityResult(this, requestCode, resultCode, data);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("Facebook30TestingActivity");
Config.facebook30SharingType = SHARING_TYPE.WEB_DIALOG;
Config.FACEBOOK_PERMISSIONS = new String[] { "email", "user_birthday", "read_friendlists", "user_likes" };
facebookServiceImpl = new FacebookService30Impl();
facebookServiceImpl.setSNSServiceCallback(Facebook30TestingActivity.this);
facebookServiceImpl.onCreate(this, savedInstanceState);
Button loginBtn = (Button) findViewById(R.id.login_btn);
loginBtn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
facebookServiceImpl.login(Facebook30TestingActivity.this, handler, SNS_LOGIN_TYPE.LOGIN_TYPE_NORMAL_LOGIN);
}
});
Button logoutBtn = (Button) findViewById(R.id.logout_btn);
logoutBtn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
facebookServiceImpl.logout(Facebook30TestingActivity.this, handler);
}
});
Button postFeedBtn = (Button) findViewById(R.id.post_feed_btn);
postFeedBtn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
SNSShareDetail snsShareDetail = null;
if (Config.facebook30SharingType.equals(Config.SHARING_TYPE.WEB_DIALOG))
{
String title = "ABC title";
String caption = "XYZ caption";
String description = "123 description " + (new Date()).toString();
String link = "http://www.google.com.hk";
String pictureLink = null;
String friendId = "1105617012";
Bitmap bitmap = null;
String picSavePath = null;
snsShareDetail = new SNSShareDetail(title, caption, description, link, pictureLink, friendId, bitmap, picSavePath);
}
else if (Config.facebook30SharingType.equals(Config.SHARING_TYPE.PLAIN_TEXT))
{
String message = "Facebook Plain Text Message Testing. " + (new Date()).toString();
snsShareDetail = new SNSShareDetail(message);
}
facebookServiceImpl.post(Facebook30TestingActivity.this, snsShareDetail);
}
});
Button getFriendBtn = (Button) this.findViewById(R.id.get_friend_btn);
getFriendBtn.setVisibility(View.VISIBLE);
getFriendBtn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
facebookServiceImpl.getFriends(200, 200);
}
});
Button getFeedsBtn = (Button) this.findViewById(R.id.get_feeds_btn);
getFeedsBtn.setVisibility(View.VISIBLE);
getFeedsBtn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
Config.FACEBOOK_FEEDER_ID = "606823526";
facebookServiceImpl.getFeeds();
}
});
}
@Override
public void onStart() {
if (facebookServiceImpl != null)
{
facebookServiceImpl.onStart();
}
super.onStart();
}
@Override
public void onStop() {
if (facebookServiceImpl != null)
{
facebookServiceImpl.onStop();
}
super.onStop();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void logginStatus(int snsCode, boolean isSuccessLogin,
Object errorObject) {
String accessToken = "";
Session session = Session.getActiveSession();
if (session.isOpened())
{
accessToken = session.getAccessToken();
}
LogController.log("logginStatus >> " + snsCode + " " + isSuccessLogin + " " + accessToken);
}
@Override
public void getProfileStatus(int snsCode, boolean isSuccessGetProfile,
Object errorObject) {
LogController.log("getProfileStatus >> " + snsCode + " " + isSuccessGetProfile);
LogController.log("getProfileStatus >> " + FacebookSessionStore.restoreUsername(this));
LogController.log("getProfileStatus >> " + FacebookSessionStore.restoreFacebookId(this));
LogController.log("getProfileStatus >> " + FacebookSessionStore.restoreFacebookEmail(this));
}
@Override
public void loggoutStatus(int snsCode, boolean isSuccessLogout,
Object errorObject) {
LogController.log("loggoutStatus >> " + snsCode + " " + isSuccessLogout);
}
@Override
public void postStatus(int snsCode, boolean isSuccessPost,
Object errorObject) {
LogController.log("postStatus >> " + snsCode + " " + isSuccessPost);
}
@SuppressWarnings("unchecked")
@Override
public void getFriendsStatus(boolean arg0, Object arg1, Object arg2) {
if (arg0)
{
if (arg1 != null)
{
if (arg1 instanceof List<?>)
{
List<GraphUser> users = (List<GraphUser>) arg1;
GraphUser user = null;
for (int i = 0; i < users.size(); i++)
{
user = users.get(i);
if (user != null)
{
try
{
LogController.log("Facebook User " + " " + i + " " + user.getId() + " " + user.getProperty("name") + " " + user.getProperty("installed"));
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}
else
{
LogController.log("getFriendsStatus >> " + arg0 + " ");
}
Toast.makeText(this, "Get Friend Finished.", Toast.LENGTH_LONG).show();
}
@Override
public void getFeedsStatus(boolean isSuccess, Object feedsResultObject,
Object errorObject) {
if (feedsResultObject != null)
{
LogController.log(feedsResultObject.toString());
}
}
@Override
public void likeFeedStatus(boolean isSuccess, Object feedsResultObject,
Object errorObject) {
// TODO Auto-generated method stub
}
}