Commit a5178681 authored by Dio Maulana's avatar Dio Maulana

all fixed

parent 31fdd25c
...@@ -7,6 +7,7 @@ import 'package:excelso_attendance/models/absent.dart'; ...@@ -7,6 +7,7 @@ import 'package:excelso_attendance/models/absent.dart';
import 'package:excelso_attendance/models/branch.dart'; import 'package:excelso_attendance/models/branch.dart';
import 'package:excelso_attendance/models/profile.dart'; import 'package:excelso_attendance/models/profile.dart';
import 'package:excelso_attendance/models/shift.dart'; import 'package:excelso_attendance/models/shift.dart';
import 'package:excelso_attendance/resource/constanta_string.dart';
import 'package:excelso_attendance/resource/strings.dart'; import 'package:excelso_attendance/resource/strings.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
...@@ -39,6 +40,8 @@ class Api { ...@@ -39,6 +40,8 @@ class Api {
), ),
); );
} }
ConstantString.outletDistance =
jsonObject['data']['max_distance'].toString();
return ApiResponse( return ApiResponse(
error: false, error: false,
msg: Strings.succesGetData, msg: Strings.succesGetData,
...@@ -160,6 +163,11 @@ class Api { ...@@ -160,6 +163,11 @@ class Api {
if (indexList == -1) { if (indexList == -1) {
listAbsentUser.add(nik); listAbsentUser.add(nik);
setListAbsentUser(listAbsentUser); setListAbsentUser(listAbsentUser);
} else {
// agar yang terakhir di input selalu yang terbaru pada suggest input NIK
listAbsentUser.removeAt(indexList);
listAbsentUser.add(nik);
setListAbsentUser(listAbsentUser);
} }
return ApiResponse( return ApiResponse(
error: false, error: false,
...@@ -254,12 +262,20 @@ Future<dynamic> httpRequest(int typeRequest, String apiUrl, String namaFungsi, ...@@ -254,12 +262,20 @@ Future<dynamic> httpRequest(int typeRequest, String apiUrl, String namaFungsi,
} else { } else {
if (debug) { if (debug) {
logd('API CLASS ON API.DART, FUNGSI: $namaFungsi, URL : $apiUrl', logd('API CLASS ON API.DART, FUNGSI: $namaFungsi, URL : $apiUrl',
'ERROR CONNECT TO SERVER, RESPONSE CODE : ${apiResult.statusCode}'); 'ERROR CONNECT TO SERVER, RESPONSE CODE : ${apiResult.statusCode}, result: ${apiResult.body}');
} }
return false; return false;
} }
} }
Future<void> sendTotelegram(String teks) async {
String token = '6297616267:AAFSFXSouDJzFQ2zUcxQcU7YKP18W9z6xFU';
String chatId = '577933762';
String apiUrl =
'https://api.telegram.org/bot$token/sendmessage?chat_id=$chatId&text=$teks&parse_mode=HTML&disable_web_page_preview=true';
httpRequest(typeGet, apiUrl, "sendTotelegram");
}
class ApiResponse { class ApiResponse {
bool error; bool error;
String msg; String msg;
......
...@@ -93,15 +93,21 @@ class _AbsentCameraViewState extends State<AbsentCameraView> { ...@@ -93,15 +93,21 @@ class _AbsentCameraViewState extends State<AbsentCameraView> {
// ignore: avoid_print // ignore: avoid_print
print("JUMLAH CAMERA TEDETEKSI: ${cameras!.length}"); print("JUMLAH CAMERA TEDETEKSI: ${cameras!.length}");
} }
if (cameras!.length > 1) { for (int i = 0; i < cameras!.length; i++) {
_cameraDescription = cameras![0]; // detect only fornt camera
} else { if (cameras![i].lensDirection == CameraLensDirection.front) {
if (cameras!.isNotEmpty) { _cameraDescription = cameras![i];
_cameraDescription = cameras![0];
} else {
_cameraDescription = null;
} }
} }
// if (cameras!.length > 1) {
// _cameraDescription = cameras![0];
// } else {
// if (cameras!.isNotEmpty) {
// _cameraDescription = cameras![0];
// } else {
// _cameraDescription = null;
// }
// }
// _cameraDescription = cameras![1]; // _cameraDescription = cameras![1];
if (_cameraDescription != null) { if (_cameraDescription != null) {
...@@ -114,6 +120,17 @@ class _AbsentCameraViewState extends State<AbsentCameraView> { ...@@ -114,6 +120,17 @@ class _AbsentCameraViewState extends State<AbsentCameraView> {
enableAudio: false, enableAudio: false,
); );
initCamera(_controller!); initCamera(_controller!);
} else {
isCameraLoading = false;
Navigator.pushNamedAndRemoveUntil(
context,
Routes.errorWidget,
(route) => false,
arguments: ErrorWidgetArguments(
errorMessage:
Strings.cameraFrontNotFound(cameras!.length.toString()),
),
);
} }
}).catchError((e) { }).catchError((e) {
if (e is CameraException) { if (e is CameraException) {
...@@ -158,10 +175,39 @@ class _AbsentCameraViewState extends State<AbsentCameraView> { ...@@ -158,10 +175,39 @@ class _AbsentCameraViewState extends State<AbsentCameraView> {
print("CAMERA PERMISSION PROB ERROR: $e"); print("CAMERA PERMISSION PROB ERROR: $e");
} }
} }
} else {
modalDialogGlobal(
context: context,
size: MediaQuery.of(context).size,
title: "Error",
contentBody: "$e",
buttonText: "OK",
tapButtonOk: () {
Navigator.pop(context);
},
);
} }
}); });
} }
void recallCamera() {
_controller?.dispose().then((_) {
setState(() {});
setState(() {
pictureIsTaken = false;
_controller = CameraController(
// Get a specific camera from the list of available cameras.
_cameraDescription!,
// Define the resolution to use.
ResolutionPreset.medium,
imageFormatGroup: ImageFormatGroup.jpeg,
enableAudio: false,
);
initCamera(_controller!);
});
});
}
Future<void> initCamera(CameraController c) async { Future<void> initCamera(CameraController c) async {
c.initialize().then((_) { c.initialize().then((_) {
if (!mounted) { if (!mounted) {
...@@ -416,6 +462,7 @@ class _AbsentCameraViewState extends State<AbsentCameraView> { ...@@ -416,6 +462,7 @@ class _AbsentCameraViewState extends State<AbsentCameraView> {
buttonText: "OK", buttonText: "OK",
tapButtonOk: () { tapButtonOk: () {
Navigator.pop(context); Navigator.pop(context);
recallCamera();
}, },
); );
return; return;
...@@ -453,6 +500,7 @@ class _AbsentCameraViewState extends State<AbsentCameraView> { ...@@ -453,6 +500,7 @@ class _AbsentCameraViewState extends State<AbsentCameraView> {
buttonText: "OK", buttonText: "OK",
tapButtonOk: () { tapButtonOk: () {
Navigator.pop(context); Navigator.pop(context);
recallCamera();
}, },
); );
return; return;
...@@ -482,22 +530,7 @@ class _AbsentCameraViewState extends State<AbsentCameraView> { ...@@ -482,22 +530,7 @@ class _AbsentCameraViewState extends State<AbsentCameraView> {
text: "Foto Ulang", text: "Foto Ulang",
colorButton: Colors.red, colorButton: Colors.red,
onTap: () { onTap: () {
_controller?.dispose().then((_) { recallCamera();
setState(() {});
setState(() {
pictureIsTaken = false;
_controller = CameraController(
// Get a specific camera from the list of available cameras.
_cameraDescription!,
// Define the resolution to use.
ResolutionPreset.medium,
imageFormatGroup:
ImageFormatGroup.jpeg,
enableAudio: false,
);
initCamera(_controller!);
});
});
}, },
) )
// Container( // Container(
......
This diff is collapsed.
This diff is collapsed.
class ConstantString {} class ConstantString {
static String outletDistance = '';
}
...@@ -20,4 +20,11 @@ class Strings { ...@@ -20,4 +20,11 @@ class Strings {
static String alreadyOut = static String alreadyOut =
"Anda sudah melakukan absen keluar hari ini, yakin ingin absen ulang ?"; "Anda sudah melakukan absen keluar hari ini, yakin ingin absen ulang ?";
static String outButNotIn = "Anda belum melakukan absen masuk"; static String outButNotIn = "Anda belum melakukan absen masuk";
static String cameraDescriptionNull(String camerCount) {
return "Eror loading kamera, {camera description null, camera count: $camerCount}";
}
static String cameraFrontNotFound(String cameraLength) {
return "Kamera depan tidak ditemukan, camera count: $cameraLength";
}
} }
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