First go at generating broadcasts to request openseizuredetector Dialler to generate phone call alerts.

This commit is contained in:
Graham Jones
2020-08-20 21:15:58 +01:00
parent f0dafdd6aa
commit 9ca16954d0
14 changed files with 70 additions and 4 deletions

View File

@@ -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 {

View File

@@ -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);

View File

@@ -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);
}
/*

View File

@@ -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);