logo
|
|
@ -6,7 +6,7 @@
|
||||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:label="mpg_mobile"
|
android:label="HRIS MP"
|
||||||
android:name="${applicationName}"
|
android:name="${applicationName}"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:usesCleartextTraffic="true">
|
android:usesCleartextTraffic="true">
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<background android:drawable="@color/ic_launcher_background"/>
|
||||||
|
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||||
|
</adaptive-icon>
|
||||||
|
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 906 B |
|
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 621 B |
|
Before Width: | Height: | Size: 721 B After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 3.0 KiB |
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<color name="notification_color">#130F26</color>
|
<color name="notification_color">#130F26</color>
|
||||||
|
<color name="ic_launcher_background">#FFFFFF</color>
|
||||||
</resources>
|
</resources>
|
||||||
|
After Width: | Height: | Size: 26 KiB |
|
|
@ -427,7 +427,7 @@
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
|
@ -484,7 +484,7 @@
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 295 B After Width: | Height: | Size: 354 B |
|
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 525 B |
|
Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 767 B |
|
Before Width: | Height: | Size: 282 B After Width: | Height: | Size: 436 B |
|
Before Width: | Height: | Size: 462 B After Width: | Height: | Size: 741 B |
|
Before Width: | Height: | Size: 704 B After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 525 B |
|
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 1016 B |
|
Before Width: | Height: | Size: 862 B After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 661 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 702 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 862 B After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 906 B |
|
After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 762 B After Width: | Height: | Size: 980 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 2.6 KiB |
|
|
@ -13,7 +13,7 @@
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>Mpg Mobile</string>
|
<string>HRIS MP</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>$(EXECUTABLE_NAME)</string>
|
<string>$(EXECUTABLE_NAME)</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,7 @@ class MyApp extends StatelessWidget {
|
||||||
],
|
],
|
||||||
child: MaterialApp(
|
child: MaterialApp(
|
||||||
navigatorKey: navigatorKey,
|
navigatorKey: navigatorKey,
|
||||||
title: 'MPG HRIS',
|
title: 'HRIS MP',
|
||||||
scaffoldMessengerKey: ErrorHandler.scaffoldMessengerKey,
|
scaffoldMessengerKey: ErrorHandler.scaffoldMessengerKey,
|
||||||
debugShowCheckedModeBanner: false,
|
debugShowCheckedModeBanner: false,
|
||||||
theme: AppTheme.lightTheme.copyWith(
|
theme: AppTheme.lightTheme.copyWith(
|
||||||
|
|
|
||||||
|
|
@ -61,23 +61,15 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||||
children: [
|
children: [
|
||||||
const SizedBox(height: AppTheme.spacingXl),
|
const SizedBox(height: AppTheme.spacingXl),
|
||||||
|
|
||||||
Container(
|
Image.asset(
|
||||||
width: 80,
|
'assets/images/logo.png',
|
||||||
height: 80,
|
height: 80,
|
||||||
decoration: BoxDecoration(
|
width: 200,
|
||||||
color: AppTheme.primaryDark,
|
fit: BoxFit.contain,
|
||||||
borderRadius: BorderRadius.circular(AppTheme.radiusMd),
|
|
||||||
boxShadow: AppTheme.shadowMd,
|
|
||||||
),
|
|
||||||
child: const Icon(
|
|
||||||
Icons.diamond_outlined,
|
|
||||||
size: 44,
|
|
||||||
color: Colors.white,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
const SizedBox(height: AppTheme.spacingMd),
|
const SizedBox(height: AppTheme.spacingMd),
|
||||||
Text(
|
Text(
|
||||||
"MPG HRIS",
|
"HRIS MP",
|
||||||
style: AppTheme.heading2.copyWith(letterSpacing: 1),
|
style: AppTheme.heading2.copyWith(letterSpacing: 1),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 4),
|
const SizedBox(height: 4),
|
||||||
|
|
|
||||||
|
|
@ -67,40 +67,32 @@ class _OnboardingCheckScreenState extends State<OnboardingCheckScreen>
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppTheme.primaryDark,
|
backgroundColor: Colors.white,
|
||||||
body: FadeTransition(
|
body: FadeTransition(
|
||||||
opacity: _fadeAnimation,
|
opacity: _fadeAnimation,
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Image.asset(
|
||||||
width: 80,
|
'assets/images/logo.png',
|
||||||
height: 80,
|
height: 100,
|
||||||
decoration: BoxDecoration(
|
width: 220,
|
||||||
color: Colors.white,
|
fit: BoxFit.contain,
|
||||||
borderRadius: BorderRadius.circular(AppTheme.radiusMd),
|
|
||||||
boxShadow: AppTheme.shadowMd,
|
|
||||||
),
|
|
||||||
child: const Icon(
|
|
||||||
Icons.diamond_outlined,
|
|
||||||
size: 44,
|
|
||||||
color: AppTheme.primaryDark,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
const SizedBox(height: AppTheme.spacingLg),
|
const SizedBox(height: AppTheme.spacingXl),
|
||||||
const SizedBox(
|
const SizedBox(
|
||||||
width: 24,
|
width: 24,
|
||||||
height: 24,
|
height: 24,
|
||||||
child: CircularProgressIndicator(
|
child: CircularProgressIndicator(
|
||||||
color: Colors.white,
|
color: AppTheme.primaryDark,
|
||||||
strokeWidth: 2.5,
|
strokeWidth: 2.5,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: AppTheme.spacingMd),
|
const SizedBox(height: AppTheme.spacingMd),
|
||||||
Text(
|
Text(
|
||||||
'Memeriksa kelengkapan akun...',
|
'Memeriksa kelengkapan akun...',
|
||||||
style: AppTheme.bodySmall.copyWith(color: Colors.white70),
|
style: AppTheme.bodySmall.copyWith(color: AppTheme.textSecondary),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import '../../core/theme.dart';
|
|
||||||
import '../../core/cache_manager.dart';
|
import '../../core/cache_manager.dart';
|
||||||
|
|
||||||
class SplashScreen extends StatefulWidget {
|
class SplashScreen extends StatefulWidget {
|
||||||
|
|
@ -57,7 +57,7 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppTheme.primaryDark,
|
backgroundColor: Colors.white,
|
||||||
body: Center(
|
body: Center(
|
||||||
child: FadeTransition(
|
child: FadeTransition(
|
||||||
opacity: _fadeAnimation,
|
opacity: _fadeAnimation,
|
||||||
|
|
@ -66,28 +66,11 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Image.asset(
|
||||||
width: 100,
|
'assets/images/logo.png',
|
||||||
height: 100,
|
height: 120, // slightly larger since it's not in a box
|
||||||
decoration: BoxDecoration(
|
width: 250,
|
||||||
color: Colors.white,
|
fit: BoxFit.contain,
|
||||||
borderRadius: BorderRadius.circular(AppTheme.radiusLg),
|
|
||||||
boxShadow: AppTheme.shadowLg,
|
|
||||||
),
|
|
||||||
child: const Icon(
|
|
||||||
Icons.diamond_outlined,
|
|
||||||
size: 60,
|
|
||||||
color: AppTheme.primaryDark,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: AppTheme.spacingLg),
|
|
||||||
Text(
|
|
||||||
"MPG HRIS",
|
|
||||||
style: AppTheme.heading1.copyWith(color: Colors.white),
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
"Sistem Informasi SDM",
|
|
||||||
style: AppTheme.bodyMedium.copyWith(color: Colors.white70),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
||||||
40
pubspec.lock
|
|
@ -121,6 +121,22 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.4.0"
|
version: "1.4.0"
|
||||||
|
checked_yaml:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: checked_yaml
|
||||||
|
sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.4"
|
||||||
|
cli_util:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: cli_util
|
||||||
|
sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.4.2"
|
||||||
clock:
|
clock:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -350,6 +366,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.2.1"
|
version: "5.2.1"
|
||||||
|
flutter_launcher_icons:
|
||||||
|
dependency: "direct dev"
|
||||||
|
description:
|
||||||
|
name: flutter_launcher_icons
|
||||||
|
sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.13.1"
|
||||||
flutter_lints:
|
flutter_lints:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
|
|
@ -768,6 +792,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.20.2"
|
version: "0.20.2"
|
||||||
|
json_annotation:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: json_annotation
|
||||||
|
sha256: cb09e7dac6210041fad964ed7fbee004f14258b4eca4040f72d1234062ace4c8
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "4.11.0"
|
||||||
leak_tracker:
|
leak_tracker:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1341,6 +1373,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.6.1"
|
version: "6.6.1"
|
||||||
|
yaml:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: yaml
|
||||||
|
sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.1.3"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.9.2 <4.0.0"
|
dart: ">=3.9.2 <4.0.0"
|
||||||
flutter: ">=3.35.0"
|
flutter: ">=3.35.0"
|
||||||
|
|
|
||||||
11
pubspec.yaml
|
|
@ -79,6 +79,7 @@ dev_dependencies:
|
||||||
# rules and activating additional ones.
|
# rules and activating additional ones.
|
||||||
flutter_lints: ^5.0.0
|
flutter_lints: ^5.0.0
|
||||||
mocktail: ^1.0.4
|
mocktail: ^1.0.4
|
||||||
|
flutter_launcher_icons: ^0.13.1
|
||||||
|
|
||||||
# For information on the generic Dart part of this file, see the
|
# For information on the generic Dart part of this file, see the
|
||||||
# following page: https://dart.dev/tools/pub/pubspec
|
# following page: https://dart.dev/tools/pub/pubspec
|
||||||
|
|
@ -93,6 +94,7 @@ flutter:
|
||||||
# To add assets to your application, add an assets section, like this:
|
# To add assets to your application, add an assets section, like this:
|
||||||
assets:
|
assets:
|
||||||
- .env
|
- .env
|
||||||
|
- assets/images/
|
||||||
|
|
||||||
# An image asset can refer to one or more resolution-specific "variants", see
|
# An image asset can refer to one or more resolution-specific "variants", see
|
||||||
# https://flutter.dev/to/resolution-aware-images
|
# https://flutter.dev/to/resolution-aware-images
|
||||||
|
|
@ -117,5 +119,12 @@ flutter:
|
||||||
# - asset: fonts/TrajanPro_Bold.ttf
|
# - asset: fonts/TrajanPro_Bold.ttf
|
||||||
# weight: 700
|
# weight: 700
|
||||||
#
|
#
|
||||||
# For details regarding fonts from package dependencies,
|
|
||||||
# see https://flutter.dev/to/font-from-package
|
# see https://flutter.dev/to/font-from-package
|
||||||
|
|
||||||
|
flutter_launcher_icons:
|
||||||
|
android: "ic_launcher"
|
||||||
|
ios: true
|
||||||
|
image_path: "assets/images/logo.png"
|
||||||
|
min_sdk_android: 21
|
||||||
|
adaptive_icon_background: "#FFFFFF"
|
||||||
|
adaptive_icon_foreground: "assets/images/logo.png"
|
||||||
|
|
|
||||||