diff --git a/Labs/Lab4_Fragments/.gitignore b/Labs/Lab4_Fragments/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..ceff37eff0e621e8f96607f26a6bced4727fb5a5 --- /dev/null +++ b/Labs/Lab4_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/Lab4_Fragments/FragmentsLabPhone.mp4 b/Labs/Lab4_Fragments/FragmentsLabPhone.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..9b6d24735e276fd27cb597e0a4a9d18d7a2b7447 Binary files /dev/null and b/Labs/Lab4_Fragments/FragmentsLabPhone.mp4 differ diff --git a/Labs/Lab4_Fragments/FragmentsLabTablet.mp4 b/Labs/Lab4_Fragments/FragmentsLabTablet.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..2a33a4eddfb1f07df32e1fcf06df90a718bced5b Binary files /dev/null and b/Labs/Lab4_Fragments/FragmentsLabTablet.mp4 differ diff --git a/Labs/Lab4_Fragments/Lab-Fragments.docx b/Labs/Lab4_Fragments/Lab-Fragments.docx new file mode 100644 index 0000000000000000000000000000000000000000..cb2afdd8cbe61f4a0df3d0509dce1e94a829d52e Binary files /dev/null and b/Labs/Lab4_Fragments/Lab-Fragments.docx differ diff --git a/Labs/Lab4_Fragments/Lab-Fragments.pdf b/Labs/Lab4_Fragments/Lab-Fragments.pdf new file mode 100644 index 0000000000000000000000000000000000000000..76772d20536395110307d4b692fcd389040d9984 Binary files /dev/null and b/Labs/Lab4_Fragments/Lab-Fragments.pdf differ diff --git a/Labs/Lab4_Fragments/app/build.gradle b/Labs/Lab4_Fragments/app/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..8bb4a9f6f10aea44a6704d7ab0141a67ed6f8938 --- /dev/null +++ b/Labs/Lab4_Fragments/app/build.gradle @@ -0,0 +1,42 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + + +android { + compileSdkVersion 31 + + defaultConfig { + applicationId "course.labs.fragmentslab" + minSdkVersion 26 + targetSdkVersion 31 + + testApplicationId "course.labs.fragmentslab.test" + testInstrumentationRunner "android.test.InstrumentationTestRunner" + testInstrumentationRunner 'androidx.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.3' + androidTestImplementation 'androidx.test:rules:1.4.1-alpha04' + androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0' + implementation 'com.android.support:support-annotations:28.0.0' + implementation 'androidx.annotation:annotation:1.3.0' + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0-alpha04' + androidTestImplementation 'androidx.test:rules:1.4.1-alpha04' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0-alpha04' +} +repositories { + mavenCentral() + google() +} diff --git a/Labs/Lab4_Fragments/app/src/androidTest/java/course/labs/fragmentslab/PhoneTestAll.kt b/Labs/Lab4_Fragments/app/src/androidTest/java/course/labs/fragmentslab/PhoneTestAll.kt new file mode 100644 index 0000000000000000000000000000000000000000..1d96c0962d7223b03a3e6c4c292391f8d4ad4d84 --- /dev/null +++ b/Labs/Lab4_Fragments/app/src/androidTest/java/course/labs/fragmentslab/PhoneTestAll.kt @@ -0,0 +1,189 @@ +package course.labs.fragmentslab + + +import android.view.View +import android.view.ViewGroup +import androidx.test.espresso.Espresso.* +import androidx.test.espresso.action.ViewActions.click +import androidx.test.espresso.assertion.ViewAssertions.matches +import androidx.test.espresso.matcher.ViewMatchers.* +import androidx.test.filters.LargeTest +import androidx.test.rule.ActivityTestRule +import androidx.test.runner.AndroidJUnit4 +import org.hamcrest.Description +import org.hamcrest.Matcher +import org.hamcrest.Matchers.* +import org.hamcrest.TypeSafeMatcher +import org.hamcrest.core.IsInstanceOf +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +@LargeTest +@RunWith(AndroidJUnit4::class) +class PhoneTestAll { + + @Rule + @JvmField + var mActivityTestRule = ActivityTestRule(MainActivity::class.java) + + @Test + fun phoneTestAll() { + val textView = onView( + allOf( + withId(android.R.id.text1), withText("ladygaga"), + withParent( + allOf( + withId(android.R.id.list), + withParent(IsInstanceOf.instanceOf(android.widget.FrameLayout::class.java)) + ) + ), + isDisplayed() + ) + ) + textView.check(matches(withText("ladygaga"))) + + val textView2 = onView( + allOf( + withId(android.R.id.text1), withText("msrebeccablack"), + withParent( + allOf( + withId(android.R.id.list), + withParent(IsInstanceOf.instanceOf(android.widget.FrameLayout::class.java)) + ) + ), + isDisplayed() + ) + ) + textView2.check(matches(withText("msrebeccablack"))) + + val textView3 = onView( + allOf( + withId(android.R.id.text1), withText("taylorswift13"), + withParent( + allOf( + withId(android.R.id.list), + withParent(IsInstanceOf.instanceOf(android.widget.FrameLayout::class.java)) + ) + ), + isDisplayed() + ) + ) + textView3.check(matches(withText("taylorswift13"))) + + + val textView5 = onData(anything()) + .inAdapterView( + allOf( + withId(android.R.id.list), + childAtPosition( + withClassName(`is`("android.widget.FrameLayout")), + 1 + ) + ) + ) + .atPosition(0) + textView5.perform(click()) + + val textView6 = onView( + allOf( + withId(R.id.feed_view), withText( + //"Lady Gaga - Go to http://t.co/W2NqZiTtOo to see @Terry_World Terry Richardson's photos of me getting ready for the show!\n\nLady Gaga - 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\n\nLady Gaga - @TrollMarkus I felt so alive! All I remember is the audience cheering! I could barely hear! Hands in the air, smiles & flashes everywhere!\n\nLady Gaga - @gabicorradin30 breathing\n\nLady Gaga - That is correct. RT @dope_cinema: only @LadyGaga would purposely put booing in her performance hahah\n\nLady Gaga - @RobbyRizl it was a canvas, and I AM the canvas during this performance\n\nLady Gaga - RT @leonardo_bv: @ladygaga The choreography was perfect, mimetizing each era, and the booing during Born This Way era was such a great stat�\n\nLady Gaga - @LiamCalderone I wrote it special for this performance!\n\nLady Gaga - RT @Born2BeBrave: @ladygaga competition has no place in music, if people want competition they can watch football. Music is about art and e�\n\nLady Gaga - @BadKid_Earthfan aisle 5\n\nLady Gaga - @vuittonbrunette everyone always asks why? Why did she do this? Why did she do that? My answer: For the Applause!\n\nLady Gaga - @WonderBoyxGAGA for the fame monster! yellow wig from the telephone video and monsterball!\n\nLady Gaga - So what did monsters think of my Vma performance? Stay focused on your greatest competition: yourself! #SnatchYourOwnWeave\n\n" + "Lady Gaga - Go to http://t.co/W2NqZiTtOo to see @Terry_World Terry Richardson's photos of me getting ready for the show!\n\nLady Gaga - 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\n\nLady Gaga - @TrollMarkus I felt so alive! All I remember is the audience cheering! I could barely hear! Hands in the air, smiles & flashes everywhere!\n\nLady Gaga - @gabicorradin30 breathing\n\nLady Gaga - That is correct. RT @dope_cinema: only @LadyGaga would purposely put booing in her performance hahah\n\nLady Gaga - @RobbyRizl it was a canvas, and I AM the canvas during this performance\n\nLady Gaga - RT @leonardo_bv: @ladygaga The choreography was perfect, mimetizing each era, and the booing during Born This Way era was such a great stat…\n\nLady Gaga - @LiamCalderone I wrote it special for this performance!\n\nLady Gaga - RT @Born2BeBrave: @ladygaga competition has no place in music, if people want competition they can watch football. Music is about art and e…\n\nLady Gaga - @BadKid_Earthfan aisle 5\n\nLady Gaga - @vuittonbrunette everyone always asks why? Why did she do this? Why did she do that? My answer: For the Applause!\n\nLady Gaga - @WonderBoyxGAGA for the fame monster! yellow wig from the telephone video and monsterball!\n\nLady Gaga - So what did monsters think of my Vma performance? Stay focused on your greatest competition: yourself! #SnatchYourOwnWeave\n\n" + + ), + withParent(withParent(withId(R.id.fragment_container))), + isDisplayed() + ) + ) + textView6.check( + matches( + withText( + containsString("Lady Gaga - Go to http://t.co/W2NqZiTtOo to see @Terry_World Terry Richardson's photos of me getting ready for the show!") // \n\nLady Gaga - 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\n\nLady Gaga - @TrollMarkus I felt so alive! All I remember is the audience cheering! I could barely hear! Hands in the air, smiles & flashes everywhere!\n\nLady Gaga - @gabicorradin30 breathing\n\nLady Gaga - That is correct. RT @dope_cinema: only @LadyGaga would purposely put booing in her performance hahah\n\nLady Gaga - @RobbyRizl it was a canvas, and I AM the canvas during this performance\n\nLady Gaga - RT @leonardo_bv: @ladygaga The choreography was perfect, mimetizing each era, and the booing during Born This Way era was such a great stat�\n\nLady Gaga - @LiamCalderone I wrote it special for this performance!\n\nLady Gaga - RT @Born2BeBrave: @ladygaga competition has no place in music, if people want competition they can watch football. Music is about art and e�\n\nLady Gaga - @BadKid_Earthfan aisle 5\n\nLady Gaga - @vuittonbrunette everyone always asks why? Why did she do this? Why did she do that? My answer: For the Applause!\n\nLady Gaga - @WonderBoyxGAGA for the fame monster! yellow wig from the telephone video and monsterball!\n\nLady Gaga - So what did monsters think of my Vma performance? Stay focused on your greatest competition: yourself! #SnatchYourOwnWeave\n\n" + ) + ) + ) + + pressBack() + + val textView7 = onData(anything()) + .inAdapterView( + allOf( + withId(android.R.id.list), + childAtPosition( + withClassName(`is`("android.widget.FrameLayout")), + 1 + ) + ) + ) + .atPosition(1) + textView7.perform(click()) + + val textView8 = onView( + allOf( + withId(R.id.feed_view), withText( + "Rebecca Black - @JuanDirection_4\n\nRebecca Black - so someone wrote this on my desk http://t.co/nR7TMzhe31\n\nRebecca Black - @maddislifee DONT TELL ME WHAT TO DO MADDI\n\nRebecca Black - I liked a @YouTube video http://t.co/ij6BlYiu9a CAMP TAKOTA DAY 11\n\nRebecca Black - so tired someone save me from school\n\nRebecca Black - @idkgrapes yep lol\n\nRebecca Black - @TaliaCBrown yep\n\nRebecca Black - shout out to my sass at the 2011 vmas #throwback http://t.co/fgk6TWyJ2j\n\nRebecca Black - @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.\n\nRebecca Black - @MrBlahargith it's my brothers birthday!\n\nRebecca Black - 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!! :')\n\nRebecca Black - @sarahmweyand @taylorswift13 WAIT WHAT\n\nRebecca Black - 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\n\nRebecca Black - selfieeeeee with the birthday boy http://t.co/oWfdWegwNr\n\n" + ), + withParent(withParent(withId(R.id.fragment_container))), + isDisplayed() + ) + ) + textView8.check( + matches( + withText( + containsString("Rebecca Black - so someone wrote this on my desk http://t.co/nR7TMzhe31") + ) + ) + ) + + pressBack() + + val textView9 = onData(anything()) + .inAdapterView( + allOf( + withId(android.R.id.list), + childAtPosition( + withClassName(`is`("android.widget.FrameLayout")), + 1 + ) + ) + ) + .atPosition(2) + textView9.perform(click()) + + val textView10 = onView( + allOf( + withId(R.id.feed_view), withText( + containsString("Headed to the VMAs") + ), + withParent(withParent(withId(R.id.fragment_container))), + isDisplayed() + ) + ) + textView10.check( + matches( + withText( + containsString("Taylor Swift - I love you guys so much.") //\n\nTaylor Swift - Headed to the VMAs. So. Excited.\n\nTaylor Swift - RT @markvillaver: Taylor Swift & Jennifer Lopez - Jenny from the Block - RED Tour - L.A. Staples Center Sat 8/24/2013 http://t.co/WUtebAqJk�\n\nTaylor Swift - RT @JLo: @taylorswift13 had so much fun with you tonight!!! #RedTourLA #jennyfromtheblock #hairbrushsongs\n\nTaylor Swift - Sang Jenny From the Block with @JLo tonight at Staples Center. STILL FANGIRLING OUT ABOUT IT.\n\nTaylor Swift - RT @JLo: #Red!!! @taylorswift13 @ STAPLES Center http://t.co/iVbun7jXtg\n\nTaylor Swift - Our last show in LA is tonight. Can't wait to see what's in store......\n\nTaylor Swift - RT @siananderson: List of things I was put on this earth to do - this http://t.co/7x4NjvmyhG\n\nTaylor Swift - Now I've seen it through, and now I know the truth... That anything could happen. http://t.co/B1V8G55MJM\n\nTaylor Swift - 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\n\nTaylor Swift - RT @elliegoulding: So.much.fun. Love that girl http://t.co/AzmX6SsQeb\n\nTaylor Swift - So.. Anything could happen at one of our LA shows. @elliegoulding showed up to sing 'anything could happen'! 15,000 person dance party.\n\nTaylor Swift - RT @MTVNews: #IKnewYouWereTrouble co-star @reevecarney takes us through @taylorswift13's #VMA-nom vid frame-by-frame! http://t.co/3JhEJt34tH\n\nTaylor Swift - RT @teganandsara: Remember when we played #closer with @taylorswift13 yesterday? Ya. Me too. Living the dream. Seriously. Feel so lucky. Th�\n\n" + ) + ) + ) + } + + private fun childAtPosition( + parentMatcher: Matcher<View>, position: Int + ): Matcher<View> { + + return object : TypeSafeMatcher<View>() { + override fun describeTo(description: Description) { + description.appendText("Child at position $position in parent ") + parentMatcher.describeTo(description) + } + + public override fun matchesSafely(view: View): Boolean { + val parent = view.parent + return parent is ViewGroup && parentMatcher.matches(parent) + && view == parent.getChildAt(position) + } + } + } +} diff --git a/Labs/Lab4_Fragments/app/src/androidTest/java/course/labs/fragmentslab/TabletTestAll.kt b/Labs/Lab4_Fragments/app/src/androidTest/java/course/labs/fragmentslab/TabletTestAll.kt new file mode 100644 index 0000000000000000000000000000000000000000..bf52746d1b6f8ff670a15b0de5be95e785b54ae8 --- /dev/null +++ b/Labs/Lab4_Fragments/app/src/androidTest/java/course/labs/fragmentslab/TabletTestAll.kt @@ -0,0 +1,145 @@ +package course.labs.fragmentslab + + +import android.view.View +import android.view.ViewGroup +import androidx.test.espresso.Espresso +import androidx.test.espresso.Espresso.onData +import androidx.test.espresso.action.ViewActions.click +import androidx.test.espresso.assertion.ViewAssertions +import androidx.test.espresso.matcher.ViewMatchers +import androidx.test.espresso.matcher.ViewMatchers.withClassName +import androidx.test.espresso.matcher.ViewMatchers.withId +import androidx.test.filters.LargeTest +import androidx.test.rule.ActivityTestRule +import androidx.test.runner.AndroidJUnit4 +import org.hamcrest.Description +import org.hamcrest.Matcher +import org.hamcrest.Matchers.* +import org.hamcrest.TypeSafeMatcher +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +@LargeTest +@RunWith(AndroidJUnit4::class) +class TabletTestAll { + + @Rule + @JvmField + var mActivityTestRule = ActivityTestRule(MainActivity::class.java) + + @Test + fun tabletTest() { + val textView = onData(anything()) + .inAdapterView( + allOf( + withId(android.R.id.list), + childAtPosition( + withClassName(`is`("android.widget.FrameLayout")), + 1 + ) + ) + ) + .atPosition(0) + textView.check(ViewAssertions.matches(ViewMatchers.withText("ladygaga"))) + textView.perform(click()) + + val textView6 = Espresso.onView( + allOf( + withId(R.id.feed_view), ViewMatchers.withText( + //"Lady Gaga - Go to http://t.co/W2NqZiTtOo to see @Terry_World Terry Richardson's photos of me getting ready for the show!\n\nLady Gaga - 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\n\nLady Gaga - @TrollMarkus I felt so alive! All I remember is the audience cheering! I could barely hear! Hands in the air, smiles & flashes everywhere!\n\nLady Gaga - @gabicorradin30 breathing\n\nLady Gaga - That is correct. RT @dope_cinema: only @LadyGaga would purposely put booing in her performance hahah\n\nLady Gaga - @RobbyRizl it was a canvas, and I AM the canvas during this performance\n\nLady Gaga - RT @leonardo_bv: @ladygaga The choreography was perfect, mimetizing each era, and the booing during Born This Way era was such a great stat�\n\nLady Gaga - @LiamCalderone I wrote it special for this performance!\n\nLady Gaga - RT @Born2BeBrave: @ladygaga competition has no place in music, if people want competition they can watch football. Music is about art and e�\n\nLady Gaga - @BadKid_Earthfan aisle 5\n\nLady Gaga - @vuittonbrunette everyone always asks why? Why did she do this? Why did she do that? My answer: For the Applause!\n\nLady Gaga - @WonderBoyxGAGA for the fame monster! yellow wig from the telephone video and monsterball!\n\nLady Gaga - So what did monsters think of my Vma performance? Stay focused on your greatest competition: yourself! #SnatchYourOwnWeave\n\n" + containsString("Lady Gaga - I love u! RT @BoyGeorge: Comeback?") + ), +// ViewMatchers.withParent(ViewMatchers.withParent(withId(R.id.fragment_container))), + ViewMatchers.isDisplayed() + ) + ) + textView6.check( + ViewAssertions.matches( + ViewMatchers.withText( + containsString("Lady Gaga - Go to http://t.co/W2NqZiTtOo to see @Terry_World Terry Richardson's photos of me getting ready for the show!") // \n\nLady Gaga - 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\n\nLady Gaga - @TrollMarkus I felt so alive! All I remember is the audience cheering! I could barely hear! Hands in the air, smiles & flashes everywhere!\n\nLady Gaga - @gabicorradin30 breathing\n\nLady Gaga - That is correct. RT @dope_cinema: only @LadyGaga would purposely put booing in her performance hahah\n\nLady Gaga - @RobbyRizl it was a canvas, and I AM the canvas during this performance\n\nLady Gaga - RT @leonardo_bv: @ladygaga The choreography was perfect, mimetizing each era, and the booing during Born This Way era was such a great stat�\n\nLady Gaga - @LiamCalderone I wrote it special for this performance!\n\nLady Gaga - RT @Born2BeBrave: @ladygaga competition has no place in music, if people want competition they can watch football. Music is about art and e�\n\nLady Gaga - @BadKid_Earthfan aisle 5\n\nLady Gaga - @vuittonbrunette everyone always asks why? Why did she do this? Why did she do that? My answer: For the Applause!\n\nLady Gaga - @WonderBoyxGAGA for the fame monster! yellow wig from the telephone video and monsterball!\n\nLady Gaga - So what did monsters think of my Vma performance? Stay focused on your greatest competition: yourself! #SnatchYourOwnWeave\n\n" + ) + ) + ) + + val textView2 = onData(anything()) + .inAdapterView( + allOf( + withId(android.R.id.list), + childAtPosition( + withClassName(`is`("android.widget.FrameLayout")), + 1 + ) + ) + ) + .atPosition(1) + textView2.perform(click()) + textView2.check(ViewAssertions.matches(ViewMatchers.withText("msrebeccablack"))) + val textView7 = Espresso.onView( + allOf( + withId(R.id.feed_view), ViewMatchers.withText( + //"Lady Gaga - Go to http://t.co/W2NqZiTtOo to see @Terry_World Terry Richardson's photos of me getting ready for the show!\n\nLady Gaga - 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\n\nLady Gaga - @TrollMarkus I felt so alive! All I remember is the audience cheering! I could barely hear! Hands in the air, smiles & flashes everywhere!\n\nLady Gaga - @gabicorradin30 breathing\n\nLady Gaga - That is correct. RT @dope_cinema: only @LadyGaga would purposely put booing in her performance hahah\n\nLady Gaga - @RobbyRizl it was a canvas, and I AM the canvas during this performance\n\nLady Gaga - RT @leonardo_bv: @ladygaga The choreography was perfect, mimetizing each era, and the booing during Born This Way era was such a great stat�\n\nLady Gaga - @LiamCalderone I wrote it special for this performance!\n\nLady Gaga - RT @Born2BeBrave: @ladygaga competition has no place in music, if people want competition they can watch football. Music is about art and e�\n\nLady Gaga - @BadKid_Earthfan aisle 5\n\nLady Gaga - @vuittonbrunette everyone always asks why? Why did she do this? Why did she do that? My answer: For the Applause!\n\nLady Gaga - @WonderBoyxGAGA for the fame monster! yellow wig from the telephone video and monsterball!\n\nLady Gaga - So what did monsters think of my Vma performance? Stay focused on your greatest competition: yourself! #SnatchYourOwnWeave\n\n" + containsString("Rebecca Black - so someone wrote this on my desk") + ), +// ViewMatchers.withParent(ViewMatchers.withParent(withId(R.id.fragment_container))), + ViewMatchers.isDisplayed() + ) + ) + textView7.check( + ViewAssertions.matches( + ViewMatchers.withText( + containsString("DONT TELL ME WHAT TO DO MADDI") // \n\nLady Gaga - 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\n\nLady Gaga - @TrollMarkus I felt so alive! All I remember is the audience cheering! I could barely hear! Hands in the air, smiles & flashes everywhere!\n\nLady Gaga - @gabicorradin30 breathing\n\nLady Gaga - That is correct. RT @dope_cinema: only @LadyGaga would purposely put booing in her performance hahah\n\nLady Gaga - @RobbyRizl it was a canvas, and I AM the canvas during this performance\n\nLady Gaga - RT @leonardo_bv: @ladygaga The choreography was perfect, mimetizing each era, and the booing during Born This Way era was such a great stat�\n\nLady Gaga - @LiamCalderone I wrote it special for this performance!\n\nLady Gaga - RT @Born2BeBrave: @ladygaga competition has no place in music, if people want competition they can watch football. Music is about art and e�\n\nLady Gaga - @BadKid_Earthfan aisle 5\n\nLady Gaga - @vuittonbrunette everyone always asks why? Why did she do this? Why did she do that? My answer: For the Applause!\n\nLady Gaga - @WonderBoyxGAGA for the fame monster! yellow wig from the telephone video and monsterball!\n\nLady Gaga - So what did monsters think of my Vma performance? Stay focused on your greatest competition: yourself! #SnatchYourOwnWeave\n\n" + ) + ) + ) + + + val textView3 = onData(anything()) + .inAdapterView( + allOf( + withId(android.R.id.list), + childAtPosition( + withClassName(`is`("android.widget.FrameLayout")), + 1 + ) + ) + ) + .atPosition(2) + textView3.check(ViewAssertions.matches(ViewMatchers.withText("taylorswift13"))) + textView3.perform(click()) + val textView10 = Espresso.onView( + allOf( + withId(R.id.feed_view), ViewMatchers.withText( + containsString("Headed to the VMAs") + ), + ViewMatchers.isDisplayed() + ) + ) + textView10.check( + ViewAssertions.matches( + ViewMatchers.withText( + containsString("Taylor Swift - I love you guys so much.") //\n\nTaylor Swift - Headed to the VMAs. So. Excited.\n\nTaylor Swift - RT @markvillaver: Taylor Swift & Jennifer Lopez - Jenny from the Block - RED Tour - L.A. Staples Center Sat 8/24/2013 http://t.co/WUtebAqJk�\n\nTaylor Swift - RT @JLo: @taylorswift13 had so much fun with you tonight!!! #RedTourLA #jennyfromtheblock #hairbrushsongs\n\nTaylor Swift - Sang Jenny From the Block with @JLo tonight at Staples Center. STILL FANGIRLING OUT ABOUT IT.\n\nTaylor Swift - RT @JLo: #Red!!! @taylorswift13 @ STAPLES Center http://t.co/iVbun7jXtg\n\nTaylor Swift - Our last show in LA is tonight. Can't wait to see what's in store......\n\nTaylor Swift - RT @siananderson: List of things I was put on this earth to do - this http://t.co/7x4NjvmyhG\n\nTaylor Swift - Now I've seen it through, and now I know the truth... That anything could happen. http://t.co/B1V8G55MJM\n\nTaylor Swift - 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\n\nTaylor Swift - RT @elliegoulding: So.much.fun. Love that girl http://t.co/AzmX6SsQeb\n\nTaylor Swift - So.. Anything could happen at one of our LA shows. @elliegoulding showed up to sing 'anything could happen'! 15,000 person dance party.\n\nTaylor Swift - RT @MTVNews: #IKnewYouWereTrouble co-star @reevecarney takes us through @taylorswift13's #VMA-nom vid frame-by-frame! http://t.co/3JhEJt34tH\n\nTaylor Swift - RT @teganandsara: Remember when we played #closer with @taylorswift13 yesterday? Ya. Me too. Living the dream. Seriously. Feel so lucky. Th�\n\n" + ) + ) + ) + } + + private fun childAtPosition( + parentMatcher: Matcher<View>, position: Int + ): Matcher<View> { + + return object : TypeSafeMatcher<View>() { + override fun describeTo(description: Description) { + description.appendText("Child at position $position in parent ") + parentMatcher.describeTo(description) + } + + public override fun matchesSafely(view: View): Boolean { + val parent = view.parent + return parent is ViewGroup && parentMatcher.matches(parent) + && view == parent.getChildAt(position) + } + } + } +} diff --git a/Labs/Lab4_Fragments/app/src/main/AndroidManifest.xml b/Labs/Lab4_Fragments/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..1f850aec5eb3cabe2f64eaf27f71ce517c6717b6 --- /dev/null +++ b/Labs/Lab4_Fragments/app/src/main/AndroidManifest.xml @@ -0,0 +1,23 @@ +<?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:exported="true" + android:name="course.labs.fragmentslab.MainActivity"> + <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/Lab4_Fragments/app/src/main/java/course/labs/fragmentslab/FeedFragment.kt b/Labs/Lab4_Fragments/app/src/main/java/course/labs/fragmentslab/FeedFragment.kt new file mode 100644 index 0000000000000000000000000000000000000000..d9a76fe61261aeeae93a5dcce82be6ef63cb689b --- /dev/null +++ b/Labs/Lab4_Fragments/app/src/main/java/course/labs/fragmentslab/FeedFragment.kt @@ -0,0 +1,50 @@ +package course.labs.fragmentslab + +import android.os.Bundle +import androidx.fragment.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/Lab4_Fragments/app/src/main/java/course/labs/fragmentslab/FeedFragmentData.kt b/Labs/Lab4_Fragments/app/src/main/java/course/labs/fragmentslab/FeedFragmentData.kt new file mode 100644 index 0000000000000000000000000000000000000000..d1e5094d5becbc7fdf56effd3fd04ce2a3f1496f --- /dev/null +++ b/Labs/Lab4_Fragments/app/src/main/java/course/labs/fragmentslab/FeedFragmentData.kt @@ -0,0 +1,108 @@ +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) + } +} diff --git a/Labs/Lab4_Fragments/app/src/main/java/course/labs/fragmentslab/FriendsFragment.kt b/Labs/Lab4_Fragments/app/src/main/java/course/labs/fragmentslab/FriendsFragment.kt new file mode 100644 index 0000000000000000000000000000000000000000..c23bfe480405b5b78a57d6cc7b2ab3c6778b9e5f --- /dev/null +++ b/Labs/Lab4_Fragments/app/src/main/java/course/labs/fragmentslab/FriendsFragment.kt @@ -0,0 +1,83 @@ +package course.labs.fragmentslab + +import android.content.Context +import android.os.Bundle + +import androidx.fragment.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/Lab4_Fragments/app/src/main/java/course/labs/fragmentslab/MainActivity.kt b/Labs/Lab4_Fragments/app/src/main/java/course/labs/fragmentslab/MainActivity.kt new file mode 100644 index 0000000000000000000000000000000000000000..13fc6961f27ec4d1d7954f79331fbed21d61b770 --- /dev/null +++ b/Labs/Lab4_Fragments/app/src/main/java/course/labs/fragmentslab/MainActivity.kt @@ -0,0 +1,70 @@ +package course.labs.fragmentslab + +import android.os.Bundle +import androidx.fragment.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/Lab4_Fragments/app/src/main/res/drawable-hdpi/ic_launcher.png b/Labs/Lab4_Fragments/app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0e79b184fcf8cc47dede6d7ccde00d1a1e2d9c23 Binary files /dev/null and b/Labs/Lab4_Fragments/app/src/main/res/drawable-hdpi/ic_launcher.png differ diff --git a/Labs/Lab4_Fragments/app/src/main/res/drawable-ldpi/ic_launcher.png b/Labs/Lab4_Fragments/app/src/main/res/drawable-ldpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ebfac7d78b9e17c113f734d10af74bd2b100beba Binary files /dev/null and b/Labs/Lab4_Fragments/app/src/main/res/drawable-ldpi/ic_launcher.png differ diff --git a/Labs/Lab4_Fragments/app/src/main/res/drawable-mdpi/ic_launcher.png b/Labs/Lab4_Fragments/app/src/main/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1183441937efcae0151b75099bec444d034886e9 Binary files /dev/null and b/Labs/Lab4_Fragments/app/src/main/res/drawable-mdpi/ic_launcher.png differ diff --git a/Labs/Lab4_Fragments/app/src/main/res/drawable-xhdpi/ic_launcher.png b/Labs/Lab4_Fragments/app/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..c8ab2a114716b712ec0c5122f9e9524afaa60b52 Binary files /dev/null and b/Labs/Lab4_Fragments/app/src/main/res/drawable-xhdpi/ic_launcher.png differ diff --git a/Labs/Lab4_Fragments/app/src/main/res/layout-large/main_activity.xml b/Labs/Lab4_Fragments/app/src/main/res/layout-large/main_activity.xml new file mode 100644 index 0000000000000000000000000000000000000000..ab3db3073372a7c512949c0a969a837d33b5e8ff --- /dev/null +++ b/Labs/Lab4_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/Lab4_Fragments/app/src/main/res/layout/feed.xml b/Labs/Lab4_Fragments/app/src/main/res/layout/feed.xml new file mode 100644 index 0000000000000000000000000000000000000000..6bd02692ff9a58b14c2806fa3138623d30a442c8 --- /dev/null +++ b/Labs/Lab4_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/Lab4_Fragments/app/src/main/res/layout/main_activity.xml b/Labs/Lab4_Fragments/app/src/main/res/layout/main_activity.xml new file mode 100644 index 0000000000000000000000000000000000000000..a9ee9c50e096ff73da7eaa006c8a44d75add7b28 --- /dev/null +++ b/Labs/Lab4_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/Lab4_Fragments/app/src/main/res/raw/ladygaga.txt b/Labs/Lab4_Fragments/app/src/main/res/raw/ladygaga.txt new file mode 100644 index 0000000000000000000000000000000000000000..d3ee9f90638238efeff71c8f2355f6ebb3d23eec --- /dev/null +++ b/Labs/Lab4_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/Lab4_Fragments/app/src/main/res/raw/rebeccablack.txt b/Labs/Lab4_Fragments/app/src/main/res/raw/rebeccablack.txt new file mode 100644 index 0000000000000000000000000000000000000000..5d50cc5744e304467831d8f0cd80aee42e3181dc --- /dev/null +++ b/Labs/Lab4_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/Lab4_Fragments/app/src/main/res/raw/taylorswift.txt b/Labs/Lab4_Fragments/app/src/main/res/raw/taylorswift.txt new file mode 100644 index 0000000000000000000000000000000000000000..b74158e89b8281c8892570d27b193d237d2ad4ba --- /dev/null +++ b/Labs/Lab4_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/Lab4_Fragments/app/src/main/res/values-v11/styles.xml b/Labs/Lab4_Fragments/app/src/main/res/values-v11/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..541752f6edf47a27cad70a23c00cc17aa4c84c08 --- /dev/null +++ b/Labs/Lab4_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/Lab4_Fragments/app/src/main/res/values-v14/styles.xml b/Labs/Lab4_Fragments/app/src/main/res/values-v14/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..f20e01501dfde7d1f4cc9c29f85169ce57bc5846 --- /dev/null +++ b/Labs/Lab4_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/Lab4_Fragments/app/src/main/res/values/strings.xml b/Labs/Lab4_Fragments/app/src/main/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..fc660cc181c0c399b5780486187fa0267914f352 --- /dev/null +++ b/Labs/Lab4_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/Lab4_Fragments/app/src/main/res/values/styles.xml b/Labs/Lab4_Fragments/app/src/main/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..50f0ee4732c85a05cf02038ff41e4a4c86036dbd --- /dev/null +++ b/Labs/Lab4_Fragments/app/src/main/res/values/styles.xml @@ -0,0 +1,14 @@ +<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" /> + + <!-- 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/Lab4_Fragments/build.gradle b/Labs/Lab4_Fragments/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..0da478262b3efccb0ab6e52adc6a767ba079473f --- /dev/null +++ b/Labs/Lab4_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.6.10' + repositories { + mavenCentral() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:7.1.1' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + mavenCentral() + google() + } +} diff --git a/Labs/Lab4_Fragments/gradle.properties b/Labs/Lab4_Fragments/gradle.properties new file mode 100644 index 0000000000000000000000000000000000000000..5465fec0ecadbf086fce0db92293c8f1d5f720ff --- /dev/null +++ b/Labs/Lab4_Fragments/gradle.properties @@ -0,0 +1,2 @@ +android.enableJetifier=true +android.useAndroidX=true \ No newline at end of file diff --git a/Labs/Lab4_Fragments/gradle/wrapper/gradle-wrapper.jar b/Labs/Lab4_Fragments/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..13372aef5e24af05341d49695ee84e5f9b594659 Binary files /dev/null and b/Labs/Lab4_Fragments/gradle/wrapper/gradle-wrapper.jar differ diff --git a/Labs/Lab4_Fragments/gradle/wrapper/gradle-wrapper.properties b/Labs/Lab4_Fragments/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..2376801978d4b4c72a487c51ab21a98ae6b553d4 --- /dev/null +++ b/Labs/Lab4_Fragments/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sun Feb 20 15:36:33 EST 2022 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/Labs/Lab4_Fragments/gradlew b/Labs/Lab4_Fragments/gradlew new file mode 100644 index 0000000000000000000000000000000000000000..9d82f78915133e1c35a6ea51252590fb38efac2f --- /dev/null +++ b/Labs/Lab4_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/Lab4_Fragments/gradlew.bat b/Labs/Lab4_Fragments/gradlew.bat new file mode 100644 index 0000000000000000000000000000000000000000..8a0b282aa6885fb573c106b3551f7275c5f17e8e --- /dev/null +++ b/Labs/Lab4_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/Lab4_Fragments/settings.gradle b/Labs/Lab4_Fragments/settings.gradle new file mode 100644 index 0000000000000000000000000000000000000000..e7b4def49cb53d9aa04228dd3edb14c9e635e003 --- /dev/null +++ b/Labs/Lab4_Fragments/settings.gradle @@ -0,0 +1 @@ +include ':app' diff --git a/Labs/Lab4_LifecycleAware/.gitignore b/Labs/Lab4_LifecycleAware/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..ceff37eff0e621e8f96607f26a6bced4727fb5a5 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/.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/Lab4_LifecycleAware/Lab-LifecycleAwareComponents.pdf b/Labs/Lab4_LifecycleAware/Lab-LifecycleAwareComponents.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ed47a7685c2c2947c0f01b290bd3d6578e79386b Binary files /dev/null and b/Labs/Lab4_LifecycleAware/Lab-LifecycleAwareComponents.pdf differ diff --git a/Labs/Lab4_LifecycleAware/app/.gitignore b/Labs/Lab4_LifecycleAware/app/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..796b96d1c402326528b4ba3c12ee9d92d0e212e9 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/Labs/Lab4_LifecycleAware/app/build.gradle b/Labs/Lab4_LifecycleAware/app/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..dd3aad725d2fc81b5d5b8cf6b008fcbe16a24d47 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/build.gradle @@ -0,0 +1,36 @@ +apply plugin: 'com.android.application' + +apply plugin: 'kotlin-android' + +apply plugin: 'kotlin-android-extensions' + +android { + compileSdkVersion 31 + defaultConfig { + applicationId "course.labs.lab5_lifecycle_aware" + minSdkVersion 26 + targetSdkVersion 31 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.core:core-ktx:1.1.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'androidx.test:runner:1.2.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + androidTestImplementation 'androidx.test:rules:1.1.0' + implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0' +} diff --git a/Labs/Lab4_LifecycleAware/app/proguard-rules.pro b/Labs/Lab4_LifecycleAware/app/proguard-rules.pro new file mode 100644 index 0000000000000000000000000000000000000000..f1b424510da51fd82143bc74a0a801ae5a1e2fcd --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/Labs/Lab4_LifecycleAware/app/src/main/AndroidManifest.xml b/Labs/Lab4_LifecycleAware/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..fdb3d9b4d70a66ac023b98623507d91d1e2ad94f --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/src/main/AndroidManifest.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="course.labs.lab5_lifecycle_aware"> + + <application + android:allowBackup="true" + android:icon="@mipmap/ic_launcher" + android:label="@string/app_name" + android:roundIcon="@mipmap/ic_launcher_round" + android:supportsRtl="true" + android:theme="@style/AppTheme"> + <activity + android:name=".LifecycleMainActivity" + android:exported="true"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> \ No newline at end of file diff --git a/Labs/Lab4_LifecycleAware/app/src/main/java/course/labs/lab5_lifecycle_aware/CounterViewModel.kt b/Labs/Lab4_LifecycleAware/app/src/main/java/course/labs/lab5_lifecycle_aware/CounterViewModel.kt new file mode 100644 index 0000000000000000000000000000000000000000..3e181e9ad8c859a8dc243619062a8e2a8f450e3e --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/src/main/java/course/labs/lab5_lifecycle_aware/CounterViewModel.kt @@ -0,0 +1,9 @@ +package course.labs.lab5_lifecycle_aware +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel + +//ToDo: define your own view model that would be used to store the data when activity is destroyed during rotation + +class CounterViewModel : ViewModel() { + +} \ No newline at end of file diff --git a/Labs/Lab4_LifecycleAware/app/src/main/java/course/labs/lab5_lifecycle_aware/LifecycleMainActivity.kt b/Labs/Lab4_LifecycleAware/app/src/main/java/course/labs/lab5_lifecycle_aware/LifecycleMainActivity.kt new file mode 100644 index 0000000000000000000000000000000000000000..c4b2dfab4d5fbbc691db030577aa81497bce1a27 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/src/main/java/course/labs/lab5_lifecycle_aware/LifecycleMainActivity.kt @@ -0,0 +1,42 @@ +package course.labs.lab5_lifecycle_aware + +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import android.widget.Button +import android.view.View +import android.widget.TextView +import android.content.Context +import android.view.WindowManager +import androidx.lifecycle.ViewModelProviders + +class LifecycleMainActivity : AppCompatActivity() { + private fun getScreenOrientation(context: Context): String { + val orientationList = listOf("Portrait","Landscape","Reverse Portrait","Reverse Landscape") + val orientation = (context.getSystemService(Context.WINDOW_SERVICE) as WindowManager).defaultDisplay.rotation + return orientationList[orientation] + } + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_main) + //ToDo: Implement your own logic to display appropriate text ,increase and reset the counter + + //Todo: Initialize reset button, display text, and 'NEXT' button + val resetButton: Button = null as Button + val prButton:Button = null as Button + val displayText: TextView = null as TextView + + //Todo: Initialize mode for counter using CounterViewModel + // var model = ... + + prButton.setOnClickListener { + //Todo: Increment counter and update display text + + } + + resetButton.setOnClickListener { + //Todo: Reset counter and updte display text + } + } + + +} diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/Labs/Lab4_LifecycleAware/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000000000000000000000000000000000000..1f6bb290603d7caa16c5fb6f61bbfdc750622f5c --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt" + android:width="108dp" + android:height="108dp" + android:viewportWidth="108" + android:viewportHeight="108"> + <path + android:fillType="evenOdd" + android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z" + android:strokeWidth="1" + android:strokeColor="#00000000"> + <aapt:attr name="android:fillColor"> + <gradient + android:endX="78.5885" + android:endY="90.9159" + android:startX="48.7653" + android:startY="61.0927" + android:type="linear"> + <item + android:color="#44000000" + android:offset="0.0" /> + <item + android:color="#00000000" + android:offset="1.0" /> + </gradient> + </aapt:attr> + </path> + <path + android:fillColor="#FFFFFF" + android:fillType="nonZero" + android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z" + android:strokeWidth="1" + android:strokeColor="#00000000" /> +</vector> diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/drawable/ic_launcher_background.xml b/Labs/Lab4_LifecycleAware/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000000000000000000000000000000000000..0d025f9bf6b67c63044a36a9ff44fbc69e5c5822 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="utf-8"?> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="108dp" + android:height="108dp" + android:viewportWidth="108" + android:viewportHeight="108"> + <path + android:fillColor="#008577" + android:pathData="M0,0h108v108h-108z" /> + <path + android:fillColor="#00000000" + android:pathData="M9,0L9,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M19,0L19,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M29,0L29,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M39,0L39,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M49,0L49,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M59,0L59,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M69,0L69,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M79,0L79,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M89,0L89,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M99,0L99,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,9L108,9" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,19L108,19" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,29L108,29" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,39L108,39" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,49L108,49" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,59L108,59" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,69L108,69" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,79L108,79" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,89L108,89" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,99L108,99" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M19,29L89,29" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M19,39L89,39" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M19,49L89,49" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M19,59L89,59" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M19,69L89,69" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M19,79L89,79" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M29,19L29,89" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M39,19L39,89" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M49,19L49,89" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M59,19L59,89" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M69,19L69,89" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M79,19L79,89" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> +</vector> diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/layout/activity_main.xml b/Labs/Lab4_LifecycleAware/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000000000000000000000000000000000000..ae9525783fa214385182d4364df2640a98c056c5 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context=".LifecycleMainActivity"> + + <TextView + android:id="@+id/DisplayText" + android:textAppearance="@android:style/TextAppearance.Material.Display2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Text will come here" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.182" /> + + <Button + android:id="@+id/PrButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Next" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintHorizontal_bias="0.244" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.404" /> + + <Button + android:id="@+id/ResButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Reset" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintHorizontal_bias="0.804" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.404" /> + + <ListView + android:id="@+id/listview" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_centerHorizontal="true" + app:layout_constraintTop_toBottomOf="@+id/ResButton" + app:layout_constraintBottom_toBottomOf="parent" + /> + + +</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/layout/history_list.xml b/Labs/Lab4_LifecycleAware/app/src/main/res/layout/history_list.xml new file mode 100644 index 0000000000000000000000000000000000000000..e802a2d7809710cba25099d78cde689e17a23a54 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/src/main/res/layout/history_list.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <TextView + android:id="@+id/Text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="P" + android:textAppearance="@android:style/TextAppearance.Material.Display1" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintHorizontal_bias="0.469" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.114" /> +</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000000000000000000000000000000000000..eca70cfe52eac1ba66ba280a68ca7be8fcf88a16 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> + <background android:drawable="@drawable/ic_launcher_background" /> + <foreground android:drawable="@drawable/ic_launcher_foreground" /> +</adaptive-icon> \ No newline at end of file diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000000000000000000000000000000000000..eca70cfe52eac1ba66ba280a68ca7be8fcf88a16 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> + <background android:drawable="@drawable/ic_launcher_background" /> + <foreground android:drawable="@drawable/ic_launcher_foreground" /> +</adaptive-icon> \ No newline at end of file diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-hdpi/ic_launcher.png b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..898f3ed59ac9f3248734a00e5902736c9367d455 Binary files /dev/null and b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..dffca3601eba7bf5f409bdd520820e2eb5122c75 Binary files /dev/null and b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-mdpi/ic_launcher.png b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..64ba76f75e9ce021aa3d95c213491f73bcacb597 Binary files /dev/null and b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..dae5e082342fcdeee5db8a6e0b27028e2d2808f5 Binary files /dev/null and b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..e5ed46597ea8447d91ab1786a34e30f1c26b18bd Binary files /dev/null and b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..14ed0af35023e4f1901cf03487b6c524257b8483 Binary files /dev/null and b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b0907cac3bfd8fbfdc46e1108247f0a1055387ec Binary files /dev/null and b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ae03154975f397f8ed1b84f2d4bf9783ecfa26 Binary files /dev/null and b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2c18de9e66108411737e910f5c1972476f03ddbf Binary files /dev/null and b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..beed3cdd2c32af5114a7dc70b9ef5b698eb8797e Binary files /dev/null and b/Labs/Lab4_LifecycleAware/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/values/colors.xml b/Labs/Lab4_LifecycleAware/app/src/main/res/values/colors.xml new file mode 100644 index 0000000000000000000000000000000000000000..69b22338c6510250df3b43672635120dbce2fa49 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <color name="colorPrimary">#008577</color> + <color name="colorPrimaryDark">#00574B</color> + <color name="colorAccent">#D81B60</color> +</resources> diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/values/strings.xml b/Labs/Lab4_LifecycleAware/app/src/main/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..2c1b9c6926c80edfeedf69fb606ca873c94b2ec5 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ +<resources> + <string name="app_name">Lifecycle Aware App</string> +</resources> diff --git a/Labs/Lab4_LifecycleAware/app/src/main/res/values/styles.xml b/Labs/Lab4_LifecycleAware/app/src/main/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..5885930df6d10edf3d6df40d6556297d11f953da --- /dev/null +++ b/Labs/Lab4_LifecycleAware/app/src/main/res/values/styles.xml @@ -0,0 +1,11 @@ +<resources> + + <!-- Base application theme. --> + <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> + <!-- Customize your theme here. --> + <item name="colorPrimary">@color/colorPrimary</item> + <item name="colorPrimaryDark">@color/colorPrimaryDark</item> + <item name="colorAccent">@color/colorAccent</item> + </style> + +</resources> diff --git a/Labs/Lab4_LifecycleAware/build.gradle b/Labs/Lab4_LifecycleAware/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..de122092d34930d60b51187de5c2b0d36a4e8344 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/build.gradle @@ -0,0 +1,28 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + ext.kotlin_version = '1.3.41' + repositories { + google() + jcenter() + + } + dependencies { + classpath 'com.android.tools.build:gradle:7.1.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + jcenter() + + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/Labs/Lab4_LifecycleAware/gradle.properties b/Labs/Lab4_LifecycleAware/gradle.properties new file mode 100644 index 0000000000000000000000000000000000000000..23339e0df69d1fe76df74d7cc6c861fced84e98c --- /dev/null +++ b/Labs/Lab4_LifecycleAware/gradle.properties @@ -0,0 +1,21 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official diff --git a/Labs/Lab4_LifecycleAware/gradle/wrapper/gradle-wrapper.jar b/Labs/Lab4_LifecycleAware/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..f6b961fd5a86aa5fbfe90f707c3138408be7c718 Binary files /dev/null and b/Labs/Lab4_LifecycleAware/gradle/wrapper/gradle-wrapper.jar differ diff --git a/Labs/Lab4_LifecycleAware/gradle/wrapper/gradle-wrapper.properties b/Labs/Lab4_LifecycleAware/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..4d01a7247ec010ba00c84f7e238cae655af66bd0 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sun Feb 20 18:07:58 EST 2022 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/Labs/Lab4_LifecycleAware/gradlew b/Labs/Lab4_LifecycleAware/gradlew new file mode 100644 index 0000000000000000000000000000000000000000..cccdd3d517fc5249beaefa600691cf150f2fa3e6 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# 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 + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# 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 +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +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" -a "$nonstop" = "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 + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/Labs/Lab4_LifecycleAware/gradlew.bat b/Labs/Lab4_LifecycleAware/gradlew.bat new file mode 100644 index 0000000000000000000000000000000000000000..f9553162f122c71b34635112e717c3e733b5b212 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/gradlew.bat @@ -0,0 +1,84 @@ +@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 + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@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= + +@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 Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_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=%* + +: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/Lab4_LifecycleAware/settings.gradle b/Labs/Lab4_LifecycleAware/settings.gradle new file mode 100644 index 0000000000000000000000000000000000000000..fcbc081ac5a77856ccdf55be6aacce77ea6054a0 --- /dev/null +++ b/Labs/Lab4_LifecycleAware/settings.gradle @@ -0,0 +1,2 @@ +include ':app' +rootProject.name='Lab5_lifecycle_aware'