|
@@ -4,6 +4,7 @@ import 'dart:typed_data';
|
4
|
4
|
|
5
|
5
|
import 'package:connectivity_plus/connectivity_plus.dart';
|
6
|
6
|
import 'package:double_back_to_close/double_back_to_close.dart';
|
|
7
|
+import 'package:employee_selfservice_mobile/Screens/NotificationCenter/NotificationCenter.dart';
|
7
|
8
|
import 'package:flutter/cupertino.dart';
|
8
|
9
|
import 'package:flutter/material.dart';
|
9
|
10
|
import 'package:fluttertoast/fluttertoast.dart';
|
|
@@ -100,7 +101,7 @@ class _HomeView extends State<HomeView> {
|
100
|
101
|
fontSize: 15.0,
|
101
|
102
|
fontWeight: FontWeight.w600));
|
102
|
103
|
|
103
|
|
- loading.show();
|
|
104
|
+ await loading.show();
|
104
|
105
|
|
105
|
106
|
GetProfileImage_Post.connectToAPI(session!).then((valueResult) async {
|
106
|
107
|
Map<String, dynamic> object = json.decode(valueResult);
|
|
@@ -111,7 +112,7 @@ class _HomeView extends State<HomeView> {
|
111
|
112
|
String photo = object['result']['photo'].toString();
|
112
|
113
|
if (photo == "false") {
|
113
|
114
|
setState(() {
|
114
|
|
- _imageToShow = AssetImage('assets/images/ic_administrator.png');
|
|
115
|
+ _imageToShow = AssetImage('assets/icons/ic_pp_2.png');
|
115
|
116
|
});
|
116
|
117
|
} else if (photo != "false") {
|
117
|
118
|
Uint8List decodedBytes = Base64Decoder().convert(photo);
|
|
@@ -121,7 +122,6 @@ class _HomeView extends State<HomeView> {
|
121
|
122
|
.image;
|
122
|
123
|
});
|
123
|
124
|
}
|
124
|
|
- await loading.hide();
|
125
|
125
|
} else if (status == "failed") {
|
126
|
126
|
String message = object['result']['message'].toString();
|
127
|
127
|
Fluttertoast.showToast(
|
|
@@ -132,7 +132,6 @@ class _HomeView extends State<HomeView> {
|
132
|
132
|
textColor: Colors.white,
|
133
|
133
|
fontSize: 16.0);
|
134
|
134
|
}
|
135
|
|
- await loading.hide();
|
136
|
135
|
} else {
|
137
|
136
|
Fluttertoast.showToast(
|
138
|
137
|
msg: "Server Response Error",
|
|
@@ -141,8 +140,8 @@ class _HomeView extends State<HomeView> {
|
141
|
140
|
timeInSecForIosWeb: 1,
|
142
|
141
|
textColor: Colors.white,
|
143
|
142
|
fontSize: 16.0);
|
144
|
|
- await loading.hide();
|
145
|
143
|
}
|
|
144
|
+ await loading.hide();
|
146
|
145
|
});
|
147
|
146
|
return _imageToShow;
|
148
|
147
|
}
|
|
@@ -171,8 +170,12 @@ class _HomeView extends State<HomeView> {
|
171
|
170
|
position = object['result']['position'].toString();
|
172
|
171
|
|
173
|
172
|
var prefs = await SharedPreferences.getInstance();
|
174
|
|
- await prefs.setString('position', position);
|
175
|
|
-
|
|
173
|
+ if (position == "false") {
|
|
174
|
+ position = "-";
|
|
175
|
+ await prefs.setString('position', position);
|
|
176
|
+ } else {
|
|
177
|
+ await prefs.setString('position', position);
|
|
178
|
+ }
|
176
|
179
|
}
|
177
|
180
|
} else {
|
178
|
181
|
Fluttertoast.showToast(
|
|
@@ -187,6 +190,7 @@ class _HomeView extends State<HomeView> {
|
187
|
190
|
}
|
188
|
191
|
|
189
|
192
|
int _selectedIndex = 0;
|
|
193
|
+
|
190
|
194
|
void _onItemTapped(int index) {
|
191
|
195
|
setState(() {
|
192
|
196
|
_selectedIndex = index;
|
|
@@ -223,39 +227,42 @@ class _HomeView extends State<HomeView> {
|
223
|
227
|
);
|
224
|
228
|
}
|
225
|
229
|
|
226
|
|
- showDialogBox() => showCupertinoDialog<String>(
|
227
|
|
- context: context,
|
228
|
|
- builder: (BuildContext context) => CupertinoAlertDialog(
|
229
|
|
- title: const Text('No Connection'),
|
230
|
|
- content: const Text('Please check your internet connectivity'),
|
231
|
|
- actions: <Widget>[
|
232
|
|
- Column(
|
233
|
|
- children: [
|
234
|
|
- SizedBox(
|
235
|
|
- width: 250,
|
236
|
|
- height: 250,
|
237
|
|
- child: LottieBuilder.asset(
|
238
|
|
- //'assets/animation/animation_no_internet.json',
|
239
|
|
- 'assets/animation/animation_no_internet_3.json',
|
240
|
|
- repeat: true),
|
|
230
|
+ showDialogBox() =>
|
|
231
|
+ showCupertinoDialog<String>(
|
|
232
|
+ context: context,
|
|
233
|
+ builder: (BuildContext context) =>
|
|
234
|
+ CupertinoAlertDialog(
|
|
235
|
+ title: const Text('No Connection'),
|
|
236
|
+ content: const Text('Please check your internet connectivity'),
|
|
237
|
+ actions: <Widget>[
|
|
238
|
+ Column(
|
|
239
|
+ children: [
|
|
240
|
+ SizedBox(
|
|
241
|
+ width: 250,
|
|
242
|
+ height: 250,
|
|
243
|
+ child: LottieBuilder.asset(
|
|
244
|
+ //'assets/animation/animation_no_internet.json',
|
|
245
|
+ 'assets/animation/animation_no_internet_3.json',
|
|
246
|
+ repeat: true),
|
|
247
|
+ ),
|
|
248
|
+ ],
|
|
249
|
+ ),
|
|
250
|
+ TextButton(
|
|
251
|
+ onPressed: () async {
|
|
252
|
+ Navigator.pop(context, 'Cancel');
|
|
253
|
+ setState(() => isAlertSet = false);
|
|
254
|
+ isDeviceConnected =
|
|
255
|
+ await InternetConnectionChecker().hasConnection;
|
|
256
|
+ if (!isDeviceConnected && isAlertSet == false) {
|
|
257
|
+ showDialogBox();
|
|
258
|
+ setState(() => isAlertSet = true);
|
|
259
|
+ }
|
|
260
|
+ },
|
|
261
|
+ child: const Text('Retry'),
|
|
262
|
+ ),
|
|
263
|
+ ],
|
241
|
264
|
),
|
242
|
|
- ],
|
243
|
|
- ),
|
244
|
|
- TextButton(
|
245
|
|
- onPressed: () async {
|
246
|
|
- Navigator.pop(context, 'Cancel');
|
247
|
|
- setState(() => isAlertSet = false);
|
248
|
|
- isDeviceConnected = await InternetConnectionChecker().hasConnection;
|
249
|
|
- if (!isDeviceConnected && isAlertSet == false) {
|
250
|
|
- showDialogBox();
|
251
|
|
- setState(() => isAlertSet = true);
|
252
|
|
- }
|
253
|
|
- },
|
254
|
|
- child: const Text('Retry'),
|
255
|
|
- ),
|
256
|
|
- ],
|
257
|
|
- ),
|
258
|
|
- );
|
|
265
|
+ );
|
259
|
266
|
}
|
260
|
267
|
|
261
|
268
|
class BottomNavBar extends StatefulWidget {
|
|
@@ -268,43 +275,44 @@ class BottomNavBar extends StatefulWidget {
|
268
|
275
|
class _BottomNavBarState extends State<BottomNavBar> {
|
269
|
276
|
List<Widget> _widgetOptions = <Widget>[
|
270
|
277
|
HomeScreen(),
|
271
|
|
- ReimburseScreen(),
|
|
278
|
+ NotificationCenter_Screen(),
|
272
|
279
|
SettingsScreen(),
|
273
|
280
|
];
|
274
|
281
|
|
275
|
282
|
int _selectedIndex = 0;
|
|
283
|
+
|
276
|
284
|
void _onItemTapped(int index) {
|
277
|
285
|
setState(() {
|
278
|
286
|
_selectedIndex = index;
|
279
|
287
|
});
|
280
|
288
|
}
|
|
289
|
+
|
281
|
290
|
@override
|
282
|
291
|
Widget build(BuildContext context) {
|
283
|
292
|
return Scaffold(
|
284
|
293
|
body: _widgetOptions.elementAt(_selectedIndex),
|
285
|
294
|
bottomNavigationBar: BottomNavigationBar(
|
286
|
|
- items: const <BottomNavigationBarItem>[
|
287
|
|
- BottomNavigationBarItem(
|
288
|
|
- icon: Icon(Icons.home),
|
289
|
|
- label: 'Home',
|
290
|
|
- ),
|
291
|
|
- BottomNavigationBarItem(
|
292
|
|
- icon: Icon(Icons.notifications),
|
293
|
|
- label: 'Notification',
|
294
|
|
- ),BottomNavigationBarItem(
|
295
|
|
- icon: Icon(Icons.person),
|
296
|
|
- label: 'Profile',
|
297
|
|
- ),
|
298
|
|
- ],
|
299
|
|
- currentIndex: _selectedIndex,
|
300
|
|
- selectedItemColor: Colors.white,
|
301
|
|
- backgroundColor: Color(0xFF5666b7),
|
302
|
|
- onTap: _onItemTapped),
|
303
|
|
- );
|
|
295
|
+ items: const <BottomNavigationBarItem>[
|
|
296
|
+ BottomNavigationBarItem(
|
|
297
|
+ icon: Icon(Icons.home),
|
|
298
|
+ label: 'Home',
|
|
299
|
+ ),
|
|
300
|
+ BottomNavigationBarItem(
|
|
301
|
+ icon: Icon(Icons.notifications),
|
|
302
|
+ label: 'Notification',
|
|
303
|
+ ), BottomNavigationBarItem(
|
|
304
|
+ icon: Icon(Icons.person),
|
|
305
|
+ label: 'Profile',
|
|
306
|
+ ),
|
|
307
|
+ ],
|
|
308
|
+ currentIndex: _selectedIndex,
|
|
309
|
+ selectedItemColor: Colors.white,
|
|
310
|
+ backgroundColor: Color(0xFF5666b7),
|
|
311
|
+ onTap: _onItemTapped),
|
|
312
|
+ );
|
304
|
313
|
}
|
305
|
314
|
}
|
306
|
315
|
|
307
|
|
-
|
308
|
316
|
class HomeScreen extends StatefulWidget {
|
309
|
317
|
@override
|
310
|
318
|
State<HomeScreen> createState() => _HomeScreenState();
|
|
@@ -331,7 +339,9 @@ class _HomeScreenState extends State<HomeScreen> {
|
331
|
339
|
Uint8List decodedBytes = Base64Decoder().convert(photo);
|
332
|
340
|
//logDev.log(decodedBytes.toString(), name: "DECODED BYTES photo");
|
333
|
341
|
setState(() {
|
334
|
|
- _imageToShow = Image.memory(decodedBytes, gaplessPlayback: true).image;
|
|
342
|
+ _imageToShow = Image
|
|
343
|
+ .memory(decodedBytes, gaplessPlayback: true)
|
|
344
|
+ .image;
|
335
|
345
|
});
|
336
|
346
|
}
|
337
|
347
|
} else if (status == "failed") {
|
|
@@ -359,7 +369,9 @@ class _HomeScreenState extends State<HomeScreen> {
|
359
|
369
|
|
360
|
370
|
@override
|
361
|
371
|
Widget build(BuildContext context) {
|
362
|
|
- var size = MediaQuery.of(context).size;
|
|
372
|
+ var size = MediaQuery
|
|
373
|
+ .of(context)
|
|
374
|
+ .size;
|
363
|
375
|
|
364
|
376
|
return FocusDetector(
|
365
|
377
|
/*onVisibilityGained: (){
|
|
@@ -371,7 +383,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
371
|
383
|
onFocusLost: (){
|
372
|
384
|
getProfileImage();
|
373
|
385
|
},*/
|
374
|
|
- onFocusGained: (){
|
|
386
|
+ onFocusGained: () {
|
375
|
387
|
getProfileImage();
|
376
|
388
|
},
|
377
|
389
|
/* onForegroundLost: (){
|
|
@@ -401,7 +413,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
401
|
413
|
padding: EdgeInsets.all(20),
|
402
|
414
|
child: Column(
|
403
|
415
|
children: <Widget>[
|
404
|
|
- /* Align(
|
|
416
|
+ /* Align(
|
405
|
417
|
alignment: Alignment.topRight,
|
406
|
418
|
child: InkWell(
|
407
|
419
|
child: Container(
|
|
@@ -418,11 +430,13 @@ class _HomeScreenState extends State<HomeScreen> {
|
418
|
430
|
),
|
419
|
431
|
),*/
|
420
|
432
|
Container(
|
421
|
|
- child: Stack(
|
|
433
|
+ child: Stack(
|
422
|
434
|
alignment: Alignment.topLeft,
|
423
|
435
|
children: [
|
424
|
436
|
Container(
|
425
|
|
- margin: EdgeInsets.only(top: (((size.width - 20) * 0.33) * 0.5) + 40),
|
|
437
|
+ margin: EdgeInsets.only(
|
|
438
|
+ top: (((size.width - 20) * 0.33) * 0.5) +
|
|
439
|
+ 40),
|
426
|
440
|
child: Card(
|
427
|
441
|
elevation: 15,
|
428
|
442
|
child: Container(
|
|
@@ -432,24 +446,28 @@ class _HomeScreenState extends State<HomeScreen> {
|
432
|
446
|
decoration: BoxDecoration(
|
433
|
447
|
color: Colors.white,
|
434
|
448
|
borderRadius:
|
435
|
|
- BorderRadius.all(Radius.circular(10))),
|
|
449
|
+ BorderRadius.all(
|
|
450
|
+ Radius.circular(10))),
|
436
|
451
|
child: Column(
|
437
|
|
- mainAxisAlignment: MainAxisAlignment.end,
|
438
|
|
- crossAxisAlignment: CrossAxisAlignment.center,
|
|
452
|
+ mainAxisAlignment: MainAxisAlignment
|
|
453
|
+ .end,
|
|
454
|
+ crossAxisAlignment: CrossAxisAlignment
|
|
455
|
+ .center,
|
439
|
456
|
children: <Widget>[
|
440
|
457
|
Text(name,
|
441
|
458
|
maxLines: 2,
|
442
|
459
|
overflow: TextOverflow.ellipsis,
|
443
|
460
|
textAlign: TextAlign.center,
|
444
|
461
|
style: GoogleFonts.inter(
|
445
|
|
- fontSize: 18,
|
|
462
|
+ fontSize: size.width * 0.045,
|
446
|
463
|
color: Colors.black,
|
447
|
464
|
fontWeight: FontWeight.bold),
|
448
|
465
|
),
|
449
|
466
|
Text(position,
|
450
|
467
|
textAlign: TextAlign.center,
|
451
|
468
|
style: GoogleFonts.inter(
|
452
|
|
- fontSize: 17, color: Colors.black),
|
|
469
|
+ fontSize: size.width * 0.035,
|
|
470
|
+ color: Colors.black),
|
453
|
471
|
),
|
454
|
472
|
],
|
455
|
473
|
)),
|
|
@@ -482,46 +500,48 @@ class _HomeScreenState extends State<HomeScreen> {
|
482
|
500
|
crossAxisSpacing: 15,
|
483
|
501
|
mainAxisSpacing: 15,
|
484
|
502
|
crossAxisCount: 2,
|
|
503
|
+ childAspectRatio: 1.0,
|
485
|
504
|
children: <Widget>[
|
486
|
505
|
InkWell(
|
487
|
506
|
child: Container(
|
488
|
|
- decoration: BoxDecoration(
|
489
|
|
- color: Color(0xFFD0D0D0),
|
490
|
|
- borderRadius: BorderRadius.circular(5)),
|
491
|
|
- child: Column(
|
492
|
|
- crossAxisAlignment: CrossAxisAlignment.center,
|
493
|
|
- mainAxisAlignment: MainAxisAlignment.center,
|
494
|
|
- children: <Widget>[
|
495
|
|
- Container(
|
496
|
|
- width: 75,
|
497
|
|
- height: 75,
|
498
|
|
- child: Image.asset(
|
499
|
|
- "assets/icons/menu/ic_absensi.png",
|
500
|
|
- fit: BoxFit.fill,
|
501
|
|
- alignment: Alignment.center,
|
502
|
|
- ),
|
503
|
|
- ),
|
504
|
|
- Container(
|
505
|
|
- margin: EdgeInsets.only(top: 10),
|
506
|
|
- padding: EdgeInsets.all(5),
|
507
|
|
- child: Text(
|
508
|
|
- 'Attendance',
|
509
|
|
- textAlign: TextAlign.center,
|
510
|
|
- style: GoogleFonts.acme(
|
511
|
|
- fontSize: 18, color: Colors.black),
|
512
|
|
- ),
|
|
507
|
+ width: size.width,
|
|
508
|
+ height: size.height,
|
|
509
|
+ decoration: BoxDecoration(
|
|
510
|
+ color: Color(0xFFD0D0D0),
|
|
511
|
+ borderRadius: BorderRadius.circular(5)),
|
|
512
|
+ child: Center(
|
|
513
|
+ child: Column(
|
|
514
|
+ crossAxisAlignment: CrossAxisAlignment.center,
|
|
515
|
+ mainAxisAlignment: MainAxisAlignment.center,
|
|
516
|
+ children: <Widget>[
|
|
517
|
+ Container(
|
|
518
|
+ width: size.width * 0.18,
|
|
519
|
+ child: Image.asset(
|
|
520
|
+ "assets/icons/menu/ic_absensi.png",
|
|
521
|
+ fit: BoxFit.contain)
|
|
522
|
+ ),
|
|
523
|
+ Text(
|
|
524
|
+ 'Attendance',
|
|
525
|
+ textAlign: TextAlign.center,
|
|
526
|
+ style: GoogleFonts.acme(
|
|
527
|
+ fontSize: size.width * 0.045,
|
|
528
|
+ color: Colors.black),
|
|
529
|
+ ),
|
|
530
|
+ ],
|
513
|
531
|
),
|
514
|
|
- ],
|
515
|
|
- ),
|
|
532
|
+ )
|
516
|
533
|
),
|
517
|
534
|
onTap: () {
|
518
|
535
|
Navigator.push(
|
519
|
536
|
context,
|
520
|
537
|
MaterialPageRoute(
|
521
|
|
- builder: (context) => AbsensiScreen()));
|
|
538
|
+ builder: (context) =>
|
|
539
|
+ AbsensiScreen()));
|
522
|
540
|
}),
|
523
|
541
|
InkWell(
|
524
|
542
|
child: Container(
|
|
543
|
+ width: size.width,
|
|
544
|
+ height: size.height,
|
525
|
545
|
decoration: BoxDecoration(
|
526
|
546
|
color: Color(0xFFD0D0D0),
|
527
|
547
|
borderRadius: BorderRadius.circular(5)),
|
|
@@ -530,22 +550,17 @@ class _HomeScreenState extends State<HomeScreen> {
|
530
|
550
|
mainAxisAlignment: MainAxisAlignment.center,
|
531
|
551
|
children: <Widget>[
|
532
|
552
|
Container(
|
533
|
|
- width: 75,
|
534
|
|
- height: 75,
|
|
553
|
+ width: size.width * 0.18,
|
535
|
554
|
child: Image.asset(
|
536
|
|
- "assets/icons/menu/ic_slipgaji_2.png",
|
537
|
|
- fit: BoxFit.fill,
|
538
|
|
- alignment: Alignment.center),
|
|
555
|
+ "assets/icons/menu/ic_slipgaji_2.png",
|
|
556
|
+ fit: BoxFit.contain),
|
539
|
557
|
),
|
540
|
|
- Container(
|
541
|
|
- margin: EdgeInsets.only(top: 10),
|
542
|
|
- padding: EdgeInsets.all(5),
|
543
|
|
- child: Text(
|
544
|
|
- 'Pay Slip',
|
545
|
|
- textAlign: TextAlign.center,
|
546
|
|
- style: GoogleFonts.acme(
|
547
|
|
- fontSize: 18, color: Colors.black),
|
548
|
|
- ),
|
|
558
|
+ Text(
|
|
559
|
+ 'Pay Slip',
|
|
560
|
+ textAlign: TextAlign.center,
|
|
561
|
+ style: GoogleFonts.acme(
|
|
562
|
+ fontSize: size.width * 0.045,
|
|
563
|
+ color: Colors.black),
|
549
|
564
|
),
|
550
|
565
|
],
|
551
|
566
|
),
|
|
@@ -554,11 +569,14 @@ class _HomeScreenState extends State<HomeScreen> {
|
554
|
569
|
Navigator.push(
|
555
|
570
|
context,
|
556
|
571
|
MaterialPageRoute(
|
557
|
|
- builder: (context) => SlipGajiScreen()));
|
|
572
|
+ builder: (context) =>
|
|
573
|
+ SlipGajiScreen()));
|
558
|
574
|
},
|
559
|
575
|
),
|
560
|
576
|
InkWell(
|
561
|
577
|
child: Container(
|
|
578
|
+ width: size.width,
|
|
579
|
+ height: size.height,
|
562
|
580
|
decoration: BoxDecoration(
|
563
|
581
|
color: Color(0xFFD0D0D0),
|
564
|
582
|
borderRadius: BorderRadius.circular(5)),
|
|
@@ -567,22 +585,17 @@ class _HomeScreenState extends State<HomeScreen> {
|
567
|
585
|
mainAxisAlignment: MainAxisAlignment.center,
|
568
|
586
|
children: <Widget>[
|
569
|
587
|
Container(
|
570
|
|
- width: 70,
|
571
|
|
- height: 70,
|
|
588
|
+ width: size.width * 0.18,
|
572
|
589
|
child: Image.asset(
|
573
|
|
- "assets/icons/menu/ic_cuti_2.png",
|
574
|
|
- fit: BoxFit.fill,
|
575
|
|
- alignment: Alignment.center),
|
|
590
|
+ "assets/icons/menu/ic_cuti_2.png",
|
|
591
|
+ fit: BoxFit.contain),
|
576
|
592
|
),
|
577
|
|
- Container(
|
578
|
|
- margin: EdgeInsets.only(top: 10),
|
579
|
|
- padding: EdgeInsets.all(5),
|
580
|
|
- child: Text(
|
581
|
|
- 'Leaves',
|
582
|
|
- textAlign: TextAlign.center,
|
583
|
|
- style: GoogleFonts.acme(
|
584
|
|
- fontSize: 18, color: Colors.black),
|
585
|
|
- ),
|
|
593
|
+ Text(
|
|
594
|
+ 'Leaves',
|
|
595
|
+ textAlign: TextAlign.center,
|
|
596
|
+ style: GoogleFonts.acme(
|
|
597
|
+ fontSize: size.width * 0.045,
|
|
598
|
+ color: Colors.black),
|
586
|
599
|
),
|
587
|
600
|
],
|
588
|
601
|
),
|
|
@@ -591,11 +604,14 @@ class _HomeScreenState extends State<HomeScreen> {
|
591
|
604
|
Navigator.push(
|
592
|
605
|
context,
|
593
|
606
|
MaterialPageRoute(
|
594
|
|
- builder: (context) => AjukanCutiScreen()));
|
|
607
|
+ builder: (context) =>
|
|
608
|
+ AjukanCutiScreen()));
|
595
|
609
|
},
|
596
|
610
|
),
|
597
|
611
|
InkWell(
|
598
|
612
|
child: Container(
|
|
613
|
+ width: size.width,
|
|
614
|
+ height: size.height,
|
599
|
615
|
decoration: BoxDecoration(
|
600
|
616
|
color: Color(0xFFD0D0D0),
|
601
|
617
|
borderRadius: BorderRadius.circular(5)),
|
|
@@ -604,23 +620,18 @@ class _HomeScreenState extends State<HomeScreen> {
|
604
|
620
|
mainAxisAlignment: MainAxisAlignment.center,
|
605
|
621
|
children: <Widget>[
|
606
|
622
|
Container(
|
607
|
|
- width: 70,
|
608
|
|
- height: 70,
|
|
623
|
+ width: size.width * 0.18,
|
609
|
624
|
child: Image.asset(
|
610
|
625
|
"assets/icons/menu/ic_surattugas_2.png",
|
611
|
|
- fit: BoxFit.fill,
|
612
|
|
- alignment: Alignment.center,
|
|
626
|
+ fit: BoxFit.contain,
|
613
|
627
|
),
|
614
|
628
|
),
|
615
|
|
- Container(
|
616
|
|
- margin: EdgeInsets.only(top: 10),
|
617
|
|
- padding: EdgeInsets.all(5),
|
618
|
|
- child: Text(
|
619
|
|
- 'Assignment Letter',
|
620
|
|
- textAlign: TextAlign.center,
|
621
|
|
- style: GoogleFonts.acme(
|
622
|
|
- fontSize: 18, color: Colors.black),
|
623
|
|
- ),
|
|
629
|
+ Text(
|
|
630
|
+ 'Assignment Letter',
|
|
631
|
+ textAlign: TextAlign.center,
|
|
632
|
+ style: GoogleFonts.acme(
|
|
633
|
+ fontSize: size.width * 0.045,
|
|
634
|
+ color: Colors.black),
|
624
|
635
|
),
|
625
|
636
|
],
|
626
|
637
|
),
|
|
@@ -629,11 +640,14 @@ class _HomeScreenState extends State<HomeScreen> {
|
629
|
640
|
Navigator.push(
|
630
|
641
|
context,
|
631
|
642
|
MaterialPageRoute(
|
632
|
|
- builder: (context) => SuratTugas_Screen()));
|
|
643
|
+ builder: (context) =>
|
|
644
|
+ SuratTugas_Screen()));
|
633
|
645
|
},
|
634
|
646
|
),
|
635
|
647
|
InkWell(
|
636
|
648
|
child: Container(
|
|
649
|
+ width: size.width,
|
|
650
|
+ height: size.height,
|
637
|
651
|
decoration: BoxDecoration(
|
638
|
652
|
color: Color(0xFFD0D0D0),
|
639
|
653
|
borderRadius: BorderRadius.circular(5)),
|
|
@@ -642,23 +656,19 @@ class _HomeScreenState extends State<HomeScreen> {
|
642
|
656
|
mainAxisAlignment: MainAxisAlignment.center,
|
643
|
657
|
children: <Widget>[
|
644
|
658
|
Container(
|
645
|
|
- width: 70,
|
646
|
|
- height: 70,
|
|
659
|
+ width: size.width * 0.18,
|
647
|
660
|
child: Image.asset(
|
648
|
|
- "assets/icons/menu/ic_reimburse.png",
|
649
|
|
- fit: BoxFit.fill,
|
650
|
|
- alignment: Alignment.center),
|
651
|
|
- ),
|
652
|
|
- Container(
|
653
|
|
- margin: EdgeInsets.only(top: 10),
|
654
|
|
- padding: EdgeInsets.all(5),
|
655
|
|
- child: Text(
|
656
|
|
- 'Reimburse',
|
657
|
|
- textAlign: TextAlign.center,
|
658
|
|
- style: GoogleFonts.acme(
|
659
|
|
- fontSize: 18, color: Colors.black),
|
|
661
|
+ "assets/icons/menu/ic_reimburse.png",
|
|
662
|
+ fit: BoxFit.contain,
|
660
|
663
|
),
|
661
|
664
|
),
|
|
665
|
+ Text(
|
|
666
|
+ 'Reimburse',
|
|
667
|
+ textAlign: TextAlign.center,
|
|
668
|
+ style: GoogleFonts.acme(
|
|
669
|
+ fontSize: size.width * 0.045,
|
|
670
|
+ color: Colors.black),
|
|
671
|
+ ),
|
662
|
672
|
],
|
663
|
673
|
),
|
664
|
674
|
),
|
|
@@ -666,11 +676,14 @@ class _HomeScreenState extends State<HomeScreen> {
|
666
|
676
|
Navigator.push(
|
667
|
677
|
context,
|
668
|
678
|
MaterialPageRoute(
|
669
|
|
- builder: (context) => ReimburseScreen()));
|
|
679
|
+ builder: (context) =>
|
|
680
|
+ ReimburseScreen()));
|
670
|
681
|
},
|
671
|
682
|
),
|
672
|
683
|
InkWell(
|
673
|
684
|
child: Container(
|
|
685
|
+ width: size.width,
|
|
686
|
+ height: size.height,
|
674
|
687
|
decoration: BoxDecoration(
|
675
|
688
|
color: Color(0xFFD0D0D0),
|
676
|
689
|
borderRadius: BorderRadius.circular(5)),
|
|
@@ -679,23 +692,19 @@ class _HomeScreenState extends State<HomeScreen> {
|
679
|
692
|
mainAxisAlignment: MainAxisAlignment.center,
|
680
|
693
|
children: <Widget>[
|
681
|
694
|
Container(
|
682
|
|
- width: 70,
|
683
|
|
- height: 70,
|
|
695
|
+ width: size.width * 0.18,
|
684
|
696
|
child: Image.asset(
|
685
|
|
- "assets/icons/menu/ic_about_3.png",
|
686
|
|
- fit: BoxFit.fill,
|
687
|
|
- alignment: Alignment.center),
|
688
|
|
- ),
|
689
|
|
- Container(
|
690
|
|
- margin: EdgeInsets.only(top: 10),
|
691
|
|
- padding: EdgeInsets.all(5),
|
692
|
|
- child: Text(
|
693
|
|
- 'About',
|
694
|
|
- textAlign: TextAlign.center,
|
695
|
|
- style: GoogleFonts.acme(
|
696
|
|
- fontSize: 18, color: Colors.black),
|
|
697
|
+ "assets/icons/menu/ic_about_3.png",
|
|
698
|
+ fit: BoxFit.contain,
|
697
|
699
|
),
|
698
|
700
|
),
|
|
701
|
+ Text(
|
|
702
|
+ 'About',
|
|
703
|
+ textAlign: TextAlign.center,
|
|
704
|
+ style: GoogleFonts.acme(
|
|
705
|
+ fontSize: size.width * 0.045,
|
|
706
|
+ color: Colors.black),
|
|
707
|
+ ),
|
699
|
708
|
],
|
700
|
709
|
),
|
701
|
710
|
),
|