meow-7.2.2
Gilbert Gonzales 2013-04-16 19:35:00 -07:00
commit 9d615bbb44
1 changed files with 21 additions and 47 deletions

View File

@ -1712,10 +1712,10 @@ void LLPanelPeople::showFacebookFriends(const LLSD& friends)
{
mFacebookFriends->clear();
for (LLSD::array_const_iterator i = friends.beginArray(); i != friends.endArray(); ++i)
for (LLSD::map_const_iterator i = friends.beginMap(); i != friends.endMap(); ++i)
{
std::string name = (*i)["name"].asString();
LLUUID agent_id = (*i).has("agent_id") ? (*i)["agent_id"].asUUID() : LLUUID(NULL);
std::string name = i->second["name"].asString();
LLUUID agent_id = i->second.has("agent_id") ? i->second["agent_id"].asUUID() : LLUUID(NULL);
mFacebookFriends->addNewItem(agent_id, name, false);
}
@ -1763,15 +1763,8 @@ public:
llinfos << content << llendl;
// grab some graph data now that we are connected
if (content["success"])
{
mPanelPeople->mConnectedToFbc = true;
mPanelPeople->loadFacebookFriends();
}
else if (content.has("error"))
{
llinfos << "failed to connect. reason: " << content["error"]["message"] << llendl;
}
mPanelPeople->mConnectedToFbc = true;
mPanelPeople->loadFacebookFriends();
}
else
{
@ -1795,15 +1788,8 @@ public:
llinfos << content << llendl;
// hide all the facebook stuff
if (content["success"])
{
mPanelPeople->mConnectedToFbc = false;
mPanelPeople->hideFacebookFriends();
}
else if (content.has("error"))
{
llinfos << "failed to disconnect. reason: " << content["error"]["message"] << llendl;
}
mPanelPeople->mConnectedToFbc = false;
mPanelPeople->hideFacebookFriends();
}
else
{
@ -1828,23 +1814,21 @@ public:
llinfos << content << llendl;
// grab some graph data if already connected
if (content["connected"])
{
mPanelPeople->mConnectedToFbc = true;
mPanelPeople->loadFacebookFriends();
}
mPanelPeople->mConnectedToFbc = true;
mPanelPeople->loadFacebookFriends();
}
else
{
llinfos << "failed to get response. reason: " << reason << " status: " << status << llendl;
// show the facebook login page if not connected yet
else if (mShowLoginIfNotConnected)
if (status == 404 && mShowLoginIfNotConnected)
{
LLFloaterWebContent::Params p;
p.url("https://www.facebook.com/dialog/oauth?client_id=565771023434202&redirect_uri=" + mPanelPeople->getFacebookRedirectURL());
mPanelPeople->openFacebookWeb(p);
}
}
else
{
llinfos << "failed to get response. reason: " << reason << " status: " << status << llendl;
}
}
};
@ -1863,14 +1847,7 @@ public:
llinfos << content << llendl;
// display the list of friends
if (content.has("friends") && !content.has("error"))
{
mPanelPeople->showFacebookFriends(content["friends"]);
}
else if (content.has("error"))
{
llinfos << "failed to get facebook friends. reason: " << content["error"]["message"] << llendl;
}
mPanelPeople->showFacebookFriends(content);
}
else
{
@ -1881,31 +1858,28 @@ public:
void LLPanelPeople::loadFacebookFriends()
{
LLHTTPClient::get(getFacebookConnectURL("/friends"), new FacebookFriendsResponder(this));
LLHTTPClient::get(getFacebookConnectURL("/friend"), new FacebookFriendsResponder(this));
}
void LLPanelPeople::tryToReconnectToFacebook()
{
if (!mConnectedToFbc)
{
LLHTTPClient::get(getFacebookConnectURL(), new FacebookConnectedResponder(this, false));
LLHTTPClient::get(getFacebookConnectURL("/connection"), new FacebookConnectedResponder(this, false));
}
}
void LLPanelPeople::connectToFacebook(const std::string& auth_code)
{
LLSD body;
body["agent_id"] = gAgentID.asString();
body["code"] = auth_code;
body["redirect_uri"] = getFacebookRedirectURL();
LLHTTPClient::post(getFacebookConnectURL("/connect"), body, new FacebookConnectResponder(this));
LLHTTPClient::put(getFacebookConnectURL("/connection"), body, new FacebookConnectResponder(this));
}
void LLPanelPeople::disconnectFromFacebook()
{
LLSD body;
body["agent_id"] = gAgentID.asString();
LLHTTPClient::post(getFacebookConnectURL("/disconnect"), body, new FacebookDisconnectResponder(this));
LLHTTPClient::del(getFacebookConnectURL("/connection"), new FacebookDisconnectResponder(this));
}
std::string LLPanelPeople::getFacebookConnectURL(const std::string& route)
@ -1931,7 +1905,7 @@ void LLPanelPeople::onLoginFbcButtonClicked()
}
else
{
LLHTTPClient::get(getFacebookConnectURL(), new FacebookConnectedResponder(this, true));
LLHTTPClient::get(getFacebookConnectURL("/connection"), new FacebookConnectedResponder(this, true));
}
}