Compare commits

..

8 commits

Author SHA1 Message Date
3a95b918dc Docs 2022-12-27 14:17:18 +01:00
78fe9e7b09 refactoring
security update
2022-12-27 14:16:04 +01:00
1747ab0245 Favourites 2022-12-27 14:16:04 +01:00
6a84a9bef0 abdicate object assigning responsibility
The ImagesService itself handles the conversion of Json to the object itself, instead of the ImagesApi
2022-12-27 14:16:04 +01:00
a0ed894016 live local search
todos

improve local search
2022-12-27 14:16:04 +01:00
Mehul Ahal
4ade7f1682 live WEB search 2022-12-27 14:16:04 +01:00
Mehul Ahal
47945dbec7 fixed connection problem 2022-12-27 14:16:04 +01:00
Mehul Ahal
127a09b597 added swiping
add swiping
2022-12-27 14:16:04 +01:00
2 changed files with 23 additions and 8 deletions

View file

@ -46,6 +46,7 @@ class ImageCarouselView extends StatelessWidget {
surfaceTintColor: ConstColours.transparent, surfaceTintColor: ConstColours.transparent,
child: CarouselSlider.builder( child: CarouselSlider.builder(
itemCount: model.numberOfImages, itemCount: model.numberOfImages,
carouselController: model.carouselController,
options: CarouselOptions( options: CarouselOptions(
enlargeFactor: 1, enlargeFactor: 1,
enlargeCenterPage: true, enlargeCenterPage: true,
@ -79,19 +80,26 @@ class ImageCarouselView extends StatelessWidget {
builder: (context, _, __) => Row( builder: (context, _, __) => Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Icon( IconButton(
icon: Icon(
Icons.chevron_left, Icons.chevron_left,
color: model.hasPreviousImage color: model.hasPreviousImage
? ConstColours.white ? ConstColours.white
: ConstColours.black, : ConstColours.black,
), ),
onPressed: model.onPreviousPressed,
),
AutoSizeText( AutoSizeText(
model.currentImageName, model.currentImageName,
style: ConstText.imageOverlayTextStyle(context), style: ConstText.imageOverlayTextStyle(context),
), ),
Icon( IconButton(
icon: Icon(
Icons.chevron_right, Icons.chevron_right,
color: model.hasNextImage ? ConstColours.white : ConstColours.black, color:
model.hasNextImage ? ConstColours.white : ConstColours.black,
),
onPressed: model.onNextPressed,
), ),
], ],
), ),

View file

@ -1,3 +1,4 @@
import 'package:carousel_slider/carousel_controller.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart'; import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:mc_gallery/features/home/views/image_carousel/image_carousel_view.dart'; import 'package:mc_gallery/features/home/views/image_carousel/image_carousel_view.dart';
@ -17,6 +18,8 @@ class ImageCarouselViewModel extends BaseViewModel {
late final ValueNotifier<ImageModel> _currentImageModelNotifier; late final ValueNotifier<ImageModel> _currentImageModelNotifier;
ValueListenable<ImageModel> get currentImageModelListenable => _currentImageModelNotifier; ValueListenable<ImageModel> get currentImageModelListenable => _currentImageModelNotifier;
final CarouselController carouselController = CarouselController();
@override @override
Future<void> initialise(bool Function() mounted, [arguments]) async { Future<void> initialise(bool Function() mounted, [arguments]) async {
_currentImageModelNotifier = ValueNotifier(_imagesService.imageModels _currentImageModelNotifier = ValueNotifier(_imagesService.imageModels
@ -36,6 +39,10 @@ class ImageCarouselViewModel extends BaseViewModel {
log.info('Swiped to image: ${_currentImageModelNotifier.value.imageIndex}'); log.info('Swiped to image: ${_currentImageModelNotifier.value.imageIndex}');
} }
void onPreviousPressed() => carouselController.previousPage();
void onNextPressed() => carouselController.nextPage();
String get currentImageUrl => currentImageModelListenable.value.uri.toString(); String get currentImageUrl => currentImageModelListenable.value.uri.toString();
String get currentImageKey => currentImageModelListenable.value.imageIndex.toString(); String get currentImageKey => currentImageModelListenable.value.imageIndex.toString();
String get currentImageName => currentImageModelListenable.value.imageName; String get currentImageName => currentImageModelListenable.value.imageName;