diff options
author | kaiyiz <kaiyiz@codeaurora.org> | 2014-04-09 16:29:26 +0800 |
---|---|---|
committer | Brint E. Kriebel <bekit@cyngn.com> | 2014-08-25 20:03:52 +0000 |
commit | ea4c92315bddac1f00664d43b116819bdcd5575f (patch) | |
tree | c6d5e1835630af7e1793cfcce3e1f3b627e4b02a | |
parent | ceb414707fea06daece7761de7b49a0a1ccdbf6c (diff) | |
download | android_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.xml | 1 | ||||
-rw-r--r-- | res/values/cm_strings.xml | 3 | ||||
-rw-r--r-- | src/com/android/deskclock/AlarmClockFragment.java | 38 |
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); } |