diff --git a/project/java/Accelerometer.java b/project/java/Accelerometer.java index f9bb4f91e..0afdf8d43 100644 --- a/project/java/Accelerometer.java +++ b/project/java/Accelerometer.java @@ -41,11 +41,26 @@ class AccelerometerReader implements SensorEventListener { private SensorManager _manager = null; - public AccelerometerReader(Activity context) { + public AccelerometerReader(Activity context) + { System.out.println("libSDL: accelerometer start required: " + String.valueOf(Globals.UseAccelerometerAsArrowKeys)); + _manager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); + start(); + } + + public synchronized void stop() + { + if( _manager != null ) + { + System.out.println("libSDL: stopping accelerometer"); + _manager.unregisterListener(this); + } + } + + public synchronized void start() + { if( Globals.UseAccelerometerAsArrowKeys ) { - _manager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); if( _manager != null ) { System.out.println("libSDL: starting accelerometer"); @@ -55,13 +70,6 @@ class AccelerometerReader implements SensorEventListener { } } } - - public synchronized void stop() { - if( _manager != null ) - { - _manager.unregisterListener(this); - } - } public synchronized void onSensorChanged(SensorEvent event) { @@ -84,7 +92,6 @@ class AccelerometerReader implements SensorEventListener { public synchronized void onAccuracyChanged(Sensor s, int a) { } - private native void nativeAccelerometer(float accX, float accY, float accZ); private native void nativeOrientation(float accX, float accY, float accZ); diff --git a/project/java/Video.java b/project/java/Video.java index acfd7e6cf..153599b2f 100644 --- a/project/java/Video.java +++ b/project/java/Video.java @@ -425,7 +425,7 @@ class DemoRenderer extends GLSurfaceView_SDL.Renderer public static native void nativeTextInputFinished(); private MainActivity context = null; - private AccelerometerReader accelerometer = null; + public AccelerometerReader accelerometer = null; private EGL10 mEgl = null; private EGLDisplay mEglDisplay = null; @@ -476,6 +476,7 @@ class DemoGLSurfaceView extends GLSurfaceView_SDL { @Override public void onPause() { + mRenderer.accelerometer.stop(); super.onPause(); mRenderer.mPaused = true; }; @@ -491,6 +492,7 @@ class DemoGLSurfaceView extends GLSurfaceView_SDL { System.out.println("libSDL: DemoGLSurfaceView.onResume(): mRenderer.mGlSurfaceCreated " + mRenderer.mGlSurfaceCreated + " mRenderer.mPaused " + mRenderer.mPaused); if( mRenderer.mGlSurfaceCreated && ! mRenderer.mPaused || Globals.NonBlockingSwapBuffers ) mRenderer.nativeGlContextRecreated(); + mRenderer.accelerometer.start(); }; // This seems like redundant code - it handled in MainActivity.java