multiple hero with same id issue handled

This commit is contained in:
Furkan 2023-01-02 13:18:23 +03:00
parent 9d2ec4d6b2
commit 13fc79fb7b
10 changed files with 50 additions and 20 deletions

View File

@ -1 +1 @@
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"permission_handler_apple","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler_apple-9.0.7\\\\","native_build":true,"dependencies":[]},{"name":"photo_gallery","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\photo_gallery-1.1.1\\\\","native_build":true,"dependencies":[]},{"name":"video_player_avfoundation","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player_avfoundation-2.3.8\\\\","native_build":true,"dependencies":[]},{"name":"video_thumbnail","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_thumbnail-0.5.3\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"permission_handler_android","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler_android-10.2.0\\\\","native_build":true,"dependencies":[]},{"name":"photo_gallery","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\photo_gallery-1.1.1\\\\","native_build":true,"dependencies":[]},{"name":"video_player_android","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player_android-2.3.10\\\\","native_build":true,"dependencies":[]},{"name":"video_thumbnail","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_thumbnail-0.5.3\\\\","native_build":true,"dependencies":[]}],"macos":[],"linux":[],"windows":[{"name":"permission_handler_windows","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler_windows-0.1.2\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"video_player_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player_web-2.0.13\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]},{"name":"photo_gallery","dependencies":[]},{"name":"video_player","dependencies":["video_player_android","video_player_avfoundation","video_player_web"]},{"name":"video_player_android","dependencies":[]},{"name":"video_player_avfoundation","dependencies":[]},{"name":"video_player_web","dependencies":[]},{"name":"video_thumbnail","dependencies":[]}],"date_created":"2023-01-01 20:36:53.862529","version":"3.3.10"}
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"permission_handler_apple","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler_apple-9.0.7\\\\","native_build":true,"dependencies":[]},{"name":"photo_gallery","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\photo_gallery-1.1.1\\\\","native_build":true,"dependencies":[]},{"name":"video_player_avfoundation","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player_avfoundation-2.3.8\\\\","native_build":true,"dependencies":[]},{"name":"video_thumbnail","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_thumbnail-0.5.3\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"permission_handler_android","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler_android-10.2.0\\\\","native_build":true,"dependencies":[]},{"name":"photo_gallery","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\photo_gallery-1.1.1\\\\","native_build":true,"dependencies":[]},{"name":"video_player_android","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player_android-2.3.10\\\\","native_build":true,"dependencies":[]},{"name":"video_thumbnail","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_thumbnail-0.5.3\\\\","native_build":true,"dependencies":[]}],"macos":[],"linux":[],"windows":[{"name":"permission_handler_windows","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler_windows-0.1.2\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"video_player_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player_web-2.0.13\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]},{"name":"photo_gallery","dependencies":[]},{"name":"video_player","dependencies":["video_player_android","video_player_avfoundation","video_player_web"]},{"name":"video_player_android","dependencies":[]},{"name":"video_player_avfoundation","dependencies":[]},{"name":"video_player_web","dependencies":[]},{"name":"video_thumbnail","dependencies":[]}],"date_created":"2023-01-02 13:18:01.553448","version":"3.3.10"}

View File

@ -62,3 +62,7 @@
## 0.1.5
* changes made
## 0.1.6
* multiple hero with same id issue handled

View File

@ -141,7 +141,7 @@ packages:
path: ".."
relative: true
source: path
version: "0.1.5"
version: "0.1.6"
get:
dependency: transitive
description:

View File

@ -7,10 +7,12 @@ import 'selected_medias_view.dart';
class AlbumMediasView extends StatelessWidget {
final PhoneGalleryController controller;
final bool singleMedia;
final bool isCollapsedSheet;
const AlbumMediasView(
{super.key,
required this.galleryAlbum,
required this.controller,
required this.isCollapsedSheet,
required this.singleMedia});
final GalleryAlbum galleryAlbum;
@override
@ -24,6 +26,7 @@ class AlbumMediasView extends StatelessWidget {
category: category,
controller: controller,
singleMedia: singleMedia,
isCollapsedSheet: isCollapsedSheet,
),
],
),

View File

@ -11,11 +11,13 @@ class AlbumPage extends StatelessWidget {
final PhoneGalleryController controller;
final BottomSheetController? bottomSheetController;
final GalleryAlbum album;
final bool isCollapsedSheet;
const AlbumPage(
{super.key,
required this.album,
required this.controller,
required this.singleMedia,
required this.isCollapsedSheet,
required this.bottomSheetController});
@override
Widget build(BuildContext context) {
@ -29,6 +31,7 @@ class AlbumPage extends StatelessWidget {
body: AlbumMediasView(
galleryAlbum: album,
controller: controller,
isCollapsedSheet: isCollapsedSheet,
singleMedia: singleMedia,
),
);

View File

@ -8,11 +8,13 @@ class DateCategoryWiew extends StatelessWidget {
final PhoneGalleryController controller;
final bool singleMedia;
final DateCategory category;
final bool isCollapsedSheet;
const DateCategoryWiew(
{super.key,
required this.category,
required this.controller,
required this.isCollapsedSheet,
required this.singleMedia});
int getRowCount() {
@ -47,11 +49,10 @@ class DateCategoryWiew extends StatelessWidget {
crossAxisSpacing: 1.0,
children: <Widget>[
...category.files.map(
(medium) => MediaView(
medium,
(medium) => MediaView(medium,
controller: controller,
singleMedia: singleMedia,
),
isCollapsedSheet: isCollapsedSheet),
),
],
),

View File

@ -9,8 +9,12 @@ class MediaView extends StatelessWidget {
final MediaFile file;
final PhoneGalleryController controller;
final bool singleMedia;
final bool isCollapsedSheet;
const MediaView(this.file,
{super.key, required this.controller, required this.singleMedia});
{super.key,
required this.controller,
required this.singleMedia,
required this.isCollapsedSheet});
@override
Widget build(BuildContext context) {
return Stack(
@ -66,8 +70,8 @@ class MediaView extends StatelessWidget {
child: ThumbnailMediaFile(
file: file,
failIconColor: controller.config.appbarIconColor,
config: controller.config,
),
controller: controller,
isCollapsedSheet: isCollapsedSheet),
),
if (file.isSelected(controller: controller)!)
GestureDetector(

View File

@ -24,6 +24,7 @@ class GalleryPickerView extends StatefulWidget {
final List<MediaFile>? initSelectedMedia;
final List<MediaFile>? extraRecentMedia;
final bool singleMedia;
final bool isCollapsedSheet;
const GalleryPickerView(
{super.key,
this.config,
@ -31,6 +32,7 @@ class GalleryPickerView extends StatefulWidget {
this.initSelectedMedia,
this.extraRecentMedia,
this.singleMedia = false,
this.isCollapsedSheet = false,
this.sheetController,
this.heroBuilder,
this.multipleMediaBuilder,
@ -190,6 +192,7 @@ class _GalleryPickerState extends State<GalleryPickerView> {
? AlbumMediasView(
galleryAlbum: controller.recent!,
controller: controller,
isCollapsedSheet: widget.isCollapsedSheet,
singleMedia: widget.singleMedia)
: const Center(
child: CircularProgressIndicator(
@ -205,6 +208,7 @@ class _GalleryPickerState extends State<GalleryPickerView> {
controller: controller,
album: controller.selectedAlbum!,
singleMedia: widget.singleMedia,
isCollapsedSheet: widget.isCollapsedSheet,
bottomSheetController: bottomSheetController,
)
: ReloadGallery(

View File

@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import '../models/config.dart';
import '../controller/gallery_controller.dart';
import '../models/mode.dart';
import '/models/media_file.dart';
import 'package:transparent_image/transparent_image.dart';
@ -7,20 +7,22 @@ import 'package:transparent_image/transparent_image.dart';
class ThumbnailMediaFile extends StatelessWidget {
final MediaFile file;
final Color failIconColor;
final Config config;
final PhoneGalleryController controller;
final bool isCollapsedSheet;
const ThumbnailMediaFile(
{super.key,
required this.file,
required this.failIconColor,
required this.config});
required this.isCollapsedSheet,
required this.controller});
Color adjustFailedBgColor() {
if (config.mode == Mode.dark) {
if (controller.config.mode == Mode.dark) {
return lighten(
config.backgroundColor,
controller.config.backgroundColor,
);
} else {
return darken(config.backgroundColor);
return darken(controller.config.backgroundColor);
}
}
@ -57,7 +59,9 @@ class ThumbnailMediaFile extends StatelessWidget {
size: 50,
color: failIconColor,
))
else if (file.thumbnail != null)
else if (file.thumbnail != null &&
!isCollapsedSheet &&
controller.heroBuilder != null)
Hero(
tag: file.medium.id,
child: FadeInImage(
@ -67,6 +71,13 @@ class ThumbnailMediaFile extends StatelessWidget {
image: MemoryImage(file.thumbnail!),
),
)
else if (file.thumbnail != null && controller.heroBuilder == null)
FadeInImage(
fadeInDuration: const Duration(milliseconds: 200),
fit: BoxFit.cover,
placeholder: MemoryImage(kTransparentImage),
image: MemoryImage(file.thumbnail!),
)
else
const SizedBox(),
if (file.thumbnail != null && !file.thumbnailFailed)

View File

@ -1,6 +1,6 @@
name: gallery_picker
description: Gallery Picker is a flutter package that will allow you to pick media file(s), manage and navigate inside your gallery with modern tools and views.
version: 0.1.5
version: 0.1.6
homepage: https://github.com/FlutterWay/gallery_picker
environment: