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
|
## 0.1.5
|
||||||
|
|
||||||
* changes made
|
* changes made
|
||||||
|
|
||||||
|
## 0.1.6
|
||||||
|
|
||||||
|
* multiple hero with same id issue handled
|
@ -141,7 +141,7 @@ packages:
|
|||||||
path: ".."
|
path: ".."
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "0.1.5"
|
version: "0.1.6"
|
||||||
get:
|
get:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -7,10 +7,12 @@ import 'selected_medias_view.dart';
|
|||||||
class AlbumMediasView extends StatelessWidget {
|
class AlbumMediasView extends StatelessWidget {
|
||||||
final PhoneGalleryController controller;
|
final PhoneGalleryController controller;
|
||||||
final bool singleMedia;
|
final bool singleMedia;
|
||||||
|
final bool isCollapsedSheet;
|
||||||
const AlbumMediasView(
|
const AlbumMediasView(
|
||||||
{super.key,
|
{super.key,
|
||||||
required this.galleryAlbum,
|
required this.galleryAlbum,
|
||||||
required this.controller,
|
required this.controller,
|
||||||
|
required this.isCollapsedSheet,
|
||||||
required this.singleMedia});
|
required this.singleMedia});
|
||||||
final GalleryAlbum galleryAlbum;
|
final GalleryAlbum galleryAlbum;
|
||||||
@override
|
@override
|
||||||
@ -24,6 +26,7 @@ class AlbumMediasView extends StatelessWidget {
|
|||||||
category: category,
|
category: category,
|
||||||
controller: controller,
|
controller: controller,
|
||||||
singleMedia: singleMedia,
|
singleMedia: singleMedia,
|
||||||
|
isCollapsedSheet: isCollapsedSheet,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
@ -11,11 +11,13 @@ class AlbumPage extends StatelessWidget {
|
|||||||
final PhoneGalleryController controller;
|
final PhoneGalleryController controller;
|
||||||
final BottomSheetController? bottomSheetController;
|
final BottomSheetController? bottomSheetController;
|
||||||
final GalleryAlbum album;
|
final GalleryAlbum album;
|
||||||
|
final bool isCollapsedSheet;
|
||||||
const AlbumPage(
|
const AlbumPage(
|
||||||
{super.key,
|
{super.key,
|
||||||
required this.album,
|
required this.album,
|
||||||
required this.controller,
|
required this.controller,
|
||||||
required this.singleMedia,
|
required this.singleMedia,
|
||||||
|
required this.isCollapsedSheet,
|
||||||
required this.bottomSheetController});
|
required this.bottomSheetController});
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -29,6 +31,7 @@ class AlbumPage extends StatelessWidget {
|
|||||||
body: AlbumMediasView(
|
body: AlbumMediasView(
|
||||||
galleryAlbum: album,
|
galleryAlbum: album,
|
||||||
controller: controller,
|
controller: controller,
|
||||||
|
isCollapsedSheet: isCollapsedSheet,
|
||||||
singleMedia: singleMedia,
|
singleMedia: singleMedia,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -8,11 +8,13 @@ class DateCategoryWiew extends StatelessWidget {
|
|||||||
final PhoneGalleryController controller;
|
final PhoneGalleryController controller;
|
||||||
final bool singleMedia;
|
final bool singleMedia;
|
||||||
final DateCategory category;
|
final DateCategory category;
|
||||||
|
final bool isCollapsedSheet;
|
||||||
|
|
||||||
const DateCategoryWiew(
|
const DateCategoryWiew(
|
||||||
{super.key,
|
{super.key,
|
||||||
required this.category,
|
required this.category,
|
||||||
required this.controller,
|
required this.controller,
|
||||||
|
required this.isCollapsedSheet,
|
||||||
required this.singleMedia});
|
required this.singleMedia});
|
||||||
|
|
||||||
int getRowCount() {
|
int getRowCount() {
|
||||||
@ -47,11 +49,10 @@ class DateCategoryWiew extends StatelessWidget {
|
|||||||
crossAxisSpacing: 1.0,
|
crossAxisSpacing: 1.0,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
...category.files.map(
|
...category.files.map(
|
||||||
(medium) => MediaView(
|
(medium) => MediaView(medium,
|
||||||
medium,
|
|
||||||
controller: controller,
|
controller: controller,
|
||||||
singleMedia: singleMedia,
|
singleMedia: singleMedia,
|
||||||
),
|
isCollapsedSheet: isCollapsedSheet),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
@ -9,8 +9,12 @@ class MediaView extends StatelessWidget {
|
|||||||
final MediaFile file;
|
final MediaFile file;
|
||||||
final PhoneGalleryController controller;
|
final PhoneGalleryController controller;
|
||||||
final bool singleMedia;
|
final bool singleMedia;
|
||||||
|
final bool isCollapsedSheet;
|
||||||
const MediaView(this.file,
|
const MediaView(this.file,
|
||||||
{super.key, required this.controller, required this.singleMedia});
|
{super.key,
|
||||||
|
required this.controller,
|
||||||
|
required this.singleMedia,
|
||||||
|
required this.isCollapsedSheet});
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Stack(
|
return Stack(
|
||||||
@ -66,8 +70,8 @@ class MediaView extends StatelessWidget {
|
|||||||
child: ThumbnailMediaFile(
|
child: ThumbnailMediaFile(
|
||||||
file: file,
|
file: file,
|
||||||
failIconColor: controller.config.appbarIconColor,
|
failIconColor: controller.config.appbarIconColor,
|
||||||
config: controller.config,
|
controller: controller,
|
||||||
),
|
isCollapsedSheet: isCollapsedSheet),
|
||||||
),
|
),
|
||||||
if (file.isSelected(controller: controller)!)
|
if (file.isSelected(controller: controller)!)
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
|
@ -24,6 +24,7 @@ class GalleryPickerView extends StatefulWidget {
|
|||||||
final List<MediaFile>? initSelectedMedia;
|
final List<MediaFile>? initSelectedMedia;
|
||||||
final List<MediaFile>? extraRecentMedia;
|
final List<MediaFile>? extraRecentMedia;
|
||||||
final bool singleMedia;
|
final bool singleMedia;
|
||||||
|
final bool isCollapsedSheet;
|
||||||
const GalleryPickerView(
|
const GalleryPickerView(
|
||||||
{super.key,
|
{super.key,
|
||||||
this.config,
|
this.config,
|
||||||
@ -31,6 +32,7 @@ class GalleryPickerView extends StatefulWidget {
|
|||||||
this.initSelectedMedia,
|
this.initSelectedMedia,
|
||||||
this.extraRecentMedia,
|
this.extraRecentMedia,
|
||||||
this.singleMedia = false,
|
this.singleMedia = false,
|
||||||
|
this.isCollapsedSheet = false,
|
||||||
this.sheetController,
|
this.sheetController,
|
||||||
this.heroBuilder,
|
this.heroBuilder,
|
||||||
this.multipleMediaBuilder,
|
this.multipleMediaBuilder,
|
||||||
@ -190,6 +192,7 @@ class _GalleryPickerState extends State<GalleryPickerView> {
|
|||||||
? AlbumMediasView(
|
? AlbumMediasView(
|
||||||
galleryAlbum: controller.recent!,
|
galleryAlbum: controller.recent!,
|
||||||
controller: controller,
|
controller: controller,
|
||||||
|
isCollapsedSheet: widget.isCollapsedSheet,
|
||||||
singleMedia: widget.singleMedia)
|
singleMedia: widget.singleMedia)
|
||||||
: const Center(
|
: const Center(
|
||||||
child: CircularProgressIndicator(
|
child: CircularProgressIndicator(
|
||||||
@ -205,6 +208,7 @@ class _GalleryPickerState extends State<GalleryPickerView> {
|
|||||||
controller: controller,
|
controller: controller,
|
||||||
album: controller.selectedAlbum!,
|
album: controller.selectedAlbum!,
|
||||||
singleMedia: widget.singleMedia,
|
singleMedia: widget.singleMedia,
|
||||||
|
isCollapsedSheet: widget.isCollapsedSheet,
|
||||||
bottomSheetController: bottomSheetController,
|
bottomSheetController: bottomSheetController,
|
||||||
)
|
)
|
||||||
: ReloadGallery(
|
: ReloadGallery(
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import '../models/config.dart';
|
import '../controller/gallery_controller.dart';
|
||||||
import '../models/mode.dart';
|
import '../models/mode.dart';
|
||||||
import '/models/media_file.dart';
|
import '/models/media_file.dart';
|
||||||
import 'package:transparent_image/transparent_image.dart';
|
import 'package:transparent_image/transparent_image.dart';
|
||||||
@ -7,20 +7,22 @@ import 'package:transparent_image/transparent_image.dart';
|
|||||||
class ThumbnailMediaFile extends StatelessWidget {
|
class ThumbnailMediaFile extends StatelessWidget {
|
||||||
final MediaFile file;
|
final MediaFile file;
|
||||||
final Color failIconColor;
|
final Color failIconColor;
|
||||||
final Config config;
|
final PhoneGalleryController controller;
|
||||||
|
final bool isCollapsedSheet;
|
||||||
const ThumbnailMediaFile(
|
const ThumbnailMediaFile(
|
||||||
{super.key,
|
{super.key,
|
||||||
required this.file,
|
required this.file,
|
||||||
required this.failIconColor,
|
required this.failIconColor,
|
||||||
required this.config});
|
required this.isCollapsedSheet,
|
||||||
|
required this.controller});
|
||||||
|
|
||||||
Color adjustFailedBgColor() {
|
Color adjustFailedBgColor() {
|
||||||
if (config.mode == Mode.dark) {
|
if (controller.config.mode == Mode.dark) {
|
||||||
return lighten(
|
return lighten(
|
||||||
config.backgroundColor,
|
controller.config.backgroundColor,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return darken(config.backgroundColor);
|
return darken(controller.config.backgroundColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,7 +59,9 @@ class ThumbnailMediaFile extends StatelessWidget {
|
|||||||
size: 50,
|
size: 50,
|
||||||
color: failIconColor,
|
color: failIconColor,
|
||||||
))
|
))
|
||||||
else if (file.thumbnail != null)
|
else if (file.thumbnail != null &&
|
||||||
|
!isCollapsedSheet &&
|
||||||
|
controller.heroBuilder != null)
|
||||||
Hero(
|
Hero(
|
||||||
tag: file.medium.id,
|
tag: file.medium.id,
|
||||||
child: FadeInImage(
|
child: FadeInImage(
|
||||||
@ -67,6 +71,13 @@ class ThumbnailMediaFile extends StatelessWidget {
|
|||||||
image: MemoryImage(file.thumbnail!),
|
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
|
else
|
||||||
const SizedBox(),
|
const SizedBox(),
|
||||||
if (file.thumbnail != null && !file.thumbnailFailed)
|
if (file.thumbnail != null && !file.thumbnailFailed)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
name: gallery_picker
|
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.
|
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
|
homepage: https://github.com/FlutterWay/gallery_picker
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user