Merge pull request #13 from yaso-meth/mzansi-wallet-scanner-fix

Android-Enablement
This commit is contained in:
yaso-meth
2024-11-26 12:28:51 +02:00
committed by GitHub
57 changed files with 171 additions and 116 deletions

View File

@@ -26,7 +26,8 @@ android {
namespace "com.example.patient_manager"
compileSdkVersion flutter.compileSdkVersion
ndkVersion flutter.ndkVersion
compileSdkVersion 34
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8

View File

@@ -1,9 +1,13 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<application
android:label="MIH"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
android:icon="@mipmap/launcher_icon"
android:enableOnBackInvokedCallback="true">
<activity
android:name=".MainActivity"
android:exported="true"

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,5 +1,5 @@
buildscript {
ext.kotlin_version = '1.7.10'
ext.kotlin_version = '2.0.21'
repositories {
google()
mavenCentral()

View File

@@ -0,0 +1,32 @@
# flutter pub run flutter_launcher_icons
flutter_launcher_icons:
image_path: "images/app_icon/mih_app_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: "images/app_icon/mih_app_icon.png"
background_color: "#hexcode"
theme_color: "#hexcode"
windows:
generate: true
image_path: "images/app_icon/mih_app_icon.png"
icon_size: 48 # min:48, max:256, default: 48
macos:
generate: true
image_path: "images/app_icon/mih_app_icon.png"

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs access to location when open.</string>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>

View File

@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import '../mih_env/env.dart';
import '../mih_router/routeGenerator.dart';
import '../mih_theme/mih_theme.dart';
//import 'package:fpjs_pro_plugin/fpjs_pro_plugin.dart';
class MzanziInnovationHub extends StatefulWidget {
@@ -21,7 +22,7 @@ class MzanziInnovationHub extends StatefulWidget {
class _MzanziInnovationHubState extends State<MzanziInnovationHub> {
late ThemeMode _themeMode;
late MyTheme theme;
// final noscreenshot = NoScreenshot.instance;
Color getPrimany() {
return theme.primaryColor();
}
@@ -78,9 +79,6 @@ class _MzanziInnovationHubState extends State<MzanziInnovationHub> {
_themeMode = ThemeMode.dark;
theme = MyTheme();
theme.platform = Theme.of(context).platform;
// if (theme.getPlatform() == "Android") {
// noscreenshot.screenshotOff();
// }
theme.mode = "Dark";
super.initState();
//doInit();

View File

@@ -3,7 +3,7 @@ import 'package:flutter_native_splash/flutter_native_splash.dart';
import '../mih_env/env.dart';
import '../../main.dart';
import 'package:supertokens_flutter/supertokens.dart';
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
// import 'package:flutter_web_plugins/flutter_web_plugins.dart';
void main() async {
WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
@@ -13,7 +13,7 @@ void main() async {
apiDomain: AppEnviroment.baseApiUrl,
apiBasePath: "/auth",
);
setUrlStrategy(PathUrlStrategy());
// setUrlStrategy(PathUrlStrategy());
FlutterNativeSplash.remove();
runApp(const MzanziInnovationHub());
}

View File

@@ -3,7 +3,7 @@ import 'package:flutter_native_splash/flutter_native_splash.dart';
import '../mih_env/env.dart';
import '../../main.dart';
import 'package:supertokens_flutter/supertokens.dart';
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
// import 'package:flutter_web_plugins/flutter_web_plugins.dart';
void main() async {
WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
@@ -13,7 +13,7 @@ void main() async {
apiDomain: AppEnviroment.baseApiUrl,
apiBasePath: "/auth",
);
setUrlStrategy(PathUrlStrategy());
// setUrlStrategy(PathUrlStrategy());
FlutterNativeSplash.remove();
runApp(const MzanziInnovationHub());
}

View File

@@ -13,8 +13,8 @@ abstract class AppEnviroment {
switch (env) {
case Enviroment.dev:
{
baseApiUrl = "http://localhost:8080";
baseFileUrl = "http://localhost:9000";
baseApiUrl = "http://10.0.2.2:8080";
baseFileUrl = "http://10.0.2.2:9000";
whatsappAccessToken =
"EAAPINXuNFdYBOzBjTcvZA2iPXEHbHRF9uNXyP3ihkPRUcBqKNru5g9NKRRKkFaiaITEzO3BMo6CjdUmlDH4qYTW2mzDrZB4Q21ZCEZBgECZCu27vfaOXJZCYQLNxwoXkrZBRYv8ZAP37f69r3z9JxLQxdxn9gwqA3oNZAlBBRapJQzxOr6pZBTdI3bbjbu17ZBIwRcF4JCqPDCNLEZCI3bmHwEd2i2niNMYZD";
//fingerPrintPluginKey = 'h5X7a5j14iUZCobI1ZeX';

View File

@@ -8,7 +8,7 @@ import '../../mih_components/mih_layout/mih_tile.dart';
import '../../main.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import "package:universal_html/js.dart" as js;
import 'dart:html' as html;
// import 'dart:html' as html;
class MIHAbout extends StatefulWidget {
const MIHAbout({
@@ -113,9 +113,9 @@ class _MIHAboutState extends State<MIHAbout> {
height: 50,
child: MIHButton(
onTap: () {
html.window.open(
'https://www.youtube.com/playlist?list=PLuT35kJIui0H5kXjxNOZlHoOPZbQLr4qh',
'new tab');
// html.window.open(
// 'https://www.youtube.com/playlist?list=PLuT35kJIui0H5kXjxNOZlHoOPZbQLr4qh',
// 'new tab');
},
buttonText: "MIH Beginners Guide",
buttonColor:
@@ -335,8 +335,8 @@ class _MIHAboutState extends State<MIHAbout> {
List<Widget> socials = [];
socials.add(MIHTile(
onTap: () {
html.window
.open('https://www.tiktok.com/@mzansi.innovation.hub', 'new tab');
// html.window
// .open('https://www.tiktok.com/@mzansi.innovation.hub', 'new tab');
},
tileName: "TikTok",
tileIcon: Center(
@@ -352,8 +352,8 @@ class _MIHAboutState extends State<MIHAbout> {
//==================================================================
socials.add(MIHTile(
onTap: () {
html.window
.open('https://www.instagram.com/mzansi.innovation.hub', 'new tab');
// html.window
// .open('https://www.instagram.com/mzansi.innovation.hub', 'new tab');
},
tileName: "Instagram",
tileIcon: Center(
@@ -369,8 +369,8 @@ class _MIHAboutState extends State<MIHAbout> {
//==================================================================
socials.add(MIHTile(
onTap: () {
html.window.open(
'https://whatsapp.com/channel/0029Vax3INCIyPtMn8KgeM2F', 'new tab');
// html.window.open(
// 'https://whatsapp.com/channel/0029Vax3INCIyPtMn8KgeM2F', 'new tab');
},
tileName: "Whatsapp",
tileIcon: Center(
@@ -386,8 +386,8 @@ class _MIHAboutState extends State<MIHAbout> {
//==================================================================
socials.add(MIHTile(
onTap: () {
html.window
.open('https://www.youtube.com/@mzansiinnovationhub', 'new tab');
// html.window
// .open('https://www.youtube.com/@mzansiinnovationhub', 'new tab');
},
tileName: "YouTube",
tileIcon: Center(
@@ -403,7 +403,7 @@ class _MIHAboutState extends State<MIHAbout> {
//==================================================================
socials.add(MIHTile(
onTap: () {
html.window.open('https://x.com/mzansi_inno_hub', 'new tab');
// html.window.open('https://x.com/mzansi_inno_hub', 'new tab');
},
tileName: "X",
tileIcon: Center(
@@ -419,9 +419,9 @@ class _MIHAboutState extends State<MIHAbout> {
//==================================================================
socials.add(MIHTile(
onTap: () {
html.window.open(
'https://www.linkedin.com/company/mzansi-innovation-hub/',
'new tab');
// html.window.open(
// 'https://www.linkedin.com/company/mzansi-innovation-hub/',
// 'new tab');
},
tileName: "LinkedIn",
tileIcon: Center(
@@ -437,9 +437,9 @@ class _MIHAboutState extends State<MIHAbout> {
//==================================================================
socials.add(MIHTile(
onTap: () {
html.window.open(
'https://www.facebook.com/profile.php?id=61565345762136',
'new tab');
// html.window.open(
// 'https://www.facebook.com/profile.php?id=61565345762136',
// 'new tab');
},
tileName: "FaceBook",
tileIcon: Center(

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:supertokens_flutter/supertokens.dart';
import 'package:no_screenshot/no_screenshot.dart';
import '../mih_home/mih_profile_getter.dart';
import 'signin_or_register.dart';
@@ -17,6 +17,8 @@ class AuthCheck extends StatefulWidget {
}
class _AuthCheckState extends State<AuthCheck> {
final _noScreenshot = NoScreenshot.instance;
Future<bool> doesSessionExist() async {
//wait
//await Future.delayed(const Duration(seconds: 1));
@@ -24,9 +26,15 @@ class _AuthCheckState extends State<AuthCheck> {
return signedIn;
}
void disableScreenshot() async {
bool result = await _noScreenshot.screenshotOff();
print('Screenshot Off: $result');
}
@override
void initState() {
//signedIn = doesSessionExist();
disableScreenshot();
super.initState();
}

View File

@@ -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"
}
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 520 B

After

Width:  |  Height:  |  Size: 991 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -225,6 +225,14 @@ packages:
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:
@@ -406,6 +414,14 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_launcher_icons:
dependency: "direct main"
description:
name: flutter_launcher_icons
sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea"
url: "https://pub.dev"
source: hosted
version: "0.13.1"
flutter_lints:
dependency: "direct dev"
description:
@@ -1389,14 +1405,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.2"
url_strategy:
dependency: "direct main"
description:
name: url_strategy
sha256: "6eff69fa0900b731a23552b38b54389f399d247dbb0998f2cbdf25bef6790a7c"
url: "https://pub.dev"
source: hosted
version: "0.3.0"
uuid:
dependency: transitive
description:

View File

@@ -52,7 +52,7 @@ dependencies:
intl: ^0.19.0
flutter_native_splash: ^2.4.1
#google_maps_flutter_web: ^0.5.10
url_strategy: ^0.3.0
# url_strategy: ^0.3.0
no_screenshot: ^0.3.1
printing: ^5.13.3
pdf: ^3.11.1
@@ -64,6 +64,7 @@ dependencies:
syncfusion_flutter_barcodes: ^26.2.10
simple_barcode_scanner: ^0.2.5
mobile_scanner: ^6.0.2
flutter_launcher_icons: ^0.13.1
dev_dependencies:
flutter_test:
@@ -94,6 +95,7 @@ flutter:
assets:
- images/
- images/loyalty_cards/
- images/app_icon/
# - images/a_dot_ham.jpeg
# An image asset can refer to one or more resolution-specific "variants", see

BIN
Frontend/web/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 991 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View File

@@ -3,30 +3,30 @@
"short_name": "MIH",
"start_url": ".",
"display": "standalone",
"background_color": "#3A4454",
"theme_color": "#3A4454",
"background_color": "#hexcode",
"theme_color": "#hexcode",
"description": "Digitizing Mzansi one process at a time. Discover essential Mzansi apps to streamline your personal and professional life. Simplify your daily tasks with our user-friendly solutions.",
"orientation": "any",
"prefer_related_applications": false,
"icons": [
{
"src": "icons/android-chrome-192x192.png",
"src": "icons/Icon-192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "icons/android-chrome-512x512.png",
"src": "icons/Icon-512.png",
"sizes": "512x512",
"type": "image/png"
},
{
"src": "icons/android-chrome-192x192.png",
"src": "icons/Icon-maskable-192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "icons/android-chrome-512x512.png",
"src": "icons/Icon-maskable-512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -93,7 +93,7 @@ async def pull_File_from_user(app_id: str, folder: str, file_name: str, env: str
# return {"message": error}
if(env == "Dev"):
return {
"minioURL": f"http://localhost:9000/mih/{app_id}/{folder}/{file_name}",
"minioURL": f"http://10.0.2.2:9000/mih/{app_id}/{folder}/{file_name}",
}
else:
return {