git.haldean.org wearipedia / d028426
Initial version. A lot works in this. The formatting on the watch side is a little janky, but it's pretty solid. Checkpointing to try jsoup instead of the DOM APIs. Will Haldean Brown 8 years ago
73 changed file(s) with 2017 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
0 .gradle
1 /local.properties
2 /.idea/workspace.xml
3 .DS_Store
4 /build
0 Wearipedia
0 <?xml version="1.0" encoding="UTF-8"?>
1 <project version="4">
2 <component name="CompilerConfiguration">
3 <option name="DEFAULT_COMPILER" value="Javac" />
4 <resourceExtensions />
5 <wildcardResourcePatterns>
6 <entry name="!?*.java" />
7 <entry name="!?*.form" />
8 <entry name="!?*.class" />
9 <entry name="!?*.groovy" />
10 <entry name="!?*.scala" />
11 <entry name="!?*.flex" />
12 <entry name="!?*.kt" />
13 <entry name="!?*.clj" />
14 </wildcardResourcePatterns>
15 <annotationProcessing>
16 <profile default="true" name="Default" enabled="false">
17 <processorPath useClasspath="true" />
18 </profile>
19 </annotationProcessing>
20 </component>
21 </project>
22
0 <component name="CopyrightManager">
1 <settings default="" />
2 </component>
0 <component name="ProjectDictionaryState">
1 <dictionary name="haldean">
2 <words>
3 <w>wearipedia</w>
4 <w>wikipedia</w>
5 </words>
6 </dictionary>
7 </component>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <project version="4">
2 <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
3 </project>
4
0 <?xml version="1.0" encoding="UTF-8"?>
1 <project version="4">
2 <component name="GradleSettings">
3 <option name="linkedExternalProjectsSettings">
4 <GradleProjectSettings>
5 <option name="distributionType" value="DEFAULT_WRAPPED" />
6 <option name="externalProjectPath" value="$PROJECT_DIR$" />
7 <option name="modules">
8 <set>
9 <option value="$PROJECT_DIR$" />
10 <option value="$PROJECT_DIR$/mobile" />
11 <option value="$PROJECT_DIR$/wear" />
12 </set>
13 </option>
14 </GradleProjectSettings>
15 </option>
16 </component>
17 </project>
18
0 <component name="libraryTable">
1 <library name="guava-17.0">
2 <CLASSES>
3 <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/17.0/9c6ef172e8de35fd8d4d8783e4821e57cdef7445/guava-17.0.jar!/" />
4 </CLASSES>
5 <JAVADOC />
6 <SOURCES>
7 <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/17.0/7ca0efbeb87ca845b5d7a0ac9c21a4b7b95f7b28/guava-17.0-sources.jar!/" />
8 </SOURCES>
9 </library>
10 </component>
0 <component name="libraryTable">
1 <library name="jtidy-4aug2000r7-dev">
2 <CLASSES>
3 <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/jtidy/jtidy/4aug2000r7-dev/2aecd44e0c3a7fdcf0ec19f7c58f37a07798f01f/jtidy-4aug2000r7-dev.jar!/" />
4 </CLASSES>
5 <JAVADOC />
6 <SOURCES>
7 <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/jtidy/jtidy/4aug2000r7-dev/e0e05e9f1bf11a9d0357038ac4f497912c96f63f/jtidy-4aug2000r7-dev-sources.jar!/" />
8 </SOURCES>
9 </library>
10 </component>
0 <component name="libraryTable">
1 <library name="okhttp-2.0.0">
2 <CLASSES>
3 <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup.okhttp/okhttp/2.0.0/4c8d1536dba3812cc1592090dc20c47a4ed3c35e/okhttp-2.0.0.jar!/" />
4 </CLASSES>
5 <JAVADOC />
6 <SOURCES>
7 <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup.okhttp/okhttp/2.0.0/af42b755327c58cfae866f18ed873e2d537e0ea8/okhttp-2.0.0-sources.jar!/" />
8 </SOURCES>
9 </library>
10 </component>
0 <component name="libraryTable">
1 <library name="okio-1.0.0">
2 <CLASSES>
3 <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio/1.0.0/2534c458682c73f5b9871131ab3098d3f987ca3/okio-1.0.0.jar!/" />
4 </CLASSES>
5 <JAVADOC />
6 <SOURCES>
7 <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio/1.0.0/31c1e834571f026521191d28ebbb5df5f1d21437/okio-1.0.0-sources.jar!/" />
8 </SOURCES>
9 </library>
10 </component>
0 <component name="libraryTable">
1 <library name="play-services-wearable-5.0.77">
2 <CLASSES>
3 <root url="jar://$PROJECT_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-wearable/5.0.77/classes.jar!/" />
4 <root url="file://$PROJECT_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-wearable/5.0.77/res" />
5 </CLASSES>
6 <JAVADOC />
7 <SOURCES />
8 </library>
9 </component>
0 <component name="libraryTable">
1 <library name="support-annotations-21.0.0-rc1">
2 <CLASSES>
3 <root url="jar://$APPLICATION_HOME_DIR$/sdk/extras/android/m2repository/com/android/support/support-annotations/21.0.0-rc1/support-annotations-21.0.0-rc1.jar!/" />
4 </CLASSES>
5 <JAVADOC />
6 <SOURCES>
7 <root url="jar://$APPLICATION_HOME_DIR$/sdk/extras/android/m2repository/com/android/support/support-annotations/21.0.0-rc1/support-annotations-21.0.0-rc1-sources.jar!/" />
8 </SOURCES>
9 </library>
10 </component>
0 <component name="libraryTable">
1 <library name="support-v13-21.0.0-rc1">
2 <CLASSES>
3 <root url="jar://$PROJECT_DIR$/build/intermediates/exploded-aar/com.android.support/support-v13/21.0.0-rc1/libs/internal_impl-21.0.0-rc1.jar!/" />
4 <root url="jar://$PROJECT_DIR$/build/intermediates/exploded-aar/com.android.support/support-v13/21.0.0-rc1/classes.jar!/" />
5 <root url="file://$PROJECT_DIR$/build/intermediates/exploded-aar/com.android.support/support-v13/21.0.0-rc1/res" />
6 </CLASSES>
7 <JAVADOC />
8 <SOURCES />
9 </library>
10 </component>
0 <component name="libraryTable">
1 <library name="support-v4-19.1.0">
2 <CLASSES>
3 <root url="jar://$APPLICATION_HOME_DIR$/sdk/extras/android/m2repository/com/android/support/support-v4/19.1.0/support-v4-19.1.0.jar!/" />
4 </CLASSES>
5 <JAVADOC />
6 <SOURCES>
7 <root url="jar://$APPLICATION_HOME_DIR$/sdk/extras/android/m2repository/com/android/support/support-v4/19.1.0/support-v4-19.1.0-sources.jar!/" />
8 </SOURCES>
9 </library>
10 </component>
0 <component name="libraryTable">
1 <library name="support-v4-21.0.0-rc1">
2 <CLASSES>
3 <root url="jar://$PROJECT_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/21.0.0-rc1/classes.jar!/" />
4 <root url="jar://$PROJECT_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/21.0.0-rc1/libs/internal_impl-21.0.0-rc1.jar!/" />
5 <root url="file://$PROJECT_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/21.0.0-rc1/res" />
6 </CLASSES>
7 <JAVADOC />
8 <SOURCES />
9 </library>
10 </component>
0 <component name="libraryTable">
1 <library name="wearable-1.0.0">
2 <CLASSES>
3 <root url="file://$PROJECT_DIR$/build/intermediates/exploded-aar/com.google.android.support/wearable/1.0.0/res" />
4 <root url="jar://$PROJECT_DIR$/build/intermediates/exploded-aar/com.google.android.support/wearable/1.0.0/classes.jar!/" />
5 </CLASSES>
6 <JAVADOC />
7 <SOURCES />
8 </library>
9 </component>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <project version="4">
2 <component name="EntryPointsManager">
3 <entry_points version="2.0" />
4 </component>
5 <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
6 <output url="file://$PROJECT_DIR$/build/classes" />
7 </component>
8 </project>
9
0 <?xml version="1.0" encoding="UTF-8"?>
1 <project version="4">
2 <component name="ProjectModuleManager">
3 <modules>
4 <module fileurl="file://$PROJECT_DIR$/Wearipedia.iml" filepath="$PROJECT_DIR$/Wearipedia.iml" />
5 <module fileurl="file://$PROJECT_DIR$/mobile/mobile.iml" filepath="$PROJECT_DIR$/mobile/mobile.iml" />
6 <module fileurl="file://$PROJECT_DIR$/wear/wear.iml" filepath="$PROJECT_DIR$/wear/wear.iml" />
7 </modules>
8 </component>
9 </project>
10
0 <component name="DependencyValidationManager">
1 <state>
2 <option name="SKIP_IMPORT_STATEMENTS" value="false" />
3 </state>
4 </component>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <project version="4">
2 <component name="VcsDirectoryMappings">
3 <mapping directory="" vcs="" />
4 </component>
5 </project>
6
0 <?xml version="1.0" encoding="UTF-8"?>
1 <module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
2 <component name="FacetManager">
3 <facet type="java-gradle" name="Java-Gradle">
4 <configuration>
5 <option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
6 </configuration>
7 </facet>
8 </component>
9 <component name="NewModuleRootManager" inherit-compiler-output="true">
10 <exclude-output />
11 <content url="file://$MODULE_DIR$">
12 <excludeFolder url="file://$MODULE_DIR$/.gradle" />
13 </content>
14 <orderEntry type="inheritedJdk" />
15 <orderEntry type="sourceFolder" forTests="false" />
16 </component>
17 </module>
18
0 // Top-level build file where you can add configuration options common to all sub-projects/modules.
1
2 buildscript {
3 repositories {
4 jcenter()
5 }
6 dependencies {
7 classpath 'com.android.tools.build:gradle:0.12.+'
8
9 // NOTE: Do not place your application dependencies here; they belong
10 // in the individual module build.gradle files
11 }
12 }
13
14 allprojects {
15 repositories {
16 jcenter()
17 }
18 }
0 <html>
1 <head>
2 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
3 <title></title>
4 </head>
5 <body>
6 <table style="border-spacing:3px;width:22em;" cellspacing="3" class="infobox">
7 <tr>
8 <th style="text-align:center;font-size:125%;font-weight:bold;background-color: crimson; color:white;" colspan="2">Grunge</th>
9 </tr>
10 <tr>
11 <th style="text-align:left;" scope="row">Stylistic origins</th><td class="hlist"><a title="Alternative rock" href="//en.wikipedia.org/wiki/Alternative_rock">Alternative rock</a>, <a title="Hardcore punk" href="//en.wikipedia.org/wiki/Hardcore_punk">hardcore punk</a>, <a title="Heavy metal music" href="//en.wikipedia.org/wiki/Heavy_metal_music">heavy metal</a>, <a title="Punk rock" href="//en.wikipedia.org/wiki/Punk_rock">punk rock</a>, <a title="Hard rock" href="//en.wikipedia.org/wiki/Hard_rock">hard rock</a>, <a title="Noise rock" href="//en.wikipedia.org/wiki/Noise_rock">noise rock</a></td>
12 </tr>
13 <tr>
14 <th style="text-align:left;" scope="row">Cultural origins</th><td class="hlist">Mid-1980s, <a class="mw-redirect" title="Seattle, Washington" href="//en.wikipedia.org/wiki/Seattle,_Washington">Seattle, Washington</a>, <a title="United States" href="//en.wikipedia.org/wiki/United_States">United States</a></td>
15 </tr>
16 <tr>
17 <th style="text-align:left;" scope="row">Typical instruments</th><td class="hlist"><a title="Electric guitar" href="//en.wikipedia.org/wiki/Electric_guitar">Electric guitar</a>, <a title="Bass guitar" href="//en.wikipedia.org/wiki/Bass_guitar">bass guitar</a>, <a title="Drum kit" href="//en.wikipedia.org/wiki/Drum_kit">drums</a>, <a title="Singing" href="//en.wikipedia.org/wiki/Singing">vocals</a></td>
18 </tr>
19 <tr>
20 <th style="text-align:left;" scope="row">Derivative forms</th><td class="hlist"><a title="Post-grunge" href="//en.wikipedia.org/wiki/Post-grunge">Post-grunge</a></td>
21 </tr>
22 <tr>
23 <th style="text-align:center;background-color: crimson; color:white;" colspan="2">Fusion genres</th>
24 </tr>
25 <tr>
26 <td style="text-align:center;" class="hlist" colspan="2"><a title="Nu metal" href="//en.wikipedia.org/wiki/Nu_metal">Nu metal</a></td>
27 </tr>
28 <tr>
29 <th style="text-align:center;background-color: crimson; color:white;" colspan="2">Regional scenes</th>
30 </tr>
31 <tr>
32 <td style="text-align:center;" class="hlist" colspan="2"><a title="Music of Washington (state)" href="//en.wikipedia.org/wiki/Music_of_Washington_(state)">Washington state</a></td>
33 </tr>
34 <tr>
35 <th style="text-align:center;background-color: crimson; color:white;" colspan="2">Other topics</th>
36 </tr>
37 <tr>
38 <td style="text-align:center;" class="hlist" colspan="2"><a title="Timeline of alternative rock" href="//en.wikipedia.org/wiki/Timeline_of_alternative_rock">Timeline of alternative rock</a> - <a title="Generation X" href="//en.wikipedia.org/wiki/Generation_X#In_the_United_States">Generation X</a> - <a title="Grunge speak" href="//en.wikipedia.org/wiki/Grunge_speak">Grunge speak hoax</a></td>
39 </tr>
40 </table>
41 <p>
42 <b>Grunge</b> (sometimes referred to as the <b>Seattle sound</b>) is a subgenre of <a title="Alternative rock" href="//en.wikipedia.org/wiki/Alternative_rock">alternative rock</a> that emerged during the mid-1980s in the American state of <a class="mw-redirect" title="Washington (U.S. state)" href="//en.wikipedia.org/wiki/Washington_(U.S._state)">Washington</a>, particularly in the <a title="Seattle" href="//en.wikipedia.org/wiki/Seattle">Seattle</a> area. The early Grunge movement revolved around Seattle's <a title="Independent record label" href="//en.wikipedia.org/wiki/Independent_record_label">independent record label</a> <i><a title="Sub Pop" href="//en.wikipedia.org/wiki/Sub_Pop">Sub Pop</a></i>, but by the early 1990s its popularity had spread, with Grunge acts in California and other parts of the U.S. building strong followings and signing major record deals.</p>
43 <p>Inspired by <a title="Hardcore punk" href="//en.wikipedia.org/wiki/Hardcore_punk">hardcore punk</a> and <a title="Heavy metal music" href="//en.wikipedia.org/wiki/Heavy_metal_music">heavy metal</a>, grunge is generally characterized by heavily <a title="Distortion (music)" href="//en.wikipedia.org/wiki/Distortion_(music)">distorted</a> <a title="Electric guitar" href="//en.wikipedia.org/wiki/Electric_guitar">electric guitars</a>, contrasting song <a title="Dynamics (music)" href="//en.wikipedia.org/wiki/Dynamics_(music)">dynamics</a>, "<a title="Growling" href="//en.wikipedia.org/wiki/Growling">growling</a>" vocals and apathetic or <a title="Angst" href="//en.wikipedia.org/wiki/Angst">angst</a>-filled lyrics. The grunge aesthetic is stripped-down compared with other forms of <a title="Rock music" href="//en.wikipedia.org/wiki/Rock_music">rock music</a>, and many grunge musicians were noted for their unkempt appearances and rejection of theatrics.</p>
44 <p>Grunge became commercially successful in the first half of the 1990s, due mainly to the release of <a title="Nirvana (band)" href="//en.wikipedia.org/wiki/Nirvana_(band)">Nirvana</a>'s <i><a title="Nevermind" href="//en.wikipedia.org/wiki/Nevermind">Nevermind</a></i>, <a title="Pearl Jam" href="//en.wikipedia.org/wiki/Pearl_Jam">Pearl Jam</a>'s <i><a title="Ten (Pearl Jam album)" href="//en.wikipedia.org/wiki/Ten_(Pearl_Jam_album)">Ten</a></i>, <a title="Soundgarden" href="//en.wikipedia.org/wiki/Soundgarden">Soundgarden</a>'s <i><a title="Badmotorfinger" href="//en.wikipedia.org/wiki/Badmotorfinger">Badmotorfinger</a></i>, <a title="Alice in Chains" href="//en.wikipedia.org/wiki/Alice_in_Chains">Alice in Chains</a>' <i><a title="Dirt (Alice in Chains album)" href="//en.wikipedia.org/wiki/Dirt_(Alice_in_Chains_album)">Dirt</a></i>, and <a title="Stone Temple Pilots" href="//en.wikipedia.org/wiki/Stone_Temple_Pilots">Stone Temple Pilots</a>' <i><a title="Core (Stone Temple Pilots album)" href="//en.wikipedia.org/wiki/Core_(Stone_Temple_Pilots_album)">Core</a></i>. The success of these bands boosted the popularity of alternative rock and made grunge the most popular form of <a title="Hard rock" href="//en.wikipedia.org/wiki/Hard_rock">hard rock</a> music at the time. Although most grunge bands had disbanded or faded from view by the late 1990s, their influence continues to affect modern rock music.</p>
45 <p>Grunge is generally characterized by a sludgy guitar sound that uses a high level of distortion, <a title="Distortion (music)" href="//en.wikipedia.org/wiki/Distortion_(music)">fuzz</a> and <a title="Audio feedback" href="//en.wikipedia.org/wiki/Audio_feedback">feedback</a> effects. Grunge fuses elements of hardcore punk and heavy metal, although some bands performed with more emphasis on one or the other. The music shares with punk a raw sound and similar lyrical concerns. However, it also involves much slower <a title="Tempo" href="//en.wikipedia.org/wiki/Tempo">tempos</a>, <a title="Consonance and dissonance" href="//en.wikipedia.org/wiki/Consonance_and_dissonance">dissonant</a> harmonies, and more complex instrumentation&acirc;&euro;&rdquo;which is reminiscent of heavy metal. Lyrics are typically angst-filled, often addressing themes such as <a title="Social alienation" href="//en.wikipedia.org/wiki/Social_alienation">social alienation</a>, <a title="Apathy" href="//en.wikipedia.org/wiki/Apathy">apathy</a>, confinement, and a desire for <a title="Liberty" href="//en.wikipedia.org/wiki/Liberty">freedom</a>.</p>
46 <p>Grunge bands had made inroads to the musical <a title="Mainstream" href="//en.wikipedia.org/wiki/Mainstream">mainstream</a> in the late 1980s. <a title="Soundgarden" href="//en.wikipedia.org/wiki/Soundgarden">Soundgarden</a> was the first grunge band to sign to a major label when they joined the roster of <a title="A&amp;M Records" href="//en.wikipedia.org/wiki/A%26M_Records">A&amp;M Records</a> in 1989. A number of factors contributed to grunge's decline in prominence. During the mid-1990s many grunge bands broke up or became less visible. Nirvana's <a title="Kurt Cobain" href="//en.wikipedia.org/wiki/Kurt_Cobain">Kurt Cobain</a>, labeled by <i>Time</i> as "the <a title="John Lennon" href="//en.wikipedia.org/wiki/John_Lennon">John Lennon</a> of the swinging Northwest", appeared "unusually tortured by success" and struggled with an addiction to heroin before he committed suicide at the age of 27 in 1994.</p>
47 <div class="toc" id="toc">
48 <div id="toctitle">
49 <h2>Contents</h2>
50 </div>
51 <ul>
52 <li class="toclevel-1 tocsection-1">
53 <a href="#Origin_of_the_term"><span class="tocnumber">1</span> <span class="toctext">Origin of the term</span></a>
54 </li>
55 <li class="toclevel-1 tocsection-2">
56 <a href="#Characteristics"><span class="tocnumber">2</span> <span class="toctext">Characteristics</span></a>
57 </li>
58 <li class="toclevel-1 tocsection-3">
59 <a href="#History"><span class="tocnumber">3</span> <span class="toctext">History</span></a>
60 <ul>
61 <li class="toclevel-2 tocsection-4">
62 <a href="#Roots_and_influences"><span class="tocnumber">3.1</span> <span class="toctext">Roots and influences</span></a>
63 </li>
64 <li class="toclevel-2 tocsection-5">
65 <a href="#Early_development"><span class="tocnumber">3.2</span> <span class="toctext">Early development</span></a>
66 </li>
67 <li class="toclevel-2 tocsection-6">
68 <a href="#Mainstream_success"><span class="tocnumber">3.3</span> <span class="toctext">Mainstream success</span></a>
69 </li>
70 <li class="toclevel-2 tocsection-7">
71 <a href="#Decline_of_mainstream_popularity"><span class="tocnumber">3.4</span> <span class="toctext">Decline of mainstream popularity</span></a>
72 </li>
73 <li class="toclevel-2 tocsection-8">
74 <a href="#21st_century"><span class="tocnumber">3.5</span> <span class="toctext">21st century</span></a>
75 </li>
76 </ul>
77 </li>
78 <li class="toclevel-1 tocsection-9">
79 <a href="#Prominent_music_acts"><span class="tocnumber">4</span> <span class="toctext">Prominent music acts</span></a>
80 </li>
81 <li class="toclevel-1 tocsection-10">
82 <a href="#See_also"><span class="tocnumber">5</span> <span class="toctext">See also</span></a>
83 </li>
84 <li class="toclevel-1 tocsection-11">
85 <a href="#Notes"><span class="tocnumber">6</span> <span class="toctext">Notes</span></a>
86 <ul>
87 <li class="toclevel-2 tocsection-12">
88 <a href="#Bibliography"><span class="tocnumber">6.1</span> <span class="toctext">Bibliography</span></a>
89 </li>
90 </ul>
91 </li>
92 <li class="toclevel-1 tocsection-13">
93 <a href="#External_links"><span class="tocnumber">7</span> <span class="toctext">External links</span></a>
94 </li>
95 </ul>
96 </div>
97 <h2>
98 <span id="Origin_of_the_term" class="mw-headline">Origin of the term</span>
99 </h2>
100 <p>Although writer Paul Ramball used "grunge" in a 1978 <i><a title="NME" href="//en.wikipedia.org/wiki/NME">NME</a></i> article to describe mainstream guitar rock, <a title="Mark Arm" href="//en.wikipedia.org/wiki/Mark_Arm">Mark Arm</a>, the vocalist for the Seattle band <a title="Green River (band)" href="//en.wikipedia.org/wiki/Green_River_(band)">Green River</a>&acirc;&euro;&rdquo;and later <a title="Mudhoney" href="//en.wikipedia.org/wiki/Mudhoney">Mudhoney</a>&acirc;&euro;&rdquo;is generally credited as being the first to use the term <i>grunge</i> to describe this genre of music. Arm first used the term .in 1981, when he wrote a letter under his given name Mark McLaughlin to the Seattle <a title="Zine" href="//en.wikipedia.org/wiki/Zine">zine</a> <i>Desperate Times</i>, criticizing his band <i>Mr. Epp and the Calculations</i> as "Pure grunge! Pure noise! Pure shit!". Clark Humphrey, editor of <i>Desperate Times</i>, cites this as the earliest use of the term to refer to a Seattle band, and mentions that <a title="Bruce Pavitt" href="//en.wikipedia.org/wiki/Bruce_Pavitt">Bruce Pavitt</a> of Sub Pop popularized the term as a musical label in 1987&acirc;&euro;&ldquo;88, using it on several occasions to describe Green River.</p>
101 <p>Arm said years later, "Obviously, I didn't make grunge up. I got it from someone else. The term was already being thrown around in <a title="Australia" href="//en.wikipedia.org/wiki/Australia">Australia</a> in the mid-'80s to describe bands like <a title="King Snake Roost" href="//en.wikipedia.org/wiki/King_Snake_Roost">King Snake Roost</a>, <a title="The Scientists" href="//en.wikipedia.org/wiki/The_Scientists">The Scientists</a>, <a title="Salamander Jim (page does not exist)" class="new" href="//en.wikipedia.org/w/index.php?title=Salamander_Jim&amp;action=edit&amp;redlink=1">Salamander Jim</a>, and <a title="Beasts of Bourbon" href="//en.wikipedia.org/wiki/Beasts_of_Bourbon">Beasts of Bourbon</a>." Arm used grunge as a descriptive term rather than a genre term, but it eventually came to describe the punk/metal hybrid sound of the Seattle music scene.</p>
102 <h2>
103 <span id="Characteristics" class="mw-headline">Characteristics</span>
104 </h2>
105 <p>Grunge is generally characterized by a sludgy guitar sound that uses a high level of distortion, <a title="Distortion (music)" href="//en.wikipedia.org/wiki/Distortion_(music)">fuzz</a>, and <a title="Audio feedback" href="//en.wikipedia.org/wiki/Audio_feedback">feedback</a> effects. Grunge fuses elements of hardcore punk and heavy metal, although some bands performed with more emphasis on one or the other. The music shares with punk a raw sound and similar lyrical concerns. However, it also involves much slower <a title="Tempo" href="//en.wikipedia.org/wiki/Tempo">tempos</a>, <a title="Consonance and dissonance" href="//en.wikipedia.org/wiki/Consonance_and_dissonance">dissonant</a> harmonies, and more complex instrumentation&acirc;&euro;&rdquo;which is reminiscent of heavy metal. Some individuals associated with the development of grunge, including Sub Pop producer <a title="Jack Endino" href="//en.wikipedia.org/wiki/Jack_Endino">Jack Endino</a> and the <a title="Melvins" href="//en.wikipedia.org/wiki/Melvins">Melvins</a>, explained grunge's incorporation of heavy rock influences such as <a title="Kiss (band)" href="//en.wikipedia.org/wiki/Kiss_(band)">Kiss</a> as "musical provocation". Grunge artists considered these bands "cheesy" but nonetheless enjoyed them; <a title="Buzz Osborne" href="//en.wikipedia.org/wiki/Buzz_Osborne">Buzz Osborne</a> of the Melvins described it as an attempt to see what ridiculous things bands could do and get away with. In the early 1990s, Nirvana's signature "stop-start" song format became a genre convention. Allmusic calls grunge a "hybrid of heavy metal and punk". Although keyboards are generally not used in grunge, Seattle band Gorrilla created controversy by breaking the "guitars only" approach and using a 1960s-style <a title="Vox (musical equipment)" href="//en.wikipedia.org/wiki/Vox_(musical_equipment)">Vox organ</a> in their group.</p>
106 <p>Lyrics are typically angst-filled, often addressing themes such as <a title="Social alienation" href="//en.wikipedia.org/wiki/Social_alienation">social alienation</a>, apathy, confinement, and a desire for freedom. A number of factors influenced the focus on such subject matter. Many grunge musicians displayed a general disenchantment with the state of society, as well as a discomfort with social prejudices. Such themes bear similarities to those addressed by punk rock musicians. Music critic <a title="Simon Reynolds" href="//en.wikipedia.org/wiki/Simon_Reynolds">Simon Reynolds</a> said in 1992 that "there's a feeling of burnout in the culture at large. Kids are depressed about the future". Humor in grunge often <a title="Parody" href="//en.wikipedia.org/wiki/Parody">satirized</a> glam metal&acirc;&euro;&rdquo;for example, <a title="Soundgarden" href="//en.wikipedia.org/wiki/Soundgarden">Soundgarden</a>'s "<a class="mw-redirect" title="Big Dumb Sex" href="//en.wikipedia.org/wiki/Big_Dumb_Sex">Big Dumb Sex</a>"&acirc;&euro;&rdquo;and other forms of popular rock music during the 1980s.</p>
107 <p>Grunge concerts were known for being straightforward, high-energy performances. Grunge bands rejected the complex and high budget presentations of many musical genres, including the use of complex light arrays, pyrotechnics, and other visual effects unrelated to playing the music. Stage acting was generally avoided. Instead the bands presented themselves as no different from minor local bands. Jack Endino said in the 1996 documentary <i>Hype!</i> that Seattle bands were inconsistent live performers, since their primary objective was not to be entertainers, but simply to "rock out".</p>
108 <p>Clothing commonly worn by grunge musicians in Washington consisted of <a title="Charity shop" href="//en.wikipedia.org/wiki/Charity_shop">thrift store</a> items and the typical outdoor clothing (most notably <a title="Flannel" href="//en.wikipedia.org/wiki/Flannel">flannel</a> shirts) of the region, as well as a generally unkempt appearance. The style did not evolve out of a conscious attempt to create an appealing fashion; music journalist <a title="Charles R. Cross" href="//en.wikipedia.org/wiki/Charles_R._Cross">Charles R. Cross</a> said, "[Nirvana frontman] <a title="Kurt Cobain" href="//en.wikipedia.org/wiki/Kurt_Cobain">Kurt Cobain</a> was just too lazy to shampoo", and Sub Pop's Jonathan Poneman said, "This [clothing] is cheap, it's durable, and it's kind of timeless. It also runs against the grain of the whole flashy aesthetic that existed in the 80s."</p>
109 <p>One of the philosophies of the grunge scene was authenticity. <a title="Dave Rimmer" href="//en.wikipedia.org/wiki/Dave_Rimmer">Dave Rimmer</a> writes that with the revival of punk ideals of stripped-down music in the early 1990s, with "Cobain, and lots of kids like him, rock &amp; roll...threw down a dare: Can you be pure enough, day after day, year after year, to prove your <a title="Authenticity (philosophy)" href="//en.wikipedia.org/wiki/Authenticity_(philosophy)">authenticity</a>, to live up to the music ... And if you can't, can you live with being a <a title="Poseur" href="//en.wikipedia.org/wiki/Poseur">poseur</a>, a phony, a <a class="mw-redirect" title="Sellout" href="//en.wikipedia.org/wiki/Sellout">sellout</a>?"</p>
110 <h2>
111 <span id="History" class="mw-headline">History</span>
112 </h2>
113 <h3>
114 <span id="Roots_and_influences" class="mw-headline">Roots and influences</span>
115 </h3>
116 <p>Grunge's sound partly results from <a class="mw-redirect" title="Seattle music scene" href="//en.wikipedia.org/wiki/Seattle_music_scene">Seattle's isolation</a> from other music scenes. As Sub Pop's Jonathan Poneman noted, "Seattle was a perfect example of a secondary city with an active music scene that was completely ignored by an American media fixated on Los Angeles and New York." Mark Arm claimed that the isolation meant, "this one corner of the map was being really inbred and ripping off each other's ideas". Grunge evolved from the local punk rock scene, and was inspired by bands such as <a title="The Fartz" href="//en.wikipedia.org/wiki/The_Fartz">The Fartz</a>, <a title="The U-Men" href="//en.wikipedia.org/wiki/The_U-Men">The U-Men</a>, <a title="10 Minute Warning" href="//en.wikipedia.org/wiki/10_Minute_Warning">10 Minute Warning</a>, <a title="The Acc&Atilde;&frac14;sed" href="//en.wikipedia.org/wiki/The_Acc%C3%BCsed">The Acc&Atilde;&frac14;sed</a>, and the <a title="Fastbacks" href="//en.wikipedia.org/wiki/Fastbacks">Fastbacks</a>. Additionally, the slow, heavy, and sludgy style of the <a title="Melvins" href="//en.wikipedia.org/wiki/Melvins">Melvins</a> was a significant influence on the grunge sound.</p>
117 <p>Outside the Pacific Northwest, a number of artists and music scenes influenced grunge. Alternative rock bands from the Northeastern United States, including <a title="Sonic Youth" href="//en.wikipedia.org/wiki/Sonic_Youth">Sonic Youth</a>, <a title="Pixies" href="//en.wikipedia.org/wiki/Pixies">Pixies</a>, and <a title="Dinosaur Jr." href="//en.wikipedia.org/wiki/Dinosaur_Jr.">Dinosaur Jr.</a>, are important influences on the genre. Through their patronage of Seattle bands, Sonic Youth "inadvertently nurtured" the grunge scene, and reinforced the fiercely independent attitudes of its musicians. The influence of Pixies on Nirvana was noted by <a title="Kurt Cobain" href="//en.wikipedia.org/wiki/Kurt_Cobain">Kurt Cobain</a>, who commented in a <i>Rolling Stone</i> interview, "I connected with that band so heavily that I should have been in that band&acirc;&euro;&rdquo;or at least a Pixies cover band. We used their sense of dynamics, being soft and quiet and then loud and hard." On August 1997, in an interview with <i><a title="Guitar World" href="//en.wikipedia.org/wiki/Guitar_World">Guitar World</a></i>, <a title="Dave Grohl" href="//en.wikipedia.org/wiki/Dave_Grohl">Dave Grohl</a> said: "From Kurt, <a title="Krist Novoselic" href="//en.wikipedia.org/wiki/Krist_Novoselic">Krist</a> and I liking <a title="The Knack" href="//en.wikipedia.org/wiki/The_Knack">the Knack</a>, <a title="Bay City Rollers" href="//en.wikipedia.org/wiki/Bay_City_Rollers">Bay City Rollers</a>, <a title="The Beatles" href="//en.wikipedia.org/wiki/The_Beatles">Beatles</a> and <a title="ABBA" href="//en.wikipedia.org/wiki/ABBA">Abba</a> just as much as we liked <a title="Flipper (band)" href="//en.wikipedia.org/wiki/Flipper_(band)">Flipper</a> and <a title="Black Flag (band)" href="//en.wikipedia.org/wiki/Black_Flag_(band)">Black Flag</a>...You listen to any Pixies record and it's all over there. Or even <a title="Black Sabbath" href="//en.wikipedia.org/wiki/Black_Sabbath">Black Sabbath</a>'s "<a title="War Pigs" href="//en.wikipedia.org/wiki/War_Pigs">War Pigs</a>"-it's there: the power of the dynamic. We just sort of abused it with <a title="Pop rock" href="//en.wikipedia.org/wiki/Pop_rock">pop songs</a> and got sick with it."</p>
118 <div style="width: 399px;" class="thumb tright">
119 <div class="thumbinner">
120 <div style="float: left; margin: 1px; width: 262px">
121 <div class="thumbimage">
122 <a class="image" href="//en.wikipedia.org/wiki/File:U-Men_at_the_Bat_Cave_Seattle.jpg"></a>
123 </div>
124 </div>
125 <div style="float: left; margin: 1px; width: 124px">
126 <div class="thumbimage">
127 <a class="image" href="//en.wikipedia.org/wiki/File:Tom_Price_U-Men_1983_Metropolis.jpg"></a>
128 </div>
129 </div>
130 <div style="clear: left; text-align: left; background: transparent" class="thumbcaption">Seattle punk/metal band <a title="The U-Men" href="//en.wikipedia.org/wiki/The_U-Men">The U-Men</a> performing in Seattle.</div>
131 </div>
132 </div>
133 <p>Aside from the genre's punk and alternative rock roots, many grunge bands were equally influenced by heavy metal of the early 1970s. <a title="Clinton Heylin" href="//en.wikipedia.org/wiki/Clinton_Heylin">Clinton Heylin</a>, author of <i>Babylon's Burning: From Punk to Grunge</i>, cited Black Sabbath as "perhaps the most ubiquitous pre-punk influence on the northwest scene". Black Sabbath played a role in shaping the grunge sound, through their own records and the records they inspired. Musicologist <a title="Bob Gulla" href="//en.wikipedia.org/wiki/Bob_Gulla">Bob Gulla</a> asserted that Black Sabbath's sound "shows up in virtually all of grunge's most popular bands, including <a title="Nirvana (band)" href="//en.wikipedia.org/wiki/Nirvana_(band)">Nirvana</a>, <a title="Soundgarden" href="//en.wikipedia.org/wiki/Soundgarden">Soundgarden</a>, and <a title="Alice in Chains" href="//en.wikipedia.org/wiki/Alice_in_Chains">Alice in Chains</a>". The influence of <a title="Led Zeppelin" href="//en.wikipedia.org/wiki/Led_Zeppelin">Led Zeppelin</a> is also evident, particularly in the work of Soundgarden, whom <i>Q</i> magazine noted were "in thrall to '70s rock, but contemptuous of the genre's overt sexism and machismo". Jon Wiederhorn of <i>Guitar World</i> wrote: "So what exactly is grunge?...Picture a supergroup made up of <a title="Creedence Clearwater Revival" href="//en.wikipedia.org/wiki/Creedence_Clearwater_Revival">Creedence Clearwater Revival</a>, Black Sabbath and <a title="The Stooges" href="//en.wikipedia.org/wiki/The_Stooges">the Stooges</a>, and you're pretty close."</p>
134 <p>The Los Angeles hardcore punk band Black Flag's 1984 record <i><a title="My War" href="//en.wikipedia.org/wiki/My_War">My War</a></i>, on which the band combined heavy metal with their traditional sound, made a strong impact in Seattle. Mudhoney's <a title="Steve Turner (guitarist)" href="//en.wikipedia.org/wiki/Steve_Turner_(guitarist)">Steve Turner</a> commented, "A lot of other people around the country hated the fact that Black Flag slowed down...but up here it was really great...we were like 'Yay!' They were weird and fucked-up sounding." Turner explained grunge's integration of metal influences, noting, "Hard rock and metal was never that much of an enemy of punk like it was for other scenes. Here, it was like, 'There's only twenty people here, you can't really find a group to hate.'" Bands began to mix metal and punk in the Seattle music scene around 1984, with much of the credit for this fusion going to <a title="The U-Men" href="//en.wikipedia.org/wiki/The_U-Men">The U-Men</a>.</p>
135 <p>The raw, distorted and feedback-intensive sound of some <a title="Noise rock" href="//en.wikipedia.org/wiki/Noise_rock">noise rock</a> bands had an influence on grunge. Among them are Wisconsin's <a title="Killdozer (band)" href="//en.wikipedia.org/wiki/Killdozer_(band)">Killdozer</a>, and most notably <a title="San Francisco" href="//en.wikipedia.org/wiki/San_Francisco">San Francisco</a>'s Flipper, a band known for its slowed-down and murky "noise punk". The <a title="Butthole Surfers" href="//en.wikipedia.org/wiki/Butthole_Surfers">Butthole Surfers</a>' mix of punk, heavy metal and noise rock was a major influence, particularly on the early work of Soundgarden.</p>
136 <p>After <a title="Neil Young" href="//en.wikipedia.org/wiki/Neil_Young">Neil Young</a> played a few concerts with Pearl Jam and recorded the album <i><a title="Mirror Ball (Neil Young album)" href="//en.wikipedia.org/wiki/Mirror_Ball_(Neil_Young_album)">Mirror Ball</a></i> with them, some members of the media gave Young the title "Godfather of Grunge". This was grounded on his work with his band <a title="Crazy Horse (band)" href="//en.wikipedia.org/wiki/Crazy_Horse_(band)">Crazy Horse</a> and his regular use of distorted guitar, most notably on the album <i><a title="Rust Never Sleeps" href="//en.wikipedia.org/wiki/Rust_Never_Sleeps">Rust Never Sleeps</a></i>. A similarly influential yet often overlooked album is <i><a title="Neurotica" href="//en.wikipedia.org/wiki/Neurotica">Neurotica</a></i> by <a title="Redd Kross" href="//en.wikipedia.org/wiki/Redd_Kross">Redd Kross</a>, about which the co-founder of Sub Pop said, "<i>Neurotica</i> was a life changer for me and for a lot of people in the Seattle music community."</p>
137 <h3>
138 <span id="Early_development" class="mw-headline">Early development</span>
139 </h3>
140 <p>A seminal release in the development of grunge was the <i><a title="Deep Six (album)" href="//en.wikipedia.org/wiki/Deep_Six_(album)">Deep Six</a></i> compilation, released by <a title="C/Z Records" href="//en.wikipedia.org/wiki/C/Z_Records">C/Z Records</a> in 1986. The record featured multiple tracks by six bands: Green River, <a title="Soundgarden" href="//en.wikipedia.org/wiki/Soundgarden">Soundgarden</a>, Melvins, <a title="Malfunkshun" href="//en.wikipedia.org/wiki/Malfunkshun">Malfunkshun</a>, <a title="Skin Yard" href="//en.wikipedia.org/wiki/Skin_Yard">Skin Yard</a>, and The U-Men. For many of them it was their first appearance on record. The artists had "a mostly heavy, aggressive sound that melded the slower tempos of heavy metal with the intensity of hardcore". As Jack Endino recalled, "People just said, 'Well, what kind of music is this? This isn't metal, it's not punk, What is it?' [...] People went 'Eureka! These bands all have something in common.'"</p>
141 <p>Later that year <a title="Bruce Pavitt" href="//en.wikipedia.org/wiki/Bruce_Pavitt">Bruce Pavitt</a> released the <i><a title="Sub Pop 100" href="//en.wikipedia.org/wiki/Sub_Pop_100">Sub Pop 100</a></i> compilation and Green River's <i><a title="Dry As a Bone" href="//en.wikipedia.org/wiki/Dry_As_a_Bone">Dry As a Bone</a></i> EP as part of his new label, Sub Pop. An early Sub Pop catalog described the Green River EP as "ultra-loose GRUNGE that destroyed the morals of a generation". Sub Pop's Bruce Pavitt and Jonathan Poneman, inspired by other regional music scenes in music history, worked to ensure that their label projected a "<a title="Music of Seattle" href="//en.wikipedia.org/wiki/Music_of_Seattle">Seattle sound</a>", reinforced by a similar style of production and album packaging. While music writer <a title="Michael Azerrad" href="//en.wikipedia.org/wiki/Michael_Azerrad">Michael Azerrad</a> acknowledged that early grunge bands like Mudhoney, Soundgarden, and Tad had disparate sounds, he noted "to the objective observer, there were some distinct similarities."</p>
142 <p>Early grunge concerts were sparsely attended (many by fewer than a dozen people) but Sub Pop photographer <a title="Charles Peterson (photographer)" href="//en.wikipedia.org/wiki/Charles_Peterson_(photographer)">Charles Peterson</a>'s pictures helped create the impression that such concerts were major events. Mudhoney, which was formed by former members of Green River, served as the flagship band of Sub Pop during their entire time with the label and spearheaded the Seattle grunge movement. Other record labels in the Pacific Northwest that helped promote grunge included C/Z Records, <a title="Estrus Records" href="//en.wikipedia.org/wiki/Estrus_Records">Estrus Records</a>, EMpTy Records and <a title="PopLlama Records" href="//en.wikipedia.org/wiki/PopLlama_Records">PopLlama Records</a>.</p>
143 <p>Grunge attracted media attention in the United Kingdom after Pavitt and Poneman asked journalist <a title="Everett True" href="//en.wikipedia.org/wiki/Everett_True">Everett True</a> from the British magazine <i><a title="Melody Maker" href="//en.wikipedia.org/wiki/Melody_Maker">Melody Maker</a></i> to write an article on the local music scene. This exposure helped to make grunge known outside of the local area during the late 1980s and drew more people to local shows. The appeal of grunge to the music press was that it "promised the return to a notion of a regional, authorial vision for <a title="American rock" href="//en.wikipedia.org/wiki/American_rock">American rock</a>". Grunge's popularity in the <a title="Underground music" href="//en.wikipedia.org/wiki/Underground_music">underground music</a> scene was such that bands began to move to Seattle and approximate the look and sound of the original grunge bands. Mudhoney's Steve Turner said, "It was really bad. Pretend bands were popping up here, things weren't coming from where we were coming from." As a reaction, many grunge bands diversified their sound, with Nirvana and Tad in particular creating more melodic songs. Dawn Anderson of the Seattle fanzine Backlash recalled that by 1990 many locals had tired of the hype surrounding the Seattle scene and hoped that media exposure had dissipated.</p>
144 <h3>
145 <span id="Mainstream_success" class="mw-headline">Mainstream success</span>
146 </h3>
147 <div class="thumb tright">
148 <div style="width:252px;" class="thumbinner">
149 <a class="image" href="//en.wikipedia.org/wiki/File:Nirvana_around_1992.jpg"><img data-file-height="346" data-file-width="367" srcset="//upload.wikimedia.org/wikipedia/commons/1/19/Nirvana_around_1992.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/1/19/Nirvana_around_1992.jpg 2x" class="thumbimage" height="236" width="250" src="//upload.wikimedia.org/wikipedia/commons/thumb/1/19/Nirvana_around_1992.jpg/250px-Nirvana_around_1992.jpg" alt=""></a>
150 <div class="thumbcaption">
151 <div class="magnify">
152 <a title="Enlarge" class="internal" href="//en.wikipedia.org/wiki/File:Nirvana_around_1992.jpg"><img alt="" height="11" width="15" src="//bits.wikimedia.org/static-1.24wmf11/skins/common/images/magnify-clip.png"></a>
153 </div>
154 <a title="Nirvana (band)" href="//en.wikipedia.org/wiki/Nirvana_(band)">Nirvana</a> performing at the 1992 <a class="mw-redirect" title="MTV Video Music Awards" href="//en.wikipedia.org/wiki/MTV_Video_Music_Awards">MTV Video Music Awards</a>.</div>
155 </div>
156 </div>
157 <p>Grunge bands had made inroads to the musical mainstream in the late 1980s. Soundgarden was the first grunge band to sign to a major label when they joined the roster of <a title="A&amp;M Records" href="//en.wikipedia.org/wiki/A%26M_Records">A&amp;M Records</a> in 1989. Soundgarden, along with other major label signings <a title="Alice in Chains" href="//en.wikipedia.org/wiki/Alice_in_Chains">Alice in Chains</a> and <a title="Screaming Trees" href="//en.wikipedia.org/wiki/Screaming_Trees">Screaming Trees</a>, performed "okay" with their initial major label releases, according to Jack Endino. <a title="Nirvana (band)" href="//en.wikipedia.org/wiki/Nirvana_(band)">Nirvana</a>, originally from <a title="Aberdeen, Washington" href="//en.wikipedia.org/wiki/Aberdeen,_Washington">Aberdeen, Washington</a>, was also courted by major labels, finally signing with <a title="Geffen Records" href="//en.wikipedia.org/wiki/Geffen_Records">Geffen Records</a> in 1990. In September 1991, the band released its major label debut, <i><a title="Nevermind" href="//en.wikipedia.org/wiki/Nevermind">Nevermind</a></i>. The album was at best hoped to be a minor success on par with Sonic Youth's <i><a title="Goo (album)" href="//en.wikipedia.org/wiki/Goo_(album)">Goo</a></i>, which Geffen had released a year earlier. It was the release of the album's first single "<a title="Smells Like Teen Spirit" href="//en.wikipedia.org/wiki/Smells_Like_Teen_Spirit">Smells Like Teen Spirit</a>" that "marked the instigation of the grunge music phenomenon". Due to constant airplay of the song's music video on <a title="MTV" href="//en.wikipedia.org/wiki/MTV">MTV</a>, <i>Nevermind</i> was selling 400,000 copies a week by Christmas 1991. In January 1992, <i>Nevermind</i> replaced <a title="Pop music" href="//en.wikipedia.org/wiki/Pop_music">pop</a> superstar <a title="Michael Jackson" href="//en.wikipedia.org/wiki/Michael_Jackson">Michael Jackson</a>'s <i><a title="Dangerous (Michael Jackson album)" href="//en.wikipedia.org/wiki/Dangerous_(Michael_Jackson_album)">Dangerous</a></i> at number one on the <a title="Billboard 200" href="//en.wikipedia.org/wiki/Billboard_200"><i>Billboard</i> 200</a>.</p>
158 <p>The success of <i>Nevermind</i> surprised the music industry. <i>Nevermind</i> not only popularized grunge, but also established "the cultural and commercial viability of alternative rock in general." Michael Azerrad asserted that <i>Nevermind</i> symbolized "a sea-change in rock music" in which the <a title="Glam metal" href="//en.wikipedia.org/wiki/Glam_metal">glam metal</a> that had dominated rock music at that time fell out of favor in the face of music that was perceived as authentic and culturally relevant. Grunge made it possible for genres thought to be of a niche audience, no matter how radical, to prove their marketability and be co-opted by the mainstream, cementing the formation of an individualist, fragmented culture. Other grunge bands subsequently replicated Nirvana's success. <a title="Pearl Jam" href="//en.wikipedia.org/wiki/Pearl_Jam">Pearl Jam</a>, which featured former <a title="Mother Love Bone" href="//en.wikipedia.org/wiki/Mother_Love_Bone">Mother Love Bone</a> members <a title="Jeff Ament" href="//en.wikipedia.org/wiki/Jeff_Ament">Jeff Ament</a> and <a title="Stone Gossard" href="//en.wikipedia.org/wiki/Stone_Gossard">Stone Gossard</a>, had released its debut album <i><a title="Ten (Pearl Jam album)" href="//en.wikipedia.org/wiki/Ten_(Pearl_Jam_album)">Ten</a></i> in August 1991, a month before <i>Nevermind</i>, but album sales only picked up a year later. By the second half of 1992 <i>Ten</i> had become a breakthrough success, being certified gold and reaching number two on the <i>Billboard</i> charts.</p>
159 <p>Soundgarden's album <i><a title="Badmotorfinger" href="//en.wikipedia.org/wiki/Badmotorfinger">Badmotorfinger</a></i> and Alice in Chains' <i><a title="Dirt (Alice in Chains album)" href="//en.wikipedia.org/wiki/Dirt_(Alice_in_Chains_album)">Dirt</a></i>, along with the <i><a title="Temple of the Dog" href="//en.wikipedia.org/wiki/Temple_of_the_Dog">Temple of the Dog</a></i> album collaboration featuring members of Pearl Jam and Soundgarden, were also among the 100 top selling albums of 1992. The popular breakthrough of these grunge bands prompted <i>Rolling Stone</i> to nickname Seattle "the new <a title="Liverpool" href="//en.wikipedia.org/wiki/Liverpool">Liverpool</a>". Major record labels signed most of the prominent grunge bands in Seattle, while a second influx of bands moved to the city in hopes of success. The grunge scene was the backdrop in the 1992 <a title="Cameron Crowe" href="//en.wikipedia.org/wiki/Cameron_Crowe">Cameron Crowe</a> film <i><a title="Singles (1992 film)" href="//en.wikipedia.org/wiki/Singles_(1992_film)">Singles</a></i>. There were several small roles, performances, and cameos in the film by popular Seattle grunge bands including Pearl Jam, Soundgarden, and Alice in Chains. Filmed in and around Seattle in 1991, the film was not released until 1992 during the height of grunge popularity.</p>
160 <p>The popularity of grunge resulted in a large interest in the Seattle music scene's perceived cultural traits. While the Seattle music scene in the late 1980s and early 1990s in actuality consisted of various styles and genres of music, its representation in the media "served to depict Seattle as a music 'community' in which the focus was upon the ongoing exploration of one musical idiom, namely grunge". The fashion industry marketed "grunge fashion" to consumers, charging premium prices for items such as knit ski hats. Critics asserted that advertising was co-opting elements of grunge and turning it into a fad. <i><a title="Entertainment Weekly" href="//en.wikipedia.org/wiki/Entertainment_Weekly">Entertainment Weekly</a></i> commented in a 1993 article, "There hasn't been this kind of exploitation of a subculture since the media discovered hippies in the '60s". The <i><a title="The New York Times" href="//en.wikipedia.org/wiki/The_New_York_Times">New York Times</a></i> compared the "grunging of America" to the mass-marketing of <a title="Punk rock" href="//en.wikipedia.org/wiki/Punk_rock">punk rock</a>, <a title="Disco" href="//en.wikipedia.org/wiki/Disco">disco</a>, and <a title="Hip hop music" href="//en.wikipedia.org/wiki/Hip_hop_music">hip hop</a> in previous years. Ironically the <i>New York Times</i> was tricked into printing a fake list of slang terms that were supposedly used in the grunge scene; often referred to as the <a title="Grunge speak" href="//en.wikipedia.org/wiki/Grunge_speak">grunge speak</a> hoax. This media hype surrounding grunge was documented in the 1996 documentary <i><a title="Hype!" href="//en.wikipedia.org/wiki/Hype!">Hype!</a></i>
161 </p>
162 <p>A backlash against grunge began to develop in Seattle; in late 1992 Jonathan Poneman said that in the city, "All things grunge are treated with the utmost cynicism and amusement [. . .] Because the whole thing is a fabricated movement and always has been." Many grunge artists were uncomfortable with their success and the resulting attention it brought. Nirvana's Kurt Cobain told Michael Azerrad, "Famous is the last thing I wanted to be." Pearl Jam also felt the burden of success, with much of the attention falling on frontman <a title="Eddie Vedder" href="//en.wikipedia.org/wiki/Eddie_Vedder">Eddie Vedder</a>.</p>
163 <p>Nirvana's follow-up album <i><a title="In Utero (album)" href="//en.wikipedia.org/wiki/In_Utero_(album)">In Utero</a></i> (1993) was an intentionally abrasive album that Nirvana bassist <a title="Krist Novoselic" href="//en.wikipedia.org/wiki/Krist_Novoselic">Krist Novoselic</a> described as a "wild aggressive sound, a true alternative record" Nevertheless, upon its release in September 1993 <i>In Utero</i> topped the <i>Billboard</i> charts. Pearl Jam also continued to perform well commercially with its second album, <i><a title="Vs. (Pearl Jam album)" href="//en.wikipedia.org/wiki/Vs._(Pearl_Jam_album)">Vs.</a></i> (1993). The album sold a record 950,378 copies in its first week of release, topped the <i>Billboard</i> charts, and outperformed all other entries in the top ten that week combined.</p>
164 <p>During this period, acts with a "Grunge sound" that were not from Seattle were often panned by critics, who accused them of being copycat bands. <a title="Stone Temple Pilots" href="//en.wikipedia.org/wiki/Stone_Temple_Pilots">Stone Temple Pilots</a> in particular fell victim to this. In a January 1994 <i><a title="Rolling Stone" href="//en.wikipedia.org/wiki/Rolling_Stone">Rolling Stone</a></i> poll, <a title="Stone Temple Pilots" href="//en.wikipedia.org/wiki/Stone_Temple_Pilots">Stone Temple Pilots</a> was simultaneously voted Best New Band by <i>Rolling Stone</i>'s readers and Worst New Band by the magazine's music critics, highlighting the disparity between critics and fans.</p>
165 <h3>
166 <span id="Decline_of_mainstream_popularity" class="mw-headline">Decline of mainstream popularity</span>
167 </h3>
168 <p>A number of factors contributed to grunge's decline in prominence. During the latter half of the 1990s, grunge was supplanted by <a title="Post-grunge" href="//en.wikipedia.org/wiki/Post-grunge">post-grunge</a>, which remained commercially viable into the start of the 21st century. Post-grunge bands such as <a title="Candlebox" href="//en.wikipedia.org/wiki/Candlebox">Candlebox</a> and <a title="Bush (band)" href="//en.wikipedia.org/wiki/Bush_(band)">Bush</a> emerged soon after grunge's breakthrough. These artists lacked the underground roots of grunge and were largely influenced by what grunge had become, namely "a wildly popular form of inward-looking, serious-minded hard rock". Post-grunge was a more commercially viable genre that tempered the distorted guitars of grunge with polished, radio-ready production.</p>
169 <p>Conversely, another alternative rock genre, <a title="Britpop" href="//en.wikipedia.org/wiki/Britpop">Britpop</a>, emerged in part as a reaction against the dominance of grunge in the United Kingdom. In contrast to the dourness of grunge, Britpop was defined by "youthful exuberance and desire for recognition". Britpop artists were vocal about their disdain for grunge. In a 1993 <i><a title="NME" href="//en.wikipedia.org/wiki/NME">NME</a></i> interview, <a title="Damon Albarn" href="//en.wikipedia.org/wiki/Damon_Albarn">Damon Albarn</a> of Britpop band <a title="Blur (band)" href="//en.wikipedia.org/wiki/Blur_(band)">Blur</a> agreed with interviewer <a title="John Harris (critic)" href="//en.wikipedia.org/wiki/John_Harris_(critic)">John Harris</a>' assertion that Blur was an "anti-grunge band", and said, "Well, that's good. If punk was about getting rid of hippies, then I'm getting rid of grunge". <a title="Noel Gallagher" href="//en.wikipedia.org/wiki/Noel_Gallagher">Noel Gallagher</a> of <a title="Oasis (band)" href="//en.wikipedia.org/wiki/Oasis_(band)">Oasis</a>, while a fan of Nirvana, wrote music that refuted the pessimistic nature of grunge. Gallagher noted in 2006 that the 1994 Oasis single "<a title="Live Forever" href="//en.wikipedia.org/wiki/Live_Forever">Live Forever</a>" "was written in the middle of grunge and all that, and I remember Nirvana had a tune called 'I Hate Myself and I Want to Die,' and I was like...'Well, I'm not fucking having that.' As much as I fucking like him [Cobain] and all that shit, I'm not having that. I can't have people like that coming over here, on <a title="Heroin" href="//en.wikipedia.org/wiki/Heroin">smack</a>, fucking saying that they hate themselves and they wanna die. That's fucking rubbish."</p>
170 <div class="thumb tright">
171 <div style="width:252px;" class="thumbinner">
172 <a class="image" href="//en.wikipedia.org/wiki/File:Badmotorfinger_logo.jpg"></a>
173 <div class="thumbcaption">
174 <div class="magnify">
175 <a title="Enlarge" class="internal" href="//en.wikipedia.org/wiki/File:Badmotorfinger_logo.jpg"></a>
176 </div>
177 <a title="Soundgarden" href="//en.wikipedia.org/wiki/Soundgarden">Soundgarden</a> <a title="Badmotorfinger" href="//en.wikipedia.org/wiki/Badmotorfinger">Badmotorfinger</a> logo in concert, 2011.</div>
178 </div>
179 </div>
180 <p>During the mid-1990s many grunge bands broke up or became less visible. Kurt Cobain, labeled by <i>Time</i> as "the <a title="John Lennon" href="//en.wikipedia.org/wiki/John_Lennon">John Lennon</a> of the swinging Northwest", appeared "unusually tortured by success" and struggled with an addiction to heroin. Rumors surfaced in early 1994 that Cobain suffered a drug overdose and that Nirvana was breaking up. On April 8, 1994, Cobain was found dead in his Seattle home from an apparently self-inflicted gunshot wound; Nirvana summarily disbanded. That same year Pearl Jam canceled its summer tour in protest of what it regarded as ticket vendor <a title="Ticketmaster" href="//en.wikipedia.org/wiki/Ticketmaster">Ticketmaster</a>'s unfair business practices. Pearl Jam then began a boycott of the company; however, Pearl Jam's initiative to play only at non-Ticketmaster venues effectively, with a few exceptions, prevented the band from playing shows in the United States for the next three years. In 1996 Alice in Chains gave their final performances with their ailing estranged lead singer, <a title="Layne Staley" href="//en.wikipedia.org/wiki/Layne_Staley">Layne Staley</a>, who subsequently died from an overdose of cocaine and heroin in 2002. That same year Soundgarden and Screaming Trees released their final studio albums of the 1990s, <i><a title="Down on the Upside" href="//en.wikipedia.org/wiki/Down_on_the_Upside">Down on the Upside</a></i> and <i><a title="Dust (Screaming Trees album)" href="//en.wikipedia.org/wiki/Dust_(Screaming_Trees_album)">Dust</a></i>, respectively.</p>
181 <h3>
182 <span id="21st_century" class="mw-headline">21st century</span>
183 </h3>
184 <p>Some grunge bands have continued recording and touring with success, including, most significantly, <a title="Pearl Jam" href="//en.wikipedia.org/wiki/Pearl_Jam">Pearl Jam</a>. While in 2006 <i>Rolling Stone</i> writer Brian Hiatt described Pearl Jam as having "spent much of the past decade deliberately tearing apart their own fame", he noted the band developed a loyal concert following akin to that of the <a title="Grateful Dead" href="//en.wikipedia.org/wiki/Grateful_Dead">Grateful Dead</a>. Despite Nirvana's demise, the band has continued to be successful posthumously. Due to the high sales for Kurt Cobain's <i><a title="Journals (Cobain)" href="//en.wikipedia.org/wiki/Journals_(Cobain)">Journals</a></i> and the band's best-of compilation <i><a title="Nirvana (Nirvana album)" href="//en.wikipedia.org/wiki/Nirvana_(Nirvana_album)">Nirvana</a></i> upon their releases in 2002, <i>The New York Times</i> argued Nirvana "are having more success now than at any point since Mr. Cobain's suicide in 1994." The Nirvana song "<a title="You Know You're Right" href="//en.wikipedia.org/wiki/You_Know_You%27re_Right">You Know You're Right</a>" reached #1 on the <a class="mw-redirect" title="Hot Mainstream Rock Tracks" href="//en.wikipedia.org/wiki/Hot_Mainstream_Rock_Tracks">Hot Mainstream Rock Tracks</a> chart. In the middle of the first decade of the 21st century, <i><a title="The Seattle Times" href="//en.wikipedia.org/wiki/The_Seattle_Times">The Seattle Times</a></i> made note of grunge-influenced groups emerging in Seattle, including Post Stardom Depression, The Valley, and The Weapons. Similarly, <i><a title="The Guardian" href="//en.wikipedia.org/wiki/The_Guardian">The Guardian</a></i> reported of grunge-influenced groups from <a title="Yorkshire and the Humber" href="//en.wikipedia.org/wiki/Yorkshire_and_the_Humber">Yorkshire</a>, including <a title="Dinosaur Pile-Up" href="//en.wikipedia.org/wiki/Dinosaur_Pile-Up">Dinosaur Pile-Up</a>, The Old Romantic Killer Band, The Tempus, Above Them, <a title="Pulled Apart by Horses" href="//en.wikipedia.org/wiki/Pulled_Apart_by_Horses">Pulled Apart by Horses</a>, and <a title="Wonderswan (band)" href="//en.wikipedia.org/wiki/Wonderswan_(band)">Wonderswan</a>. Also, in 2003, the <i>New York Times</i> noted a resurgence in grunge fashion.</p>
185 <p>Alice In Chains reformed for a handful of reunion dates in 2005 with several different vocalists filing in for the late Layne Staley, eventually aligning with <a class="mw-redirect" title="William Duvall" href="//en.wikipedia.org/wiki/William_Duvall">William Duvall</a> and released their first record in 15 years in 2009 <i><a class="mw-redirect" title="Black Gives Way To Blue" href="//en.wikipedia.org/wiki/Black_Gives_Way_To_Blue">Black Gives Way To Blue</a></i> a return to grunge form with a <a title="Doom metal" href="//en.wikipedia.org/wiki/Doom_metal">doom metal</a> sensibility and cementing a new era without their original singer, while releasing another record in 2013 <i><a title="The Devil Put Dinosaurs Here" href="//en.wikipedia.org/wiki/The_Devil_Put_Dinosaurs_Here">The Devil Put Dinosaurs Here</a></i>, reaching #2 on the <i>Billboard</i> 200 and displaying more <a title="Stoner rock" href="//en.wikipedia.org/wiki/Stoner_rock">stoner rock</a> and <a title="Sludge metal" href="//en.wikipedia.org/wiki/Sludge_metal">sludge metal</a> influence. Soundgarden re-formed in 2010 and released <i><a title="King Animal" href="//en.wikipedia.org/wiki/King_Animal">King Animal</a></i> two years later which reached the top five of the national albums charts in Denmark, New Zealand, and the United States.</p>
186 <h2>
187 <span id="Prominent_music_acts" class="mw-headline">Prominent music acts</span>
188 </h2>
189 <p>See Figure 4.1. (Bands labelled as 'grunge' by respondents).</p>
190 <dl>
191 <dt>Seattle area</dt>
192 </dl>
193 <h2>
194 <span id="See_also" class="mw-headline">See also</span>
195 </h2>
196 <ul>
197 <li>
198 <a title="Post-grunge" href="//en.wikipedia.org/wiki/Post-grunge">Post-grunge</a>
199 </li>
200 <li>
201 <a title="Alternative metal" href="//en.wikipedia.org/wiki/Alternative_metal">Alternative metal</a>
202 </li>
203 <li>
204 <a title="List of American grunge bands" href="//en.wikipedia.org/wiki/List_of_American_grunge_bands">List of American grunge bands</a>
205 </li>
206 <li>
207 <a title="List of grunge albums" href="//en.wikipedia.org/wiki/List_of_grunge_albums">List of grunge albums</a>
208 </li>
209 <li>
210 <a title="Riot grrrl" href="//en.wikipedia.org/wiki/Riot_grrrl">Riot grrrl</a>
211 </li>
212 </ul>
213 <h2>
214 <span id="Notes" class="mw-headline">Notes</span>
215 </h2>
216 <div style="-moz-column-count: 2; -webkit-column-count: 2; column-count: 2; list-style-type: decimal;" class="reflist columns references-column-count references-column-count-2">
217 <ol class="references">
218 <li id="cite_note-allmusic_grunge-1">
219 <span class="mw-cite-backlink">^ <a href="#cite_ref-allmusic_grunge_1-0"></a> <a href="#cite_ref-allmusic_grunge_1-1"></a> <a href="#cite_ref-allmusic_grunge_1-2"></a> <a href="#cite_ref-allmusic_grunge_1-3"></a> <a href="#cite_ref-allmusic_grunge_1-4"></a> <a href="#cite_ref-allmusic_grunge_1-5"></a></span> <span class="reference-text"><span class="citation web"><a href="http://www.allmusic.com/style/grunge-ma0000002626" class="external text" rel="nofollow">"Grunge"</a>. <a class="mw-redirect" title="Allmusic" href="//en.wikipedia.org/wiki/Allmusic">Allmusic</a>. <a title="Rovi Corporation" href="//en.wikipedia.org/wiki/Rovi_Corporation">Rovi Corporation</a><span class="reference-accessdate">. Retrieved 24 August 2012</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=Grunge&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.allmusic.com%2Fstyle%2Fgrunge-ma0000002626&amp;rft.jtitle=%27%27Allmusic%27%27&amp;rft.pub=Rovi+Corporation&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
220 </li>
221 <li id="cite_note-2">
222 <span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><span class="citation news">Ramball, Paul (April 1, 1978). "he American Midwest: Akron and Cleveland--Exploring alternative hives of industry in Akron, City of Rubber, and Cleveland, City of Steel,". <i>NME</i>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=he+American+Midwest%3A+Akron+and+Cleveland--Exploring+alternative+hives+of+industry+in+Akron%2C+City+of+Rubber%2C+and+Cleveland%2C+City+of+Steel%2C&amp;rft.aufirst=Paul&amp;rft.aulast=Ramball&amp;rft.au=Ramball%2C+Paul&amp;rft.date=April+1%2C+1978&amp;rft.genre=article&amp;rft.jtitle=NME&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span> <span class="error citation-comment" style="display:none;font-size:100%"><code>|accessdate=</code> requires <code>|url=</code> (<a title="Help:CS1 errors" href="//en.wikipedia.org/wiki/Help:CS1_errors#accessdate_missing_url">help</a>)</span></span>
223 </li>
224 <li id="cite_note-3">
225 <span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text">Humphrey, Clark. <i>Loser: The Real Seattle Music Story</i>. New York: Harry N. Abrams, 1999. <a class="internal mw-magiclink-isbn" href="//en.wikipedia.org/wiki/Special:BookSources/1929069243">ISBN 1-929069-24-3</a>, p. 63.</span>
226 </li>
227 <li id="cite_note-4">
228 <span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><span class="citation news"><a title="Everett True" href="//en.wikipedia.org/wiki/Everett_True">True, Everett</a> (20 January 2001). <a href="http://www.thestranger.com/seattle/no-end-in-sight/Content?oid=6267" class="external text" rel="nofollow">"No End in Sight: Mudhoney Is Alive and Well"</a>. <i><a title="The Stranger (newspaper)" href="//en.wikipedia.org/wiki/The_Stranger_(newspaper)">The Stranger</a></i><span class="reference-accessdate">. Retrieved 11 September 2009</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=No+End+in+Sight%3A+Mudhoney+Is+Alive+and+Well&amp;rft.aufirst=Everett&amp;rft.aulast=True&amp;rft.au=True%2C+Everett&amp;rft.date=20+January+2001&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.thestranger.com%2Fseattle%2Fno-end-in-sight%2FContent%3Foid%3D6267&amp;rft.jtitle=The+Stranger&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
229 </li>
230 <li id="cite_note-5">
231 <span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><a title="Clinton Heylin" href="//en.wikipedia.org/wiki/Clinton_Heylin">Heylin, Clinton</a>. <i>Babylon's Burning: From Punk to Grunge</i>. Conongate, 2007. <a class="internal mw-magiclink-isbn" href="//en.wikipedia.org/wiki/Special:BookSources/1841958794">ISBN 1-84195-879-4</a>, p. 606.</span>
232 </li>
233 <li id="cite_note-Hype-6">
234 <span class="mw-cite-backlink">^ <a href="#cite_ref-Hype_6-0"></a> <a href="#cite_ref-Hype_6-1"></a> <a href="#cite_ref-Hype_6-2"></a> <a href="#cite_ref-Hype_6-3"></a> <a href="#cite_ref-Hype_6-4"></a> <a href="#cite_ref-Hype_6-5"></a> <a href="#cite_ref-Hype_6-6"></a> <a href="#cite_ref-Hype_6-7"></a></span> <span class="reference-text">Pray, D., Helvey-Pray Productions (1996). <i><a title="Hype!" href="//en.wikipedia.org/wiki/Hype!">Hype!</a></i> Republic Pictures.</span>
235 </li>
236 <li id="cite_note-7">
237 <span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><span class="citation news">Ragland, Cathy (19 November 1993). <a href="http://community.seattletimes.nwsource.com/archive/?date=19931119&amp;slug=1732607" class="external text" rel="nofollow">"Powerful, Melodic Gorilla Rises Above A Sea Of Grunge"</a>. <i>The Seattle Times</i>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=Powerful%2C+Melodic+Gorilla+Rises+Above+A+Sea+Of+Grunge&amp;rft.aufirst=Cathy&amp;rft.aulast=Ragland&amp;rft.au=Ragland%2C+Cathy&amp;rft.date=19+November+1993&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fcommunity.seattletimes.nwsource.com%2Farchive%2F%3Fdate%3D19931119%26slug%3D1732607&amp;rft.jtitle=The+Seattle+Times&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
238 </li>
239 <li id="cite_note-success_NYT-8">
240 <span class="mw-cite-backlink">^ <a href="#cite_ref-success_NYT_8-0"></a> <a href="#cite_ref-success_NYT_8-1"></a> <a href="#cite_ref-success_NYT_8-2"></a> <a href="#cite_ref-success_NYT_8-3"></a> <a href="#cite_ref-success_NYT_8-4"></a> <a href="#cite_ref-success_NYT_8-5"></a></span> <span class="reference-text">Marin, Rick. "Grunge: A Success Story". <i><a title="The New York Times" href="//en.wikipedia.org/wiki/The_New_York_Times">The New York Times</a></i>. 15 November 1992.</span>
241 </li>
242 <li id="cite_note-9">
243 <span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><span class="citation news">Freind, Bill (29 January 2002). <a href="http://archive.is/5PhI" class="external text" rel="nofollow">"Grunge"</a>. <i>St. James Encyclopedia of Pop Culture</i>. Archived from <a href="http://findarticles.com/p/articles/mi_g1epc/is_tov/ai_2419100545/" class="external text" rel="nofollow">the original</a> on 28 Jun 2012<span class="reference-accessdate">. Retrieved 29 September 2013</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.au=Freind%2C+Bill&amp;rft.aulast=Freind%2C+Bill&amp;rft.btitle=Grunge&amp;rft.date=29+January+2002&amp;rft.genre=book&amp;rft_id=http%3A%2F%2Ffindarticles.com%2Fp%2Farticles%2Fmi_g1epc%2Fis_tov%2Fai_2419100545%2F&amp;rft.pub=%27%27St.+James+Encyclopedia+of+Pop+Culture%27%27&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span style="display:none;">&nbsp;</span></span></span>
244 </li>
245 <li id="cite_note-10">
246 <span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text">Marsh, Dave. "LIVE THROUGH THIS....". Rock &amp; Rap Archives 124.</span>
247 </li>
248 <li id="cite_note-11">
249 <span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text">Aston, Martin. "Freak Scene". <i>Q: Nirvana and the Story of Grunge</i>. December 2005. p. 12.</span>
250 </li>
251 <li id="cite_note-12">
252 <span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><a title="Mick Wall" href="//en.wikipedia.org/wiki/Mick_Wall">Wall, Mick</a>. "Northwest Passage". <i>Q: Nirvana and the Story of Grunge</i>. December 2005. p. 9.</span>
253 </li>
254 <li id="cite_note-13">
255 <span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text">Wall, Mick. "Northwest Passage". <i>Q: Nirvana and the Story of Grunge</i>. December 2005. p. 8.</span>
256 </li>
257 <li id="cite_note-14">
258 <span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text">Everley, Dave. "Daydream Nation". <i>Q: Nirvana and the Story of Grunge</i>. December 2005. p. 39.</span>
259 </li>
260 <li id="cite_note-15">
261 <span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text">Fricke, David. "Kurt Cobain: The Rolling Stone Interview". <i><a title="Rolling Stone" href="//en.wikipedia.org/wiki/Rolling_Stone">Rolling Stone</a></i>. 27 January 1994.</span>
262 </li>
263 <li id="cite_note-16">
264 <span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><span class="citation book"><i><a title="Guitar World" href="//en.wikipedia.org/wiki/Guitar_World">Guitar World</a></i> (1998). <a href="http://books.google.com/books?id=4R0xtoz_gQ8C&amp;printsec=frontcover" class="external text" rel="nofollow"><i>Guitar World Presents Nirvana and the Grunge Revolution</i></a>. Milwaukee: <a title="Hal Leonard Corporation" href="//en.wikipedia.org/wiki/Hal_Leonard_Corporation">Hal Leonard Corporation</a>. pp.&nbsp;<a href="http://books.google.com/books?id=4R0xtoz_gQ8C&amp;pg=178&amp;dq=%22Beatles+and+Abba+just+as+much+as+we+liked+Flipper+and+Black+Flag%22%22You+listen+to+any+Pixies+record+and+it's+all+over+there.+Or+even+Black+Sabbath's%22%22War%20Pigs%22%22it's+there:+the+power+of+the+dynamic.+We+just+sort+of+abused+it+with+pop+songs+and+got+sick+with+it.%22" class="external text" rel="nofollow">170-1</a>. <a title="International Standard Book Number" href="//en.wikipedia.org/wiki/International_Standard_Book_Number">ISBN</a>&nbsp;<a title="Special:BookSources/0-79359006-X" href="//en.wikipedia.org/wiki/Special:BookSources/0-79359006-X">0-79359006-X</a>. <a class="internal mw-magiclink-isbn" href="//en.wikipedia.org/wiki/Special:BookSources/9780793590063">ISBN 978-0-79359006-3</a>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.au=%27%27Guitar+World%27%27&amp;rft.aulast=%27%27Guitar+World%27%27&amp;rft.btitle=Guitar+World+Presents+Nirvana+and+the+Grunge+Revolution&amp;rft.date=1998&amp;rft.genre=book&amp;rft_id=http%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3D4R0xtoz_gQ8C%26printsec%3Dfrontcover&amp;rft.isbn=0-79359006-X&amp;rft.pages=http%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3D4R0xtoz_gQ8C%26pg%3D178%26dq%3D%2522Beatles%2Band%2BAbba%2Bjust%2Bas%2Bmuch%2Bas%2Bwe%2Bliked%2BFlipper%2Band%2BBlack%2BFlag%2522%2522You%2Blisten%2Bto%2Bany%2BPixies%2Brecord%2Band%2Bit%27s%2Ball%2Bover%2Bthere.%2BOr%2Beven%2BBlack%2BSabbath%27s%2522%2522War%2520Pigs%2522%2522it%27s%2Bthere%3A%2Bthe%2Bpower%2Bof%2Bthe%2Bdynamic.%2BWe%2Bjust%2Bsort%2Bof%2Babused%2Bit%2Bwith%2Bpop%2Bsongs%2Band%2Bgot%2Bsick%2Bwith%2Bit.%2522+170-1.&amp;rft.place=Milwaukee&amp;rft.pub=Hal+Leonard+Corporation&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span style="display:none;">&nbsp;</span></span></span>
265 </li>
266 <li id="cite_note-17">
267 <span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text">Heylin, p. 601.</span>
268 </li>
269 <li id="cite_note-18">
270 <span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text">Carden, Andrew. "Black Sabbath". <i>Q: Nirvana and the Story of Grunge</i>. December 2005. p. 34.</span>
271 </li>
272 <li id="cite_note-19">
273 <span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><a title="Bob Gulla" href="//en.wikipedia.org/wiki/Bob_Gulla">Gulla, Bob</a>, <i>The Greenwood Encyclopedia of Rock History: The grunge and post-grunge years, 1991-2005</i>, <a title="Greenwood Publishing Group" href="//en.wikipedia.org/wiki/Greenwood_Publishing_Group">Greenwood Press</a>, 2006, p. 231.</span>
274 </li>
275 <li id="cite_note-20">
276 <span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text">Brannigan, Paul. "Outshined". <i>Q: Nirvana and the Story of Grunge</i>. December 2005. p. 102.</span>
277 </li>
278 <li id="cite_note-21">
279 <span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><span class="citation book"><i>Guitar World</i> (1998). <a href="http://books.google.com/books?id=4R0xtoz_gQ8C&amp;pg=PT8&amp;dq=%22Seattle.+Heign.+The.+Rise.+and.+Fall.+of.+Seattle.+Grunge.+By+Jon+Wiederhorn%22" class="external text" rel="nofollow">"Seattle Reign. The Rise and Fall of Seattle Grunge. By Jon Wiederhorn (pp. 1-12)"</a>. "<a href="http://books.google.com/books?id=4R0xtoz_gQ8C&amp;pg=PT10&amp;dq=%22So+what+exactly+is+grunge?%22%22Picture+a+supergroup+made+up+of+Creedence+Clearwater+Revival,+Black+Sabbath+and+the+Stooges,+and+you're+pretty+close%22" class="external text" rel="nofollow">Quote</a>."</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.au=%27%27Guitar+World%27%27&amp;rft.aulast=%27%27Guitar+World%27%27&amp;rft.btitle=Seattle+Reign.+The+Rise+and+Fall+of+Seattle+Grunge.+By+Jon+Wiederhorn+%28pp.+1-12%29&amp;rft.date=1998&amp;rft.genre=bookitem&amp;rft_id=http%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3D4R0xtoz_gQ8C%26pg%3DPT8%26dq%3D%2522Seattle.%2BHeign.%2BThe.%2BRise.%2Band.%2BFall.%2Bof.%2BSeattle.%2BGrunge.%2BBy%2BJon%2BWiederhorn%2522&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span style="display:none;">&nbsp;</span></span></span>
280 </li>
281 <li id="cite_note-Azerrad419-22">
282 <span class="mw-cite-backlink">^ <a href="#cite_ref-Azerrad419_22-0"></a> <a href="#cite_ref-Azerrad419_22-1"></a></span> <span class="reference-text"><a title="Michael Azerrad" href="//en.wikipedia.org/wiki/Michael_Azerrad">Azerrad, Michael</a>. <i><a title="Our Band Could Be Your Life" href="//en.wikipedia.org/wiki/Our_Band_Could_Be_Your_Life">Our Band Could Be Your Life: Scenes from the American Indie Underground, 1981-1991</a></i>. Boston: <a title="Little, Brown and Company" href="//en.wikipedia.org/wiki/Little,_Brown_and_Company">Little, Brown and Company</a>, 2001. <a class="internal mw-magiclink-isbn" href="//en.wikipedia.org/wiki/Special:BookSources/0316787531">ISBN 0-316-78753-1</a>, p. 419.</span>
283 </li>
284 <li id="cite_note-23">
285 <span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text">Azerrad (2001), p. 418.</span>
286 </li>
287 <li id="cite_note-24">
288 <span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text">Azerrad (2001), p. 439.</span>
289 </li>
290 <li id="cite_note-25">
291 <span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text">McNair, James. "<i>Rust Never Sleeps</i> - Neil Young". <i>Q: Nirvana and the Story of Grunge</i>. December 2005. p. 36.</span>
292 </li>
293 <li id="cite_note-ew_rk-26">
294 <span class="mw-cite-backlink"><b><a href="#cite_ref-ew_rk_26-0">^</a></b></span> <span class="reference-text"><span class="citation news"><a href="http://www.ew.com/ew/article/0,,308818,00.html" class="external text" rel="nofollow">"This is the most important band in America?"</a>. <i><a title="Entertainment Weekly" href="//en.wikipedia.org/wiki/Entertainment_Weekly">Entertainment Weekly</a></i>. 3 December 1993<span class="reference-accessdate">. Retrieved 15 June 2007</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=This+is+the+most+important+band+in+America%3F&amp;rft.date=3+December+1993&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.ew.com%2Few%2Farticle%2F0%2C%2C308818%2C00.html&amp;rft.jtitle=Entertainment+Weekly&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
295 </li>
296 <li id="cite_note-Azerrad420-27">
297 <span class="mw-cite-backlink"><b><a href="#cite_ref-Azerrad420_27-0">^</a></b></span> <span class="reference-text">Azerrad (2001), p. 420.</span>
298 </li>
299 <li id="cite_note-28">
300 <span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text">Azerrad (2001), pp. 436&acirc;&euro;&ldquo;37.</span>
301 </li>
302 <li id="cite_note-29">
303 <span class="mw-cite-backlink"><b><a href="#cite_ref-29">^</a></b></span> <span class="reference-text">Azerrad (2001), pp. 421&acirc;&euro;&ldquo;22.</span>
304 </li>
305 <li id="cite_note-30">
306 <span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text">Azerrad (2001), p. 411.</span>
307 </li>
308 <li id="cite_note-31">
309 <span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text">Lyons, James. <i>Selling Seattle: Representing Contemporary Urban America</i>. Wallflower, 2004. <a class="internal mw-magiclink-isbn" href="//en.wikipedia.org/wiki/Special:BookSources/1903364965">ISBN 1-903364-96-5</a>. pp. 128&acirc;&euro;&ldquo;29.</span>
310 </li>
311 <li id="cite_note-32">
312 <span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text">Azerrad (2001), p. 449.</span>
313 </li>
314 <li id="cite_note-33">
315 <span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span> <span class="reference-text">Azerrad (2001), p. 450.</span>
316 </li>
317 <li id="cite_note-34">
318 <span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span> <span class="reference-text">Wice, Nathaniel. "How Nirvana Made It". <i><a class="mw-redirect" title="Spin magazine" href="//en.wikipedia.org/wiki/Spin_magazine">Spin</a></i>. April 1992.</span>
319 </li>
320 <li id="cite_note-35">
321 <span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</a></b></span> <span class="reference-text">Lyons, p. 120</span>
322 </li>
323 <li id="cite_note-36">
324 <span class="mw-cite-backlink"><b><a href="#cite_ref-36">^</a></b></span> <span class="reference-text">"The <i>Billboard</i> 200". <i><a title="Billboard (magazine)" href="//en.wikipedia.org/wiki/Billboard_(magazine)">Billboard</a></i>. <a title="Prometheus Global Media" href="//en.wikipedia.org/wiki/Prometheus_Global_Media">Prometheus Global Media</a>. 11 January 1992.</span>
325 </li>
326 <li id="cite_note-37">
327 <span class="mw-cite-backlink"><b><a href="#cite_ref-37">^</a></b></span> <span class="reference-text"><span class="citation web">Olsen, Eric (9 April 2004). <a href="http://www.msnbc.msn.com/id/4652653/" class="external text" rel="nofollow">"10 years later, Cobain lives on in his music"</a>. <a title="MSNBC" href="//en.wikipedia.org/wiki/MSNBC">MSNBC.com</a>. <a href="http://web.archive.org/web/20070828075858/http://www.msnbc.msn.com/id/4652653/" class="external text" rel="nofollow">Archived</a> from the original on 28 August 2007<span class="reference-accessdate">. Retrieved 25 July 2007</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.aulast=Olsen%2C+Eric&amp;rft.au=Olsen%2C+Eric&amp;rft.btitle=10+years+later%2C+Cobain+lives+on+in+his+music&amp;rft.date=9+April+2004&amp;rft.genre=book&amp;rft_id=http%3A%2F%2Fwww.msnbc.msn.com%2Fid%2F4652653%2F&amp;rft.pub=MSNBC.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span style="display:none;">&nbsp;</span></span></span>
328 </li>
329 <li id="cite_note-38">
330 <span class="mw-cite-backlink"><b><a href="#cite_ref-38">^</a></b></span> <span class="reference-text">Azerrad (1994), pp. 229-30.</span>
331 </li>
332 <li id="cite_note-39">
333 <span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text"><span class="citation news">Swanson, Carl (3 February 2013). <a href="http://nymag.com/arts/art/features/1993-new-museum-exhibit/" class="external text" rel="nofollow">"Are We Still Living in 1993?"</a>. <i><a class="mw-redirect" title="New York Magazine" href="//en.wikipedia.org/wiki/New_York_Magazine">New York Magazine</a></i><span class="reference-accessdate">. Retrieved 26 February 2013</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=Are+We+Still+Living+in+1993%3F&amp;rft.aufirst=Carl&amp;rft.aulast=Swanson&amp;rft.au=Swanson%2C+Carl&amp;rft.date=3+February+2013&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fnymag.com%2Farts%2Fart%2Ffeatures%2F1993-new-museum-exhibit%2F&amp;rft.jtitle=New+York+Magazine&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
334 </li>
335 <li id="cite_note-40">
336 <span class="mw-cite-backlink"><b><a href="#cite_ref-40">^</a></b></span> <span class="reference-text">Pearlman, Nina. "Black Days". <i><a title="Guitar World" href="//en.wikipedia.org/wiki/Guitar_World">Guitar World</a></i>. December 2002.</span>
337 </li>
338 <li id="cite_note-41">
339 <span class="mw-cite-backlink"><b><a href="#cite_ref-41">^</a></b></span> <span class="reference-text">Lyons, p. 136.</span>
340 </li>
341 <li id="cite_note-42">
342 <span class="mw-cite-backlink"><b><a href="#cite_ref-42">^</a></b></span> <span class="reference-text">Azerrad (2001), pp. 452&acirc;&euro;&ldquo;53.</span>
343 </li>
344 <li id="cite_note-43">
345 <span class="mw-cite-backlink"><b><a href="#cite_ref-43">^</a></b></span> <span class="reference-text">Lyons, p. 122.</span>
346 </li>
347 <li id="cite_note-44">
348 <span class="mw-cite-backlink"><b><a href="#cite_ref-44">^</a></b></span> <span class="reference-text"><span class="citation news">Kobel, Peter (2 April 1993). <a href="http://www.ew.com/ew/article/0,,306055,00.html" class="external text" rel="nofollow">"Smells Like Big Bucks"</a>. <i><a title="Entertainment Weekly" href="//en.wikipedia.org/wiki/Entertainment_Weekly">Entertainment Weekly</a></i><span class="reference-accessdate">. Retrieved 25 July 2007</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=Smells+Like+Big+Bucks&amp;rft.aufirst=Peter&amp;rft.au=Kobel%2C+Peter&amp;rft.aulast=Kobel&amp;rft.date=2+April+1993&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.ew.com%2Few%2Farticle%2F0%2C%2C306055%2C00.html&amp;rft.jtitle=Entertainment+Weekly&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
349 </li>
350 <li id="cite_note-45">
351 <span class="mw-cite-backlink"><b><a href="#cite_ref-45">^</a></b></span> <span class="reference-text">Azerrad, Michael. <i>Come as You Are: The Story of Nirvana</i>. Doubleday, 1994. <a class="internal mw-magiclink-isbn" href="//en.wikipedia.org/wiki/Special:BookSources/0385471998">ISBN 0-385-47199-8</a>, p. 254.</span>
352 </li>
353 <li id="cite_note-crowe-46">
354 <span class="mw-cite-backlink"><b><a href="#cite_ref-crowe_46-0">^</a></b></span> <span class="reference-text"><span class="citation web"><a title="Cameron Crowe" href="//en.wikipedia.org/wiki/Cameron_Crowe">Crowe, Cameron</a> (28 October 1993). <a href="http://web.archive.org/web/20070619084803/http://www.rollingstone.com/news/story/10560431/five_against_the_world" class="external text" rel="nofollow">"Five Against the World"</a>. <i><a title="Rolling Stone" href="//en.wikipedia.org/wiki/Rolling_Stone">Rolling Stone</a></i>. Archived from <a href="http://www.rollingstone.com/news/story/10560431/five_against_the_world" class="external text" rel="nofollow">the original</a> on 19 June 2007<span class="reference-accessdate">. Retrieved 23 June 2007</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=Five+Against+the+World&amp;rft.au=Crowe%2C+Cameron&amp;rft.aufirst=Cameron&amp;rft.aulast=Crowe&amp;rft.date=28+October+1993&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.rollingstone.com%2Fnews%2Fstory%2F10560431%2Ffive_against_the_world&amp;rft.jtitle=Rolling+Stone&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
355 </li>
356 <li id="cite_note-47">
357 <span class="mw-cite-backlink"><b><a href="#cite_ref-47">^</a></b></span> <span class="reference-text">DeRogatis, Jim. <i>Milk It!: Collected Musings on the Alternative Music Explosion of the 90s</i>. Cambridge: Da Capo, 2003. <a class="internal mw-magiclink-isbn" href="//en.wikipedia.org/wiki/Special:BookSources/0306812711">ISBN 0-306-81271-1</a>, p. 18.</span>
358 </li>
359 <li id="cite_note-48">
360 <span class="mw-cite-backlink"><b><a href="#cite_ref-48">^</a></b></span> <span class="reference-text"><span class="citation news"><a href="http://www.ew.com/ew/article/0,,308282,00.html" class="external text" rel="nofollow">"In Numero Uno"</a>. <i>Entertainment Weekly</i>. 8 October 1993<span class="reference-accessdate">. Retrieved 8 September 2007</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=In+Numero+Uno&amp;rft.date=8+October+1993&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.ew.com%2Few%2Farticle%2F0%2C%2C308282%2C00.html&amp;rft.jtitle=Entertainment+Weekly&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
361 </li>
362 <li id="cite_note-49">
363 <span class="mw-cite-backlink"><b><a href="#cite_ref-49">^</a></b></span> <span class="reference-text"><span class="citation news">Hajari, Nisid (19 November 1993). <a href="http://www.ew.com/ew/article/0,,308749,00.html" class="external text" rel="nofollow">"Pearl's Jam"</a>. <i>Entertainment Weekly</i><span class="reference-accessdate">. Retrieved 29 August 2007</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=Pearl%27s+Jam&amp;rft.aufirst=Nisid&amp;rft.au=Hajari%2C+Nisid&amp;rft.aulast=Hajari&amp;rft.date=19+November+1993&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.ew.com%2Few%2Farticle%2F0%2C%2C308749%2C00.html&amp;rft.jtitle=Entertainment+Weekly&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
364 </li>
365 <li id="cite_note-allmusic_postgrunge-50">
366 <span class="mw-cite-backlink"><b><a href="#cite_ref-allmusic_postgrunge_50-0">^</a></b></span> <span class="reference-text"><span class="citation web"><a href="http://www.allmusic.com/style/post-grunge-ma0000005020" class="external text" rel="nofollow">"Post-Grunge"</a>. Allmusic. Rovi Corporation<span class="reference-accessdate">. Retrieved 19 August 2012</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=Post-Grunge&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.allmusic.com%2Fstyle%2Fpost-grunge-ma0000005020&amp;rft.jtitle=%27%27Allmusic%27%27&amp;rft.pub=Rovi+Corporation&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
367 </li>
368 <li id="cite_note-51">
369 <span class="mw-cite-backlink"><b><a href="#cite_ref-51">^</a></b></span> <span class="reference-text"><span class="citation web"><a href="http://www.allmusic.com/style/britpop-ma0000002480" class="external text" rel="nofollow">"Britpop"</a>. Allmusic. Rovi Corporation<span class="reference-accessdate">. Retrieved 19 August 2012</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=Britpop&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.allmusic.com%2Fstyle%2Fbritpop-ma0000002480&amp;rft.jtitle=%27%27Allmusic%27%27&amp;rft.pub=Rovi+Corporation&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
370 </li>
371 <li id="cite_note-52">
372 <span class="mw-cite-backlink"><b><a href="#cite_ref-52">^</a></b></span> <span class="reference-text"><a title="John Harris (critic)" href="//en.wikipedia.org/wiki/John_Harris_(critic)">Harris, John</a>. "A shite sports car and a punk reincarnation". <i><a title="NME" href="//en.wikipedia.org/wiki/NME">NME</a></i>. 10 April 1993.</span>
373 </li>
374 <li id="cite_note-53">
375 <span class="mw-cite-backlink"><b><a href="#cite_ref-53">^</a></b></span> <span class="reference-text">"Lock the Door". <i>Stop the Clocks</i> [bonus DVD]. Columbia, 2006.</span>
376 </li>
377 <li id="cite_note-54">
378 <span class="mw-cite-backlink"><b><a href="#cite_ref-54">^</a></b></span> <span class="reference-text"><span class="citation news">Handy, Bruce (18 April 1994). <a href="http://www.time.com/time/magazine/article/0,9171,980562,00.html" class="external text" rel="nofollow">"Never mind"</a>. <i><a title="Time (magazine)" href="//en.wikipedia.org/wiki/Time_(magazine)">Time</a></i><span class="reference-accessdate">. Retrieved 8 September 2007</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=Never+mind&amp;rft.au=Handy%2C+Bruce&amp;rft.aulast=Handy%2C+Bruce&amp;rft.date=18+April+1994&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.time.com%2Ftime%2Fmagazine%2Farticle%2F0%2C9171%2C980562%2C00.html&amp;rft.jtitle=Time&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
379 </li>
380 <li id="cite_note-55">
381 <span class="mw-cite-backlink"><b><a href="#cite_ref-55">^</a></b></span> <span class="reference-text"><span class="citation news">Gordinier, Jeff (28 October 1994). <a href="http://www.ew.com/ew/article/0,,304203,00.html" class="external text" rel="nofollow">"The Brawls in Their Courts"</a>. <i>Entertainment Weekly</i><span class="reference-accessdate">. Retrieved 8 September 2007</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=The+Brawls+in+Their+Courts&amp;rft.au=Gordinier%2C+Jeff&amp;rft.aulast=Gordinier%2C+Jeff&amp;rft.date=28+October+1994&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.ew.com%2Few%2Farticle%2F0%2C%2C304203%2C00.html&amp;rft.jtitle=Entertainment+Weekly&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
382 </li>
383 <li id="cite_note-56">
384 <span class="mw-cite-backlink"><b><a href="#cite_ref-56">^</a></b></span> <span class="reference-text">DeRogatis, p. 65.</span>
385 </li>
386 <li id="cite_note-secondcoming-57">
387 <span class="mw-cite-backlink"><b><a href="#cite_ref-secondcoming_57-0">^</a></b></span> <span class="reference-text"><span class="citation web">Hiatt, Brian (16 June 2006). <a href="http://web.archive.org/web/20070823234208/http://www.rollingstone.com/news/coverstory/pearl_jam_the_second_coming" class="external text" rel="nofollow">"The Second Coming of Pearl Jam"</a>. <i><a title="Rolling Stone" href="//en.wikipedia.org/wiki/Rolling_Stone">Rolling Stone</a></i>. Archived from <a href="http://www.rollingstone.com/news/coverstory/pearl_jam_the_second_coming" class="external text" rel="nofollow">the original</a> on 23 August 2007<span class="reference-accessdate">. Retrieved 22 June 2007</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=The+Second+Coming+of+Pearl+Jam&amp;rft.au=Hiatt%2C+Brian&amp;rft.aulast=Hiatt%2C+Brian&amp;rft.date=16+June+2006&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.rollingstone.com%2Fnews%2Fcoverstory%2Fpearl_jam_the_second_coming&amp;rft.jtitle=Rolling+Stone&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
388 </li>
389 <li id="cite_note-58">
390 <span class="mw-cite-backlink"><b><a href="#cite_ref-58">^</a></b></span> <span class="reference-text"><span class="citation news">Nelson, Chris (13 January 2003). <a href="http://query.nytimes.com/gst/fullpage.html?sec=health&amp;res=9C03E6DE1431F930A25752C0A9659C8B63" class="external text" rel="nofollow">"Nine Years After Cobain's Death, Big Sales for All Things Nirvana"</a>. nytimes.com<span class="reference-accessdate">. Retrieved 29 August 2007</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.aulast=Nelson%2C+Chris&amp;rft.au=Nelson%2C+Chris&amp;rft.btitle=Nine+Years+After+Cobain%27s+Death%2C+Big+Sales+for+All+Things+Nirvana&amp;rft.date=13+January+2003&amp;rft.genre=book&amp;rft_id=http%3A%2F%2Fquery.nytimes.com%2Fgst%2Ffullpage.html%3Fsec%3Dhealth%26res%3D9C03E6DE1431F930A25752C0A9659C8B63&amp;rft.pub=nytimes.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span style="display:none;">&nbsp;</span></span></span>
391 </li>
392 <li id="cite_note-59">
393 <span class="mw-cite-backlink"><b><a href="#cite_ref-59">^</a></b></span> <span class="reference-text"><span class="citation news">Scanlon, Tom (23 September 2005). <a href="http://community.seattletimes.nwsource.com/archive/?date=20050923&amp;slug=nite23" class="external text" rel="nofollow">"Weapons of Mass Neo-Grunge Appeal"</a>. <i><a title="The Seattle Times" href="//en.wikipedia.org/wiki/The_Seattle_Times">The Seattle Times</a></i><span class="reference-accessdate">. Retrieved 17 February 2012</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=Weapons+of+Mass+Neo-Grunge+Appeal&amp;rft.aulast=Scanlon%2C+Tom&amp;rft.au=Scanlon%2C+Tom&amp;rft.date=23+September+2005&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fcommunity.seattletimes.nwsource.com%2Farchive%2F%3Fdate%3D20050923%26slug%3Dnite23&amp;rft.jtitle=The+Seattle+Times&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
394 </li>
395 <li id="cite_note-60">
396 <span class="mw-cite-backlink"><b><a href="#cite_ref-60">^</a></b></span> <span class="reference-text"><span class="citation news">Simpson, Dave (30 January 2009). <a href="http://www.guardian.co.uk/music/2009/jan/30/leeds-grunge-scene" class="external text" rel="nofollow">"Just Don't Call It Grunge: Leeds' New Music Scene"</a>. <i><a title="The Guardian" href="//en.wikipedia.org/wiki/The_Guardian">The Guardian</a></i> (London)<span class="reference-accessdate">. Retrieved 17 February 2012</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=Just+Don%27t+Call+It+Grunge%3A+Leeds%27+New+Music+Scene&amp;rft.aulast=Simpson%2C+Dave&amp;rft.au=Simpson%2C+Dave&amp;rft.date=30+January+2009&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.guardian.co.uk%2Fmusic%2F2009%2Fjan%2F30%2Fleeds-grunge-scene&amp;rft.jtitle=The+Guardian&amp;rft.place=London&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
397 </li>
398 <li id="cite_note-61">
399 <span class="mw-cite-backlink"><b><a href="#cite_ref-61">^</a></b></span> <span class="reference-text"><span class="citation news">La Ferla, Ruth (30 September 2003). <a href="http://www.nytimes.com/2003/09/30/nyregion/front-row.html?src=pm" class="external text" rel="nofollow">"FRONT ROW"</a>. <i><a title="The New York Times" href="//en.wikipedia.org/wiki/The_New_York_Times">The New York Times</a></i><span class="reference-accessdate">. Retrieved 19 August 2012</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=FRONT+ROW&amp;rft.au=La+Ferla%2C+Ruth&amp;rft.aulast=La+Ferla%2C+Ruth&amp;rft.date=30+September+2003&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.nytimes.com%2F2003%2F09%2F30%2Fnyregion%2Ffront-row.html%3Fsrc%3Dpm&amp;rft.jtitle=The+New+York+Times&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
400 </li>
401 <li id="cite_note-62">
402 <span class="mw-cite-backlink"><b><a href="#cite_ref-62">^</a></b></span> <span class="reference-text"><span class="citation web"><a href="http://www.billboard.com/artist/278597/alice-chains/chart?f=305" class="external text" rel="nofollow">"Alice In Chains &acirc;&euro;&ldquo; Chart history: <i>Billboard</i> 200"</a>. <i>Billboard</i>. Prometheus Global Media<span class="reference-accessdate">. Retrieved 1 October 2013</span>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=Alice+In+Chains+%E2%80%93+Chart+history%3A+%27%27Billboard%27%27+200&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.billboard.com%2Fartist%2F278597%2Falice-chains%2Fchart%3Ff%3D305&amp;rft.jtitle=Billboard&amp;rft.pub=Prometheus+Global+Media&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span style="display:none;">&nbsp;</span></span></span>
403 </li>
404 <li id="cite_note-63">
405 <span class="mw-cite-backlink"><b><a href="#cite_ref-63">^</a></b></span> <span class="reference-text"><a href="http://acharts.us/album/74435" class="external text" rel="nofollow">Soundgarden - <i>King Animal</i></a>.</span>
406 </li>
407 <li id="cite_note-64">
408 <span class="mw-cite-backlink"><b><a href="#cite_ref-64">^</a></b></span> <span class="reference-text"><span class="citation book">Strong, Catherine (2011). <a href="http://books.google.com/books?id=qUhokID7qXIC&amp;printsec=frontcover" class="external text" rel="nofollow"><i>Grunge: Music and Memory</i></a>. <a title="Farnham" href="//en.wikipedia.org/wiki/Farnham">Farnham</a>: <a title="Ashgate Publishing" href="//en.wikipedia.org/wiki/Ashgate_Publishing">Ashgate Publishing, Ltd.</a> p.&nbsp;<a href="http://books.google.com/books?id=qUhokID7qXIC&amp;pg=PA73&amp;dq=%22Bands+labelled+as+'grunge'+by+respondents%22" class="external text" rel="nofollow">73</a>. <a title="International Standard Book Number" href="//en.wikipedia.org/wiki/International_Standard_Book_Number">ISBN</a>&nbsp;<a title="Special:BookSources/1-40942377-8" href="//en.wikipedia.org/wiki/Special:BookSources/1-40942377-8">1-40942377-8</a>. <a class="internal mw-magiclink-isbn" href="//en.wikipedia.org/wiki/Special:BookSources/9781409423775">ISBN 978-1-40942377-5</a>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.aufirst=Catherine&amp;rft.aulast=Strong&amp;rft.au=Strong%2C+Catherine&amp;rft.btitle=Grunge%3A+Music+and+Memory&amp;rft.date=2011&amp;rft.genre=book&amp;rft_id=http%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3DqUhokID7qXIC%26printsec%3Dfrontcover&amp;rft.isbn=1-40942377-8&amp;rft.pages=http%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3DqUhokID7qXIC%26pg%3DPA73%26dq%3D%2522Bands%2Blabelled%2Bas%2B%27grunge%27%2Bby%2Brespondents%2522+73&amp;rft.place=Farnham&amp;rft.pub=Ashgate+Publishing%2C+Ltd.&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span style="display:none;">&nbsp;</span></span></span>
409 </li>
410 <li id="cite_note-65">
411 <span class="mw-cite-backlink"><b><a href="#cite_ref-65">^</a></b></span> <span class="reference-text"><span class="citation news">MacDonald, Patrick (31 July 1992). <a href="http://community.seattletimes.nwsource.com/archive/?date=19920731&amp;slug=1505014" class="external text" rel="nofollow">"Willard Is Saying 'Rats!' To Seattle's Grunge Profusion"</a>. <i>The Seattle Times</i>.</span><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AGrunge&amp;rft.atitle=Willard+Is+Saying+%27Rats%21%27+To+Seattle%27s+Grunge+Profusion&amp;rft.aufirst=Patrick&amp;rft.aulast=MacDonald&amp;rft.au=MacDonald%2C+Patrick&amp;rft.date=31+July+1992&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fcommunity.seattletimes.nwsource.com%2Farchive%2F%3Fdate%3D19920731%26slug%3D1505014&amp;rft.jtitle=The+Seattle+Times&amp;rft_val_fmt=in
0 #Wed Apr 10 15:27:10 PDT 2013
1 distributionBase=GRADLE_USER_HOME
2 distributionPath=wrapper/dists
3 zipStoreBase=GRADLE_USER_HOME
4 zipStorePath=wrapper/dists
5 distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
0 # Project-wide Gradle settings.
1
2 # IDE (e.g. Android Studio) users:
3 # Settings specified in this file will override any Gradle settings
4 # configured through the IDE.
5
6 # For more details on how to configure your build environment visit
7 # http://www.gradle.org/docs/current/userguide/build_environment.html
8
9 # Specifies the JVM arguments used for the daemon process.
10 # The setting is particularly useful for tweaking memory settings.
11 # Default value: -Xmx10248m -XX:MaxPermSize=256m
12 # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
13
14 # When configured, Gradle will run in incubating parallel mode.
15 # This option should only be used with decoupled projects. More details, visit
16 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
17 # org.gradle.parallel=true
0 #!/usr/bin/env bash
1
2 ##############################################################################
3 ##
4 ## Gradle start up script for UN*X
5 ##
6 ##############################################################################
7
8 # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
9 DEFAULT_JVM_OPTS=""
10
11 APP_NAME="Gradle"
12 APP_BASE_NAME=`basename "$0"`
13
14 # Use the maximum available, or set MAX_FD != -1 to use that value.
15 MAX_FD="maximum"
16
17 warn ( ) {
18 echo "$*"
19 }
20
21 die ( ) {
22 echo
23 echo "$*"
24 echo
25 exit 1
26 }
27
28 # OS specific support (must be 'true' or 'false').
29 cygwin=false
30 msys=false
31 darwin=false
32 case "`uname`" in
33 CYGWIN* )
34 cygwin=true
35 ;;
36 Darwin* )
37 darwin=true
38 ;;
39 MINGW* )
40 msys=true
41 ;;
42 esac
43
44 # For Cygwin, ensure paths are in UNIX format before anything is touched.
45 if $cygwin ; then
46 [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
47 fi
48
49 # Attempt to set APP_HOME
50 # Resolve links: $0 may be a link
51 PRG="$0"
52 # Need this for relative symlinks.
53 while [ -h "$PRG" ] ; do
54 ls=`ls -ld "$PRG"`
55 link=`expr "$ls" : '.*-> \(.*\)$'`
56 if expr "$link" : '/.*' > /dev/null; then
57 PRG="$link"
58 else
59 PRG=`dirname "$PRG"`"/$link"
60 fi
61 done
62 SAVED="`pwd`"
63 cd "`dirname \"$PRG\"`/" >&-
64 APP_HOME="`pwd -P`"
65 cd "$SAVED" >&-
66
67 CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
68
69 # Determine the Java command to use to start the JVM.
70 if [ -n "$JAVA_HOME" ] ; then
71 if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
72 # IBM's JDK on AIX uses strange locations for the executables
73 JAVACMD="$JAVA_HOME/jre/sh/java"
74 else
75 JAVACMD="$JAVA_HOME/bin/java"
76 fi
77 if [ ! -x "$JAVACMD" ] ; then
78 die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
79
80 Please set the JAVA_HOME variable in your environment to match the
81 location of your Java installation."
82 fi
83 else
84 JAVACMD="java"
85 which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
86
87 Please set the JAVA_HOME variable in your environment to match the
88 location of your Java installation."
89 fi
90
91 # Increase the maximum file descriptors if we can.
92 if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
93 MAX_FD_LIMIT=`ulimit -H -n`
94 if [ $? -eq 0 ] ; then
95 if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
96 MAX_FD="$MAX_FD_LIMIT"
97 fi
98 ulimit -n $MAX_FD
99 if [ $? -ne 0 ] ; then
100 warn "Could not set maximum file descriptor limit: $MAX_FD"
101 fi
102 else
103 warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
104 fi
105 fi
106
107 # For Darwin, add options to specify how the application appears in the dock
108 if $darwin; then
109 GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
110 fi
111
112 # For Cygwin, switch paths to Windows format before running java
113 if $cygwin ; then
114 APP_HOME=`cygpath --path --mixed "$APP_HOME"`
115 CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
116
117 # We build the pattern for arguments to be converted via cygpath
118 ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
119 SEP=""
120 for dir in $ROOTDIRSRAW ; do
121 ROOTDIRS="$ROOTDIRS$SEP$dir"
122 SEP="|"
123 done
124 OURCYGPATTERN="(^($ROOTDIRS))"
125 # Add a user-defined pattern to the cygpath arguments
126 if [ "$GRADLE_CYGPATTERN" != "" ] ; then
127 OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
128 fi
129 # Now convert the arguments - kludge to limit ourselves to /bin/sh
130 i=0
131 for arg in "$@" ; do
132 CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
133 CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
134
135 if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
136 eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
137 else
138 eval `echo args$i`="\"$arg\""
139 fi
140 i=$((i+1))
141 done
142 case $i in
143 (0) set -- ;;
144 (1) set -- "$args0" ;;
145 (2) set -- "$args0" "$args1" ;;
146 (3) set -- "$args0" "$args1" "$args2" ;;
147 (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
148 (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
149 (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
150 (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
151 (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
152 (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
153 esac
154 fi
155
156 # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
157 function splitJvmOpts() {
158 JVM_OPTS=("$@")
159 }
160 eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
161 JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
162
163 exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
0 @if "%DEBUG%" == "" @echo off
1 @rem ##########################################################################
2 @rem
3 @rem Gradle startup script for Windows
4 @rem
5 @rem ##########################################################################
6
7 @rem Set local scope for the variables with windows NT shell
8 if "%OS%"=="Windows_NT" setlocal
9
10 @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
11 set DEFAULT_JVM_OPTS=
12
13 set DIRNAME=%~dp0
14 if "%DIRNAME%" == "" set DIRNAME=.
15 set APP_BASE_NAME=%~n0
16 set APP_HOME=%DIRNAME%
17
18 @rem Find java.exe
19 if defined JAVA_HOME goto findJavaFromJavaHome
20
21 set JAVA_EXE=java.exe
22 %JAVA_EXE% -version >NUL 2>&1
23 if "%ERRORLEVEL%" == "0" goto init
24
25 echo.
26 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
27 echo.
28 echo Please set the JAVA_HOME variable in your environment to match the
29 echo location of your Java installation.
30
31 goto fail
32
33 :findJavaFromJavaHome
34 set JAVA_HOME=%JAVA_HOME:"=%
35 set JAVA_EXE=%JAVA_HOME%/bin/java.exe
36
37 if exist "%JAVA_EXE%" goto init
38
39 echo.
40 echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
41 echo.
42 echo Please set the JAVA_HOME variable in your environment to match the
43 echo location of your Java installation.
44
45 goto fail
46
47 :init
48 @rem Get command-line arguments, handling Windowz variants
49
50 if not "%OS%" == "Windows_NT" goto win9xME_args
51 if "%@eval[2+2]" == "4" goto 4NT_args
52
53 :win9xME_args
54 @rem Slurp the command line arguments.
55 set CMD_LINE_ARGS=
56 set _SKIP=2
57
58 :win9xME_args_slurp
59 if "x%~1" == "x" goto execute
60
61 set CMD_LINE_ARGS=%*
62 goto execute
63
64 :4NT_args
65 @rem Get arguments from the 4NT Shell from JP Software
66 set CMD_LINE_ARGS=%$
67
68 :execute
69 @rem Setup the command line
70
71 set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
72
73 @rem Execute Gradle
74 "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
75
76 :end
77 @rem End local scope for the variables with windows NT shell
78 if "%ERRORLEVEL%"=="0" goto mainEnd
79
80 :fail
81 rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
82 rem the _cmd.exe /c_ return code!
83 if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
84 exit /b 1
85
86 :mainEnd
87 if "%OS%"=="Windows_NT" endlocal
88
89 :omega
0 apply plugin: 'com.android.application'
1
2 android {
3 compileSdkVersion 19
4 buildToolsVersion "20.0.0"
5
6 defaultConfig {
7 applicationId "co.r3labs.wearipedia"
8 minSdkVersion 18
9 targetSdkVersion 19
10 versionCode 1
11 versionName "1.0"
12 }
13 buildTypes {
14 release {
15 runProguard false
16 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
17 }
18 }
19 }
20
21 dependencies {
22 compile fileTree(dir: 'libs', include: ['*.jar'])
23 compile 'com.squareup.okhttp:okhttp:2.0.0'
24 compile 'com.google.android.gms:play-services-wearable:+'
25 compile 'jtidy:jtidy:+'
26 compile 'com.google.guava:guava:+'
27 }
0 <?xml version="1.0" encoding="UTF-8"?>
1 <module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="Wearipedia" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
2 <component name="FacetManager">
3 <facet type="android-gradle" name="Android-Gradle">
4 <configuration>
5 <option name="GRADLE_PROJECT_PATH" value=":mobile" />
6 </configuration>
7 </facet>
8 <facet type="android" name="Android">
9 <configuration>
10 <option name="SELECTED_BUILD_VARIANT" value="debug" />
11 <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
12 <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugJava" />
13 <option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" />
14 <option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" />
15 <option name="ALLOW_USER_CONFIGURATION" value="false" />
16 <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
17 <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
18 <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
19 <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
20 </configuration>
21 </facet>
22 </component>
23 <component name="NewModuleRootManager" inherit-compiler-output="false">
24 <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
25 <exclude-output />
26 <content url="file://$MODULE_DIR$">
27 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
28 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
29 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
30 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
31 <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
32 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/test/debug" isTestSource="true" generated="true" />
33 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/test/debug" isTestSource="true" generated="true" />
34 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/test/debug" isTestSource="true" generated="true" />
35 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/test/debug" isTestSource="true" generated="true" />
36 <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/test/debug" type="java-test-resource" />
37 <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
38 <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
39 <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
40 <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" isTestSource="false" />
41 <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
42 <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
43 <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
44 <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
45 <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
46 <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
47 <sourceFolder url="file://$MODULE_DIR$/src/main/assets" isTestSource="false" />
48 <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
49 <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
50 <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
51 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
52 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
53 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
54 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" isTestSource="true" />
55 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
56 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
57 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
58 <excludeFolder url="file://$MODULE_DIR$/build/intermediates" />
59 <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
60 </content>
61 <orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" />
62 <orderEntry type="sourceFolder" forTests="false" />
63 <orderEntry type="library" exported="" name="play-services-wearable-5.0.77" level="project" />
64 <orderEntry type="library" exported="" name="guava-17.0" level="project" />
65 <orderEntry type="library" exported="" name="support-v4-19.1.0" level="project" />
66 <orderEntry type="library" exported="" name="okio-1.0.0" level="project" />
67 <orderEntry type="library" exported="" name="okhttp-2.0.0" level="project" />
68 <orderEntry type="library" exported="" name="jtidy-4aug2000r7-dev" level="project" />
69 </component>
70 </module>
71
0 # Add project specific ProGuard rules here.
1 # By default, the flags in this file are appended to flags specified
2 # in /home/haldean/apps/android-studio/sdk/tools/proguard/proguard-android.txt
3 # You can edit the include path and order by changing the proguardFiles
4 # directive in build.gradle.
5 #
6 # For more details, see
7 # http://developer.android.com/guide/developing/tools/proguard.html
8
9 # Add any project specific keep options here:
10
11 # If your project uses WebView with JS, uncomment the following
12 # and specify the fully qualified class name to the JavaScript interface
13 # class:
14 #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
15 # public *;
16 #}
0 package co.r3labs.wearipedia;
1
2 import android.app.Application;
3 import android.test.ApplicationTestCase;
4
5 /**
6 * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
7 */
8 public class ApplicationTest extends ApplicationTestCase<Application> {
9 public ApplicationTest() {
10 super(Application.class);
11 }
12 }
0 <?xml version="1.0" encoding="utf-8"?>
1 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2 package="co.r3labs.wearipedia" >
3
4 <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" />
5 <uses-permission android:name="android.permission.INTERNET" />
6
7 <application
8 android:allowBackup="true"
9 android:icon="@drawable/ic_launcher"
10 android:label="@string/app_name"
11 android:theme="@style/AppTheme" >
12
13 <service
14 android:name=".WearListener"
15 android:enabled="true"
16 android:exported="true" >
17 <intent-filter>
18 <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
19 </intent-filter>
20 </service>
21
22 <meta-data
23 android:name="com.google.android.gms.version"
24 android:value="@integer/google_play_services_version" />
25 </application>
26
27 </manifest>
0 package co.r3labs.wearipedia;
1
2 import android.util.Log;
3
4 import com.google.common.collect.ImmutableSet;
5
6 import org.w3c.dom.Document;
7 import org.w3c.dom.NamedNodeMap;
8 import org.w3c.dom.Node;
9 import org.w3c.dom.NodeList;
10 import org.w3c.tidy.Tidy;
11
12 import java.io.ByteArrayInputStream;
13 import java.io.StringWriter;
14
15 import javax.xml.transform.Transformer;
16 import javax.xml.transform.TransformerConfigurationException;
17 import javax.xml.transform.TransformerException;
18 import javax.xml.transform.TransformerFactory;
19 import javax.xml.transform.dom.DOMSource;
20 import javax.xml.transform.stream.StreamResult;
21
22 public class HtmlCleaner {
23 private static final String TAG = "HtmlCleaner";
24
25 private static final ImmutableSet<String> REMOVE_TAGS =
26 ImmutableSet.of("table", "img", "figure", "sup", "audio");
27 private static final ImmutableSet<String> REMOVE_IDS =
28 ImmutableSet.of("good-star");
29 private static final ImmutableSet<String> REMOVE_CLASSES =
30 ImmutableSet.of("haudio", "hatnote", "metadata");
31
32 public static String clean(String input) {
33 Tidy parser = new Tidy();
34 parser.setQuiet(true);
35 parser.setRawOut(true);
36 parser.setSmartIndent(true);
37 parser.setTidyMark(false);
38 Document document = parser.parseDOM(new ByteArrayInputStream(input.getBytes()), null);
39 walk(document, document);
40 walk(document, document);
41
42 Transformer transformer = null;
43 StringWriter writer = new StringWriter();
44 // Jesus this API is ugly.
45 try {
46 transformer = TransformerFactory.newInstance().newTransformer();
47 } catch (TransformerConfigurationException e) {
48 Log.e(TAG, "couldn't create transformer", e);
49 return input;
50 }
51 try {
52 transformer.transform(new DOMSource(document), new StreamResult(writer));
53 } catch (TransformerException e) {
54 Log.e(TAG, "couldn't perform transform", e);
55 return input;
56 }
57 return writer.toString();
58 }
59
60 private static void walk(Document d, Node n) {
61 if (n == null) {
62 return;
63 }
64 String name = n.getNodeName().toLowerCase();
65 if (REMOVE_TAGS.contains(name)) {
66 Log.d(TAG, " has remove-tag " + name);
67 removeNode(n);
68 return;
69 }
70 if (name.equals("li")) {
71 d.renameNode(n, "", "p");
72 }
73 if (n.hasAttributes()) {
74 NamedNodeMap attrs = n.getAttributes();
75 Node id = attrs.getNamedItem("id");
76 if (id != null && REMOVE_IDS.contains(id.getNodeValue().toLowerCase())) {
77 Log.d(TAG, " has remove-id " + id.getNodeValue());
78 removeNode(n);
79 return;
80 }
81 Node classes = attrs.getNamedItem("class");
82 if (classes != null) {
83 for (String cls : classes.getNodeValue().split(" ")) {
84 if (REMOVE_CLASSES.contains(cls.toLowerCase())) {
85 Log.d(TAG, " has remove-class " + cls);
86 removeNode(n);
87 return;
88 }
89 }
90 }
91 }
92 NodeList children = n.getChildNodes();
93 for (int i = 0, N = children.getLength(); i < N; i++) {
94 walk(d, children.item(i));
95 }
96 }
97
98 private static void removeNode(Node n) {
99 if (n.getParentNode() == null) {
100 Log.w(TAG, "couldn't remove " + n.getNodeName() + " tag");
101 return;
102 }
103 Log.d(TAG, "removing " + n.getNodeName() + " tag");
104 n.getParentNode().removeChild(n);
105 }
106 }
0 package co.r3labs.wearipedia;
1
2 import android.app.Service;
3 import android.content.Intent;
4 import android.net.Uri;
5 import android.os.Bundle;
6 import android.os.Handler;
7 import android.os.HandlerThread;
8 import android.os.IBinder;
9 import android.os.Looper;
10 import android.os.Message;
11 import android.util.Log;
12
13 import com.google.android.gms.common.ConnectionResult;
14 import com.google.android.gms.common.api.GoogleApiClient;
15 import com.google.android.gms.common.api.PendingResult;
16 import com.google.android.gms.wearable.Asset;
17 import com.google.android.gms.wearable.DataApi;
18 import com.google.android.gms.wearable.DataMap;
19 import com.google.android.gms.wearable.MessageEvent;
20 import com.google.android.gms.wearable.PutDataMapRequest;
21 import com.google.android.gms.wearable.Wearable;
22 import com.google.android.gms.wearable.WearableListenerService;
23 import com.squareup.okhttp.OkHttpClient;
24 import com.squareup.okhttp.Request;
25 import com.squareup.okhttp.Response;
26
27 import java.io.FileNotFoundException;
28 import java.io.FileOutputStream;
29 import java.io.IOException;
30 import java.io.OutputStreamWriter;
31 import java.io.UnsupportedEncodingException;
32 import java.net.URLEncoder;
33 import java.nio.charset.UnsupportedCharsetException;
34
35 public class WearListener extends WearableListenerService {
36 private static final String TAG = "Wearipedia";
37
38 private static final int MSG_INIT = 0;
39 private static final int MSG_PUT_DATA = 1;
40
41 private static final String PATH_PATTERN_DATA = "/result/%s";
42 private static final String PATH_SEARCH = "/search";
43
44 private static final String KEY_SEARCH_TERM = "q";
45 private static final String KEY_DATA = "data";
46
47 private static final String URL_PATTERN = "http://en.wikipedia.org/w/index.php?action=render&title=%s";
48
49 private OkHttpClient mHttpClient;
50 private GoogleApiClient mGoogleClient;
51
52 private Handler mHandler;
53
54 @Override
55 public void onCreate() {
56 super.onCreate();
57
58 HandlerThread ht = new HandlerThread("WearipediaWorker");
59 ht.start();
60 mHandler = new WorkerHandler(ht.getLooper());
61
62 mHttpClient = new OkHttpClient();
63 mGoogleClient = new GoogleApiClient.Builder(this)
64 .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
65 @Override
66 public void onConnected(Bundle connectionHint) {
67 Log.d(TAG, "onConnected: " + connectionHint);
68 }
69 @Override
70 public void onConnectionSuspended(int cause) {
71 Log.d(TAG, "onConnectionSuspended: " + cause);
72 }
73 })
74 .addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {
75 @Override
76 public void onConnectionFailed(ConnectionResult result) {
77 Log.d(TAG, "onConnectionFailed: " + result);
78 }
79 })
80 .addApi(Wearable.API)
81 .build();
82
83 mHandler.obtainMessage(MSG_INIT).sendToTarget();
84 }
85
86 @Override
87 public int onStartCommand(Intent intent, int flags, int startId) {
88 Log.d(TAG, "got start command with intent " + intent);
89 if ("co.r3labs.wearipedia.TEST".equals(intent.getAction())) {
90 lookup(intent.getStringExtra("q"));
91 return START_NOT_STICKY;
92 }
93 return super.onStartCommand(intent, flags, startId);
94 }
95
96 @Override
97 public void onDestroy() {
98 super.onDestroy();
99 mGoogleClient.disconnect();
100 }
101
102 @Override
103 public void onMessageReceived(MessageEvent event) {
104 Log.d(TAG, "got event " + event);
105 if (!PATH_SEARCH.equals(event.getPath())) {
106 return;
107 }
108 DataMap data = DataMap.fromByteArray(event.getData());
109 String q = data.getString(KEY_SEARCH_TERM, null);
110 if (q == null) {
111 Log.d(TAG, "no search term provided");
112 return;
113 }
114 lookup(q);
115 }
116
117 private void lookup(String q) {
118 Log.d(TAG, "looking up " + q);
119 mHandler.obtainMessage(MSG_PUT_DATA, q).sendToTarget();
120 }
121
122 private class WorkerHandler extends Handler {
123 public WorkerHandler(Looper looper) {
124 super(looper);
125 }
126
127 @Override
128 public void handleMessage(Message m) {
129 Log.d(TAG, "got message " + m);
130 switch (m.what) {
131 case MSG_INIT:
132 mGoogleClient.blockingConnect();
133 return;
134
135 case MSG_PUT_DATA:
136 String q = (String) m.obj;
137 String url = String.format(URL_PATTERN, q);
138
139 Request netReq = new Request.Builder().url(url).build();
140 String body = null;
141 try {
142 Response response = mHttpClient.newCall(netReq).execute();
143 body = response.body().string();
144 } catch (IOException e) {
145 Log.w(TAG, "unable to fetch wikipedia data from URL " + url, e);
146 // TODO: write error to data item
147 return;
148 }
149
150 body = HtmlCleaner.clean(body);
151 writeDebugFile(body);
152
153 String path = String.format(PATH_PATTERN_DATA, q);
154 PutDataMapRequest req = PutDataMapRequest.create(path);
155
156 req.getDataMap().putString(KEY_SEARCH_TERM, q);
157 Asset asset = Asset.createFromBytes(body.getBytes());
158 req.getDataMap().putAsset(KEY_DATA, asset);
159
160 DataApi.DataItemResult dataResult =
161 Wearable.DataApi.putDataItem(mGoogleClient, req.asPutDataRequest()).await();
162 if (!dataResult.getStatus().isSuccess()) {
163 Log.e(TAG, "couldn't set data item: " + dataResult.getStatus().toString());
164 } else {
165 Log.i(TAG, "storing " + body.length() + " chars of data for query " + q + " at path " + path);
166 }
167 return;
168 }
169 }
170 }
171
172 private void writeDebugFile(String contents) {
173 FileOutputStream stream = null;
174 try {
175 stream = openFileOutput("debug.html", MODE_WORLD_READABLE);
176 new OutputStreamWriter(stream).write(contents);
177 stream.flush();
178 } catch (FileNotFoundException e) {
179 Log.w(TAG, "can't save debug file", e);
180 } catch (IOException e) {
181 Log.w(TAG, "couldn't write to debug file", e);
182 } finally {
183 if (stream != null) {
184 try {
185 stream.close();
186 } catch (IOException e) {
187 }
188 }
189 }
190 }
191 }
0 <resources>
1 <!-- Default screen margins, per the Android Design guidelines. -->
2 <dimen name="activity_horizontal_margin">16dp</dimen>
3 <dimen name="activity_vertical_margin">16dp</dimen>
4 </resources>
0 <?xml version="1.0" encoding="utf-8"?>
1 <resources>
2 <string name="app_name">Wearipedia</string>
3 </resources>
0 <resources>
1
2 <!-- Base application theme. -->
3 <style name="AppTheme" parent="android:Theme.Holo.Light">
4 <!-- Customize your theme here. -->
5 </style>
6
7 </resources>
0 <resources>
1 <!-- Example customization of dimensions originally defined in res/values/dimens.xml
2 (such as screen margins) for screens with more than 820dp of available width. This
3 would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
4 <dimen name="activity_horizontal_margin">64dp</dimen>
5 </resources>
0 include ':mobile', ':wear'
0 apply plugin: 'com.android.application'
1
2
3 android {
4 compileSdkVersion 20
5 buildToolsVersion "20.0.0"
6
7 defaultConfig {
8 applicationId "co.r3labs.wearipedia"
9 minSdkVersion 20
10 targetSdkVersion 20
11 versionCode 1
12 versionName "1.0"
13 }
14
15 buildTypes {
16 debug {
17 runProguard true
18 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
19 }
20 release {
21 runProguard true
22 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
23 }
24 }
25 }
26
27 dependencies {
28 compile fileTree(dir: 'libs', include: ['*.jar'])
29 // You must install or update the Support Repository through the SDK manager to use this dependency.
30 // You must install or update the Support Repository through the SDK manager to use this dependency.
31 compile 'com.android.support:support-v13:+'
32 compile 'com.google.android.support:wearable:+'
33 compile 'com.google.android.gms:play-services-wearable:+'
34 }
0 # Add project specific ProGuard rules here.
1 # By default, the flags in this file are appended to flags specified
2 # in /home/haldean/apps/android-studio/sdk/tools/proguard/proguard-android.txt
3 # You can edit the include path and order by changing the proguardFiles
4 # directive in build.gradle.
5 #
6 # For more details, see
7 # http://developer.android.com/guide/developing/tools/proguard.html
8
9 # Add any project specific keep options here:
10
11 # If your project uses WebView with JS, uncomment the following
12 # and specify the fully qualified class name to the JavaScript interface
13 # class:
14 #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
15 # public *;
16 #}
17 -dontobfuscate
18 -optimizations !field/*,!class/merging/*,!code/allocation/variable
0 <?xml version="1.0" encoding="utf-8"?>
1 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2 package="co.r3labs.wearipedia" >
3
4 <uses-feature android:name="android.hardware.type.watch" />
5
6 <application
7 android:allowBackup="true"
8 android:icon="@drawable/ic_launcher"
9 android:label="@string/app_name"
10 android:theme="@android:style/Theme.DeviceDefault.Light" >
11 <activity
12 android:name=".WearipediaActivity"
13 android:label="@string/app_name" >
14 <intent-filter>
15 <action android:name="android.intent.action.MAIN" />
16
17 <category android:name="android.intent.category.LAUNCHER" />
18 </intent-filter>
19 </activity>
20
21 <meta-data
22 android:name="com.google.android.gms.version"
23 android:value="@integer/google_play_services_version" />
24 </application>
25
26 </manifest>
0 package co.r3labs.wearipedia;
1
2 import android.os.Bundle;
3 import android.app.Fragment;
4 import android.view.LayoutInflater;
5 import android.view.View;
6 import android.view.ViewGroup;
7
8 public class SearchFragment extends Fragment {
9 @Override
10 public View onCreateView(LayoutInflater inflater, ViewGroup container,
11 Bundle savedInstanceState) {
12 View v = inflater.inflate(R.layout.fragment_search, container, false);
13 v.findViewById(R.id.search_button).setOnClickListener(new View.OnClickListener() {
14 @Override
15 public void onClick(View v) {
16 if (getActivity() == null) {
17 return;
18 }
19 ((WearipediaActivity) getActivity()).search();
20 }
21 });
22 return v;
23 }
24 }
0 package co.r3labs.wearipedia;
1
2 import android.app.Activity;
3 import android.net.Uri;
4 import android.os.Bundle;
5 import android.app.Fragment;
6 import android.text.Spanned;
7 import android.view.LayoutInflater;
8 import android.view.View;
9 import android.view.ViewGroup;
10 import android.widget.TextView;
11
12 public class TextFragment extends Fragment {
13 TextView mTextView;
14 View mProgressView;
15 View mContentContainer;
16
17 @Override
18 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
19 View v = inflater.inflate(R.layout.fragment_text, container, false);
20 mTextView = (TextView) v.findViewById(R.id.content);
21 mProgressView = v.findViewById(R.id.progress);
22 mContentContainer = v.findViewById(R.id.content_container);
23 return v;
24 }
25
26 @Override
27 public void onAttach(Activity activity) {
28 super.onAttach(activity);
29 WearipediaActivity wa = (WearipediaActivity) activity;
30 wa.setTextDisplay(this);
31 }
32
33 @Override
34 public void onDetach() {
35 WearipediaActivity wa = (WearipediaActivity) getActivity();
36 wa.setTextDisplay(this);
37 super.onDetach();
38 }
39
40 public void setText(CharSequence text) {
41 if (text == null) {
42 mProgressView.setVisibility(View.VISIBLE);
43 mContentContainer.setVisibility(View.GONE);
44 return;
45 }
46 mProgressView.setVisibility(View.GONE);
47 mTextView.setText(text);
48 mContentContainer.setVisibility(View.VISIBLE);
49 }
50 }
0 package co.r3labs.wearipedia;
1
2 import android.app.Activity;
3 import android.app.Fragment;
4 import android.app.FragmentManager;
5 import android.content.Intent;
6 import android.net.Uri;
7 import android.os.Bundle;
8 import android.os.Handler;
9 import android.speech.RecognizerIntent;
10 import android.support.v13.app.FragmentPagerAdapter;
11 import android.support.v4.view.ViewPager;
12 import android.text.Html;
13 import android.util.Log;
14
15 import com.google.android.gms.common.api.GoogleApiClient;
16 import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
17 import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
18 import com.google.android.gms.common.api.PendingResult;
19 import com.google.android.gms.common.api.ResultCallback;
20 import com.google.android.gms.common.ConnectionResult;
21 import com.google.android.gms.wearable.*;
22
23 import java.io.UnsupportedEncodingException;
24 import java.net.URLEncoder;
25 import java.util.ArrayList;
26 import java.util.List;
27 import java.util.Scanner;
28
29 public class WearipediaActivity extends Activity {
30 private static final String TAG = "Wearipedia";
31
32 private static final int RECOGNIZE_ID = 0;
33
34 private static final String PATH_PATTERN_DATA = "/result/%s";
35 private static final String PATH_SEARCH = "/search";
36
37 private static final String KEY_SEARCH_TERM = "q";
38 private static final String KEY_DATA = "data";
39
40 private GoogleApiClient mClient;
41 private String mOtherNode = "other";
42 private volatile String mCurrentQ;
43 private Handler mHandler = new Handler();
44 private TextFragment mTextDisplay;
45 private DataMap mCachedDataMap;
46 private ViewPager mPager;
47
48 @Override
49 protected void onCreate(Bundle savedInstanceState) {
50 super.onCreate(savedInstanceState);
51 setContentView(R.layout.activity_wearipedia);
52
53 mPager = (ViewPager) findViewById(R.id.pager);
54 mPager.setAdapter(new Fragdapter(getFragmentManager()));
55
56 mClient = new GoogleApiClient.Builder(this)
57 .addConnectionCallbacks(new ConnectionCallbacks() {
58 @Override
59 public void onConnected(Bundle connectionHint) {
60 Log.d(TAG, "onConnected: " + connectionHint);
61 }
62 @Override
63 public void onConnectionSuspended(int cause) {
64 Log.d(TAG, "onConnectionSuspended: " + cause);
65 }
66 })
67 .addOnConnectionFailedListener(new OnConnectionFailedListener() {
68 @Override
69 public void onConnectionFailed(ConnectionResult result) {
70 Log.d(TAG, "onConnectionFailed: " + result);
71 }
72 })
73 .addApi(Wearable.API)
74 .build();
75
76 PendingResult<NodeApi.GetConnectedNodesResult> res =
77 Wearable.NodeApi.getConnectedNodes(mClient);
78 res.setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() {
79 @Override
80 public void onResult(NodeApi.GetConnectedNodesResult res) {
81 if (!res.getStatus().isSuccess()) {
82 Log.e(TAG, "couldn't get connected nodes");
83 return;
84 }
85 List<Node> nodes = res.getNodes();
86 if (nodes.size() == 0) {
87 Log.w(TAG, "no node connected");
88 return;
89 }
90 Log.d(TAG, "got other node " + mOtherNode);
91 mOtherNode = nodes.get(0).getId();
92 }
93 });
94
95 mClient.connect();
96 Wearable.DataApi.addListener(mClient, mDataListener);
97
98 search();
99 }
100
101 @Override
102 public void onDestroy() {
103 Wearable.DataApi.removeListener(mClient, mDataListener);
104 mClient.disconnect();
105 super.onDestroy();
106 }
107
108 void setTextDisplay(TextFragment frag) {
109 mTextDisplay = frag;
110 if (mCachedDataMap != null) {
111 showData(mCachedDataMap);
112 }
113 }
114
115 void search() {
116 startActivityForResult(
117 new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
118 .putExtra(
119 RecognizerIntent.EXTRA_LANGUAGE_MODEL,
120 RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH)
121 .putExtra(RecognizerIntent.EXTRA_PROMPT, getString(R.string.prompt)),
122 RECOGNIZE_ID);
123 }
124
125 @Override
126 public void onActivityResult(int req, int resultCode, Intent data) {
127 if (req != RECOGNIZE_ID) {
128 return;
129 }
130 if (resultCode != RESULT_OK) {
131 Log.w(TAG, "speech recognizer returned code " + resultCode);
132 return;
133 }
134 ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
135 if (results.size() == 0) {
136 Log.w(TAG, "speech recognizer returned no results");
137 return;
138 }
139
140 if (mTextDisplay != null) {
141 mTextDisplay.setText(null);
142 }
143 mPager.setCurrentItem(0);
144
145 String q = results.get(0);
146 q = q.replace(' ', '_');
147 try {
148 q = URLEncoder.encode(q, "utf-8");
149 } catch (UnsupportedEncodingException e) {
150 Log.i(TAG, "doesn't support utf-8?", e);
151 }
152 Log.w(TAG, "result: " + q);
153 mCurrentQ = q;
154
155 DataMap msg = new DataMap();
156 msg.putString(KEY_SEARCH_TERM, q);
157
158 PendingResult<DataItemBuffer> dataRes =
159 Wearable.DataApi.getDataItems(mClient, new Uri.Builder()
160 .scheme("wear")
161 .path(String.format(PATH_PATTERN_DATA, q))
162 .build());
163 dataRes.setResultCallback(new ResultCallback<DataItemBuffer>() {
164 @Override
165 public void onResult(DataItemBuffer results) {
166 for (DataItem data : results) {
167 Log.d(TAG, "already had data for page, loading");
168 showData(DataMapItem.fromDataItem(data).getDataMap());
169 return;
170 }
171 }
172 });
173
174 Log.d(TAG, "sending to node " + mOtherNode);
175 PendingResult<MessageApi.SendMessageResult> res = Wearable.MessageApi.sendMessage(
176 mClient, mOtherNode, PATH_SEARCH, msg.toByteArray());
177 res.setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
178 @Override
179 public void onResult(MessageApi.SendMessageResult res) {
180 if (!res.getStatus().isSuccess()) {
181 Log.d(TAG, "couldn't send message: " + res.getStatus());
182 } else {
183 Log.d(TAG, "success");
184 }
185 }
186 });
187 }
188
189 void showData(DataMap data) {
190 mCachedDataMap = data;
191 if (mTextDisplay == null) {
192 return;
193 }
194 Asset asset = data.getAsset(KEY_DATA);
195 Log.d(TAG, "got asset " + asset);
196 PendingResult<DataApi.GetFdForAssetResult> res =
197 Wearable.DataApi.getFdForAsset(mClient, asset);
198 res.setResultCallback(new ResultCallback<DataApi.GetFdForAssetResult>() {
199 @Override
200 public void onResult(final DataApi.GetFdForAssetResult getFdForAssetResult) {
201 String data = convertStreamToString(getFdForAssetResult.getInputStream());
202 final CharSequence formatted = Html.fromHtml(data);
203 mHandler.post(new Runnable() {
204 @Override public void run() {
205 if (mTextDisplay != null) {
206 mTextDisplay.setText(formatted);
207 }
208 }
209 });
210 }
211 });
212 }
213
214 static String convertStreamToString(java.io.InputStream is) {
215 Scanner s = new Scanner(is).useDelimiter("\\A");
216 return s.hasNext() ? s.next() : "";
217 }
218
219 private DataApi.DataListener mDataListener = new DataApi.DataListener() {
220 @Override
221 public void onDataChanged(DataEventBuffer dataEvents) {
222 String targetPath = String.format(PATH_PATTERN_DATA, mCurrentQ);
223 Log.d(TAG, "got data events: " + dataEvents + ", looking for path " + targetPath);
224 for (DataEvent ev : dataEvents) {
225 String path = ev.getDataItem().getUri().getPath();
226 Log.d(TAG, "got path: " + path);
227 if (path.equals(targetPath)) {
228 showData(DataMapItem.fromDataItem(ev.getDataItem()).getDataMap());
229 }
230 }
231 }
232 };
233
234 private static class Fragdapter extends FragmentPagerAdapter {
235 public Fragdapter(FragmentManager fm) {
236 super(fm);
237 }
238
239 @Override
240 public Fragment getItem(int i) {
241 switch (i) {
242 case 0:
243 return new TextFragment();
244 case 1:
245 return new SearchFragment();
246 }
247 return null;
248 }
249
250 @Override
251 public int getCount() {
252 return 2;
253 }
254 }
255 }
0 <?xml version="1.0" encoding="utf-8"?>
1
2 <selector xmlns:android="http://schemas.android.com/apk/res/android">
3 <item android:state_pressed="true">
4 <shape android:shape="oval">
5 <solid android:color="@color/button_pressed" />
6 </shape>
7 </item>
8 <item>
9 <shape android:shape="oval">
10 <solid android:color="@color/button_normal" />
11 </shape>
12 </item>
13 </selector>
0 <?xml version="1.0" encoding="utf-8"?>
1 <android.support.v4.view.ViewPager
2 xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 xmlns:tools="http://schemas.android.com/tools"
5 android:id="@+id/pager"
6 android:layout_width="match_parent"
7 android:layout_height="match_parent"
8 tools:context=".Wearipedia"
9 tools:deviceIds="wear"/>
0 <FrameLayout
1 xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 tools:context="co.r3labs.wearipedia.SearchFragment"
6 >
7
8 <RelativeLayout
9 android:layout_gravity="center"
10 android:layout_width="match_parent"
11 android:layout_height="wrap_content">
12
13 <ImageView
14 android:id="@+id/search_button"
15 android:layout_centerHorizontal="true"
16 android:layout_height="106dp"
17 android:layout_width="106dp"
18 android:src="@drawable/search_button_bg"
19 />
20
21 <ImageView
22 android:layout_alignTop="@id/search_button"
23 android:layout_marginTop="23dp"
24 android:layout_centerHorizontal="true"
25 android:layout_height="wrap_content"
26 android:layout_width="wrap_content"
27 android:src="@drawable/ic_wikipedia_white"
28 />
29
30 <TextView
31 android:layout_below="@id/search_button"
32 android:layout_centerHorizontal="true"
33 android:layout_marginTop="8dp"
34 android:layout_width="wrap_content"
35 android:layout_height="wrap_content"
36 android:text="@string/search"
37 android:fontFamily="sans-serif-light"
38 android:textSize="18sp"
39 />
40
41 </RelativeLayout>
42 </FrameLayout>
0 <FrameLayout
1 xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:id="@+id/controls"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 tools:context=".Wearipedia"
7 tools:deviceIds="wear">
8
9 <ProgressBar
10 android:id="@+id/progress"
11 android:layout_gravity="center"
12 android:layout_height="match_parent"
13 android:layout_margin="32dp"
14 android:layout_width="match_parent"
15 android:indeterminate="true"
16 />
17
18 <ScrollView
19 android:id="@+id/content_container"
20 android:layout_width="match_parent"
21 android:layout_height="wrap_content"
22 android:visibility="gone">
23
24 <TextView
25 android:id="@+id/content"
26 android:layout_width="match_parent"
27 android:layout_height="wrap_content"
28 android:fontFamily="sans-serif-light"
29 android:padding="16dp"
30 android:textStyle="normal"
31 android:textSize="16sp"
32 />
33
34 </ScrollView>
35 </FrameLayout>
0 <?xml version="1.0" encoding="utf-8"?>
1 <resources>
2 <color name="button_pressed">#212121</color>
3 <color name="button_normal">#434343</color>
4 </resources>
0 <?xml version="1.0" encoding="utf-8"?>
1 <resources>
2
3 <string name="app_name">Wikipedia</string>
4 <string name="search">Search</string>
5 <string name="prompt">Search Wikipedia</string>
6 <string name="hello_blank_fragment">Hello blank fragment</string>
7
8 </resources>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="Wearipedia" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
2 <component name="FacetManager">
3 <facet type="android-gradle" name="Android-Gradle">
4 <configuration>
5 <option name="GRADLE_PROJECT_PATH" value=":wear" />
6 </configuration>
7 </facet>
8 <facet type="android" name="Android">
9 <configuration>
10 <option name="SELECTED_BUILD_VARIANT" value="debug" />
11 <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
12 <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugJava" />
13 <option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" />
14 <option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" />
15 <option name="ALLOW_USER_CONFIGURATION" value="false" />
16 <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
17 <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
18 <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
19 <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
20 </configuration>
21 </facet>
22 </component>
23 <component name="NewModuleRootManager" inherit-compiler-output="false">
24 <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
25 <exclude-output />
26 <content url="file://$MODULE_DIR$">
27 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
28 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
29 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
30 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
31 <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
32 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/test/debug" isTestSource="true" generated="true" />
33 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/test/debug" isTestSource="true" generated="true" />
34 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/test/debug" isTestSource="true" generated="true" />
35 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/test/debug" isTestSource="true" generated="true" />
36 <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/test/debug" type="java-test-resource" />
37 <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
38 <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
39 <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
40 <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" isTestSource="false" />
41 <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
42 <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
43 <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
44 <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
45 <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
46 <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
47 <sourceFolder url="file://$MODULE_DIR$/src/main/assets" isTestSource="false" />
48 <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
49 <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
50 <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
51 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
52 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
53 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
54 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" isTestSource="true" />
55 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
56 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
57 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
58 <excludeFolder url="file://$MODULE_DIR$/build/intermediates" />
59 <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
60 </content>
61 <orderEntry type="jdk" jdkName="Android API 20 Platform" jdkType="Android SDK" />
62 <orderEntry type="sourceFolder" forTests="false" />
63 <orderEntry type="library" exported="" name="support-annotations-21.0.0-rc1" level="project" />
64 <orderEntry type="library" exported="" name="play-services-wearable-5.0.77" level="project" />
65 <orderEntry type="library" exported="" name="support-v4-21.0.0-rc1" level="project" />
66 <orderEntry type="library" exported="" name="support-v13-21.0.0-rc1" level="project" />
67 <orderEntry type="library" exported="" name="wearable-1.0.0" level="project" />
68 </component>
69 </module>
70