aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikita Bernstein2012-06-24 01:27:46 -0400
committerNikita Bernstein2012-06-24 01:27:46 -0400
commitebe3abd8fd8a9dc3b313aa088229e79da2e270d2 (patch)
tree2d4a3519623069b193af3c08ca81f8d8fe4b6404
parent0e8de45a18994c14522f77156a5ac8fb3d2bdd99 (diff)
parentb847cd11cebcc0a56ffc2043d4372e3be488e45c (diff)
downloadLikeFeed-ebe3abd8fd8a9dc3b313aa088229e79da2e270d2.tar.bz2
Merge branch 'master' of https://github.com/teddywing/LikeFeed
Conflicts: Resources/friendship/ui/LikeList.js
-rw-r--r--Resources/friendship/core/FacebookFQL.js50
-rw-r--r--Resources/friendship/ui/ActivityIndicator.js34
-rw-r--r--Resources/friendship/ui/ApplicationWindow.js4
-rw-r--r--Resources/friendship/ui/LikeList.js24
-rw-r--r--Resources/friendship/ui/ui.js3
5 files changed, 67 insertions, 48 deletions
diff --git a/Resources/friendship/core/FacebookFQL.js b/Resources/friendship/core/FacebookFQL.js
index 99d64f6..7abf0c0 100644
--- a/Resources/friendship/core/FacebookFQL.js
+++ b/Resources/friendship/core/FacebookFQL.js
@@ -5,41 +5,27 @@
Ti.Facebook.requestWithGraphPath(fqlURL, {}, 'GET', fqlCallback);
};
- fs.core.queryAllFriendPostsFQL = function() {
+ fs.core.handleFQLResponse = function(response, eventName) {
+ if (response.success) {
+ var data = JSON.parse(response.result);
+ Ti.API.fireEvent(eventName, {data: data});
+ } else if (response.error) {
+ Ti.API.fireEvent("processFQLError", {what: response.error}); // TODO: add event listener to processFQLError and print the .what field
+ } else {
+ Ti.API.fireEvent("processFQLError", {what: "unrecognized query response"});
+ }
+ }; // TODO: find some way to handle timeout (via Ti.Facebook....)
+
+ fs.core.handleAllFriendPostsFQLResponse = function (result) { fs.core.handleFQLResponse(result, "processPosts"); };
+ fs.core.queryAllFriendPostsFQL = function() { // TODO: make a variant that takes in user list and other filter info
var query = "SELECT page_id, name, description, page_url, pic_square, fan_count, type, website, general_info ";
query += "FROM page WHERE page_id ";
query += "IN (SELECT page_id FROM page_fan WHERE uid ";
//query += "= " + Ti.Facebook.uid + ")";
query += "IN (SELECT uid2 FROM friend WHERE uid1 = " + Titanium.Facebook.uid + "))";
- //query += "order by last_name limit 20";
- Ti.Facebook.request('fql.query', {query: query}, fs.core.handleAllFriendPostsFQL);
- // TODO: after calling this fn, display the loading animation
- };
-
- /*
- fs.core.handleFQLResponse = function(callback) {
- };
- */
-
- fs.core.handleAllFriendPostsFQL = function(result) {
- if (result.success) {
- var postsList = JSON.parse(result.result);
-
- /*
- Ti.API.info(postsList.length);
- Ti.API.info(postsList[0].name);
- Ti.API.info(postsList[0].page_id);
- Ti.API.info(postsList[0].website);
- */
-
- Ti.API.fireEvent("processPosts", {list:postsList});
- } else if (result.error) {
- //Ti.API.info("ERROR: " + result.error); // TODO: remove
- Ti.API.fireEvent("processFQLError", {what:result.error});
- } else {
- //Ti.API.info("ERROR: unknown response from FQL query"); // TODO: remove
- Ti.API.fireEvent("processFQLError", {what:"unknown FQL response"});
- }
- }; // TODO: handle timeouts
-
+ query += " limit 20"; // TODO: remove the limit
+ Ti.API.info(query); // TODO: remove debug printout
+ Ti.Facebook.request('fql.query', {query: query}, fs.core.handleAllFriendPostsFQLResponse);
+ Ti.API.fireEvent("displayLoadingAnimation");
+ };
})();
diff --git a/Resources/friendship/ui/ActivityIndicator.js b/Resources/friendship/ui/ActivityIndicator.js
new file mode 100644
index 0000000..d74a563
--- /dev/null
+++ b/Resources/friendship/ui/ActivityIndicator.js
@@ -0,0 +1,34 @@
+(function() {
+ fs.ui.createLoadingView = function() {
+ var loading_view = Ti.UI.createView({
+ height: 100,
+ width: 100,
+ visible: false
+ });
+
+ var background = Ti.UI.createView({
+ backgroundColor: '#222',
+ opacity: 0.82,
+ borderRadius: 10
+ });
+ var loader = Ti.UI.createActivityIndicator({
+ style: Titanium.UI.iPhone.ActivityIndicatorStyle.BIG
+ });
+
+ loading_view.add(background);
+ loading_view.add(loader);
+ loader.show();
+
+ Ti.App.addEventListener('app:show.loader', function() {
+ if (!loading_view.visible) {
+ loading_view.visible = true;
+ }
+ });
+
+ Ti.App.addEventListener('app:hide.loader', function() {
+ loading_view.visible = false;
+ });
+
+ return loading_view;
+ };
+})();
diff --git a/Resources/friendship/ui/ApplicationWindow.js b/Resources/friendship/ui/ApplicationWindow.js
index 5243bd3..babc43c 100644
--- a/Resources/friendship/ui/ApplicationWindow.js
+++ b/Resources/friendship/ui/ApplicationWindow.js
@@ -10,6 +10,10 @@
var debug_button = Ti.UI.createButton({title: 'Debug'});
debug_button.addEventListener('click', function(e) {
+ // Show loading view
+ var loading = fs.ui.createLoadingView();
+ win.add(loading);
+ Ti.App.fireEvent('app:show.loader');
Ti.API.info('Logged in: ' + JSON.stringify(Ti.Facebook.loggedIn));
if (Ti.Facebook.loggedIn) {
diff --git a/Resources/friendship/ui/LikeList.js b/Resources/friendship/ui/LikeList.js
index f373c4a..1a98bf6 100644
--- a/Resources/friendship/ui/LikeList.js
+++ b/Resources/friendship/ui/LikeList.js
@@ -112,24 +112,18 @@
fs.ui.createLikeList = function() {
var ll_view = Ti.UI.createTableView();
- /*
- ll_view.addEventListener('click', function(e) {
- Ti.UI.currentTabGroup.activeTab.open(fs.ui.createWebViewWin({
- title: e.title,
- url: e.url
- }));
- });
- */
-
- // add_test_data( ll_view );
+ var loading = fs.ui.createLoadingView();
+ ll_view.add(loading);
+
+ // Ti.App.fireEvent('app:show.loader');
- Ti.API.addEventListener( "processPosts", function( list ) {
- if( list.list.length == 0 )
- Ti.UI.createAlertDialog( {title:"Sorry, but the request returned 0 items."} ).show();
- for ( key in list.list ) {
- ll_view.appendRow( create_row( list.list[key] ) );
+ Ti.API.addEventListener("processPosts", function(d) {
+ for ( key in d.data ) {
+ ll_view.appendRow( create_row( d.data[key] ) );
}
+
+ Ti.App.fireEvent('app:hide.loader');
});
return ll_view;
diff --git a/Resources/friendship/ui/ui.js b/Resources/friendship/ui/ui.js
index 76def2e..f810b87 100644
--- a/Resources/friendship/ui/ui.js
+++ b/Resources/friendship/ui/ui.js
@@ -6,5 +6,6 @@ Ti.include(
'/friendship/ui/ApplicationWindow.js',
'/friendship/ui/LikeList.js',
'/friendship/ui/LoginWindow.js',
- '/friendship/ui/WebView.js'
+ '/friendship/ui/WebView.js',
+ '/friendship/ui/ActivityIndicator.js'
)