am 4e519cfe: am ecf5b657: Refer to USB storage instead of SD card on devices without removable storage.

Merge commit '4e519cfe552aeea67fd082cadfecf41e445ff864'

* commit '4e519cfe552aeea67fd082cadfecf41e445ff864':
  Refer to USB storage instead of SD card on devices without removable storage.
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index ff7d599..acf90e4 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Vyhledat hudbu"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" AÁBCČDĎEÉĚFGHCHIÍJKLMNŇOÓPQRŘSŠTŤUÚŮVWXYÝZŽ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Dotykem vyberte hudbu."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Zvukové efekty"</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index ff863e1..3003388 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Søg i Musik"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Tryk for at vælge musik."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Lydeffekter"</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 81d937e..e674ef4 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -24,7 +24,7 @@
     <item quantity="other" msgid="5798230388116542981">"<xliff:g id="COUNT">%d</xliff:g> Titel"</item>
   </plurals>
   <plurals name="Nsongscomp">
-    <item quantity="other" msgid="7162294486622945550">"<xliff:g id="COUNT_FOR_ARTIST">%2$d</xliff:g> von <xliff:g id="TOTAL_COUNT">%1$d</xliff:g> Liedern"</item>
+    <item quantity="other" msgid="7162294486622945550">"<xliff:g id="COUNT_FOR_ARTIST">%2$d</xliff:g> von \n<xliff:g id="TOTAL_COUNT">%1$d</xliff:g> Liedern"</item>
   </plurals>
   <plurals name="Nalbums">
     <item quantity="one" msgid="3798955510439465932">"1 Album"</item>
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Musik durchsuchen"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Zur Musikauswahl berühren"</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Toneffekte"</string>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 842132c..5931386 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Αναζήτηση μουσικής"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Αγγίξτε για να επιλέξετε μουσική."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Ηχητικά εφέ"</string>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 76d7511..6ffb96b 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Buscar música"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Toca para seleccionar música."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Efectos de sonido"</string>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 6213cc2..7b86616 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Buscar música"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Toca para selec música."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Efectos sonido"</string>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index a3bdf3e..afbdff2 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Rechercher dans la musique"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Touchez l\'écran pour sélectionner la musique."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Effets sonores"</string>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 0385182..61f0790 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Cerca musica"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Tocca per selezionare musica."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Effetti sonori"</string>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index c49853f..7307ebd 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"音楽を検索"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"タップで曲を選択します"</string>
-    <string name="effectspanel" msgid="8804547581593509614">"サウンド効果"</string>
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 66cae8a..54897e3 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"음악 검색"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"음악을 선택하려면 터치하세요."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"음향 효과"</string>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index e0e8d38..c405147 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Søk i musikk"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Berør for å velge musikk."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Lydeffekter"</string>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 5d23230..23ecd1e 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Zoeken in muziek"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Raak aan om muziek te selecteren."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Geluidseffecten"</string>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 8906ff3..f99491c 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Szukaj wśród muzyki"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" AĄBCĆDEĘFGHIJKLŁMNŃOÓPQRSŚTUVWXYZŹŻ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Dotknij, aby włączyć muzykę."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Efekty dźwiękowe"</string>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index f862e31..a157b61 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Pesquisar música"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Toque para seleccionar música."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Efeitos sonoros"</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 812a1da..78c337a 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Pesquisar música"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Toque para selecionar a música."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Efeitos sonoros"</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 53ac20e..9ff8b04 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Поиск музыки"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Нажмите ,чтобы выбрать музыку."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Звуковые эффекты"</string>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 92532bf..74367ec 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Sök efter musik"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Tryck om du vill välja musik."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Ljudeffekter"</string>
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 7c0caff..fac87a7 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"Müzik Ara"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"Müzik seçmek için dokunun."</string>
-    <string name="effectspanel" msgid="8804547581593509614">"Ses efektleri"</string>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index fc0717d..552c5f4 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"搜索音乐"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"轻触以选择音乐。"</string>
-    <string name="effectspanel" msgid="8804547581593509614">"音效"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 47f7fb0..f54d47b 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -145,5 +145,4 @@
     <string name="search_hint" msgid="3766854898072633001">"搜尋音樂"</string>
     <string name="fast_scroll_alphabet" msgid="5548732936480723311">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="widget_initial_text" msgid="6334545155963910952">"輕觸即可選取音樂。"</string>
-    <string name="effectspanel" msgid="8804547581593509614">"音效"</string>
 </resources>
diff --git a/src/com/android/music/MediaPlaybackActivity.java b/src/com/android/music/MediaPlaybackActivity.java
index 8e1d6a0..7b97f12 100644
--- a/src/com/android/music/MediaPlaybackActivity.java
+++ b/src/com/android/music/MediaPlaybackActivity.java
@@ -1323,7 +1323,9 @@
                 Message numsg = mHandler.obtainMessage(ALBUM_ART_DECODED, null);
                 mHandler.removeMessages(ALBUM_ART_DECODED);
                 mHandler.sendMessageDelayed(numsg, 300);
-                Bitmap bm = MusicUtils.getArtwork(MediaPlaybackActivity.this, songid, albumid);
+                // Don't allow default artwork here, because we want to fall back to song-specific
+                // album art if we can't find anything for the album.
+                Bitmap bm = MusicUtils.getArtwork(MediaPlaybackActivity.this, songid, albumid, false);
                 if (bm == null) {
                     bm = MusicUtils.getArtwork(MediaPlaybackActivity.this, songid, -1);
                     albumid = -1;
diff --git a/src/com/android/music/MediaPlaybackService.java b/src/com/android/music/MediaPlaybackService.java
index e4432be..c0bb7bd 100644
--- a/src/com/android/music/MediaPlaybackService.java
+++ b/src/com/android/music/MediaPlaybackService.java
@@ -98,7 +98,9 @@
     private static final int TRACK_ENDED = 1;
     private static final int RELEASE_WAKELOCK = 2;
     private static final int SERVER_DIED = 3;
-    private static final int FADEIN = 4;
+    private static final int FADEINFROMSTART = 4;
+    private static final int FADEDOWN = 5;
+    private static final int FADEUP = 6;
     private static final int MAX_HISTORY_SIZE = 100;
     
     private MultiPlayer mPlayer;
@@ -152,7 +154,7 @@
     private static final int IDLE_DELAY = 60000;
     
     private void startAndFadeIn() {
-        mMediaplayerHandler.sendEmptyMessageDelayed(FADEIN, 10);
+        mMediaplayerHandler.sendEmptyMessageDelayed(FADEINFROMSTART, 10);
     }
     
     private Handler mMediaplayerHandler = new Handler() {
@@ -161,21 +163,31 @@
         public void handleMessage(Message msg) {
             MusicUtils.debugLog("mMediaplayerHandler.handleMessage " + msg.what);
             switch (msg.what) {
-                case FADEIN:
+                case FADEINFROMSTART:
                     if (!isPlaying()) {
                         mCurrentVolume = 0f;
                         mPlayer.setVolume(mCurrentVolume);
                         play();
-                        mMediaplayerHandler.sendEmptyMessageDelayed(FADEIN, 10);
-                    } else {
-                        mCurrentVolume += 0.01f;
-                        if (mCurrentVolume < 1.0f) {
-                            mMediaplayerHandler.sendEmptyMessageDelayed(FADEIN, 10);
-                        } else {
-                            mCurrentVolume = 1.0f;
-                        }
-                        mPlayer.setVolume(mCurrentVolume);
                     }
+                    mMediaplayerHandler.sendEmptyMessageDelayed(FADEUP, 10);
+                    break;
+                case FADEDOWN:
+                    mCurrentVolume -= .05f;
+                    if (mCurrentVolume > .2f) {
+                        mMediaplayerHandler.sendEmptyMessageDelayed(FADEDOWN, 10);
+                    } else {
+                        mCurrentVolume = .2f;
+                    }
+                    mPlayer.setVolume(mCurrentVolume);
+                    break;
+                case FADEUP:
+                    mCurrentVolume += .01f;
+                    if (mCurrentVolume < 1.0f) {
+                        mMediaplayerHandler.sendEmptyMessageDelayed(FADEUP, 10);
+                    } else {
+                        mCurrentVolume = 1.0f;
+                    }
+                    mPlayer.setVolume(mCurrentVolume);
                     break;
                 case SERVER_DIED:
                     if (mIsSupposedToBePlaying) {
@@ -249,8 +261,10 @@
                         pause();
                     }
                     break;
-                case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
                 case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
+                    mMediaplayerHandler.sendEmptyMessage(FADEDOWN);
+                    break;
+                case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
                     Log.v(LOGTAG, "AudioFocus: received AUDIOFOCUS_LOSS_TRANSIENT");
                     if(isPlaying()) {
                         mPausedByTransientLossOfFocus = true;
@@ -262,6 +276,8 @@
                     if(!isPlaying() && mPausedByTransientLossOfFocus) {
                         mPausedByTransientLossOfFocus = false;
                         startAndFadeIn();
+                    } else {
+                        mMediaplayerHandler.sendEmptyMessage(FADEUP);
                     }
                     break;
                 default:
diff --git a/src/com/android/music/SortCursor.java b/src/com/android/music/SortCursor.java
index 9b17294..7482a3f 100644
--- a/src/com/android/music/SortCursor.java
+++ b/src/com/android/music/SortCursor.java
@@ -218,6 +218,11 @@
     }
 
     @Override
+    public int getType(int column) {
+        return mCursor.getType(column);
+    }
+
+    @Override
     public boolean isNull(int column)
     {
         return mCursor.isNull(column);
diff --git a/src/com/android/music/TrackBrowserActivity.java b/src/com/android/music/TrackBrowserActivity.java
index 6f9129b..82f65c5 100644
--- a/src/com/android/music/TrackBrowserActivity.java
+++ b/src/com/android/music/TrackBrowserActivity.java
@@ -1283,6 +1283,11 @@
         }
 
         @Override
+        public int getType(int column) {
+            return mCurrentPlaylistCursor.getType(column);
+        }
+
+        @Override
         public boolean isNull(int column)
         {
             return mCurrentPlaylistCursor.isNull(column);