Compare commits

...

3 Commits

7 changed files with 49 additions and 23 deletions

View File

@@ -1063,6 +1063,8 @@ class MessageLookup extends MessageLookupByLibrary {
"Selected items will be removed from this album"),
"join": MessageLookupByLibrary.simpleMessage("Join"),
"joinAlbum": MessageLookupByLibrary.simpleMessage("Join album"),
"joinAlbumConfirmationDialogBody": MessageLookupByLibrary.simpleMessage(
"Joining an album will make your email visible to its participants."),
"joinAlbumSubtext":
MessageLookupByLibrary.simpleMessage("to view and add your photos"),
"joinAlbumSubtextViewer": MessageLookupByLibrary.simpleMessage(

View File

@@ -11220,6 +11220,16 @@ class S {
args: [],
);
}
/// `Joining an album will make your email visible to its participants.`
String get joinAlbumConfirmationDialogBody {
return Intl.message(
'Joining an album will make your email visible to its participants.',
name: 'joinAlbumConfirmationDialogBody',
desc: '',
args: [],
);
}
}
class AppLocalizationDelegate extends LocalizationsDelegate<S> {

View File

@@ -1673,5 +1673,6 @@
"ineligible": "Ineligible",
"failed": "Failed",
"playStream": "Play stream",
"playOriginal": "Play original"
"playOriginal": "Play original",
"joinAlbumConfirmationDialogBody" : "Joining an album will make your email visible to its participants."
}

View File

@@ -151,27 +151,35 @@ class _SharedPublicCollectionPageState
}
Future<void> _joinAlbum() async {
final dialog = createProgressDialog(
final result = await showChoiceDialog(
context,
S.of(context).pleaseWait,
isDismissible: true,
title: context.l10n.joinAlbum,
body: context.l10n.joinAlbumConfirmationDialogBody,
firstButtonLabel: context.l10n.join,
);
await dialog.show();
try {
await RemoteSyncService.instance
.joinAndSyncCollection(context, widget.c.collection.id);
final c =
CollectionsService.instance.getCollectionByID(widget.c.collection.id);
await dialog.hide();
Navigator.of(context).pop();
await routeToPage(
if (result != null && result.action == ButtonAction.first) {
final dialog = createProgressDialog(
context,
CollectionPage(CollectionWithThumbnail(c!, null)),
S.of(context).pleaseWait,
isDismissible: true,
);
} catch (e, s) {
logger.severe("Failed to join collection", e, s);
await dialog.hide();
showToast(context, S.of(context).somethingWentWrong);
await dialog.show();
try {
await RemoteSyncService.instance
.joinAndSyncCollection(context, widget.c.collection.id);
final c = CollectionsService.instance
.getCollectionByID(widget.c.collection.id);
await dialog.hide();
Navigator.of(context).pop();
await routeToPage(
context,
CollectionPage(CollectionWithThumbnail(c!, null)),
);
} catch (e, s) {
logger.severe("Failed to join collection", e, s);
await dialog.hide();
showToast(context, S.of(context).somethingWentWrong);
}
}
}
}

View File

@@ -3,6 +3,7 @@ import "dart:async";
import "package:email_validator/email_validator.dart";
import 'package:flutter/material.dart';
import "package:logging/logging.dart";
import "package:photos/core/configuration.dart";
import "package:photos/core/event_bus.dart";
import "package:photos/events/people_changed_event.dart";
import "package:photos/generated/l10n.dart";
@@ -245,11 +246,13 @@ class _LinkEmailScreen extends State<LinkEmailScreen> {
}
List<User> _getContacts() {
final usersEmailsToAviod =
final userEmailsToAviod =
PersonService.instance.emailToPartialPersonDataMapCache.keys.toSet();
final ownerEmail = Configuration.instance.getEmail();
final relevantUsers = UserService.instance.getRelevantContacts()
..add(User(email: ownerEmail!))
..removeWhere(
(user) => usersEmailsToAviod.contains(user.email),
(user) => userEmailsToAviod.contains(user.email),
);
relevantUsers.sort(

View File

@@ -986,11 +986,13 @@ class _EmailSectionState extends State<_EmailSection> {
}
List<User> _getContacts() {
final usersEmailsToAviod =
final userEmailsToAviod =
PersonService.instance.emailToPartialPersonDataMapCache.keys;
final ownerEmail = Configuration.instance.getEmail();
final relevantUsers = UserService.instance.getRelevantContacts()
..add(User(email: ownerEmail!))
..removeWhere(
(user) => usersEmailsToAviod.contains(user.email),
(user) => userEmailsToAviod.contains(user.email),
);
relevantUsers.sort(

View File

@@ -12,7 +12,7 @@ description: ente photos application
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 0.9.95+995
version: 0.9.97+997
publish_to: none
environment: