import 'dart:math'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:paladinvpn/logic/session_timer.dart'; /// ClockDisplay renders inside the ConnectButton circle when the VPN is active. /// /// Shows a circular quota-progress arc, a glowing countdown timer, and the /// current transfer speed — all sized to fit within the 260px button. class ClockDisplay extends StatelessWidget { const ClockDisplay({super.key}); static const Color _cyanGlow = Color(0xFF00E5FF); @override Widget build(BuildContext context) { return Consumer( builder: (context, timer, _) { return SizedBox( width: 200, height: 200, child: Stack( alignment: Alignment.center, children: [ // Center content: countdown + speed Column( mainAxisSize: MainAxisSize.min, children: [ // Glowing countdown timer Text( timer.formatted, style: const TextStyle( fontSize: 40, fontWeight: FontWeight.w800, color: Colors.white, letterSpacing: 2, shadows: [ Shadow( color: Color.fromRGBO(0, 229, 255, 0.5), blurRadius: 16, ), ], ), ), const SizedBox(height: 6), // Speed indicator Row( mainAxisSize: MainAxisSize.min, children: [ const Icon(Icons.speed, color: Colors.white54, size: 14), const SizedBox(width: 4), Text( '${timer.currentSpeedKbps.toStringAsFixed(1)} KB/s', style: const TextStyle( fontSize: 12, color: Colors.white54, fontWeight: FontWeight.w500, ), ), ], ), ], ), ], ), ); }, ); } }