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);