diff options
| author | Nikita Bernstein | 2012-06-24 01:27:46 -0400 |
|---|---|---|
| committer | Nikita Bernstein | 2012-06-24 01:27:46 -0400 |
| commit | ebe3abd8fd8a9dc3b313aa088229e79da2e270d2 (patch) | |
| tree | 2d4a3519623069b193af3c08ca81f8d8fe4b6404 | |
| parent | 0e8de45a18994c14522f77156a5ac8fb3d2bdd99 (diff) | |
| parent | b847cd11cebcc0a56ffc2043d4372e3be488e45c (diff) | |
| download | LikeFeed-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.js | 50 | ||||
| -rw-r--r-- | Resources/friendship/ui/ActivityIndicator.js | 34 | ||||
| -rw-r--r-- | Resources/friendship/ui/ApplicationWindow.js | 4 | ||||
| -rw-r--r-- | Resources/friendship/ui/LikeList.js | 24 | ||||
| -rw-r--r-- | Resources/friendship/ui/ui.js | 3 |
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' ) |
