blob: 23276f4eab1f6159d8f01b4a3a6bfab6a907af35 [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:async';
import 'dart:io';
import 'package:flutter/widgets.dart';
import 'kernel_panic.dart';
Future<Null> main() async {
runApp(
new Directionality(
textDirection: TextDirection.ltr,
child: new _KernelPanicReader(),
),
);
}
class _KernelPanicReader extends StatefulWidget {
@override
_KernelPanicReaderState createState() => new _KernelPanicReaderState();
}
class _KernelPanicReaderState extends State<_KernelPanicReader> {
String _lastPanicString = '';
@override
void initState() {
super.initState();
File lastPanic = new File('/boot/log/last-panic.txt');
if (lastPanic.existsSync()) {
lastPanic.readAsString().then((String lastPanicString) {
if (lastPanicString.isEmpty) {
exit(0);
} else {
setState(
() {
_lastPanicString = lastPanicString;
},
);
}
});
} else {
exit(0);
}
}
@override
Widget build(BuildContext context) => _lastPanicString.isEmpty
? new Container()
: new KernelPanic(
kernelPanic: _lastPanicString,
onDismiss: () => exit(0),
);
}