Commit a22b2959 authored by Michal Cikatricis's avatar Michal Cikatricis
Browse files

Feat (home page): added cached image

parent ca56a955
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.stamped">
   <uses-permission android:name="android.permission.INTERNET"/>
   <application
        android:label="stamped"
        android:name="${applicationName}"
+26 −0
Original line number Diff line number Diff line
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';

class CachedImageBuilder extends StatelessWidget {
  final String _url;
  final BoxFit? fit;
  final ProgressIndicator? progressIndicator;

  const CachedImageBuilder({super.key, required url, this.fit, this.progressIndicator}) : _url = url;

  @override
  Widget build(BuildContext context) {
    return CachedNetworkImage(
      imageUrl: _url,
      placeholder: (context, url) => Center(
        child: SizedBox(
          width: 50, // adjust width
          height: 50, // adjust height
          child: progressIndicator ?? CircularProgressIndicator(),
        ),
      ),
      errorWidget: (context, url, error) => Icon(Icons.error),
      fit: fit ?? BoxFit.cover,
    );
  }
}
+6 −3
Original line number Diff line number Diff line
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:stamped/common/widget/page_template.dart';
import 'package:stamped/data/models/postcard.dart';
@@ -20,7 +21,7 @@ class PostcardDetail extends StatelessWidget {
        child: Container(
          decoration: BoxDecoration(
            image: DecorationImage(
              image: NetworkImage(postcard.imagePath),
              image: CachedNetworkImageProvider(postcard.imagePath),
              fit: BoxFit.cover,
            ),
          ),
@@ -31,12 +32,14 @@ class PostcardDetail extends StatelessWidget {

  Route _createRoute() {
    return PageRouteBuilder(
      pageBuilder: (context, animation, secondaryAnimation) => PostcardDetailBack(postcard: postcard),
      pageBuilder: (context, animation, secondaryAnimation) =>
          PostcardDetailBack(postcard: postcard),
      transitionsBuilder: (context, animation, secondaryAnimation, child) {
        const begin = Offset(1.0, 0);
        const end = Offset.zero;
        var curve = Curves.easeInOutCubic;
        var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve));
        var tween =
            Tween(begin: begin, end: end).chain(CurveTween(curve: curve));
        final offsetAnimation = animation.drive(tween);
        return SlideTransition(
          position: offsetAnimation,
+3 −7
Original line number Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:stamped/common/service/ioc_container.dart';
import 'package:stamped/common/widget/cached_image_builder.dart';
import 'package:stamped/common/widget/future_builder_handler.dart';
import 'package:stamped/data/models/postcard.dart';
import 'package:stamped/pages/collections/postcard_detail.dart';
@@ -52,13 +53,8 @@ class PostcardTile extends StatelessWidget {

  Expanded _imageBuilder() {
    return Expanded(
      child: Container(
        decoration: BoxDecoration(
          image: DecorationImage(
            image: NetworkImage(postcard.imagePath),
            fit: BoxFit.cover,
          ),
        ),
      child: CachedImageBuilder(
        url: postcard.imagePath,
      ),
    );
  }
+2 −1
Original line number Diff line number Diff line
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:stamped/pages/collections/stamp_detail.dart';

@@ -30,7 +31,7 @@ class StampTile extends StatelessWidget {
          width: width ?? MediaQuery.of(context).size.width / 2 - 40,
          decoration: BoxDecoration(
            image: DecorationImage(
              image: NetworkImage(url),
              image: CachedNetworkImageProvider(url),
              fit: BoxFit.contain,
            ),
          ),
Loading