Skip to content

Commit 9c0d227

Browse files
committed
latest sensors merge broke the on_pause behavior. fixing the compatibility layer.
1 parent 37c2aa0 commit 9c0d227

File tree

1 file changed

+37
-12
lines changed

1 file changed

+37
-12
lines changed

src/src/org/renpy/android/Hardware.java

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public static String getHardwareSensors() {
7171
/**
7272
* Get Access to 3 Axis Hardware Sensors Accelerometer, Orientation and Magnetic Field Sensors
7373
*/
74-
public class generic3AxisSensor implements SensorEventListener {
74+
public static class generic3AxisSensor implements SensorEventListener {
7575
private final SensorManager sSensorManager;
7676
private final Sensor sSensor;
7777
private final int sSensorType;
@@ -114,22 +114,47 @@ public float[] readSensor() {
114114
}
115115
}
116116

117-
public generic3AxisSensor accelerometerSensor = new generic3AxisSensor(Sensor.TYPE_ACCELEROMETER);
118-
public generic3AxisSensor orientationSensor = new generic3AxisSensor(Sensor.TYPE_ORIENTATION);
119-
public generic3AxisSensor magneticFieldSensor = new generic3AxisSensor(Sensor.TYPE_MAGNETIC_FIELD);
117+
public static generic3AxisSensor accelerometerSensor = null;
118+
public static generic3AxisSensor orientationSensor = null;
119+
public static generic3AxisSensor magneticFieldSensor = null;
120120

121121
/**
122122
* functions for backward compatibility reasons
123123
*/
124124

125-
public void accelerometerEnable(boolean enable) { accelerometerSensor.changeStatus(enable); }
126-
public float[] accelerometerReading() { return (float[]) accelerometerSensor.readSensor(); }
127-
public void orientationSensorEnable(boolean enable) { orientationSensor.changeStatus(enable); }
128-
public float[] orientationSensorReading() { return (float[]) orientationSensor.readSensor(); }
129-
public void magneticFieldSensorEnable(boolean enable) { magneticFieldSensor.changeStatus(enable); }
130-
public float[] magneticFieldSensorReading() { return (float[]) magneticFieldSensor.readSensor(); }
131-
132-
125+
public static void accelerometerEnable(boolean enable) {
126+
if ( accelerometerSensor == null )
127+
accelerometerSensor = new generic3AxisSensor(Sensor.TYPE_ACCELEROMETER);
128+
accelerometerSensor.changeStatus(enable);
129+
}
130+
public static float[] accelerometerReading() {
131+
float rv[] = { 0f, 0f, 0f };
132+
if ( accelerometerSensor == null )
133+
return rv;
134+
return (float[]) accelerometerSensor.readSensor();
135+
}
136+
public static void orientationSensorEnable(boolean enable) {
137+
if ( orientationSensor == null )
138+
orientationSensor = new generic3AxisSensor(Sensor.TYPE_ORIENTATION);
139+
orientationSensor.changeStatus(enable);
140+
}
141+
public static float[] orientationSensorReading() {
142+
float rv[] = { 0f, 0f, 0f };
143+
if ( orientationSensor == null )
144+
return rv;
145+
return (float[]) orientationSensor.readSensor();
146+
}
147+
public static void magneticFieldSensorEnable(boolean enable) {
148+
if ( magneticFieldSensor == null )
149+
magneticFieldSensor = new generic3AxisSensor(Sensor.TYPE_MAGNETIC_FIELD);
150+
magneticFieldSensor.changeStatus(enable);
151+
}
152+
public static float[] magneticFieldSensorReading() {
153+
float rv[] = { 0f, 0f, 0f };
154+
if ( magneticFieldSensor == null )
155+
return rv;
156+
return (float[]) magneticFieldSensor.readSensor();
157+
}
133158

134159
static public DisplayMetrics metrics = new DisplayMetrics();
135160

0 commit comments

Comments
 (0)