diff options
| author | Jérémy Zurcher <jeremy@asynk.ch> | 2014-02-13 22:15:10 +0100 | 
|---|---|---|
| committer | Jérémy Zurcher <jeremy@asynk.ch> | 2016-11-10 17:40:55 +0100 | 
| commit | aa33f187990a0858de0252c96a695d984ba9b924 (patch) | |
| tree | 91af28db188e57b41e7e8df19df95d6a0fe82392 /Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FeedFragmentData.java | |
| parent | f14e5dbbdf84a5bc068e3a1cfd104e876dd6da61 (diff) | |
| download | coursera-aa33f187990a0858de0252c96a695d984ba9b924.zip coursera-aa33f187990a0858de0252c96a695d984ba9b924.tar.gz  | |
Android : 04-TheFragmentClass: add
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.java | 83 | 
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]); +    } +}  | 
