style: weitere flutter-analyze Hinweise beheben
- document_viewer: Matrix4.translate/scale durch translateByDouble/ scaleByDouble ersetzt (PDF-Zoom-Transformation, gleiches Verhalten) - rooms_panel: onReorder durch onReorderItem ersetzt (Index-Korrektur jetzt intern erledigt), implementation_imports-Hinweis kommentiert (SpaceChild wird vom matrix-Paket nicht öffentlich exportiert) - voip_manager: getSources()-Override kommentiert (erzwungen durch abstrakte MediaDevices-Klasse, die die Methode selbst deprecated hat) - settings_modal: BuildContext-Nutzung nach await mit context.mounted abgesichert (Geräte umbenennen, Passwort-Abfrage bei Massenlogout) Verbleibend: chat_provider.dart onUpdate (Timeline-Redecrypt-Pfad, bewusst nicht angefasst ohne dedizierten E2EE-Test, siehe PROGRESS.md).
This commit is contained in:
@@ -1115,3 +1115,10 @@
|
||||
2026-07-03 06:35 [Edit] /home/steggi/pyramid/lib/features/chat/chat_view.dart
|
||||
2026-07-03 06:35 [Edit] /home/steggi/pyramid/lib/features/chat/chat_view.dart
|
||||
2026-07-03 06:35 [Edit] /home/steggi/pyramid/lib/features/chat/chat_view.dart
|
||||
2026-07-03 09:43 [Edit] /home/steggi/pyramid/lib/features/chat/document_viewer.dart
|
||||
2026-07-03 09:43 [Edit] /home/steggi/pyramid/lib/features/rooms/rooms_panel.dart
|
||||
2026-07-03 09:43 [Edit] /home/steggi/pyramid/lib/features/rooms/rooms_panel.dart
|
||||
2026-07-03 09:43 [Edit] /home/steggi/pyramid/lib/core/voip_manager.dart
|
||||
2026-07-03 09:44 [Edit] /home/steggi/pyramid/lib/core/voip_manager.dart
|
||||
2026-07-03 09:44 [Edit] /home/steggi/pyramid/lib/widgets/settings_modal.dart
|
||||
2026-07-03 09:44 [Edit] /home/steggi/pyramid/lib/widgets/settings_modal.dart
|
||||
|
||||
@@ -528,7 +528,10 @@ class MediaDevicesWrapper extends MediaDevices {
|
||||
set ondevicechange(Function(dynamic event)? callback) => _delegate.ondevicechange = callback;
|
||||
@override
|
||||
Function(dynamic event)? get ondevicechange => _delegate.ondevicechange;
|
||||
// Erzwungener Override der abstrakten MediaDevices-Klasse, die getSources()
|
||||
// selbst als deprecated markiert (Ersatz: enumerateDevices()) aber weiterhin verlangt.
|
||||
@override
|
||||
// ignore: deprecated_member_use
|
||||
Future<List<dynamic>> getSources() => _delegate.getSources();
|
||||
@override
|
||||
Future<MediaDeviceInfo> selectAudioOutput([AudioOutputOptions? options]) => _delegate.selectAudioOutput(options);
|
||||
|
||||
@@ -829,9 +829,9 @@ class _PdfFullscreenViewerState extends State<_PdfFullscreenViewer> {
|
||||
if ((applied - 1).abs() < 0.001) return;
|
||||
final cx = size.width / 2, cy = size.height / 2;
|
||||
final m = _tc.value.clone()
|
||||
..translate(cx, cy)
|
||||
..scale(applied)
|
||||
..translate(-cx, -cy);
|
||||
..translateByDouble(cx, cy, 0, 1)
|
||||
..scaleByDouble(applied, applied, applied, 1)
|
||||
..translateByDouble(-cx, -cy, 0, 1);
|
||||
setState(() => _tc.value = m);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@ import 'dart:async';
|
||||
import 'package:flutter/material.dart' hide Visibility;
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:matrix/matrix.dart';
|
||||
// SpaceChild wird vom matrix-Paket nicht öffentlich exportiert.
|
||||
// ignore: implementation_imports
|
||||
import 'package:matrix/src/utils/space_child.dart';
|
||||
import 'package:pyramid/core/app_state.dart';
|
||||
import 'package:pyramid/core/matrix_client.dart';
|
||||
@@ -1173,8 +1175,7 @@ class _SpaceRoomsListState extends ConsumerState<_SpaceRoomsList> {
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
buildDefaultDragHandles: false,
|
||||
onReorder: (oldIdx, newIdx) {
|
||||
if (newIdx > oldIdx) newIdx--;
|
||||
onReorderItem: (oldIdx, newIdx) {
|
||||
final ids = filteredDirect.map((r) => r.id).toList();
|
||||
final moved = ids.removeAt(oldIdx);
|
||||
ids.insert(newIdx, moved);
|
||||
|
||||
@@ -2499,6 +2499,7 @@ class _SessionsSectionState extends ConsumerState<_SessionsSection> {
|
||||
|
||||
Future<void> _renameCurrentDevice(BuildContext context) async {
|
||||
final client = await ref.read(matrixClientProvider.future);
|
||||
if (!context.mounted) return;
|
||||
final currentName = _devices
|
||||
.where((d) => d.deviceId == _currentDeviceId)
|
||||
.map((d) => d.unsigned?['device_display_name'] as String? ?? d.deviceId ?? '')
|
||||
@@ -2589,7 +2590,7 @@ class _SessionsSectionState extends ConsumerState<_SessionsSection> {
|
||||
try {
|
||||
await client.deleteDevices(otherIds);
|
||||
} on MatrixException catch (e) {
|
||||
if (e.requireAdditionalAuthentication && mounted) {
|
||||
if (e.requireAdditionalAuthentication && context.mounted) {
|
||||
final password = await _askPassword(context, pt);
|
||||
if (password == null || !mounted) { setState(() => _logoutAllLoading = false); return; }
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user