Wrapped OsdUtil Toast calls in a RunOnUIThread function to avoid occasional crashes when beeping. Closes #8
This commit is contained in:
@@ -96,7 +96,7 @@ public class MainActivity extends Activity {
|
||||
// Set our custom uncaught exception handler to report issues.
|
||||
Thread.setDefaultUncaughtExceptionHandler(new OsdUncaughtExceptionHandler(MainActivity.this));
|
||||
//int i = 5/0; // Force exception to test handler.
|
||||
mUtil = new OsdUtil(this);
|
||||
mUtil = new OsdUtil(this,serverStatusHandler);
|
||||
mConnection = new SdServiceConnection(this);
|
||||
|
||||
// Initialise the User Interface
|
||||
|
||||
@@ -33,6 +33,7 @@ import android.content.ServiceConnection;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Handler;
|
||||
import android.os.IBinder;
|
||||
import android.util.Log;
|
||||
import android.view.MenuItem;
|
||||
@@ -48,6 +49,7 @@ import java.util.Collections;
|
||||
import java.util.Enumeration;
|
||||
import java.util.List;
|
||||
import java.util.RandomAccess;
|
||||
import java.util.concurrent.RunnableFuture;
|
||||
|
||||
/**
|
||||
* OsdUtil - OpenSeizureDetector Utilities
|
||||
@@ -58,12 +60,22 @@ public class OsdUtil {
|
||||
* Based on http://stackoverflow.com/questions/7440473/android-how-to-check-if-the-intent-service-is-still-running-or-has-stopped-running
|
||||
*/
|
||||
private Context mContext;
|
||||
private Handler mHandler;
|
||||
private String TAG = "OsdUtil";
|
||||
|
||||
public OsdUtil(Context context) {
|
||||
public OsdUtil(Context context, Handler handler) {
|
||||
mContext = context;
|
||||
mHandler = handler;
|
||||
}
|
||||
|
||||
/**
|
||||
* used to make sure timers etc. run on UI thread
|
||||
*/
|
||||
public void runOnUiThread(Runnable runnable) {
|
||||
mHandler.post(runnable);
|
||||
}
|
||||
|
||||
|
||||
public boolean isServerRunning() {
|
||||
//Log.v(TAG,"isServerRunning()................");
|
||||
ActivityManager manager =
|
||||
@@ -187,9 +199,13 @@ public class OsdUtil {
|
||||
* Display a Toast message on screen.
|
||||
* @param msg - message to display.
|
||||
*/
|
||||
public void showToast(String msg) {
|
||||
Toast.makeText(mContext, msg,
|
||||
Toast.LENGTH_LONG).show();
|
||||
public void showToast(final String msg) {
|
||||
runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
Toast.makeText(mContext, msg,
|
||||
Toast.LENGTH_LONG).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ package uk.org.openseizuredetector;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Handler;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceFragment;
|
||||
@@ -42,6 +43,7 @@ public class PrefActivity extends PreferenceActivity implements SharedPreference
|
||||
private OsdUtil mUtil;
|
||||
private boolean mPrefChanged = false;
|
||||
private Context mContext;
|
||||
private Handler mHandler;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@@ -51,9 +53,10 @@ public class PrefActivity extends PreferenceActivity implements SharedPreference
|
||||
Thread.setDefaultUncaughtExceptionHandler(new OsdUncaughtExceptionHandler(PrefActivity.this));
|
||||
//int i = 5/0; // Force exception to test handler.
|
||||
|
||||
|
||||
mUtil = new OsdUtil(getApplicationContext());
|
||||
mHandler = new Handler();
|
||||
mContext = getApplicationContext();
|
||||
|
||||
mUtil = new OsdUtil(mContext,mHandler);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -166,7 +166,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
||||
|
||||
mHandler = new Handler();
|
||||
|
||||
mUtil = new OsdUtil(getApplicationContext());
|
||||
mUtil = new OsdUtil(getApplicationContext(),mHandler);
|
||||
|
||||
// Create a wake lock, but don't use it until the service is started.
|
||||
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
|
||||
|
||||
@@ -62,7 +62,7 @@ public class StartupActivity extends Activity {
|
||||
private Timer mUiTimer;
|
||||
private SdServiceConnection mConnection;
|
||||
private boolean mStartedMainActivity = false;
|
||||
final Handler mServerStatusHandler = new Handler(); // used to update ui from mUiTimer
|
||||
private Handler mHandler = new Handler(); // used to update ui from mUiTimer
|
||||
|
||||
|
||||
@Override
|
||||
@@ -78,7 +78,9 @@ public class StartupActivity extends Activity {
|
||||
|
||||
|
||||
setContentView(R.layout.startup_activity);
|
||||
mUtil = new OsdUtil(this);
|
||||
mHandler = new Handler();
|
||||
|
||||
mUtil = new OsdUtil(this,mHandler);
|
||||
|
||||
// Read the default settings from the xml preferences files, so we do
|
||||
// not have to use the hard coded ones in the java files.
|
||||
@@ -160,7 +162,7 @@ public class StartupActivity extends Activity {
|
||||
mUiTimer.schedule(new TimerTask() {
|
||||
@Override
|
||||
public void run() {
|
||||
mServerStatusHandler.post(serverStatusRunnable);
|
||||
mHandler.post(serverStatusRunnable);
|
||||
//updateServerStatus();
|
||||
}
|
||||
}, 0, 1000);
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
package uk.org.openseizuredetector.mkfilter;
|
||||
|
||||
/**
|
||||
* A port of A.J Fisher's mkfilter utility to Java.
|
||||
* Created by graham on 12/07/16.
|
||||
*/
|
||||
public class MkFilter {
|
||||
private static int opt_be = 0x00001; /* -Be Bessel characteristic */
|
||||
private static int opt_bu = 0x00002; /* -Bu Butterworth characteristic */
|
||||
private static int opt_ch = 0x00004; /* -Ch Chebyshev characteristic */
|
||||
private static int opt_re = 0x00008; /* -Re Resonator */
|
||||
private static int opt_pi = 0x00010; /* -Pi proportional-integral */
|
||||
|
||||
private static int opt_lp = 0x00020; /* -Lp lowpass */
|
||||
private static int opt_hp = 0x00040; /* -Hp highpass */
|
||||
private static int opt_bp = 0x00080; /* -Bp bandpass */
|
||||
private static int opt_bs = 0x00100; /* -Bs bandstop */
|
||||
private static int opt_ap = 0x00200; /* -Ap allpass */
|
||||
|
||||
private static int opt_a = 0x00400; /* -a alpha value */
|
||||
private static int opt_l = 0x00800; /* -l just list filter parameters */
|
||||
private static int opt_o = 0x01000; /* -o order of filter */
|
||||
private static int opt_p = 0x02000; /* -p specified poles only */
|
||||
private static int opt_w = 0x04000; /* -w don't pre-warp */
|
||||
private static int opt_z = 0x08000; /* -z use matched z-transform */
|
||||
private static int opt_Z = 0x10000; /* -Z additional zero */
|
||||
|
||||
private static int maxpz = 25;
|
||||
|
||||
private int order;
|
||||
|
||||
public class complex {
|
||||
double re;
|
||||
double im;
|
||||
|
||||
complex(double r, double i) {
|
||||
re = r;
|
||||
im = i;
|
||||
}
|
||||
}
|
||||
|
||||
class pzrep {
|
||||
complex[] poles, zeros;
|
||||
int numpoles, numzeros;
|
||||
|
||||
pzrep() {
|
||||
poles = new complex[maxpz];
|
||||
zeros = new complex[maxpz];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
MkFilter() {
|
||||
order = 5;
|
||||
}
|
||||
|
||||
public void test() {
|
||||
pzrep pz = new pzrep();
|
||||
pz.poles[0] = new complex(1, 1);
|
||||
}
|
||||
|
||||
|
||||
public void compute_s() {
|
||||
/* Butterworth filter */
|
||||
for (int i = 0; i < 2 * order; i++) {
|
||||
double theta = (order & 1) ? (i * PI) / order : ((i + 0.5) * PI) / order;
|
||||
choosepole(expj(theta));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package uk.org.openseizuredetector;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Handler;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -24,7 +25,8 @@ public class OsdUtilTest {
|
||||
@Test
|
||||
public void testStartServer() throws Exception {
|
||||
//Activity a = new Activity();
|
||||
OsdUtil util = new OsdUtil(null);
|
||||
Handler handler = new Handler();
|
||||
OsdUtil util = new OsdUtil(null,handler);
|
||||
assertThat(util.isServerRunning(), is(true));
|
||||
assertThat(true, is (true));
|
||||
//assertThat(true, is(false));
|
||||
|
||||
Reference in New Issue
Block a user