feat: add more easter eggs

This commit is contained in:
2026-10-26 23:54:06 +01:00
parent 08f4847800
commit 4d9ba67eb1
18 changed files with 695 additions and 36 deletions
+24
View File
@@ -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),