Potential fix for null pointer err

This commit is contained in:
Neeraj Gupta 2023-01-25 16:32:08 +05:30
parent 6095d9b5e4
commit ba7475db01
No known key found for this signature in database
GPG key ID: 3C5A1684DC1729E1
3 changed files with 36 additions and 29 deletions

View file

@ -49,6 +49,13 @@ class Collection {
return mMdVersion > 0 && magicMetadata.visibility == visibilityArchive; return mMdVersion > 0 && magicMetadata.visibility == visibilityArchive;
} }
// hasLink returns true if there's any link attached to the collection
// including expired links
bool get hasLink => publicURLs != null && publicURLs!.isNotEmpty;
// hasSharees returns true if the collection is shared with other ente users
bool get hasSharees => sharees != null && sharees!.isNotEmpty;
bool isHidden() { bool isHidden() {
if (isDefaultHidden()) { if (isDefaultHidden()) {
return true; return true;

View file

@ -72,9 +72,7 @@ class _SharedCollectionGalleryState extends State<SharedCollectionGallery>
final c = CollectionsService.instance final c = CollectionsService.instance
.getCollectionByID(file.collectionID!)!; .getCollectionByID(file.collectionID!)!;
if (c.owner!.id == Configuration.instance.getUserID()) { if (c.owner!.id == Configuration.instance.getUserID()) {
if (c.sharees!.isNotEmpty || if (c.hasSharees || c.hasLink || c.isSharedFilesCollection()) {
c.publicURLs!.isNotEmpty ||
c.isSharedFilesCollection()) {
outgoing.add( outgoing.add(
CollectionWithThumbnail( CollectionWithThumbnail(
c, c,
@ -268,27 +266,29 @@ class OutgoingCollectionItem extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final sharees = <String?>[]; final shareesName = <String>[];
for (int index = 0; index < c.collection.sharees!.length; index++) { if (c.collection.hasSharees) {
final sharee = c.collection.sharees![index]!; for (int index = 0; index < c.collection.sharees!.length; index++) {
final name = final sharee = c.collection.sharees![index]!;
(sharee.name?.isNotEmpty ?? false) ? sharee.name : sharee.email; final String name =
if (index < 2) { (sharee.name?.isNotEmpty ?? false) ? sharee.name! : sharee.email;
sharees.add(name); if (index < 2) {
} else { shareesName.add(name);
final remaining = c.collection.sharees!.length - index;
if (remaining == 1) {
// If it's the last sharee
sharees.add(name);
} else { } else {
sharees.add( final remaining = c.collection.sharees!.length - index;
"and " + if (remaining == 1) {
remaining.toString() + // If it's the last sharee
" other" + shareesName.add(name);
(remaining > 1 ? "s" : ""), } else {
); shareesName.add(
"and " +
remaining.toString() +
" other" +
(remaining > 1 ? "s" : ""),
);
}
break;
} }
break;
} }
} }
return GestureDetector( return GestureDetector(
@ -325,22 +325,22 @@ class OutgoingCollectionItem extends StatelessWidget {
), ),
), ),
const Padding(padding: EdgeInsets.all(2)), const Padding(padding: EdgeInsets.all(2)),
c.collection.publicURLs!.isEmpty c.collection.hasLink
? Container() ? (c.collection.publicURLs!.first!.isExpired
: (c.collection.publicURLs!.first!.isExpired
? const Icon( ? const Icon(
Icons.link, Icons.link,
color: warning500, color: warning500,
) )
: const Icon(Icons.link)), : const Icon(Icons.link))
: Container(),
], ],
), ),
sharees.isEmpty shareesName.isEmpty
? Container() ? Container()
: Padding( : Padding(
padding: const EdgeInsets.fromLTRB(0, 4, 0, 0), padding: const EdgeInsets.fromLTRB(0, 4, 0, 0),
child: Text( child: Text(
"Shared with " + sharees.join(", "), "Shared with " + shareesName.join(", "),
style: TextStyle( style: TextStyle(
fontSize: 14, fontSize: 14,
color: Theme.of(context).primaryColorLight, color: Theme.of(context).primaryColorLight,

View file

@ -46,7 +46,7 @@ class _ShareCollectionPageState extends State<ShareCollectionPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
_sharees = widget.collection.sharees ?? []; _sharees = widget.collection.sharees ?? [];
final bool hasUrl = widget.collection.publicURLs?.isNotEmpty ?? false; final bool hasUrl = widget.collection.hasLink;
final children = <Widget>[]; final children = <Widget>[];
children.add( children.add(
MenuSectionTitle( MenuSectionTitle(