summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkaiyiz <kaiyiz@codeaurora.org>2014-04-09 16:29:26 +0800
committerBrint E. Kriebel <bekit@cyngn.com>2014-08-25 20:03:52 +0000
commitea4c92315bddac1f00664d43b116819bdcd5575f (patch)
treec6d5e1835630af7e1793cfcce3e1f3b627e4b02a
parentceb414707fea06daece7761de7b49a0a1ccdbf6c (diff)
downloadandroid_packages_apps_DeskClock-ea4c92315bddac1f00664d43b116819bdcd5575f.tar.gz
android_packages_apps_DeskClock-ea4c92315bddac1f00664d43b116819bdcd5575f.tar.bz2
android_packages_apps_DeskClock-ea4c92315bddac1f00664d43b116819bdcd5575f.zip
DeskClock: Fixed the ringtone name display incorrect when delete music file
It only displays FALLBACKRING when set alarm ringtone by file explorer, is caused by that it not handle the file uri which from file explorer in getRingToneTitle method. Add the judgement to get the file uri and get the right title of alarm ringtone. CRs-Fixed: 546747 Change-Id: I50ac325c1a636fb2a2985fbc15839fab9e31e0cc
-rw-r--r--res/values-zh-rCN/cm_strings.xml1
-rw-r--r--res/values/cm_strings.xml3
-rw-r--r--src/com/android/deskclock/AlarmClockFragment.java38
3 files changed, 38 insertions, 4 deletions
diff --git a/res/values-zh-rCN/cm_strings.xml b/res/values-zh-rCN/cm_strings.xml
index c956957b7..7aaa3e5b6 100644
--- a/res/values-zh-rCN/cm_strings.xml
+++ b/res/values-zh-rCN/cm_strings.xml
@@ -57,4 +57,5 @@
<string name="alarm_select_external">音乐</string>
<string name="alarm_select_ok">确定</string>
<string name="alarm_select_cancel">取消</string>
+ <string name="ringtone_default">"默认铃声"</string>
</resources>
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
index 795e17bc0..8d6a2c421 100644
--- a/res/values/cm_strings.xml
+++ b/res/values/cm_strings.xml
@@ -93,4 +93,7 @@
<string name="alarm_select_ok">OK</string>
<!-- Cancel for selection -->
<string name="alarm_select_cancel">Cancel</string>
+
+ <!-- Ringtone selection default" -->
+ <string name="ringtone_default">"Default ringtone"</string>
</resources>
diff --git a/src/com/android/deskclock/AlarmClockFragment.java b/src/com/android/deskclock/AlarmClockFragment.java
index 8e36ce23a..0cefe6088 100644
--- a/src/com/android/deskclock/AlarmClockFragment.java
+++ b/src/com/android/deskclock/AlarmClockFragment.java
@@ -48,6 +48,7 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Vibrator;
+import android.provider.MediaStore;
import android.provider.Settings;
import android.text.format.DateFormat;
import android.view.Gravity;
@@ -82,6 +83,7 @@ import com.android.deskclock.provider.DaysOfWeek;
import com.android.deskclock.widget.ActionableToastBar;
import com.android.deskclock.widget.TextTime;
+import java.io.File;
import java.text.DateFormatSymbols;
import java.util.Calendar;
import java.util.HashSet;
@@ -1627,10 +1629,12 @@ public class AlarmClockFragment extends DeskClockFragment implements
if (uri.equals(MultiPlayer.RANDOM_URI)) {
title = mContext.getResources().getString(R.string.alarm_type_random);
} else {
- // This is slow because a media player is created during Ringtone object creation.
- Ringtone ringTone = RingtoneManager.getRingtone(mContext, uri);
- if (ringTone != null) {
- title = ringTone.getTitle(mContext);
+ if (isRingToneUriValid(uri)) {
+ // This is slow because a media player is created during Ringtone object creation.
+ Ringtone ringTone = RingtoneManager.getRingtone(mContext, uri);
+ if (ringTone != null) {
+ title = ringTone.getTitle(mContext);
+ }
}
}
if (title != null) {
@@ -1640,6 +1644,32 @@ public class AlarmClockFragment extends DeskClockFragment implements
return title;
}
+ private boolean isRingToneUriValid(Uri uri) {
+ if (uri.getScheme().contentEquals("file")) {
+ File f = new File(uri.getPath());
+ if (f.exists()) {
+ return true;
+ }
+ } else if (uri.getScheme().contentEquals("content")) {
+ Cursor cursor = null;
+ try {
+ cursor = mContext.getContentResolver().query(uri,
+ new String[] {MediaStore.Audio.Media.TITLE}, null, null, null);
+ if (cursor != null && cursor.getCount() > 0) {
+ return true;
+ }
+ } catch (Exception e) {
+ Log.e("Get ringtone uri Exception: e.toString=" + e.toString());
+ } finally {
+ if (cursor != null) {
+ cursor.close();
+ }
+ }
+ }
+
+ return false;
+ }
+
public void setNewAlarm(long alarmId) {
mExpanded.add(alarmId);
}