2a65823e6c
- Bump version to 1.2.0 in pubspec.lock. - Enhance ScannerScreen with a Bluetooth availability tooltip and improved search filter UI. - Refactor AppDrawer to include a queue type selection feature. - Update ScannedDevicesPlaceholderWidget to include a 'Start Scan' button for better user interaction. - Improve overall layout and styling for better user experience.
80 lines
2.5 KiB
Dart
80 lines
2.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
class ScannedDevicesPlaceholderWidget extends StatelessWidget {
|
|
final Function() onTap;
|
|
const ScannedDevicesPlaceholderWidget({super.key, required this.onTap});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final theme = Theme.of(context);
|
|
final colorScheme = theme.colorScheme;
|
|
|
|
return Center(
|
|
child: SingleChildScrollView(
|
|
child: Column(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
Container(
|
|
padding: const EdgeInsets.all(32),
|
|
decoration: BoxDecoration(
|
|
color: colorScheme.primaryContainer.withValues(alpha: 0.3),
|
|
shape: BoxShape.circle,
|
|
),
|
|
child: Icon(
|
|
Icons.bluetooth_searching,
|
|
size: 80,
|
|
color: colorScheme.primary.withValues(alpha: 0.6),
|
|
),
|
|
),
|
|
const SizedBox(height: 32),
|
|
Text(
|
|
'No Devices Found',
|
|
style: TextStyle(
|
|
color: colorScheme.onSurface,
|
|
fontSize: 24,
|
|
fontWeight: FontWeight.bold,
|
|
),
|
|
),
|
|
const SizedBox(height: 12),
|
|
Padding(
|
|
padding: const EdgeInsets.symmetric(horizontal: 48),
|
|
child: Text(
|
|
'Start scanning to discover nearby Bluetooth devices',
|
|
textAlign: TextAlign.center,
|
|
style: TextStyle(
|
|
color: colorScheme.onSurface.withValues(alpha: 0.7),
|
|
fontSize: 16,
|
|
),
|
|
),
|
|
),
|
|
const SizedBox(height: 32),
|
|
FilledButton.icon(
|
|
onPressed: onTap,
|
|
icon: const Icon(Icons.play_arrow, size: 24),
|
|
label: const Text(
|
|
'Start Scan',
|
|
style: TextStyle(
|
|
fontSize: 18,
|
|
fontWeight: FontWeight.w600,
|
|
),
|
|
),
|
|
style: FilledButton.styleFrom(
|
|
backgroundColor: colorScheme.primary,
|
|
foregroundColor: colorScheme.onPrimary,
|
|
padding: const EdgeInsets.symmetric(
|
|
horizontal: 32,
|
|
vertical: 16,
|
|
),
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
),
|
|
elevation: 2,
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|