Lazy Loading & Pagination, Alpha Channel -> White Conversion, Add Height & Width to DB & API

This commit is contained in:
2021-02-28 19:23:41 -05:00
parent 6827a2994a
commit 745d843af7
18 changed files with 427 additions and 284 deletions

View File

@@ -1,11 +1,12 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/material.dart' show BoxFit, Center, SizedBox;
import 'package:imagini/api/cookie_client/cookie_client.dart'
if (dart.library.html) 'package:imagini/api/cookie_client/browser_cookie_client.dart'
if (dart.library.io) 'package:imagini/api/cookie_client/io_cookie_client.dart';
import 'package:imagini/core/storage_client/base_storage_client.dart';
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:imagini/graphql/imagini_graphql.dart';
@@ -63,14 +64,22 @@ class APIProvider{
return response;
}
Future<CachedNetworkImage> getImage(String fileName, int derivedContentWidth) async {
Future<CachedNetworkImage> getImage(String fileName, int width, int height) async {
String server = await _storage.get("server");
String accessToken = await _storage.get("accessToken");
String refreshToken = await _storage.get("refreshToken");
String fullURL = "$server/media/$fileName?width=$derivedContentWidth";
String fullURL = "$server/media/$fileName?width=$width";
print(fullURL);
return CachedNetworkImage(
imageUrl: fullURL,
placeholder: (context, url) => Center(
child: SizedBox(
width: width.toDouble() / 3.5,
height: height.toDouble() / 3.5,
child: new PlatformCircularProgressIndicator(),
),
),
imageRenderMethodForWeb: ImageRenderMethodForWeb.HttpGet,
httpHeaders: {
"X-Imagini-AccessToken": accessToken,
@@ -89,10 +98,13 @@ class APIProvider{
return response;
}
Future<QueryResult> mediaItems() async {
Future<QueryResult> mediaItems(Page page) async {
QueryResult response = await _client.query(
QueryOptions(
document: MediaItemsQuery().document,
variables: {
"page": page,
},
)
);
return response;

View File

@@ -26,11 +26,9 @@ class ImaginiAPIRepository {
return Stream.fromFuture(_apiProvider.me());
}
Stream<MediaItems$Query> mediaItems() {
return Stream.fromFuture(_apiProvider.mediaItems().then((QueryResult resp) {
final mediaItemsResponse = MediaItems$Query.fromJson(resp.data);
return mediaItemsResponse;
}));
Future<MediaItems$Query> mediaItems(Page page) async {
QueryResult allItems = await _apiProvider.mediaItems(page);
return MediaItems$Query.fromJson(allItems.data);
}
Stream<bool> isAuthenticated() {
@@ -41,7 +39,7 @@ class ImaginiAPIRepository {
}));
}
Future<CachedNetworkImage> getImage(String fileName, int derivedContentWidth) {
return _apiProvider.getImage(fileName, derivedContentWidth);
Future<CachedNetworkImage> getImage(String fileName, int width, int height) {
return _apiProvider.getImage(fileName, width, height);
}
}