diff --git a/CHANGELOG.md b/CHANGELOG.md index 381ee68..7afcfdf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ OpenSeizureDetector Android App - Change Log ============================================ + V3.5.0 - Aug 2020 Added broadcast to request phone call dial alert (handled by separate app OpenSeizureDetector Dialler). + V3.2.1 - Aug2020 - Addition of Spanish Translation, and correction of crash report wording in German. V3.2.0 - mar2020 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9098ac5..8d623cb 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,8 +2,8 @@ + android:versionCode="72" + android:versionName="3.5.0"> diff --git a/app/src/main/java/uk/org/openseizuredetector/MainActivity.java b/app/src/main/java/uk/org/openseizuredetector/MainActivity.java index 5f72ba8..a4765ad 100644 --- a/app/src/main/java/uk/org/openseizuredetector/MainActivity.java +++ b/app/src/main/java/uk/org/openseizuredetector/MainActivity.java @@ -238,6 +238,12 @@ public class MainActivity extends AppCompatActivity { mConnection.mSdServer.sendSMSAlarm(); } return true; + case R.id.action_test_phone_alarm: + Log.i(TAG, "action_test_phone_alarm"); + if (mConnection.mBound) { + mConnection.mSdServer.sendPhoneAlarm(); + } + return true; case R.id.action_export: Log.i(TAG, "action_export"); try { diff --git a/app/src/main/java/uk/org/openseizuredetector/OsdUtil.java b/app/src/main/java/uk/org/openseizuredetector/OsdUtil.java index 4b236fd..2e42e8d 100644 --- a/app/src/main/java/uk/org/openseizuredetector/OsdUtil.java +++ b/app/src/main/java/uk/org/openseizuredetector/OsdUtil.java @@ -442,7 +442,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac return null; } - private boolean isPackageInstalled(String packagename) { + public boolean isPackageInstalled(String packagename) { PackageManager pm = mContext.getPackageManager(); try { pm.getPackageInfo(packagename, PackageManager.GET_ACTIVITIES); diff --git a/app/src/main/java/uk/org/openseizuredetector/SdServer.java b/app/src/main/java/uk/org/openseizuredetector/SdServer.java index 5cae4b4..209662b 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdServer.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdServer.java @@ -115,6 +115,7 @@ public class SdServer extends Service implements SdDataReceiver { private boolean mAudibleWarning = false; private boolean mAudibleFaultWarning = false; private boolean mMp3Alarm = false; + private boolean mPhoneAlarm = false; private boolean mSMSAlarm = false; private String[] mSMSNumbers; private String mSMSMsgStr = "default SMS Message"; @@ -457,6 +458,9 @@ public class SdServer extends Service implements SdDataReceiver { } else { smsStr = getString(R.string.sms_location_alarm_disabled); } + if (mPhoneAlarm) { + smsStr = "Phone Call Alarm Active"; + } if (mNotificationBuilder != null) { mNotification = mNotificationBuilder.setContentIntent(contentIntent) .setSmallIcon(iconId) @@ -565,6 +569,7 @@ public class SdServer extends Service implements SdDataReceiver { - mSMSTime.toMillis(false)) > 60000) { sendSMSAlarm(); + sendPhoneAlarm(); mSMSTime = tnow; } else { mUtil.showToast("SMS Alarm already sent - not re-sending"); @@ -794,6 +799,18 @@ public class SdServer extends Service implements SdDataReceiver { Log.i(TAG, "sendSMSAlarm() - SMS Alarms Disabled - not doing anything!"); mUtil.showToast(getString(R.string.sms_alarm_disabled)); } + if (mPhoneAlarm) { + if (!mCancelAudible) { + Log.i(TAG, "sendSMSAlarm() - Sending Phone Alarm Broadcast"); + sendPhoneAlarm(); + } else { + Log.i(TAG, "sendSMSAlarm() - Cancel Audible Active - not making Phone Call"); + mUtil.showToast(getString(R.string.cancel_audible_not_sending_sms)); + } + } else { + Log.i(TAG, "sendSMSAlarm() - Phone Alarms Disabled - not doing anything!"); + mUtil.showToast(getString(R.string.phone_alarm_disabled)); + } } @@ -1068,6 +1085,8 @@ public class SdServer extends Service implements SdDataReceiver { mSMSAlarm = SP.getBoolean("SMSAlarm", false); Log.v(TAG, "updatePrefs() - mSMSAlarm = " + mSMSAlarm); + mPhoneAlarm = SP.getBoolean("PhoneCallAlarm", false); + Log.v(TAG, "updatePrefs() - mSMSAlarm = " + mSMSAlarm); String SMSNumberStr = SP.getString("SMSNumbers", ""); mSMSNumbers = SMSNumberStr.split(","); mSMSMsgStr = SP.getString("SMSMsg", "Seizure Detected!!!"); @@ -1153,7 +1172,16 @@ public class SdServer extends Service implements SdDataReceiver { } - + public void sendPhoneAlarm() { + /** + * Use the separate OpenSeizureDetector Dialler app to generate a phone call alarm to the numbers selected for SMS Alarms. + */ + Log.v(TAG,"sendPhoneAlarm() - sending broadcast intent"); + Intent intent = new Intent(); + intent.setAction("uk.org.openseizuredetector.dialler.ALARM"); + intent.putExtra("NUMBERS",mSMSNumbers); + sendBroadcast(intent); + } /* diff --git a/app/src/main/java/uk/org/openseizuredetector/StartupActivity.java b/app/src/main/java/uk/org/openseizuredetector/StartupActivity.java index 1378e30..179da2e 100644 --- a/app/src/main/java/uk/org/openseizuredetector/StartupActivity.java +++ b/app/src/main/java/uk/org/openseizuredetector/StartupActivity.java @@ -37,6 +37,7 @@ import android.os.Bundle; import android.os.Handler; import android.preference.PreferenceManager; import android.text.SpannableString; +import android.text.SpannedString; import android.text.util.Linkify; import android.util.Log; import android.view.View; @@ -225,11 +226,13 @@ public class StartupActivity extends Activity { TextView tv; ProgressBar pb; boolean smsAlarmsActive = true; + boolean phoneAlarmsActive = true; Log.v(TAG,"serverStatusRunnable()"); SharedPreferences SP = PreferenceManager .getDefaultSharedPreferences(getBaseContext()); smsAlarmsActive = SP.getBoolean("SMSAlarm", false); + phoneAlarmsActive = SP.getBoolean("PhoneCallAlarm", false); // Settings ok tv = (TextView) findViewById(R.id.textItem1); @@ -258,6 +261,16 @@ public class StartupActivity extends Activity { mUtil.requestPermissions(StartupActivity.this); } + // If phone alarms are selected, we need to have the uk.org.openseizuredetector.dialler package installed to do the actual dialling. + if (phoneAlarmsActive && !mUtil.isPackageInstalled("uk.org.openseizuredetector.dialler")) { + tv.setText(getText(R.string.DiallerNotInstalledWarning)); + tv.setBackgroundColor(alarmColour); + tv.setTextColor(alarmTextColour); + pb.setIndeterminateDrawable(getResources().getDrawable(R.drawable.start_server)); + pb.setProgressDrawable(getResources().getDrawable(R.drawable.start_server)); + allOk = false; + } + // Are we Bound to the Service tv = (TextView) findViewById(R.id.textItem2); pb = (ProgressBar) findViewById(R.id.progressBar2); diff --git a/app/src/main/res/menu/main_activity_actions.xml b/app/src/main/res/menu/main_activity_actions.xml index 73b9dbd..9dd43a4 100644 --- a/app/src/main/res/menu/main_activity_actions.xml +++ b/app/src/main/res/menu/main_activity_actions.xml @@ -46,6 +46,12 @@ android:showAsAction="never|withText" android:title="@string/test_sms_alarm_notification" /> + + Send SMS - last location is ERROR: FAILED TO SEND SMS MESSAGE SMS Alarms Disabled - not doing anything! + Phone Alarm Disabled + Test Phone Alarm + OpenSeizureDetector Dialer App Not installed - Required for Phone Call Alerts. diff --git a/app/src/main/res/xml/alarm_prefs.xml b/app/src/main/res/xml/alarm_prefs.xml index 9c15c30..1f0b7ed 100644 --- a/app/src/main/res/xml/alarm_prefs.xml +++ b/app/src/main/res/xml/alarm_prefs.xml @@ -62,6 +62,14 @@ android:title="SMS Message" /> + + + +