Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b7ac686c authored by kaiyiz's avatar kaiyiz
Browse files

Fix no ringtone and notification sound after MediaScan

When ringtone and notification is not customized, the customized
ringtone/notification file name will be null. It will lead to
NullPointer exception when call doesPathHaveFilename().
Fix it by adding customize feature control and empty check.

CRs-Fixed: 754038

Change-Id: Ife7e041acbeec2c7da976da8d32b22c60f52a70c
parent 75b27161
Loading
Loading
Loading
Loading
+23 −10
Original line number Diff line number Diff line
@@ -1001,9 +1001,13 @@ public class MediaScanner
                // notifications, ringtones, and alarms, because the rowId of the inserted file is
                // needed.
                if (mWasEmptyPriorToScan) {
                    needToSetSettings = needToSetSettingsForNotification(entry)
                            || needToSetSettingsForRingtone(entry)
                            || needToSetSettingsForAlarm(entry);
                    if (notifications && !mDefaultNotificationSet) {
                        needToSetSettings = needToSetSettingsForNotification(entry);
                    } else if (ringtones && !mDefaultRingtoneSet) {
                        needToSetSettings = needToSetSettingsForRingtone(entry);
                    } else if (alarms && !mDefaultAlarmSet) {
                        needToSetSettings = needToSetSettingsForAlarm(entry);
                    }
                }

                // New file, insert it.
@@ -1081,17 +1085,26 @@ public class MediaScanner
        }

        private boolean needToSetSettingsForNotification(FileEntry entry) {
            return TextUtils.isEmpty(mDefaultNotificationFilename)
                    || doesPathHaveFilename(entry.mPath, mDefaultNotificationFilename)
            boolean result = TextUtils.isEmpty(mDefaultNotificationFilename)
                    || doesPathHaveFilename(entry.mPath, mDefaultNotificationFilename);
            if (isSoundCustomized()) {
                result = result || TextUtils.isEmpty(mDefaultMmsNotificationFilename)
                        || doesPathHaveFilename(entry.mPath, mDefaultMmsNotificationFilename);
            }
            return result;
        }

        private boolean needToSetSettingsForRingtone(FileEntry entry) {
            return TextUtils.isEmpty(mDefaultRingtoneFilename)
                    || doesPathHaveFilename(entry.mPath, mDefaultRingtoneFilename)
            boolean result = TextUtils.isEmpty(mDefaultRingtoneFilename)
                    || doesPathHaveFilename(entry.mPath, mDefaultRingtoneFilename);
            if (isSoundCustomized()) {
                result = result || TextUtils.isEmpty(mDefaultRingtone2Filename)
                        || doesPathHaveFilename(entry.mPath, mDefaultRingtone2Filename)
                        || TextUtils.isEmpty(mDefaultRingtone3Filename)
                        || doesPathHaveFilename(entry.mPath, mDefaultRingtone3Filename);
            }
            return result;
        }

        private boolean needToSetSettingsForAlarm(FileEntry entry) {
            return TextUtils.isEmpty(mDefaultAlarmAlertFilename)