Refer to USB storage instead of SD card on devices without removable storage.

Change-Id: I934f44ca79339779f2d531c05439960602174c1d
diff --git a/res/layout/scanning_nosdcard.xml b/res/layout/scanning_nosdcard.xml
new file mode 100644
index 0000000..bb09fb8
--- /dev/null
+++ b/res/layout/scanning_nosdcard.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+  
+          http://www.apache.org/licenses/LICENSE-2.0
+  
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:padding="12dip">
+
+    <ProgressBar android:id="@+id/spinner"
+        style="?android:attr/progressBarStyleLarge"
+        android:layout_gravity="center"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content" />
+
+    <TextView android:id="@+id/message"
+        android:layout_gravity="center"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:text="@string/scanning_nosdcard">
+    </TextView>
+
+</LinearLayout>
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index d95a2ce..4f77a0d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -72,12 +72,18 @@
 
     <!-- Delete confirmation dialog when deleting an entire artist -->
     <string name="delete_artist_desc">All songs by <xliff:g id="artist">%s</xliff:g> will be permanently deleted from the SD card.</string>
+    <!-- Delete confirmation dialog when deleting an entire artist -->
+    <string name="delete_artist_desc_nosdcard">All songs by <xliff:g id="artist">%s</xliff:g> will be permanently deleted from USB storage.</string>
 
     <!-- Delete confirmation dialog when deleting an entire album -->
     <string name="delete_album_desc">The entire album \"<xliff:g id="album">%s</xliff:g>\" will be permanently deleted from the SD card.</string>
+    <!-- Delete confirmation dialog when deleting an entire album -->
+    <string name="delete_album_desc_nosdcard">The entire album \"<xliff:g id="album">%s</xliff:g>\" will be permanently deleted from USB storage.</string>
 
     <!-- Delete confirmation dialog when deleting a single song -->
     <string name="delete_song_desc">\"<xliff:g id="song">%s</xliff:g>\" will be permanently deleted from the SD card.</string>
+    <!-- Delete confirmation dialog when deleting a single song -->
+    <string name="delete_song_desc_nosdcard">\"<xliff:g id="song">%s</xliff:g>\" will be permanently deleted from USB storage.</string>
 
     <!-- Delete confirmation dialog, confirmation button text -->
     <string name="delete_confirm_button_text">OK</string>
@@ -91,6 +97,8 @@
 
     <!-- shown in dialog while the media scanner is starting up -->
     <string name="scanning">Scanning SD card\u2026</string>
+    <!-- shown in dialog while the media scanner is starting up -->
+    <string name="scanning_nosdcard">Scanning USB storage\u2026</string>
 
     <!-- title of the "current playlist" screen when not in party shuffle mode -->
     <string name="nowplaying_title">Now playing</string>
@@ -144,16 +152,28 @@
     <string name="podcasts_title">Podcasts</string>
     <!-- Title of screen when no sd card is present -->
     <string name="sdcard_missing_title">No SD card</string>
+    <!-- Title of screen when no sd card is present -->
+    <string name="sdcard_missing_title_nosdcard">No USB storage</string>
     <!-- label underneath icon used to indicate that no sd card is present -->
     <string name="sdcard_missing_message">Your phone does not have an SD card inserted.</string>
+    <!-- label underneath icon used to indicate that no sd card is present -->
+    <string name="sdcard_missing_message_nosdcard">Your phone does not have USB storage.</string>
     <!-- label underneath icon used to indicate that the sd card is present, but currently unavailable -->
     <string name="sdcard_busy_title">SD card unavailable</string>
+    <!-- label underneath icon used to indicate that the sd card is present, but currently unavailable -->
+    <string name="sdcard_busy_title_nosdcard">USB storage unavailable</string>
     <!-- label underneath icon used to indicate sd card is mounted to your computer via USB -->
     <string name="sdcard_busy_message">Sorry, your SD card is busy.</string>
+    <!-- label underneath icon used to indicate sd card is mounted to your computer via USB -->
+    <string name="sdcard_busy_message_nosdcard">Sorry, your USB storage is busy.</string>
     <!-- Title of screen when there was an error accessing the sd card -->
     <string name="sdcard_error_title">SD card error</string>
+    <!-- Title of screen when there was an error accessing the sd card -->
+    <string name="sdcard_error_title_nosdcard">USB storage error</string>
     <!-- label underneath icon used to indicate there was an error accessing the sd card -->
     <string name="sdcard_error_message">An error was encountered on your SD card.</string>
+    <!-- label underneath icon used to indicate there was an error accessing the sd card -->
+    <string name="sdcard_error_message_nosdcard">An error was encountered on your USB storage.</string>
     <!-- Default name of artist that doesn't have a name in the metadata -->
     <string name="unknown_artist_name">Unknown artist</string>
     <!-- Default name of album that doesn't have a name in the metadata -->
diff --git a/src/com/android/music/AlbumBrowserActivity.java b/src/com/android/music/AlbumBrowserActivity.java
index 4143bed..69d6185 100644
--- a/src/com/android/music/AlbumBrowserActivity.java
+++ b/src/com/android/music/AlbumBrowserActivity.java
@@ -326,7 +326,12 @@
             }
             case DELETE_ITEM: {
                 long [] list = MusicUtils.getSongListForAlbum(this, Long.parseLong(mCurrentAlbumId));
-                String f = getString(R.string.delete_album_desc); 
+                String f;
+                if (android.os.Environment.isExternalStorageRemovable()) {
+                    f = getString(R.string.delete_album_desc);
+                } else {
+                    f = getString(R.string.delete_album_desc_nosdcard);
+                }
                 String desc = String.format(f, mCurrentAlbumName);
                 Bundle b = new Bundle();
                 b.putString("description", desc);
diff --git a/src/com/android/music/ArtistAlbumBrowserActivity.java b/src/com/android/music/ArtistAlbumBrowserActivity.java
index a2fea62..e0068be 100644
--- a/src/com/android/music/ArtistAlbumBrowserActivity.java
+++ b/src/com/android/music/ArtistAlbumBrowserActivity.java
@@ -425,11 +425,22 @@
                 String desc;
                 if (mCurrentArtistId != null) {
                     list = MusicUtils.getSongListForArtist(this, Long.parseLong(mCurrentArtistId));
-                    String f = getString(R.string.delete_artist_desc);
+                    String f;
+                    if (android.os.Environment.isExternalStorageRemovable()) {
+                        f = getString(R.string.delete_artist_desc);
+                    } else {
+                        f = getString(R.string.delete_artist_desc_nosdcard);
+                    }
                     desc = String.format(f, mCurrentArtistName);
                 } else {
                     list = MusicUtils.getSongListForAlbum(this, Long.parseLong(mCurrentAlbumId));
-                    String f = getString(R.string.delete_album_desc); 
+                    String f;
+                    if (android.os.Environment.isExternalStorageRemovable()) {
+                        f = getString(R.string.delete_album_desc);
+                    } else {
+                        f = getString(R.string.delete_album_desc_nosdcard);
+                    }
+        
                     desc = String.format(f, mCurrentAlbumName);
                 }
                 Bundle b = new Bundle();
diff --git a/src/com/android/music/MediaAppWidgetProvider.java b/src/com/android/music/MediaAppWidgetProvider.java
index 01956ae..159aace 100644
--- a/src/com/android/music/MediaAppWidgetProvider.java
+++ b/src/com/android/music/MediaAppWidgetProvider.java
@@ -122,9 +122,17 @@
         String status = Environment.getExternalStorageState();
         if (status.equals(Environment.MEDIA_SHARED) ||
                 status.equals(Environment.MEDIA_UNMOUNTED)) {
-            errorState = res.getText(R.string.sdcard_busy_title);
+            if (android.os.Environment.isExternalStorageRemovable()) {
+                errorState = res.getText(R.string.sdcard_busy_title);
+            } else {
+                errorState = res.getText(R.string.sdcard_busy_title_nosdcard);
+            }
         } else if (status.equals(Environment.MEDIA_REMOVED)) {
-            errorState = res.getText(R.string.sdcard_missing_title);
+            if (android.os.Environment.isExternalStorageRemovable()) {
+                errorState = res.getText(R.string.sdcard_missing_title);
+            } else {
+                errorState = res.getText(R.string.sdcard_missing_title_nosdcard);
+            }
         } else if (titleName == null) {
             errorState = res.getText(R.string.emptyplaylist);
         }
diff --git a/src/com/android/music/MediaPlaybackActivity.java b/src/com/android/music/MediaPlaybackActivity.java
index 0f1685b..8e1d6a0 100644
--- a/src/com/android/music/MediaPlaybackActivity.java
+++ b/src/com/android/music/MediaPlaybackActivity.java
@@ -609,8 +609,13 @@
                         long [] list = new long[1];
                         list[0] = MusicUtils.getCurrentAudioId();
                         Bundle b = new Bundle();
-                        b.putString("description", getString(R.string.delete_song_desc,
-                                mService.getTrackName()));
+                        String f;
+                        if (android.os.Environment.isExternalStorageRemovable()) {
+                            f = getString(R.string.delete_song_desc, mService.getTrackName());
+                        } else {
+                            f = getString(R.string.delete_song_desc_nosdcard, mService.getTrackName());
+                        }
+                        b.putString("description", f);
                         b.putLongArray("items", list);
                         intent = new Intent();
                         intent.setClass(this, DeleteItems.class);
diff --git a/src/com/android/music/MusicUtils.java b/src/com/android/music/MusicUtils.java
index b770557..d14e98e 100644
--- a/src/com/android/music/MusicUtils.java
+++ b/src/com/android/music/MusicUtils.java
@@ -656,16 +656,33 @@
         }
 
         String status = Environment.getExternalStorageState();
-        int title = R.string.sdcard_error_title;
-        int message = R.string.sdcard_error_message;
+        int title, message;
+
+        if (android.os.Environment.isExternalStorageRemovable()) {
+            title = R.string.sdcard_error_title;
+            message = R.string.sdcard_error_message;
+        } else {
+            title = R.string.sdcard_error_title_nosdcard;
+            message = R.string.sdcard_error_message_nosdcard;
+        }
         
         if (status.equals(Environment.MEDIA_SHARED) ||
                 status.equals(Environment.MEDIA_UNMOUNTED)) {
-            title = R.string.sdcard_busy_title;
-            message = R.string.sdcard_busy_message;
+            if (android.os.Environment.isExternalStorageRemovable()) {
+                title = R.string.sdcard_busy_title;
+                message = R.string.sdcard_busy_message;
+            } else {
+                title = R.string.sdcard_busy_title_nosdcard;
+                message = R.string.sdcard_busy_message_nosdcard;
+            }
         } else if (status.equals(Environment.MEDIA_REMOVED)) {
-            title = R.string.sdcard_missing_title;
-            message = R.string.sdcard_missing_message;
+            if (android.os.Environment.isExternalStorageRemovable()) {
+                title = R.string.sdcard_missing_title;
+                message = R.string.sdcard_missing_message;
+            } else {
+                title = R.string.sdcard_missing_title_nosdcard;
+                message = R.string.sdcard_missing_message_nosdcard;
+            }
         } else if (status.equals(Environment.MEDIA_MOUNTED)){
             // The card is mounted, but we didn't get a valid cursor.
             // This probably means the mediascanner hasn't started scanning the
diff --git a/src/com/android/music/ScanningProgress.java b/src/com/android/music/ScanningProgress.java
index e5eae94..3d5f926 100644
--- a/src/com/android/music/ScanningProgress.java
+++ b/src/com/android/music/ScanningProgress.java
@@ -65,7 +65,11 @@
         setVolumeControlStream(AudioManager.STREAM_MUSIC);
 
         requestWindowFeature(Window.FEATURE_NO_TITLE);
-        setContentView(R.layout.scanning);
+        if (android.os.Environment.isExternalStorageRemovable()) {
+            setContentView(R.layout.scanning);
+        } else {
+            setContentView(R.layout.scanning_nosdcard);
+        }
         getWindow().setLayout(WindowManager.LayoutParams.WRAP_CONTENT,
                                     WindowManager.LayoutParams.WRAP_CONTENT);
         setResult(RESULT_CANCELED);
diff --git a/src/com/android/music/TrackBrowserActivity.java b/src/com/android/music/TrackBrowserActivity.java
index 20e3060..6f9129b 100644
--- a/src/com/android/music/TrackBrowserActivity.java
+++ b/src/com/android/music/TrackBrowserActivity.java
@@ -712,7 +712,12 @@
                 long [] list = new long[1];
                 list[0] = (int) mSelectedId;
                 Bundle b = new Bundle();
-                String f = getString(R.string.delete_song_desc); 
+                String f;
+                if (android.os.Environment.isExternalStorageRemovable()) {
+                    f = getString(R.string.delete_song_desc); 
+                } else {
+                    f = getString(R.string.delete_song_desc_nosdcard); 
+                }
                 String desc = String.format(f, mCurrentTrackName);
                 b.putString("description", desc);
                 b.putLongArray("items", list);