buildMediaContent method
Implementation
Widget buildMediaContent(
BuildContext context,
Rx<Post> postInfo,
double availableWidth,
) {
Widget mediayerlesim = const Row();
List<Row> mediaItems = [];
List<Widget> mediarow1 = [];
List<Widget> mediarow2 = [];
for (int i = 0; i < postInfo.value.media.length; i++) {
if (i > 3) {
continue;
}
if (postInfo.value.media[i].mediaType == MediaType.video ||
postInfo.value.media[i].mediaURL.normalURL.value.endsWith(".mp4")) {
mediarow1.clear();
mediarow1.add(
mediaSablon(
context,
indexlength: postInfo.value.media.length,
postInfo,
postInfo.value.media[i].mediaURL.normalURL.value,
isvideo: true,
),
);
break;
}
BoxFit mediadirection = BoxFit.cover;
if (postInfo.value.media[i].mediaDirection.toString() == "yatay" &&
postInfo.value.media.length == 1) {
mediadirection = BoxFit.contain;
}
double mediawidth = availableWidth;
double mediaheight = ARMOYU.screenHeight;
if (postInfo.value.media.length == 1) {
mediawidth = mediawidth / 1;
mediaheight = mediaheight / 2;
} else if (postInfo.value.media.length == 2) {
mediawidth = mediawidth / 2;
mediaheight = mediaheight / 4;
} else if (postInfo.value.media.length == 3) {
if (i == 0) {
mediawidth = mediawidth / 1;
mediaheight = mediaheight / 2.5;
} else {
mediawidth = mediawidth / 2;
mediaheight = mediaheight / 4;
}
} else if (postInfo.value.media.length >= 4) {
mediawidth = mediawidth / 2;
mediaheight = mediaheight / 4;
}
GestureDetector aa = GestureDetector(
onTap: () {
Get.dialog(
PhotoviewerView(
service: service,
media: postInfo.value.media
.map(
(e) => Media(
mediaID: e.mediaID,
ownerID: e.ownerID,
owneravatar: e.owneravatar,
ownerusername: e.ownerusername,
mediaType: MediaType.image,
mediaURL: MediaURL(
bigURL: Rx(e.mediaURL.bigURL.value),
normalURL: Rx(e.mediaURL.normalURL.value),
minURL: Rx(e.mediaURL.minURL.value),
),
),
)
.toList(),
initialIndex: i,
),
barrierDismissible: true,
).whenComplete(() {
log('Photo viewer dialog closed.');
});
},
child: mediaSablon(
context,
postInfo,
indexlength: postInfo.value.media.length,
postInfo.value.media[i].mediaURL.normalURL.value,
width: mediawidth,
height: mediaheight,
fit: mediadirection,
islastmedia: i == 3,
),
);
if (postInfo.value.media.length == 3) {
if (i == 0) {
mediarow1.add(aa);
} else {
mediarow2.add(aa);
}
} else if (postInfo.value.media.length >= 4) {
if (i == 0 || i == 1) {
mediarow1.add(aa);
} else {
mediarow2.add(aa);
}
} else {
mediarow1.add(aa);
}
}
mediaItems.add(Row(
mainAxisAlignment: MainAxisAlignment.center,
children: mediarow1,
));
mediaItems.add(Row(
mainAxisAlignment: MainAxisAlignment.center,
children: mediarow2,
));
/////////////////////////////////////////////////
/////////////////////////////////////////////////
mediayerlesim = Column(
mainAxisAlignment: MainAxisAlignment.center,
children: mediaItems,
);
return mediayerlesim;
}