Commit 9c316aeb authored by Dio Maulana's avatar Dio Maulana

native splash fixed

parent b641f457
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:gravity="fill" android:src="@drawable/background"/>
</item>
<item>
<bitmap android:gravity="center" android:src="@drawable/splash"/>
</item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:gravity="fill" android:src="@drawable/background"/>
</item>
<item>
<bitmap android:gravity="center" android:src="@drawable/splash"/>
</item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen --> <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item>
<item android:drawable="?android:colorBackground" /> <bitmap android:gravity="fill" android:src="@drawable/background"/>
</item>
<!-- You can insert your own image assets here --> <item>
<!-- <item> <bitmap android:gravity="center" android:src="@drawable/splash"/>
<bitmap </item>
android:gravity="center" </layer-list>
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen --> <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item>
<item android:drawable="@android:color/white" /> <bitmap android:gravity="fill" android:src="@drawable/background"/>
</item>
<!-- You can insert your own image assets here --> <item>
<!-- <item> <bitmap android:gravity="center" android:src="@drawable/splash"/>
<bitmap </item>
android:gravity="center" </layer-list>
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:windowSplashScreenBackground">#ffffff</item>
<item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item>
<item name="android:windowSplashScreenIconBackgroundColor">#ffffff</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on --> <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar"> <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when <!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame --> the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item> <item name="android:windowBackground">@drawable/launch_background</item>
</style> <item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started. <!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its Flutter UI initializes, as well as behind your Flutter UI while its
running. running.
This Theme is only used starting with V2 of Flutter's Android embedding. --> This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar"> <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item> <item name="android:windowBackground">?android:colorBackground</item>
</style> </style>
</resources> </resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:windowSplashScreenBackground">#ffffff</item>
<item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item>
<item name="android:windowSplashScreenIconBackgroundColor">#ffffff</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off --> <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar"> <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when <!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame --> the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item> <item name="android:windowBackground">@drawable/launch_background</item>
</style> <item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started. <!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its Flutter UI initializes, as well as behind your Flutter UI while its
running. running.
This Theme is only used starting with V2 of Flutter's Android embedding. --> This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar"> <style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item> <item name="android:windowBackground">?android:colorBackground</item>
</style> </style>
</resources> </resources>
buildscript { buildscript {
ext.kotlin_version = '1.6.10' ext.kotlin_version = '1.6.10'
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:7.1.2' classpath 'com.android.tools.build:gradle:7.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
} }
} }
allprojects { allprojects {
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
} }
} }
rootProject.buildDir = '../build' rootProject.buildDir = '../build'
subprojects { subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}" project.buildDir = "${rootProject.buildDir}/${project.name}"
} }
subprojects { subprojects {
project.evaluationDependsOn(':app') project.evaluationDependsOn(':app')
} }
task clean(type: Delete) { tasks.register("clean", Delete) {
delete rootProject.buildDir delete rootProject.buildDir
} }
flutter_native_splash:
color: "#ffffff"
image: assets/images/excelso_logo_green.png
# branding: assets/images/excelso_logo_green.png
color_dark: "#ffffff"
image_dark: assets/images/excelso_logo_green.png
# branding_dark: assets/images/excelso_logo_green.png
android_12:
image: assets/images/excelso_logo_green.png
icon_background_color: "#ffffff"
image_dark: assets/images/excelso_logo_green.png
icon_background_color_dark: "#ffffff"
web: true
{
"images" : [
{
"filename" : "background.png",
"idiom" : "universal"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"filename" : "darkbackground.png",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{ {
"images" : [ "images" : [
{ {
"idiom" : "universal", "filename" : "LaunchImage.png",
"filename" : "LaunchImage.png", "idiom" : "universal",
"scale" : "1x" "scale" : "1x"
}, },
{ {
"idiom" : "universal", "appearances" : [
"filename" : "LaunchImage@2x.png", {
"scale" : "2x" "appearance" : "luminosity",
}, "value" : "dark"
{ }
"idiom" : "universal", ],
"filename" : "LaunchImage@3x.png", "filename" : "LaunchImageDark.png",
"scale" : "3x" "idiom" : "universal",
} "scale" : "1x"
], },
"info" : { {
"version" : 1, "filename" : "LaunchImage@2x.png",
"author" : "xcode" "idiom" : "universal",
} "scale" : "2x"
} },
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"filename" : "LaunchImageDark@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "LaunchImage@3x.png",
"idiom" : "universal",
"scale" : "3x"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"filename" : "LaunchImageDark@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<dependencies> <dependencies>
<deployment identifier="iOS"/> <deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
</dependencies> </dependencies>
<scenes> <scenes>
<!--View Controller--> <!--View Controller-->
<scene sceneID="EHf-IW-A2E"> <scene sceneID="EHf-IW-A2E">
<objects> <objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController"> <viewController id="01J-lp-oVM" sceneMemberID="viewController">
<layoutGuides> <layoutGuides>
<viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/> <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
<viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/> <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
</layoutGuides> </layoutGuides>
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3"> <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4"> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" image="LaunchBackground" translatesAutoresizingMaskIntoConstraints="NO" id="tWc-Dq-wcI"/>
</imageView> <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4"></imageView>
</subviews> </subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints> <constraints>
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/> <constraint firstItem="YRO-k0-Ey4" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leading" id="3T2-ad-Qdv"/>
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/> <constraint firstItem="tWc-Dq-wcI" firstAttribute="bottom" secondItem="Ze5-6b-2t3" secondAttribute="bottom" id="RPx-PI-7Xg"/>
</constraints> <constraint firstItem="tWc-Dq-wcI" firstAttribute="top" secondItem="Ze5-6b-2t3" secondAttribute="top" id="SdS-ul-q2q"/>
</view> <constraint firstAttribute="trailing" secondItem="tWc-Dq-wcI" secondAttribute="trailing" id="Swv-Gf-Rwn"/>
</viewController> <constraint firstAttribute="trailing" secondItem="YRO-k0-Ey4" secondAttribute="trailing" id="TQA-XW-tRk"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/> <constraint firstItem="YRO-k0-Ey4" firstAttribute="bottom" secondItem="Ze5-6b-2t3" secondAttribute="bottom" id="duK-uY-Gun"/>
</objects> <constraint firstItem="tWc-Dq-wcI" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leading" id="kV7-tw-vXt"/>
<point key="canvasLocation" x="53" y="375"/> <constraint firstItem="YRO-k0-Ey4" firstAttribute="top" secondItem="Ze5-6b-2t3" secondAttribute="top" id="xPn-NY-SIU"/>
</scene> </constraints>
</scenes> </view>
<resources> </viewController>
<image name="LaunchImage" width="168" height="185"/> <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</resources> </objects>
</document> <point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
<resources>
<image name="LaunchImage" width="209" height="80"/>
<image name="LaunchBackground" width="1" height="1"/>
</resources>
</document>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string> <string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key> <key>CFBundleDisplayName</key>
<string>Excelso Attendance</string> <string>Excelso Attendance</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string> <string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>excelso_attendance</string> <string>excelso_attendance</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string> <string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string> <string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key> <key>LSRequiresIPhoneOS</key>
<true/> <true/>
<key>UILaunchStoryboardName</key> <key>UILaunchStoryboardName</key>
<string>LaunchScreen</string> <string>LaunchScreen</string>
<key>UIMainStoryboardFile</key> <key>UIMainStoryboardFile</key>
<string>Main</string> <string>Main</string>
<key>UISupportedInterfaceOrientations</key> <key>UISupportedInterfaceOrientations</key>
<array> <array>
<string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>UISupportedInterfaceOrientations~ipad</key> <key>UISupportedInterfaceOrientations~ipad</key>
<array> <array>
<string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string> <string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>UIViewControllerBasedStatusBarAppearance</key> <key>UIViewControllerBasedStatusBarAppearance</key>
<false/> <false/>
<key>CADisableMinimumFrameDurationOnPhone</key> <key>CADisableMinimumFrameDurationOnPhone</key>
<true/> <true/>
<key>UIApplicationSupportsIndirectInputEvents</key> <key>UIApplicationSupportsIndirectInputEvents</key>
<true/> <true/>
</dict> <key>UIStatusBarHidden</key>
</plist> <false/>
</dict>
</plist>
...@@ -34,7 +34,7 @@ class _ScreenResponsiveState extends State<ScreenResponsive> { ...@@ -34,7 +34,7 @@ class _ScreenResponsiveState extends State<ScreenResponsive> {
width: leftRight, width: leftRight,
height: MediaQuery.of(context).size.height, height: MediaQuery.of(context).size.height,
color: (widget.sideColor == null) color: (widget.sideColor == null)
? ColorManager.primary ? ColorManager.grey
: widget.sideColor, : widget.sideColor,
), ),
SizedBox( SizedBox(
...@@ -45,7 +45,7 @@ class _ScreenResponsiveState extends State<ScreenResponsive> { ...@@ -45,7 +45,7 @@ class _ScreenResponsiveState extends State<ScreenResponsive> {
width: leftRight, width: leftRight,
height: MediaQuery.of(context).size.height, height: MediaQuery.of(context).size.height,
color: (widget.sideColor == null) color: (widget.sideColor == null)
? ColorManager.primary ? ColorManager.grey
: widget.sideColor, : widget.sideColor,
) )
], ],
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
import 'dart:async'; import 'dart:async';
import 'dart:io'; import 'dart:io';
import 'package:excelso_attendance/helper/widget_responsive.dart';
import 'package:excelso_attendance/main.dart'; import 'package:excelso_attendance/main.dart';
import 'package:flutter/foundation.dart' show kIsWeb; import 'package:flutter/foundation.dart' show kIsWeb;
import 'dart:typed_data'; import 'dart:typed_data';
...@@ -93,261 +94,267 @@ class _AbsentCameraViewState extends State<AbsentCameraView> { ...@@ -93,261 +94,267 @@ class _AbsentCameraViewState extends State<AbsentCameraView> {
Size size = MediaQuery.of(context).size; Size size = MediaQuery.of(context).size;
return Scaffold( return Scaffold(
backgroundColor: ColorManager.backgroundColor, backgroundColor: ColorManager.backgroundColor,
body: Column( body: ScreenResponsive(
mainAxisAlignment: MainAxisAlignment.center, widget: bodyWidget(size),
children: [ widthScreen: MediaQuery.of(context).size.width,
(_initializeControllerFuture != null) ),
? FutureBuilder( );
future: _initializeControllerFuture, }
builder: ((context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) { Column bodyWidget(Size size) {
return Stack( return Column(
children: [ mainAxisAlignment: MainAxisAlignment.center,
Container( children: [
width: size.width, (_initializeControllerFuture != null)
height: size.height, ? FutureBuilder(
padding: EdgeInsets.only( future: _initializeControllerFuture,
top: AppPadding.safeAreaTop(context) + 40), builder: ((context, snapshot) {
child: (pictureIsTaken) if (snapshot.connectionState == ConnectionState.done) {
? (isPhone) return Stack(
? Image.file( children: [
File(imagePathPhone!), Container(
fit: BoxFit.fill, width: size.width,
) height: size.height,
: Image.memory( padding: EdgeInsets.only(
imagePath!, top: AppPadding.safeAreaTop(context) + 40),
fit: BoxFit.fill, child: (pictureIsTaken)
) ? (isPhone)
: CameraPreview( ? Image.file(
_controller!, File(imagePathPhone!),
), fit: BoxFit.fill,
), )
Container( : Image.memory(
width: size.width, imagePath!,
height: size.height, fit: BoxFit.fill,
padding: EdgeInsets.only( )
top: AppPadding.safeAreaTop(context) + 40), : CameraPreview(
child: Image( _controller!,
fit: BoxFit.fill, ),
image: AssetImage(Assets.frameOverlay), ),
), Container(
width: size.width,
height: size.height,
padding: EdgeInsets.only(
top: AppPadding.safeAreaTop(context) + 40),
child: Image(
fit: BoxFit.fill,
image: AssetImage(Assets.frameOverlay),
), ),
Container( ),
width: size.width, Container(
height: size.height, width: size.width,
child: Column( height: size.height,
children: [ child: Column(
Container( children: [
height: AppPadding.safeAreaTop(context) + 60, Container(
width: double.infinity, height: AppPadding.safeAreaTop(context) + 60,
decoration: BoxDecoration( width: double.infinity,
borderRadius: const BorderRadius.only( decoration: BoxDecoration(
bottomRight: Radius.circular(20), borderRadius: const BorderRadius.only(
bottomLeft: Radius.circular(20), bottomRight: Radius.circular(20),
), bottomLeft: Radius.circular(20),
color: ColorManager.primary,
), ),
child: Container( color: ColorManager.primary,
padding: EdgeInsets.symmetric( ),
horizontal: AppPadding.p20), child: Container(
margin: EdgeInsets.only( padding: EdgeInsets.symmetric(
top: AppPadding.safeAreaTop(context), horizontal: AppPadding.p20),
), margin: EdgeInsets.only(
child: Row( top: AppPadding.safeAreaTop(context),
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
GestureDetector(
onTap: () {
Navigator.pop(context);
},
child: const Icon(
Icons.arrow_back,
color: Colors.white,
size: 24,
),
),
Container(
margin: EdgeInsets.only(
left: AppMargin.m16,
),
child: Text(
"Verifikasi Wajah ${cameras!.length}",
style: getBoldStyle(
color: Colors.white,
fontSize: 17,
),
),
)
],
),
),
),
const SizedBox(
height: 15,
),
WidgetAbsentAndTime(
isIn: widget.isIn,
outletName: widget.outletName,
),
const Spacer(),
(pictureIsTaken)
? Column(
crossAxisAlignment: crossAxisAlignment:
CrossAxisAlignment.center, CrossAxisAlignment.center,
children: [ children: [
GestureDetector( Container(
onTap: () { width: 100,
Navigator.pop(context); child: const CustomButton(
}, text: "Submit"),
child: const Icon(
Icons.arrow_back,
color: Colors.white,
size: 24,
),
), ),
Container( Container(
margin: EdgeInsets.only( width: 100,
left: AppMargin.m16, margin: const EdgeInsets.only(
top: 10,
), ),
child: Text( child: GestureDetector(
"Verifikasi Wajah ${cameras!.length}", onTap: () {
style: getBoldStyle( setState(() {
color: Colors.white, pictureIsTaken = false;
fontSize: 17, });
},
child: CustomButton(
text: "Foto Ulang",
colorButton: ColorManager.grey,
), ),
), ),
) ),
], ],
), )
), : Row(
), mainAxisAlignment:
const SizedBox( MainAxisAlignment.center,
height: 15, children: [
), // GestureDetector(
WidgetAbsentAndTime( // onTap: () {
isIn: widget.isIn, // if (flashMode ==
outletName: widget.outletName, // FlashMode.always) {
), // flashMode = FlashMode.off;
const Spacer(), // } else {
(pictureIsTaken) // flashMode = FlashMode.always;
? Column( // }
crossAxisAlignment: // setState(() {
CrossAxisAlignment.center, // _controller!
children: [ // .setFlashMode(flashMode);
Container( // });
width: 100, // },
child: const CustomButton( // child: Icon(
text: "Submit"), // Icons.flash_auto,
), // size: 35,
Container( // color: ColorManager.primary,
width: 100, // ),
margin: const EdgeInsets.only( // ),
top: 10, const SizedBox(
), width: 35,
child: GestureDetector( ),
onTap: () { const SizedBox(
setState(() { width: 20,
pictureIsTaken = false; ),
}); InkWell(
}, onTap: () async {
child: CustomButton( try {
text: "Foto Ulang", await _initializeControllerFuture;
colorButton: ColorManager.grey,
),
),
),
],
)
: Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: [
// GestureDetector(
// onTap: () {
// if (flashMode ==
// FlashMode.always) {
// flashMode = FlashMode.off;
// } else {
// flashMode = FlashMode.always;
// }
// setState(() {
// _controller!
// .setFlashMode(flashMode);
// });
// },
// child: Icon(
// Icons.flash_auto,
// size: 35,
// color: ColorManager.primary,
// ),
// ),
const SizedBox(
width: 35,
),
const SizedBox(
width: 20,
),
InkWell(
onTap: () async {
try {
await _initializeControllerFuture;
// ambil imagenya // ambil imagenya
XFile image = await _controller! XFile image = await _controller!
.takePicture(); .takePicture();
String? imageResultPhone; String? imageResultPhone;
Uint8List? imageResultWeb; Uint8List? imageResultWeb;
if (isPhone) { if (isPhone) {
imageResultPhone = image.path; imageResultPhone = image.path;
} else { } else {
imageResultWeb = imageResultWeb =
await image.readAsBytes(); await image.readAsBytes();
} }
// kalau gak ke ambil gak ngelakuin aksi apa2 // kalau gak ke ambil gak ngelakuin aksi apa2
if (!mounted) return; if (!mounted) return;
setState(() { setState(() {
pictureIsTaken = true; pictureIsTaken = true;
imagePath = imageResultWeb; imagePath = imageResultWeb;
imagePathPhone = imagePathPhone =
imageResultPhone; imageResultPhone;
}); });
} catch (e) { } catch (e) {
if (debug) { if (debug) {
// ignore: avoid_print // ignore: avoid_print
print( print(
"TERJADI KESALAHAAN SAAT AMBIL GAMBER, ERROR: $e"); "TERJADI KESALAHAAN SAAT AMBIL GAMBER, ERROR: $e");
}
} }
}, }
child: Container( },
width: 80, child: Container(
height: 80, width: 80,
decoration: BoxDecoration( height: 80,
borderRadius: decoration: BoxDecoration(
BorderRadius.circular(100), borderRadius:
border: Border.all( BorderRadius.circular(100),
width: 1.5, border: Border.all(
color: Colors.black, width: 1.5,
), color: Colors.black,
color: Colors.red,
), ),
color: Colors.red,
), ),
), ),
const SizedBox( ),
width: 20, const SizedBox(
), width: 20,
GestureDetector( ),
onTap: () { GestureDetector(
if (cameras!.length > 1) { onTap: () {
setState(() { if (cameras!.length > 1) {
if (_cameraDescription == setState(() {
cameras![0]) { if (_cameraDescription ==
_cameraDescription = cameras![0]) {
cameras![1]; _cameraDescription =
} else { cameras![1];
_cameraDescription = } else {
cameras![0]; _cameraDescription =
} cameras![0];
}
_controller = _controller = CameraController(
CameraController( // Get a specific camera from the list of available cameras.
// Get a specific camera from the list of available cameras. _cameraDescription!,
_cameraDescription!, // Define the resolution to use.
// Define the resolution to use. ResolutionPreset.medium,
ResolutionPreset.medium, );
); _initializeControllerFuture =
_initializeControllerFuture = _controller!.initialize();
_controller!.initialize(); });
}); }
} },
}, child: Icon(
child: Icon( Icons.switch_camera_outlined,
Icons.switch_camera_outlined, size: 35,
size: 35, color: ColorManager.primary,
color: ColorManager.primary, ),
), )
) ],
], ),
), const SizedBox(
const SizedBox( height: 30,
height: 30, )
) ],
],
),
), ),
], ),
); ],
} else { );
return const Center(child: CircularProgressIndicator()); } else {
} return const Center(child: CircularProgressIndicator());
}), }
) }),
: const Center(child: CircularProgressIndicator()) )
], : const Center(child: CircularProgressIndicator())
), ],
); );
} }
} }
......
import 'package:excelso_attendance/helper/arguments/route_args.dart'; import 'package:excelso_attendance/helper/arguments/route_args.dart';
import 'package:excelso_attendance/helper/component/button.dart'; import 'package:excelso_attendance/helper/component/button.dart';
import 'package:excelso_attendance/helper/component/text_field.dart'; import 'package:excelso_attendance/helper/component/text_field.dart';
import 'package:excelso_attendance/helper/widget_responsive.dart';
import 'package:excelso_attendance/resource/assets.dart'; import 'package:excelso_attendance/resource/assets.dart';
import 'package:excelso_attendance/resource/colors.dart'; import 'package:excelso_attendance/resource/colors.dart';
import 'package:excelso_attendance/resource/font.dart'; import 'package:excelso_attendance/resource/font.dart';
...@@ -18,245 +19,260 @@ class HomeView extends StatelessWidget { ...@@ -18,245 +19,260 @@ class HomeView extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: ColorManager.backgroundColor, backgroundColor: ColorManager.backgroundColor,
body: Column( body: ScreenResponsive(
children: [ widget: BodyWidget(nikController: nikController),
Column( widthScreen: MediaQuery.of(context).size.width,
mainAxisSize: MainAxisSize.min, ),
children: [ );
Container( }
padding: EdgeInsets.only( }
top: AppPadding.safeAreaTop(context) + 10,
bottom: 20, class BodyWidget extends StatelessWidget {
const BodyWidget({
super.key,
required this.nikController,
});
final TextEditingController nikController;
@override
Widget build(BuildContext context) {
return Column(
children: [
Column(
mainAxisSize: MainAxisSize.min,
children: [
Container(
padding: EdgeInsets.only(
top: AppPadding.safeAreaTop(context) + 10,
bottom: 20,
),
decoration: BoxDecoration(
color: ColorManager.primary,
borderRadius: const BorderRadius.only(
bottomLeft: Radius.circular(20),
bottomRight: Radius.circular(20),
), ),
decoration: BoxDecoration( ),
color: ColorManager.primary, child: Center(
borderRadius: const BorderRadius.only( child: Image(
bottomLeft: Radius.circular(20), width: 36,
bottomRight: Radius.circular(20), height: 36,
image: AssetImage(
Assets.excelsoLogo,
), ),
), ),
child: Center( ),
child: Image( )
width: 36, ],
height: 36, ),
image: AssetImage( Expanded(
Assets.excelsoLogo, child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
margin: EdgeInsets.only(
top: AppMargin.m16,
),
child: Text(
"Attendance",
style: getSemiBoldStyle(
color: Colors.black,
fontSize: 20,
fontFamily: FontConstants.montserrat,
), ),
), ),
), ),
) Container(
], margin: EdgeInsets.only(
), top: AppMargin.m16,
Expanded( left: AppMargin.m20,
child: SingleChildScrollView( right: AppMargin.m20,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
margin: EdgeInsets.only(
top: AppMargin.m16,
),
child: Text(
"Attendance",
style: getSemiBoldStyle(
color: Colors.black,
fontSize: 20,
fontFamily: FontConstants.montserrat,
),
),
), ),
Container( decoration: BoxDecoration(
margin: EdgeInsets.only( borderRadius: BorderRadius.circular(20),
top: AppMargin.m16, color: ColorManager.primary,
left: AppMargin.m20, ),
right: AppMargin.m20, child: Container(
width: double.infinity,
padding: const EdgeInsets.symmetric(
vertical: 20,
horizontal: 20,
), ),
decoration: BoxDecoration( child: const TimerWidget(),
borderRadius: BorderRadius.circular(20), ),
color: ColorManager.primary, ),
Container(
margin: EdgeInsets.only(
top: AppMargin.m16,
left: AppMargin.m20,
right: AppMargin.m20,
),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
border: Border.all(
width: 0.2,
color: Colors.grey,
), ),
child: Container( color: ColorManager.backgroundColor,
width: double.infinity, boxShadow: [
padding: const EdgeInsets.symmetric( BoxShadow(
vertical: 20, color: Colors.grey.withOpacity(0.3),
horizontal: 20, blurRadius: 2,
offset: const Offset(5, 5),
), ),
child: const TimerWidget(), ],
),
), ),
Container( child: Container(
margin: EdgeInsets.only( width: double.infinity,
top: AppMargin.m16, padding: EdgeInsets.all(
left: AppMargin.m20, AppPadding.p15,
right: AppMargin.m20,
), ),
decoration: BoxDecoration( child: Column(
borderRadius: BorderRadius.circular(8), crossAxisAlignment: CrossAxisAlignment.start,
border: Border.all( children: [
width: 0.2, Text(
color: Colors.grey, "Pilih Outlet",
), style: getSemiBoldStyle(
color: ColorManager.backgroundColor, color: Colors.black,
boxShadow: [ fontSize: 16,
BoxShadow( ),
color: Colors.grey.withOpacity(0.3),
blurRadius: 2,
offset: const Offset(5, 5),
), ),
], Container(
), margin: const EdgeInsets.only(
child: Container( top: 10,
width: double.infinity,
padding: EdgeInsets.all(
AppPadding.p15,
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
"Pilih Outlet",
style: getSemiBoldStyle(
color: Colors.black,
fontSize: 16,
),
), ),
Container( width: double.infinity,
margin: const EdgeInsets.only( decoration: BoxDecoration(
top: 10, border: Border.all(width: 0.2, color: Colors.grey),
), borderRadius: BorderRadius.circular(5),
width: double.infinity, color: ColorManager.backgroundColor,
decoration: BoxDecoration( ),
border: child: GestureDetector(
Border.all(width: 0.2, color: Colors.grey), onTap: () {
borderRadius: BorderRadius.circular(5), showModalBottomSheet(
color: ColorManager.backgroundColor, backgroundColor: ColorManager.backgroundColor,
), isScrollControlled: true,
child: GestureDetector( context: context,
onTap: () { builder: (c) {
showModalBottomSheet( return const WidgetSelectOutlet();
backgroundColor: });
ColorManager.backgroundColor, },
isScrollControlled: true, child: Container(
context: context, padding: const EdgeInsets.symmetric(
builder: (c) { horizontal: 10,
return const WidgetSelectOutlet(); vertical: 15,
}); ),
}, child: Row(
child: Container( mainAxisAlignment:
padding: const EdgeInsets.symmetric( MainAxisAlignment.spaceBetween,
horizontal: 10, children: [
vertical: 15, Text(
), "CPM",
child: Row( style: getRegularStyle(
mainAxisAlignment: color: ColorManager.grey,
MainAxisAlignment.spaceBetween, fontSize: 16,
children: [
Text(
"CPM",
style: getRegularStyle(
color: ColorManager.grey,
fontSize: 16,
),
), ),
// Icon( ),
// Icons.arrow_drop_down, // Icon(
// color: ColorManager.grey, // Icons.arrow_drop_down,
// size: 30, // color: ColorManager.grey,
// ), // size: 30,
Text( // ),
"Ubah", Text(
style: getRegularStyle( "Ubah",
color: ColorManager.link, style: getRegularStyle(
), color: ColorManager.link,
) ),
], )
), ],
), ),
), ),
), ),
], ),
), ],
), ),
), ),
Container( ),
margin: EdgeInsets.only( Container(
top: AppMargin.m16, margin: EdgeInsets.only(
left: AppMargin.m20, top: AppMargin.m16,
right: AppMargin.m20, left: AppMargin.m20,
right: AppMargin.m20,
),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
border: Border.all(
width: 0.2,
color: Colors.grey,
), ),
decoration: BoxDecoration( color: ColorManager.backgroundColor,
borderRadius: BorderRadius.circular(8), boxShadow: [
border: Border.all( BoxShadow(
width: 0.2, color: Colors.grey.withOpacity(0.3),
color: Colors.grey, blurRadius: 2,
offset: const Offset(5, 5),
), ),
color: ColorManager.backgroundColor, ],
boxShadow: [ ),
BoxShadow( child: Container(
color: Colors.grey.withOpacity(0.3), width: double.infinity,
blurRadius: 2, padding: EdgeInsets.all(
offset: const Offset(5, 5), AppPadding.p15,
),
],
), ),
child: Container( child: InputTextField(
width: double.infinity, controller: nikController,
padding: EdgeInsets.all( labelText: "NIK",
AppPadding.p15, borderSideActive: true,
), hintText: "NIK",
child: InputTextField(
controller: nikController,
labelText: "NIK",
borderSideActive: true,
hintText: "NIK",
),
), ),
), ),
Container( ),
padding: EdgeInsets.symmetric(horizontal: AppPadding.p20), Container(
margin: EdgeInsets.only( padding: EdgeInsets.symmetric(horizontal: AppPadding.p20),
top: AppMargin.m16, margin: EdgeInsets.only(
), top: AppMargin.m16,
child: Row( ),
children: [ child: Row(
Expanded( children: [
child: CustomButton( Expanded(
text: "Masuk", child: CustomButton(
text: "Masuk",
onTap: () {
showModalBottomSheet(
backgroundColor: ColorManager.backgroundColor,
isScrollControlled: true,
context: context,
builder: (c) {
return const WidgetSelectShift();
});
},
)),
SizedBox(
width: AppMargin.m20,
),
Expanded(
child: CustomButton(
text: "Keluar",
onTap: () { onTap: () {
showModalBottomSheet( Navigator.pushNamed(
backgroundColor: ColorManager.backgroundColor, context,
isScrollControlled: true, Routes.absentCamera,
context: context, arguments: AbsentCameraArguments(
builder: (c) { isIn: false, outletName: "CRM"),
return const WidgetSelectShift(); );
});
}, },
)),
SizedBox(
width: AppMargin.m20,
),
Expanded(
child: CustomButton(
text: "Keluar",
onTap: () {
Navigator.pushNamed(
context,
Routes.absentCamera,
arguments: AbsentCameraArguments(
isIn: false, outletName: "CRM"),
);
},
),
), ),
], ),
), ],
) ),
], )
), ],
), ),
) ),
], )
), ],
); );
} }
} }
......
import 'package:excelso_attendance/helper/widget_responsive.dart';
import 'package:excelso_attendance/resource/assets.dart'; import 'package:excelso_attendance/resource/assets.dart';
import 'package:excelso_attendance/resource/colors.dart'; import 'package:excelso_attendance/resource/colors.dart';
import 'package:excelso_attendance/resource/font.dart'; import 'package:excelso_attendance/resource/font.dart';
...@@ -13,125 +14,139 @@ class OnBoardingView extends StatelessWidget { ...@@ -13,125 +14,139 @@ class OnBoardingView extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: ColorManager.backgroundColor, backgroundColor: ColorManager.backgroundColor,
body: SingleChildScrollView( body: ScreenResponsive(
child: Column( widget: const BodyWidget(),
children: [ widthScreen: MediaQuery.of(context).size.width,
Container( ),
width: double.infinity, );
decoration: BoxDecoration( }
color: ColorManager.primary, }
borderRadius: const BorderRadius.only(
bottomLeft: Radius.circular(50), class BodyWidget extends StatelessWidget {
bottomRight: Radius.circular(50), const BodyWidget({
), super.key,
});
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
child: Column(
children: [
Container(
width: double.infinity,
decoration: BoxDecoration(
color: ColorManager.primary,
borderRadius: const BorderRadius.only(
bottomLeft: Radius.circular(50),
bottomRight: Radius.circular(50),
), ),
child: Column( ),
mainAxisSize: MainAxisSize.min, child: Column(
crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min,
children: [ crossAxisAlignment: CrossAxisAlignment.start,
Container( children: [
padding: EdgeInsets.only( Container(
top: AppPadding.safeAreaTop(context) + 38, padding: EdgeInsets.only(
left: AppPadding.p20, top: AppPadding.safeAreaTop(context) + 38,
right: AppPadding.p20, left: AppPadding.p20,
), right: AppPadding.p20,
child: Center(
child: Image(
width: 119,
height: 46,
image: AssetImage(Assets.excelso),
),
),
), ),
Container( child: Center(
padding: EdgeInsets.symmetric(
horizontal: AppPadding.p20,
),
margin: EdgeInsets.only(
top: AppMargin.m16,
),
width: double.infinity,
height: 332,
child: Image( child: Image(
fit: BoxFit.fill, width: 119,
image: AssetImage( height: 46,
Assets.onboarding, image: AssetImage(Assets.excelso),
),
), ),
), ),
Container( ),
padding: const EdgeInsets.symmetric( Container(
horizontal: 40, padding: EdgeInsets.symmetric(
), horizontal: AppPadding.p20,
margin: const EdgeInsets.only( ),
top: 32, margin: EdgeInsets.only(
bottom: 59, top: AppMargin.m16,
),
width: double.infinity,
height: 332,
child: Image(
fit: BoxFit.fill,
image: AssetImage(
Assets.onboarding,
), ),
child: Column( ),
crossAxisAlignment: CrossAxisAlignment.start, ),
children: [ Container(
Text( padding: const EdgeInsets.symmetric(
"Attendance", horizontal: 40,
style: getSemiBoldStyle( ),
color: Colors.white, margin: const EdgeInsets.only(
fontSize: 24, top: 32,
fontFamily: FontConstants.montserrat, bottom: 59,
), ),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
"Attendance",
style: getSemiBoldStyle(
color: Colors.white,
fontSize: 24,
fontFamily: FontConstants.montserrat,
), ),
Text( ),
'''Memudahkan anda melakukan absen Text(
'''Memudahkan anda melakukan absen
dengan sekali klik''', dengan sekali klik''',
style: getRegularStyle( style: getRegularStyle(
color: Colors.white, color: Colors.white,
fontSize: 12, fontSize: 12,
), ),
) )
], ],
), ),
) )
], ],
),
), ),
GestureDetector( ),
onTap: () { GestureDetector(
Navigator.pushNamed(context, Routes.home); onTap: () {
}, Navigator.pushNamed(context, Routes.home);
child: Container( },
margin: const EdgeInsets.only( child: Container(
top: 60, margin: const EdgeInsets.only(
), top: 60,
child: Center( ),
child: Container( child: Center(
width: 60, child: Container(
height: 60, width: 60,
decoration: BoxDecoration( height: 60,
borderRadius: BorderRadius.circular(100), decoration: BoxDecoration(
color: ColorManager.primary, borderRadius: BorderRadius.circular(100),
), color: ColorManager.primary,
child: const Center( ),
child: Icon( child: const Center(
Icons.arrow_forward_ios_rounded, child: Icon(
color: Colors.white, Icons.arrow_forward_ios_rounded,
size: 23, color: Colors.white,
), size: 23,
), ),
), ),
), ),
), ),
), ),
Container( ),
margin: const EdgeInsets.only( Container(
top: 30, margin: const EdgeInsets.only(
), top: 30,
child: Text( ),
"Since © 2023", child: Text(
style: getMediumStyle( "Since © 2023",
color: Colors.black, style: getMediumStyle(
), color: Colors.black,
), ),
) ),
], )
), ],
), ),
); );
} }
......
# Generated by pub # Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile # See https://dart.dev/tools/pub/glossary#lockfile
packages: packages:
archive:
dependency: transitive
description:
name: archive
sha256: "0c8368c9b3f0abbc193b9d6133649a614204b528982bebc7026372d61677ce3a"
url: "https://pub.dev"
source: hosted
version: "3.3.7"
args:
dependency: transitive
description:
name: args
sha256: c372bb384f273f0c2a8aaaa226dad84dc27c8519a691b888725dec59518ad53a
url: "https://pub.dev"
source: hosted
version: "2.4.1"
async: async:
dependency: transitive dependency: transitive
description: description:
name: async name: async
url: "https://pub.dartlang.org" sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.9.0" version: "2.11.0"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
url: "https://pub.dartlang.org" sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.1"
camera: camera:
dependency: "direct main" dependency: "direct main"
description: description:
name: camera name: camera
url: "https://pub.dartlang.org" sha256: ebebead3d5ec3d148249331d751d462d7e8c98102b8830a9b45ec96a2bd4333f
url: "https://pub.dev"
source: hosted source: hosted
version: "0.10.5+2" version: "0.10.5+2"
camera_android: camera_android:
dependency: transitive dependency: transitive
description: description:
name: camera_android name: camera_android
url: "https://pub.dartlang.org" sha256: f83e406d34f5faa80bf0f5c3beee4b4c11da94a94e9621c1bb8e312988621b4b
url: "https://pub.dev"
source: hosted source: hosted
version: "0.10.8+2" version: "0.10.8+2"
camera_avfoundation: camera_avfoundation:
dependency: transitive dependency: transitive
description: description:
name: camera_avfoundation name: camera_avfoundation
url: "https://pub.dartlang.org" sha256: "1a416e452b30955b392f4efbf23291d3f2ba3660a85e1628859eb62d2a2bab26"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.9.13+2" version: "0.9.13+2"
camera_platform_interface: camera_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: camera_platform_interface name: camera_platform_interface
url: "https://pub.dartlang.org" sha256: "60fa0bb62a4f3bf3a7c413e31e4cd01b69c779ccc8e4668904a24581b86c316b"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.5.1" version: "2.5.1"
camera_web: camera_web:
dependency: transitive dependency: transitive
description: description:
name: camera_web name: camera_web
url: "https://pub.dartlang.org" sha256: bcbd775fb3a9d51cc3ece899d54ad66f6306410556bac5759f78e13f9228841f
url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.1+4" version: "0.3.1+4"
characters: characters:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
url: "https://pub.dartlang.org" sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "1.3.0"
clock: clock:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
url: "https://pub.dartlang.org" sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.1.1"
collection: collection:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
url: "https://pub.dartlang.org" sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
url: "https://pub.dev"
source: hosted
version: "1.17.1"
convert:
dependency: transitive
description:
name: convert
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.16.0" version: "3.1.1"
cross_file: cross_file:
dependency: transitive dependency: transitive
description: description:
name: cross_file name: cross_file
url: "https://pub.dartlang.org" sha256: "0b0036e8cccbfbe0555fd83c1d31a6f30b77a96b598b35a5d36dd41f718695e9"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.3+4" version: "0.3.3+4"
crypto:
dependency: transitive
description:
name: crypto
sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
url: "https://pub.dev"
source: hosted
version: "3.0.3"
csslib:
dependency: transitive
description:
name: csslib
sha256: "831883fb353c8bdc1d71979e5b342c7d88acfbc643113c14ae51e2442ea0f20f"
url: "https://pub.dev"
source: hosted
version: "0.17.3"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
name: cupertino_icons name: cupertino_icons
url: "https://pub.dartlang.org" sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.5" version: "1.0.5"
fake_async: fake_async:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
url: "https://pub.dartlang.org" sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.1" version: "1.3.1"
ffi: ffi:
dependency: transitive dependency: transitive
description: description:
name: ffi name: ffi
url: "https://pub.dartlang.org" sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.2" version: "2.0.2"
file: file:
dependency: transitive dependency: transitive
description: description:
name: file name: file
url: "https://pub.dartlang.org" sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
url: "https://pub.dev"
source: hosted source: hosted
version: "6.1.4" version: "6.1.4"
flutter: flutter:
...@@ -115,14 +170,24 @@ packages: ...@@ -115,14 +170,24 @@ packages:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: flutter_lints name: flutter_lints
url: "https://pub.dartlang.org" sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
flutter_native_splash:
dependency: "direct main"
description:
name: flutter_native_splash
sha256: "02df24aec455c26428dadc637f20d4c548bda23ee2179479a8e8c39f1ecb75b3"
url: "https://pub.dev"
source: hosted
version: "2.3.0"
flutter_plugin_android_lifecycle: flutter_plugin_android_lifecycle:
dependency: transitive dependency: transitive
description: description:
name: flutter_plugin_android_lifecycle name: flutter_plugin_android_lifecycle
url: "https://pub.dartlang.org" sha256: "950e77c2bbe1692bc0874fc7fb491b96a4dc340457f4ea1641443d0a6c1ea360"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.15" version: "2.0.15"
flutter_test: flutter_test:
...@@ -135,158 +200,212 @@ packages: ...@@ -135,158 +200,212 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
html:
dependency: transitive
description:
name: html
sha256: "58e3491f7bf0b6a4ea5110c0c688877460d1a6366731155c4a4580e7ded773e8"
url: "https://pub.dev"
source: hosted
version: "0.15.3"
http: http:
dependency: "direct main" dependency: "direct main"
description: description:
name: http name: http
url: "https://pub.dartlang.org" sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.13.5" version: "0.13.5"
http_parser: http_parser:
dependency: transitive dependency: transitive
description: description:
name: http_parser name: http_parser
url: "https://pub.dartlang.org" sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.2" version: "4.0.2"
image:
dependency: transitive
description:
name: image
sha256: a72242c9a0ffb65d03de1b7113bc4e189686fc07c7147b8b41811d0dd0e0d9bf
url: "https://pub.dev"
source: hosted
version: "4.0.17"
js: js:
dependency: transitive dependency: transitive
description: description:
name: js name: js
url: "https://pub.dartlang.org" sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted source: hosted
version: "0.6.4" version: "0.6.7"
lints: lints:
dependency: transitive dependency: transitive
description: description:
name: lints name: lints
url: "https://pub.dartlang.org" sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
url: "https://pub.dartlang.org" sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.12.12" version: "0.12.15"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
name: material_color_utilities name: material_color_utilities
url: "https://pub.dartlang.org" sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
url: "https://pub.dev"
source: hosted source: hosted
version: "0.1.5" version: "0.2.0"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
url: "https://pub.dartlang.org" sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.8.0" version: "1.9.1"
path: path:
dependency: transitive dependency: transitive
description: description:
name: path name: path
url: "https://pub.dartlang.org" sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.8.2" version: "1.8.3"
path_provider_linux: path_provider_linux:
dependency: transitive dependency: transitive
description: description:
name: path_provider_linux name: path_provider_linux
url: "https://pub.dartlang.org" sha256: ffbb8cc9ed2c9ec0e4b7a541e56fd79b138e8f47d2fb86815f15358a349b3b57
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.11" version: "2.1.11"
path_provider_platform_interface: path_provider_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: path_provider_platform_interface name: path_provider_platform_interface
url: "https://pub.dartlang.org" sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.6" version: "2.0.6"
path_provider_windows: path_provider_windows:
dependency: transitive dependency: transitive
description: description:
name: path_provider_windows name: path_provider_windows
url: "https://pub.dartlang.org" sha256: d3f80b32e83ec208ac95253e0cd4d298e104fbc63cb29c5c69edaed43b0c69d6
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.6" version: "2.1.6"
petitparser:
dependency: transitive
description:
name: petitparser
sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750
url: "https://pub.dev"
source: hosted
version: "5.4.0"
platform: platform:
dependency: transitive dependency: transitive
description: description:
name: platform name: platform
url: "https://pub.dartlang.org" sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.0" version: "3.1.0"
plugin_platform_interface: plugin_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: plugin_platform_interface name: plugin_platform_interface
url: "https://pub.dartlang.org" sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.4" version: "2.1.4"
pointycastle:
dependency: transitive
description:
name: pointycastle
sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c"
url: "https://pub.dev"
source: hosted
version: "3.7.3"
process: process:
dependency: transitive dependency: transitive
description: description:
name: process name: process
url: "https://pub.dartlang.org" sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
url: "https://pub.dev"
source: hosted source: hosted
version: "4.2.4" version: "4.2.4"
quiver: quiver:
dependency: transitive dependency: transitive
description: description:
name: quiver name: quiver
url: "https://pub.dartlang.org" sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47
url: "https://pub.dev"
source: hosted source: hosted
version: "3.2.1" version: "3.2.1"
shared_preferences: shared_preferences:
dependency: "direct main" dependency: "direct main"
description: description:
name: shared_preferences name: shared_preferences
url: "https://pub.dartlang.org" sha256: "16d3fb6b3692ad244a695c0183fca18cf81fd4b821664394a781de42386bf022"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.1" version: "2.1.1"
shared_preferences_android: shared_preferences_android:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_android name: shared_preferences_android
url: "https://pub.dartlang.org" sha256: "6478c6bbbecfe9aced34c483171e90d7c078f5883558b30ec3163cf18402c749"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.4" version: "2.1.4"
shared_preferences_foundation: shared_preferences_foundation:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_foundation name: shared_preferences_foundation
url: "https://pub.dartlang.org" sha256: e014107bb79d6d3297196f4f2d0db54b5d1f85b8ea8ff63b8e8b391a02700feb
url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.2" version: "2.2.2"
shared_preferences_linux: shared_preferences_linux:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_linux name: shared_preferences_linux
url: "https://pub.dartlang.org" sha256: "9d387433ca65717bbf1be88f4d5bb18f10508917a8fa2fb02e0fd0d7479a9afa"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.0" version: "2.2.0"
shared_preferences_platform_interface: shared_preferences_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_platform_interface name: shared_preferences_platform_interface
url: "https://pub.dartlang.org" sha256: fb5cf25c0235df2d0640ac1b1174f6466bd311f621574997ac59018a6664548d
url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.0" version: "2.2.0"
shared_preferences_web: shared_preferences_web:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_web name: shared_preferences_web
url: "https://pub.dartlang.org" sha256: "74083203a8eae241e0de4a0d597dbedab3b8fef5563f33cf3c12d7e93c655ca5"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
shared_preferences_windows: shared_preferences_windows:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_windows name: shared_preferences_windows
url: "https://pub.dartlang.org" sha256: "5e588e2efef56916a3b229c3bfe81e6a525665a454519ca51dbcc4236a274173"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.0" version: "2.2.0"
sky_engine: sky_engine:
...@@ -298,86 +417,122 @@ packages: ...@@ -298,86 +417,122 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: source_span name: source_span
url: "https://pub.dartlang.org" sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.0" version: "1.9.1"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
url: "https://pub.dartlang.org" sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted source: hosted
version: "1.10.0" version: "1.11.0"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
url: "https://pub.dartlang.org" sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.1"
stream_transform: stream_transform:
dependency: transitive dependency: transitive
description: description:
name: stream_transform name: stream_transform
url: "https://pub.dartlang.org" sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
string_scanner: string_scanner:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
url: "https://pub.dartlang.org" sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.2.0"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
url: "https://pub.dartlang.org" sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "1.2.1"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.dartlang.org" sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
url: "https://pub.dev"
source: hosted source: hosted
version: "0.4.12" version: "0.5.1"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
name: typed_data name: typed_data
url: "https://pub.dartlang.org" sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.2" version: "1.3.2"
universal_io:
dependency: transitive
description:
name: universal_io
sha256: "06866290206d196064fd61df4c7aea1ffe9a4e7c4ccaa8fcded42dd41948005d"
url: "https://pub.dev"
source: hosted
version: "2.2.0"
url_strategy: url_strategy:
dependency: "direct main" dependency: "direct main"
description: description:
name: url_strategy name: url_strategy
url: "https://pub.dartlang.org" sha256: "42b68b42a9864c4d710401add17ad06e28f1c1d5500c93b98c431f6b0ea4ab87"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.2.0" version: "0.2.0"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
name: vector_math name: vector_math
url: "https://pub.dartlang.org" sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.4"
win32: win32:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
url: "https://pub.dartlang.org" sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c"
url: "https://pub.dev"
source: hosted source: hosted
version: "4.1.4" version: "4.1.4"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
name: xdg_directories name: xdg_directories
url: "https://pub.dartlang.org" sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
xml:
dependency: transitive
description:
name: xml
sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84"
url: "https://pub.dev"
source: hosted
version: "6.3.0"
yaml:
dependency: transitive
description:
name: yaml
sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5"
url: "https://pub.dev"
source: hosted
version: "3.1.2"
sdks: sdks:
dart: ">=2.18.2 <3.0.0" dart: ">=3.0.0 <4.0.0"
flutter: ">=3.3.0" flutter: ">=3.3.0"
...@@ -20,7 +20,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev ...@@ -20,7 +20,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1 version: 1.0.0+1
environment: environment:
sdk: ">=2.18.2 <3.0.0" sdk: ">=3.0.0 <4.0.0"
# Dependencies specify other packages that your package needs in order to work. # Dependencies specify other packages that your package needs in order to work.
# To automatically upgrade your package dependencies to the latest versions # To automatically upgrade your package dependencies to the latest versions
...@@ -33,6 +33,7 @@ dependencies: ...@@ -33,6 +33,7 @@ dependencies:
cupertino_icons: ^1.0.2 cupertino_icons: ^1.0.2
flutter: flutter:
sdk: flutter sdk: flutter
flutter_native_splash: ^2.3.0
http: ^0.13.5 http: ^0.13.5
shared_preferences: ^2.1.1 shared_preferences: ^2.1.1
url_strategy: ^0.2.0 url_strategy: ^0.2.0
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<!-- <!--
If you are serving your web app in a path other than the root, change the If you are serving your web app in a path other than the root, change the
href value below to reflect the base path you are serving from. href value below to reflect the base path you are serving from.
The path provided below has to start and end with a slash "/" in order for The path provided below has to start and end with a slash "/" in order for
it to work correctly. it to work correctly.
For more details: For more details:
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
This is a placeholder for base href that will be replaced by the value of This is a placeholder for base href that will be replaced by the value of
the `--base-href` argument provided to `flutter build`. the `--base-href` argument provided to `flutter build`.
--> -->
<base href="$FLUTTER_BASE_HREF"> <base href="$FLUTTER_BASE_HREF" />
<meta charset="UTF-8"> <meta charset="UTF-8" />
<meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta content="IE=Edge" http-equiv="X-UA-Compatible" />
<meta name="description" content="A new Flutter project."> <meta name="description" content="A new Flutter project." />
<!-- iOS meta tags & icons --> <!-- iOS meta tags & icons -->
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="apple-mobile-web-app-title" content="excelso_attendance"> <meta name="apple-mobile-web-app-title" content="excelso_attendance" />
<link rel="apple-touch-icon" href="icons/Icon-192.png"> <link rel="apple-touch-icon" href="icons/Icon-192.png" />
<!-- Favicon --> <!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/> <link rel="icon" type="image/png" href="favicon.png" />
<title>excelso_attendance</title> <title>excelso_attendance</title>
<link rel="manifest" href="manifest.json"> <link rel="manifest" href="manifest.json" />
<script> <script>
// The value below is injected by flutter build, do not touch. // The value below is injected by flutter build, do not touch.
var serviceWorkerVersion = null; var serviceWorkerVersion = null;
</script> </script>
<!-- This script adds the flutter initialization JS code --> <!-- This script adds the flutter initialization JS code -->
<script src="flutter.js" defer></script> <script src="flutter.js" defer=""></script>
</head>
<body> <meta
<script> content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
window.addEventListener('load', function(ev) { name="viewport"
// Download main.dart.js />
_flutter.loader.loadEntrypoint({
serviceWorker: { <style id="splash-screen-style">
serviceWorkerVersion: serviceWorkerVersion, html {
} height: 100%;
}).then(function(engineInitializer) { }
return engineInitializer.initializeEngine();
}).then(function(appRunner) { body {
return appRunner.runApp(); margin: 0;
}); min-height: 100%;
}); background-color: #ffffff;
</script> background-size: 100% 100%;
</body> }
</html>
.center {
margin: 0;
position: absolute;
top: 50%;
left: 50%;
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.contain {
display: block;
width: 100%;
height: 100%;
object-fit: contain;
}
.stretch {
display: block;
width: 100%;
height: 100%;
}
.cover {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.bottom {
position: absolute;
bottom: 0;
left: 50%;
-ms-transform: translate(-50%, 0);
transform: translate(-50%, 0);
}
.bottomLeft {
position: absolute;
bottom: 0;
left: 0;
}
.bottomRight {
position: absolute;
bottom: 0;
right: 0;
}
@media (prefers-color-scheme: dark) {
body {
background-color: #ffffff;
}
}
</style>
<script id="splash-screen-script">
function removeSplashFromWeb() {
document.getElementById("splash")?.remove();
document.getElementById("splash-branding")?.remove();
document.body.style.background = "transparent";
}
</script>
</head>
<body>
<picture id="splash">
<source
srcset="
splash/img/light-1x.png 1x,
splash/img/light-2x.png 2x,
splash/img/light-3x.png 3x,
splash/img/light-4x.png 4x
"
media="(prefers-color-scheme: light)"
/>
<source
srcset="
splash/img/dark-1x.png 1x,
splash/img/dark-2x.png 2x,
splash/img/dark-3x.png 3x,
splash/img/dark-4x.png 4x
"
media="(prefers-color-scheme: dark)"
/>
<h3 class="center" aria-hidden="true">
<img
class="center"
aria-hidden="true"
src="splash/img/light-1x.png"
alt="Excelso"
/>
<br />
<br />
Please wait...
</h3>
</picture>
<script>
window.addEventListener("load", function (ev) {
// Download main.dart.js
_flutter.loader
.loadEntrypoint({
serviceWorker: {
serviceWorkerVersion: serviceWorkerVersion,
},
})
.then(function (engineInitializer) {
return engineInitializer.initializeEngine();
})
.then(function (appRunner) {
return appRunner.runApp();
});
});
</script>
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment