mirror of
https://github.com/Xevion/paperless-mobile.git
synced 2025-12-10 08:07:59 -06:00
fix: Fixed saved views bug, formatted files, minor changes
This commit is contained in:
@@ -4,33 +4,53 @@ import 'package:flutter/widgets.dart';
|
||||
import 'package:receive_sharing_intent/receive_sharing_intent.dart';
|
||||
|
||||
class ShareIntentQueue extends ChangeNotifier {
|
||||
final Queue<SharedMediaFile> _queue = Queue();
|
||||
final Map<String, Queue<SharedMediaFile>> _queues = {};
|
||||
|
||||
ShareIntentQueue._();
|
||||
|
||||
static final instance = ShareIntentQueue._();
|
||||
|
||||
void add(SharedMediaFile file) {
|
||||
void add(
|
||||
SharedMediaFile file, {
|
||||
required String userId,
|
||||
}) {
|
||||
debugPrint("Adding received file to queue: ${file.path}");
|
||||
_queue.add(file);
|
||||
_getQueue(userId).add(file);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void addAll(Iterable<SharedMediaFile> files) {
|
||||
void addAll(
|
||||
Iterable<SharedMediaFile> files, {
|
||||
required String userId,
|
||||
}) {
|
||||
debugPrint(
|
||||
"Adding received files to queue: ${files.map((e) => e.path).join(",")}");
|
||||
_queue.addAll(files);
|
||||
_getQueue(userId).addAll(files);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
SharedMediaFile? pop() {
|
||||
if (hasUnhandledFiles) {
|
||||
return _queue.removeFirst();
|
||||
SharedMediaFile? pop(String userId) {
|
||||
if (userHasUnhandlesFiles(userId)) {
|
||||
return _getQueue(userId).removeFirst();
|
||||
// Don't notify listeners, only when new item is added.
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
bool get hasUnhandledFiles => _queue.isNotEmpty;
|
||||
Queue<SharedMediaFile> _getQueue(String userId) {
|
||||
if (!_queues.containsKey(userId)) {
|
||||
_queues[userId] = Queue<SharedMediaFile>();
|
||||
}
|
||||
return _queues[userId]!;
|
||||
}
|
||||
|
||||
bool userHasUnhandlesFiles(String userId) => _getQueue(userId).isNotEmpty;
|
||||
}
|
||||
|
||||
class UserAwareShareMediaFile {
|
||||
final String userId;
|
||||
final SharedMediaFile sharedFile;
|
||||
|
||||
UserAwareShareMediaFile(this.userId, this.sharedFile);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user