add icon and stuff
@ -8,7 +8,8 @@ plugins {
|
||||
android {
|
||||
namespace = "com.example.mobile"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
ndkVersion = flutter.ndkVersion
|
||||
// ndkVersion = flutter.ndkVersion
|
||||
ndkVersion = "29.0.13113456"
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_21
|
||||
|
@ -1,8 +1,8 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<application
|
||||
android:label="mobile"
|
||||
android:label="Fresh Plaza"
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
android:icon="@mipmap/launcher_icon">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
|
BIN
mobile/android/app/src/main/res/mipmap-hdpi/launcher_icon.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
mobile/android/app/src/main/res/mipmap-mdpi/launcher_icon.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
mobile/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
mobile/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
mobile/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
mobile/assets/icon.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
mobile/assets/products/Amper Energi Drik.png
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
mobile/assets/products/Danskvand Med Brus.png
Normal file
After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 615 KiB After Width: | Height: | Size: 615 KiB |
32
mobile/flutter_launcher_icons.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
# flutter pub run flutter_launcher_icons
|
||||
flutter_launcher_icons:
|
||||
image_path: "assets/icon.png"
|
||||
|
||||
android: "launcher_icon"
|
||||
# image_path_android: "assets/icon/icon.png"
|
||||
min_sdk_android: 21 # android min sdk min:16, default 21
|
||||
# adaptive_icon_background: "assets/icon/background.png"
|
||||
# adaptive_icon_foreground: "assets/icon/foreground.png"
|
||||
# adaptive_icon_monochrome: "assets/icon/monochrome.png"
|
||||
|
||||
ios: true
|
||||
# image_path_ios: "assets/icon/icon.png"
|
||||
remove_alpha_channel_ios: true
|
||||
# image_path_ios_dark_transparent: "assets/icon/icon_dark.png"
|
||||
# image_path_ios_tinted_grayscale: "assets/icon/icon_tinted.png"
|
||||
# desaturate_tinted_to_grayscale_ios: true
|
||||
|
||||
web:
|
||||
generate: true
|
||||
image_path: "assets/icon.png"
|
||||
background_color: "#hexcode"
|
||||
theme_color: "#hexcode"
|
||||
|
||||
windows:
|
||||
generate: true
|
||||
image_path: "assets/icon.png"
|
||||
icon_size: 48 # min:48, max:256, default: 48
|
||||
|
||||
macos:
|
||||
generate: true
|
||||
image_path: "assets/icon.png"
|
@ -427,7 +427,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
@ -484,7 +484,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
|
@ -1,122 +1 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-20x20@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-20x20@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-29x29@1x.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-29x29@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-29x29@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-40x40@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-40x40@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-60x60@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-60x60@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-20x20@1x.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-20x20@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-29x29@1x.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-29x29@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-40x40@1x.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-40x40@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "76x76",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-76x76@1x.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "76x76",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-76x76@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "83.5x83.5",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-83.5x83.5@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "1024x1024",
|
||||
"idiom" : "ios-marketing",
|
||||
"filename" : "Icon-App-1024x1024@1x.png",
|
||||
"scale" : "1x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
{"images":[{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@3x.png","scale":"3x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@3x.png","scale":"3x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@3x.png","scale":"3x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@1x.png","scale":"1x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@3x.png","scale":"3x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@1x.png","scale":"1x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@1x.png","scale":"1x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@1x.png","scale":"1x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@2x.png","scale":"2x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@1x.png","scale":"1x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@2x.png","scale":"2x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@1x.png","scale":"1x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@2x.png","scale":"2x"},{"size":"83.5x83.5","idiom":"ipad","filename":"Icon-App-83.5x83.5@2x.png","scale":"2x"},{"size":"1024x1024","idiom":"ios-marketing","filename":"Icon-App-1024x1024@1x.png","scale":"1x"}],"info":{"version":1,"author":"xcode"}}
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 191 KiB |
Before Width: | Height: | Size: 295 B After Width: | Height: | Size: 985 B |
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 282 B After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 462 B After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 704 B After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 862 B After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 862 B After Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 762 B After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 18 KiB |
@ -38,11 +38,11 @@ class Dashboard extends StatelessWidget {
|
||||
items: <BottomNavigationBarItem>[
|
||||
BottomNavigationBarItem(
|
||||
icon: Icon(currentIndex == 0 ? Icons.home : Icons.home_outlined),
|
||||
label: "Home"),
|
||||
label: "Hjem"),
|
||||
BottomNavigationBarItem(
|
||||
icon: Icon(
|
||||
currentIndex == 1 ? Icons.search : Icons.search_outlined),
|
||||
label: "Products"),
|
||||
label: "Varer"),
|
||||
BottomNavigationBarItem(
|
||||
icon: cartRepo.totalItemsInCart() == 0
|
||||
? Icon(currentIndex == 2
|
||||
@ -55,12 +55,12 @@ class Dashboard extends StatelessWidget {
|
||||
? Icons.shopping_cart
|
||||
: Icons.shopping_cart_outlined),
|
||||
),
|
||||
label: "Cart"),
|
||||
label: "Kurv"),
|
||||
BottomNavigationBarItem(
|
||||
icon: Icon(currentIndex == 3
|
||||
? Icons.receipt_long
|
||||
: Icons.receipt_long_outlined),
|
||||
label: "Receipts")
|
||||
label: "Kvitteringer")
|
||||
],
|
||||
),
|
||||
body: pages[currentIndex],
|
||||
|
@ -32,19 +32,17 @@ class FinishShoppingPage extends StatelessWidget {
|
||||
const BackButton(),
|
||||
Container(
|
||||
margin: const EdgeInsets.all(20),
|
||||
child: Expanded(
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (_, idx) => ReceiptItemView(
|
||||
pricePerAmount: cart[idx].product.priceInDkkCents,
|
||||
name: cart[idx].product.name,
|
||||
amount: cart[idx].amount),
|
||||
itemCount: cart.length)),
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (_, idx) => ReceiptItemView(
|
||||
pricePerAmount: cart[idx].product.priceInDkkCents,
|
||||
name: cart[idx].product.name,
|
||||
amount: cart[idx].amount),
|
||||
itemCount: cart.length),
|
||||
),
|
||||
Container(
|
||||
margin: const EdgeInsets.all(20),
|
||||
child: Expanded(
|
||||
child: Row(
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
const Text(
|
||||
@ -53,7 +51,7 @@ class FinishShoppingPage extends StatelessWidget {
|
||||
),
|
||||
Text(formatDkkCents(cartRepo.totalPrice())),
|
||||
],
|
||||
)),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Center(
|
||||
|
@ -12,43 +12,45 @@ class ProductLocationPage extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Column(
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
const BackButton(),
|
||||
Text(product.name),
|
||||
],
|
||||
),
|
||||
Consumer<LocationImageRepo>(builder: (context, locationImage, child) {
|
||||
if (locationImage.image == null) {
|
||||
return const CircularProgressIndicator(
|
||||
color: Colors.blue,
|
||||
);
|
||||
}
|
||||
if (product.location == null) {
|
||||
return Text("Lokation af ${product.name} kunne ikke findes");
|
||||
}
|
||||
return LayoutBuilder(
|
||||
builder: (context, constraints) {
|
||||
double parentWidth = constraints.maxWidth;
|
||||
|
||||
final image = locationImage.image!;
|
||||
double imageWidth = image.width.toDouble();
|
||||
double imageHeight = image.height.toDouble();
|
||||
double scale = (parentWidth / imageWidth).clamp(0.0, 1.0);
|
||||
|
||||
return CustomPaint(
|
||||
size: Size(imageWidth * scale, imageHeight * scale),
|
||||
painter: LocationImagePainter(
|
||||
image: locationImage.image!,
|
||||
location: product.location!,
|
||||
scale: scale),
|
||||
body: SafeArea(
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
const BackButton(),
|
||||
Text(product.name),
|
||||
],
|
||||
),
|
||||
Consumer<LocationImageRepo>(builder: (context, locationImage, child) {
|
||||
if (locationImage.image == null) {
|
||||
return const CircularProgressIndicator(
|
||||
color: Colors.blue,
|
||||
);
|
||||
},
|
||||
);
|
||||
})
|
||||
],
|
||||
}
|
||||
if (product.location == null) {
|
||||
return Text("Lokation af ${product.name} kunne ikke findes");
|
||||
}
|
||||
return LayoutBuilder(
|
||||
builder: (context, constraints) {
|
||||
double parentWidth = constraints.maxWidth;
|
||||
|
||||
final image = locationImage.image!;
|
||||
double imageWidth = image.width.toDouble();
|
||||
double imageHeight = image.height.toDouble();
|
||||
double scale = (parentWidth / imageWidth).clamp(0.0, 1.0);
|
||||
|
||||
return CustomPaint(
|
||||
size: Size(imageWidth * scale, imageHeight * scale),
|
||||
painter: LocationImagePainter(
|
||||
image: locationImage.image!,
|
||||
location: product.location!,
|
||||
scale: scale),
|
||||
);
|
||||
},
|
||||
);
|
||||
})
|
||||
],
|
||||
),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
@ -4,30 +4,7 @@ import 'package:mobile/models/product.dart';
|
||||
class ProductIdException implements Exception {}
|
||||
|
||||
class CartRepo extends ChangeNotifier {
|
||||
final List<CartItem> cart = [
|
||||
CartItem(
|
||||
product: Product(
|
||||
id: 1,
|
||||
name: "Letmælk",
|
||||
priceInDkkCents: 1295,
|
||||
description: "Konventionel letmælk med fedtprocent på 1,5%"),
|
||||
amount: 1),
|
||||
CartItem(
|
||||
product: Product(
|
||||
id: 2,
|
||||
name: "Frilands Øko Supermælk",
|
||||
priceInDkkCents: 1995,
|
||||
description:
|
||||
"Økologisk mælk af frilandskøer med fedtprocent på 3,5%. Ikke homogeniseret eller pasteuriseret. Skaber store muskler og styrker knoglerne 💪"),
|
||||
amount: 6),
|
||||
CartItem(
|
||||
product: Product(
|
||||
id: 3,
|
||||
name: "Minimælk",
|
||||
priceInDkkCents: 1195,
|
||||
description: "Konventionel minimælk med fedtprocent på 0,4%"),
|
||||
amount: 1),
|
||||
];
|
||||
final List<CartItem> cart = [];
|
||||
|
||||
List<CartItem> allCartItems() {
|
||||
return cart;
|
||||
|
@ -99,9 +99,22 @@ class ProductRepo extends ChangeNotifier {
|
||||
description: ""),
|
||||
Product(
|
||||
id: _nextId++,
|
||||
barcode: "5060337502900",
|
||||
name: "Monster Energi Drik",
|
||||
priceInDkkCents: 2000,
|
||||
priceInDkkCents: 1500,
|
||||
description: ""),
|
||||
Product(
|
||||
id: _nextId++,
|
||||
barcode: "5712870659220",
|
||||
name: "Amper Energi Drik",
|
||||
priceInDkkCents: 750,
|
||||
description: ""),
|
||||
Product(
|
||||
id: _nextId++,
|
||||
barcode: "5710326001937",
|
||||
name: "Danskvand Med Brus",
|
||||
priceInDkkCents: 500,
|
||||
description: "Med smag a blåbær"),
|
||||
Product(
|
||||
id: _nextId++,
|
||||
name: "Spaghetti",
|
||||
|
@ -4,46 +4,7 @@ import 'package:mobile/repos/cart.dart';
|
||||
|
||||
class ReceiptRepo extends ChangeNotifier {
|
||||
int nextId = 0;
|
||||
final List<Receipt> receipts = [
|
||||
Receipt(
|
||||
id: 0,
|
||||
date: DateTime.fromMillisecondsSinceEpoch(1730031200000),
|
||||
receiptItems: [
|
||||
ReceiptItem(
|
||||
product: Product(
|
||||
id: 1243,
|
||||
name: "Letmælk",
|
||||
priceInDkkCents: 13,
|
||||
description: "Konventionel minimælk med fedtprocent på 0,4%"),
|
||||
amount: 1),
|
||||
ReceiptItem(
|
||||
product: Product(
|
||||
id: 340,
|
||||
name: "Minimælk",
|
||||
priceInDkkCents: 12,
|
||||
description: "Konventionel minimælk med fedtprocent på 0,4%"),
|
||||
amount: 3),
|
||||
]),
|
||||
Receipt(
|
||||
id: 1,
|
||||
date: DateTime.fromMillisecondsSinceEpoch(1735031200000),
|
||||
receiptItems: [
|
||||
ReceiptItem(
|
||||
product: Product(
|
||||
id: 12341,
|
||||
name: "Letmælk",
|
||||
priceInDkkCents: 13,
|
||||
description: "Konventionel minimælk med fedtprocent på 0,4%"),
|
||||
amount: 3),
|
||||
ReceiptItem(
|
||||
product: Product(
|
||||
id: 1234443,
|
||||
name: "Minimælk",
|
||||
priceInDkkCents: 12,
|
||||
description: "Konventionel minimælk med fedtprocent på 0,4%"),
|
||||
amount: 1),
|
||||
])
|
||||
];
|
||||
final List<Receipt> receipts = [];
|
||||
|
||||
List<Receipt> allReceipts() {
|
||||
return receipts;
|
||||
|
@ -1,68 +1,68 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"size" : "16x16",
|
||||
"idiom" : "mac",
|
||||
"filename" : "app_icon_16.png",
|
||||
"scale" : "1x"
|
||||
"info": {
|
||||
"version": 1,
|
||||
"author": "xcode"
|
||||
},
|
||||
{
|
||||
"size" : "16x16",
|
||||
"idiom" : "mac",
|
||||
"filename" : "app_icon_32.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "32x32",
|
||||
"idiom" : "mac",
|
||||
"filename" : "app_icon_32.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "32x32",
|
||||
"idiom" : "mac",
|
||||
"filename" : "app_icon_64.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "128x128",
|
||||
"idiom" : "mac",
|
||||
"filename" : "app_icon_128.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "128x128",
|
||||
"idiom" : "mac",
|
||||
"filename" : "app_icon_256.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "256x256",
|
||||
"idiom" : "mac",
|
||||
"filename" : "app_icon_256.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "256x256",
|
||||
"idiom" : "mac",
|
||||
"filename" : "app_icon_512.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "512x512",
|
||||
"idiom" : "mac",
|
||||
"filename" : "app_icon_512.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "512x512",
|
||||
"idiom" : "mac",
|
||||
"filename" : "app_icon_1024.png",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
"images": [
|
||||
{
|
||||
"size": "16x16",
|
||||
"idiom": "mac",
|
||||
"filename": "app_icon_16.png",
|
||||
"scale": "1x"
|
||||
},
|
||||
{
|
||||
"size": "16x16",
|
||||
"idiom": "mac",
|
||||
"filename": "app_icon_32.png",
|
||||
"scale": "2x"
|
||||
},
|
||||
{
|
||||
"size": "32x32",
|
||||
"idiom": "mac",
|
||||
"filename": "app_icon_32.png",
|
||||
"scale": "1x"
|
||||
},
|
||||
{
|
||||
"size": "32x32",
|
||||
"idiom": "mac",
|
||||
"filename": "app_icon_64.png",
|
||||
"scale": "2x"
|
||||
},
|
||||
{
|
||||
"size": "128x128",
|
||||
"idiom": "mac",
|
||||
"filename": "app_icon_128.png",
|
||||
"scale": "1x"
|
||||
},
|
||||
{
|
||||
"size": "128x128",
|
||||
"idiom": "mac",
|
||||
"filename": "app_icon_256.png",
|
||||
"scale": "2x"
|
||||
},
|
||||
{
|
||||
"size": "256x256",
|
||||
"idiom": "mac",
|
||||
"filename": "app_icon_256.png",
|
||||
"scale": "1x"
|
||||
},
|
||||
{
|
||||
"size": "256x256",
|
||||
"idiom": "mac",
|
||||
"filename": "app_icon_512.png",
|
||||
"scale": "2x"
|
||||
},
|
||||
{
|
||||
"size": "512x512",
|
||||
"idiom": "mac",
|
||||
"filename": "app_icon_512.png",
|
||||
"scale": "1x"
|
||||
},
|
||||
{
|
||||
"size": "512x512",
|
||||
"idiom": "mac",
|
||||
"filename": "app_icon_1024.png",
|
||||
"scale": "2x"
|
||||
}
|
||||
]
|
||||
}
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 191 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 6.6 KiB |
Before Width: | Height: | Size: 520 B After Width: | Height: | Size: 724 B |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 4.3 KiB |
@ -1,6 +1,22 @@
|
||||
# Generated by pub
|
||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||
packages:
|
||||
archive:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: archive
|
||||
sha256: "0c64e928dcbefddecd234205422bcfc2b5e6d31be0b86fef0d0dd48d7b4c9742"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.4"
|
||||
args:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: args
|
||||
sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.6.0"
|
||||
async:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -33,6 +49,22 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.4.0"
|
||||
checked_yaml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: checked_yaml
|
||||
sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.3"
|
||||
cli_util:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: cli_util
|
||||
sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.4.2"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -94,6 +126,14 @@ packages:
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_launcher_icons:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_launcher_icons
|
||||
sha256: bfa04787c85d80ecb3f8777bde5fc10c3de809240c48fa061a2c2bf15ea5211c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.14.3"
|
||||
flutter_lints:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
@ -131,6 +171,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.1.2"
|
||||
image:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: image
|
||||
sha256: "13d3349ace88f12f4a0d175eb5c12dcdd39d35c4c109a8a13dfeb6d0bd9e31c3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.5.3"
|
||||
intl:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -139,6 +187,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.20.2"
|
||||
json_annotation:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: json_annotation
|
||||
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.9.0"
|
||||
leak_tracker:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -259,6 +315,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.0"
|
||||
petitparser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: petitparser
|
||||
sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.1.0"
|
||||
platform:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -275,6 +339,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.8"
|
||||
posix:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: posix
|
||||
sha256: a0117dc2167805aa9125b82eee515cc891819bac2f538c83646d355b16f58b9a
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.0.1"
|
||||
protobuf:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -384,6 +456,22 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
xml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: xml
|
||||
sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.5.0"
|
||||
yaml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: yaml
|
||||
sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.3"
|
||||
sdks:
|
||||
dart: ">=3.7.0 <4.0.0"
|
||||
flutter: ">=3.24.0"
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: mobile
|
||||
description: "A new Flutter project."
|
||||
description: "Freshplaza Shopping app."
|
||||
# The following line prevents the package from being accidentally published to
|
||||
# pub.dev using `flutter pub publish`. This is preferred for private packages.
|
||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||
@ -50,6 +50,8 @@ dev_dependencies:
|
||||
# package. See that file for information about deactivating specific lint
|
||||
# rules and activating additional ones.
|
||||
flutter_lints: ^5.0.0
|
||||
|
||||
flutter_launcher_icons: "^0.14.3"
|
||||
|
||||
# For information on the generic Dart part of this file, see the
|
||||
# following page: https://dart.dev/tools/pub/pubspec
|
||||
|
Before Width: | Height: | Size: 917 B After Width: | Height: | Size: 724 B |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 64 KiB |
@ -3,8 +3,8 @@
|
||||
"short_name": "mobile",
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"background_color": "#0175C2",
|
||||
"theme_color": "#0175C2",
|
||||
"background_color": "#hexcode",
|
||||
"theme_color": "#hexcode",
|
||||
"description": "A new Flutter project.",
|
||||
"orientation": "portrait-primary",
|
||||
"prefer_related_applications": false,
|
||||
@ -32,4 +32,4 @@
|
||||
"purpose": "maskable"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 3.1 KiB |