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,
child: CarouselSlider.builder(
itemCount: model.numberOfImages,
carouselController: model.carouselController,
options: CarouselOptions(
enlargeFactor: 1,
enlargeCenterPage: true,
@ -79,19 +80,26 @@ class ImageCarouselView extends StatelessWidget {
builder: (context, _, __) => Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Icon(
IconButton(
icon: Icon(
Icons.chevron_left,
color: model.hasPreviousImage
? ConstColours.white
: ConstColours.black,
),
onPressed: model.onPreviousPressed,
),
AutoSizeText(
model.currentImageName,
style: ConstText.imageOverlayTextStyle(context),
),
Icon(
IconButton(
icon: Icon(
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_cache_manager/flutter_cache_manager.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;
ValueListenable<ImageModel> get currentImageModelListenable => _currentImageModelNotifier;
final CarouselController carouselController = CarouselController();
@override
Future<void> initialise(bool Function() mounted, [arguments]) async {
_currentImageModelNotifier = ValueNotifier(_imagesService.imageModels
@ -36,6 +39,10 @@ class ImageCarouselViewModel extends BaseViewModel {
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 currentImageKey => currentImageModelListenable.value.imageIndex.toString();
String get currentImageName => currentImageModelListenable.value.imageName;