diff --git a/Labs/Lab6_NotificationsLab/.gitignore b/Labs/Lab6_NotificationsLab/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..ceff37eff0e621e8f96607f26a6bced4727fb5a5 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/.gitignore @@ -0,0 +1,39 @@ +# built application files +*.apk +*.ap_ + +# files for the dex VM +*.dex + +# Java class files +*.class + +# generated files +bin/ +gen/ + +# Local configuration file (sdk path, etc) +local.properties + +# Eclipse project files +.classpath +.settings + +# Proguard folder generated by Eclipse +proguard/ + +# Intellij project files +*.iml +*.ipr +*.iws +.idea +.idea/workspace.xml +.gradle +build/ +captures/ + +# Mac files +.DS_Store + +# Windows thumbnail db +Thumbs.db diff --git a/Labs/Lab6_NotificationsLab/Lab-Notifications.docx b/Labs/Lab6_NotificationsLab/Lab-Notifications.docx new file mode 100644 index 0000000000000000000000000000000000000000..8864a4feb97ee8ce558600c21e893136052f2c23 Binary files /dev/null and b/Labs/Lab6_NotificationsLab/Lab-Notifications.docx differ diff --git a/Labs/Lab6_NotificationsLab/Lab-Notifications.pdf b/Labs/Lab6_NotificationsLab/Lab-Notifications.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c9eaab293c15a2a67b4c44c495ddca090e01f3ed Binary files /dev/null and b/Labs/Lab6_NotificationsLab/Lab-Notifications.pdf differ diff --git a/Labs/Lab6_NotificationsLab/Notification_Lab_Video.webm b/Labs/Lab6_NotificationsLab/Notification_Lab_Video.webm new file mode 100644 index 0000000000000000000000000000000000000000..a4904f4322239a26e8ef9221e18ed01c06bfa4fe Binary files /dev/null and b/Labs/Lab6_NotificationsLab/Notification_Lab_Video.webm differ diff --git a/Labs/Lab6_NotificationsLab/app/build.gradle b/Labs/Lab6_NotificationsLab/app/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..c38fd4926e1a2f0f267bca56735dfc92c98387d4 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/build.gradle @@ -0,0 +1,31 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 31 + + defaultConfig { + applicationId "course.labs.notificationslab" + minSdkVersion 29 + targetSdkVersion 31 + + testApplicationId "course.labs.notificationslab.tests" + testInstrumentationRunner "android.test.InstrumentationTestRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' + } + } +} + +dependencies { + androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.6.3' + implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2' + implementation "androidx.fragment:fragment-ktx:1.4.1" +} +repositories { + mavenCentral() +} diff --git a/Labs/Lab6_NotificationsLab/app/lint.xml b/Labs/Lab6_NotificationsLab/app/lint.xml new file mode 100644 index 0000000000000000000000000000000000000000..68283755f390a4fd31fa87cb12fde79e270cab01 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/lint.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<lint> + <issue id="NewApi"> + <ignore path="src/course/labs/notificationslab/DownloaderTask.java" /> + </issue> +</lint> \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/androidTest/java/course/labs/notificationslab/tests/NewFeedTest.kt b/Labs/Lab6_NotificationsLab/app/src/androidTest/java/course/labs/notificationslab/tests/NewFeedTest.kt new file mode 100644 index 0000000000000000000000000000000000000000..ec776f61c4a508784c9e8fc8230145f1f2edde9f --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/androidTest/java/course/labs/notificationslab/tests/NewFeedTest.kt @@ -0,0 +1,63 @@ +package course.labs.notificationslab.tests + +import android.test.ActivityInstrumentationTestCase2 +import android.view.View +import com.robotium.solo.Solo +import course.labs.notificationslab.MainActivity +import course.labs.notificationslab.R +import course.labs.notificationslab.TestFrontEndActivity +import junit.framework.Assert + +class NewFeedTest : ActivityInstrumentationTestCase2<TestFrontEndActivity>(TestFrontEndActivity::class.java) { + private var solo: Solo? = null + @Throws(Exception::class) + override fun setUp() { + solo = Solo(instrumentation, activity) + } + + @Throws(Exception::class) + override fun tearDown() { + solo!!.finishOpenedActivities() + } + + fun testRun() { + val shortDelay = 5000 + val longDelay = 10000 + + // Wait for activity: + // 'course.labs.notificationslab.TestFrontEndActivity' + solo!!.waitForActivity( + TestFrontEndActivity::class.java, + shortDelay) + + // Click on Make Tweets New + solo!!.clickOnView(solo!! + .getView(R.id.rejuv_tweets_button)) + + // Click on Start Main Activity + solo!!.clickOnView(solo!! + .getView(R.id.start_main_button)) + + // Wait for activity: + // 'course.labs.threadslab.MainActivity' + solo!!.waitForActivity(MainActivity::class.java, + shortDelay) + val msg = activity.getString(R.string.download_in_progress_string) + assertFalse("'$msg ' is shown!", + solo!!.searchText(msg)) + solo!!.waitForView(android.R.id.list) + val listView = solo!!.getView(android.R.id.list) + solo!!.waitForCondition({ listView.isEnabled }, longDelay) + + // Click on ladygaga + solo!!.clickOnView(solo!!.getView(android.R.id.text1)) + + // Assert that: 'feed_view' is shown + assertTrue("feed_view not shown!", solo!!.waitForView<View?>(solo!! + .getView(R.id.feed_view))) + + // Assert that: 'Taylor Swift' is shown + Assert.assertTrue("'Lady Gaga' is not shown!", + solo!!.searchText("Lady Gaga")) + } +} \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/androidTest/java/course/labs/notificationslab/tests/OldFeedNoNotificationTest.kt b/Labs/Lab6_NotificationsLab/app/src/androidTest/java/course/labs/notificationslab/tests/OldFeedNoNotificationTest.kt new file mode 100644 index 0000000000000000000000000000000000000000..86d7aed057729b2d21910ffcc9237fa910b39952 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/androidTest/java/course/labs/notificationslab/tests/OldFeedNoNotificationTest.kt @@ -0,0 +1,62 @@ +package course.labs.notificationslab.tests + +import android.test.ActivityInstrumentationTestCase2 +import android.view.View +import com.robotium.solo.Solo +import course.labs.notificationslab.MainActivity +import course.labs.notificationslab.R +import course.labs.notificationslab.TestFrontEndActivity + +class OldFeedNoNotificationTest : ActivityInstrumentationTestCase2<TestFrontEndActivity>(TestFrontEndActivity::class.java) { + private var solo: Solo? = null + @Throws(Exception::class) + override fun setUp() { + solo = Solo(instrumentation, activity) + } + + @Throws(Exception::class) + override fun tearDown() { + solo!!.finishOpenedActivities() + } + + fun testRun() { + val shortDelay = 2000 + val longDelay = 10000 + + // Wait for activity: + // 'course.labs.notificationslab.TestFrontEndActivity' + solo!!.waitForActivity( + TestFrontEndActivity::class.java, shortDelay) + + // Click on Make Tweets Old + solo!!.clickOnView(solo!! + .getView(R.id.age_tweets_button)) + + // Click on Start Main Activty + solo!!.clickOnView(solo!! + .getView(R.id.start_main_button)) + + // Wait for activity: 'course.labs.notificationslab.MainActivity' + assertTrue("course.labs.notificationslab.MainActivity is not found!", + solo!!.waitForActivity( + MainActivity::class.java, shortDelay)) + + // Assert that: Toast message is shown + val msg = activity.getString(R.string.download_in_progress_string) + assertTrue("'$msg ' is not shown!", + solo!!.searchText(msg)) + solo!!.waitForView(android.R.id.list) + val listView = solo!!.getView(android.R.id.list) + solo!!.waitForCondition({ listView.isEnabled }, longDelay) + val failMsg = activity.getString(R.string.download_failed_string) + val successMsg = activity.getString(R.string.download_succes_string) + assertTrue("Toast message did not appear", solo!!.searchText("($failMsg|$successMsg)")) + + // Click on ladygaga + solo!!.clickOnView(solo!!.getView(android.R.id.text1)) + + // Assert that: 'feed_view' is shown + assertTrue("feed_view' is not shown!", solo!!.waitForView<View?>(solo!! + .getView(R.id.feed_view))) + } +} \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/androidTest/java/course/labs/notificationslab/tests/OldFeedWithNotificationTest.kt b/Labs/Lab6_NotificationsLab/app/src/androidTest/java/course/labs/notificationslab/tests/OldFeedWithNotificationTest.kt new file mode 100644 index 0000000000000000000000000000000000000000..d243570e56756a030e9fb0752f3e51c88129ff11 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/androidTest/java/course/labs/notificationslab/tests/OldFeedWithNotificationTest.kt @@ -0,0 +1,20 @@ +package course.labs.notificationslab.tests + +import android.test.ActivityInstrumentationTestCase2 +import com.robotium.solo.Solo +import course.labs.notificationslab.TestFrontEndActivity + +class OldFeedWithNotificationTest : ActivityInstrumentationTestCase2<TestFrontEndActivity>(TestFrontEndActivity::class.java) { + private var solo: Solo? = null + @Throws(Exception::class) + override fun setUp() { + solo = Solo(instrumentation) + activity + } + + @Throws(Exception::class) + override fun tearDown() { + solo!!.finishOpenedActivities() + } + +} \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/androidTest/res/.gitignore b/Labs/Lab6_NotificationsLab/app/src/androidTest/res/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Labs/Lab6_NotificationsLab/app/src/main/AndroidManifest.xml b/Labs/Lab6_NotificationsLab/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..07b2c460203d569b542b6eb1aedb39199065c390 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/AndroidManifest.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="course.labs.notificationslab" + android:versionCode="1" + android:versionName="1.0" > + + <application + android:allowBackup="true" + android:icon="@mipmap/ic_launcher" + android:label="@string/app_name" + android:theme="@style/AppTheme"> + <activity + android:name="course.labs.notificationslab.MainActivity" + android:exported="true"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + + <activity + android:name="course.labs.notificationslab.TestFrontEndActivity" + android:label="@string/title_activity_test_front_end" + android:exported="true"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/CoroutineAsyncTask.kt b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/CoroutineAsyncTask.kt new file mode 100644 index 0000000000000000000000000000000000000000..557fb4202f33029c5ce4efa2d3900ff34ad5eb4f --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/CoroutineAsyncTask.kt @@ -0,0 +1,33 @@ +package course.labs.notificationslab + +// Credits to DEX7RA from https://stackoverflow.com/questions/68136577/how-to-replace-asynctask-in-this-android-code + +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext + +abstract class CoroutineAsyncTask<Params,Progress,Result> { + + + open fun onPreExecute(){ } + + abstract fun doInBackground(vararg params: Params?): Result + + open fun onPostExecute(result: Result?){} + + + protected var isCancelled= false + //Code + + + fun execute(vararg params: Params?){ + GlobalScope.launch(Dispatchers.Default) { + val result = doInBackground(*params) + withContext(Dispatchers.Main){ + onPostExecute(result) + } + } + } + +} \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/DownloadFinishedListener.kt b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/DownloadFinishedListener.kt new file mode 100644 index 0000000000000000000000000000000000000000..79cd849475a9fb6cda349f2483ee8f81455c8298 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/DownloadFinishedListener.kt @@ -0,0 +1,5 @@ +package course.labs.notificationslab + +internal interface DownloadFinishedListener { + fun notifyDataRefreshed(feeds: Array<String?>?) +} \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/DownloaderTaskFragment.kt b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/DownloaderTaskFragment.kt new file mode 100644 index 0000000000000000000000000000000000000000..6322ea598185ad81a62992881072c0973f7b0d3a --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/DownloaderTaskFragment.kt @@ -0,0 +1,205 @@ +package course.labs.notificationslab + +import android.app.* +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import androidx.fragment.app.Fragment +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.RemoteViews +import android.widget.Toast +import java.io.* + +class DownloaderTaskFragment : Fragment() { + private var mDownloaderTask: DownloaderTask? = null + private var mCallback: DownloadFinishedListener? = null + private lateinit var mContext: Context + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle?): View? { + super.onCreate(savedInstanceState) + + // TODO: Create new DownloaderTask that "downloads" data + + // TODO: Retrieve arguments from DownloaderTaskFragment + // Prepare them for use with DownloaderTask. + + mDownloaderTask!!.execute(*feeds) + + return inflater.inflate(R.layout.feed, container, false) + } + + // Assign current hosting Activity to mCallback + // Store application context for use by downloadTweets() + override fun onAttach(context: Context) { + super.onAttach(context) + mContext = context + + // Make sure that the hosting activity has implemented + // the correct callback interface. + + try { + + mCallback = context as DownloadFinishedListener + + } catch (e: ClassCastException) { + throw ClassCastException("$context must implement DownloadFinishedListener") + } + } + + // Null out mCallback + override fun onDetach() { + super.onDetach() + mCallback = null + } + + + // you will not have to implement doInBackground and onPostExecute + inner class DownloaderTask : CoroutineAsyncTask<Int?, Void?, Array<String?>>() { + override fun doInBackground(vararg params: Int?): Array<String?> { + return downloadTweets(params as Array<Int>) + } + + // Simulates downloading Twitter data from the network + private fun downloadTweets(resourceIDS: Array<Int>): Array<String?> { + val simulatedDelay = 2000 + val feeds = arrayOfNulls<String>(resourceIDS.size) + var downLoadCompleted = false + try { + for (idx in resourceIDS.indices) { + var `in`: BufferedReader + try { + // Pretend downloading takes a long time + Thread.sleep(simulatedDelay.toLong()) + } catch (e: InterruptedException) { + e.printStackTrace() + } + val inputStream: InputStream = mContext.resources.openRawResource( + resourceIDS[idx]) + `in` = BufferedReader(InputStreamReader(inputStream)) + var readLine: String? + val buf = StringBuffer() + while (`in`.readLine().also { readLine = it } != null) { + buf.append(readLine) + } + feeds[idx] = buf.toString() + `in`.close() + } + downLoadCompleted = true + saveTweetsToFile(feeds) + } catch (e: IOException) { + e.printStackTrace() + } + + // Notify user that downloading has finished + notify(downLoadCompleted) + return feeds + } + + // If necessary, notifies the user that the tweet downloads are + // complete. Sends an ordered broadcast back to the BroadcastReceiver in + // MainActivity to determine whether the notification is necessary. + private fun notify(success: Boolean) { + val restartMainActivityIntent = Intent(mContext, + MainActivity::class.java) + restartMainActivityIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK + + // Sends an ordered broadcast to determine whether MainActivity is + // active and in the foreground. Creates a new BroadcastReceiver + // to receive a result indicating the state of MainActivity + + // TODO: The Action for this broadcast Intent is MainActivity.DATA_REFRESHED_ACTION + // The result, MainActivity.IS_ALIVE, indicates that MainActivity is + // active and in the foreground. + mContext.sendOrderedBroadcast(Intent( + MainActivity.DATA_REFRESHED_ACTION), null, + object : BroadcastReceiver() { + val failMsg = mContext + .getString(R.string.download_failed_string) + val successMsg = mContext + .getString(R.string.download_succes_string) + val notificationSentMsg = mContext + .getString(R.string.notification_sent_string) + + override fun onReceive(context: Context, intent: Intent) { + + // TODO: Check whether or not the MainActivity + // received the broadcast + if (true) { + + // TODO: If not, create a PendingIntent using the + // restartMainActivityIntent and set its flags + // to FLAG_UPDATE_CURRENT + + // Uses R.layout.custom_notification for the + // layout of the notification View. The xml + // file is in res/layout/custom_notification.xml + val mContentView = RemoteViews( + mContext.packageName, + R.layout.custom_notification) + + // TODO: Set the notification View's text to + // reflect whether the download completed + // successfully + + // TODO: Use the Notification.Builder class to + // create the Notification. You will have to set + // several pieces of information. You can use + // android.R.drawable.stat_sys_warning + // for the small icon. You should also + // setAutoCancel(true). + + // TODO: Send the notification + } else { + Toast.makeText(mContext, + if (success) successMsg else failMsg, + Toast.LENGTH_LONG).show() + } + } + }, null, 0, null, null) + } + + private val channelID = "my_channel_01" + private fun createNotificationChannel() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + // TODO: Create Notification Channel with id channelID, + // name R.string.channel_name + // and description R.string.channel_description of high importance + } + } + + // Saves the tweets to a file + private fun saveTweetsToFile(result: Array<String?>) { + var writer: PrintWriter? = null + try { + val fos = mContext.openFileOutput( + MainActivity.TWEET_FILENAME, Context.MODE_PRIVATE) + writer = PrintWriter(BufferedWriter( + OutputStreamWriter(fos))) + for (s in result) { + writer.println(s) + } + } catch (e: IOException) { + e.printStackTrace() + } finally { + writer?.close() + } + } + + // Pass newly available data back to hosting Activity + // using the DownloadFinishedListener interface + override fun onPostExecute(result: Array<String?>?) { + super.onPostExecute(result) + if (null != mCallback) { + mCallback!!.notifyDataRefreshed(result) + } + } + } + + companion object { + private const val MY_NOTIFICATION_ID = 11151990 + } +} \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/FeedFragment.kt b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/FeedFragment.kt new file mode 100644 index 0000000000000000000000000000000000000000..0a611a0004d7870a381bf6cf5aeb8e6ef22b6b94 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/FeedFragment.kt @@ -0,0 +1,45 @@ +package course.labs.notificationslab + +import android.os.Bundle +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.fragment.app.Fragment + +class FeedFragment : Fragment() { + + private var mTextView: TextView? = null + private var feedFragmentData: FeedFragmentData? = null + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle?): View? { + return inflater.inflate(R.layout.feed, container, false) + + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + // Read in all Twitter feeds + if (null == feedFragmentData) { + feedFragmentData = FeedFragmentData(requireActivity()) + } + } + + // Display Twitter feed for selected feed + fun updateFeedDisplay(position: Int) { + + Log.i(TAG, "Entered updateFeedDisplay()") + + mTextView = requireView().findViewById<View>(R.id.feed_view) as TextView + mTextView?.text = feedFragmentData!!.getFeed(position) + + } + + companion object { + private const val TAG = "Lab-Notifications" + } + +} \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/FeedFragmentData.kt b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/FeedFragmentData.kt new file mode 100644 index 0000000000000000000000000000000000000000..349e95ef33dcd000f4ea0aee02b3f7fdae5b824d --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/FeedFragmentData.kt @@ -0,0 +1,108 @@ +package course.labs.notificationslab + +import android.content.Context +import android.util.Log +import android.util.SparseArray +import org.json.JSONArray +import org.json.JSONException +import org.json.JSONObject +import java.io.BufferedReader +import java.io.IOException +import java.io.InputStreamReader + +// Utility class that provides stored Twitter feed data + +class FeedFragmentData(private val mContext: Context) { + + private val mFeeds = SparseArray<String>() + + + init { + loadFeeds() + } + + // Load all stored Twitter feeds into the mFeeds SparseArray. + + private fun loadFeeds() { + + for (id in IDS) { + + val inputStream = mContext.resources.openRawResource( + id) + val reader = BufferedReader(InputStreamReader( + inputStream)) + + val buffer = StringBuffer("") + + + // Read raw data from resource file + + try { + + var line = reader.readLine() + while (line != null) { + buffer.append(line) + line = reader.readLine() + } + + } catch (e: IOException) { + Log.i(TAG, "IOException") + } + + // Convert raw data into a String + + var feed: JSONArray? = null + try { + feed = JSONArray(buffer.toString()) + } catch (e: JSONException) { + Log.i(TAG, "JSONException") + } + + mFeeds.put(id, procFeed(feed!!)) + + } + } + + + // Convert JSON formatted data to a String + + private fun procFeed(feed: JSONArray): String { + + var name = "" + var tweet = "" + + // string buffer for twitter feeds + val textFeed = StringBuffer("") + + for (j in 0 until feed.length()) { + try { + + tweet = feed.getJSONObject(j).getString("text") + val user = feed.getJSONObject(j) + .get("user") as JSONObject + name = user.getString("name") + + } catch (e: JSONException) { + + 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 + + internal fun getFeed(position: Int): String { + + return mFeeds.get(IDS[position]) + + } + + companion object { + private const val TAG = "FeedFragmentData" + private val IDS = intArrayOf(R.raw.ladygaga, R.raw.rebeccablack, R.raw.taylorswift) + } +} diff --git a/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/FriendsFragment.kt b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/FriendsFragment.kt new file mode 100644 index 0000000000000000000000000000000000000000..0b3666c2f523e99e4eaf35a3e33289eaca931483 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/FriendsFragment.kt @@ -0,0 +1,60 @@ +package course.labs.notificationslab + +import android.content.Context +import android.os.Bundle +import android.util.Log +import android.view.View +import android.widget.ArrayAdapter +import android.widget.ListView +import androidx.fragment.app.ListFragment + +class FriendsFragment : ListFragment() { + + private lateinit var mCallback: SelectionListener + + interface SelectionListener { + fun onItemSelected(position: Int) + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + // Set the list adapter for this ListFragment + listAdapter = + ArrayAdapter(requireActivity(), android.R.layout.simple_list_item_activated_1, FRIENDS) + } + + + override fun onAttach(context: Context) { + super.onAttach(context) + + // Make sure that the hosting Activity has implemented + // the SelectionListener callback interface. We need this + // because when an item in this ListFragment is selected, + // the hosting Activity's onItemSelected() method will be called. + + try { + mCallback = context as SelectionListener + } catch (e: ClassCastException) { + throw ClassCastException("$context must implement SelectionListener") + } + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + Log.i(TAG, "Entered onActivityCreated()") + } + + override fun onListItemClick(l: ListView, view: View, position: Int, id: Long) { + + // Notify the hosting Activity that a selection has been made. + mCallback.onItemSelected(position) + } + + companion object { + + private val FRIENDS = arrayOf("ladygaga", "msrebeccablack", "taylorswift13") + private const val TAG = "Lab-Notifications" + } + +} \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/MainActivity.kt b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/MainActivity.kt new file mode 100644 index 0000000000000000000000000000000000000000..d75a758e467125332556da6dba5350b6912c3e27 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/MainActivity.kt @@ -0,0 +1,260 @@ +package course.labs.notificationslab + +import android.content.BroadcastReceiver +import android.content.Intent +import android.content.Context +import android.content.IntentFilter +import android.os.Bundle +import android.util.Log +import android.widget.Toast +import androidx.fragment.app.FragmentActivity +import org.json.JSONArray +import org.json.JSONException +import org.json.JSONObject +import java.io.BufferedReader +import java.io.FileNotFoundException +import java.io.IOException +import java.io.InputStreamReader + +class MainActivity : FragmentActivity(), FriendsFragment.SelectionListener, + DownloadFinishedListener { + + private lateinit var mFriendsFragment: FriendsFragment + private lateinit var mFeedFragment: FeedFragment + private lateinit var mDownloaderFragment: DownloaderTaskFragment + + private var mIsInteractionEnabled = false + private var mFormattedFeeds: Array<String?>? = arrayOfNulls<String?>(sRawTextFeedIds.size) + private var mIsFresh = false + private var mRefreshReceiver: BroadcastReceiver? = null + + override fun onCreate(savedInstanceState: Bundle?) { + Log.d(TAG, "Starting MainActivity") + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_main) + + mFeedFragment = FeedFragment() + + // Reset instance state on reconfiguration + if (null != savedInstanceState) { + restoreState(savedInstanceState) + } else { + setupFragments() + } + } + + // One time setup of UI and retained (headless) Fragment + private fun setupFragments() { + installFriendsFragment() + + // The feed is fresh if it was downloaded less than 2 minutes ago + mIsFresh = System.currentTimeMillis() - getFileStreamPath( + TWEET_FILENAME).lastModified() < TWO_MIN + if (!mIsFresh) { + installDownloaderTaskFragment() + + // TODO: Show a Toast message displaying + // R.string.download_in_progress string + + // Set up a BroadcastReceiver to receive an Intent when download + // finishes. + mRefreshReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + // TODO: Check to make sure this is an ordered broadcast + // Let sender know that the Intent was received + // by setting result code to MainActivity.IS_ALIVE + } + } + } else { + // Process Twitter data taken from stored file + parseJSON(loadTweetsFromFile()) + + // Enable user interaction + mIsInteractionEnabled = true + } + } + + // Add Friends Fragment to Activity + private fun installFriendsFragment() { + + // Make new Fragment + mFriendsFragment = FriendsFragment() + + // Give Fragment to the FragmentManager + val transaction = supportFragmentManager.beginTransaction() + transaction.replace(R.id.fragment_container, mFriendsFragment, + TAG_FRIENDS_FRAGMENT) + transaction.commit() + } + + // Add DownloaderTaskFragment to Activity + private fun installDownloaderTaskFragment() { + + // Make new Fragment + mDownloaderFragment = DownloaderTaskFragment() + + // Set DownloaderTaskFragment arguments + val args = Bundle() + args.putIntegerArrayList(TAG_FRIEND_RES_IDS, sRawTextFeedIds) + mDownloaderFragment.arguments = args + + // Give Fragment to the FragmentManager + supportFragmentManager.beginTransaction() + .add(mDownloaderFragment, TAG_DOWNLOADER_FRAGMENT).commit() + } + + // Register the BroadcastReceiver + override fun onResume() { + super.onResume() + + // TODO: Register the BroadcastReceiver to receive a + // DATA_REFRESHED_ACTION broadcast + } + + override fun onPause() { + + // TODO: Unregister the BroadcastReceiver if it has been registered + // Note: check that mRefreshReceiver is not null before attempting to + // unregister in order to work around an Instrumentation issue + + super.onPause() + } + + /* + * DownloadFinishedListener method + */ + // Called back by DownloaderTask after data has been loaded + override fun notifyDataRefreshed(feeds: Array<String?>?) { + + // Process downloaded data + parseJSON(feeds) + + // Enable user interaction + mIsInteractionEnabled = true + } + + // Installs the FeedFragment when a Friend name is + // selected in the FriendsFragment + override fun onItemSelected(position: Int) { + + if (mIsInteractionEnabled) { + supportFragmentManager.beginTransaction() + .replace(R.id.fragment_container, mFeedFragment) + .addToBackStack(null) + .commit() + + supportFragmentManager.executePendingTransactions() + + mFeedFragment.updateFeedDisplay(position) + } + } + + // Restore saved instance state + private fun restoreState(savedInstanceState: Bundle?) { + + // Fragments tags were saved in onSavedInstanceState + mFriendsFragment = supportFragmentManager + .findFragmentByTag( + savedInstanceState!! + .getString(TAG_FRIENDS_FRAGMENT) + ) as FriendsFragment + mFeedFragment = supportFragmentManager + .findFragmentByTag( + savedInstanceState + .getString(TAG_FEED_FRAGMENT) + ) as FeedFragment + mDownloaderFragment = supportFragmentManager + .findFragmentByTag( + savedInstanceState + .getString(TAG_DOWNLOADER_FRAGMENT) + ) as DownloaderTaskFragment + mIsInteractionEnabled = savedInstanceState + .getBoolean(TAG_IS_DATA_AVAILABLE) + if (mIsInteractionEnabled) { + mFormattedFeeds = savedInstanceState + .getStringArray(TAG_PROCESSED_FEEDS) + } + } + + // Convert raw data (in JSON format) into text for display + private fun parseJSON(feeds: Array<String?>?) { + val jsonFeeds = arrayOfNulls<JSONArray?>(feeds!!.size) + for (i in jsonFeeds.indices) { + try { + jsonFeeds[i] = JSONArray(feeds[i]) + } catch (e: JSONException) { + e.printStackTrace() + } + var name = "" + var tweet = "" + val tmp = jsonFeeds[i] + + // string buffer for feeds + val tweetRec = StringBuffer("") + for (j in 0 until tmp!!.length()) { + try { + tweet = tmp.getJSONObject(j).getString(TAG_TEXT) + val user = tmp.getJSONObject(j)[TAG_USER] as JSONObject + name = user.getString(TAG_NAME) + } catch (e: JSONException) { + e.printStackTrace() + } + tweetRec.append("$name - $tweet\n\n") + } +// mFormattedFeeds.get(i) = tweetRec.toString() + } + } + + // Retrieve feeds text from a file + // Store them in mRawTextFeed[] + private fun loadTweetsFromFile(): Array<String?> { + var reader: BufferedReader? = null + val rawFeeds = ArrayList<String?>() + try { + val fis = openFileInput(TWEET_FILENAME) + reader = BufferedReader(InputStreamReader(fis)) + var s: String? + var i = 0 + while (null != reader.readLine().also { s = it }) { + rawFeeds.add(i, s) + i++ + } + } catch (e: FileNotFoundException) { + e.printStackTrace() + } catch (e: IOException) { + e.printStackTrace() + } finally { + if (null != reader) { + try { + reader.close() + } catch (e: IOException) { + e.printStackTrace() + } + } + } + return rawFeeds.toTypedArray() + } + + companion object { + private const val TAG_NAME: String = "name" + private const val TAG_USER: String = "user" + private const val TAG_TEXT: String = "text" + private const val TAG_FRIENDS_FRAGMENT: String = "friends_fragment" + private const val TAG_FEED_FRAGMENT: String = "feed_fragment" + private const val TAG_DOWNLOADER_FRAGMENT: String = "downloader_fragment" + private const val TAG_IS_DATA_AVAILABLE: String = "is_data_available" + private const val TAG_PROCESSED_FEEDS: String = "processed_feeds" + + const val TAG_FRIEND_RES_IDS: String = "friends" + const val TWEET_FILENAME: String = "tweets.txt" + const val IS_ALIVE = RESULT_FIRST_USER + const val DATA_REFRESHED_ACTION: String = "course.labs.notificationslabnew.DATA_REFRESHED" + + private const val TAG: String = "Lab-Notifications" + + // Raw feed file IDs used to reference stored tweet data + val sRawTextFeedIds: ArrayList<Int> = + arrayListOf(R.raw.ladygaga, R.raw.rebeccablack, R.raw.taylorswift) + private const val TWO_MIN = 2 * 60 * 1000.toLong() + } +} \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/TestFrontEndActivity.kt b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/TestFrontEndActivity.kt new file mode 100644 index 0000000000000000000000000000000000000000..ccc37a56cd4b421e6b87ea4d6a4eed1c81b30a5c --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/java/course/labs/notificationslab/TestFrontEndActivity.kt @@ -0,0 +1,79 @@ +package course.labs.notificationslab + +import android.app.Activity +import android.content.Intent +import android.content.res.Resources.NotFoundException +import android.os.Bundle +import android.util.Log +import android.view.View +import android.widget.Button +import java.io.* + +class TestFrontEndActivity : Activity() { + override fun onCreate(savedInstanceState: Bundle?) { + Log.d(TAG, "Starting FrontEndActivity...") + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_test_front_end) + sFileName = filesDir.toString() + "/" + MainActivity.TWEET_FILENAME + val ageTweetsButton = findViewById<View?>(R.id.age_tweets_button) as Button + ageTweetsButton.setOnClickListener { setFileAge(DAWN_OF_TIME) } + val rejuvTweetsButton = findViewById<View?>(R.id.rejuv_tweets_button) as Button + rejuvTweetsButton.setOnClickListener { setFileAge(System.currentTimeMillis()) } + val startMainActivityButton = findViewById<View?>(R.id.start_main_button) as Button + startMainActivityButton.setOnClickListener { + startActivity(Intent(this@TestFrontEndActivity, + MainActivity::class.java)) + } + createTweetFileIfMissing() + } + + private fun createTweetFileIfMissing() { + val file = File(sFileName) + if (!file.exists()) { + var out: PrintWriter? = null + var `in`: BufferedReader? = null + try { + out = PrintWriter(BufferedWriter( + OutputStreamWriter(openFileOutput( + MainActivity.TWEET_FILENAME, + MODE_PRIVATE)))) + for (resId in MainActivity.sRawTextFeedIds) { + `in` = BufferedReader(InputStreamReader( + resources.openRawResource(resId))) + var line: String? + val buffer = StringBuffer() + while (`in`.readLine().also { line = it } != null) { + buffer.append(line) + } + out.println(buffer) + } + } catch (e: FileNotFoundException) { + e.printStackTrace() + } catch (e: NotFoundException) { + e.printStackTrace() + } catch (e: IOException) { + e.printStackTrace() + } finally { + try { + `in`?.close() + out?.close() + } catch (e: IOException) { + e.printStackTrace() + } + } + } + } + + private fun setFileAge(timestamp: Long) { + val file = File(sFileName) + if (file.exists()) { + file.setLastModified(timestamp) + } + } + + companion object { + private const val DAWN_OF_TIME: Long = 0 + private const val TAG: String = "TestFrontEndActivity" + private var sFileName: String? = null + } +} \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/layout/activity_main.xml b/Labs/Lab6_NotificationsLab/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000000000000000000000000000000000000..d37e8e9fff653da1159256bfe838e3c32e50dee3 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/fragment_container" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:ignore="MergeRootFrame" /> \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/layout/activity_test_front_end.xml b/Labs/Lab6_NotificationsLab/app/src/main/res/layout/activity_test_front_end.xml new file mode 100644 index 0000000000000000000000000000000000000000..e691b0213763ba0f0fc45eeb0fb5c32a77618136 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/res/layout/activity_test_front_end.xml @@ -0,0 +1,36 @@ +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:paddingBottom="@dimen/activity_vertical_margin" + android:paddingLeft="@dimen/activity_horizontal_margin" + android:paddingRight="@dimen/activity_horizontal_margin" + android:paddingTop="@dimen/activity_vertical_margin" + tools:context=".TestFrontEndActivity" > + + <Button + android:id="@+id/rejuv_tweets_button" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_margin="@dimen/base_margin" + android:text="@string/make_tweets_new" /> + + <Button + android:id="@+id/age_tweets_button" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_margin="@dimen/base_margin" + android:text="@string/make_tweets_old" /> + + <Button + android:id="@+id/start_main_button" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_margin="@dimen/base_margin" + android:text="@string/start_main_activity" /> + +</LinearLayout> \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/layout/custom_notification.xml b/Labs/Lab6_NotificationsLab/app/src/main/res/layout/custom_notification.xml new file mode 100644 index 0000000000000000000000000000000000000000..5c616c2ee0ccda64ecc714a740bc7c60bed7f444 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/res/layout/custom_notification.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:padding="3dp" + android:background="#7777" + tools:ignore="Overdraw"> + + <ImageView + android:layout_width="16dp" + android:layout_height="16dp" + android:layout_marginEnd="10dp" + android:contentDescription="@string/alert_string" + android:src="@android:drawable/ic_dialog_info" /> + + <TextView + android:id="@+id/text" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textColor="@android:color/primary_text_dark" + android:textSize="12sp" /> + +</LinearLayout> \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/layout/feed.xml b/Labs/Lab6_NotificationsLab/app/src/main/res/layout/feed.xml new file mode 100644 index 0000000000000000000000000000000000000000..f8163f98a8e7489fb993f2d616ac990a6819d158 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/res/layout/feed.xml @@ -0,0 +1,13 @@ +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context=".FeedFragment" > + + <TextView + android:id="@+id/feed_view" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="8dp"/> + +</ScrollView> \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/mipmap-hdpi/ic_launcher.png b/Labs/Lab6_NotificationsLab/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0e79b184fcf8cc47dede6d7ccde00d1a1e2d9c23 Binary files /dev/null and b/Labs/Lab6_NotificationsLab/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/mipmap-ldpi/ic_launcher.png b/Labs/Lab6_NotificationsLab/app/src/main/res/mipmap-ldpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ebfac7d78b9e17c113f734d10af74bd2b100beba Binary files /dev/null and b/Labs/Lab6_NotificationsLab/app/src/main/res/mipmap-ldpi/ic_launcher.png differ diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/mipmap-mdpi/ic_launcher.png b/Labs/Lab6_NotificationsLab/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1183441937efcae0151b75099bec444d034886e9 Binary files /dev/null and b/Labs/Lab6_NotificationsLab/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/Labs/Lab6_NotificationsLab/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..c8ab2a114716b712ec0c5122f9e9524afaa60b52 Binary files /dev/null and b/Labs/Lab6_NotificationsLab/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/raw/ladygaga.txt b/Labs/Lab6_NotificationsLab/app/src/main/res/raw/ladygaga.txt new file mode 100644 index 0000000000000000000000000000000000000000..d3ee9f90638238efeff71c8f2355f6ebb3d23eec --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/res/raw/ladygaga.txt @@ -0,0 +1,13 @@ +[{"created_at":"Mon Aug 26 16:26:59 +0000 2013","id":372032436278132736,"id_str":"372032436278132736","text":"Go to http:\/\/t.co\/W2NqZiTtOo to see @Terry_World Terry Richardson's photos of me getting ready for the show!","source":"\u003ca href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter for iPad\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":14230524,"id_str":"14230524","name":"Lady Gaga","screen_name":"ladygaga","location":"","description":"BUY MY NEW SINGLE 'APPLAUSE' AND PRE-ORDER MY ALBUM 'ARTPOP' HERE NOW! http:\/\/t.co\/6y7xRxEuw3","url":"http:\/\/t.co\/6y7xRxEuw3","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[71,93]}]}},"protected":false,"followers_count":39883682,"friends_count":135174,"listed_count":243025,"created_at":"Wed Mar 26 22:37:48 +0000 2008","favourites_count":4,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":3039,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FAF0FA","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_link_color":"2FC2EF","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDFFCC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":3306,"favorite_count":2703,"entities":{"hashtags":[],"symbols":[],"urls":[{"url":"http:\/\/t.co\/W2NqZiTtOo","expanded_url":"http:\/\/www.terrysdiary.com","display_url":"terrysdiary.com","indices":[6,28]}],"user_mentions":[{"screen_name":"Terry_World","name":"Terry Richardson","id":53184837,"id_str":"53184837","indices":[36,48]}]},"favorited":false,"retweeted":false,"possibly_sensitive":true,"lang":"en"}, +{"created_at":"Mon Aug 26 16:05:26 +0000 2013","id":372027012497825792,"id_str":"372027012497825792","text":"I love u! RT @BoyGeorge: Comeback? Babe I had no idea u went anywhere The 1st part was very Liza I loved it! Such rich tones More of that! x","source":"\u003ca href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter for iPad\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":14230524,"id_str":"14230524","name":"Lady Gaga","screen_name":"ladygaga","location":"","description":"BUY MY NEW SINGLE 'APPLAUSE' AND PRE-ORDER MY ALBUM 'ARTPOP' HERE NOW! http:\/\/t.co\/6y7xRxEuw3","url":"http:\/\/t.co\/6y7xRxEuw3","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[71,93]}]}},"protected":false,"followers_count":39883682,"friends_count":135174,"listed_count":243025,"created_at":"Wed Mar 26 22:37:48 +0000 2008","favourites_count":4,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":3039,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FAF0FA","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_link_color":"2FC2EF","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDFFCC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":2698,"favorite_count":2649,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"BoyGeorge","name":"Boy George","id":149103331,"id_str":"149103331","indices":[13,23]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 15:38:00 +0000 2013","id":372020111299051520,"id_str":"372020111299051520","text":"@TrollMarkus I felt so alive! All I remember is the audience cheering! I could barely hear! Hands in the air, smiles & flashes everywhere!","source":"\u003ca href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter for iPad\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":372019416890105857,"in_reply_to_status_id_str":"372019416890105857","in_reply_to_user_id":1403042244,"in_reply_to_user_id_str":"1403042244","in_reply_to_screen_name":"TrollMarkus","user":{"id":14230524,"id_str":"14230524","name":"Lady Gaga","screen_name":"ladygaga","location":"","description":"BUY MY NEW SINGLE 'APPLAUSE' AND PRE-ORDER MY ALBUM 'ARTPOP' HERE NOW! http:\/\/t.co\/6y7xRxEuw3","url":"http:\/\/t.co\/6y7xRxEuw3","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[71,93]}]}},"protected":false,"followers_count":39883682,"friends_count":135174,"listed_count":243025,"created_at":"Wed Mar 26 22:37:48 +0000 2008","favourites_count":4,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":3039,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FAF0FA","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_link_color":"2FC2EF","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDFFCC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":1878,"favorite_count":1753,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"TrollMarkus","name":"Markus | Lady Gaga","id":1403042244,"id_str":"1403042244","indices":[0,12]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 15:32:32 +0000 2013","id":372018733973528576,"id_str":"372018733973528576","text":"@gabicorradin30 breathing","source":"\u003ca href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter for iPad\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":372018554880933888,"in_reply_to_status_id_str":"372018554880933888","in_reply_to_user_id":163632802,"in_reply_to_user_id_str":"163632802","in_reply_to_screen_name":"gabicorradin30","user":{"id":14230524,"id_str":"14230524","name":"Lady Gaga","screen_name":"ladygaga","location":"","description":"BUY MY NEW SINGLE 'APPLAUSE' AND PRE-ORDER MY ALBUM 'ARTPOP' HERE NOW! http:\/\/t.co\/6y7xRxEuw3","url":"http:\/\/t.co\/6y7xRxEuw3","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[71,93]}]}},"protected":false,"followers_count":39883682,"friends_count":135174,"listed_count":243025,"created_at":"Wed Mar 26 22:37:48 +0000 2008","favourites_count":4,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":3039,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FAF0FA","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_link_color":"2FC2EF","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDFFCC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":1872,"favorite_count":2027,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"gabicorradin30","name":"gabi \u0950","id":163632802,"id_str":"163632802","indices":[0,15]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 15:29:03 +0000 2013","id":372017855531077632,"id_str":"372017855531077632","text":"That is correct. RT @dope_cinema: only @LadyGaga would purposely put booing in her performance hahah","source":"\u003ca href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter for iPad\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":14230524,"id_str":"14230524","name":"Lady Gaga","screen_name":"ladygaga","location":"","description":"BUY MY NEW SINGLE 'APPLAUSE' AND PRE-ORDER MY ALBUM 'ARTPOP' HERE NOW! http:\/\/t.co\/6y7xRxEuw3","url":"http:\/\/t.co\/6y7xRxEuw3","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[71,93]}]}},"protected":false,"followers_count":39883682,"friends_count":135174,"listed_count":243025,"created_at":"Wed Mar 26 22:37:48 +0000 2008","favourites_count":4,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":3039,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FAF0FA","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_link_color":"2FC2EF","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDFFCC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":4099,"favorite_count":3211,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"dope_cinema","name":"H3R TR1LLNESS","id":56843246,"id_str":"56843246","indices":[20,32]},{"screen_name":"ladygaga","name":"Lady Gaga","id":14230524,"id_str":"14230524","indices":[39,48]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 15:23:25 +0000 2013","id":372016437843742720,"id_str":"372016437843742720","text":"@RobbyRizl it was a canvas, and I AM the canvas during this performance","source":"\u003ca href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter for iPad\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":372016216056930305,"in_reply_to_status_id_str":"372016216056930305","in_reply_to_user_id":206514213,"in_reply_to_user_id_str":"206514213","in_reply_to_screen_name":"RobbyRizl","user":{"id":14230524,"id_str":"14230524","name":"Lady Gaga","screen_name":"ladygaga","location":"","description":"BUY MY NEW SINGLE 'APPLAUSE' AND PRE-ORDER MY ALBUM 'ARTPOP' HERE NOW! http:\/\/t.co\/6y7xRxEuw3","url":"http:\/\/t.co\/6y7xRxEuw3","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[71,93]}]}},"protected":false,"followers_count":39883682,"friends_count":135174,"listed_count":243025,"created_at":"Wed Mar 26 22:37:48 +0000 2008","favourites_count":4,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":3039,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FAF0FA","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_link_color":"2FC2EF","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDFFCC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":1297,"favorite_count":1219,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"RobbyRizl","name":"Robby","id":206514213,"id_str":"206514213","indices":[0,10]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 15:21:16 +0000 2013","id":372015900150726656,"id_str":"372015900150726656","text":"RT @leonardo_bv: @ladygaga The choreography was perfect, mimetizing each era, and the booing during Born This Way era was such a great stat\u2026","source":"\u003ca href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter for iPad\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":14230524,"id_str":"14230524","name":"Lady Gaga","screen_name":"ladygaga","location":"","description":"BUY MY NEW SINGLE 'APPLAUSE' AND PRE-ORDER MY ALBUM 'ARTPOP' HERE NOW! http:\/\/t.co\/6y7xRxEuw3","url":"http:\/\/t.co\/6y7xRxEuw3","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[71,93]}]}},"protected":false,"followers_count":39883682,"friends_count":135174,"listed_count":243025,"created_at":"Wed Mar 26 22:37:48 +0000 2008","favourites_count":4,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":3039,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FAF0FA","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_link_color":"2FC2EF","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDFFCC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Mon Aug 26 15:20:19 +0000 2013","id":372015658956906496,"id_str":"372015658956906496","text":"@ladygaga The choreography was perfect, mimetizing each era, and the booing during Born This Way era was such a great statement!","source":"web","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":14230524,"in_reply_to_user_id_str":"14230524","in_reply_to_screen_name":"ladygaga","user":{"id":85364390,"id_str":"85364390","name":"Leonardo Barros","screen_name":"leonardo_bv","location":"","description":"https:\/\/t.co\/RjpZJuBO8q","url":"http:\/\/t.co\/tWgqMxpxYD","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/tWgqMxpxYD","expanded_url":"http:\/\/bedaxxler.tumblr.com\/","display_url":"bedaxxler.tumblr.com","indices":[0,22]}]},"description":{"urls":[{"url":"https:\/\/t.co\/RjpZJuBO8q","expanded_url":"https:\/\/littlemonsters.com\/leonardobarros","display_url":"littlemonsters.com\/leonardobarros","indices":[0,23]}]}},"protected":false,"followers_count":125,"friends_count":73,"listed_count":1,"created_at":"Mon Oct 26 17:18:13 +0000 2009","favourites_count":4,"utc_offset":-10800,"time_zone":"Brasilia","geo_enabled":false,"verified":false,"statuses_count":3866,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/727292926\/2796c3db0b5ecf8cb4f7450aa1828232.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/727292926\/2796c3db0b5ecf8cb4f7450aa1828232.png","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/3349505031\/02a2c3de8912d5c24a66d62c5814291a_normal.png","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/3349505031\/02a2c3de8912d5c24a66d62c5814291a_normal.png","profile_link_color":"05BCFF","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"FFFFFF","profile_text_color":"000000","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":1470,"favorite_count":1364,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"ladygaga","name":"Lady Gaga","id":14230524,"id_str":"14230524","indices":[0,9]}]},"favorited":false,"retweeted":false,"lang":"en"},"retweet_count":1470,"favorite_count":0,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"leonardo_bv","name":"Leonardo Barros","id":85364390,"id_str":"85364390","indices":[3,15]},{"screen_name":"ladygaga","name":"Lady Gaga","id":14230524,"id_str":"14230524","indices":[17,26]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 15:17:57 +0000 2013","id":372015065291304960,"id_str":"372015065291304960","text":"@LiamCalderone I wrote it special for this performance!","source":"\u003ca href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter for iPad\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":372014874899275776,"in_reply_to_status_id_str":"372014874899275776","in_reply_to_user_id":46734283,"in_reply_to_user_id_str":"46734283","in_reply_to_screen_name":"LiamCalderone","user":{"id":14230524,"id_str":"14230524","name":"Lady Gaga","screen_name":"ladygaga","location":"","description":"BUY MY NEW SINGLE 'APPLAUSE' AND PRE-ORDER MY ALBUM 'ARTPOP' HERE NOW! http:\/\/t.co\/6y7xRxEuw3","url":"http:\/\/t.co\/6y7xRxEuw3","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[71,93]}]}},"protected":false,"followers_count":39883682,"friends_count":135174,"listed_count":243025,"created_at":"Wed Mar 26 22:37:48 +0000 2008","favourites_count":4,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":3039,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FAF0FA","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_link_color":"2FC2EF","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDFFCC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":1299,"favorite_count":1284,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"LiamCalderone","name":"~","id":46734283,"id_str":"46734283","indices":[0,14]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 15:15:58 +0000 2013","id":372014565221208064,"id_str":"372014565221208064","text":"RT @Born2BeBrave: @ladygaga competition has no place in music, if people want competition they can watch football. Music is about art and e\u2026","source":"\u003ca href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter for iPad\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":14230524,"id_str":"14230524","name":"Lady Gaga","screen_name":"ladygaga","location":"","description":"BUY MY NEW SINGLE 'APPLAUSE' AND PRE-ORDER MY ALBUM 'ARTPOP' HERE NOW! http:\/\/t.co\/6y7xRxEuw3","url":"http:\/\/t.co\/6y7xRxEuw3","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[71,93]}]}},"protected":false,"followers_count":39883682,"friends_count":135174,"listed_count":243025,"created_at":"Wed Mar 26 22:37:48 +0000 2008","favourites_count":4,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":3039,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FAF0FA","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_link_color":"2FC2EF","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDFFCC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Mon Aug 26 15:15:10 +0000 2013","id":372014364888293376,"id_str":"372014364888293376","text":"@ladygaga competition has no place in music, if people want competition they can watch football. Music is about art and expression not wins","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":14230524,"in_reply_to_user_id_str":"14230524","in_reply_to_screen_name":"ladygaga","user":{"id":277342406,"id_str":"277342406","name":"jstn | #RadioARTPOP","screen_name":"Born2BeBrave","location":"Paris TN","description":"Production Associate for the one and only #RadioARTPOP\nAirs weekly Monday @ 8PM EST\n\nUndisputed Biggest Little Monster in West TN -","url":"http:\/\/t.co\/WnF3t4bD3M","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/WnF3t4bD3M","expanded_url":"http:\/\/www.facebook.com\/justincoltrevel","display_url":"facebook.com\/justincoltrevel","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":417,"friends_count":194,"listed_count":1,"created_at":"Tue Apr 05 05:11:30 +0000 2011","favourites_count":13,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":958,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"131516","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/775369481\/d75e56c1d0e15c62001800d1af4002f8.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/775369481\/d75e56c1d0e15c62001800d1af4002f8.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000117282954\/1b132671c8e34f2c131004c187790c2b_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000117282954\/1b132671c8e34f2c131004c187790c2b_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/277342406\/1375112866","profile_link_color":"009999","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":2184,"favorite_count":1897,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"ladygaga","name":"Lady Gaga","id":14230524,"id_str":"14230524","indices":[0,9]}]},"favorited":false,"retweeted":false,"lang":"en"},"retweet_count":2184,"favorite_count":0,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"Born2BeBrave","name":"jstn | #RadioARTPOP","id":277342406,"id_str":"277342406","indices":[3,16]},{"screen_name":"ladygaga","name":"Lady Gaga","id":14230524,"id_str":"14230524","indices":[18,27]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 15:15:02 +0000 2013","id":372014327408390144,"id_str":"372014327408390144","text":"@BadKid_Earthfan aisle 5","source":"\u003ca href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter for iPad\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":372014214769963010,"in_reply_to_status_id_str":"372014214769963010","in_reply_to_user_id":38388324,"in_reply_to_user_id_str":"38388324","in_reply_to_screen_name":"BadKid_Earthfan","user":{"id":14230524,"id_str":"14230524","name":"Lady Gaga","screen_name":"ladygaga","location":"","description":"BUY MY NEW SINGLE 'APPLAUSE' AND PRE-ORDER MY ALBUM 'ARTPOP' HERE NOW! http:\/\/t.co\/6y7xRxEuw3","url":"http:\/\/t.co\/6y7xRxEuw3","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[71,93]}]}},"protected":false,"followers_count":39883682,"friends_count":135174,"listed_count":243025,"created_at":"Wed Mar 26 22:37:48 +0000 2008","favourites_count":4,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":3039,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FAF0FA","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_link_color":"2FC2EF","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDFFCC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":1126,"favorite_count":1246,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"BadKid_Earthfan","name":"erfaan","id":38388324,"id_str":"38388324","indices":[0,16]}]},"favorited":false,"retweeted":false,"lang":"pt"}, +{"created_at":"Mon Aug 26 15:13:13 +0000 2013","id":372013873811177472,"id_str":"372013873811177472","text":"@vuittonbrunette everyone always asks why? Why did she do this? Why did she do that? My answer: For the Applause!","source":"\u003ca href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter for iPad\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":372013192761065472,"in_reply_to_status_id_str":"372013192761065472","in_reply_to_user_id":317262708,"in_reply_to_user_id_str":"317262708","in_reply_to_screen_name":"vuittonbrunette","user":{"id":14230524,"id_str":"14230524","name":"Lady Gaga","screen_name":"ladygaga","location":"","description":"BUY MY NEW SINGLE 'APPLAUSE' AND PRE-ORDER MY ALBUM 'ARTPOP' HERE NOW! http:\/\/t.co\/6y7xRxEuw3","url":"http:\/\/t.co\/6y7xRxEuw3","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[71,93]}]}},"protected":false,"followers_count":39883682,"friends_count":135174,"listed_count":243025,"created_at":"Wed Mar 26 22:37:48 +0000 2008","favourites_count":4,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":3039,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FAF0FA","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_link_color":"2FC2EF","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDFFCC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":2019,"favorite_count":1671,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"vuittonbrunette","name":"\u03b1\u03b7ge\u2113ic\u03b1","id":317262708,"id_str":"317262708","indices":[0,16]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 15:04:59 +0000 2013","id":372011801216815104,"id_str":"372011801216815104","text":"@WonderBoyxGAGA for the fame monster! yellow wig from the telephone video and monsterball!","source":"\u003ca href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter for iPad\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":372011592155533313,"in_reply_to_status_id_str":"372011592155533313","in_reply_to_user_id":1655827585,"in_reply_to_user_id_str":"1655827585","in_reply_to_screen_name":"WonderBoyxGAGA","user":{"id":14230524,"id_str":"14230524","name":"Lady Gaga","screen_name":"ladygaga","location":"","description":"BUY MY NEW SINGLE 'APPLAUSE' AND PRE-ORDER MY ALBUM 'ARTPOP' HERE NOW! http:\/\/t.co\/6y7xRxEuw3","url":"http:\/\/t.co\/6y7xRxEuw3","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[71,93]}]}},"protected":false,"followers_count":39883682,"friends_count":135174,"listed_count":243025,"created_at":"Wed Mar 26 22:37:48 +0000 2008","favourites_count":4,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":3039,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FAF0FA","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_link_color":"2FC2EF","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDFFCC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":1250,"favorite_count":1108,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"WonderBoyxGAGA","name":"HAUS OF WONDER","id":1655827585,"id_str":"1655827585","indices":[0,15]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 15:03:41 +0000 2013","id":372011473117413376,"id_str":"372011473117413376","text":"So what did monsters think of my Vma performance? Stay focused on your greatest competition: yourself! #SnatchYourOwnWeave","source":"\u003ca href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter for iPad\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":14230524,"id_str":"14230524","name":"Lady Gaga","screen_name":"ladygaga","location":"","description":"BUY MY NEW SINGLE 'APPLAUSE' AND PRE-ORDER MY ALBUM 'ARTPOP' HERE NOW! http:\/\/t.co\/6y7xRxEuw3","url":"http:\/\/t.co\/6y7xRxEuw3","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/6y7xRxEuw3","expanded_url":"http:\/\/smarturl.it\/Applause","display_url":"smarturl.it\/Applause","indices":[71,93]}]}},"protected":false,"followers_count":39883682,"friends_count":135174,"listed_count":243025,"created_at":"Wed Mar 26 22:37:48 +0000 2008","favourites_count":4,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":3039,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FAF0FA","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000050060495\/13506f61e5eb69fd109095c8d7edd701.jpeg","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000280665322\/bdd8a8c3b63f6aeb83f21c77f640723f_normal.jpeg","profile_link_color":"2FC2EF","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDFFCC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":7095,"favorite_count":7341,"entities":{"hashtags":[{"text":"SnatchYourOwnWeave","indices":[103,122]}],"symbols":[],"urls":[],"user_mentions":[]},"favorited":false,"retweeted":false,"lang":"en"}] diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/raw/rebeccablack.txt b/Labs/Lab6_NotificationsLab/app/src/main/res/raw/rebeccablack.txt new file mode 100644 index 0000000000000000000000000000000000000000..5d50cc5744e304467831d8f0cd80aee42e3181dc --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/res/raw/rebeccablack.txt @@ -0,0 +1,15 @@ +[{"created_at":"Mon Aug 26 19:35:32 +0000 2013","id":372079888477339648,"id_str":"372079888477339648","text":"@JuanDirection_4","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":372077635825725440,"in_reply_to_status_id_str":"372077635825725440","in_reply_to_user_id":620343755,"in_reply_to_user_id_str":"620343755","in_reply_to_screen_name":"JuanDirection_4","user":{"id":268479992,"id_str":"268479992","name":"Rebecca Black","screen_name":"MsRebeccaBlack","location":"Los Angeles, CA","description":"wait, what?","url":"http:\/\/t.co\/s2GVxq5Zg4","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/s2GVxq5Zg4","expanded_url":"http:\/\/youtube.com\/rebecca","display_url":"youtube.com\/rebecca","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1054276,"friends_count":6338,"listed_count":4836,"created_at":"Fri Mar 18 21:29:23 +0000 2011","favourites_count":1630,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":5690,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/268479992\/1374455381","profile_link_color":"F00534","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"FFBEB2","profile_text_color":"FF0000","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":1,"favorite_count":2,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"JuanDirection_4","name":"Juan Rivera","id":620343755,"id_str":"620343755","indices":[0,16]}]},"favorited":false,"retweeted":false,"lang":"und"}, +{"created_at":"Mon Aug 26 18:41:30 +0000 2013","id":372066286517252096,"id_str":"372066286517252096","text":"so someone wrote this on my desk http:\/\/t.co\/nR7TMzhe31","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":268479992,"id_str":"268479992","name":"Rebecca Black","screen_name":"MsRebeccaBlack","location":"Los Angeles, CA","description":"wait, what?","url":"http:\/\/t.co\/s2GVxq5Zg4","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/s2GVxq5Zg4","expanded_url":"http:\/\/youtube.com\/rebecca","display_url":"youtube.com\/rebecca","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1054276,"friends_count":6338,"listed_count":4836,"created_at":"Fri Mar 18 21:29:23 +0000 2011","favourites_count":1630,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":5690,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/268479992\/1374455381","profile_link_color":"F00534","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"FFBEB2","profile_text_color":"FF0000","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":795,"favorite_count":1356,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[],"media":[{"id":372066286521446400,"id_str":"372066286521446400","indices":[33,55],"media_url":"http:\/\/pbs.twimg.com\/media\/BSnYUPkCcAA7edg.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/BSnYUPkCcAA7edg.jpg","url":"http:\/\/t.co\/nR7TMzhe31","display_url":"pic.twitter.com\/nR7TMzhe31","expanded_url":"http:\/\/twitter.com\/MsRebeccaBlack\/status\/372066286517252096\/photo\/1","type":"photo","sizes":{"thumb":{"w":150,"h":150,"resize":"crop"},"small":{"w":340,"h":453,"resize":"fit"},"medium":{"w":600,"h":800,"resize":"fit"},"large":{"w":768,"h":1024,"resize":"fit"}}}]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"}, +{"created_at":"Mon Aug 26 18:15:20 +0000 2013","id":372059704953806848,"id_str":"372059704953806848","text":"@maddislifee DONT TELL ME WHAT TO DO MADDI","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":372057585936908288,"in_reply_to_status_id_str":"372057585936908288","in_reply_to_user_id":182048795,"in_reply_to_user_id_str":"182048795","in_reply_to_screen_name":"maddislifee","user":{"id":268479992,"id_str":"268479992","name":"Rebecca Black","screen_name":"MsRebeccaBlack","location":"Los Angeles, CA","description":"wait, what?","url":"http:\/\/t.co\/s2GVxq5Zg4","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/s2GVxq5Zg4","expanded_url":"http:\/\/youtube.com\/rebecca","display_url":"youtube.com\/rebecca","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1054276,"friends_count":6338,"listed_count":4836,"created_at":"Fri Mar 18 21:29:23 +0000 2011","favourites_count":1630,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":5690,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/268479992\/1374455381","profile_link_color":"F00534","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"FFBEB2","profile_text_color":"FF0000","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":6,"favorite_count":31,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"maddislifee","name":"Maddi Bragg","id":182048795,"id_str":"182048795","indices":[0,12]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 18:05:43 +0000 2013","id":372057285390258176,"id_str":"372057285390258176","text":"I liked a @YouTube video http:\/\/t.co\/ij6BlYiu9a CAMP TAKOTA DAY 11","source":"\u003ca href=\"http:\/\/www.google.com\/\" rel=\"nofollow\"\u003eGoogle\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":268479992,"id_str":"268479992","name":"Rebecca Black","screen_name":"MsRebeccaBlack","location":"Los Angeles, CA","description":"wait, what?","url":"http:\/\/t.co\/s2GVxq5Zg4","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/s2GVxq5Zg4","expanded_url":"http:\/\/youtube.com\/rebecca","display_url":"youtube.com\/rebecca","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1054276,"friends_count":6338,"listed_count":4836,"created_at":"Fri Mar 18 21:29:23 +0000 2011","favourites_count":1630,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":5690,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/268479992\/1374455381","profile_link_color":"F00534","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"FFBEB2","profile_text_color":"FF0000","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":7,"favorite_count":38,"entities":{"hashtags":[],"symbols":[],"urls":[{"url":"http:\/\/t.co\/ij6BlYiu9a","expanded_url":"http:\/\/youtu.be\/UdSN_tyoZfY?a","display_url":"youtu.be\/UdSN_tyoZfY?a","indices":[25,47]}],"user_mentions":[{"screen_name":"YouTube","name":"YouTube","id":10228272,"id_str":"10228272","indices":[10,18]}]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"}, +{"created_at":"Mon Aug 26 16:35:35 +0000 2013","id":372034599540363264,"id_str":"372034599540363264","text":"so tired someone save me from school","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":268479992,"id_str":"268479992","name":"Rebecca Black","screen_name":"MsRebeccaBlack","location":"Los Angeles, CA","description":"wait, what?","url":"http:\/\/t.co\/s2GVxq5Zg4","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/s2GVxq5Zg4","expanded_url":"http:\/\/youtube.com\/rebecca","display_url":"youtube.com\/rebecca","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1054276,"friends_count":6338,"listed_count":4836,"created_at":"Fri Mar 18 21:29:23 +0000 2011","favourites_count":1630,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":5690,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/268479992\/1374455381","profile_link_color":"F00534","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"FFBEB2","profile_text_color":"FF0000","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":151,"favorite_count":254,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 04:54:03 +0000 2013","id":371858055085830144,"id_str":"371858055085830144","text":"@idkgrapes yep lol","source":"web","truncated":false,"in_reply_to_status_id":371857907610316800,"in_reply_to_status_id_str":"371857907610316800","in_reply_to_user_id":760396748,"in_reply_to_user_id_str":"760396748","in_reply_to_screen_name":"idkgrapes","user":{"id":268479992,"id_str":"268479992","name":"Rebecca Black","screen_name":"MsRebeccaBlack","location":"Los Angeles, CA","description":"wait, what?","url":"http:\/\/t.co\/s2GVxq5Zg4","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/s2GVxq5Zg4","expanded_url":"http:\/\/youtube.com\/rebecca","display_url":"youtube.com\/rebecca","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1054276,"friends_count":6338,"listed_count":4836,"created_at":"Fri Mar 18 21:29:23 +0000 2011","favourites_count":1630,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":5690,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/268479992\/1374455381","profile_link_color":"F00534","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"FFBEB2","profile_text_color":"FF0000","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":1,"favorite_count":3,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"idkgrapes","name":"nicole","id":760396748,"id_str":"760396748","indices":[0,10]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 04:53:45 +0000 2013","id":371857977906434048,"id_str":"371857977906434048","text":"@TaliaCBrown yep","source":"web","truncated":false,"in_reply_to_status_id":371857766370906113,"in_reply_to_status_id_str":"371857766370906113","in_reply_to_user_id":349711773,"in_reply_to_user_id_str":"349711773","in_reply_to_screen_name":"TaliaCBrown","user":{"id":268479992,"id_str":"268479992","name":"Rebecca Black","screen_name":"MsRebeccaBlack","location":"Los Angeles, CA","description":"wait, what?","url":"http:\/\/t.co\/s2GVxq5Zg4","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/s2GVxq5Zg4","expanded_url":"http:\/\/youtube.com\/rebecca","display_url":"youtube.com\/rebecca","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1054276,"friends_count":6338,"listed_count":4836,"created_at":"Fri Mar 18 21:29:23 +0000 2011","favourites_count":1630,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":5690,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/268479992\/1374455381","profile_link_color":"F00534","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"FFBEB2","profile_text_color":"FF0000","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":1,"favorite_count":1,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"TaliaCBrown","name":"Talia","id":349711773,"id_str":"349711773","indices":[0,12]}]},"favorited":false,"retweeted":false,"lang":"und"}, +{"created_at":"Mon Aug 26 04:52:27 +0000 2013","id":371857650536820736,"id_str":"371857650536820736","text":"shout out to my sass at the 2011 vmas #throwback http:\/\/t.co\/fgk6TWyJ2j","source":"web","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":268479992,"id_str":"268479992","name":"Rebecca Black","screen_name":"MsRebeccaBlack","location":"Los Angeles, CA","description":"wait, what?","url":"http:\/\/t.co\/s2GVxq5Zg4","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/s2GVxq5Zg4","expanded_url":"http:\/\/youtube.com\/rebecca","display_url":"youtube.com\/rebecca","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1054276,"friends_count":6338,"listed_count":4836,"created_at":"Fri Mar 18 21:29:23 +0000 2011","favourites_count":1630,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":5690,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/268479992\/1374455381","profile_link_color":"F00534","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"FFBEB2","profile_text_color":"FF0000","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":72,"favorite_count":249,"entities":{"hashtags":[{"text":"throwback","indices":[38,48]}],"symbols":[],"urls":[{"url":"http:\/\/t.co\/fgk6TWyJ2j","expanded_url":"http:\/\/www.andpop.com\/wp-content\/uploads\/2013\/08\/anigif_enhanced-buzz-24708-1375982191-29.gif","display_url":"andpop.com\/wp-content\/upl\u2026","indices":[49,71]}],"user_mentions":[]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"}, +{"created_at":"Mon Aug 26 03:23:28 +0000 2013","id":371835258859028480,"id_str":"371835258859028480","text":"@Maryssahhh I've known the kid for two years now. he's worked his butt off to get where he is now and he definitely does.","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":371834864720687104,"in_reply_to_status_id_str":"371834864720687104","in_reply_to_user_id":178940637,"in_reply_to_user_id_str":"178940637","in_reply_to_screen_name":"Maryssahhh","user":{"id":268479992,"id_str":"268479992","name":"Rebecca Black","screen_name":"MsRebeccaBlack","location":"Los Angeles, CA","description":"wait, what?","url":"http:\/\/t.co\/s2GVxq5Zg4","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/s2GVxq5Zg4","expanded_url":"http:\/\/youtube.com\/rebecca","display_url":"youtube.com\/rebecca","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1054276,"friends_count":6338,"listed_count":4836,"created_at":"Fri Mar 18 21:29:23 +0000 2011","favourites_count":1630,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":5690,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/268479992\/1374455381","profile_link_color":"F00534","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"FFBEB2","profile_text_color":"FF0000","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":2,"favorite_count":7,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"Maryssahhh","name":"Maryssahhh","id":178940637,"id_str":"178940637","indices":[0,11]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 03:20:02 +0000 2013","id":371834392156463104,"id_str":"371834392156463104","text":"@MrBlahargith it's my brothers birthday!","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":371834279023505411,"in_reply_to_status_id_str":"371834279023505411","in_reply_to_user_id":554200449,"in_reply_to_user_id_str":"554200449","in_reply_to_screen_name":"MrBlahargith","user":{"id":268479992,"id_str":"268479992","name":"Rebecca Black","screen_name":"MsRebeccaBlack","location":"Los Angeles, CA","description":"wait, what?","url":"http:\/\/t.co\/s2GVxq5Zg4","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/s2GVxq5Zg4","expanded_url":"http:\/\/youtube.com\/rebecca","display_url":"youtube.com\/rebecca","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1054276,"friends_count":6338,"listed_count":4836,"created_at":"Fri Mar 18 21:29:23 +0000 2011","favourites_count":1630,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":5690,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/268479992\/1374455381","profile_link_color":"F00534","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"FFBEB2","profile_text_color":"FF0000","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":2,"favorite_count":5,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"MrBlahargith","name":"Aaron Roddy","id":554200449,"id_str":"554200449","indices":[0,13]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 03:18:54 +0000 2013","id":371834107572924418,"id_str":"371834107572924418","text":"just heard @AustinMahone won a moon man tonight! its CRAAAZY to see how far you've come over the past couple of years. you deserve it!! :')","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":268479992,"id_str":"268479992","name":"Rebecca Black","screen_name":"MsRebeccaBlack","location":"Los Angeles, CA","description":"wait, what?","url":"http:\/\/t.co\/s2GVxq5Zg4","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/s2GVxq5Zg4","expanded_url":"http:\/\/youtube.com\/rebecca","display_url":"youtube.com\/rebecca","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1054276,"friends_count":6338,"listed_count":4836,"created_at":"Fri Mar 18 21:29:23 +0000 2011","favourites_count":1630,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":5690,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/268479992\/1374455381","profile_link_color":"F00534","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"FFBEB2","profile_text_color":"FF0000","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":281,"favorite_count":478,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"AustinMahone","name":"Austin Mahone","id":196795202,"id_str":"196795202","indices":[11,24]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Mon Aug 26 03:01:22 +0000 2013","id":371829697467781120,"id_str":"371829697467781120","text":"@sarahmweyand @taylorswift13 WAIT WHAT","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":371828536216399873,"in_reply_to_status_id_str":"371828536216399873","in_reply_to_user_id":29033101,"in_reply_to_user_id_str":"29033101","in_reply_to_screen_name":"sarahmweyand","user":{"id":268479992,"id_str":"268479992","name":"Rebecca Black","screen_name":"MsRebeccaBlack","location":"Los Angeles, CA","description":"wait, what?","url":"http:\/\/t.co\/s2GVxq5Zg4","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/s2GVxq5Zg4","expanded_url":"http:\/\/youtube.com\/rebecca","display_url":"youtube.com\/rebecca","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1054276,"friends_count":6338,"listed_count":4836,"created_at":"Fri Mar 18 21:29:23 +0000 2011","favourites_count":1630,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":5690,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/268479992\/1374455381","profile_link_color":"F00534","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"FFBEB2","profile_text_color":"FF0000","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":1,"favorite_count":5,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"sarahmweyand","name":"Sarah Weyand","id":29033101,"id_str":"29033101","indices":[0,13]},{"screen_name":"taylorswift13","name":"Taylor Swift","id":17919972,"id_str":"17919972","indices":[14,28]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Sun Aug 25 22:00:45 +0000 2013","id":371754043200110592,"id_str":"371754043200110592","text":"in case you haven't seen...im in @RickyPDillon's video this week! GO WATCH NOW AND MAYBE YOU'LL EVEN GET A FOLLOW! ;) http:\/\/t.co\/ScdijvXAXQ","source":"web","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":268479992,"id_str":"268479992","name":"Rebecca Black","screen_name":"MsRebeccaBlack","location":"Los Angeles, CA","description":"wait, what?","url":"http:\/\/t.co\/s2GVxq5Zg4","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/s2GVxq5Zg4","expanded_url":"http:\/\/youtube.com\/rebecca","display_url":"youtube.com\/rebecca","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1054276,"friends_count":6338,"listed_count":4836,"created_at":"Fri Mar 18 21:29:23 +0000 2011","favourites_count":1630,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":5690,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/268479992\/1374455381","profile_link_color":"F00534","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"FFBEB2","profile_text_color":"FF0000","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":271,"favorite_count":457,"entities":{"hashtags":[],"symbols":[],"urls":[{"url":"http:\/\/t.co\/ScdijvXAXQ","expanded_url":"http:\/\/www.youtube.com\/watch?v=Y500U6r_8OI","display_url":"youtube.com\/watch?v=Y500U6\u2026","indices":[118,140]}],"user_mentions":[{"screen_name":"RickyPDillon","name":"Ricky Dillon","id":73171449,"id_str":"73171449","indices":[33,46]}]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"}, +{"created_at":"Sun Aug 25 20:48:15 +0000 2013","id":371735796715225088,"id_str":"371735796715225088","text":"selfieeeeee with the birthday boy http:\/\/t.co\/oWfdWegwNr","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":268479992,"id_str":"268479992","name":"Rebecca Black","screen_name":"MsRebeccaBlack","location":"Los Angeles, CA","description":"wait, what?","url":"http:\/\/t.co\/s2GVxq5Zg4","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/s2GVxq5Zg4","expanded_url":"http:\/\/youtube.com\/rebecca","display_url":"youtube.com\/rebecca","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1054276,"friends_count":6338,"listed_count":4836,"created_at":"Fri Mar 18 21:29:23 +0000 2011","favourites_count":1630,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":5690,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/378800000055491584\/2d0652b4011e0becf461573a19a0a95e.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000152829318\/4c21bddc0e8c673575ae712cb98df39c_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/268479992\/1374455381","profile_link_color":"F00534","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"FFBEB2","profile_text_color":"FF0000","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":102,"favorite_count":523,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[],"media":[{"id":371735796719419392,"id_str":"371735796719419392","indices":[34,56],"media_url":"http:\/\/pbs.twimg.com\/media\/BSirvNHCAAAFjJx.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/BSirvNHCAAAFjJx.jpg","url":"http:\/\/t.co\/oWfdWegwNr","display_url":"pic.twitter.com\/oWfdWegwNr","expanded_url":"http:\/\/twitter.com\/MsRebeccaBlack\/status\/371735796715225088\/photo\/1","type":"photo","sizes":{"medium":{"w":600,"h":450,"resize":"fit"},"large":{"w":1024,"h":768,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"small":{"w":340,"h":255,"resize":"fit"}}}]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"} +] diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/raw/taylorswift.txt b/Labs/Lab6_NotificationsLab/app/src/main/res/raw/taylorswift.txt new file mode 100644 index 0000000000000000000000000000000000000000..b74158e89b8281c8892570d27b193d237d2ad4ba --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/res/raw/taylorswift.txt @@ -0,0 +1,15 @@ +[{"created_at":"Mon Aug 26 04:08:18 +0000 2013","id":371846538727014400,"id_str":"371846538727014400","text":"I love you guys so much.","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":17919972,"id_str":"17919972","name":"Taylor Swift","screen_name":"taylorswift13","location":"","description":"Happy. Free. Confused. Lonely. \nAt the same time.","url":"http:\/\/t.co\/hZtHeBu93U","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/hZtHeBu93U","expanded_url":"http:\/\/twitter.com\/taylorswift13","display_url":"twitter.com\/taylorswift13","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":33053287,"friends_count":110,"listed_count":112437,"created_at":"Sat Dec 06 10:10:54 +0000 2008","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":1913,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":28891,"favorite_count":34056,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Sun Aug 25 23:55:12 +0000 2013","id":371782844135505921,"id_str":"371782844135505921","text":"Headed to the VMAs. So. Excited.","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":17919972,"id_str":"17919972","name":"Taylor Swift","screen_name":"taylorswift13","location":"","description":"Happy. Free. Confused. Lonely. \nAt the same time.","url":"http:\/\/t.co\/hZtHeBu93U","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/hZtHeBu93U","expanded_url":"http:\/\/twitter.com\/taylorswift13","display_url":"twitter.com\/taylorswift13","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":33053287,"friends_count":110,"listed_count":112437,"created_at":"Sat Dec 06 10:10:54 +0000 2008","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":1913,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":15734,"favorite_count":19727,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Sun Aug 25 11:30:50 +0000 2013","id":371595521397628929,"id_str":"371595521397628929","text":"RT @markvillaver: Taylor Swift & Jennifer Lopez - Jenny from the Block - RED Tour - L.A. Staples Center Sat 8\/24\/2013 http:\/\/t.co\/WUtebAqJk\u2026","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":17919972,"id_str":"17919972","name":"Taylor Swift","screen_name":"taylorswift13","location":"","description":"Happy. Free. Confused. Lonely. \nAt the same time.","url":"http:\/\/t.co\/hZtHeBu93U","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/hZtHeBu93U","expanded_url":"http:\/\/twitter.com\/taylorswift13","display_url":"twitter.com\/taylorswift13","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":33053287,"friends_count":110,"listed_count":112437,"created_at":"Sat Dec 06 10:10:54 +0000 2008","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":1913,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Sun Aug 25 10:16:54 +0000 2013","id":371576912033755139,"id_str":"371576912033755139","text":"Taylor Swift & Jennifer Lopez - Jenny from the Block - RED Tour - L.A. Staples Center Sat 8\/24\/2013 http:\/\/t.co\/WUtebAqJks via @youtube","source":"\u003ca href=\"http:\/\/twitter.com\/tweetbutton\" rel=\"nofollow\"\u003eTweet Button\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":251833625,"id_str":"251833625","name":"Mark Villaver 24\/7","screen_name":"markvillaver","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":5317,"friends_count":2239,"listed_count":42,"created_at":"Sun Feb 13 23:17:44 +0000 2011","favourites_count":1460,"utc_offset":-36000,"time_zone":"Hawaii","geo_enabled":false,"verified":false,"statuses_count":2727,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/725389249\/d0ac6d95f4718b1962632eb8d123fec8.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/725389249\/d0ac6d95f4718b1962632eb8d123fec8.jpeg","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000018911688\/545dfaa8691e3bfb00de44ad1c61b269_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000018911688\/545dfaa8691e3bfb00de44ad1c61b269_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/251833625\/1371703034","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":3213,"favorite_count":3323,"entities":{"hashtags":[],"symbols":[],"urls":[{"url":"http:\/\/t.co\/WUtebAqJks","expanded_url":"http:\/\/www.youtube.com\/watch?v=hX1GruGRefA&sns=tw","display_url":"youtube.com\/watch?v=hX1Gru\u2026","indices":[104,126]}],"user_mentions":[{"screen_name":"YouTube","name":"YouTube","id":10228272,"id_str":"10228272","indices":[131,139]}]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},"retweet_count":3213,"favorite_count":0,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"markvillaver","name":"Mark Villaver 24\/7","id":251833625,"id_str":"251833625","indices":[3,16]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Sun Aug 25 06:23:01 +0000 2013","id":371518054363983872,"id_str":"371518054363983872","text":"RT @JLo: @taylorswift13 had so much fun with you tonight!!! #RedTourLA #jennyfromtheblock #hairbrushsongs","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":17919972,"id_str":"17919972","name":"Taylor Swift","screen_name":"taylorswift13","location":"","description":"Happy. Free. Confused. Lonely. \nAt the same time.","url":"http:\/\/t.co\/hZtHeBu93U","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/hZtHeBu93U","expanded_url":"http:\/\/twitter.com\/taylorswift13","display_url":"twitter.com\/taylorswift13","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":33053287,"friends_count":110,"listed_count":112437,"created_at":"Sat Dec 06 10:10:54 +0000 2008","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":1913,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Sun Aug 25 06:20:02 +0000 2013","id":371517303713587200,"id_str":"371517303713587200","text":"@taylorswift13 had so much fun with you tonight!!! #RedTourLA #jennyfromtheblock #hairbrushsongs","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":371515507242844160,"in_reply_to_status_id_str":"371515507242844160","in_reply_to_user_id":17919972,"in_reply_to_user_id_str":"17919972","in_reply_to_screen_name":"taylorswift13","user":{"id":85603854,"id_str":"85603854","name":"Jennifer Lopez","screen_name":"JLo","location":"","description":"","url":"http:\/\/t.co\/RGbADx6cyo","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/RGbADx6cyo","expanded_url":"http:\/\/www.jenniferlopez.com\/","display_url":"jenniferlopez.com","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":22763808,"friends_count":330,"listed_count":47023,"created_at":"Tue Oct 27 16:24:51 +0000 2009","favourites_count":12,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":2481,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/863017380\/211d66c34680c4210534e87c8cc2ff83.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/863017380\/211d66c34680c4210534e87c8cc2ff83.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000154437136\/a91f81ffa671c0affa78db1f26b49767_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000154437136\/a91f81ffa671c0affa78db1f26b49767_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/85603854\/1367976648","profile_link_color":"A82BA8","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"A29EA8","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":4817,"favorite_count":4194,"entities":{"hashtags":[{"text":"RedTourLA","indices":[52,62]},{"text":"jennyfromtheblock","indices":[64,82]},{"text":"hairbrushsongs","indices":[83,98]}],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"taylorswift13","name":"Taylor Swift","id":17919972,"id_str":"17919972","indices":[0,14]}]},"favorited":false,"retweeted":false,"lang":"en"},"retweet_count":4817,"favorite_count":0,"entities":{"hashtags":[{"text":"RedTourLA","indices":[61,71]},{"text":"jennyfromtheblock","indices":[73,91]},{"text":"hairbrushsongs","indices":[92,107]}],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"JLo","name":"Jennifer Lopez","id":85603854,"id_str":"85603854","indices":[3,7]},{"screen_name":"taylorswift13","name":"Taylor Swift","id":17919972,"id_str":"17919972","indices":[9,23]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Sun Aug 25 06:12:54 +0000 2013","id":371515507242844160,"id_str":"371515507242844160","text":"Sang Jenny From the Block with @JLo tonight at Staples Center. STILL FANGIRLING OUT ABOUT IT.","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":17919972,"id_str":"17919972","name":"Taylor Swift","screen_name":"taylorswift13","location":"","description":"Happy. Free. Confused. Lonely. \nAt the same time.","url":"http:\/\/t.co\/hZtHeBu93U","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/hZtHeBu93U","expanded_url":"http:\/\/twitter.com\/taylorswift13","display_url":"twitter.com\/taylorswift13","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":33053287,"friends_count":110,"listed_count":112437,"created_at":"Sat Dec 06 10:10:54 +0000 2008","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":1913,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":11152,"favorite_count":13256,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"JLo","name":"Jennifer Lopez","id":85603854,"id_str":"85603854","indices":[31,35]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Sun Aug 25 06:09:52 +0000 2013","id":371514745448194048,"id_str":"371514745448194048","text":"RT @JLo: #Red!!! @taylorswift13 @ STAPLES Center http:\/\/t.co\/iVbun7jXtg","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":17919972,"id_str":"17919972","name":"Taylor Swift","screen_name":"taylorswift13","location":"","description":"Happy. Free. Confused. Lonely. \nAt the same time.","url":"http:\/\/t.co\/hZtHeBu93U","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/hZtHeBu93U","expanded_url":"http:\/\/twitter.com\/taylorswift13","display_url":"twitter.com\/taylorswift13","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":33053287,"friends_count":110,"listed_count":112437,"created_at":"Sat Dec 06 10:10:54 +0000 2008","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":1913,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Sun Aug 25 05:40:55 +0000 2013","id":371507461200838656,"id_str":"371507461200838656","text":"#Red!!! @taylorswift13 @ STAPLES Center http:\/\/t.co\/iVbun7jXtg","source":"\u003ca href=\"http:\/\/instagram.com\" rel=\"nofollow\"\u003eInstagram\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":85603854,"id_str":"85603854","name":"Jennifer Lopez","screen_name":"JLo","location":"","description":"","url":"http:\/\/t.co\/RGbADx6cyo","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/RGbADx6cyo","expanded_url":"http:\/\/www.jenniferlopez.com\/","display_url":"jenniferlopez.com","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":22763808,"friends_count":330,"listed_count":47023,"created_at":"Tue Oct 27 16:24:51 +0000 2009","favourites_count":12,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":2481,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/863017380\/211d66c34680c4210534e87c8cc2ff83.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/863017380\/211d66c34680c4210534e87c8cc2ff83.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000154437136\/a91f81ffa671c0affa78db1f26b49767_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000154437136\/a91f81ffa671c0affa78db1f26b49767_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/85603854\/1367976648","profile_link_color":"A82BA8","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"A29EA8","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":3581,"favorite_count":2772,"entities":{"hashtags":[{"text":"Red","indices":[0,4]}],"symbols":[],"urls":[{"url":"http:\/\/t.co\/iVbun7jXtg","expanded_url":"http:\/\/instagram.com\/p\/dbKaY7muIX\/","display_url":"instagram.com\/p\/dbKaY7muIX\/","indices":[40,62]}],"user_mentions":[{"screen_name":"taylorswift13","name":"Taylor Swift","id":17919972,"id_str":"17919972","indices":[8,22]}]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},"retweet_count":3581,"favorite_count":0,"entities":{"hashtags":[{"text":"Red","indices":[9,13]}],"symbols":[],"urls":[{"url":"http:\/\/t.co\/iVbun7jXtg","expanded_url":"http:\/\/instagram.com\/p\/dbKaY7muIX\/","display_url":"instagram.com\/p\/dbKaY7muIX\/","indices":[49,71]}],"user_mentions":[{"screen_name":"JLo","name":"Jennifer Lopez","id":85603854,"id_str":"85603854","indices":[3,7]},{"screen_name":"taylorswift13","name":"Taylor Swift","id":17919972,"id_str":"17919972","indices":[17,31]}]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"}, +{"created_at":"Sun Aug 25 00:28:48 +0000 2013","id":371428914037411840,"id_str":"371428914037411840","text":"Our last show in LA is tonight. Can't wait to see what's in store......","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":17919972,"id_str":"17919972","name":"Taylor Swift","screen_name":"taylorswift13","location":"","description":"Happy. Free. Confused. Lonely. \nAt the same time.","url":"http:\/\/t.co\/hZtHeBu93U","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/hZtHeBu93U","expanded_url":"http:\/\/twitter.com\/taylorswift13","display_url":"twitter.com\/taylorswift13","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":33053287,"friends_count":110,"listed_count":112437,"created_at":"Sat Dec 06 10:10:54 +0000 2008","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":1913,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":7441,"favorite_count":8290,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Sun Aug 25 00:27:47 +0000 2013","id":371428657610244096,"id_str":"371428657610244096","text":"RT @siananderson: List of things I was put on this earth to do - this http:\/\/t.co\/7x4NjvmyhG","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":17919972,"id_str":"17919972","name":"Taylor Swift","screen_name":"taylorswift13","location":"","description":"Happy. Free. Confused. Lonely. \nAt the same time.","url":"http:\/\/t.co\/hZtHeBu93U","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/hZtHeBu93U","expanded_url":"http:\/\/twitter.com\/taylorswift13","display_url":"twitter.com\/taylorswift13","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":33053287,"friends_count":110,"listed_count":112437,"created_at":"Sat Dec 06 10:10:54 +0000 2008","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":1913,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Sat Aug 24 21:34:05 +0000 2013","id":371384944947646464,"id_str":"371384944947646464","text":"List of things I was put on this earth to do - this \ud83d\ude02\u2764 http:\/\/t.co\/7x4NjvmyhG","source":"\u003ca href=\"http:\/\/instagram.com\" rel=\"nofollow\"\u003eInstagram\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":38649346,"id_str":"38649346","name":"Sian Anderson","screen_name":"siananderson","location":"The Wilderness","description":"Understated.","url":"http:\/\/t.co\/KilFNMDvrF","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/KilFNMDvrF","expanded_url":"http:\/\/www.siananderson.co.uk","display_url":"siananderson.co.uk","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":8009,"friends_count":627,"listed_count":82,"created_at":"Fri May 08 11:39:37 +0000 2009","favourites_count":334,"utc_offset":3600,"time_zone":"London","geo_enabled":false,"verified":false,"statuses_count":40931,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/722816322\/fb72d9d03aeed2786091bddb18e01700.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/722816322\/fb72d9d03aeed2786091bddb18e01700.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000213562407\/5b6da6fc47236e50cd876f542305e4c8_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000213562407\/5b6da6fc47236e50cd876f542305e4c8_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/38649346\/1354023086","profile_link_color":"FF0000","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"E5507E","profile_text_color":"362720","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":1389,"favorite_count":1355,"entities":{"hashtags":[],"symbols":[],"urls":[{"url":"http:\/\/t.co\/7x4NjvmyhG","expanded_url":"http:\/\/instagram.com\/p\/daUGdGgx1b\/","display_url":"instagram.com\/p\/daUGdGgx1b\/","indices":[55,77]}],"user_mentions":[]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},"retweet_count":1389,"favorite_count":0,"entities":{"hashtags":[],"symbols":[],"urls":[{"url":"http:\/\/t.co\/7x4NjvmyhG","expanded_url":"http:\/\/instagram.com\/p\/daUGdGgx1b\/","display_url":"instagram.com\/p\/daUGdGgx1b\/","indices":[73,95]}],"user_mentions":[{"screen_name":"siananderson","name":"Sian Anderson","id":38649346,"id_str":"38649346","indices":[3,16]}]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"}, +{"created_at":"Sat Aug 24 19:27:43 +0000 2013","id":371353144187314177,"id_str":"371353144187314177","text":"Now I've seen it through, and now I know the truth... That anything could happen. http:\/\/t.co\/B1V8G55MJM","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":17919972,"id_str":"17919972","name":"Taylor Swift","screen_name":"taylorswift13","location":"","description":"Happy. Free. Confused. Lonely. \nAt the same time.","url":"http:\/\/t.co\/hZtHeBu93U","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/hZtHeBu93U","expanded_url":"http:\/\/twitter.com\/taylorswift13","display_url":"twitter.com\/taylorswift13","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":33053287,"friends_count":110,"listed_count":112437,"created_at":"Sat Dec 06 10:10:54 +0000 2008","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":1913,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":12523,"favorite_count":16640,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[],"media":[{"id":371353144195702784,"id_str":"371353144195702784","indices":[82,104],"media_url":"http:\/\/pbs.twimg.com\/media\/BSdPt5YCYAAETtr.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/BSdPt5YCYAAETtr.jpg","url":"http:\/\/t.co\/B1V8G55MJM","display_url":"pic.twitter.com\/B1V8G55MJM","expanded_url":"http:\/\/twitter.com\/taylorswift13\/status\/371353144187314177\/photo\/1","type":"photo","sizes":{"large":{"w":594,"h":395,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"small":{"w":340,"h":226,"resize":"fit"},"medium":{"w":594,"h":395,"resize":"fit"}}}]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"}, +{"created_at":"Sat Aug 24 19:11:06 +0000 2013","id":371348962243919872,"id_str":"371348962243919872","text":"RT @elliegoulding: Still blown away by how incredible the @taylorswift13 show is and how lucky I feel to have been a part of that last night","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":17919972,"id_str":"17919972","name":"Taylor Swift","screen_name":"taylorswift13","location":"","description":"Happy. Free. Confused. Lonely. \nAt the same time.","url":"http:\/\/t.co\/hZtHeBu93U","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/hZtHeBu93U","expanded_url":"http:\/\/twitter.com\/taylorswift13","display_url":"twitter.com\/taylorswift13","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":33053287,"friends_count":110,"listed_count":112437,"created_at":"Sat Dec 06 10:10:54 +0000 2008","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":1913,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Sat Aug 24 17:50:45 +0000 2013","id":371328739692793856,"id_str":"371328739692793856","text":"Still blown away by how incredible the @taylorswift13 show is and how lucky I feel to have been a part of that last night","source":"\u003ca href=\"http:\/\/www.echofon.com\/\" rel=\"nofollow\"\u003eEchofon\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":20565284,"id_str":"20565284","name":"Ellie Goulding","screen_name":"elliegoulding","location":"London","description":"Do you want my heart between your teeth?","url":"http:\/\/t.co\/wuCRjYFgLH","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/wuCRjYFgLH","expanded_url":"http:\/\/www.elliegoulding.com","display_url":"elliegoulding.com","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1711103,"friends_count":280,"listed_count":5462,"created_at":"Wed Feb 11 02:15:58 +0000 2009","favourites_count":13,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":9603,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000124644860\/f6360999eb47d372a235b0da3923b9d3_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000124644860\/f6360999eb47d372a235b0da3923b9d3_normal.jpeg","profile_link_color":"0084B4","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"default_profile":true,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":4635,"favorite_count":5536,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"taylorswift13","name":"Taylor Swift","id":17919972,"id_str":"17919972","indices":[39,53]}]},"favorited":false,"retweeted":false,"lang":"en"},"retweet_count":4635,"favorite_count":0,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"elliegoulding","name":"Ellie Goulding","id":20565284,"id_str":"20565284","indices":[3,17]},{"screen_name":"taylorswift13","name":"Taylor Swift","id":17919972,"id_str":"17919972","indices":[58,72]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Sat Aug 24 07:41:13 +0000 2013","id":371175345254170625,"id_str":"371175345254170625","text":"RT @elliegoulding: So.much.fun. Love that girl http:\/\/t.co\/AzmX6SsQeb","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":17919972,"id_str":"17919972","name":"Taylor Swift","screen_name":"taylorswift13","location":"","description":"Happy. Free. Confused. Lonely. \nAt the same time.","url":"http:\/\/t.co\/hZtHeBu93U","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/hZtHeBu93U","expanded_url":"http:\/\/twitter.com\/taylorswift13","display_url":"twitter.com\/taylorswift13","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":33053287,"friends_count":110,"listed_count":112437,"created_at":"Sat Dec 06 10:10:54 +0000 2008","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":1913,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Sat Aug 24 06:46:29 +0000 2013","id":371161572628242432,"id_str":"371161572628242432","text":"So.much.fun. Love that girl http:\/\/t.co\/AzmX6SsQeb","source":"\u003ca href=\"http:\/\/instagram.com\" rel=\"nofollow\"\u003eInstagram\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":20565284,"id_str":"20565284","name":"Ellie Goulding","screen_name":"elliegoulding","location":"London","description":"Do you want my heart between your teeth?","url":"http:\/\/t.co\/wuCRjYFgLH","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/wuCRjYFgLH","expanded_url":"http:\/\/www.elliegoulding.com","display_url":"elliegoulding.com","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":1711103,"friends_count":280,"listed_count":5462,"created_at":"Wed Feb 11 02:15:58 +0000 2009","favourites_count":13,"utc_offset":-18000,"time_zone":"Quito","geo_enabled":false,"verified":true,"statuses_count":9603,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000124644860\/f6360999eb47d372a235b0da3923b9d3_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000124644860\/f6360999eb47d372a235b0da3923b9d3_normal.jpeg","profile_link_color":"0084B4","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"default_profile":true,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":4879,"favorite_count":4568,"entities":{"hashtags":[],"symbols":[],"urls":[{"url":"http:\/\/t.co\/AzmX6SsQeb","expanded_url":"http:\/\/instagram.com\/p\/dYukOeTfdB\/","display_url":"instagram.com\/p\/dYukOeTfdB\/","indices":[28,50]}],"user_mentions":[]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},"retweet_count":4879,"favorite_count":0,"entities":{"hashtags":[],"symbols":[],"urls":[{"url":"http:\/\/t.co\/AzmX6SsQeb","expanded_url":"http:\/\/instagram.com\/p\/dYukOeTfdB\/","display_url":"instagram.com\/p\/dYukOeTfdB\/","indices":[47,69]}],"user_mentions":[{"screen_name":"elliegoulding","name":"Ellie Goulding","id":20565284,"id_str":"20565284","indices":[3,17]}]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"}, +{"created_at":"Sat Aug 24 07:11:11 +0000 2013","id":371167788435394560,"id_str":"371167788435394560","text":"So.. Anything could happen at one of our LA shows. @elliegoulding showed up to sing 'anything could happen'! 15,000 person dance party.","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":17919972,"id_str":"17919972","name":"Taylor Swift","screen_name":"taylorswift13","location":"","description":"Happy. Free. Confused. Lonely. \nAt the same time.","url":"http:\/\/t.co\/hZtHeBu93U","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/hZtHeBu93U","expanded_url":"http:\/\/twitter.com\/taylorswift13","display_url":"twitter.com\/taylorswift13","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":33053287,"friends_count":110,"listed_count":112437,"created_at":"Sat Dec 06 10:10:54 +0000 2008","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":1913,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":9416,"favorite_count":11018,"entities":{"hashtags":[],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"elliegoulding","name":"Ellie Goulding","id":20565284,"id_str":"20565284","indices":[51,65]}]},"favorited":false,"retweeted":false,"lang":"en"}, +{"created_at":"Fri Aug 23 01:07:20 +0000 2013","id":370713835423805440,"id_str":"370713835423805440","text":"RT @MTVNews: #IKnewYouWereTrouble co-star @reevecarney takes us through @taylorswift13's #VMA-nom vid frame-by-frame! http:\/\/t.co\/3JhEJt34tH","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":17919972,"id_str":"17919972","name":"Taylor Swift","screen_name":"taylorswift13","location":"","description":"Happy. Free. Confused. Lonely. \nAt the same time.","url":"http:\/\/t.co\/hZtHeBu93U","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/hZtHeBu93U","expanded_url":"http:\/\/twitter.com\/taylorswift13","display_url":"twitter.com\/taylorswift13","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":33053287,"friends_count":110,"listed_count":112437,"created_at":"Sat Dec 06 10:10:54 +0000 2008","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":1913,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Thu Aug 22 23:25:36 +0000 2013","id":370688232658567168,"id_str":"370688232658567168","text":"#IKnewYouWereTrouble co-star @reevecarney takes us through @taylorswift13's #VMA-nom vid frame-by-frame! http:\/\/t.co\/3JhEJt34tH","source":"\u003ca href=\"http:\/\/www.hootsuite.com\" rel=\"nofollow\"\u003eHootSuite\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":40076725,"id_str":"40076725","name":"MTV News","screen_name":"MTVNews","location":"","description":"Music, movie and celebs news fresh to your stream. You follow?\r\nhttp:\/\/t.co\/BblMJWnRgz","url":"http:\/\/t.co\/xXjjZBisRH","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/xXjjZBisRH","expanded_url":"http:\/\/www.mtv.com\/news\/","display_url":"mtv.com\/news\/","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/BblMJWnRgz","expanded_url":"http:\/\/www.facebook.com\/mtvnews","display_url":"facebook.com\/mtvnews","indices":[64,86]}]}},"protected":false,"followers_count":2187433,"friends_count":8026,"listed_count":8371,"created_at":"Thu May 14 20:33:18 +0000 2009","favourites_count":272,"utc_offset":-14400,"time_zone":"Eastern Time (US & Canada)","geo_enabled":true,"verified":true,"statuses_count":36500,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"00BBE4","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/847394289\/924b156780de156f7cbb0a2a3d778fb3.gif","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/847394289\/924b156780de156f7cbb0a2a3d778fb3.gif","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/378800000182065288\/d38422abc7ff0be9396608dda335069e_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/378800000182065288\/d38422abc7ff0be9396608dda335069e_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/40076725\/1377106011","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"C0DFEC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":2771,"favorite_count":2017,"entities":{"hashtags":[{"text":"IKnewYouWereTrouble","indices":[0,20]},{"text":"VMA","indices":[76,80]}],"symbols":[],"urls":[{"url":"http:\/\/t.co\/3JhEJt34tH","expanded_url":"http:\/\/on.mtv.com\/176Q3CJ","display_url":"on.mtv.com\/176Q3CJ","indices":[105,127]}],"user_mentions":[{"screen_name":"reevecarney","name":"Reeve Carney","id":29158294,"id_str":"29158294","indices":[29,41]},{"screen_name":"taylorswift13","name":"Taylor Swift","id":17919972,"id_str":"17919972","indices":[59,73]}]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},"retweet_count":2771,"favorite_count":0,"entities":{"hashtags":[{"text":"IKnewYouWereTrouble","indices":[13,33]},{"text":"VMA","indices":[89,93]}],"symbols":[],"urls":[{"url":"http:\/\/t.co\/3JhEJt34tH","expanded_url":"http:\/\/on.mtv.com\/176Q3CJ","display_url":"on.mtv.com\/176Q3CJ","indices":[118,140]}],"user_mentions":[{"screen_name":"MTVNews","name":"MTV News","id":40076725,"id_str":"40076725","indices":[3,11]},{"screen_name":"reevecarney","name":"Reeve Carney","id":29158294,"id_str":"29158294","indices":[42,54]},{"screen_name":"taylorswift13","name":"Taylor Swift","id":17919972,"id_str":"17919972","indices":[72,86]}]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"}, +{"created_at":"Thu Aug 22 04:52:01 +0000 2013","id":370407988537733120,"id_str":"370407988537733120","text":"RT @teganandsara: Remember when we played #closer with @taylorswift13 yesterday? Ya. Me too. Living the dream. Seriously. Feel so lucky. Th\u2026","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":17919972,"id_str":"17919972","name":"Taylor Swift","screen_name":"taylorswift13","location":"","description":"Happy. Free. Confused. Lonely. \nAt the same time.","url":"http:\/\/t.co\/hZtHeBu93U","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/hZtHeBu93U","expanded_url":"http:\/\/twitter.com\/taylorswift13","display_url":"twitter.com\/taylorswift13","indices":[0,22]}]},"description":{"urls":[]}},"protected":false,"followers_count":33053287,"friends_count":110,"listed_count":112437,"created_at":"Sat Dec 06 10:10:54 +0000 2008","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":1913,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/687293757\/6d2ec27f32fa8cc2fcb7e6a9eada9945.jpeg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1825696714\/image_normal.jpg","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Thu Aug 22 04:32:22 +0000 2013","id":370403043881152512,"id_str":"370403043881152512","text":"Remember when we played #closer with @taylorswift13 yesterday? Ya. Me too. Living the dream. Seriously. Feel so lucky. Thank u. Everyone.","source":"\u003ca href=\"http:\/\/www.twitter.com\" rel=\"nofollow\"\u003eTwitter for BlackBerry\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":21362105,"id_str":"21362105","name":"Tegan and Sara","screen_name":"teganandsara","location":"Vancouver\/Montreal","description":"Our new album Heartthrob is now available worldwide! Get it on iTunes! http:\/\/t.co\/5SB6W5ga","url":"http:\/\/t.co\/UU0T3kcm64","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/UU0T3kcm64","expanded_url":"http:\/\/www.teganandsara.com","display_url":"teganandsara.com","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/5SB6W5ga","expanded_url":"http:\/\/smarturl.it\/jp19p0","display_url":"smarturl.it\/jp19p0","indices":[71,91]}]}},"protected":false,"followers_count":335942,"friends_count":965,"listed_count":6105,"created_at":"Fri Feb 20 01:32:01 +0000 2009","favourites_count":2,"utc_offset":-25200,"time_zone":"Pacific Time (US & Canada)","geo_enabled":false,"verified":true,"statuses_count":6510,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"413837","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/837575683\/a9dd1a071a99fae8d9b2419074b90601.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/837575683\/a9dd1a071a99fae8d9b2419074b90601.png","profile_background_tile":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/3634227844\/80ec9e2b7f34deb4723eca0b6615c061_normal.jpeg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/3634227844\/80ec9e2b7f34deb4723eca0b6615c061_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/21362105\/1365451128","profile_link_color":"7B6BA0","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDFFCC","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":false,"notifications":null},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":2840,"favorite_count":3188,"entities":{"hashtags":[{"text":"closer","indices":[24,31]}],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"taylorswift13","name":"Taylor Swift","id":17919972,"id_str":"17919972","indices":[37,51]}]},"favorited":false,"retweeted":false,"lang":"en"},"retweet_count":2840,"favorite_count":0,"entities":{"hashtags":[{"text":"closer","indices":[42,49]}],"symbols":[],"urls":[],"user_mentions":[{"screen_name":"teganandsara","name":"Tegan and Sara","id":21362105,"id_str":"21362105","indices":[3,16]},{"screen_name":"taylorswift13","name":"Taylor Swift","id":17919972,"id_str":"17919972","indices":[55,69]}]},"favorited":false,"retweeted":false,"lang":"en"} +] diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/values/dimens.xml b/Labs/Lab6_NotificationsLab/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..db7223920b6e364e706a039d75a2023333cba13e --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/res/values/dimens.xml @@ -0,0 +1,8 @@ +<resources> + + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> + <dimen name="base_margin">8dp</dimen> + +</resources> diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/values/strings.xml b/Labs/Lab6_NotificationsLab/app/src/main/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..8c85c3550436e2c5566efeefbea43118f2a8327f --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/res/values/strings.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <string name="app_name">NotificationsLab</string> + <string name="channel_name">Notifications Channel</string> + <string name="channel_description">Display the tweets download status</string> + <string name="title_activity_test_front_end">TestFrontEndActivity</string> + <string name="start_main_activity">Start Main Activity</string> + <string name="make_tweets_old">Make Tweets Old</string> + <string name="make_tweets_new">Make Tweets New</string> + <string name="alert_string">Alert</string> + <string name="download_failed_string">Download has failed. Please retry Later.</string> + <string name="download_succes_string">Download completed successfully.</string> + <string name="download_in_progress_string">Downloading Tweets from Network</string> + <string name="notification_sent_string">Notification Area Notification Sent</string> +</resources> \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/values/styles.xml b/Labs/Lab6_NotificationsLab/app/src/main/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..4a10ca492dd2610011d3979b4dc551f471fa27ab --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/res/values/styles.xml @@ -0,0 +1,20 @@ +<resources> + + <!-- + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Light"> + <!-- + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + --> + </style> + + <!-- Application theme. --> + <style name="AppTheme" parent="AppBaseTheme"> + <!-- All customizations that are NOT specific to a particular API-level can go here. --> + </style> + +</resources> \ No newline at end of file diff --git a/Labs/Lab6_NotificationsLab/app/src/main/res/xml/backup_descriptor.xml b/Labs/Lab6_NotificationsLab/app/src/main/res/xml/backup_descriptor.xml new file mode 100644 index 0000000000000000000000000000000000000000..6fd6103a4d93e4ef450dabdafd296f1cab15dac7 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/app/src/main/res/xml/backup_descriptor.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<full-backup-content> + <!-- Exclude specific shared preferences that contain GCM registration Id --> +</full-backup-content> diff --git a/Labs/Lab6_NotificationsLab/build.gradle b/Labs/Lab6_NotificationsLab/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..63ecee02ffcd6a981dde39cb59f5698e0bba0934 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/build.gradle @@ -0,0 +1,27 @@ +buildscript { + ext.kotlin_version = '1.6.10' + repositories { + mavenCentral() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:7.1.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + mavenCentral() + google() + } +} + + + +allprojects { + repositories { + mavenCentral() + google() + } +} diff --git a/Labs/Lab6_NotificationsLab/gradle.properties b/Labs/Lab6_NotificationsLab/gradle.properties new file mode 100644 index 0000000000000000000000000000000000000000..ed2e01d814aaf8cd5500ed2e1bef936710a3c69e --- /dev/null +++ b/Labs/Lab6_NotificationsLab/gradle.properties @@ -0,0 +1,15 @@ +## For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx1024m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +# +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +#Mon Mar 07 12:13:32 EST 2022 +android.useAndroidX=true +android.enableJetifier=true diff --git a/Labs/Lab6_NotificationsLab/gradle/wrapper/gradle-wrapper.jar b/Labs/Lab6_NotificationsLab/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..13372aef5e24af05341d49695ee84e5f9b594659 Binary files /dev/null and b/Labs/Lab6_NotificationsLab/gradle/wrapper/gradle-wrapper.jar differ diff --git a/Labs/Lab6_NotificationsLab/gradle/wrapper/gradle-wrapper.properties b/Labs/Lab6_NotificationsLab/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..a6e6652ffd3db04b4e07de0a0d947f78f3d3883a --- /dev/null +++ b/Labs/Lab6_NotificationsLab/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sat Mar 05 15:40:33 EST 2022 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/Labs/Lab6_NotificationsLab/gradlew b/Labs/Lab6_NotificationsLab/gradlew new file mode 100644 index 0000000000000000000000000000000000000000..9d82f78915133e1c35a6ea51252590fb38efac2f --- /dev/null +++ b/Labs/Lab6_NotificationsLab/gradlew @@ -0,0 +1,160 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/Labs/Lab6_NotificationsLab/gradlew.bat b/Labs/Lab6_NotificationsLab/gradlew.bat new file mode 100644 index 0000000000000000000000000000000000000000..8a0b282aa6885fb573c106b3551f7275c5f17e8e --- /dev/null +++ b/Labs/Lab6_NotificationsLab/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/Labs/Lab6_NotificationsLab/settings.gradle b/Labs/Lab6_NotificationsLab/settings.gradle new file mode 100644 index 0000000000000000000000000000000000000000..e7b4def49cb53d9aa04228dd3edb14c9e635e003 --- /dev/null +++ b/Labs/Lab6_NotificationsLab/settings.gradle @@ -0,0 +1 @@ +include ':app'