diff --git a/labs/Lab3_Fragments/.gitignore b/labs/Lab3_Fragments/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..ceff37eff0e621e8f96607f26a6bced4727fb5a5 --- /dev/null +++ b/labs/Lab3_Fragments/.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/Lab3_Fragments/FragmentsLabPhone.mp4 b/labs/Lab3_Fragments/FragmentsLabPhone.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..9b6d24735e276fd27cb597e0a4a9d18d7a2b7447 Binary files /dev/null and b/labs/Lab3_Fragments/FragmentsLabPhone.mp4 differ diff --git a/labs/Lab3_Fragments/FragmentsLabTablet.mp4 b/labs/Lab3_Fragments/FragmentsLabTablet.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..2a33a4eddfb1f07df32e1fcf06df90a718bced5b Binary files /dev/null and b/labs/Lab3_Fragments/FragmentsLabTablet.mp4 differ diff --git a/labs/Lab3_Fragments/Lab-Fragments.pdf b/labs/Lab3_Fragments/Lab-Fragments.pdf new file mode 100644 index 0000000000000000000000000000000000000000..154356698af7fae9ea01959106aa72a1dc03b431 Binary files /dev/null and b/labs/Lab3_Fragments/Lab-Fragments.pdf differ diff --git a/labs/Lab3_Fragments/app/build.gradle b/labs/Lab3_Fragments/app/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..ca96dcd8823181e3ff75e253d8603fe24f33dede --- /dev/null +++ b/labs/Lab3_Fragments/app/build.gradle @@ -0,0 +1,39 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' + + +android { + compileSdkVersion 26 + buildToolsVersion '29.0.3' + + defaultConfig { + applicationId "course.labs.fragmentslab" + minSdkVersion 21 + targetSdkVersion 26 + + testApplicationId "course.labs.fragmentslab.test" + testInstrumentationRunner "android.test.InstrumentationTestRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' + } + } +} + +dependencies { + androidTestImplementation 'com.android.support.test:rules:1.0.2' + androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.6.3' + androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.3' + implementation 'com.android.support:support-annotations:28.0.0' + implementation 'com.android.support:support-v4:26.1.0' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} + +repositories { + mavenCentral() + google() +} diff --git a/labs/Lab3_Fragments/app/src/androidTest/java/course/labs/fragmentslab/test/PhoneTest.kt b/labs/Lab3_Fragments/app/src/androidTest/java/course/labs/fragmentslab/test/PhoneTest.kt new file mode 100644 index 0000000000000000000000000000000000000000..3a2d7d5511970367550d3b27e53d79aba1f00e0a --- /dev/null +++ b/labs/Lab3_Fragments/app/src/androidTest/java/course/labs/fragmentslab/test/PhoneTest.kt @@ -0,0 +1,78 @@ +package course.labs.fragmentslab.test + +import course.labs.fragmentslab.MainActivity +import com.robotium.solo.* +import android.test.ActivityInstrumentationTestCase2 +import junit.framework.Assert +import android.view.View + +class PhoneTest : ActivityInstrumentationTestCase2<MainActivity>(MainActivity::class.java) { + private var solo: Solo? = null + + @Throws(Exception::class) + public override fun setUp() { + solo = Solo(instrumentation, activity) + } + + @Throws(Exception::class) + public override fun tearDown() { + solo!!.finishOpenedActivities() + } + + fun testRun() { + + val delay = 2000 + + // Wait for activity: 'course.labs.fragmentslab.MainActivity' + Assert.assertTrue("MainActivity not found", solo!!.waitForActivity( + course.labs.fragmentslab.MainActivity::class.java, delay)) + + // Wait for view: 'android.R.id.text1' + Assert.assertTrue("text1 not found", solo!!.waitForView(android.R.id.text1)) + + // Click on ladygaga + solo!!.clickOnView(solo!!.getView(android.R.id.text1)) + + Assert.assertTrue("ladygaga feed_view not found", solo!!.waitForView<View>(solo!! + .getView(course.labs.fragmentslab.R.id.feed_view))) + + // Assert that: 'the audience cheering!' is shown + Assert.assertTrue("'the audience cheering!' is not shown!", + solo!!.searchText("the audience cheering!")) + + // Press menu back key + solo!!.goBack() + + // Wait for view: 'android.R.id.text1' + Assert.assertTrue("text1 not found", solo!!.waitForView(android.R.id.text1)) + + // Click on msrebeccablack + solo!!.clickOnView(solo!!.getView(android.R.id.text1, 1)) + + // Assert that: feed_view is shown + Assert.assertTrue("feed_view! is not shown!", solo!!.waitForView<View>(solo!! + .getView(course.labs.fragmentslab.R.id.feed_view))) + + // Assert that: 'save me from school' is shown + Assert.assertTrue("'save me from school' is not shown!", + solo!!.searchText("save me from school")) + + // Press menu back key + solo!!.goBack() + + // Wait for view: 'android.R.id.text1' + Assert.assertTrue("text1 not found", solo!!.waitForView(android.R.id.text1)) + + // Click on taylorswift13 + solo!!.clickOnView(solo!!.getView(android.R.id.text1, 2)) + + // Assert that: feed_view shown + Assert.assertTrue("feed_view not shown", solo!!.waitForView<View>(solo!! + .getView(course.labs.fragmentslab.R.id.feed_view))) + + // Assert that: 'I love you guys so much' is shown + Assert.assertTrue("'I love you guys so much' is not shown!", + solo!!.searchText("I love you guys so much")) + + } +} \ No newline at end of file diff --git a/labs/Lab3_Fragments/app/src/androidTest/java/course/labs/fragmentslab/test/TabletTest.kt b/labs/Lab3_Fragments/app/src/androidTest/java/course/labs/fragmentslab/test/TabletTest.kt new file mode 100644 index 0000000000000000000000000000000000000000..c875f011565efdef25fd58cdc445448c63fb5ec7 --- /dev/null +++ b/labs/Lab3_Fragments/app/src/androidTest/java/course/labs/fragmentslab/test/TabletTest.kt @@ -0,0 +1,74 @@ +package course.labs.fragmentslab.test + +import course.labs.fragmentslab.MainActivity +import com.robotium.solo.* +import android.test.ActivityInstrumentationTestCase2 +import android.view.View +import junit.framework.Assert + +class TabletTest : ActivityInstrumentationTestCase2<MainActivity>(MainActivity::class.java) { + private var solo: Solo? = null + + @Throws(Exception::class) + public override fun setUp() { + solo = Solo(instrumentation, activity) + + } + + @Throws(Exception::class) + public override fun tearDown() { + solo!!.finishOpenedActivities() + } + + fun testRun() { + + val delay = 2000 + + // Wait for activity: 'course.labs.fragmentslab.MainActivity' + solo!!.waitForActivity(MainActivity::class.java, delay) + + // Wait for view: 'android.R.id.text1' + Assert.assertTrue("text1 not found", solo!!.waitForView(android.R.id.text1)) + + // Assert that: feed_view is shown + Assert.assertTrue("'feed_view' was not found!", solo!!.waitForView<View>(solo!! + .getView(course.labs.fragmentslab.R.id.feed_view))) + + // Click on ladygaga + solo!!.clickOnView(solo!!.getView(android.R.id.text1)) + + // Assert that: feed_view is shown + Assert.assertTrue("'Select a feed to view!' is not shown!", + solo!!.waitForView<View>(solo!! + .getView(course.labs.fragmentslab.R.id.feed_view))) + + // Assert that: 'the audience cheering!' is shown + Assert.assertTrue("'the audience cheering!' is not shown!", + solo!!.searchText("the audience cheering!")) + + // Click on msrebeccablack + solo!!.clickOnView(solo!!.getView(android.R.id.text1, 1)) + + // Assert that: feed_view is shown + Assert.assertTrue("'Select a feed to view!' is not shown!", + solo!!.waitForView<View>(solo!! + .getView(course.labs.fragmentslab.R.id.feed_view))) + + // Assert that: 'save me from school' is shown + Assert.assertTrue("'save me from school' is not shown!", + solo!!.searchText("save me from school")) + + // Click on taylorswift13 + solo!!.clickOnView(solo!!.getView(android.R.id.text1, 2)) + + // Assert that: feed_view is shown + Assert.assertTrue("'Select a feed to view!' is not shown!", + solo!!.waitForView<View>(solo!! + .getView(course.labs.fragmentslab.R.id.feed_view))) + + // Assert that: 'I love you guys so much' is shown + Assert.assertTrue("'I love you guys so much' is not shown!", + solo!!.searchText("I love you guys so much")) + + } +} \ No newline at end of file diff --git a/labs/Lab3_Fragments/app/src/main/AndroidManifest.xml b/labs/Lab3_Fragments/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..fe9fed876c5897c2618c8de87be987c1d135f273 --- /dev/null +++ b/labs/Lab3_Fragments/app/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="course.labs.fragmentslab" + android:versionCode="1" + android:versionName="1.0" > + + + <application + android:allowBackup="true" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/AppTheme" > + <activity + android:name="course.labs.fragmentslab.MainActivity" + android:label="@string/app_name" > + <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/Lab3_Fragments/app/src/main/java/course/labs/fragmentslab/FeedFragment.kt b/labs/Lab3_Fragments/app/src/main/java/course/labs/fragmentslab/FeedFragment.kt new file mode 100644 index 0000000000000000000000000000000000000000..f12553023326ee052367b09eaf79970fa2a837ed --- /dev/null +++ b/labs/Lab3_Fragments/app/src/main/java/course/labs/fragmentslab/FeedFragment.kt @@ -0,0 +1,50 @@ +package course.labs.fragmentslab + +import android.os.Bundle +import android.support.v4.app.Fragment +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView + +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 onActivityCreated(savedInstanceState: Bundle?) { + super.onActivityCreated(savedInstanceState) + + // Read in all Twitter feeds + if (null == feedFragmentData) { + + feedFragmentData = FeedFragmentData(activity) + + } + } + + + // Display Twitter feed for selected feed + + fun updateFeedDisplay(position: Int) { + + Log.i(TAG, "Entered updateFeedDisplay()") + + mTextView = view!!.findViewById<View>(R.id.feed_view) as TextView + mTextView!!.text = feedFragmentData!!.getFeed(position) + + } + + companion object { + private const val TAG = "Lab-Fragments" + } + +} diff --git a/labs/Lab3_Fragments/app/src/main/java/course/labs/fragmentslab/FeedFragmentData.kt b/labs/Lab3_Fragments/app/src/main/java/course/labs/fragmentslab/FeedFragmentData.kt new file mode 100644 index 0000000000000000000000000000000000000000..8167df7da83e5d3fab3545dcce3d349a4f6715a1 --- /dev/null +++ b/labs/Lab3_Fragments/app/src/main/java/course/labs/fragmentslab/FeedFragmentData.kt @@ -0,0 +1,109 @@ +package course.labs.fragmentslab + + +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) + } +} \ No newline at end of file diff --git a/labs/Lab3_Fragments/app/src/main/java/course/labs/fragmentslab/FriendsFragment.kt b/labs/Lab3_Fragments/app/src/main/java/course/labs/fragmentslab/FriendsFragment.kt new file mode 100644 index 0000000000000000000000000000000000000000..3e51d1cffb8b3fb1414501163e48c7286f2eff0b --- /dev/null +++ b/labs/Lab3_Fragments/app/src/main/java/course/labs/fragmentslab/FriendsFragment.kt @@ -0,0 +1,82 @@ +package course.labs.fragmentslab + +import android.content.Context +import android.os.Bundle +import android.support.v4.app.ListFragment +import android.util.Log +import android.view.View +import android.widget.ArrayAdapter +import android.widget.ListView + +class FriendsFragment : ListFragment() { + + private lateinit var mCallback: SelectionListener + + // If there is a FeedFragment, then the layout is two-pane + private val isInTwoPaneMode: Boolean + get() = activity.supportFragmentManager.findFragmentById(R.id.feed_frag) != null + + interface SelectionListener { + fun onItemSelected(position: Int) + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + // Set the list adapter for this ListFragment + listAdapter = ArrayAdapter(activity, 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") + } + + } + + // Note: ListFragments come with a default onCreateView() method. + // For other Fragments you'll normally implement this method. + // @Override + // public View onCreateView(LayoutInflater inflater, ViewGroup container, + // Bundle savedInstanceState) + + override fun onActivityCreated(savedInstanceState: Bundle?) { + super.onActivityCreated(savedInstanceState) + + Log.i(TAG, "Entered onActivityCreated()") + + // When using two-pane layout, configure the ListView to highlight the + // selected list item + + if (isInTwoPaneMode) { + listView.choiceMode = ListView.CHOICE_MODE_SINGLE + } + + } + + 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-Fragments" + } + +} diff --git a/labs/Lab3_Fragments/app/src/main/java/course/labs/fragmentslab/MainActivity.kt b/labs/Lab3_Fragments/app/src/main/java/course/labs/fragmentslab/MainActivity.kt new file mode 100644 index 0000000000000000000000000000000000000000..b0e8fb8bf2418b7b90956e8a526031fc76dea111 --- /dev/null +++ b/labs/Lab3_Fragments/app/src/main/java/course/labs/fragmentslab/MainActivity.kt @@ -0,0 +1,70 @@ +package course.labs.fragmentslab + +import android.os.Bundle +import android.support.v4.app.FragmentActivity +import android.util.Log +import android.view.View + +class MainActivity : FragmentActivity(), FriendsFragment.SelectionListener { + + private lateinit var mFriendsFragment: FriendsFragment + private var mFeedFragment: FeedFragment? = null + + // If there is no fragment_container ID, then the application is in + // two-pane mode + + private val isInTwoPaneMode: Boolean + get() = findViewById<View>(R.id.fragment_container) == null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.main_activity) + + // If the layout is single-pane, create the FriendsFragment + // and add it to the Activity + + if (!isInTwoPaneMode) { + + mFriendsFragment = FriendsFragment() + + //TODO 1 - add the FriendsFragment + + + // Otherwise, save a reference to the FeedFragment for later use + + + } + + } + + // Display selected Twitter feed + + override fun onItemSelected(position: Int) { + + Log.i(TAG, "Entered onItemSelected($position)") + + // If in single-pane mode, replace single visible Fragment + + if (!isInTwoPaneMode) { + + // If there is no FeedFragment instance, then create one + + if (mFeedFragment == null) + mFeedFragment = FeedFragment() + + //TODO 2 - replace the fragment_container with the FeedFragment + + + + } + + // Update Twitter feed display on FriendFragment + mFeedFragment?.updateFeedDisplay(position) + + } + + companion object { + private const val TAG = "Lab-Fragments" + } + +} diff --git a/labs/Lab3_Fragments/app/src/main/res/drawable-hdpi/ic_launcher.png b/labs/Lab3_Fragments/app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0e79b184fcf8cc47dede6d7ccde00d1a1e2d9c23 Binary files /dev/null and b/labs/Lab3_Fragments/app/src/main/res/drawable-hdpi/ic_launcher.png differ diff --git a/labs/Lab3_Fragments/app/src/main/res/drawable-ldpi/ic_launcher.png b/labs/Lab3_Fragments/app/src/main/res/drawable-ldpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ebfac7d78b9e17c113f734d10af74bd2b100beba Binary files /dev/null and b/labs/Lab3_Fragments/app/src/main/res/drawable-ldpi/ic_launcher.png differ diff --git a/labs/Lab3_Fragments/app/src/main/res/drawable-mdpi/ic_launcher.png b/labs/Lab3_Fragments/app/src/main/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1183441937efcae0151b75099bec444d034886e9 Binary files /dev/null and b/labs/Lab3_Fragments/app/src/main/res/drawable-mdpi/ic_launcher.png differ diff --git a/labs/Lab3_Fragments/app/src/main/res/drawable-xhdpi/ic_launcher.png b/labs/Lab3_Fragments/app/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..c8ab2a114716b712ec0c5122f9e9524afaa60b52 Binary files /dev/null and b/labs/Lab3_Fragments/app/src/main/res/drawable-xhdpi/ic_launcher.png differ diff --git a/labs/Lab3_Fragments/app/src/main/res/layout-large/main_activity.xml b/labs/Lab3_Fragments/app/src/main/res/layout-large/main_activity.xml new file mode 100644 index 0000000000000000000000000000000000000000..ab3db3073372a7c512949c0a969a837d33b5e8ff --- /dev/null +++ b/labs/Lab3_Fragments/app/src/main/res/layout-large/main_activity.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/frags" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="horizontal" + android:baselineAligned="false"> + + <fragment + android:id="@+id/friends_frag" + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="1" + class="course.labs.fragmentslab.FriendsFragment" /> + + <fragment + android:id="@+id/feed_frag" + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="3" + class="course.labs.fragmentslab.FeedFragment" /> + +</LinearLayout> \ No newline at end of file diff --git a/labs/Lab3_Fragments/app/src/main/res/layout/feed.xml b/labs/Lab3_Fragments/app/src/main/res/layout/feed.xml new file mode 100644 index 0000000000000000000000000000000000000000..6bd02692ff9a58b14c2806fa3138623d30a442c8 --- /dev/null +++ b/labs/Lab3_Fragments/app/src/main/res/layout/feed.xml @@ -0,0 +1,11 @@ +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" > + + <TextView + android:id="@+id/feed_view" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/greeting" /> + +</ScrollView> \ No newline at end of file diff --git a/labs/Lab3_Fragments/app/src/main/res/layout/main_activity.xml b/labs/Lab3_Fragments/app/src/main/res/layout/main_activity.xml new file mode 100644 index 0000000000000000000000000000000000000000..a9ee9c50e096ff73da7eaa006c8a44d75add7b28 --- /dev/null +++ b/labs/Lab3_Fragments/app/src/main/res/layout/main_activity.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/fragment_container" + android:layout_width="match_parent" + android:layout_height="match_parent" /> \ No newline at end of file diff --git a/labs/Lab3_Fragments/app/src/main/res/raw/ladygaga.txt b/labs/Lab3_Fragments/app/src/main/res/raw/ladygaga.txt new file mode 100644 index 0000000000000000000000000000000000000000..d3ee9f90638238efeff71c8f2355f6ebb3d23eec --- /dev/null +++ b/labs/Lab3_Fragments/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/Lab3_Fragments/app/src/main/res/raw/rebeccablack.txt b/labs/Lab3_Fragments/app/src/main/res/raw/rebeccablack.txt new file mode 100644 index 0000000000000000000000000000000000000000..5d50cc5744e304467831d8f0cd80aee42e3181dc --- /dev/null +++ b/labs/Lab3_Fragments/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/Lab3_Fragments/app/src/main/res/raw/taylorswift.txt b/labs/Lab3_Fragments/app/src/main/res/raw/taylorswift.txt new file mode 100644 index 0000000000000000000000000000000000000000..b74158e89b8281c8892570d27b193d237d2ad4ba --- /dev/null +++ b/labs/Lab3_Fragments/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/Lab3_Fragments/app/src/main/res/values-v11/styles.xml b/labs/Lab3_Fragments/app/src/main/res/values-v11/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..541752f6edf47a27cad70a23c00cc17aa4c84c08 --- /dev/null +++ b/labs/Lab3_Fragments/app/src/main/res/values-v11/styles.xml @@ -0,0 +1,11 @@ +<resources> + + <!-- + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> + <!-- API 11 theme customizations can go here. --> + </style> + +</resources> \ No newline at end of file diff --git a/labs/Lab3_Fragments/app/src/main/res/values-v14/styles.xml b/labs/Lab3_Fragments/app/src/main/res/values-v14/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..f20e01501dfde7d1f4cc9c29f85169ce57bc5846 --- /dev/null +++ b/labs/Lab3_Fragments/app/src/main/res/values-v14/styles.xml @@ -0,0 +1,12 @@ +<resources> + + <!-- + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> + <!-- API 14 theme customizations can go here. --> + </style> + +</resources> \ No newline at end of file diff --git a/labs/Lab3_Fragments/app/src/main/res/values/strings.xml b/labs/Lab3_Fragments/app/src/main/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..fc660cc181c0c399b5780486187fa0267914f352 --- /dev/null +++ b/labs/Lab3_Fragments/app/src/main/res/values/strings.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="app_name">FragmentsLab</string> + <string name="greeting">Select a feed to view!</string> + +</resources> \ No newline at end of file diff --git a/labs/Lab3_Fragments/app/src/main/res/values/styles.xml b/labs/Lab3_Fragments/app/src/main/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..4a10ca492dd2610011d3979b4dc551f471fa27ab --- /dev/null +++ b/labs/Lab3_Fragments/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/Lab3_Fragments/build.gradle b/labs/Lab3_Fragments/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..30abbc15080994316f7c9c46ed0d99a67b829906 --- /dev/null +++ b/labs/Lab3_Fragments/build.gradle @@ -0,0 +1,19 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + jcenter() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:4.0.1' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + jcenter() + google() + } +} diff --git a/labs/Lab3_Fragments/gradle/wrapper/gradle-wrapper.jar b/labs/Lab3_Fragments/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..13372aef5e24af05341d49695ee84e5f9b594659 Binary files /dev/null and b/labs/Lab3_Fragments/gradle/wrapper/gradle-wrapper.jar differ diff --git a/labs/Lab3_Fragments/gradle/wrapper/gradle-wrapper.properties b/labs/Lab3_Fragments/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..a67d0b953c7bc595106122a0fe0d5de00996912b --- /dev/null +++ b/labs/Lab3_Fragments/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Sep 16 09:26:51 EDT 2020 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip diff --git a/labs/Lab3_Fragments/gradlew b/labs/Lab3_Fragments/gradlew new file mode 100755 index 0000000000000000000000000000000000000000..9d82f78915133e1c35a6ea51252590fb38efac2f --- /dev/null +++ b/labs/Lab3_Fragments/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/Lab3_Fragments/gradlew.bat b/labs/Lab3_Fragments/gradlew.bat new file mode 100644 index 0000000000000000000000000000000000000000..8a0b282aa6885fb573c106b3551f7275c5f17e8e --- /dev/null +++ b/labs/Lab3_Fragments/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/Lab3_Fragments/settings.gradle b/labs/Lab3_Fragments/settings.gradle new file mode 100644 index 0000000000000000000000000000000000000000..e7b4def49cb53d9aa04228dd3edb14c9e635e003 --- /dev/null +++ b/labs/Lab3_Fragments/settings.gradle @@ -0,0 +1 @@ +include ':app' diff --git a/labs/Lab3_Permissions/.gitignore b/labs/Lab3_Permissions/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..ceff37eff0e621e8f96607f26a6bced4727fb5a5 --- /dev/null +++ b/labs/Lab3_Permissions/.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/Lab3_Permissions/Lab3_Permissions.pdf b/labs/Lab3_Permissions/Lab3_Permissions.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c6b7ec9ae16d280211bf8b3703c22b1452b445c5 Binary files /dev/null and b/labs/Lab3_Permissions/Lab3_Permissions.pdf differ diff --git a/labs/Lab3_Permissions/app/build.gradle b/labs/Lab3_Permissions/app/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..d17932dc56517f6ccd90d688528ac1775433766a --- /dev/null +++ b/labs/Lab3_Permissions/app/build.gradle @@ -0,0 +1,40 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' + +android { + compileSdkVersion 26 + buildToolsVersion '29.0.3' + + defaultConfig { + applicationId "course.labs.permissionslab" + minSdkVersion 21 + targetSdkVersion 26 + + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' + } + } +} + +dependencies { + androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.6.0' + androidTestImplementation 'com.android.support.test:rules:0.5' + androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1' + implementation 'com.android.support:support-annotations:26.0.0' + implementation 'com.android.support:support-v4:26.0.0' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} + +configurations.all { + resolutionStrategy.force 'com.android.support:support-annotations:26.0.0' +} +repositories { + mavenCentral() +} \ No newline at end of file diff --git a/labs/Lab3_Permissions/app/src/androidTest/java/course/labs/permissionslab/tests/PermissionEnforcementTest.kt b/labs/Lab3_Permissions/app/src/androidTest/java/course/labs/permissionslab/tests/PermissionEnforcementTest.kt new file mode 100644 index 0000000000000000000000000000000000000000..cf980fee7f888b69851a31ebf1a0016b254c1c87 --- /dev/null +++ b/labs/Lab3_Permissions/app/src/androidTest/java/course/labs/permissionslab/tests/PermissionEnforcementTest.kt @@ -0,0 +1,54 @@ +package course.labs.permissionslab.tests + +import android.content.ComponentName +import android.content.pm.ActivityInfo +import android.content.pm.PackageManager +import android.content.pm.PackageManager.NameNotFoundException +import android.test.ActivityInstrumentationTestCase2 +import junit.framework.Assert + + +import com.robotium.solo.Solo + +import course.labs.permissionslab.ActivityLoaderActivity + +class PermissionEnforcementTest : ActivityInstrumentationTestCase2<ActivityLoaderActivity>(ActivityLoaderActivity::class.java) { + private var solo: Solo? = null + + @Throws(Exception::class) + public override fun setUp() { + solo = Solo(instrumentation) + activity + } + + @Throws(Exception::class) + public override fun tearDown() { + solo!!.finishOpenedActivities() + } + + // Executes PermissionEnforcementTest + fun testRun() { + + // =============== Section One ================== + solo!!.waitForActivity( + course.labs.permissionslab.ActivityLoaderActivity::class.java, 2000) + + val pm = activity.packageManager + try { + val activityInfo = pm.getActivityInfo(ComponentName( + "course.labs.dangerousapp", + "course.labs.dangerousapp.DangerousActivity"), 0) + Assert.assertTrue( + "PermissionEnforcementTest:" + + "Section One:" + + "course.labs.permissions.DANGEROUS_ACTIVITY_PERM not enforced by DangerousActivity", + null != activityInfo && null != activityInfo.permission + && activityInfo.permission == "course.labs.permissions.DANGEROUS_ACTIVITY_PERM") + } catch (e: NameNotFoundException) { + Assert.fail("PermissionEnforcementTest:" + + "Section One:" + + "DangerousActivity not found") + } + + } +} diff --git a/labs/Lab3_Permissions/app/src/androidTest/java/course/labs/permissionslab/tests/TestGoToDangerousApp.kt b/labs/Lab3_Permissions/app/src/androidTest/java/course/labs/permissionslab/tests/TestGoToDangerousApp.kt new file mode 100644 index 0000000000000000000000000000000000000000..834c45a6405b398c19d997328f0e062710484f05 --- /dev/null +++ b/labs/Lab3_Permissions/app/src/androidTest/java/course/labs/permissionslab/tests/TestGoToDangerousApp.kt @@ -0,0 +1,82 @@ +package course.labs.permissionslab.tests + +import android.content.Context +import android.content.Intent +import android.support.test.InstrumentationRegistry +import android.support.test.filters.SdkSuppress +import android.support.test.runner.AndroidJUnit4 +import android.support.test.uiautomator.By +import android.support.test.uiautomator.UiDevice +import android.support.test.uiautomator.UiObject2 +import android.support.test.uiautomator.Until + +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +import java.util.regex.Pattern + +import org.hamcrest.CoreMatchers.`is` +import org.hamcrest.CoreMatchers.notNullValue +import org.junit.Assert.assertNotNull +import org.junit.Assert.assertThat +import org.junit.Assert.fail + +@RunWith(AndroidJUnit4::class) +@SdkSuppress(minSdkVersion = 21) +class TestGoToDangerousApp { + private var mDevice: UiDevice? = null + @Before + fun startMainActivityFromHomeScreen() { + // Initialize UiDevice instance + mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) + + // Start from the home screen + mDevice!!.pressHome() + + // Wait for launcher + val launcherPackage = mDevice!!.launcherPackageName + assertThat(launcherPackage, `is`(notNullValue())) + mDevice!!.wait(Until.hasObject(By.pkg(launcherPackage).depth(0)), + LAUNCH_TIMEOUT.toLong()) + + // Launch the app + val context = InstrumentationRegistry.getContext() + val intent = context.packageManager + .getLaunchIntentForPackage(BASIC_SAMPLE_PACKAGE) + + if (null == intent) fail() + + // Clear out any previous instances + intent!!.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK) + context.startActivity(intent) + + // Wait for the app to appear + mDevice!!.wait(Until.hasObject(By.pkg(BASIC_SAMPLE_PACKAGE).depth(0)), + LAUNCH_TIMEOUT.toLong()) + //click on Phone Status Activity + mDevice!!.findObject(By.text("PhoneStatus Activity")).click() + + val goToDangerousAppActivity = mDevice!!.wait(Until.findObject(By.text("Go To DangerousActivity")), 2000) + assertNotNull("Phone Status Activity Didn't start", goToDangerousAppActivity) + goToDangerousAppActivity.click() + } + + @Test + fun testPermissionRequested() { + val startDangerousApp = mDevice!!.wait(Until.findObject(By.text("Start Dangerous Activity")), 2000) + assertNotNull("GoToDangerousActivity Didn't start", startDangerousApp) + startDangerousApp.click() + // + val PermissionDialog = mDevice!!.wait(Until.findObject(By.text("ALLOW")), 2000) + PermissionDialog?.click() + val phoneNumber = mDevice!!.wait(Until.findObject(By.text("You have opened a dangerous activity")), 5000) + assertNotNull(phoneNumber) + } + + companion object { + + private val LAUNCH_TIMEOUT = 5000 + private val BASIC_SAMPLE_PACKAGE = "course.labs.permissionslab" + } +} diff --git a/labs/Lab3_Permissions/app/src/androidTest/java/course/labs/permissionslab/tests/TestPhoneStatus.kt b/labs/Lab3_Permissions/app/src/androidTest/java/course/labs/permissionslab/tests/TestPhoneStatus.kt new file mode 100644 index 0000000000000000000000000000000000000000..0abcfa479e0606f047d5d2f3bed217691b07003a --- /dev/null +++ b/labs/Lab3_Permissions/app/src/androidTest/java/course/labs/permissionslab/tests/TestPhoneStatus.kt @@ -0,0 +1,82 @@ +package course.labs.permissionslab.tests + +import android.content.Context +import android.content.Intent +import android.support.test.InstrumentationRegistry +import android.support.test.filters.SdkSuppress +import android.support.test.runner.AndroidJUnit4 +import android.support.test.uiautomator.By +import android.support.test.uiautomator.UiDevice +import android.support.test.uiautomator.UiObject2 +import android.support.test.uiautomator.Until +import android.test.ActivityInstrumentationTestCase2 + +import com.robotium.solo.Solo + +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +import java.util.regex.Pattern + +import org.hamcrest.CoreMatchers.`is` +import org.hamcrest.CoreMatchers.notNullValue +import org.junit.Assert.assertNotNull +import org.junit.Assert.assertThat +import org.junit.Assert.fail + +@RunWith(AndroidJUnit4::class) +@SdkSuppress(minSdkVersion = 21) +class TestPhoneStatus { + private var mDevice: UiDevice? = null + @Before + fun startMainActivityFromHomeScreen() { + // Initialize UiDevice instance + mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) + + // Start from the home screen + mDevice!!.pressHome() + + // Wait for launcher + val launcherPackage = mDevice!!.launcherPackageName + assertThat(launcherPackage, `is`(notNullValue())) + mDevice!!.wait(Until.hasObject(By.pkg(launcherPackage).depth(0)), + LAUNCH_TIMEOUT.toLong()) + + // Launch the app + val context = InstrumentationRegistry.getContext() + val intent = context.packageManager + .getLaunchIntentForPackage(BASIC_SAMPLE_PACKAGE) + + if (null == intent) fail() + + // Clear out any previous instances + intent!!.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK) + context.startActivity(intent) + + // Wait for the app to appear + mDevice!!.wait(Until.hasObject(By.pkg(BASIC_SAMPLE_PACKAGE).depth(0)), + LAUNCH_TIMEOUT.toLong()) + //click on Phone Status Activity + mDevice!!.findObject(By.text("PhoneStatus Activity")).click() + + val phoneStatusActivity = mDevice!!.wait(Until.findObject(By.text("Get Phone Number")), 2000) + assertNotNull("Phone Status Activity Didn't start", phoneStatusActivity) + phoneStatusActivity.click() + } + + @Test + fun testPermissionRequested() { + val PermissionDialog = mDevice!!.wait(Until.findObject(By.text("ALLOW")), 2000) + PermissionDialog?.click() + val phonePattern = Pattern.compile("Phone Number: \\+?\\d+") + val phoneNumber = mDevice!!.wait(Until.findObject(By.text(phonePattern)), 5000) + assertNotNull(phoneNumber) + } + + companion object { + + private val LAUNCH_TIMEOUT = 5000 + private val BASIC_SAMPLE_PACKAGE = "course.labs.permissionslab" + } +} diff --git a/labs/Lab3_Permissions/app/src/androidTest/res/.gitkeep b/labs/Lab3_Permissions/app/src/androidTest/res/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/labs/Lab3_Permissions/app/src/main/AndroidManifest.xml b/labs/Lab3_Permissions/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..8f681da9651d9c81451bbb7add7dfb788e896c49 --- /dev/null +++ b/labs/Lab3_Permissions/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="course.labs.permissionslab" + android:versionCode="1" + android:versionName="1.0" > + + <!-- TODO add uses permission elements --> + + <application + android:allowBackup="true" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/AppTheme" > + <activity + android:name=".ActivityLoaderActivity" + android:label="@string/title_main" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + <activity + android:name=".PhoneStatusActivity" + android:label="@string/title_permissions" > + </activity> + <activity + android:name=".GoToDangerousActivity" + android:label="@string/title_activity_customization" > + </activity> + </application> + +</manifest> \ No newline at end of file diff --git a/labs/Lab3_Permissions/app/src/main/java/course/labs/permissionslab/ActivityLoaderActivity.kt b/labs/Lab3_Permissions/app/src/main/java/course/labs/permissionslab/ActivityLoaderActivity.kt new file mode 100644 index 0000000000000000000000000000000000000000..ad0ed3f92eb1f1211c13db42b19260a3350eb883 --- /dev/null +++ b/labs/Lab3_Permissions/app/src/main/java/course/labs/permissionslab/ActivityLoaderActivity.kt @@ -0,0 +1,30 @@ +package course.labs.permissionslab + +import android.app.Activity +import android.content.Intent +import android.os.Bundle +import android.util.Log +import android.view.View +import android.view.View.OnClickListener +import android.widget.Button + +class ActivityLoaderActivity : Activity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_loader_activity) + + val startPhoneStatusButton = findViewById<View>(R.id.start_phone_status_button) as Button + // TODO - Add onClickListener to the startPhoneStatusButton to call startPhoneStatusActivity() + } + + private fun startPhoneStatusActivity() { + Log.i(TAG, "Entered startPhoneStatusActivity()") + + // TODO - Start the PhoneStatusActivity + } + + companion object { + + private val TAG = "Lab-Permissions" + } +} diff --git a/labs/Lab3_Permissions/app/src/main/java/course/labs/permissionslab/GoToDangerousActivity.kt b/labs/Lab3_Permissions/app/src/main/java/course/labs/permissionslab/GoToDangerousActivity.kt new file mode 100644 index 0000000000000000000000000000000000000000..fa66e925dce74a0582f8921cda70c0f372f88cf4 --- /dev/null +++ b/labs/Lab3_Permissions/app/src/main/java/course/labs/permissionslab/GoToDangerousActivity.kt @@ -0,0 +1,66 @@ +package course.labs.permissionslab + +import android.Manifest +import android.app.Activity +import android.content.Intent +import android.content.pm.PackageManager +import android.os.Build +import android.os.Bundle +import android.support.v4.app.ActivityCompat +import android.support.v4.content.ContextCompat +import android.util.Log +import android.view.View +import android.view.View.OnClickListener +import android.widget.Button + +class GoToDangerousActivity : Activity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.go_to_dangerous_activity) + + // TODO - Set startDangerousActivityButton value to the button with id R.id.start_dangerous_activity_button + + // TODO - Add onClickListener to the startDangerousActivityButton to call startDangerousActivity() + + + } + + override fun onRequestPermissionsResult(requestCode: Int, + permissions: Array<String>, grantResults: IntArray) { + when (requestCode) { + MY_PERMISSIONS_REQUEST_DANGEROUS_ACTIVITY -> { + // If request is cancelled, the result arrays are empty. + if (grantResults.size > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + + startDangerousActivity() + + } else { + + Log.i(TAG, "Dangerous App won't open --- Permission was not granted") + + } + return + } + }// other 'case' lines to check for other + // permissions this app might request + } + + private fun startDangerousActivity() { + + Log.i(TAG, "Entered startDangerousActivity()") + + startActivity(Intent(DANGEROUS_ACTIVITY_ACTION)) + + + } + + companion object { + + private val TAG = "Lab-Permissions" + val MY_PERMISSIONS_REQUEST_DANGEROUS_ACTIVITY = 2 + + private val DANGEROUS_ACTIVITY_ACTION = "course.labs.permissions.DANGEROUS_ACTIVITY" + } + +} diff --git a/labs/Lab3_Permissions/app/src/main/java/course/labs/permissionslab/PhoneStatusActivity.kt b/labs/Lab3_Permissions/app/src/main/java/course/labs/permissionslab/PhoneStatusActivity.kt new file mode 100644 index 0000000000000000000000000000000000000000..f77e6c8dbe756c7e53e96c513786ff6496bd27e1 --- /dev/null +++ b/labs/Lab3_Permissions/app/src/main/java/course/labs/permissionslab/PhoneStatusActivity.kt @@ -0,0 +1,80 @@ +package course.labs.permissionslab + +import android.Manifest +import android.app.Activity +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager +import android.os.Build +import android.os.Bundle +import android.support.v4.app.ActivityCompat +import android.support.v4.content.ContextCompat +import android.telephony.TelephonyManager +import android.util.Log +import android.view.View +import android.view.View.OnClickListener +import android.widget.Button +import android.widget.TextView + +class PhoneStatusActivity : Activity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.phone_status_activity) + + val getPhoneNumButton = findViewById<View>(R.id.get_phone_number_button) as Button + // TODO - Add onClickListener to the getPhoneNumButton to call loadPhoneNumber() + + + val goToDangerousActivityButton = findViewById<View>(R.id.go_to_dangerous_activity_button) as Button + // TODO - Add onClickListener to the goToDangerousActivityButton to call startGoToDangerousActivity() + + } + + private fun loadPhoneNumber() { + + val tMgr = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager + val mPhoneNumber = tMgr.line1Number + + val box = findViewById<View>(R.id.text) as TextView + box.text = "Phone Number: $mPhoneNumber" + + Log.i(TAG, "Phone Number loaded") + } + + override fun onRequestPermissionsResult(requestCode: Int, + permissions: Array<String>, grantResults: IntArray) { + when (requestCode) { + MY_PERMISSIONS_REQUEST_READ_PHONE_STATE -> { + // If request is cancelled, the result arrays are empty. + if (grantResults.size > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + + loadPhoneNumber() + + } else { + + Log.i(TAG, "Phone Number was not loaded --- Permission was not granted") + + } + return + } + }// other 'case' lines to check for other + // permissions this app might request + } + + private fun startGoToDangerousActivity() { + + Log.i(TAG, "Entered startGoToDangerousActivity()") + + // TODO - Start the GoToDangerousActivity + + + } + + companion object { + + private val TAG = "Lab-Permissions" + val MY_PERMISSIONS_REQUEST_READ_PHONE_STATE = 1 + } + +} diff --git a/labs/Lab3_Permissions/app/src/main/res/drawable-hdpi/ic_launcher.png b/labs/Lab3_Permissions/app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0e79b184fcf8cc47dede6d7ccde00d1a1e2d9c23 Binary files /dev/null and b/labs/Lab3_Permissions/app/src/main/res/drawable-hdpi/ic_launcher.png differ diff --git a/labs/Lab3_Permissions/app/src/main/res/drawable-ldpi/ic_launcher.png b/labs/Lab3_Permissions/app/src/main/res/drawable-ldpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ebfac7d78b9e17c113f734d10af74bd2b100beba Binary files /dev/null and b/labs/Lab3_Permissions/app/src/main/res/drawable-ldpi/ic_launcher.png differ diff --git a/labs/Lab3_Permissions/app/src/main/res/drawable-mdpi/ic_launcher.png b/labs/Lab3_Permissions/app/src/main/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1183441937efcae0151b75099bec444d034886e9 Binary files /dev/null and b/labs/Lab3_Permissions/app/src/main/res/drawable-mdpi/ic_launcher.png differ diff --git a/labs/Lab3_Permissions/app/src/main/res/drawable-xhdpi/ic_launcher.png b/labs/Lab3_Permissions/app/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..c8ab2a114716b712ec0c5122f9e9524afaa60b52 Binary files /dev/null and b/labs/Lab3_Permissions/app/src/main/res/drawable-xhdpi/ic_launcher.png differ diff --git a/labs/Lab3_Permissions/app/src/main/res/layout/activity_loader_activity.xml b/labs/Lab3_Permissions/app/src/main/res/layout/activity_loader_activity.xml new file mode 100644 index 0000000000000000000000000000000000000000..0a81a63524d1c376e9df6ed89732b114089bdb4d --- /dev/null +++ b/labs/Lab3_Permissions/app/src/main/res/layout/activity_loader_activity.xml @@ -0,0 +1,14 @@ +<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" + tools:context=".ActivityLoaderActivity" > + + <Button + android:id="@+id/start_phone_status_button" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/main_button3" /> + +</LinearLayout> \ No newline at end of file diff --git a/labs/Lab3_Permissions/app/src/main/res/layout/go_to_dangerous_activity.xml b/labs/Lab3_Permissions/app/src/main/res/layout/go_to_dangerous_activity.xml new file mode 100644 index 0000000000000000000000000000000000000000..a657661650296aa375fc0528641fd09cda48518d --- /dev/null +++ b/labs/Lab3_Permissions/app/src/main/res/layout/go_to_dangerous_activity.xml @@ -0,0 +1,18 @@ +<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" > + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/cust_message" /> + + <Button + android:id="@+id/start_dangerous_activity_button" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/cust_button1" /> + +</LinearLayout> \ No newline at end of file diff --git a/labs/Lab3_Permissions/app/src/main/res/layout/phone_status_activity.xml b/labs/Lab3_Permissions/app/src/main/res/layout/phone_status_activity.xml new file mode 100644 index 0000000000000000000000000000000000000000..eed6220b60a26af0f292f36d492f90e238da2296 --- /dev/null +++ b/labs/Lab3_Permissions/app/src/main/res/layout/phone_status_activity.xml @@ -0,0 +1,26 @@ +<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" > + + <TextView + android:id="@+id/text" + android:layout_width="match_parent" + android:layout_height="250dp" + android:maxHeight="250dp" + android:text="@string/place_holder" /> + + <Button + android:id="@+id/get_phone_number_button" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/perms_button1" /> + + <Button + android:id="@+id/go_to_dangerous_activity_button" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/perms_button2" /> + +</LinearLayout> \ No newline at end of file diff --git a/labs/Lab3_Permissions/app/src/main/res/values-v11/styles.xml b/labs/Lab3_Permissions/app/src/main/res/values-v11/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..541752f6edf47a27cad70a23c00cc17aa4c84c08 --- /dev/null +++ b/labs/Lab3_Permissions/app/src/main/res/values-v11/styles.xml @@ -0,0 +1,11 @@ +<resources> + + <!-- + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> + <!-- API 11 theme customizations can go here. --> + </style> + +</resources> \ No newline at end of file diff --git a/labs/Lab3_Permissions/app/src/main/res/values-v14/styles.xml b/labs/Lab3_Permissions/app/src/main/res/values-v14/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..f20e01501dfde7d1f4cc9c29f85169ce57bc5846 --- /dev/null +++ b/labs/Lab3_Permissions/app/src/main/res/values-v14/styles.xml @@ -0,0 +1,12 @@ +<resources> + + <!-- + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> + <!-- API 14 theme customizations can go here. --> + </style> + +</resources> \ No newline at end of file diff --git a/labs/Lab3_Permissions/app/src/main/res/values/strings.xml b/labs/Lab3_Permissions/app/src/main/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..f0d33c4bc41a1ad017eb44c0e53a297be981f34d --- /dev/null +++ b/labs/Lab3_Permissions/app/src/main/res/values/strings.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="app_name">PermissionsLab</string> + <string name="title_main">PermissionsLab</string> + <string name="main_button3">PhoneStatus Activity</string> + <string name="title_permissions">Permissions</string> + <string name="perms_button1">Get Phone Number</string> + <string name="perms_button2">Go To DangerousActivity</string> + <string name="place_holder">Phone Number Goes Here</string> + <string name="title_activity_customization">Customization</string> + <string name="cust_button1">Start Dangerous Activity</string> + <string name="cust_message">This button will load a Dangerous Level activity</string> + +</resources> \ No newline at end of file diff --git a/labs/Lab3_Permissions/app/src/main/res/values/styles.xml b/labs/Lab3_Permissions/app/src/main/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..4a10ca492dd2610011d3979b4dc551f471fa27ab --- /dev/null +++ b/labs/Lab3_Permissions/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/Lab3_Permissions/build.gradle b/labs/Lab3_Permissions/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..392d96c5e4deeaa749c13d3d9235b58bea5890a6 --- /dev/null +++ b/labs/Lab3_Permissions/build.gradle @@ -0,0 +1,21 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + jcenter() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:4.0.1' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + jcenter() + maven { + url "https://maven.google.com" + } + } +} diff --git a/labs/Lab3_Permissions/gradle/wrapper/gradle-wrapper.jar b/labs/Lab3_Permissions/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..13372aef5e24af05341d49695ee84e5f9b594659 Binary files /dev/null and b/labs/Lab3_Permissions/gradle/wrapper/gradle-wrapper.jar differ diff --git a/labs/Lab3_Permissions/gradle/wrapper/gradle-wrapper.properties b/labs/Lab3_Permissions/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..80efa02daddd187719a03a7fce6b6919fb165742 --- /dev/null +++ b/labs/Lab3_Permissions/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue Sep 15 20:44:39 EDT 2020 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip diff --git a/labs/Lab3_Permissions/gradlew b/labs/Lab3_Permissions/gradlew new file mode 100755 index 0000000000000000000000000000000000000000..9d82f78915133e1c35a6ea51252590fb38efac2f --- /dev/null +++ b/labs/Lab3_Permissions/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/Lab3_Permissions/gradlew.bat b/labs/Lab3_Permissions/gradlew.bat new file mode 100644 index 0000000000000000000000000000000000000000..8a0b282aa6885fb573c106b3551f7275c5f17e8e --- /dev/null +++ b/labs/Lab3_Permissions/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/Lab3_Permissions/settings.gradle b/labs/Lab3_Permissions/settings.gradle new file mode 100644 index 0000000000000000000000000000000000000000..e7b4def49cb53d9aa04228dd3edb14c9e635e003 --- /dev/null +++ b/labs/Lab3_Permissions/settings.gradle @@ -0,0 +1 @@ +include ':app'