kopia lustrzana https://github.com/ryukoposting/Signal-Android
Fix crash in notification settings.
rodzic
c48ea68e7e
commit
b2038e4ca0
|
@ -6,6 +6,7 @@ import android.content.Intent
|
|||
import android.graphics.ColorFilter
|
||||
import android.graphics.PorterDuff
|
||||
import android.graphics.PorterDuffColorFilter
|
||||
import android.media.Ringtone
|
||||
import android.media.RingtoneManager
|
||||
import android.net.Uri
|
||||
import android.provider.Settings
|
||||
|
@ -17,6 +18,7 @@ import androidx.core.content.ContextCompat
|
|||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.preference.PreferenceManager
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.settings.DSLConfiguration
|
||||
import org.thoughtcrime.securesms.components.settings.DSLSettingsAdapter
|
||||
|
@ -36,6 +38,7 @@ import org.thoughtcrime.securesms.util.navigation.safeNavigate
|
|||
|
||||
private const val MESSAGE_SOUND_SELECT: Int = 1
|
||||
private const val CALL_RINGTONE_SELECT: Int = 2
|
||||
private val TAG = Log.tag(NotificationsSettingsFragment::class.java)
|
||||
|
||||
class NotificationsSettingsFragment : DSLSettingsFragment(R.string.preferences__notifications) {
|
||||
|
||||
|
@ -248,9 +251,14 @@ class NotificationsSettingsFragment : DSLSettingsFragment(R.string.preferences__
|
|||
return if (TextUtils.isEmpty(uri.toString())) {
|
||||
getString(R.string.preferences__silent)
|
||||
} else {
|
||||
val tone = RingtoneUtil.getRingtone(requireContext(), uri)
|
||||
val tone: Ringtone? = RingtoneUtil.getRingtone(requireContext(), uri)
|
||||
if (tone != null) {
|
||||
tone.getTitle(requireContext()) ?: getString(R.string.NotificationsSettingsFragment__unknown_ringtone)
|
||||
try {
|
||||
tone.getTitle(requireContext()) ?: getString(R.string.NotificationsSettingsFragment__unknown_ringtone)
|
||||
} catch (e: SecurityException) {
|
||||
Log.w(TAG, "Unable to get title for ringtone", e)
|
||||
return getString(R.string.NotificationsSettingsFragment__unknown_ringtone)
|
||||
}
|
||||
} else {
|
||||
getString(R.string.preferences__default)
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@ import org.thoughtcrime.securesms.components.settings.configure
|
|||
import org.thoughtcrime.securesms.database.RecipientDatabase
|
||||
import org.thoughtcrime.securesms.notifications.NotificationChannels
|
||||
import org.thoughtcrime.securesms.util.RingtoneUtil
|
||||
import java.lang.NullPointerException
|
||||
|
||||
private val TAG = Log.tag(CustomNotificationsSettingsFragment::class.java)
|
||||
|
||||
|
@ -149,6 +148,9 @@ class CustomNotificationsSettingsFragment : DSLSettingsFragment(R.string.CustomN
|
|||
} catch (e: NullPointerException) {
|
||||
Log.w(TAG, "Could not get correct title for ringtone.", e)
|
||||
context.getString(R.string.CustomNotificationsDialogFragment__unknown)
|
||||
} catch (e: SecurityException) {
|
||||
Log.w(TAG, "Could not get correct title for ringtone.", e)
|
||||
context.getString(R.string.CustomNotificationsDialogFragment__unknown)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ public final class RingtoneUtil {
|
|||
try {
|
||||
return RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE);
|
||||
} catch (SecurityException e) {
|
||||
Log.w(TAG, "Failed to set ringtone with first fallback approach", e);
|
||||
Log.w(TAG, "Failed to get ringtone with first fallback approach", e);
|
||||
}
|
||||
|
||||
Log.i(TAG, "Attempting to get default ringtone directly via reflection");
|
||||
|
|
Ładowanie…
Reference in New Issue