Compare commits
6 Commits
0f6c6e51ab
...
26d3638d80
| Author | SHA1 | Date | |
|---|---|---|---|
| 26d3638d80 | |||
| 6c591172df | |||
| 0a5c4a3d20 | |||
| c0077e532c | |||
| 379633d7f5 | |||
| c855503edd |
@@ -19,7 +19,7 @@ if (keystorePropertiesFile.exists()) {
|
||||
|
||||
android {
|
||||
namespace = "za.co.mzansiinnovationhub.mih"
|
||||
compileSdk = 35
|
||||
compileSdk = 36
|
||||
ndkVersion = "27.0.12077973"
|
||||
// ndkVersion = flutter.ndkVersion
|
||||
|
||||
@@ -69,4 +69,4 @@ android {
|
||||
|
||||
flutter {
|
||||
source = "../.."
|
||||
}
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
@@ -27,7 +27,7 @@ class _MihAccessState extends State<MihAccess> {
|
||||
MzansiProfileProvider mzansiProfileProvider =
|
||||
context.read<MzansiProfileProvider>();
|
||||
if (mzansiProfileProvider.user == null) {
|
||||
await MihDataHelperServices().loadUserDataOnly(
|
||||
await MihDataHelperServices().loadUserDataWithBusinessesData(
|
||||
mzansiProfileProvider,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ class _MzansiCalendarState extends State<MzansiCalendar> {
|
||||
MzansiProfileProvider mzansiProfileProvider =
|
||||
context.read<MzansiProfileProvider>();
|
||||
if (mzansiProfileProvider.user == null) {
|
||||
await MihDataHelperServices().loadUserDataOnly(
|
||||
await MihDataHelperServices().loadUserDataWithBusinessesData(
|
||||
mzansiProfileProvider,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ class _MihMineSweeperState extends State<MihMineSweeper> {
|
||||
context.read<MzansiProfileProvider>();
|
||||
MihBannerAdProvider bannerAdProvider = context.read<MihBannerAdProvider>();
|
||||
if (mzansiProfileProvider.user == null) {
|
||||
await MihDataHelperServices().loadUserDataOnly(
|
||||
await MihDataHelperServices().loadUserDataWithBusinessesData(
|
||||
mzansiProfileProvider,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ class _MzansiAiState extends State<MzansiAi> {
|
||||
MzansiProfileProvider mzansiProfileProvider =
|
||||
context.read<MzansiProfileProvider>();
|
||||
if (mzansiProfileProvider.user == null) {
|
||||
await MihDataHelperServices().loadUserDataOnly(
|
||||
await MihDataHelperServices().loadUserDataWithBusinessesData(
|
||||
mzansiProfileProvider,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ class _MzansiDirectoryState extends State<MzansiDirectory> {
|
||||
MzansiProfileProvider mzansiProfileProvider =
|
||||
context.read<MzansiProfileProvider>();
|
||||
if (mzansiProfileProvider.user == null) {
|
||||
await MihDataHelperServices().loadUserDataOnly(
|
||||
await MihDataHelperServices().loadUserDataWithBusinessesData(
|
||||
mzansiProfileProvider,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -343,6 +343,105 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
||||
);
|
||||
}
|
||||
|
||||
Color getCardColor(String shopName) {
|
||||
switch (shopName.toLowerCase()) {
|
||||
case "apple tree":
|
||||
return const Color(0xFFffffff);
|
||||
case "best before":
|
||||
return const Color(0xFF000000);
|
||||
case "checkers":
|
||||
return const Color(0xFF00a6a3);
|
||||
case "clicks":
|
||||
return const Color(0xFF005caf);
|
||||
case "cotton:on":
|
||||
return const Color(0xFFffffff);
|
||||
case "dis-chem":
|
||||
return const Color(0xFF00a950);
|
||||
case "pick n pay":
|
||||
return const Color(0xFFffffff);
|
||||
case "shoprite":
|
||||
return const Color(0xFFc12514);
|
||||
case "spar":
|
||||
return const Color(0xFFffffff);
|
||||
case "woolworths":
|
||||
return const Color(0xFF000000);
|
||||
case "makro":
|
||||
return const Color(0xFFffffff);
|
||||
case "fresh stop":
|
||||
return const Color(0xFF50b849);
|
||||
case "panarottis":
|
||||
return const Color(0xFF3c3c3b);
|
||||
case "shell":
|
||||
return const Color(0xFF1d232a);
|
||||
case "edgars":
|
||||
return const Color(0xFFffffff);
|
||||
case "jet":
|
||||
return const Color(0xFFffffff);
|
||||
case "spur":
|
||||
return const Color(0xFF0a0157);
|
||||
case "infinity":
|
||||
return const Color(0xFFffffff);
|
||||
case "eskom":
|
||||
return const Color(0xFF003897);
|
||||
case "+more":
|
||||
return const Color(0xFFffffff);
|
||||
case "bp":
|
||||
return const Color(0xFF9dc600);
|
||||
case "builders warehouse":
|
||||
return const Color(0xFFffcb26);
|
||||
case "exclusive books":
|
||||
return const Color(0xFF2abdc5);
|
||||
case "pna":
|
||||
return const Color(0xFFcf3339);
|
||||
case "pq clothing":
|
||||
return const Color(0xFFed2223);
|
||||
case "rage":
|
||||
return const Color(0xFFffffff);
|
||||
case "sasol":
|
||||
return const Color(0xFFffffff);
|
||||
case "tfg group":
|
||||
return const Color(0xFF622775);
|
||||
case "toys r us":
|
||||
return const Color(0xFF0962ad);
|
||||
case "leroy merlin":
|
||||
return const Color(0xFFffffff);
|
||||
case "signature cosmetics & fragrances":
|
||||
return const Color(0xFFec028b);
|
||||
case "ok foods":
|
||||
return const Color(0xFFffffff);
|
||||
case "choppies":
|
||||
return const Color(0xFFffffff);
|
||||
case "boxer":
|
||||
return const Color(0xFFffffff);
|
||||
case "carrefour":
|
||||
return const Color(0xFFffffff);
|
||||
case "sefalana":
|
||||
return const Color(0xFFffffff);
|
||||
case "big save":
|
||||
return const Color(0xFF333333);
|
||||
case "justrite":
|
||||
return const Color(0xFF50b849);
|
||||
case "naivas":
|
||||
return const Color(0xFFf26535);
|
||||
case "kero":
|
||||
return const Color(0xFF004986);
|
||||
case "auchan":
|
||||
return const Color(0xFFffffff);
|
||||
case "woermann brock":
|
||||
return const Color(0xFFe31e2d);
|
||||
case "continente":
|
||||
return const Color(0xFFffffff);
|
||||
case "fresmart":
|
||||
return const Color(0xFF72ba2e);
|
||||
case "total energies":
|
||||
return const Color(0xFFffffff);
|
||||
case "engen":
|
||||
return const Color(0xFF002b8f);
|
||||
default:
|
||||
return const Color(0xFFffffff);
|
||||
}
|
||||
}
|
||||
|
||||
void viewCardWindow(MzansiProfileProvider mzansiProfileProvider,
|
||||
MzansiWalletProvider walletProvider, int index, double width) {
|
||||
//print(widget.cardList[index].card_number);
|
||||
@@ -357,8 +456,9 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
||||
context: context,
|
||||
barrierDismissible: false,
|
||||
builder: (context) => MihPackageWindow(
|
||||
backgroundColor: getCardColor(widget.cardList[index].shop_name),
|
||||
fullscreen: false,
|
||||
windowTitle: widget.cardList[index].shop_name.toUpperCase(),
|
||||
windowTitle: null,
|
||||
menuOptions: [
|
||||
SpeedDialChild(
|
||||
child: widget.cardList[index].favourite == ""
|
||||
@@ -452,12 +552,14 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
||||
windowBody: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Container(
|
||||
SizedBox(
|
||||
height: 15,
|
||||
),
|
||||
SizedBox(
|
||||
width: 500,
|
||||
child: MihCardDisplay(
|
||||
shopName: widget.cardList[index].shop_name,
|
||||
nickname: widget.cardList[index].nickname,
|
||||
height: 250,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
@@ -474,7 +576,7 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(10.0),
|
||||
child: SizedBox(
|
||||
height: 75,
|
||||
height: 150,
|
||||
// width: 300,
|
||||
child: BarcodeWidget(
|
||||
//color: MihColors.secondary(),
|
||||
@@ -625,16 +727,16 @@ class _BuildLoyaltyCardListState extends State<BuildLoyaltyCardList> {
|
||||
),
|
||||
itemCount: widget.cardList.length,
|
||||
gridDelegate: const SliverGridDelegateWithMaxCrossAxisExtent(
|
||||
mainAxisSpacing: 0,
|
||||
mainAxisSpacing: 5,
|
||||
crossAxisSpacing: 5,
|
||||
maxCrossAxisExtent: 200,
|
||||
// childAspectRatio: 0.80,
|
||||
),
|
||||
itemBuilder: (context, index) {
|
||||
return GestureDetector(
|
||||
child: MihCardDisplay(
|
||||
shopName: widget.cardList[index].shop_name,
|
||||
nickname: widget.cardList[index].nickname,
|
||||
height: 100,
|
||||
),
|
||||
onTap: () {
|
||||
setScreenBrightness(1.0);
|
||||
|
||||
@@ -143,23 +143,31 @@ class _MihAddCardWindowState extends State<MihAddCardWindow> {
|
||||
"Woolworths",
|
||||
],
|
||||
),
|
||||
ValueListenableBuilder(
|
||||
valueListenable: _shopName,
|
||||
builder:
|
||||
(BuildContext context, String value, Widget? child) {
|
||||
return Visibility(
|
||||
visible: value != "",
|
||||
child: Column(
|
||||
children: [
|
||||
const SizedBox(height: 10),
|
||||
MihCardDisplay(
|
||||
shopName: _shopName.value,
|
||||
nickname: "",
|
||||
height: 200),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
ValueListenableBuilder(
|
||||
valueListenable: _shopName,
|
||||
builder: (BuildContext context, String value,
|
||||
Widget? child) {
|
||||
return Visibility(
|
||||
visible: value != "",
|
||||
child: Column(
|
||||
children: [
|
||||
const SizedBox(height: 10),
|
||||
SizedBox(
|
||||
height: 250,
|
||||
child: MihCardDisplay(
|
||||
shopName: _shopName.value,
|
||||
nickname: "",
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
MihTextFormField(
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mih_package_toolkit/mih_package_toolkit.dart';
|
||||
|
||||
class MihCardDisplay extends StatefulWidget {
|
||||
final String shopName;
|
||||
final String nickname;
|
||||
final double height;
|
||||
const MihCardDisplay({
|
||||
super.key,
|
||||
required this.shopName,
|
||||
required this.height,
|
||||
required this.nickname,
|
||||
});
|
||||
|
||||
@@ -20,142 +19,142 @@ class _MihCardDisplayState extends State<MihCardDisplay> {
|
||||
switch (widget.shopName.toLowerCase()) {
|
||||
case "apple tree":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/apple_tree-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/apple_tree.png');
|
||||
case "best before":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/best_before-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/best_before.png');
|
||||
case "checkers":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/checkers-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/checkers.png');
|
||||
case "clicks":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/clicks-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/clicks.png');
|
||||
case "cotton:on":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/cotton_on-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/cotton_on.png');
|
||||
case "dis-chem":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/dischem-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/dischem.png');
|
||||
case "pick n pay":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/pick_n_pay-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/pick_n_pay.png');
|
||||
case "shoprite":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/shoprite-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/shoprite.png');
|
||||
case "spar":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/spar-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/spar.png');
|
||||
case "woolworths":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/woolworths-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/woolworths.png');
|
||||
case "makro":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/makro-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/makro.png');
|
||||
case "fresh stop":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/fresh_stop-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/fresh_stop.png');
|
||||
case "panarottis":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/panarottis-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/panarottis.png');
|
||||
case "shell":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/shell-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/shell.png');
|
||||
case "edgars":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/edgars-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/edgars.png');
|
||||
case "jet":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/jet-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/jet.png');
|
||||
case "spur":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/spur-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/spur.png');
|
||||
case "infinity":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/infinity-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/infinity.png');
|
||||
case "eskom":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/eskom-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/eskom.png');
|
||||
case "+more":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/plus_more-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/plus_more.png');
|
||||
case "bp":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/bp-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/bp.png');
|
||||
case "builders warehouse":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/builders-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/builders.png');
|
||||
case "exclusive books":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/exclusive_books-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/exclusive_books.png');
|
||||
case "pna":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/pna-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/pna.png');
|
||||
case "pq clothing":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/pq-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/pq.png');
|
||||
case "rage":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/rage-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/rage.png');
|
||||
case "sasol":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/sasol-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/sasol.png');
|
||||
case "tfg group":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/tfg-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/tfg.png');
|
||||
case "toys r us":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/toysrus-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/toys_r_us.png');
|
||||
case "leroy merlin":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/leroy_merlin-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/leroy_merlin.png');
|
||||
case "signature cosmetics & fragrances":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/signature_cosmetics-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/signature.png');
|
||||
case "ok foods":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/ok_food-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/ok_foods.png');
|
||||
case "choppies":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/choppies-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/choppies.png');
|
||||
case "boxer":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/boxer-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/boxer.png');
|
||||
case "carrefour":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/carrefour-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/carrefour.png');
|
||||
case "sefalana":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/sefalana-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/sefalana.png');
|
||||
case "big save":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/big_save-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/big_save.png');
|
||||
case "justrite":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/justrite-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/justrite.png');
|
||||
case "naivas":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/naivas-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/naivas.png');
|
||||
case "kero":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/kero-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/kero.png');
|
||||
case "auchan":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/auchan-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/auchan.png');
|
||||
case "woermann brock":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/woermann_brock-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/woermann_brock.png');
|
||||
case "continente":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/continente-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/continente.png');
|
||||
case "fresmart":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/fresmart-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/fresmart.png');
|
||||
case "total energies":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/total_energies-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/total.png');
|
||||
case "engen":
|
||||
return Image.asset(
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/mini/engen-min.png');
|
||||
'lib/mih_package_components/assets/images/loyalty_cards/engen.png');
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
@@ -165,16 +164,34 @@ class _MihCardDisplayState extends State<MihCardDisplay> {
|
||||
Widget build(BuildContext context) {
|
||||
return Visibility(
|
||||
visible: displayLoyaltyCard() != null,
|
||||
child: Column(
|
||||
child: Stack(
|
||||
children: [
|
||||
displayLoyaltyCard() != null ? displayLoyaltyCard()! : SizedBox(),
|
||||
FittedBox(
|
||||
child: Text(
|
||||
widget.nickname,
|
||||
textAlign: TextAlign.center,
|
||||
style: const TextStyle(
|
||||
fontSize: 25,
|
||||
fontWeight: FontWeight.bold,
|
||||
if (displayLoyaltyCard() != null)
|
||||
ClipRRect(
|
||||
borderRadius: BorderRadius.circular(25),
|
||||
child: displayLoyaltyCard()!,
|
||||
),
|
||||
Container(
|
||||
padding: EdgeInsets.symmetric(vertical: 5.0),
|
||||
alignment: Alignment.bottomCenter,
|
||||
child: FittedBox(
|
||||
child: Container(
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: widget.nickname.isNotEmpty ? 8.0 : 0.0),
|
||||
decoration: BoxDecoration(
|
||||
color: MihColors.primary(),
|
||||
borderRadius: BorderRadius.circular(
|
||||
15,
|
||||
),
|
||||
),
|
||||
child: Text(
|
||||
widget.nickname,
|
||||
textAlign: TextAlign.center,
|
||||
style: const TextStyle(
|
||||
fontSize: 25,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
@@ -31,7 +31,7 @@ class _MihWalletState extends State<MihWallet> {
|
||||
context.read<MzansiProfileProvider>();
|
||||
MzansiWalletProvider walletProvider = context.read<MzansiWalletProvider>();
|
||||
if (mzansiProfileProvider.user == null) {
|
||||
await MihDataHelperServices().loadUserDataOnly(
|
||||
await MihDataHelperServices().loadUserDataWithBusinessesData(
|
||||
mzansiProfileProvider,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ class _PatientProfileState extends State<PatientProfile> {
|
||||
PatientManagerProvider patientManagerProvider =
|
||||
context.read<PatientManagerProvider>();
|
||||
if (mzansiProfileProvider.user == null) {
|
||||
await MihDataHelperServices().loadUserDataOnly(
|
||||
await MihDataHelperServices().loadUserDataWithBusinessesData(
|
||||
mzansiProfileProvider,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -17,11 +17,10 @@ class MzansiAiProvider extends ChangeNotifier {
|
||||
}) {
|
||||
ollamaProvider = OllamaProvider(
|
||||
baseUrl: "${AppEnviroment.baseAiUrl}/api",
|
||||
model: AppEnviroment.getEnv() == "Prod"
|
||||
? 'qwen3-vl:8b-instruct'
|
||||
: "qwen3-vl:2b-instruct",
|
||||
model: AppEnviroment.getEnv() == "Prod" ? "qwen3.5:9b" : "qwen3.5:0.8b",
|
||||
think: false,
|
||||
systemPrompt: "---INSTRUCTION START---\n"
|
||||
// "Respond concisely. Do not include any <think> tags or internal monologues./n"
|
||||
"You are Mzansi AI, a helpful and friendly AI assistant running on the 'MIH App'.\n"
|
||||
"The MIH App was created by 'Mzansi Innovation Hub', a South African-based startup company."
|
||||
"Your primary purpose is to assist users by answering general questions and helping with creative writing tasks or any other task a user might have for you.\n"
|
||||
|
||||
@@ -115,7 +115,7 @@ class OllamaProvider extends LlmProvider with ChangeNotifier {
|
||||
request: GenerateChatCompletionRequest(
|
||||
model: _model,
|
||||
messages: allMessages,
|
||||
think: _think,
|
||||
think: _think ?? false,
|
||||
),
|
||||
);
|
||||
// final stream = _client.generateChatCompletionStream(
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'package:ken_logger/ken_logger.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_objects/business.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart';
|
||||
@@ -23,12 +24,11 @@ class MihDataHelperServices {
|
||||
}
|
||||
|
||||
Future<void> getBusinessData(MzansiProfileProvider profileProvider) async {
|
||||
AppUser? user = profileProvider.user;
|
||||
String logoUrl;
|
||||
String signatureUrl;
|
||||
Business? responseBusiness = await MihBusinessDetailsServices()
|
||||
.getBusinessDetailsByUser(profileProvider);
|
||||
if (responseBusiness != null && user!.type == "business") {
|
||||
if (responseBusiness != null) {
|
||||
logoUrl = await MihFileApi.getMinioFileUrl(
|
||||
profileProvider.business!.logo_path,
|
||||
);
|
||||
@@ -58,9 +58,7 @@ class MihDataHelperServices {
|
||||
if (profileProvider.userConsent == null) {
|
||||
await getUserConsentStatus(profileProvider);
|
||||
}
|
||||
if (profileProvider.user != null &&
|
||||
profileProvider.user!.type == "business" &&
|
||||
profileProvider.business == null) {
|
||||
if (profileProvider.user != null && profileProvider.business == null) {
|
||||
await getBusinessData(profileProvider);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,11 +49,11 @@ class MihFileApi {
|
||||
}
|
||||
} catch (e) {
|
||||
// internetConnectionPopUp(context);
|
||||
print("Error getting url");
|
||||
KenLogger.error("Error getting url");
|
||||
} finally {
|
||||
// Navigator.of(context).pop(); // Always pop loading dialog
|
||||
}
|
||||
KenLogger.success("File URL: $fileUrl");
|
||||
// KenLogger.success("File URL: $fileUrl");
|
||||
if (AppEnviroment.getEnv() == "Dev" && kIsWeb) {
|
||||
fileUrl = fileUrl.replaceAll("10.0.2.2", "127.0.0.1");
|
||||
} else if (AppEnviroment.getEnv() == "Dev" && Platform.isIOS) {
|
||||
@@ -61,7 +61,7 @@ class MihFileApi {
|
||||
} else if (AppEnviroment.getEnv() == "Dev" && Platform.isLinux) {
|
||||
fileUrl = fileUrl.replaceAll("10.0.2.2", "127.0.0.1");
|
||||
}
|
||||
KenLogger.success("File URL: $fileUrl");
|
||||
// KenLogger.success("File URL: $fileUrl");
|
||||
return fileUrl;
|
||||
}
|
||||
|
||||
|
||||