multiple hero with same id issue handled
This commit is contained in:
parent
9d2ec4d6b2
commit
13fc79fb7b
@ -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"}
|
@ -62,3 +62,7 @@
|
||||
## 0.1.5
|
||||
|
||||
* changes made
|
||||
|
||||
## 0.1.6
|
||||
|
||||
* multiple hero with same id issue handled
|
@ -141,7 +141,7 @@ packages:
|
||||
path: ".."
|
||||
relative: true
|
||||
source: path
|
||||
version: "0.1.5"
|
||||
version: "0.1.6"
|
||||
get:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -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,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
@ -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,
|
||||
),
|
||||
);
|
||||
|
@ -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,
|
||||
controller: controller,
|
||||
singleMedia: singleMedia,
|
||||
),
|
||||
(medium) => MediaView(medium,
|
||||
controller: controller,
|
||||
singleMedia: singleMedia,
|
||||
isCollapsedSheet: isCollapsedSheet),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
@ -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(
|
||||
@ -64,10 +68,10 @@ class MediaView extends StatelessWidget {
|
||||
}
|
||||
},
|
||||
child: ThumbnailMediaFile(
|
||||
file: file,
|
||||
failIconColor: controller.config.appbarIconColor,
|
||||
config: controller.config,
|
||||
),
|
||||
file: file,
|
||||
failIconColor: controller.config.appbarIconColor,
|
||||
controller: controller,
|
||||
isCollapsedSheet: isCollapsedSheet),
|
||||
),
|
||||
if (file.isSelected(controller: controller)!)
|
||||
GestureDetector(
|
||||
|
@ -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(
|
||||
|
@ -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)
|
||||
|
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user