summaryrefslogtreecommitdiffstats
path: root/Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FeedFragmentData.java
diff options
context:
space:
mode:
Diffstat (limited to 'Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FeedFragmentData.java')
-rw-r--r--Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FeedFragmentData.java83
1 files changed, 83 insertions, 0 deletions
diff --git a/Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FeedFragmentData.java b/Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FeedFragmentData.java
new file mode 100644
index 0000000..fb09cae
--- /dev/null
+++ b/Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FeedFragmentData.java
@@ -0,0 +1,83 @@
+package course.labs.fragmentslab;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import android.content.Context;
+import android.util.Log;
+import android.util.SparseArray;
+
+// Utility class that provides stored Twitter feed data
+public class FeedFragmentData {
+ private static final String TAG = "FeedFragmentData";
+ private static final int[] IDS = { R.raw.ladygaga, R.raw.rebeccablack, R.raw.taylorswift };
+
+ private SparseArray<String> mFeeds = new SparseArray<String>();
+ private Context mContext;
+
+
+ public FeedFragmentData(Context context) {
+ mContext = context;
+ loadFeeds();
+ }
+
+ // Load all stored Twitter feeds into the mFeeds SparseArray.
+ private void loadFeeds() {
+ for (int id : IDS) {
+ InputStream inputStream = mContext.getResources().openRawResource(id);
+ BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
+ StringBuffer buffer = new StringBuffer("");
+
+ // Read raw data from resource file
+ try {
+ String line = "";
+ while ((line = reader.readLine()) != null) {
+ buffer.append(line);
+ }
+ } catch (IOException e) {
+ Log.i(TAG, "IOException");
+ }
+
+ // Convert raw data into a String
+ JSONArray feed = null;
+ try {
+ feed = new JSONArray(buffer.toString());
+ } catch (JSONException e) {
+ Log.i(TAG, "JSONException");
+ }
+ mFeeds.put(id, procFeed(feed));
+ }
+ }
+
+ // Convert JSON formatted data to a String
+ private String procFeed(JSONArray feed) {
+ String name = "";
+ String tweet = "";
+
+ // string buffer for twitter feeds
+ StringBuffer textFeed = new StringBuffer("");
+
+ for (int j = 0; j < feed.length(); j++) {
+ try {
+ tweet = feed.getJSONObject(j).getString("text");
+ JSONObject user = (JSONObject) feed.getJSONObject(j).get("user");
+ name = user.getString("name");
+ } catch (JSONException e) {
+ Log.i(TAG, "JSONException while processing feed");
+ }
+ textFeed.append(name + " - " + tweet + "\n\n");
+ }
+ return textFeed.toString();
+ }
+
+ // Return the Twitter feed data for the specified position as a single String
+ String getFeed (int position) {
+ return mFeeds.get(IDS[position]);
+ }
+}