diff --git a/app/src/main/java/uk/org/openseizuredetector/MainActivity.java b/app/src/main/java/uk/org/openseizuredetector/MainActivity.java index f05089d..de007d0 100644 --- a/app/src/main/java/uk/org/openseizuredetector/MainActivity.java +++ b/app/src/main/java/uk/org/openseizuredetector/MainActivity.java @@ -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 diff --git a/app/src/main/java/uk/org/openseizuredetector/OsdUtil.java b/app/src/main/java/uk/org/openseizuredetector/OsdUtil.java index 77e46ea..755f36c 100644 --- a/app/src/main/java/uk/org/openseizuredetector/OsdUtil.java +++ b/app/src/main/java/uk/org/openseizuredetector/OsdUtil.java @@ -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(); + } + }); } diff --git a/app/src/main/java/uk/org/openseizuredetector/PrefActivity.java b/app/src/main/java/uk/org/openseizuredetector/PrefActivity.java index b79eeb4..e19a296 100644 --- a/app/src/main/java/uk/org/openseizuredetector/PrefActivity.java +++ b/app/src/main/java/uk/org/openseizuredetector/PrefActivity.java @@ -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); } /** diff --git a/app/src/main/java/uk/org/openseizuredetector/SdServer.java b/app/src/main/java/uk/org/openseizuredetector/SdServer.java index 442350e..72a282d 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdServer.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdServer.java @@ -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); diff --git a/app/src/main/java/uk/org/openseizuredetector/StartupActivity.java b/app/src/main/java/uk/org/openseizuredetector/StartupActivity.java index ec30a05..d73a26a 100644 --- a/app/src/main/java/uk/org/openseizuredetector/StartupActivity.java +++ b/app/src/main/java/uk/org/openseizuredetector/StartupActivity.java @@ -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); diff --git a/app/src/main/java/uk/org/openseizuredetector/mkfilter/MkFilter.java b/app/src/main/java/uk/org/openseizuredetector/mkfilter/MkFilter.java deleted file mode 100644 index 16b822e..0000000 --- a/app/src/main/java/uk/org/openseizuredetector/mkfilter/MkFilter.java +++ /dev/null @@ -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)); - } - - - } -} diff --git a/app/src/test/java/uk/org/openseizuredetector/OsdUtilTest.java b/app/src/test/java/uk/org/openseizuredetector/OsdUtilTest.java index 50999cd..11b0bb1 100644 --- a/app/src/test/java/uk/org/openseizuredetector/OsdUtilTest.java +++ b/app/src/test/java/uk/org/openseizuredetector/OsdUtilTest.java @@ -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));