TetraStats/lib/views/states_view.dart

86 lines
3.4 KiB
Dart
Raw Normal View History

import 'dart:io';
2023-10-10 20:20:27 +00:00
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:tetra_stats/data_objects/tetrio.dart';
2023-07-12 15:14:25 +00:00
import 'package:tetra_stats/gen/strings.g.dart';
import 'package:tetra_stats/main.dart' show teto;
import 'package:tetra_stats/views/mathes_view.dart';
import 'package:tetra_stats/views/state_view.dart';
2024-06-11 16:30:13 +00:00
import 'package:tetra_stats/widgets/text_timestamp.dart';
import 'package:window_manager/window_manager.dart';
class StatesView extends StatefulWidget {
2024-09-03 21:07:27 +00:00
final List<TetraLeague> states;
const StatesView({super.key, required this.states});
@override
State<StatefulWidget> createState() => StatesState();
}
late String oldWindowTitle;
class StatesState extends State<StatesView> {
@override
void initState() {
2023-10-10 20:20:27 +00:00
if (!kIsWeb && !Platform.isAndroid && !Platform.isIOS){
windowManager.getTitle().then((value) => oldWindowTitle = value);
2024-09-03 21:07:27 +00:00
windowManager.setTitle("Tetra Stats: ${t.statesViewTitle(number: widget.states.length, nickname: widget.states.last.id.toUpperCase())}");
}
super.initState();
}
@override
void dispose() {
2023-10-10 20:20:27 +00:00
if (!kIsWeb && !Platform.isAndroid && !Platform.isIOS) windowManager.setTitle(oldWindowTitle);
super.dispose();
}
@override
Widget build(BuildContext context) {
2023-07-12 15:14:25 +00:00
final t = Translations.of(context);
return Scaffold(
appBar: AppBar(
2024-09-03 21:07:27 +00:00
title: Text(t.statesViewTitle(number: widget.states.length, nickname: widget.states.first.id)),
actions: [
IconButton(
onPressed: (){
Navigator.push(
context,
MaterialPageRoute(
2024-09-03 21:07:27 +00:00
builder: (context) => MatchesView(userID: widget.states.first.id, username: widget.states.first.id),
),
);
}, icon: const Icon(Icons.list), tooltip: t.viewAllMatches)
],
),
backgroundColor: Colors.black,
body: SafeArea(
child: ListView.builder(
itemCount: widget.states.length,
itemBuilder: (context, index) {
return ListTile(
2024-09-03 21:07:27 +00:00
title: Text(timestamp(widget.states[index].timestamp)),
//subtitle: Text(t.statesViewEntry(level: widget.states[index].level.toStringAsFixed(2), gameTime: widget.states[index].gameTime, friends: widget.states[index].friendCount, rd: 0)),
trailing: IconButton(
icon: const Icon(Icons.delete_forever),
onPressed: () {
2024-09-03 21:07:27 +00:00
//DateTime nn = widget.states[index].state;
// teto.deleteState(widget.states[index]).then((value) => setState(() {
// ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(t.stateRemoved(date: timestamp(nn)))));
// }));
},
),
onTap: () {
2024-09-03 21:07:27 +00:00
// Navigator.push(
// context,
// MaterialPageRoute(
// builder: (context) => StateView(state: widget.states[index]),
// ),
// );
},
);
})));
}
}