Fixed issue with V4 refusing to shutdown after logging into the data sharing system....I think :)

This commit is contained in:
Graham Jones
2022-02-20 19:58:32 +00:00
parent 40b7c3c38a
commit 66bf139d09
15 changed files with 66 additions and 40 deletions

View File

@@ -31,11 +31,17 @@ public class AuthenticateActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.v(TAG, "onCreate()");
Log.d(TAG, "onCreate()");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_authenticate);
mUtil = new OsdUtil(getApplicationContext(), serverStatusHandler);
if (!mUtil.isServerRunning()) {
mUtil.showToast(getString(R.string.error_server_not_running));
finish();
return;
}
mConnection = new SdServiceConnection(getApplicationContext());
Button cancelBtn =
@@ -61,13 +67,21 @@ public class AuthenticateActivity extends AppCompatActivity {
@Override
protected void onStart() {
Log.d(TAG, "onStart()");
super.onStart();
mUtil.bindToServer(getApplicationContext(), mConnection);
waitForConnection();
updateUi();
}
@Override
protected void onStop() {
Log.d(TAG, "onStop()");
super.onStop();
mUtil.unbindFromServer(getApplicationContext(), mConnection);
}
private void waitForConnection() {
// We want the UI to update as soon as it is displayed, but it takes a finite time for
// the mConnection to bind to the service, so we delay half a second to give it chance

View File

@@ -68,6 +68,13 @@ public class LogManagerControlActivity extends AppCompatActivity {
super.onCreate(savedInstanceState);
mContext = this;
mUtil = new OsdUtil(getApplicationContext(), serverStatusHandler);
if (!mUtil.isServerRunning()) {
mUtil.showToast(getString(R.string.error_server_not_running));
finish();
return;
}
mConnection = new SdServiceConnection(getApplicationContext());
setContentView(R.layout.activity_log_manager_control);
@@ -137,7 +144,7 @@ public class LogManagerControlActivity extends AppCompatActivity {
Log.v(TAG, "onStop()");
super.onStop();
stopUiTimer();
mUtil.unbindFromServer(this, mConnection);
mUtil.unbindFromServer(getApplicationContext(), mConnection);
}
@Override
@@ -559,7 +566,7 @@ public class LogManagerControlActivity extends AppCompatActivity {
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
Map<String, ?> dataItem = (Map<String,?>)getItem(position);
Log.i(TAG,dataItem.toString());
Log.v(TAG,"getView() "+dataItem.toString());
switch(dataItem.get("type").toString()) {
case "null":
v.setBackgroundColor(Color.parseColor("#ffaaaa"));

View File

@@ -98,7 +98,7 @@ public class MainActivity extends AppCompatActivity {
//int i = 5/0; // Force exception to test handler.
mUtil = new OsdUtil(getApplicationContext(),serverStatusHandler);
mConnection = new SdServiceConnection(this);
mConnection = new SdServiceConnection(getApplicationContext());
mUtil.writeToSysLogFile("");
mUtil.writeToSysLogFile("* MainActivity Started *");
mUtil.writeToSysLogFile("MainActivity.onCreate()");
@@ -236,14 +236,14 @@ public class MainActivity extends AppCompatActivity {
Log.i(TAG, "action_sart_stop");
if (mConnection.mBound) {
Log.i(TAG, "Stopping Server");
mUtil.unbindFromServer(this, mConnection);
mUtil.unbindFromServer(getApplicationContext(), mConnection);
stopServer();
} else {
Log.i(TAG, "Starting Server");
startServer();
// and bind to it so we can see its data
Log.i(TAG, "Binding to Server");
mUtil.bindToServer(this, mConnection);
mUtil.bindToServer(getApplicationContext(), mConnection);
}
return true;
/* fault beep test does not work with fault timer, so disable test option.
@@ -369,7 +369,7 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onStart() {
super.onStart();
Log.i(TAG,"onStart()");
Log.d(TAG,"onStart()");
mUtil.writeToSysLogFile("MainActivity.onStart()");
SharedPreferences SP = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
@@ -383,7 +383,7 @@ public class MainActivity extends AppCompatActivity {
if (mUtil.isServerRunning()) {
mUtil.writeToSysLogFile("MainActivity.onStart - Binding to Server");
mUtil.bindToServer(this, mConnection);
mUtil.bindToServer(getApplicationContext(), mConnection);
} else {
Log.i(TAG,"onStart() - Server Not Running");
mUtil.writeToSysLogFile("MainActivity.onStart - Server Not Running");
@@ -403,9 +403,9 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onStop() {
super.onStop();
Log.i(TAG,"onStop() - unbinding from server");
Log.d(TAG,"onStop() - unbinding from server");
mUtil.writeToSysLogFile("MainActivity.onStop()");
mUtil.unbindFromServer(this, mConnection);
mUtil.unbindFromServer(getApplicationContext(), mConnection);
mUiTimer.cancel();
}
@@ -903,14 +903,14 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onPause() {
super.onPause();
Log.i(TAG,"onPause()");
Log.d(TAG,"onPause()");
mUtil.writeToSysLogFile("MainActivity.onPause()");
}
@Override
protected void onResume() {
super.onResume();
Log.i(TAG,"onResume()");
Log.d(TAG,"onResume()");
mUtil.writeToSysLogFile("MainActivity.onResume()");
}

View File

@@ -226,7 +226,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
/**
* unbind an activity from server
*/
public void unbindFromServer(Activity activity, SdServiceConnection sdServiceConnection) {
public void unbindFromServer(Context activity, SdServiceConnection sdServiceConnection) {
// unbind this activity from the service if it is bound.
if (sdServiceConnection.mBound) {
Log.i(TAG, "unbindFromServer() - unbinding");

View File

@@ -36,26 +36,27 @@ public class ReportSeizureActivity extends AppCompatActivity {
private LogManager mLm;
private int mYear, mMonth, mDay, mHour, mMinute;
private String mMsg = "Messages";
private OsdUtil osdUtil;
private SdServiceConnection mConnection;
private OsdUtil mUtil;
final Handler serverStatusHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.v(TAG, "onCreate()");
super.onCreate(savedInstanceState);
mContext = this;
Handler h = new Handler();
osdUtil = new OsdUtil(mContext, h);
setContentView(R.layout.activity_report_seizure);
mUtil = new OsdUtil(this, serverStatusHandler);
mConnection = new SdServiceConnection(this);
if (!mUtil.isServerRunning()) {
mUtil.showToast(getString(R.string.error_server_not_running));
finish();
return;
}
mConnection = new SdServiceConnection(getApplicationContext());
setContentView(R.layout.activity_report_seizure);
// It takes a finite time for
// the mConnection to bind to the service, so we delay half a second to give it chance
// to connect before trying to get the SdServer LogManager instance)
// FIXME: We should probably implement a WaitForConnection function like we do in some of the other activities
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
@@ -97,7 +98,7 @@ public class ReportSeizureActivity extends AppCompatActivity {
@Override
protected void onStart() {
super.onStart();
mUtil.bindToServer(this, mConnection);
mUtil.bindToServer(getApplicationContext(), mConnection);
//startUiTimer();
}
@@ -116,7 +117,7 @@ public class ReportSeizureActivity extends AppCompatActivity {
@Override
protected void onStop() {
super.onStop();
mUtil.unbindFromServer(this, mConnection);
mUtil.unbindFromServer(getApplicationContext(), mConnection);
}
@@ -153,11 +154,11 @@ public class ReportSeizureActivity extends AppCompatActivity {
if (id!=-1) {
mLm.setDatapointStatus(id,5);
mMsg = mMsg + "\nSet Datapoint to Manual Alarm Status";
osdUtil.showToast(getString(R.string.createdNewEvent));
mUtil.showToast(getString(R.string.createdNewEvent));
finish();
} else {
mMsg = mMsg + "\n*** Datapoint not found - not doing anything ***";
osdUtil.showToast(getString(R.string.DatapointNotFound));
mUtil.showToast(getString(R.string.DatapointNotFound));
}
});
}

View File

@@ -360,7 +360,7 @@ public class SdServer extends Service implements SdDataReceiver {
if (mWakeLock != null) {
try {
mWakeLock.release();
Log.v(TAG, "Released Wake Lock to allow device to sleep.");
Log.d(TAG, "Released Wake Lock to allow device to sleep.");
} catch (Exception e) {
Log.e(TAG, "Error Releasing Wakelock - " + e.toString());
mUtil.writeToSysLogFile("SdServer.onDestroy() - Error releasing wakelock.");
@@ -372,7 +372,7 @@ public class SdServer extends Service implements SdDataReceiver {
}
if (mSdDataSource != null) {
Log.i(TAG, "stopping mSdDataSource");
Log.d(TAG, "stopping mSdDataSource");
mUtil.writeToSysLogFile("SdServer.onDestroy() - stopping mSdDataSource");
mSdDataSource.stop();
} else {
@@ -382,7 +382,7 @@ public class SdServer extends Service implements SdDataReceiver {
// Stop the Cancel Audible timer
if (mCancelAudibleTimer != null) {
Log.v(TAG, "onDestroy(): cancelling Cancel_Audible timer");
Log.d(TAG, "onDestroy(): cancelling Cancel_Audible timer");
mCancelAudibleTimer.cancel();
//mCancelAudibleTimer.purge();
mCancelAudibleTimer = null;
@@ -391,23 +391,25 @@ public class SdServer extends Service implements SdDataReceiver {
// Stop the Fault timer
if (mFaultTimer != null) {
Log.v(TAG, "onDestroy(): cancelling fault timer");
Log.d(TAG, "onDestroy(): cancelling fault timer");
mFaultTimer.cancel();
mFaultTimer = null;
}
// Stop the Event timer
if (mEventsTimer != null) {
Log.v(TAG, "onDestroy(): Cancelling events timer");
Log.d(TAG, "onDestroy(): Cancelling events timer");
stopValidatedEventsTimer();
}
// Stop the Cancel Alarm Latch timer
Log.d(TAG,"onDestroy(): stopping alarm latch timer");
stopLatchTimer();
// Stop the location finder.
if (mLocationFinder != null) {
Log.d(TAG,"onDestroy(): stopping Location Finder");
mLocationFinder.destroy();
mLocationFinder = null;
}
@@ -415,7 +417,7 @@ public class SdServer extends Service implements SdDataReceiver {
try {
// Stop web server
Log.v(TAG, "onDestroy(): stopping web server");
Log.d(TAG, "onDestroy(): stopping web server");
mUtil.writeToSysLogFile("SdServer.onDestroy() - stopping Web Server");
stopWebServer();
@@ -425,24 +427,24 @@ public class SdServer extends Service implements SdDataReceiver {
this.stopForeground(true);
// Cancel the notification.
Log.v(TAG, "onDestroy(): cancelling notification");
Log.d(TAG, "onDestroy(): cancelling notification");
mUtil.writeToSysLogFile("SdServer.onDestroy - cancelling notification");
mNM.cancel(NOTIFICATION_ID);
mNM.cancel(EVENT_NOTIFICATION_ID);
// stop this service.
Log.v(TAG, "onDestroy(): calling stopSelf()");
Log.d(TAG, "onDestroy(): calling stopSelf()");
mUtil.writeToSysLogFile("SdServer.onDestroy() - stopping self");
stopSelf();
} catch (Exception e) {
Log.v(TAG, "Error in onDestroy() - " + e.toString());
Log.e(TAG, "Error in onDestroy() - " + e.toString());
mUtil.writeToSysLogFile("SdServer.onDestroy() -error " + e.toString());
}
if (mLm != null) {
Log.i(TAG, "Closing Down Log Manager");
Log.d(TAG, "Closing Down Log Manager");
mLm.close();
}
@@ -1594,10 +1596,10 @@ public class SdServer extends Service implements SdDataReceiver {
public void stopValidatedEventsTimer() {
if (mEventsTimer != null) {
Log.v(TAG, "stopEventsTimer(): timer already running - cancelling it.");
mUtil.writeToSysLogFile("stopEventsTimer() - stopping timer");
mUtil.writeToSysLogFile("stopEventsTimer() - stopping timer, setting mIsRunning to false");
mEventsTimer.mIsRunning = false;
mEventsTimer.cancel();
mEventsTimer = null;
//mEventsTimer = null;
} else {
Log.v(TAG, "stopEventsTimer(): timer not running - not doing anything.");
}
@@ -1658,6 +1660,7 @@ public class SdServer extends Service implements SdDataReceiver {
}
if (mIsRunning) {
// Restart this timer.
Log.v(TAG,"CheckUnvalidatedEventsTimer.onFinish() - mIsRunning is true, so re-starting timer");
start();
}
}

View File

@@ -144,7 +144,7 @@ public class StartupActivity extends Activity {
}
});
mConnection = new SdServiceConnection(this);
mConnection = new SdServiceConnection(getApplicationContext());
}
@Override
@@ -186,7 +186,7 @@ public class StartupActivity extends Activity {
// Bind to the service.
Log.i(TAG,"onStart() - binding to server");
mUtil.writeToSysLogFile("StartupActivity.onStart() - binding to server");
mUtil.bindToServer(this, mConnection);
mUtil.bindToServer(getApplicationContext(), mConnection);
// Check power management settings
PowerManager powerManager = (PowerManager)getSystemService(Context.POWER_SERVICE);
@@ -221,7 +221,7 @@ public class StartupActivity extends Activity {
super.onStop();
Log.i(TAG, "onStop() - unbinding from server");
mUtil.writeToSysLogFile("StartupActivity.onStop() - unbinding from server");
mUtil.unbindFromServer(this, mConnection);
mUtil.unbindFromServer(getApplicationContext(), mConnection);
mUiTimer.cancel();
}

View File

@@ -347,4 +347,5 @@
<string name="shared_data">Shared Data</string>
<string name="prune_database">Prune Database</string>
<string name="check_seizures_message">Please select the events highlighted in pink to say if they are real seizures or false alarms</string>
<string name="error_server_not_running">ERROR: OpenSeizureDetector Server is not running - please re-start it</string>
</resources>