From 25969dd6d6fd02e6b112b7e074b3fbf02b5369f8 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Sun, 13 Jul 2025 18:38:17 -0700 Subject: [PATCH] Fix the issue of a device not having any sounds to play by including a basic backup chime. --- README.md | 6 +- .../apps/infinitetimer/MainActivity.java | 78 ++++++++++++++++-- app/src/main/res/raw/chime_sound_7143.mp3 | Bin 0 -> 32640 bytes 3 files changed, 78 insertions(+), 6 deletions(-) create mode 100644 app/src/main/res/raw/chime_sound_7143.mp3 diff --git a/README.md b/README.md index d8e1b2f..7a9415e 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,8 @@ Timer which loops over the specified interval, playing your default notification ### 2025-07-11 (This article)[https://sijus.medium.com/resurrecting-a-5-year-old-android-app-a-developers-journey-59d8f5689e5b] - was very helpful in getting this app updated from SDK 25 to 36. \ No newline at end of file + was very helpful in getting this app updated from SDK 25 to 36. + +## Licenses +Chime sound byte came free from here: +https://pixabay.com/sound-effects/chime-sound-7143/ diff --git a/app/src/main/java/com/hyperling/apps/infinitetimer/MainActivity.java b/app/src/main/java/com/hyperling/apps/infinitetimer/MainActivity.java index ac98a9b..70f1b0d 100755 --- a/app/src/main/java/com/hyperling/apps/infinitetimer/MainActivity.java +++ b/app/src/main/java/com/hyperling/apps/infinitetimer/MainActivity.java @@ -1,13 +1,17 @@ package com.hyperling.apps.infinitetimer; +import android.app.NotificationManager; +import android.content.DialogInterface; import android.content.SharedPreferences; import android.graphics.Color; import android.media.MediaPlayer; +import android.media.Ringtone; import android.media.RingtoneManager; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; @@ -68,17 +72,60 @@ public class MainActivity extends AppCompatActivity { stringChronometerDefault = getString(R.string.chronometerDefault); + if (DEBUG) Log.d(tag, "Got strings."); + /***** Shared Preferences *****/ sharedPreferences = getSharedPreferences(keySharedPreferences, MODE_PRIVATE); DEBUG = sharedPreferences.getBoolean(keyDebug, true); appOpen = sharedPreferences.getBoolean(keyAppOpen, false); serviceRunning = sharedPreferences.getBoolean(keyServiceRunning, false); + if (DEBUG) Log.d(tag, "Got preferences."); + // Sound ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); + if (DEBUG) Log.d(tag, "ringtoneUri=" + ringtoneUri.toString()); mediaPlayer = MediaPlayer.create(this, ringtoneUri); + if (mediaPlayer == null) { + if (DEBUG) Log.d(tag, "Media Player is null, trying alarm"); + ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); + mediaPlayer = MediaPlayer.create(this, ringtoneUri); + } + if (mediaPlayer == null) { + if (DEBUG) Log.d(tag, "Media Player is null, trying ringtone"); + ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); + mediaPlayer = MediaPlayer.create(this, ringtoneUri); + } + if (mediaPlayer == null) { + if (DEBUG) Log.d(tag, "Media Player is null, trying all"); + ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALL); + mediaPlayer = MediaPlayer.create(this, ringtoneUri); + } + if (mediaPlayer == null) { + if (DEBUG) Log.d(tag, "Media Player is null, trying local sound byte"); + mediaPlayer = MediaPlayer.create(this, R.raw.chime_sound_7143); + } + if (mediaPlayer == null) { + String message = "Could not find a notification, alarm, or ringtone to play."; + message += " App will not be able to function without one of these."; + message += " Please exit and install a system notification sound."; - if (DEBUG) Log.d(tag, "Got strings."); + new AlertDialog.Builder(MainActivity.this) + .setTitle("Error") + .setMessage(message) + .setPositiveButton("Exit", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + finish(); + } + }) + .setCancelable(false) + .show() + ; + } else { + if (DEBUG) Log.d(tag, "mediaPlayer=" + mediaPlayer.toString()); + } if (DEBUG){ // Print all preferences @@ -537,13 +584,34 @@ public class MainActivity extends AppCompatActivity { String tag = TAG + "playSound"; if (DEBUG) Log.d(tag, "Starting"); - /* Original code, did not work on Nexus 7 with CM 12.1-20151117 (Android 5.1.1) + /* Original code, did not work on Nexus 7 with CM 12.1-20151117 (Android 5.1.1) * / Ringtone ringtone = RingtoneManager.getRingtone(getApplicationContext(), ringtoneUri); ringtone.play(); - */ + /**/ - //mediaPlayer.reset(); - mediaPlayer.start(); + try { + mediaPlayer.start(); + } catch (Exception e) { + sharedPreferences.edit().putBoolean(keyStartStop, false).apply(); + + String message = "Failed to play a notification sound."; + message += " Please screenshot this error and send it to me@hyperling.com:\n\n"; + message += e.toString(); + + new AlertDialog.Builder(MainActivity.this) + .setTitle("Error") + .setMessage(message) + .setPositiveButton("Exit", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + finish(); + } + }) + .setCancelable(false) + .show() + ; + } if (DEBUG) Log.d(tag, "Finished"); } diff --git a/app/src/main/res/raw/chime_sound_7143.mp3 b/app/src/main/res/raw/chime_sound_7143.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d9dbf349e2d08bdb592963cfe3b86347be2eef3a GIT binary patch literal 32640 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�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 WJoe6i|2O})