feat: add more easter eggs
This commit is contained in:
@@ -15,6 +15,7 @@ import '../utils/navigation.dart';
|
||||
import '../viewmodels/admin_pin_view_model.dart';
|
||||
import '../viewmodels/pin_lock_view_model.dart';
|
||||
import '../viewmodels/settings_view_model.dart';
|
||||
import 'credits_view.dart';
|
||||
import 'pin_lock_view.dart';
|
||||
|
||||
class SettingsScreenView extends StatefulWidget {
|
||||
@@ -27,6 +28,9 @@ class SettingsScreenView extends StatefulWidget {
|
||||
class _SettingsScreenViewState extends State<SettingsScreenView> {
|
||||
String _appVersion = '';
|
||||
Timer? _versionHoldTimer;
|
||||
static const _versionTapWindow = Duration(milliseconds: 600);
|
||||
int _versionTapCount = 0;
|
||||
DateTime? _lastVersionTap;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -65,6 +69,25 @@ class _SettingsScreenViewState extends State<SettingsScreenView> {
|
||||
_versionHoldTimer = null;
|
||||
}
|
||||
|
||||
/// Five quick taps on the version number roll the credits.
|
||||
void _onVersionTap() {
|
||||
final now = DateTime.now();
|
||||
final last = _lastVersionTap;
|
||||
_versionTapCount = last != null && now.difference(last) < _versionTapWindow
|
||||
? _versionTapCount + 1
|
||||
: 1;
|
||||
_lastVersionTap = now;
|
||||
|
||||
if (_versionTapCount < 5) return;
|
||||
_versionTapCount = 0;
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute<void>(
|
||||
fullscreenDialog: true,
|
||||
builder: (_) => CreditsView(appVersion: _appVersion),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_cancelVersionHold();
|
||||
@@ -377,6 +400,7 @@ class _SettingsScreenViewState extends State<SettingsScreenView> {
|
||||
onTapDown: (_) => _startVersionHold(),
|
||||
onTapUp: (_) => _cancelVersionHold(),
|
||||
onTapCancel: _cancelVersionHold,
|
||||
onTap: _onVersionTap,
|
||||
child: Center(
|
||||
child: Text(
|
||||
l10n.version(_appVersion),
|
||||
|
||||
Reference in New Issue
Block a user