Skip to content

Commit 11018be

Browse files
committed
Support attachment queue
1 parent cc51f19 commit 11018be

File tree

15 files changed

+133
-187
lines changed

15 files changed

+133
-187
lines changed

demos/supabase-todolist-drift/lib/attachments/camera_helpers.dart

Lines changed: 0 additions & 20 deletions
This file was deleted.

demos/supabase-todolist-drift/lib/attachments/photo_widget.dart renamed to demos/supabase-todolist-drift/lib/components/photo_widget.dart

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
import 'dart:io';
22

3+
import 'package:auto_route/auto_route.dart';
4+
import 'package:camera/camera.dart';
35
import 'package:flutter/material.dart';
46
import 'package:flutter_riverpod/flutter_riverpod.dart';
7+
import 'package:logging/logging.dart';
58
import 'package:powersync_attachments_helper/powersync_attachments_helper.dart';
69
import 'package:riverpod_annotation/riverpod_annotation.dart';
7-
import 'package:supabase_todolist_drift/attachments/camera_helpers.dart';
8-
import 'package:supabase_todolist_drift/attachments/photo_capture_widget.dart';
9-
import 'package:supabase_todolist_drift/attachments/queue.dart';
10-
import 'package:supabase_todolist_drift/powersync/database.dart';
10+
11+
import '../navigation.dart';
12+
import '../powersync/attachments/queue.dart';
13+
import '../powersync/database.dart';
1114

1215
part 'photo_widget.g.dart';
1316

@@ -39,13 +42,7 @@ final class PhotoWidget extends ConsumerWidget {
3942
return;
4043
}
4144

42-
Navigator.push(
43-
context,
44-
MaterialPageRoute(
45-
builder: (context) =>
46-
TakePhotoWidget(todoId: todo.id, camera: camera),
47-
),
48-
);
45+
context.pushRoute(TakePhotoRoute(todoId: todo.id, camera: camera));
4946
},
5047
child: const Text('Take Photo'),
5148
);
@@ -121,3 +118,22 @@ Future<_ResolvedPhotoState> _getPhotoState(Ref ref, String? photoId) async {
121118
return _ResolvedPhotoState(
122119
photoPath: photoPath, fileExists: fileExists, attachment: null);
123120
}
121+
122+
final _log = Logger('setupCamera');
123+
124+
Future<CameraDescription?> setupCamera() async {
125+
// Ensure that plugin services are initialized so that `availableCameras()`
126+
// can be called before `runApp()`
127+
WidgetsFlutterBinding.ensureInitialized();
128+
// Obtain a list of the available cameras on the device.
129+
try {
130+
final cameras = await availableCameras();
131+
// Get a specific camera from the list of available cameras.
132+
final camera = cameras.isNotEmpty ? cameras.first : null;
133+
return camera;
134+
} catch (e) {
135+
// Camera is not supported on all platforms
136+
_log.warning('Failed to setup camera: $e');
137+
return null;
138+
}
139+
}

demos/supabase-todolist-drift/lib/attachments/photo_widget.g.dart renamed to demos/supabase-todolist-drift/lib/components/photo_widget.g.dart

File renamed without changes.

demos/supabase-todolist-drift/lib/navigation.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ final class AppRouter extends RootStackRouter {
3333
_dialogRoute(AddListRoute.page),
3434
AutoRoute(page: ListsDetailsRoute.page),
3535
_dialogRoute(AddItemRoute.page),
36+
AutoRoute(page: TakePhotoRoute.page),
3637
AutoRoute(page: SqlConsoleRoute.page),
3738
],
3839
),

demos/supabase-todolist-drift/lib/navigation.gr.dart

Lines changed: 80 additions & 30 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demos/supabase-todolist-drift/lib/attachments/queue.dart renamed to demos/supabase-todolist-drift/lib/powersync/attachments/queue.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ import 'dart:async';
33
import 'package:powersync_attachments_helper/powersync_attachments_helper.dart';
44
import 'package:riverpod/riverpod.dart';
55
import 'package:riverpod_annotation/riverpod_annotation.dart';
6-
import 'package:supabase_todolist_drift/app_config.dart';
7-
import 'package:supabase_todolist_drift/attachments/remote_storage_adapter.dart';
86

9-
import 'package:supabase_todolist_drift/models/schema.dart';
10-
import 'package:supabase_todolist_drift/powersync.dart' hide log;
7+
import '../../app_config.dart';
8+
import '../powersync.dart';
9+
import '../schema.dart';
10+
import 'remote_storage_adapter.dart';
1111

1212
part 'queue.g.dart';
1313

demos/supabase-todolist-drift/lib/attachments/queue.g.dart renamed to demos/supabase-todolist-drift/lib/powersync/attachments/queue.g.dart

File renamed without changes.

demos/supabase-todolist-drift/lib/attachments/remote_storage_adapter.dart renamed to demos/supabase-todolist-drift/lib/powersync/attachments/remote_storage_adapter.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import 'dart:io';
22
import 'dart:typed_data';
33
import 'package:powersync_attachments_helper/powersync_attachments_helper.dart';
4-
import 'package:supabase_todolist_drift/app_config.dart';
54
import 'package:supabase_flutter/supabase_flutter.dart';
65
import 'package:image/image.dart' as img;
76

7+
import '../../app_config.dart';
8+
89
class SupabaseStorageAdapter implements AbstractRemoteStorageAdapter {
910
@override
1011
Future<void> uploadFile(String filename, File file,

demos/supabase-todolist-drift/lib/screens/list_details.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
44

55
import '../app_config.dart';
66
import '../components/page_layout.dart';
7+
import '../components/photo_widget.dart';
78
import '../navigation.dart';
89
import '../powersync/database.dart';
910
import '../stores/items.dart';
@@ -107,7 +108,7 @@ final class _TodoItemWidget extends ConsumerWidget {
107108
),
108109
AppConfig.supabaseStorageBucket.isEmpty
109110
? Container()
110-
: Placeholder(), //PhotoWidget(todo: todo),
111+
: PhotoWidget(todo: todo),
111112
],
112113
),
113114
);

0 commit comments

Comments
 (0)