blob: f6a3fc6a64738c9ad494601f5f235eb08be95c7c [file] [log] [blame]
<script>
import 'dart:sky';
import 'package:sky/framework/shell.dart' as shell;
import 'package:sky/services/sensors/sensors.mojom.dart';
// TODO(abarth): We should factor this out into a kinematics library.
class _ShakeDetector extends SensorListener {
_ShakeDetector() {
SensorServiceProxy sensorService = new SensorServiceProxy.unbound();
shell.requestService(sensorService);
_stub = new SensorListenerStub.unbound()..impl = this;
sensorService.ptr.addListener(SensorType_ACCELEROMETER, _stub);
}
void onAccuracyChanged(int accuracy) {
}
void onSensorChanged(SensorData data) {
double value = data.values[0] + data.values[1] + data.values[2];
if (isShaking && value < 15.0)
didCompleteShake();
else if (value > 40.0)
isShaking = true;
}
void didCompleteShake() {
window.location.assign(document.URL);
_stub.close();
}
bool isShaking = false;
SensorListenerStub _stub;
}
_ShakeDetector _detector;
void _init(_) {
_detector = new _ShakeDetector();
}
</script>